.catalog-wrap { max-width:1180px; margin:0 auto; padding:0 28px; }
.catalog-hero { display:grid; grid-template-columns:1fr 290px; gap:64px; align-items:center; padding:64px 0 44px; }
.catalog-hero h1 { font-size:clamp(40px,5.8vw,66px); line-height:1.06; }
.catalog-hero .eyebrow { color:#586e5c; margin-bottom:20px; }
.catalog-hero .lead { font-size:18px; max-width:580px; margin-bottom:20px; }
.catalog-small { font-size:13px; color:var(--muted); line-height:1.65; }
.hero-note { background:#e9eddf; padding:26px; border:1px solid #d1d9c4; border-radius:4px; transform:rotate(1deg); }
.hero-note p { font-size:16px; line-height:1.8; }
.hero-note .catalog-small { font-size:12px; margin-bottom:0; }
.note-mark { font-size:32px; color:#35564b; }
.catalog-tabs { display:flex; flex-wrap:wrap; gap:0 26px; border-bottom:1px solid var(--rule); margin-bottom:26px; }
.catalog-tabs a { color:var(--muted); font-size:14px; font-weight:500; padding:14px 0; border-bottom:3px solid transparent; white-space:nowrap; }
.catalog-tabs a[aria-current] { color:var(--accent); border-color:var(--accent); }
#saved-count { background:var(--paper-2); padding:2px 7px; border-radius:12px; font-size:11px; }
.catalog-filters { background:var(--paper-2); border:1px solid var(--rule); padding:20px; border-radius:6px; display:grid; grid-template-columns:2fr 1fr 1fr; gap:16px; }
.catalog-filters label { font-size:12px; font-weight:500; color:#49443d; display:flex; flex-direction:column; gap:7px; }
.catalog-filters input[type=search],.catalog-filters select { width:100%; min-width:0; border:1px solid #cfc8bc; border-radius:4px; padding:11px 12px; background:#fffdf8; color:var(--ink); font:14px Inter,system-ui,sans-serif; min-height:44px; }
.filter-bottom { grid-column:1/-1; display:flex; justify-content:space-between; gap:14px; align-items:center; }
.catalog-filters .check-label { flex-direction:row; align-items:center; font-size:12px; font-weight:400; }
.check-label input { accent-color:var(--accent); width:16px; height:16px; flex-shrink:0; }
.reset-filters { font-size:12px; white-space:nowrap; margin-left:12px; }
.catalog-wrap button { cursor:pointer; background:transparent; color:var(--accent); border:1px solid #b9c2b3; border-radius:4px; padding:9px 13px; font:500 12px Inter,system-ui,sans-serif; min-height:36px; }
.catalog-wrap button:hover { background:#e4eadc; }
.catalog-wrap :focus-visible { outline:3px solid #668573; outline-offset:3px; }
.results-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:34px; }
.results-heading h2 { font-size:27px; margin-bottom:4px; }
#result-count { font:12px 'IBM Plex Mono',monospace; color:var(--muted); margin-bottom:12px; }
#scope-note { max-width:850px; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.catalog-card { border:1px solid var(--rule); border-top:3px solid var(--school-color); background:#fcfaf5; border-radius:5px; padding:21px; display:flex; flex-direction:column; min-width:0; }
.card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:17px; }
.school-label { color:var(--school-color); font:500 11px 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.035em; }
.catalog-card .save-button { border:1px solid transparent; font-size:12px; white-space:nowrap; padding:5px 7px; }
.catalog-card .save-button[aria-pressed=true] { background:#e6eddf; color:#294f3d; border-color:#bac9af; }
.course-code { font:11px 'IBM Plex Mono',monospace; color:var(--muted); margin-bottom:8px; }
.catalog-card h3 { font-family:Fraunces,serif; font-size:23px; line-height:1.2; font-weight:500; margin:0 0 14px; overflow-wrap:anywhere; }
.topic-tags { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:16px; }
.topic-tags span { border:1px solid #e2ddcf; border-radius:3px; padding:2px 6px; font-size:10px; color:#686055; background:#f3f0e8; }
.description { font-size:14px; line-height:1.7; }
.course-details { font-size:14px; line-height:1.7; margin:0 0 20px; }
.course-details summary { font-size:13px; }
.course-details p { margin:14px 0 10px; }
.official-catalogs a { white-space:nowrap; }
.catalog-ready .interest-strip { display:flex !important; justify-content:space-between; gap:14px; flex-wrap:wrap; background:#e9eddf; border:1px solid #d1d9c4; border-radius:5px; padding:14px 18px; margin-bottom:15px; font-size:13px; }
.interest-strip > span > span { white-space:nowrap; }
.catalog-ready #interest-comparison:not([hidden]) { display:block !important; margin:24px 0 30px; }
#interest-title { font-size:28px; }
.interest-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.interest-school { border:1px solid var(--rule); border-top:3px solid var(--school-color); border-radius:5px; padding:20px; background:#fcfaf5; }
.interest-school h3 { font:23px Fraunces,serif; margin:0 0 12px; }
.interest-school p { font-size:13px; margin-bottom:12px; }
.interest-number { font:36px Fraunces,serif; color:var(--school-color); margin-right:6px; }
.interest-bar { height:7px; border-radius:4px; background:#e9e4d8; margin-bottom:12px; overflow:hidden; }
.interest-bar span { display:block; height:100%; background:var(--school-color); width:0; }
.interest-school a { font-size:12px; }
.offering { margin-top:auto; font:10px/1.6 'IBM Plex Mono',monospace; color:#6c665b; padding-top:12px; border-top:1px solid #e5e0d5; margin-bottom:12px; }
.offering.unavailable { color:#934c35; }
.catalog-card .catalog-small:last-child { margin-bottom:0; }
.requirements { border-top:1px solid #e5e0d5; padding-top:12px; margin-top:auto; margin-bottom:16px; font-size:13px; }
summary { cursor:pointer; color:var(--accent); font-weight:500; }
.requirements ul { margin-top:14px; padding-left:18px; line-height:1.7; }
.requirements li { margin-bottom:10px; }
.empty-state { text-align:center; padding:54px 20px; border:1px dashed var(--rule); border-radius:5px; }
.empty-state h3 { margin-top:0; font:26px Fraunces,serif; }
.empty-state p { font-size:14px; max-width:540px; margin:0 auto; }
#show-more { display:block; margin:28px auto; padding:13px 26px; }
.pathway-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:24px 0; }
.pathway { background:#fcfaf5; border:1px solid var(--rule); border-top:3px solid var(--school-color); padding:24px; border-radius:5px; font-size:14px; }
.pathway .eyebrow { color:var(--school-color); margin-bottom:10px; }
.pathway h3 { font:27px Fraunces,serif; margin:0 0 15px; }
.pathway dl { margin:0 0 24px; }
.pathway dl div { border-top:1px solid #e3ddcf; padding:12px 0; }
.pathway dt { font-weight:600; font-size:12px; margin-bottom:5px; }
.pathway dd { margin:0; color:#5d584f; font-size:13px; }
.source-directory { border-top:1px solid var(--rule); margin-top:42px; padding:24px 0 30px; font-size:14px; }
.source-directory summary { font-size:16px; margin-bottom:20px; }
.source-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.source-grid h3 { margin-top:8px; }
.source-grid ul { padding-left:18px; }
.js-only { display:none !important; }
.catalog-ready .js-only { display:inline-flex !important; }
.catalog-ready .apply-filters { display:none; }
[hidden],.catalog-ready [hidden] { display:none !important; }
@media(min-width:800px) { .site .bar { flex-wrap:wrap; } }
@media(max-width:900px) { .catalog-hero { gap:30px; grid-template-columns:1fr 240px; }.catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.pathway-grid { grid-template-columns:1fr; }.source-grid { grid-template-columns:1fr; }.catalog-filters { grid-template-columns:1fr 1fr; }.search-label { grid-column:1/-1; } }
@media(max-width:600px) { .catalog-wrap { padding:0 18px; }.catalog-hero { grid-template-columns:1fr; padding:38px 0 28px; gap:16px; }.catalog-hero h1 { font-size:42px; }.hero-note { display:none; }.catalog-tabs { gap:24px; }.catalog-tabs a { font-size:13px; }.catalog-grid { grid-template-columns:1fr; }.catalog-filters { padding:15px; gap:12px; }.catalog-filters select { font-size:13px; padding:10px 6px; }.filter-bottom { align-items:flex-start; }.catalog-card { padding:21px; }.site .bar { flex-direction:column; gap:10px; }.site nav.toc { gap:8px 14px; }.site nav.toc a { font-size:10px; }.results-heading h2 { font-size:24px; }.results-heading { align-items:flex-start; } }
@media print { header.site,.catalog-filters,.catalog-tabs,.save-button,#show-more,#export-saved,.hero-note,.source-directory { display:none !important; }.catalog-grid { display:block; }.catalog-card { break-inside:avoid; margin-bottom:15px; }.catalog-hero { padding:15px 0; }.catalog-wrap { max-width:none; } }
@media(max-width:600px) {
  header.site .bar { padding:14px 18px; }
  .catalog-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; overflow:visible; }
  .catalog-tabs a { padding:10px 0; }
  .catalog-tabs a { white-space:normal; }
  .interest-grid { grid-template-columns:1fr; }
}
