*,*::before,*::after{box-sizing:border-box}
html{color-scheme:light;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16.5px/1.7 var(--fb)}
img{max-width:100%;height:auto}
a{color:var(--link);text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--fh);color:var(--ink);line-height:1.2;text-wrap:balance;margin:0}
h2{font-size:clamp(23px,2.4vw,30px);margin:42px 0 12px}
h3{font-size:19px;margin:26px 0 8px}
p{margin:0 0 14px}
ul,ol{margin:0 0 16px;padding-left:22px}
li{margin:4px 0}
.wrap{max-width:1180px;margin:0 auto;padding-inline:32px}
@media(max-width:600px){.wrap{padding-inline:16px}}
/* notification bar (Campus Explorer, code ...Notification-Bar-V1-BrandBlueRed-All-Pages-Top) */
.nbar{position:sticky;top:0;z-index:20;background:var(--bar-bg);color:var(--bar-ink)}
.nbar .wrap{display:flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding-block:7px;text-align:center}
.nbar .k{font:800 11.5px/1 var(--fh);letter-spacing:.09em;text-transform:uppercase;opacity:.9}
.nbar .t{font-weight:700;font-size:15px;line-height:1.3}
.nbar .btn{min-height:34px;padding:7px 15px;font-size:14px}
.nbar .x{background:none;border:1px solid currentColor;color:inherit;border-radius:50%;width:26px;height:26px;opacity:.7;cursor:pointer;flex:none}
@media(max-width:700px){.nbar .k{display:none}.nbar .t{font-size:13px;text-align:left;min-width:0}.nbar .wrap{justify-content:space-between;gap:8px;min-height:48px}.nbar .btn{white-space:nowrap;font-size:13px;padding:7px 10px;min-height:34px}.nbar .x{width:32px;height:32px}}
@media(max-width:420px){.nbar .t{display:none}.nbar .wrap{justify-content:center}}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 16px/1.2 var(--fb);text-decoration:none;border-radius:var(--r);padding:13px 22px;min-height:46px;border:0;cursor:pointer}
.btn.money{background:var(--money);color:#fff;box-shadow:0 2px 0 var(--money-shadow)}
.btn.money:hover{background:var(--money-hover)}
.btn.money.inv{background:#fff;color:var(--money);box-shadow:none}
.disc{display:block;font-size:12.5px;color:var(--muted);margin-top:8px}
/* header */
.hdr{background:var(--hdr-bg);color:var(--hdr-ink);border-bottom:var(--hdr-border)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}
.hdr .logo img{display:block;height:40px;width:auto}
.nav{display:flex;gap:26px;align-items:center;font:600 15.5px/1 var(--fb)}
.nav a{color:var(--hdr-ink);text-decoration:none}
.nav a.caret::after{content:"";display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:0 0 3px 8px;opacity:.7}
.menu-btn{display:none;background:none;border:1.5px solid currentColor;color:var(--hdr-ink);border-radius:var(--r);font:700 14px/1 var(--fb);padding:9px 12px}
@media(max-width:900px){.nav{display:none}.menu-btn{display:inline-block}.hdr .logo img{height:32px}.hdr .wrap{min-height:62px}}
/* crumbs + page head */
.crumbs{font-size:13.5px;color:var(--muted);margin-bottom:12px}
.crumbs a{color:var(--muted)}
.meta{font-size:14px;color:var(--muted);margin-top:12px}
/* layout: article + sidebar */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:start;padding-block:34px 56px}
.article{max-width:720px;min-width:0}
.side{position:sticky;top:70px;display:flex;flex-direction:column;gap:22px;max-height:calc(100vh - 80px);overflow:auto}   /* overflow: last-resort fallback on very short screens; the TOC list scrolls first (vfix2) */
@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr);gap:0;padding-block:22px 40px}.side{display:none}}
/* TOC */
.toc{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:14px 16px;font-size:15px}
.toc b{display:block;font:700 13px/1 var(--fh);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.toc ol{margin:0;padding-left:20px}
.toc li{margin:0;padding-block:6px;line-height:1.45}
.toc a{color:var(--ink);text-decoration:none}   /* inline: a wrapped item keeps its list number on its first line */
h2{scroll-margin-top:90px}
.toc a:hover{text-decoration:underline}
details.toc-m{display:none;margin-bottom:22px}
@media(max-width:900px){details.toc-m{display:block}}
details.toc-m summary{cursor:pointer;font-weight:700;list-style:none}
details.toc-m summary::-webkit-details-marker{display:none}
details.toc-m summary::after{content:" +";color:var(--muted)}
details.toc-m[open] summary::after{content:" –"}
/* Campus Explorer inline lead widget (code CNA-Chicago-Left-Sidebar) */
.cew{background:var(--ce-bg);color:var(--ce-ink);border-radius:var(--r);padding:20px;border:var(--ce-border)}
.cew h4{font:800 19px/1.25 var(--fh);color:inherit;margin:0 0 6px}
.cew p{font-size:14.5px;line-height:1.5;margin:0 0 12px;opacity:.92}
.cew .f{display:grid;gap:8px}
.cew input{font:400 16px/1 var(--fb);padding:12px;border-radius:calc(var(--r) - 2px);border:1px solid var(--line);width:100%}
.cew .btn{width:100%}
.cew small{display:block;font-size:12px;margin-top:8px;opacity:.75}
.ce-m{display:none;margin:26px 0}
@media(max-width:900px){.ce-m{display:block}}
/* Esyoh placements (rendered by Esyoh's widget.js, styled by site CSS) */
.esy{margin:26px 0;border-radius:var(--r);background:var(--esy-bg);border:1px solid var(--line);padding:18px}
.esy h5{font:700 17px/1.3 var(--fh);margin:0 0 10px}
.esy .row{display:flex;gap:8px;flex-wrap:wrap}
.esy input{flex:1 1 140px;min-width:0;font:400 16px/1 var(--fb);padding:12px;border-radius:calc(var(--r) - 2px);border:1px solid var(--line)}
.esy .btn{flex:none}
.esy.button{text-align:center}
.esy.button .btn{width:100%;white-space:normal}
.esy small{display:block;font-size:11.5px;color:var(--muted);margin-top:8px;text-transform:uppercase;letter-spacing:.06em}
.esy .lst{display:grid;gap:10px}
.esy .sch{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:calc(var(--r) - 2px);padding:10px}
.esy .sch i{width:52px;height:38px;border-radius:4px;background:repeating-linear-gradient(45deg,#e9ecef,#e9ecef 6px,#f5f6f8 6px,#f5f6f8 12px)}
.esy .sch span{font-size:14px;color:var(--muted);line-height:1.35}
.esy .sch span b{display:block;color:var(--ink);font-size:15px}
.esy .sch .btn{min-height:36px;padding:8px 12px;font-size:14px}
@media(max-width:480px){.esy .sch{grid-template-columns:44px minmax(0,1fr)}.esy .sch .btn{grid-column:1/-1}}
/* callouts and figures */
.callout{background:var(--surface);border-radius:var(--r);padding:16px 18px;margin:20px 0;border:1px solid var(--line)}
.stat{display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
.stat b{font:800 clamp(30px,4vw,40px)/1 var(--fh);color:var(--ink);font-variant-numeric:tabular-nums}
.addr{display:grid;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:12px 0 18px}
.addr a{font-weight:700}
details.acc{border:1px solid var(--line);border-radius:var(--r);margin:10px 0;background:#fff}
details.acc summary{cursor:pointer;padding:14px 16px;font:700 16.5px/1.35 var(--fh)}
details.acc>div{padding:0 16px 8px}
/* home */
.hero .article-cta{margin:0}
.band .wrap>div:first-child{flex:1 1 420px;min-width:0}
.band .wrap>div:first-child p{margin:8px 0 0}
.band .article-cta{margin:0}
.hero{background:var(--hero-bg);color:var(--hero-ink)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:center;padding-block:54px 58px}
.hero h1{color:var(--hero-ink);font-size:clamp(34px,4.6vw,56px);font-weight:800;letter-spacing:-.01em}
.hero .lede{font-size:18px;line-height:1.6;margin:16px 0 24px;max-width:56ch;color:var(--hero-sub)}
.eyebrow{font:700 12.5px/1.2 var(--fh);letter-spacing:.14em;text-transform:uppercase;color:var(--hero-sub);margin-bottom:14px}
.hero .disc{color:var(--hero-sub)}
@media(max-width:900px){.hero .wrap{grid-template-columns:minmax(0,1fr);gap:28px;padding-block:32px 36px}.hero .lede{font-size:17px}}
.req{background:var(--req-bg);color:var(--req-ink);border-radius:var(--r);padding:22px;border:var(--req-border)}
.req .k{font:700 12.5px/1.2 var(--fh);letter-spacing:.1em;text-transform:uppercase;opacity:.8;margin:0 0 10px}
.req .tot{font:800 54px/1 var(--fh);font-variant-numeric:tabular-nums}
.req .tot span{font:600 17px/1 var(--fb);margin-left:8px}
.req .bar{display:flex;height:42px;border-radius:6px;overflow:hidden;margin:16px 0 10px;font:700 13.5px/1 var(--fb)}
.req .bar span{display:flex;align-items:center;padding:0 10px;color:#fff;white-space:nowrap}
.req .bar .th{flex:80;background:var(--req-a)}
.req .bar .cl{flex:40;background:var(--req-b)}
.req p{margin:0;font-size:14.5px;opacity:.9}
.band{background:var(--band-bg);color:var(--band-ink);margin:44px 0}
.band .wrap{padding-block:34px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px}
.band h2{color:var(--band-ink);margin:0;font-size:clamp(22px,2.6vw,30px)}
.band .disc{color:var(--band-ink);opacity:.8}
/* home, A revised (Hoa 2026-10-12; ops design/mockups/home-A-revised.reference.html): homepage-only, scoped under .home */
.home .ico{width:48px;height:48px;flex:none;display:block}
.home .mi{width:14px;height:14px;flex:none}
.home .chev{width:16px;height:16px;flex:none;transition:transform .15s}
.home .kbar{display:block;width:56px;height:10px;margin:0 0 16px;background:linear-gradient(#41B6E6 0 3px,transparent 3px 7px,#41B6E6 7px 10px)}
.home .sec h2{margin:0 0 14px}
/* framed Esyoh slot (site frame; Esyoh's script renders the inside) */
.home .slot{background:#fff;border:1px solid var(--line);border-top:3px solid #41B6E6;border-radius:var(--r);padding:14px 18px 16px;margin:28px 0}
.home .slot-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;font:700 11.5px/1.3 var(--fh);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.home .slot-tag{background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:3px 6px;color:#176E9B}
.home .slot .article-cta{margin:0}
.home [data-hide-empty][hidden]{display:none}
/* chips */
.home .chip{display:inline-flex;align-items:center;gap:6px;font:600 13.5px/1 var(--fb);padding:6px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.home .chip.len{background:#E8F5FC;border-color:#BFE3F4;color:#176E9B}
.home .chip.cost{background:var(--ink);border-color:var(--ink);color:#fff}
.home .chip.city{border:0;background:none;padding-inline:0;font-weight:500;color:var(--muted)}
.home .chip.ask{background:var(--surface);border:1px dashed #B9C8D6;color:var(--muted);font-weight:500;white-space:normal;line-height:1.25}
/* disclosure */
.home details summary{list-style:none}
.home details summary::-webkit-details-marker{display:none}
.home details.acc summary{display:flex;justify-content:space-between;align-items:center;gap:12px}
.home details.acc summary::after{content:"";flex:none;width:9px;height:9px;border-right:2.4px solid #176E9B;border-bottom:2.4px solid #176E9B;transform:rotate(45deg);margin:-4px 4px 0 0;transition:transform .15s}
.home details.acc[open] summary::after{transform:rotate(225deg);margin-top:4px}
.home details.acc[open]{border-color:#B9D3E6}
.home details.acc>div{padding:2px 16px 8px}
.home details.acc figure{margin:16px 0;overflow-x:auto}
.home details.acc td a{overflow-wrap:anywhere}
/* hero + feature trio */
.home .hero .wrap{grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);grid-template-areas:"t z" "f f";gap:30px 64px;align-items:center;padding-block:46px 0}
.home .hero .t{grid-area:t}
.home .hero .z{grid-area:z}
.home .hero .lede{margin-bottom:22px}
.home .hero .req{background:#fff;border:1px solid var(--line);border-top:3px solid #41B6E6;box-shadow:0 14px 34px rgba(20,34,58,.10);margin:0;padding:22px 24px 20px}
.home .hero .req p.see{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);opacity:1}
.home .hero .req p.see a{font:700 15.5px/1.3 var(--fb);color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.home .trio{grid-area:f;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;border-top:1px solid var(--line);padding:26px 0 34px;margin-top:10px}
.home .trio>div{display:grid;grid-template-columns:48px minmax(0,1fr);gap:0 16px;align-items:start}
.home .trio .ico{grid-row:span 2}
.home .trio h3{font-size:16.5px;margin:3px 0 5px}
.home .trio p{font-size:14.5px;line-height:1.55;color:var(--muted);margin:0}
/* directory */
.home .dir-sec{background:var(--surface);border-top:1px solid var(--line);padding:52px 0 58px}
.home #programs{scroll-margin-top:60px}   /* "See the 14 programs" lands below the sticky bar (48-50px) */
.home .dhead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:22px 48px;align-items:end;margin:0 0 24px}
.home .dhead p{margin:0 0 10px;color:var(--muted)}
.home .dhead .slot{margin:0}
.home .zipcard{padding:20px 24px 18px;box-shadow:0 14px 34px rgba(20,34,58,.10)}
.home .count{font:700 13px/1.2 var(--fh);letter-spacing:.08em;text-transform:uppercase;color:#176E9B;white-space:nowrap}
.home .sl{--cols:minmax(0,1fr) 160px 300px 140px;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.home .sl-head{display:grid;grid-template-columns:var(--cols);gap:16px;align-items:center;padding:12px 20px;background:var(--ink);color:#fff;font:700 12px/1.2 var(--fh);letter-spacing:.08em;text-transform:uppercase}
.home .sl-head span:last-child{text-align:right}
.home .srow{border-top:1px solid var(--line)}
.home .srow:first-of-type{border-top:0}
.home .srow>summary{display:grid;grid-template-columns:var(--cols);gap:16px;align-items:center;padding:13px 20px;cursor:pointer}
.home .srow>summary:hover{background:#FAFCFE}
.home .srow .nm{grid-column:1;font:700 16px/1.3 var(--fh);color:var(--ink)}
.home .srow .nm a{color:var(--ink)}
.home .srow .chip.city{grid-column:2}
.home .srow .lc{grid-column:3;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.home .srow .pd{grid-column:4;justify-self:end;display:inline-flex;align-items:center;gap:6px;font:600 14px/1 var(--fb);color:#176E9B;white-space:nowrap}
.home .srow[open] .pd .chev{transform:rotate(180deg)}
.home .srow[open]>summary{background:#F6FAFD}
.home .srow .sb{max-width:none;padding:6px 20px 14px;border-top:1px dashed var(--line);background:#FBFDFF}
.home .srow .sb figure{margin:12px 0 4px;overflow-x:auto}
.home .srow .sb table{border-collapse:collapse;width:100%;font-size:14.5px}
.home .srow .sb th,.home .srow .sb td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}
.home .srow .sb td a{overflow-wrap:anywhere}
.home .sl-ad{border-top:1px solid var(--line);background:var(--surface);padding:18px 20px}
.home .sl-ad .slot{margin:0}
.home .after-list{max-width:760px;margin:26px auto 0}
.home .after-list .slot{margin:0}
/* Ready band */
.home .ready{background:var(--ink);color:#fff;margin:0;border-top:0}
.home .ready .wrap{padding-block:42px}
.home .ready .stars{margin:0 0 12px}
.home .ready h2,.home .ready p{color:#fff}
.home .ready .disc{color:#fff;opacity:.75}
/* how: sticky lead + numbered steps (the number is a text digit, not a list marker) */
.home .how{padding:66px 0 40px}
.home .split{display:grid;grid-template-columns:minmax(0,370px) minmax(0,1fr);gap:64px;align-items:start}
.home .split .lead{position:sticky;top:74px}
.home .split .lead p{color:var(--muted)}
.home .steps{list-style:none;margin:0;padding:0}
.home .step{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:0 22px;padding-bottom:26px;margin:0}
.home .step::before{content:"";position:absolute;left:23px;top:56px;bottom:6px;width:2px;background:repeating-linear-gradient(#41B6E6 0 7px,transparent 7px 12px)}
.home .step:last-child::before{display:none}
.home .step .num{grid-row:1/span 2;align-self:start;width:48px;height:48px;border-radius:50%;background:var(--ink);color:#fff;font:800 20px/48px var(--fh);text-align:center;font-variant-numeric:tabular-nums}
.home .step h3{grid-column:2;margin:10px 0 12px;font-size:21px}
.home .step .article{grid-column:2;max-width:none}
/* why: fact tiles */
.home .why{background:var(--surface);border-top:1px solid var(--line);padding:60px 0}
.home .why .intro{max-width:780px;margin-bottom:26px}
.home .why .intro p{color:var(--muted);margin:0}
.home .tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.home .tile{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-top:4px solid var(--ink);border-radius:var(--r);padding:22px 22px 8px}
.home .tile .th{display:flex;align-items:center;gap:12px;min-height:48px}
.home .tile h3{margin:0;font-size:17px}
.home .tile .fig{font:800 40px/1 var(--fh);color:var(--ink);margin:18px 0 6px;letter-spacing:-.01em}
.home .tile .cap{font-size:14px;color:#176E9B;font-weight:600;margin:0 0 14px;line-height:1.4;min-height:2.9em}
.home .tile .tb{flex:1;max-width:none;font-size:15.5px;line-height:1.65;border-top:1px solid var(--line);padding-top:14px}
.home .why .after-list{margin-top:30px}
/* guide, free, FAQ */
.home .guide{padding:66px 0 30px}
.home .guide .article{max-width:none}
.home .guide details.acc{border-left:4px solid #41B6E6}
.home .guide .slot.other{margin:30px 0 0}
.home .free{background:var(--surface);border-top:1px solid var(--line);padding:60px 0 56px}
.home .free .intro{max-width:780px}
.home .free .intro p{color:var(--muted)}
.home .cards2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:22px 0 0;align-items:stretch}   /* equal-height cards, like the Why tiles */
.home .card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 22px 6px}
.home .card h3{margin:0 0 10px;font-size:18px}
.home .free .after-list{margin-top:30px}
.home .faq{padding:66px 0 72px}
.home .qa{border-top:1px solid var(--line);padding:20px 0 6px}
.home .qa:first-child{border-top:0;padding-top:0}
.home .qa h3{margin:0 0 8px;font-size:19px}
.home .qa .article{max-width:none}
@media(max-width:900px){
 .home .hero .wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"t" "z" "f";gap:22px;padding-block:28px 34px}
 .home .trio{grid-template-columns:minmax(0,1fr);gap:16px;padding:22px 0 4px;margin:0}
 .home .trio>div{grid-template-columns:40px minmax(0,1fr);gap:0 14px}
 .home .trio .ico{width:40px;height:40px}
 .home .zipcard{padding:16px 16px 14px}
 .home .hero .req{padding:18px 18px 16px}
 .home .dhead{grid-template-columns:minmax(0,1fr)}
 .home .dir-sec,.home .why,.home .free{padding:38px 0 40px}
 .home .how,.home .guide{padding:40px 0 20px}
 .home .faq{padding:40px 0 48px}
 .home .split{grid-template-columns:minmax(0,1fr);gap:22px}
 .home .split .lead{position:static}
 .home .tiles,.home .cards2{grid-template-columns:minmax(0,1fr)}
 .home .sl-head{display:none}
 .home .srow>summary{display:flex;flex-wrap:wrap;gap:8px 10px;padding:14px}
 .home .srow .nm{flex:1 0 100%;font-size:16.5px}
 .home .srow .pd{margin-left:auto}
 .home .srow .sb{padding:6px 14px 12px}
 .home .sl-ad{padding:14px 12px}
 .home .step{grid-template-columns:40px minmax(0,1fr);gap:0 14px}
 .home .step .num{width:40px;height:40px;font-size:17px;line-height:40px}
 .home .step::before{left:19px;top:48px}
 .home .step h3{font-size:19px;margin-top:7px}
 .home .ready .wrap{padding-block:32px}
}
@media(max-width:600px){
 .home .hero .t{display:flex;flex-direction:column}
 .home .hero .t h1{order:1}
 .home .hero .t .article-cta{order:2;margin:16px 0 18px}
 .home .hero .t .lede{order:3;margin:0}
 .home .trio{gap:0;padding:4px 0 0}
 .home .trio>div{grid-template-columns:32px minmax(0,1fr);gap:0 12px;padding:12px 0;border-top:1px solid var(--line)}
 .home .trio>div:first-child{border-top:0}
 .home .trio .ico{width:32px;height:32px}
 .home .trio h3{font-size:15.5px;margin:1px 0 3px}
 .home .trio p{font-size:14px;line-height:1.45}
}
/* footer */
.ftr-cta{background:var(--fcta-bg);color:var(--fcta-ink)}
.ftr-cta .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 32px;align-items:center;padding-block:38px}
.ftr-cta h2{color:var(--fcta-ink);margin:0 0 8px}
.ftr-cta p{margin:0;opacity:.9;max-width:62ch}
.ftr-cta .disc{color:var(--fcta-ink);opacity:.75}
@media(max-width:760px){.ftr-cta .wrap{grid-template-columns:minmax(0,1fr)}}
.ftr{background:var(--ftr-bg);color:var(--ftr-ink);font-size:14.5px}
.ftr .wrap{padding-block:34px 26px;display:grid;gap:26px}
.ftr .cols{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:26px}
.ftr h4{font:700 13px/1.2 var(--fh);letter-spacing:.08em;text-transform:uppercase;color:var(--ftr-ink);opacity:.75;margin:0 0 10px}
.ftr ul{list-style:none;padding:0;margin:0;columns:1}
.ftr li{margin:0}
.ftr li a{display:inline-block;padding-block:7px}
.crumbs a{display:inline-block;padding-block:6px}
.ftr a{color:var(--ftr-ink);text-decoration:none}
.ftr a:hover{text-decoration:underline}
.ftr .legal{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between;border-top:1px solid var(--ftr-line);padding-top:16px;opacity:.85}
.ftr .legal a{text-decoration:underline}
.ftr .logo img{height:34px}
@media(max-width:760px){.ftr .cols{grid-template-columns:minmax(0,1fr)}}
/* header nav: dropdowns (CSS :hover/:focus-within, no JS) and phone disclosure */
.nav>li,.nav .sub li{list-style:none;margin:0}
.nav,.nav ul{margin:0;padding:0}
.nav>li{position:relative}
.nav>li>a{display:inline-block;padding-block:12px}
.nav .sub{display:none;position:absolute;left:-14px;top:100%;z-index:30;min-width:270px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 24px rgba(20,34,58,.14);padding:8px 0}
.nav li:hover>.sub,.nav li:focus-within>.sub{display:block}
.nav .sub a{display:block;padding:8px 16px;font-weight:600;font-size:15px;line-height:1.3}
.nav .sub a:hover{background:var(--surface)}
.nav .sub .sub2{position:static;display:block;border:0;box-shadow:none;padding:0;min-width:0}
.nav .sub .sub2 a{padding-left:30px;font-weight:400;font-size:14.5px}
.nav .sub .grp>a{font-weight:700}
.nav .sub.wide{min-width:330px;max-height:calc(100vh - 150px);overflow:auto}
.mnav{display:none;position:relative}
.mnav>summary{list-style:none;cursor:pointer;color:var(--hdr-ink);border:1.5px solid currentColor;border-radius:var(--r);font:700 14px/1 var(--fb);padding:11px 14px;min-height:44px;display:inline-flex;align-items:center}
.mnav>summary::-webkit-details-marker{display:none}
.mnav .mpanel{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:min(340px,calc(100vw - 32px));max-height:calc(100vh - 140px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 24px rgba(20,34,58,.18);padding:6px 0}
.mnav ul{list-style:none;margin:0;padding:0}
.mnav li{margin:0}
.mnav a{display:block;padding:11px 16px;color:var(--ink);text-decoration:none;font:600 15.5px/1.3 var(--fb)}
.mnav ul ul a{padding-left:30px;font-weight:400;font-size:15px}
.mnav ul ul ul a{padding-left:44px;font-size:14.5px}
.mnav .mh{display:block;padding:12px 16px 4px;font:700 12px/1 var(--fh);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
@media(max-width:900px){.mnav{display:block}}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #41B6E6;outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:var(--ink);padding:10px 14px;z-index:60}
.skip:focus{left:8px;top:8px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.hdr .logo img{height:40px!important}
.ftr .logo img{height:34px!important}
@media(max-width:900px){.hdr .logo img{height:32px!important}}
/* article template (Task 7): Esyoh placement wrapper, CE card disclosure on the navy card, glance box, inline SVG figures */
.article-cta{margin:26px 0}
.cew .disc{color:inherit}
.glance>b{display:block;font-family:var(--fh);margin-bottom:6px}
.glance ul{margin:0}
.article svg{max-width:100%;height:auto}
/* Task 9: notification bar dismissed for the session (class set in <head> before paint) */
html.nbar-off .nbar{display:none}
/* utility pages + archives: the article shell without the sidebar */
.layout.solo{grid-template-columns:minmax(0,1fr)}
.layout.solo .article{max-width:780px}
.crumbs span[aria-current]{color:var(--ink)}
/* long URLs and nbsp-joined runs (cookie/privacy text) wrap; tables in articles and utility pages scroll inside their box on phones, never the page */
.article{overflow-wrap:break-word}
.fc-table-wrap,.article figure.wp-block-table{overflow-x:auto;margin:18px 0;-webkit-overflow-scrolling:touch}
.fc-table{border-collapse:collapse;width:100%;font-size:15px}
.fc-table th,.fc-table td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.fc-table thead:has(tr:empty){display:none}
.article details.acc td a{overflow-wrap:anywhere}
/* archives */
.post-card{padding:22px 0;border-bottom:1px solid var(--line)}
.post-card:first-child{padding-top:4px}
.post-card h2{font-size:clamp(20px,2.2vw,24px);margin:0 0 4px;border:0;padding:0}
.post-card h2 a{color:var(--ink);text-decoration:none}
.post-card h2 a:hover{text-decoration:underline}
.post-card .meta{margin:0 0 8px}
.post-card p{margin:0}
.post-card .more{font-weight:700;white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* contact: Otter's 60.5px mail icon and the envelope beside the address (the extractor dropped their sizes) */
.ct-icon{margin:0 0 6px}
.ct-icon svg{display:block;width:72px;height:72px;fill:var(--ink)}
.ct-mail{display:flex;align-items:center;gap:10px;font-weight:700;overflow-wrap:anywhere}
.ct-mail .ct-env{flex:none;width:20px;height:20px}
/* cookie notice: consent for analytics (DECISIONS 2026-10-17), fixed to the bottom edge; never above the sticky bar (it sits at the top) */
.ckn{position:fixed;left:0;right:0;bottom:0;z-index:15;background:#fff;color:var(--ink);border-top:3px solid #41B6E6;box-shadow:0 -6px 20px rgba(20,34,58,.12)}
.ckn[hidden]{display:none}
.ckn .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px 28px;padding-block:14px}
.ckn-t{font:700 15px/1.3 var(--fh);margin:0 0 2px}
.ckn-d{font-size:14px;line-height:1.5;margin:0;color:var(--muted)}
.ckn-d a{color:var(--ink);font-weight:700;white-space:nowrap}
.ckn-b{display:flex;gap:10px;flex:none}
.ckn-btn{font:700 14px/1.2 var(--fb);border-radius:var(--r);padding:10px 16px;min-height:42px;cursor:pointer;border:1.5px solid var(--ink);background:#fff;color:var(--ink)}
.ckn-btn.ckn-acc{background:var(--ink);color:#fff}
@media(max-width:760px){.ckn .wrap{flex-direction:column;align-items:stretch;padding-block:10px 12px;gap:8px}.ckn-t{font-size:14px}.ckn-d{font-size:12.5px;line-height:1.45}.ckn-b .ckn-btn{flex:1;min-height:40px;padding:8px 12px}}
/* vfix: inline SVG infographics scroll sideways in their own box below the 720px article width (text stays >= 10.8px,
   as on desktop); a right-edge fade over the SVG's own white margin hints that the box scrolls */
.fc-svg{position:relative;padding-bottom:8px}   /* 8px = the line-box gap the inline SVG had before: desktop spacing unchanged */
.fc-svg-s{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.fc-svg-s:focus-visible{outline:3px solid #41B6E6;outline-offset:2px}
.article .fc-svg svg{display:block;width:100%;min-width:720px;max-width:none;height:auto}
/* fade only where the box is narrower than 720px (phones up to 783px; 900-1151px beside the sidebar): wide screens unchanged */
@media(max-width:783px),(min-width:900px) and (max-width:1151px){.fc-svg::after{content:"";position:absolute;top:0;right:0;bottom:8px;width:44px;pointer-events:none;background:linear-gradient(to right,rgba(255,255,255,0),#fff 80%);box-shadow:inset -10px 0 10px -10px rgba(20,34,58,.45)}}
/* vfix2 (Ruling 31): phones get a one-line UI hint above the box (generated content: chrome, not page text); the edge
   fade + shadow is always visible at scroll-start and, where scroll-driven animations exist, fades out at the end */
@media(max-width:783px){
  .fc-svg::before{content:"Swipe to see the full comparison \2192";display:block;font:600 13.5px/20px var(--fb);color:var(--muted);text-align:right;margin:0 0 6px}
  .fc-svg::after{top:26px}
}
@supports (animation-timeline:scroll()){
  .fc-svg{timeline-scope:--fcs}
  .fc-svg-s{scroll-timeline:--fcs x}
  .fc-svg::after{animation:fc-edge linear both;animation-timeline:--fcs}
  @keyframes fc-edge{0%,85%{opacity:1}100%{opacity:0}}
}
/* vfix: archives use the full container; boxed two-column cards from 900px */
@media(min-width:900px){
  .post-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:stretch}
  .post-card,.post-card:first-child{padding:20px 22px 22px;border:1px solid var(--line);border-top:3px solid #41B6E6;border-radius:var(--r);background:#fff}
}
/* vfix: TOC numbers in one left-aligned column ("10." no longer pokes out past "9.") */
.toc ol{list-style:none;padding-left:0;counter-reset:toc}
.toc li{display:grid;grid-template-columns:2em minmax(0,1fr);column-gap:.25em;counter-increment:toc}
.toc li::before{content:counter(toc) ".";white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
/* vfix: a nested sub-list adds no extra gap before the next top-level item */
li>ul,li>ol{margin:4px 0 0}
/* vfix: cookie tables (two-column, header-less): one label-column width in every table; scoped to /cookies/ (.page-cookies on the layout) */
.page-cookies .fc-table:has(thead tr:empty):not(:has(td:nth-child(3))) td:first-child{width:7.5em;white-space:nowrap}
/* vfix2 (Ruling 32): the sticky sidebar keeps the Campus Explorer card whole; the TOC list scrolls inside its own box
   (bordered, padded, so its bottom edge always shows) with a soft bottom shade while more items sit below */
.side>.cew{flex:none}
.side .toc{display:flex;flex-direction:column;min-height:0;flex:0 1 auto;padding-bottom:8px}
.side .toc>b{flex:none}
.side .toc{font-size:14px}.side .toc li{padding-block:4px;line-height:1.4}   /* compact: a 10-item TOC fits beside the card at 1280x900 */
.side .toc ol{min-height:5.5em;overflow-y:auto;
  background:linear-gradient(var(--surface),var(--surface)) 0 100%/100% 26px no-repeat local,
    linear-gradient(to top,rgba(20,34,58,.13),rgba(20,34,58,0)) 0 100%/100% 22px no-repeat scroll}
/* vfix2: an archive with a single post shows one full-width card, not half a grid */
@media(min-width:900px){.post-list:has(>.post-card:only-child){grid-template-columns:minmax(0,1fr)}}
/* print (audit item 6): the sticky bar, cookie notice, menus, partner CTAs and widgets never print over the article */
@media print{
  .nbar,#ckn,.mnav,.skip,.ce-m,.side,.ftr-cta,.esy_widget_container,.toc-m{display:none!important}
  body{padding-bottom:0!important}
  .layout{display:block!important}
}
/* featured images (audit item 4): a fixed 3:2 crop (the RN post's original is 1175x620); width/height attrs keep CLS 0 */
.article .feat{margin:0 0 22px}
.article .feat img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
@media(max-width:900px){.article .feat img{aspect-ratio:16/9}}
.post-card .thumb{display:block;margin:0 0 14px}
.post-card .thumb img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
.ftr-ckn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.ckn-open-p{margin:0 0 18px}
