:root{--ink:#12151c;--muted:#3d4450;--paper:#f4f1e8;--rule:#1b2a4a;--accent:#8b1e1e;--ok:#0b7a32;--ok-hover:#086028;--line:#a7aaad;--card:#fff;--hit:#eef6ee;--focus:#0b57d0;--adv:#fff8e5;--advb:#b45309;--max:74rem;--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:1.05rem/1.55 var(--serif);text-rendering:optimizeLegibility}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:.5rem 1rem;z-index:9}
.skip:focus{left:1rem;top:1rem}
.wrap{width:min(100% - 2rem,var(--max));margin-inline:auto}
.mast{background:var(--rule);color:#f4f1e8;border-bottom:3px solid var(--ok);padding:.85rem 0}
.mast-inner{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:baseline;justify-content:space-between}
.brand{color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:.1rem}
.brand:hover{text-decoration:underline}
.brand-kicker{font:650 .68rem/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.brand-name{font:700 1.15rem/1.2 var(--serif)}
.brand-host{font:.8rem/1.2 var(--mono);opacity:.8}
.mast-note{margin:0;max-width:38rem;font:.85rem/1.4 var(--sans);opacity:.9}
.toc{position:sticky;top:0;z-index:5;background:#eaecf0;border-bottom:1px solid var(--line)}
.toc-inner{display:flex;flex-wrap:wrap;gap:.35rem .85rem;align-items:center;padding:.4rem 0}
.toc-label{margin:0;font:700 .72rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.toc-list{display:flex;flex-wrap:wrap;gap:.15rem;list-style:none;margin:0;padding:0}
.toc-list a{display:block;padding:.32rem .5rem;font:.8rem/1.2 var(--sans);color:var(--rule);text-decoration:none;border:1px solid transparent;border-radius:1px}
.toc-list a:hover,.toc-list a.is-here{border-color:var(--line);background:#fff}
h1,h2,h3{font-family:var(--serif);line-height:1.22;font-weight:700;color:var(--rule)}
h1{font-size:clamp(1.5rem,2.4vw,2.1rem);margin:0 0 .75rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}
h2{font-size:1.28rem;margin:2rem 0 .55rem;padding-bottom:.35rem;border-bottom:1px solid var(--line)}
h3{font-size:1.06rem;margin:1.2rem 0 .4rem}
p{margin:0 0 .85rem}
.kicker{margin:1.2rem 0 .35rem;font:700 .74rem/1.35 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.lede{font-size:1.08rem}
.partner{display:flex;gap:.55rem;align-items:flex-start;margin:0 0 1rem;padding:.7rem .85rem;border:2px solid var(--ok);background:#f0faf3;color:var(--rule);font:.95rem/1.45 var(--sans)}
.partner .mark{color:var(--ok);margin-top:.12rem;flex-shrink:0}
.partner strong{color:var(--ok)}
.micro-trust{display:flex;align-items:center;gap:.35rem;margin:.15rem 0 0;font:.74rem/1.35 var(--sans);color:var(--muted)}
.stars{margin:.15rem 0 .35rem;font:650 .84rem/1.35 var(--sans);color:var(--ok);letter-spacing:.01em}
.stars-hero{margin:.15rem 0 1rem;font-size:.95rem}
.access-now{margin:.2rem 0 0;font:.78rem/1.35 var(--sans);color:var(--muted)}
.micro-ico{display:inline-flex;color:var(--ok);flex-shrink:0}
.vol-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:0 0 .75rem}
.vol-row input[type=range]{flex:1;min-width:12rem}
.vol-row input[type=number]{width:5rem;font:1rem/1.4 var(--sans);padding:.4rem .5rem;border:2px solid var(--rule)}
.trust{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:1rem 0 1.2rem;padding:0}
.trust li{display:flex;align-items:center;gap:.4rem;padding:.38rem .6rem;border:1px solid var(--ok);background:#f0faf3;color:var(--ok);font:650 .8rem/1.3 var(--sans)}
.trust .mark{display:inline-flex;color:var(--ok);flex-shrink:0}
.badge{display:inline-block;padding:.22rem .48rem;border:1px solid var(--rule);font:650 .74rem/1.3 var(--sans);background:var(--card);color:var(--rule)}
.badge-cfr{background:var(--rule);color:#fff;border-color:var(--rule)}
.badge-proctor{background:var(--accent);color:#fff;border-color:var(--accent)}
.badge-es,.badge-ceu{background:var(--ok);color:#fff;border-color:var(--ok)}
.hero-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.65rem;margin:1rem 0 0;padding:0}
.hero-facts div{border:1px solid var(--line);background:var(--card);padding:.6rem .7rem}
.hero-facts dt{font:700 .7rem/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .2rem}
.hero-facts dd{margin:0}
.catalog-block{margin-top:2rem;padding-top:.2rem}
.tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .75rem}
.tab{cursor:pointer;border:1px solid var(--rule);background:#fff;color:var(--rule);font:650 .8rem/1.2 var(--sans);padding:.45rem .65rem}
.tab.is-on,.tab:hover{background:var(--rule);color:#fff}
.finder-label{display:block;font:700 .78rem/1.3 var(--sans);margin:.2rem 0 .3rem}
.finder{width:100%;max-width:38rem;font:1rem/1.4 var(--sans);padding:.55rem .7rem;border:2px solid var(--rule);background:#fff}
.finder:focus,.tab:focus,.cta:focus,.skip:focus{outline:3px solid var(--focus);outline-offset:2px}
.finder-meta{margin:.4rem 0 0;font:.88rem/1.3 var(--sans);color:var(--muted)}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:.9rem;margin:1rem 0}
.card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--rule);padding:.85rem .9rem;display:flex;flex-direction:column;gap:.32rem}
.card.is-hit{background:var(--hit);border-color:var(--ok)}
.card h3{margin:.1rem 0;font-size:1.02rem;border:0;padding:0}
.card h3 a{color:var(--rule)}
.card-kicker{margin:0;display:flex;flex-wrap:wrap;gap:.28rem}
.card-meta,.card-audience,.card-mandates{margin:0;font:.86rem/1.4 var(--sans);color:var(--muted)}
.card-audience{color:var(--ink)}
.card-mandates{color:var(--accent);font-weight:650}
.price{margin:.2rem 0 0;font:700 1.35rem/1 var(--sans)}
.price-lg{font-size:1.6rem}
.card-points{margin:.25rem 0 .4rem;padding-left:1.1rem;font:.86rem/1.4 var(--sans)}
.card-points li{margin:0 0 .22rem}
.card-actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:.5rem .8rem;align-items:center}
.cta{display:inline-block;background:var(--ok);color:#fff;text-decoration:none;font:700 .9rem/1.2 var(--sans);padding:.62rem .9rem;border:1px solid var(--ok)}
.cta:hover{background:var(--ok-hover);color:#fff}
.cta-alt{background:#fff;color:var(--ok)}
.cta-alt:hover{background:var(--ok);color:#fff}
.text-link{font:650 .86rem/1.3 var(--sans);color:var(--rule);text-decoration:underline}
.empty-filter{padding:.75rem;border:1px dashed var(--accent);background:#fff}
.card.is-pick{border-color:var(--ok);background:var(--hit);box-shadow:inset 0 0 0 2px var(--ok)}
.tl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.75rem}
.tl-card{border:1px solid var(--line);background:var(--card);padding:.85rem .9rem;border-top:4px solid var(--ok)}
.tl-card-dol{border-top-color:var(--rule)}
.tl-kicker{margin:0 0 .3rem;font:700 .72rem/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tl-when{font:700 1.15rem/1.3 var(--serif);color:var(--rule);margin:.15rem 0 .5rem}
.wiz{border:1px solid var(--line);background:var(--card);padding:.85rem 1rem;margin:0 0 .75rem}
.wiz-step{border:0;margin:0;padding:0}
.wiz-step legend{font:700 .78rem/1.3 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:0}
.wiz-q{margin:.35rem 0 .5rem;font-weight:700}
.wiz-opts{display:flex;flex-direction:column;gap:.35rem;margin:0 0 .5rem}
.wiz-opt{display:flex;gap:.5rem;align-items:flex-start;border:1px solid var(--line);padding:.5rem .65rem;font:.95rem/1.35 var(--sans);cursor:pointer;background:#f8f9fa}
.wiz-opt:hover,.wiz-opt:has(input:checked){border-color:var(--rule);background:#fff}
.wiz-nav{margin:0}
.wiz-out{border:2px solid var(--ok);background:var(--hit);padding:.85rem 1rem}
.wiz-out h3{margin:.1rem 0 .4rem;border:0;padding:0}
.group-box{border:1px solid var(--line);background:var(--card);padding:1rem 1.1rem;border-left:4px solid var(--rule)}
.group-box h2{margin-top:.2rem}
.mbar{display:none}
.section{margin:2rem 0;padding-top:.35rem}
.table-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--card)}
.matrix{width:100%;border-collapse:collapse;font-size:.94rem}
.matrix caption{text-align:left;padding:.55rem .7rem;font:700 .78rem/1.3 var(--sans);background:#eaecf0;border-bottom:1px solid var(--line)}
.matrix th,.matrix td{border-top:1px solid var(--line);padding:.55rem .7rem;vertical-align:top;text-align:left}
.matrix thead th{background:var(--rule);color:#fff;font:650 .78rem/1.3 var(--sans)}
.matrix tbody th{width:13rem;font-weight:700;background:#f8f9fa}
.matrix tbody tr:nth-child(even) td{background:#f8f9fa}
.drawers details{border:1px solid var(--line);background:var(--card);margin:0 0 .4rem}
.drawers summary{cursor:pointer;padding:.62rem .75rem;font:700 .98rem/1.35 var(--serif);color:var(--rule)}
.drawers summary:hover{background:#f8f9fa}
.drawer-body{padding:0 .75rem .75rem}
.plain,.modules{margin:0 0 1rem;padding-left:1.2rem}
.plain li,.modules li{margin:0 0 .4rem}
.advisory{border:2px solid var(--advb);background:var(--adv);padding:.85rem 1rem;margin:0 0 1rem}
.advisory-nv{border-color:var(--rule);background:#eef2f8}
.advisory-kicker{margin:0 0 .35rem;font:700 .72rem/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--advb)}
.advisory-nv .advisory-kicker{color:var(--rule)}
.advisory h3{margin:.1rem 0 .45rem;border:0;padding:0}
.notice{background:#fff;border:1px solid var(--accent);padding:.7rem .8rem}
.crumb{margin:1rem 0 0;font:.88rem/1.4 var(--sans)}
.crumb span{margin:0 .35rem;color:var(--muted)}
a{color:#0645ad}
a:hover{color:var(--rule)}
code{font-family:var(--mono);font-size:.88em}
.site-foot{margin-top:3rem;padding:1.5rem 0 2.5rem;background:var(--rule);color:#e8e2d4;font:.92rem/1.5 var(--sans)}
.site-foot a{color:#fff}
.foot-reg{border:1px solid rgba(255,255,255,.28);padding:.75rem .85rem;background:rgba(0,0,0,.18)}
.foot-h{color:#fff;margin:0 0 .6rem;font-size:1.05rem;border:0;padding:0}
.foot-nav{display:flex;flex-wrap:wrap;gap:.4rem 1rem;list-style:none;padding:0;margin:1rem 0}
.copy{opacity:.85;margin:0}
.page-404{padding:2rem 0 4rem}
@media (max-width:640px){
  body{font-size:1rem}
  .toc{position:static}
  .matrix tbody th{width:auto}
  h1{font-size:1.38rem}
  .cta{width:100%;text-align:center}
  body.view-home,body.view-course{padding-bottom:4.25rem}
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:8;gap:.4rem;padding:.4rem .55rem calc(.4rem + env(safe-area-inset-bottom,0px));background:var(--rule);border-top:3px solid var(--ok)}
  .mbar .cta{flex:1;width:auto;font-size:.8rem;padding:.55rem .35rem}
}
@media print{
  .toc,.cta,.mast-note,.filter-bar,.site-foot .foot-nav,.mbar{display:none}
  body{background:#fff;color:#000;padding-bottom:0}
  a{color:#000}
  .card,.advisory{break-inside:avoid}
}
