.catalog-page{max-width:1120px;margin:auto;padding:24px clamp(16px,4vw,56px) 100px}.learn-primary,.catalog-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--border-soft)}.learn-primary a,.catalog-tabs a{padding:10px 16px;min-height:44px;text-decoration:none;border-radius:30px;color:inherit}.learn-primary a[aria-current],.catalog-tabs a[aria-current]{background:var(--ink-1);color:var(--paper-1)}.catalog-hero{max-width:800px;padding:clamp(32px,6vw,72px) 0 32px}.catalog-hero h1{font-size:clamp(36px,5.8vw,72px);line-height:1.06;margin:12px 0 24px;overflow-wrap:anywhere}.catalog-hero p{max-width:65ch;line-height:1.65}.catalog-section{margin:36px 0}.catalog-section>h2{font-size:24px;margin-bottom:20px}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px}.catalog-card{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:24px;border:1px solid var(--border-soft);border-radius:18px;text-decoration:none;color:inherit;min-width:0;background:var(--paper-1)}.catalog-card h2{font-size:23px;margin:0;overflow-wrap:anywhere}.catalog-card p{line-height:1.6;flex:1;margin:0}.catalog-card:hover{border-color:currentColor}.catalog-group{border:1px solid var(--border-soft);border-radius:12px;margin:12px 0;padding:0 18px}.catalog-group>summary{padding:18px 0;cursor:pointer;font-weight:600;line-height:1.5}.catalog-group>summary span{display:inline-block;margin-left:12px;font-size:12px;font-weight:400}.catalog-lessons{list-style:none;padding:0;margin:0}.catalog-lessons li{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border-soft)}.catalog-lessons a{color:inherit;line-height:1.6;text-underline-offset:4px;overflow-wrap:anywhere}.catalog-lessons span{flex-shrink:0;font-size:12px}.catalog-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:24px 0}.catalog-actions>a{color:inherit}.catalog-progress,.catalog-empty,.catalog-resume{padding:24px;border:1px solid var(--border-soft);border-radius:18px;margin:24px 0;line-height:1.7}.catalog-progress progress{width:100%;height:8px;accent-color:#d65b2c}.catalog-progress h2{font-size:20px}.catalog-filter{display:block;margin:24px 0}.catalog-filter input{display:block;width:100%;margin-top:10px;padding:14px;border:1px solid var(--border-soft);background:transparent;color:inherit;border-radius:10px;font:inherit}.catalog-notice{border-left:3px solid #d65b2c;padding:12px 18px;line-height:1.6}.catalog-choice{border:0;padding:16px 0}.catalog-choice label{display:flex;gap:10px;align-items:center;min-height:44px}.catalog-choice input{width:20px;height:20px}.catalog-page :focus-visible{outline:3px solid #d65b2c;outline-offset:4px}[data-theme=dark] .catalog-card{background:transparent}[data-theme=dark] .learn-primary a[aria-current],[data-theme=dark] .catalog-tabs a[aria-current]{background:#eee;color:#111}@media(max-width:480px){.catalog-page{padding-inline:16px}.catalog-group{padding-inline:12px}.catalog-lessons li{align-items:flex-start}.catalog-tabs a{padding:10px}.catalog-card{padding:20px}}

.catalog-filter select{display:block;width:100%;padding:12px;margin-top:10px;border:1px solid var(--border-soft);border-radius:10px;background:var(--paper-1);color:var(--ink-1);font:inherit;min-height:44px}

/* Catalog controls are navigation, independent of lesson disclosure styling. */
.catalog-page .catalog-card { color: var(--ink-1); text-decoration: none; font-weight: 400; }
.catalog-page .catalog-card:hover { background: var(--paper-2); border-color: var(--border-strong); }
.catalog-page .catalog-card > span:last-child { color: var(--text-accent); font-weight: 600; }
.catalog-page :is(.learn-primary,.catalog-tabs) a { text-decoration: none; color: var(--ink-2); }
.catalog-page :is(.learn-primary,.catalog-tabs) a[aria-current] { background: var(--ink-1); color: var(--paper-1); }
.catalog-page .catalog-group > summary { display: grid; grid-template-columns: 16px minmax(0,1fr) auto; width: 100%; height: auto; min-height: 64px; padding: 16px 0; gap: 12px; border: 0; border-radius: 0; box-shadow: none; background: transparent; transform: none; font-size: 16px; }
.catalog-page .catalog-group > summary::before { content: '›'; flex: none; width: 16px; font-size: 22px; text-align: center; }
.catalog-page .catalog-group[open] > summary::before { transform: rotate(90deg); }
.catalog-page .catalog-group > summary .catalog-group-count { margin: 0; color: var(--ink-3); white-space: nowrap; }
.catalog-page .catalog-group > summary .catalog-group-title { margin: 0; font: inherit; color: inherit; white-space: normal; }
.catalog-page .catalog-lessons { padding-left: 0; }
.catalog-page .catalog-lessons li { margin: 0; }
.catalog-page .catalog-lessons li:last-child { border: 0; }
.catalog-page .catalog-resume, .catalog-page .catalog-empty { display: grid; justify-items: start; gap: 20px; padding: clamp(24px,4vw,32px); }
.catalog-page .catalog-resume > *, .catalog-page .catalog-empty > * { margin: 0; }
.catalog-page .catalog-resume h2, .catalog-page .catalog-empty h2 { font-size: clamp(23px,3vw,30px); line-height: 1.3; max-width: 36ch; overflow-wrap: anywhere; }
.catalog-page .catalog-resume .eyebrow { line-height: 1.5; }
.catalog-page .btn--primary { min-height: 48px; padding: 12px 20px; background: var(--study-action-fill); color: var(--study-action-ink); border: 1px solid var(--study-action-fill); border-radius: 8px; box-shadow: none; text-shadow: none; text-decoration: none; }
.catalog-page .btn--primary:hover { filter: brightness(.96); }
.catalog-page .btn--primary:active { box-shadow: none; }
.catalog-page > .catalog-actions { gap: 8px 24px; }
.catalog-page > .catalog-actions a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
@media(max-width:480px) {
  .catalog-page .catalog-group > summary { grid-template-columns: 16px minmax(0,1fr); gap: 4px 10px; font-size: 15px; }
  .catalog-page .catalog-group > summary .catalog-group-count { grid-column: 2; }
  .catalog-page .catalog-lessons li { display: grid; grid-template-columns: 1fr; gap: 4px; }
}
