.course-catalog .continuous-catalog-heading h1 { font-size:clamp(2rem,3.8vw,3.4rem); line-height:1.12; }
.course-catalog .continuous-catalog-heading p { font-size:1rem; }
#course-total { margin-top:12px; font-weight:800; color:var(--blue); }
.course-filters { display:grid; grid-template-columns:minmax(180px,1fr) minmax(180px,1.2fr) auto auto; align-items:end; gap:14px; padding:20px; border:1px solid #cbd8ee; border-radius:20px; background:white; }
.course-filters label { display:grid; gap:8px; min-width:0; font-size:1rem; font-weight:800; }
.course-filters input,.course-filters select { width:100%; min-width:0; min-height:48px; padding:10px; border:1px solid #7284a5; border-radius:9px; color:var(--navy); background:white; font:inherit; }
.course-filters .btn,.course-clear,.course-pages button { min-height:48px; font-size:1rem; }
.course-clear,.course-pages button { padding:10px 14px; border:1px solid #a6b8d7; border-radius:10px; background:white; color:var(--blue); font-weight:800; }
.course-results { margin:22px 0 16px; color:var(--navy); font-size:1rem; scroll-margin-top:155px; }
.course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.course-card { display:flex; flex-direction:column; min-width:0; padding:22px; border:1px solid #cad7eb; border-radius:22px; background:white; box-shadow:0 8px 22px #09246008; }
.course-card-top { display:flex; justify-content:space-between; align-items:start; gap:10px; }
.course-card-top span { color:var(--blue); font-size:.875rem; line-height:1.45; font-weight:700; }
.course-card-top b { flex-shrink:0; color:var(--navy); background:#fff2bc; padding:6px 9px; border-radius:8px; font-size:.875rem; }
.course-card h2 { margin:18px 0 12px; font-size:1.3rem; line-height:1.3; overflow-wrap:anywhere; }
.course-card .course-available { margin:0 0 16px; color:#10643c; font-size:.875rem; font-weight:700; }
.course-card dl { display:grid; gap:12px; margin:0 0 18px; }
.course-card dt { font-size:.875rem; color:#516181; }
.course-card dd { margin:2px 0 0; font-size:1rem; line-height:1.4; }
.course-card details { margin:auto 0 18px; padding-top:14px; border-top:1px solid #dde4f0; font-size:.875rem; }
.course-card summary { cursor:pointer; min-height:44px; padding:10px 0; color:var(--blue); font-weight:800; }
.course-card details p { line-height:1.55; color:#516181; }
.course-card ul { list-style:none; padding:0; margin:12px 0 0; }
.course-card li { padding:12px 0; border-top:1px solid #dde4f0; overflow-wrap:anywhere; }
.course-card li strong,.course-card li span,.course-card li small { display:block; font-size:.875rem; line-height:1.5; }
.course-card li span { margin:4px 0; }
.course-card .btn { min-height:48px; justify-content:center; font-size:1rem; }
.course-pages { display:flex; align-items:center; justify-content:center; gap:18px; margin:28px 0; flex-wrap:wrap; }
.course-pages[hidden] { display:none; }
.course-pages button:disabled { color:#59677c; background:#edf1f7; cursor:default; }
.course-catalog :focus-visible { outline:3px solid #1240c4; outline-offset:4px; }
.course-catalog .continuous-toolbar button,.course-catalog .continuous-toolbar a { font-size:.875rem; min-height:44px; display:flex; align-items:center; }
.course-catalog .continuous-toolbar span { font-size:.875rem; }
.course-catalog .continuous-toolbar { padding-right:max(170px,calc((100vw - 1080px)/2)); }
.high-contrast .course-card,.high-contrast .course-filters { border:2px solid currentColor; }
.course-enrollment-note { padding:16px; border-radius:12px; background:#eef3ff; line-height:1.5; }
.course-enrollment-note label { display:grid; gap:8px; margin-top:12px; }
.course-enrollment-note select { min-height:48px; width:100%; max-width:100%; font:inherit; }
.course-enrollment-note p { margin:0 0 10px; }
.individual-course [hidden] { display:none !important; }
.individual-course .payment-options { grid-template-columns:minmax(0,1fr); }
.individual-course .form-grid { margin-top:16px; }
@media (max-width:1080px) {
  .course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .course-filters { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
@media (max-width:640px) {
  .course-grid,.course-filters { grid-template-columns:1fr; }
  .course-catalog .continuous-catalog-heading { grid-template-columns:1fr; gap:14px; }
  .course-card { padding:20px; }
  .course-catalog .continuous-toolbar { position:static; grid-template-columns:1fr; gap:2px; padding-right:18px; }
  .course-catalog .continuous-toolbar span { display:none; }
  .course-filters { padding:16px; }
  .course-results { scroll-margin-top:100px; }
}
