/* Catalog-only additions. Shared site styles and demo applications stay independent. */
.catalog-home .demo-grid { align-items: stretch; }
.catalog-home .demo-card { display:flex; flex-direction:column; }
.catalog-home .demo-info { flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.catalog-home .demo-info .text-link { margin-top:auto; }
.catalog-badge { font-size:.875rem; font-weight:700; letter-spacing:.03em; }
.catalog-badge.demo { background:#214c38; color:#fff; }
.catalog-badge.image { background:#fff; color:#394940; border:1px solid #c9d3ca; }
.catalog-tags { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }
.catalog-tags span { font-size:.875rem; padding:5px 10px; background:#eef2e9; color:#40513e; border-radius:5px; }
.catalog-group + .catalog-group { margin-top:72px; padding-top:56px; border-top:1px solid var(--line); }
.catalog-heading { margin-bottom:28px; }
.catalog-heading h2 { margin-bottom:14px; }
.catalog-heading p { max-width:720px; }
.catalog-list .demo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; }
.catalog-list .demo-card { display:flex; flex-direction:column; }
.catalog-list .demo-info { flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.catalog-list .demo-info .text-link { margin-top:auto; }
.catalog-list .demo-visual { height:300px; flex-shrink:0; }
.catalog-result { margin:20px 0 38px; font-size:1rem; color:var(--muted); }
.catalog-list [hidden] { display:none!important; }
.catalog-list .demo-card { scroll-margin-top:130px; }
body[data-page="index"] .hero-actions { flex-wrap:wrap; }
body[data-page="index"] .hero-actions .button { white-space:normal; }
body[data-page="index"] .hero-actions .button>span { flex-shrink:1; }
body[data-page="index"] .global-nav, body[data-page="demos"] .global-nav { gap:18px; }
@media(max-width:1120px) {
 .catalog-home .demo-card { display:grid; grid-template-columns:.95fr 1.05fr; }
 .catalog-home .demo-visual { min-height:300px; }
 .catalog-list .demo-grid { grid-template-columns:1fr; }
 .catalog-list .demo-card { display:grid; grid-template-columns:.95fr 1.05fr; }
 .catalog-list .demo-visual { height:auto; min-height:300px; }
}
@media(max-width:960px) {
 body[data-page="index"] .global-nav, body[data-page="demos"] .global-nav { gap:10px; }
}
@media(max-width:760px) {
 body[data-page="index"] .hero-actions { flex-direction:column; align-items:stretch; }
 body[data-page="index"] .hero-actions .button { flex:auto; justify-content:space-between; min-height:56px; font-size:1rem; padding:16px 20px; }
}
@media(max-width:600px) {
 .catalog-home .demo-card, .catalog-list .demo-card { display:flex; flex-direction:column; }
 .catalog-home .demo-visual, .catalog-list .demo-visual { height:280px; min-height:0; }
 .catalog-group + .catalog-group { margin-top:42px; padding-top:36px; }
 .catalog-heading p { font-size:1rem; }
 .catalog-badge { font-size:.8125rem; }
 .catalog-list .filter-bar { flex-wrap:wrap; }
 .catalog-list .filter-button { font-size:1rem; padding:12px; }
}

/* Direct demo entry and secondary introduction link. */
.catalog-actions { display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin-top:auto; width:100%; }
.catalog-actions .button { min-height:48px; white-space:normal; font-size:1rem; gap:20px; }
.catalog-description-link { display:inline-flex; align-items:center; min-height:44px; padding:6px 0; font-size:1rem; color:var(--muted); text-decoration:underline; text-underline-offset:4px; }
.catalog-description-link:hover { color:var(--green); }
@media(max-width:600px) {
 .catalog-actions .button { width:100%; justify-content:space-between; padding:15px 20px; }
}
