:root{
  color-scheme: light;
  --ground:#FBFAF8; --surface:#FFFFFF; --band:#F3EEE7; --band-2:#EDE5DA;
  --ink:#191210; --ink-2:#5C4D45; --ink-3:#8A7A70;
  --rule:#E4DBD1; --rule-strong:#C7B9AC;
  --brand:#8E1B2E; --brand-hover:#761523; --on-brand:#FFFFFF;
  --brand-soft:#F8E9EA; --brand-line:#E0C1C4;
  --strip-bg:#8E1B2E; --strip-fg:#FFF6F1; --strip-rule:rgba(255,255,255,.45);
  --gold:#A9760F; --gold-soft:#FAF0DA; --gold-line:#E7D3A6;
  --jade:#1D6354; --jade-soft:#E4F0EC; --jade-line:#BEDCD3;
  --flag:#9A4A12; --flag-soft:#FBEDE0; --flag-line:#EBD2B8;
  --c1:#E19A90; --c2:#CF7B75; --c3:#BB585C; --c4:#9F3A47; --c5:#7C2032;
  --shadow:0 1px 2px rgba(25,18,16,.05), 0 8px 24px -12px rgba(25,18,16,.16);
  --logo-plate:transparent; --logo-pad:0px; --logo:url(../img/logo-assumption-university.png);
  --serif:"Newsreader", Georgia, "Times New Roman", serif;
  --sans:"Archivo", "Helvetica Neue", Arial, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --wrap:1180px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --ground:#141110; --surface:#1D1917; --band:#231D1A; --band-2:#2A2320;
    --ink:#F5EEE7; --ink-2:#B6A79B; --ink-3:#8A7A6E;
    --rule:#372F2A; --rule-strong:#544840;
    --brand:#E5706F; --brand-hover:#F08B89; --on-brand:#1A0F10;
    --brand-soft:#2E1B1C; --brand-line:#563135;
    --strip-bg:#40161C; --strip-fg:#F6D7D5; --strip-rule:rgba(246,215,213,.4);
    --gold:#E0AB4A; --gold-soft:#2C2314; --gold-line:#4B3D1F;
    --jade:#5CBFA5; --jade-soft:#12312B; --jade-line:#255146;
    --flag:#E09A5F; --flag-soft:#33210F; --flag-line:#503620;
    --c1:#F6C7BC; --c2:#E79C93; --c3:#D4726F; --c4:#B94F55; --c5:#95323F;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.7);
    --logo-plate:rgba(255,255,255,.94); --logo-pad:5px 9px;
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --ground:#141110; --surface:#1D1917; --band:#231D1A; --band-2:#2A2320;
  --ink:#F5EEE7; --ink-2:#B6A79B; --ink-3:#8A7A6E;
  --rule:#372F2A; --rule-strong:#544840;
  --brand:#E5706F; --brand-hover:#F08B89; --on-brand:#1A0F10;
  --brand-soft:#2E1B1C; --brand-line:#563135;
  --strip-bg:#40161C; --strip-fg:#F6D7D5; --strip-rule:rgba(246,215,213,.4);
  --gold:#E0AB4A; --gold-soft:#2C2314; --gold-line:#4B3D1F;
  --jade:#5CBFA5; --jade-soft:#12312B; --jade-line:#255146;
  --flag:#E09A5F; --flag-soft:#33210F; --flag-line:#503620;
  --c1:#F6C7BC; --c2:#E79C93; --c3:#D4726F; --c4:#B94F55; --c5:#95323F;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.7);
  --logo-plate:rgba(255,255,255,.94); --logo-pad:5px 9px;
}

*{box-sizing:border-box}
body{margin:0; background:var(--ground); color:var(--ink); font-family:var(--sans);
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif); font-weight:600; line-height:1.12; text-wrap:balance; margin:0}
p{margin:0}
a{color:inherit}
button{font:inherit; color:inherit}
img{max-width:100%}
:focus-visible{outline:2px solid var(--brand); outline-offset:2px; border-radius:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important; transition:none!important}}

.wrap{max-width:var(--wrap); margin:0 auto; padding:0 24px}
.eyebrow{font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-3); display:flex; align-items:center; gap:10px}
.eyebrow::before{content:""; width:22px; height:1px; background:var(--rule-strong); flex:none}
.lede{font-size:18px; color:var(--ink-2); max-width:64ch}
.num{font-family:var(--mono); font-variant-numeric:tabular-nums}
.mt{margin-top:22px}

/* ---------- top strip ---------- */
.strip{background:var(--strip-bg); color:var(--strip-fg); font-size:12.5px}
.strip .wrap{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:7px 24px}
.strip b{font-weight:600}
.strip .dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.55;flex:none}
.strip .util{margin-left:auto; display:flex; gap:16px}
.strip a{color:inherit; text-decoration:none; border-bottom:1px solid transparent}
.strip a:hover{border-bottom-color:var(--strip-rule)}

/* ---------- header ---------- */
header.site{position:sticky; top:0; z-index:60; background:var(--ground); border-bottom:1px solid var(--rule)}
.hrow{display:flex; align-items:center; gap:22px; padding:13px 24px; max-width:var(--wrap); margin:0 auto}
.logo{display:flex; align-items:center; text-decoration:none; flex:none}
.logoplate{background:var(--logo-plate); padding:var(--logo-pad); border-radius:3px; display:block; line-height:0}
.logomark{display:block; width:172px; height:42px; background:var(--logo) left center/contain no-repeat}
.logoplate img{display:block; height:42px; width:auto}
footer .logomark{width:230px; height:56px}
footer .logoplate img{height:56px}
.audtabs{display:flex; gap:3px; margin-left:auto; background:var(--band); border:1px solid var(--rule); border-radius:3px; padding:3px}
.audtabs a{text-decoration:none; font-size:13px; font-weight:600; padding:7px 14px; border-radius:2px;
  color:var(--ink-2); white-space:nowrap}
.audtabs a:hover{color:var(--ink)}
.audtabs a.on{background:var(--brand); color:var(--on-brand)}
.hact{display:flex; gap:8px; align-items:center; flex:none}
.themebtn{background:none; border:1px solid var(--rule); border-radius:2px; width:32px; height:32px;
  cursor:pointer; display:grid; place-items:center; color:var(--ink-2); font-size:15px; line-height:1}
.themebtn:hover{border-color:var(--rule-strong); color:var(--ink)}
.menubtn{display:none}
.subnav{border-top:1px solid var(--rule); background:var(--surface)}
.subnav .wrap{display:flex; gap:2px; flex-wrap:wrap; padding-top:0; padding-bottom:0}
.subnav a{text-decoration:none; font-size:13.5px; padding:11px 12px; color:var(--ink-2);
  border-bottom:2px solid transparent; white-space:nowrap; margin-bottom:-1px}
.subnav a:hover{color:var(--ink)}
.subnav a[aria-current="page"]{color:var(--brand); border-bottom-color:var(--brand); font-weight:600}

.btn{display:inline-flex; align-items:center; gap:8px; text-decoration:none; cursor:pointer;
  font-weight:600; font-size:14px; padding:10px 16px; border-radius:2px; border:1px solid transparent;
  transition:background .15s, border-color .15s}
.btn-primary{background:var(--brand); color:var(--on-brand)}
.btn-primary:hover{background:var(--brand-hover)}
.btn-ghost{border-color:var(--rule-strong); color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink-3); background:var(--surface)}
.btn-sm{padding:7px 12px; font-size:13px}

/* ---------- page mechanics ---------- */
.page{display:none}
.page.on{display:block}
section{padding:60px 0}
section.band{background:var(--band); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule)}
section.tight{padding:42px 0}
.sec-head{display:flex; flex-direction:column; gap:14px; margin-bottom:34px; max-width:72ch}
.sec-head h2{font-size:clamp(27px,3.5vw,38px)}

/* ---------- panels ---------- */
.panel{background:var(--surface); border:1px solid var(--rule-strong); border-radius:2px}
.panel > .phead{display:flex; align-items:baseline; gap:10px; padding:11px 16px;
  border-bottom:1px solid var(--rule); font-family:var(--mono); font-size:10.5px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ink-3); background:var(--band); flex-wrap:wrap}
.panel > .pbody{padding:16px}
.row{display:flex; align-items:baseline; gap:10px; padding:9px 0; border-bottom:1px dotted var(--rule)}
.row:last-child{border-bottom:0}
.row .k{font-size:13.5px; color:var(--ink-2); flex:1 1 auto; min-width:0}
.row .v{font-family:var(--mono); font-size:13.5px; font-variant-numeric:tabular-nums; font-weight:500;
  text-align:right; white-space:nowrap}
.row.total{border-top:1.5px solid var(--ink); border-bottom:0; margin-top:6px; padding-top:12px}
.row.total .k{font-weight:600; color:var(--ink); font-size:14px}
.row.total .v{font-size:19px; font-weight:600; color:var(--brand)}
.src{font-family:var(--mono); font-size:10.5px; line-height:1.5; color:var(--ink-3);
  padding:10px 16px; border-top:1px solid var(--rule); background:var(--band)}
.src a{color:var(--ink-2)}

.chip{display:inline-flex; align-items:center; gap:5px; font-family:var(--mono); font-size:10px;
  letter-spacing:.1em; text-transform:uppercase; font-weight:500; padding:3px 7px; border-radius:2px;
  border:1px solid; white-space:nowrap}
.chip-ok{color:var(--jade); background:var(--jade-soft); border-color:var(--jade-line)}
.chip-tbc{color:var(--flag); background:var(--flag-soft); border-color:var(--flag-line)}
.chip-brand{color:var(--brand); background:var(--brand-soft); border-color:var(--brand-line)}
.chip-gold{color:var(--gold); background:var(--gold-soft); border-color:var(--gold-line)}
.tbc-note{border-left:2px solid var(--flag); background:var(--flag-soft); padding:12px 14px;
  font-size:13.5px; color:var(--ink-2); border-radius:0 2px 2px 0}
.tbc-note b{color:var(--flag)}
.ok-note{border-left:2px solid var(--jade); background:var(--jade-soft); padding:12px 14px;
  font-size:13.5px; color:var(--ink-2); border-radius:0 2px 2px 0}
.ok-note b{color:var(--jade)}

/* ---------- photographic hero ---------- */
.phero{position:relative; isolation:isolate; overflow:hidden; border-bottom:1px solid var(--rule);
  background-color:#151110; background-size:cover; background-position:32% 58%; background-repeat:no-repeat}
.phero::after{content:""; position:absolute; inset:0; z-index:-1; background:
  linear-gradient(102deg, rgba(17,11,10,.94) 0%, rgba(17,11,10,.86) 34%, rgba(17,11,10,.5) 62%, rgba(17,11,10,.18) 100%)}
.phero .wrap{padding-top:74px; padding-bottom:58px}
.phero h1{color:#FFF7F1; font-size:clamp(33px,5vw,58px); letter-spacing:-.015em; max-width:20ch; margin-top:18px}
.phero h1 em{font-style:italic; color:#F2A9A1}
.phero .lede{color:#E3D4C9; max-width:58ch; margin-top:20px; font-size:18px}
.phero .eyebrow{color:#CBB5A8}
.phero .eyebrow::before{background:rgba(255,255,255,.45)}
.phero .hero-cta{margin-top:28px}
.phero .btn-ghost{border-color:rgba(255,255,255,.5); color:#FFF7F1}
.phero .btn-ghost:hover{background:rgba(255,255,255,.13); border-color:#fff}
.phero-meta{margin-top:34px; padding-top:24px; border-top:1px solid rgba(255,255,255,.22);
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:860px}
.phero-meta .m b{display:block; font-family:var(--serif); font-size:27px; font-weight:600; line-height:1; color:#FFF7F1}
.phero-meta .m span{display:block; margin-top:6px; font-size:11.5px; color:#C0AA9C; line-height:1.35}
.verifybar{background:var(--band); border-bottom:1px solid var(--rule)}
.verifybar .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-top:16px; padding-bottom:16px}
.vitem{display:flex; gap:9px; align-items:flex-start; font-size:12.5px; color:var(--ink-3); line-height:1.4}
.vitem .tick{color:var(--jade); flex:none; font-size:13px; line-height:1.3}
.vitem b{display:block; color:var(--ink); font-size:13.5px; font-weight:600; margin-bottom:1px}

/* ---------- photographs ---------- */
.figband{margin:0}
.figband img{display:block; width:100%; border-radius:2px; object-fit:cover}
.ar21 img{aspect-ratio:21/9} .ar169 img{aspect-ratio:16/9} .ar43 img{aspect-ratio:4/3}
.ar11 img{aspect-ratio:1/1} .ar32 img{aspect-ratio:3/2}
.figband figcaption{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-3); margin-top:9px}
.imgrow{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}

/* ---------- hero ---------- */
.hero{padding:52px 0 56px; border-bottom:1px solid var(--rule)}
.hero-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:52px; align-items:start}
.hero h1{font-size:clamp(34px,5vw,58px); letter-spacing:-.015em}
.hero h1 em{font-style:italic; color:var(--brand)}
.hero .lede{margin-top:20px; font-size:18.5px}
.hero-cta{display:flex; gap:10px; flex-wrap:wrap; margin-top:28px}
.hero-meta{margin-top:30px; padding-top:22px; border-top:1px solid var(--rule);
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.hero-meta .m b{display:block; font-family:var(--serif); font-size:25px; font-weight:600; line-height:1}
.hero-meta .m span{display:block; margin-top:6px; font-size:11.5px; color:var(--ink-3); line-height:1.35}
.crestplate{background:#FDFCFA; border:1px solid var(--rule-strong); border-radius:2px;
  padding:34px 28px 22px; display:flex; flex-direction:column; align-items:center; gap:20px}
.crestplate img{max-width:340px; width:100%}
.crestplate .cline{width:100%; display:flex; align-items:center; gap:12px;
  font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#8A7A70}
.crestplate .cline::before,.crestplate .cline::after{content:""; flex:1; height:1px; background:#E4DBD1}

/* ---------- grids ---------- */
.grid{display:grid; gap:18px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid; grid-template-columns:1fr 1fr; gap:46px; align-items:start}
.split-wide{grid-template-columns:1.2fr .8fr}

.qcard{display:block; text-decoration:none; background:var(--surface); border:1px solid var(--rule);
  border-radius:2px; padding:20px; transition:border-color .15s, transform .15s}
a.qcard:hover{border-color:var(--brand); transform:translateY(-2px)}
.qcard .qn{font-family:var(--mono); font-size:11px; color:var(--brand); letter-spacing:.1em}
.qcard h3{font-size:19px; margin:10px 0 8px}
.qcard p{font-size:13.5px; color:var(--ink-2)}
.qcard .go{margin-top:14px; font-size:12.5px; font-weight:600; color:var(--brand)}

/* three doors */
.doors{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.door{display:flex; flex-direction:column; text-decoration:none; background:var(--surface);
  border:1px solid var(--rule-strong); border-radius:2px; padding:26px 24px 22px; position:relative;
  transition:border-color .15s, transform .15s; min-height:100%}
.door:hover{border-color:var(--brand); transform:translateY(-3px)}
.door .dlab{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--brand)}
.door h3{font-size:25px; margin:12px 0 10px}
.door p{font-size:14px; color:var(--ink-2)}
.door ul{list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:6px}
.door li{font-size:13px; color:var(--ink-2); padding-left:15px; position:relative}
.door li::before{content:"—"; position:absolute; left:0; color:var(--rule-strong)}
.door .go{margin-top:auto; padding-top:20px; font-size:13px; font-weight:600; color:var(--brand)}

/* ruled list */
.ruled{border-top:1px solid var(--rule); padding:0; margin:0}
.ruled > li{list-style:none; border-bottom:1px solid var(--rule); padding:18px 0;
  display:grid; grid-template-columns:180px 1fr; gap:26px}
.ruled > li h4{font-size:17px}
.ruled > li p{font-size:14px; color:var(--ink-2); margin-top:5px}
.ruled .lab{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-3); padding-top:4px}

/* programme table */
.filters{display:flex; gap:7px; flex-wrap:wrap; margin-bottom:22px; align-items:center}
.filters .fbtn{cursor:pointer; background:var(--surface); border:1px solid var(--rule); border-radius:2px;
  padding:7px 12px; font-size:12.5px; font-weight:500; color:var(--ink-2)}
.filters .fbtn:hover{border-color:var(--rule-strong)}
.filters .fbtn.on{background:var(--ink); color:var(--ground); border-color:var(--ink)}
.ptable{border-top:1.5px solid var(--ink)}
.prow{display:grid; grid-template-columns:1fr 118px 108px 150px; gap:18px; align-items:center;
  padding:15px 4px; border-bottom:1px solid var(--rule)}
.prow:hover{background:var(--surface)}
.prow .pname{font-family:var(--serif); font-size:18px; font-weight:600}
.prow .pdesc{font-size:13px; color:var(--ink-2); margin-top:3px}
.prow .pschool{font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-3); margin-top:7px}
.broch{color:var(--brand); text-decoration:none; font-weight:600}
.broch:hover{text-decoration:underline}
.reqnote{border-left:2px solid var(--brand); background:var(--brand-soft); padding:11px 14px;
  font-size:13.5px; color:var(--ink-2); margin-bottom:16px; border-radius:0 2px 2px 0}
.reqnote b{color:var(--brand)}
.prow .pv{font-family:var(--mono); font-size:12.5px; color:var(--ink-2)}
.prow .pfee{font-family:var(--mono); font-size:13.5px; font-weight:600; font-variant-numeric:tabular-nums; text-align:right}
.prow .pfee small{display:block; font-weight:400; color:var(--ink-3); font-size:11px; margin-top:2px}
.thead{display:grid; grid-template-columns:1fr 118px 108px 150px; gap:18px; padding:0 4px 9px;
  font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3)}
.thead .r{text-align:right}

/* timeline */
.tl{counter-reset:s; border-top:1px solid var(--rule); padding:0; margin:0}
.tl li{list-style:none; border-bottom:1px solid var(--rule); padding:20px 0 20px 66px; position:relative}
.tl li::before{counter-increment:s; content:counter(s,decimal-leading-zero); position:absolute; left:0; top:20px;
  font-family:var(--mono); font-size:12px; font-weight:600; color:var(--brand);
  border:1px solid var(--brand-line); background:var(--brand-soft); width:40px; height:40px;
  display:grid; place-items:center; border-radius:2px}
.tl li h4{font-size:18px}
.tl li .when{font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:6px}
.tl li p{font-size:14px; color:var(--ink-2); margin-top:6px; max-width:68ch}

/* calculator */
.calc{display:grid; grid-template-columns:390px 1fr; gap:30px; align-items:start}
.ctrl{margin-bottom:20px}
.ctrl > label{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-3); margin-bottom:8px}
.seg{display:flex; border:1px solid var(--rule-strong); border-radius:2px; overflow:hidden}
.seg button{flex:1; background:var(--surface); border:0; border-right:1px solid var(--rule);
  padding:9px 6px; font-size:12.5px; cursor:pointer; color:var(--ink-2); font-weight:500}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--brand); color:var(--on-brand); font-weight:600}
select, input[type=text], input[type=email], input[type=number], textarea{width:100%;
  background:var(--surface); border:1px solid var(--rule-strong); border-radius:2px; padding:10px 11px;
  font-family:var(--sans); font-size:14px; color:var(--ink)}
input[type=range]{width:100%; accent-color:var(--brand)}
.rangewrap{display:flex; align-items:center; gap:14px}
.rangewrap output{font-family:var(--mono); font-size:13px; font-weight:600; min-width:76px; text-align:right}
.fxrow{display:flex; align-items:center; gap:10px; font-size:12.5px; color:var(--ink-2)}
.fxrow input{width:82px; padding:6px 8px; font-family:var(--mono); font-size:13px}
.hint{font-size:11.5px; color:var(--ink-3); margin-top:7px; line-height:1.45}
.gtrack{position:relative; height:10px; background:var(--band-2); border-radius:2px; margin:14px 0 7px}
.gzone{position:absolute; top:0; bottom:0; background:var(--jade-soft);
  border-left:1px solid var(--jade); border-right:1px solid var(--jade)}
.gmark{position:absolute; top:-6px; width:2px; height:22px; background:var(--brand); transition:left .15s}
.gscale{position:relative; height:15px; font-family:var(--mono); font-size:10px; color:var(--ink-3)}
.gscale .l{position:absolute; left:0} .gscale .r{position:absolute; right:0}
.gscale .z{position:absolute; text-align:center}
.estdiv{display:flex; align-items:center; gap:12px; margin:18px 0 16px; font-family:var(--mono);
  font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--flag)}
.estdiv::after{content:""; flex:1; height:1px; background:var(--rule)}
.stat{background:var(--surface); border:1px solid var(--rule); border-radius:2px; padding:20px}
.stat .sn{font-family:var(--serif); font-size:clamp(32px,4vw,44px); font-weight:600; line-height:1; color:var(--brand)}
.stat .sl{font-size:13px; color:var(--ink-2); margin-top:9px; line-height:1.4}
.stat .sx{font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-3); margin-top:10px}
.minirow{display:flex; gap:20px; flex-wrap:wrap; margin-top:16px; padding-top:14px; border-top:1px solid var(--rule)}
.minirow div b{display:block; font-family:var(--mono); font-size:16px; font-weight:600}
.minirow div span{font-size:11.5px; color:var(--ink-3)}
.intake{border-top:1.5px solid var(--ink)}
.irow{display:grid; grid-template-columns:1fr 150px 132px 108px; gap:16px; align-items:center;
  padding:14px 4px; border-bottom:1px solid var(--rule)}
.irow.next{background:var(--brand-soft)}
.irow .im{font-family:var(--serif); font-size:19px; font-weight:600}
.irow .id2{font-family:var(--mono); font-size:13px; font-variant-numeric:tabular-nums; color:var(--ink-2)}
.irow .ic{text-align:right}
.ihead{display:grid; grid-template-columns:1fr 150px 132px 108px; gap:16px; padding:0 4px 9px;
  font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3)}
.dl{display:flex; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid var(--rule);
  text-decoration:none; font-size:14.5px}
.dl:last-child{border-bottom:0}
.dl .dlx{font-family:var(--mono); font-size:10px; letter-spacing:.1em; border:1px solid var(--rule-strong);
  border-radius:2px; padding:3px 6px; color:var(--ink-3); flex:none}
.dl b{font-weight:600}
.dl small{display:block; color:var(--ink-3); font-size:12.5px; font-weight:400}
.dl:hover b{color:var(--brand)}
.dl .arw{margin-left:auto; color:var(--brand); font-size:13px; flex:none}
.bigfig{padding:20px 16px}
.bigfig .lab{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3)}
.bigfig .fig{font-family:var(--serif); font-size:clamp(34px,4.6vw,50px); font-weight:600; line-height:1.05;
  margin-top:8px; letter-spacing:-.01em}
.bigfig .sub{font-family:var(--mono); font-size:12.5px; color:var(--ink-2); margin-top:8px}

figure{margin:0}
figcaption{font-size:12.5px; color:var(--ink-3); margin-top:10px; line-height:1.5}
.legend{display:flex; flex-wrap:wrap; gap:14px; margin-top:12px}
.legend span{display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--ink-2)}
.legend i{width:11px; height:11px; border-radius:2px; display:block; flex:none}
.viztip{position:fixed; z-index:200; pointer-events:none; background:var(--ink); color:var(--ground);
  font-family:var(--mono); font-size:11.5px; padding:6px 9px; border-radius:2px; opacity:0;
  transition:opacity .1s; white-space:nowrap}
.viztip.on{opacity:1}
.tabletoggle{background:none; border:0; border-bottom:1px solid var(--rule-strong); cursor:pointer;
  font-size:12.5px; color:var(--ink-2); padding:0 0 2px; margin-top:14px}
table.data{width:100%; border-collapse:collapse; font-size:13px; margin-top:14px}
table.data th, table.data td{text-align:left; padding:8px 10px; border-bottom:1px solid var(--rule)}
table.data th{font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3)}
table.data td.n{font-family:var(--mono); text-align:right; font-variant-numeric:tabular-nums}
.scrollx{overflow-x:auto}

/* diagram */
.figwrap{background:var(--surface); border:1px solid var(--rule-strong); border-radius:2px; padding:24px}
.figwrap svg{max-width:100%; height:auto; display:block; color:var(--ink-2)}

/* accordion */
.acc{border-top:1px solid var(--rule)}
.acc details{border-bottom:1px solid var(--rule)}
.acc summary{cursor:pointer; list-style:none; padding:17px 34px 17px 0; position:relative;
  font-family:var(--serif); font-size:18px; font-weight:600}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+"; position:absolute; right:6px; top:15px; font-family:var(--mono);
  font-size:19px; color:var(--brand); font-weight:400}
.acc details[open] summary::after{content:"–"}
.acc .ans{padding:0 0 20px; font-size:14.5px; color:var(--ink-2); max-width:76ch}
.acc .ans p + p{margin-top:11px}

/* checklist */
.check{border-top:1px solid var(--rule)}
.check label{display:flex; gap:12px; align-items:flex-start; padding:13px 0;
  border-bottom:1px solid var(--rule); cursor:pointer; font-size:14.5px}
.check input{margin-top:4px; accent-color:var(--brand); width:15px; height:15px; flex:none}
.check label span small{display:block; color:var(--ink-3); font-size:12.5px; margin-top:2px}
.check input:checked + span{color:var(--ink-3); text-decoration:line-through; text-decoration-color:var(--rule-strong)}

/* contact */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.form-grid .full{grid-column:1/-1}
.field label{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-3); margin-bottom:6px}
.contact-card{background:var(--surface); border:1px solid var(--rule-strong); border-radius:2px; padding:22px}
.contact-card h3{font-size:20px; margin-bottom:4px}
.contact-card address{font-style:normal; font-size:14px; color:var(--ink-2); line-height:1.65; margin-top:12px}
.contact-card .kv{display:flex; gap:12px; padding:9px 0; border-bottom:1px dotted var(--rule); font-size:14px}
.contact-card .kv b{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-3); width:78px; flex:none; padding-top:3px}

/* ---------- testimonials ---------- */
.quotecard{background:var(--surface); border:1px solid var(--rule-strong); border-radius:2px;
  padding:24px 24px 20px; display:flex; flex-direction:column; height:100%}
.quotecard .qm{font-family:var(--serif); font-size:44px; line-height:.55; color:var(--brand-line); margin-bottom:12px}
.quotecard blockquote{margin:0; font-family:var(--serif); font-size:18.5px; line-height:1.45; color:var(--ink)}
.attrib{display:flex; gap:13px; align-items:center; margin-top:auto; padding-top:18px; border-top:1px solid var(--rule)}
.avatar{width:44px; height:44px; border-radius:50%; background:var(--brand-soft); border:1px solid var(--brand-line);
  display:grid; place-items:center; font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--brand); flex:none}
.attrib .who > b{display:block; font-size:13.5px; font-weight:600; line-height:1.35}
.attrib .who > span{display:block; font-size:12px; color:var(--ink-3); line-height:1.45; margin-top:2px}
.slot{color:var(--flag); font-weight:600; font-style:normal}
.attrib .who{min-width:0}
.qtop{display:flex; align-items:center; gap:10px; margin-bottom:14px}
.qtop .qlab{font-family:var(--mono); font-size:10px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3)}
.pullquote{border-left:3px solid var(--brand); padding:4px 0 4px 26px}
.pullquote blockquote{margin:0; font-family:var(--serif); font-size:clamp(20px,2.5vw,27px); line-height:1.38; color:var(--ink)}
.ph{border:1px dashed var(--rule-strong); border-radius:2px; padding:22px; background:var(--band)}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.ph .phl{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--flag)}
.ph p{font-size:13.5px; color:var(--ink-2); margin-top:8px}

.cta{background:var(--ink); color:var(--ground); padding:52px 0}
.cta h2{font-size:clamp(27px,3.5vw,38px); color:var(--ground)}
.cta p{color:var(--ink-3); margin-top:12px; max-width:58ch}
.cta .btn-primary{background:var(--brand); color:#fff}
.cta .btn-ghost{border-color:rgba(255,255,255,.28); color:var(--ground)}
.cta .btn-ghost:hover{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.5)}
footer.site{background:var(--band); border-top:1px solid var(--rule); padding:42px 0 24px; font-size:13.5px}
.fgrid{display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:30px}
footer.site h5{font-family:var(--mono); font-size:10px; letter-spacing:.13em; text-transform:uppercase;
  color:var(--ink-3); margin:0 0 12px; font-weight:500}
footer.site ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px}
footer.site a{color:var(--ink-2); text-decoration:none}
footer.site a:hover{color:var(--brand)}
.fbot{margin-top:32px; padding-top:18px; border-top:1px solid var(--rule); display:flex; gap:18px;
  flex-wrap:wrap; color:var(--ink-3); font-size:12.5px}

@media (max-width:1080px){
  .phero-meta,.verifybar .wrap{grid-template-columns:repeat(2,1fr)}
  .imgrow{grid-template-columns:1fr 1fr}
  .hero-grid,.split,.split-wide,.calc{grid-template-columns:1fr; gap:34px}
  .doors{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,1fr)}
  .fgrid{grid-template-columns:1fr 1fr}
  .prow,.thead{grid-template-columns:1fr 110px; row-gap:6px}
  .irow,.ihead{grid-template-columns:1fr 130px 96px; row-gap:6px}
  .irow .id2:nth-of-type(2){display:none}
  .prow .pv{display:none}
  .thead span:nth-child(2),.thead span:nth-child(3){display:none}
  .audtabs a{padding:7px 10px; font-size:12.5px}
}
@media (max-width:780px){
  section{padding:42px 0}
  .phero .wrap{padding-top:52px; padding-bottom:44px}
  .phero-meta{grid-template-columns:repeat(2,1fr); gap:20px}
  .verifybar .wrap{grid-template-columns:1fr; gap:12px}
  .imgrow{grid-template-columns:1fr}
  .g2,.g3,.g4,.form-grid{grid-template-columns:1fr}
  .pullquote{padding-left:18px}
  .hero-meta{grid-template-columns:repeat(2,1fr); gap:22px}
  .irow,.ihead{grid-template-columns:1fr 108px}
  .irow .id2{display:none}
  .ruled > li{grid-template-columns:1fr; gap:6px}
  .hrow{flex-wrap:wrap; gap:12px}
  .audtabs{order:3; width:100%; margin-left:0; justify-content:space-between}
  .audtabs a{flex:1; text-align:center}
  .hact{margin-left:auto}
  .subnav .wrap{overflow-x:auto; flex-wrap:nowrap}
  .fgrid{grid-template-columns:1fr}
  .tl li{padding-left:0; padding-top:56px}
  .tl li::before{top:14px}
  .logoplate img{height:30px}
}


/* ---------- static-site chrome ---------- */
.skip{position:absolute; left:-9999px; top:0; z-index:300; background:var(--brand); color:#fff;
  padding:11px 18px; font-weight:600; border-radius:0 0 2px 0}
.skip:focus{left:0}
.crumbs{background:var(--ground); border-bottom:1px solid var(--rule)}
.crumbs .wrap{padding-top:10px; padding-bottom:10px; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.08em; color:var(--ink-3); line-height:1.6}
.crumbs a{color:var(--ink-3); text-decoration:none}
.crumbs a:hover{color:var(--brand); text-decoration:underline}
.crumbs [aria-current]{color:var(--ink-2)}
.crumbs span[aria-hidden]{opacity:.55; padding:0 3px}
.notfound{padding:90px 0 70px}
.notfound h1{font-size:clamp(34px,5vw,58px); margin-bottom:18px}
@media print{
  .strip,header.site,.crumbs,.cta,.viztip,.themebtn,.audtabs{display:none!important}
  body{background:#fff; color:#000} .panel,.qcard,.quotecard{break-inside:avoid}
  a[href^="/"]::after{content:" (assumptionuniversity.in" attr(href) ")"; font-size:10px; color:#555}
}
