.catalog-heading { padding-bottom: 6px; }
.catalog-heading h1 { font-size: clamp(2.5rem, 4.5vw, 3.7rem); }
.catalog-heading .focus-hero-art { max-width: 210px; }
.catalog-search-label { display: block; margin-bottom: 12px; font-size: .9rem; font-weight: 600; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.catalog-card-band { display: flex; justify-content: space-between; align-items: center; padding: 17px 22px; background: color-mix(in srgb, var(--subject) 13%, var(--bg-card)); color: var(--subject); font-size: .75rem; }
.catalog-card-band > span:last-child { font-size: 1.3rem; }
.catalog-card-band { gap:14px; min-height:80px; box-sizing:border-box; }
.catalog-card-identity { display:flex; align-items:center; gap:14px; min-width:0; font-weight:600; }
.catalog-card-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; font-size:2rem; line-height:1; font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; }
.catalog-card h2 { font-size: 1.28rem; line-height: 1.35; letter-spacing: -.025em; }
.catalog-card h2 a { text-decoration: none; }
.catalog-card h2 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.catalog-card .focus-goal-description { display: block; font-size: .9rem; }
.catalog-card .focus-goal-availability { font-size: .8rem; }
.catalog-card .focus-goal-preview small { font-size: .65rem; }
.catalog-card .focus-goal-preview > span { font-size: .85rem; }
.catalog-empty { padding: 50px 24px; text-align: center; border: 1px dashed var(--border-color); border-radius: 16px; }
.catalog-empty p { margin: 14px 0; color: var(--text-secondary); }
.catalog-footer { max-width: 1120px; margin: 0 auto; padding: 28px 36px; display: flex; gap: 24px; flex-wrap: wrap; border-top: 1px solid var(--border-color); font-size: .85rem; color: var(--text-secondary); }
.catalog-footer a { color: var(--text-primary); }
.catalog-footer span { flex: 1; }
.path-back { display: inline-block; margin-bottom: 35px; font-size: .85rem; text-underline-offset: 4px; }
.path-heading { max-width: 800px; }
.path-heading > p:not(.focus-eyebrow) { max-width: 700px; font-size: 1.1rem; }
.path-facts { display: flex; gap: 10px 20px; flex-wrap: wrap; margin-top: 22px; font-size: .8rem; color: var(--text-secondary); }
.path-facts span + span::before { content: '·'; margin-right: 20px; }
.path-dashboard { display: inline-block; margin: 22px 0 0 22px; font-size: .85rem; }
.path-expectations { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; border-block: 1px solid var(--border-color); padding: 28px 0; margin: 40px 0; }
.path-expectations span { font-size: .72rem; letter-spacing: .06em; color: var(--focus-accent); font-weight: 600; }
.path-expectations p { font-size: .9rem; line-height: 1.65; margin-top: 12px; color: var(--text-secondary); }
.path-planned { margin: 30px 0; padding: 22px; background: var(--bg-secondary); border-radius: 12px; color: var(--text-secondary); }
.path-planned summary { cursor: pointer; color: var(--text-primary); }
.path-planned p { margin: 18px 0; font-size: .9rem; }
.path-planned ul { padding-left: 22px; line-height: 1.9; }
.public-path .focus-lesson h3 { font-size: 1.05rem; }
.public-path .focus-lesson p { font-size: .85rem; }
@media(max-width:1000px) { .catalog-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media(max-width:739px) {
 .catalog-grid { grid-template-columns: 1fr; }
 .path-expectations { grid-template-columns: 1fr; gap: 20px; }
 .path-expectations p { margin-top: 5px; }
 .path-dashboard { display: block; margin-left: 0; }
 .path-facts { flex-direction: column; gap: 8px; }
 .path-facts span + span::before { content: none; }
 .catalog-footer { padding-inline: 22px; }
}
@media(prefers-reduced-motion:reduce) { .catalog-card { transition: none; } .catalog-card:hover { transform: none; } }
