:root{
  --red:#CE2026; --red-dk:#A6161B; --red-soft:rgba(206,32,38,.09);
  --ink:#101013; --ink-2:#3A3A41; --ink-3:#666670;
  --paper:#FFFFFF; --paper-2:#F4F4F2; --paper-3:#E9E9E6;
  --rule:#DEDEDA; --night:#0B0B0D;
  --font:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --gut:clamp(20px,5vw,72px);
  --maxw:1360px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink-2);font-family:var(--font);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
.skip-link{position:fixed;top:8px;left:8px;z-index:1000;padding:12px 20px;
  background:var(--ink);color:#fff;transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}

/* ---------- type ---------- */
.display{font-weight:900;letter-spacing:-.035em;line-height:.95;color:var(--ink);text-wrap:balance;margin:0}
.h1{font-size:clamp(42px,8.2vw,110px)}
.h2{font-size:clamp(30px,5vw,62px);line-height:1.0}
.h3{font-size:clamp(21px,2.6vw,30px);line-height:1.12;letter-spacing:-.025em}
.lede{font-size:clamp(18px,2.1vw,23px);line-height:1.45;color:var(--ink-2);max-width:min(46ch,560px)}
.label{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.17em;
  text-transform:uppercase;color:var(--red)}
.label.q{color:var(--ink-3)}
.dim{color:var(--ink-3);font-weight:400}
p{margin:0 0 1em}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;border:0;cursor:pointer;
  font-family:var(--font);font-weight:700;font-size:17px;letter-spacing:-.01em;
  padding:19px 30px;background:var(--red);color:#fff;text-decoration:none;
  transition:background .15s ease, transform .15s ease}
.btn:hover{background:var(--red-dk);transform:translateY(-1px)}
.btn .arw{font-size:19px;line-height:1}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.lg{font-size:19px;padding:23px 36px}
.btn.blk{background:var(--ink)}
.btn.blk:hover{background:#000}
.sub{font-family:var(--mono);font-size:11.5px;letter-spacing:.09em;color:var(--ink-3);
  text-transform:uppercase;margin-top:14px}

/* ---------- header ---------- */
body > header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(150%) blur(12px);border-bottom:1px solid var(--rule)}
.hdr{display:flex;align-items:center;gap:28px;height:92px}
.logo{font-family:var(--font);font-weight:900;font-size:23px;letter-spacing:-.045em;
  color:var(--ink);text-decoration:none;white-space:nowrap}
.logo b{color:var(--red)}
nav.main{display:flex;gap:28px;margin-left:8px;flex:1}
nav.main a{font-weight:600;font-size:15px;color:var(--ink-2);text-decoration:none;
  padding:6px 0;border-bottom:2px solid transparent}
nav.main a:hover{color:var(--ink)}
nav.main a.on{color:var(--ink);border-bottom-color:var(--red)}
.hdr .btn{padding:13px 22px;font-size:15px}
@media(max-width:900px){nav.main{display:none}.hdr{height:72px;gap:14px}}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--night);color:#fff;overflow:hidden}
.hero-img{position:absolute;inset:0}
.hero-img picture,.hero-img img{display:block;width:100%;height:100%}
.hero-img img{object-fit:cover;opacity:var(--hero-op,.78)}
/* The plate already put the subject on the right, so the scrim only has to be
   dense where the type is. It clears almost completely over the aeroplane -
   the old flat 62% dim meant you could not read the headline OR see the
   photograph. */
.hero-img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(95deg,
    rgba(11,11,13,.94) 0%, rgba(11,11,13,.90) 26%, rgba(11,11,13,.68) 48%,
    rgba(11,11,13,.34) 72%, rgba(11,11,13,.10) 100%)}
@media(max-width:780px){
  /* the phone gets the portrait plate, which puts the subject low, so the
     scrim turns to match: dense at the top where the headline sits */
  .hero-img::after{background:linear-gradient(178deg,
    rgba(11,11,13,.93) 0%, rgba(11,11,13,.86) 34%, rgba(11,11,13,.60) 60%,
    rgba(11,11,13,.40) 100%)}
}
.hero .wrap{position:relative;z-index:2;padding-top:clamp(72px,11vw,150px);padding-bottom:clamp(72px,11vw,150px)}
.hero .lede{max-width:min(46ch,560px)}
.hero .display{color:#fff}
.hero .lede{color:rgba(255,255,255,.80);margin-top:26px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);
  font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;
  color:#fff;background:var(--red);padding:7px 13px;margin-bottom:28px}
.eyebrow .dim{color:rgba(255,255,255,.72)}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:38px}
.hero .sub{color:rgba(255,255,255,.6);width:100%;margin-top:4px}

/* facts band — sits under the hero, on paper, deliberately quiet */
.facts{background:var(--paper-2);border-bottom:1px solid var(--rule)}
.facts .wrap{display:flex;flex-wrap:wrap;padding-top:0;padding-bottom:0}
.facts .cell{flex:1 1 190px;padding:20px 0;border-right:1px solid var(--rule)}
.facts .cell:last-child{border-right:0}
.facts .cell > *{padding-right:24px}
.facts .k{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}
.facts .v{font-weight:700;font-size:17px;color:var(--ink);letter-spacing:-.015em;line-height:1.25}
@media(max-width:640px){.facts .cell{flex-basis:50%;border-right:0}}

/* ---------- generic section ---------- */
section{padding:clamp(64px,9vw,132px) 0}
section.tight{padding:clamp(44px,6vw,80px) 0}
.sec-head{max-width:min(720px,100%);margin-bottom:clamp(34px,4.5vw,58px)}
.sec-head .label{display:block;margin-bottom:16px}
.paper2{background:var(--paper-2)}
.dark{background:var(--night);color:rgba(255,255,255,.72)}
.dark .display{color:#fff}
.dark .label{color:#FF6A70}

/* ---------- the qualification flow ---------- */
.flow{background:var(--paper);border:2px solid var(--ink);max-width:880px}
.flow-top{display:flex;align-items:center;gap:14px;padding:16px 24px;
  border-bottom:2px solid var(--ink);background:var(--ink);color:#fff}
.flow-top .label{color:#fff;opacity:.68}
.prog{margin-left:auto;display:flex;gap:5px}
.prog i{width:26px;height:4px;background:rgba(255,255,255,.26);display:block}
.prog i.on{background:var(--red)}
.flow-body{padding:clamp(26px,4vw,44px)}
.flow-q{font-weight:800;font-size:clamp(22px,3vw,32px);line-height:1.14;
  letter-spacing:-.028em;color:var(--ink);margin:0 0 8px;text-wrap:balance}
.flow-help{font-size:15.5px;color:var(--ink-3);margin:0 0 26px;max-width:52ch}
.opts{display:grid;gap:10px}
.opt{display:flex;align-items:center;gap:15px;width:100%;text-align:left;cursor:pointer;
  background:var(--paper);border:1.5px solid var(--rule);padding:18px 20px;
  font-family:var(--font);font-size:17px;font-weight:600;color:var(--ink);
  transition:border-color .13s ease, background .13s ease, transform .13s ease}
.opt:hover{border-color:var(--ink);background:var(--paper-2);transform:translateX(3px)}
.opt .mk{flex:none;width:26px;height:26px;border:1.5px solid var(--rule);
  display:grid;place-items:center;font-family:var(--mono);font-size:11px;
  font-weight:600;color:var(--ink-3)}
.opt:hover .mk{border-color:var(--ink);color:var(--ink)}
.opt small{display:block;font-weight:400;font-size:14px;color:var(--ink-3);margin-top:2px}
.flow-back{margin-top:22px;background:none;border:0;cursor:pointer;padding:0;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-3)}
.flow-back:hover{color:var(--ink)}
.flow-back.cap-back{margin-top:0}

.notes{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;
  margin-top:22px;padding-top:16px;border-top:1px solid var(--rule)}
.notes > span{font-family:var(--mono);font-size:11px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.note-b{appearance:none;-webkit-appearance:none;background:none;border:0;
  border-bottom:1px solid var(--rule);border-radius:0;padding:1px 0;cursor:pointer;
  font-family:var(--font);font-size:14.5px;line-height:1.35;color:var(--ink-2);
  transition:color .14s ease,border-color .14s ease}
.note-b:hover{color:var(--ink);border-bottom-color:var(--red)}

/* outcome card */
.outcome{border-top:5px solid var(--red);background:var(--paper-2);padding:clamp(26px,4vw,44px)}
.outcome .label{display:block;margin-bottom:12px}
.outcome h3{margin:0 0 14px}
.outcome p{max-width:56ch;margin-bottom:24px}
.oc-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin:0 0 26px;padding:16px 0;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.oc-meta div{font-family:var(--mono);font-size:12px;letter-spacing:.05em;color:var(--ink-3)}
.oc-meta b{display:block;font-family:var(--font);font-size:19px;font-weight:800;
  letter-spacing:-.02em;color:var(--ink);margin-top:3px}

/* The answer to the priority question. Sits inside the outcome card
   between the numbers and the button, marked off by a rule rather than
   a box so it reads as part of the answer and not as an ad. */
.prio-ans{max-width:58ch;margin:0 0 24px;font-size:15px;line-height:1.55;color:var(--ink-2)}
.prio-ans b{font-weight:700;color:var(--ink)}
.prio-ans a{color:var(--red);text-decoration:none;white-space:nowrap;
  border-bottom:1px solid rgba(206,32,38,.4)}
.prio-ans a:hover{border-bottom-color:var(--red)}

/* The small line under a band number. It exists because a monthly loan
   payment sitting beside a program length invites multiplication. */
.cell .s{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;
  color:var(--ink-3);margin-top:5px;line-height:1.35}
.cell .s:empty{display:none}
.hero .cell .s,.hero .oc-meta .s{color:rgba(255,255,255,.45)}

/* ---------- advisor chat ---------- */
#chatsec[hidden]{display:none !important}
.chat{border:1.5px solid var(--rule);background:#fff;display:flex;flex-direction:column;
  max-width:760px;margin:0 auto}
.chat-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:15px 20px;border-bottom:1px solid var(--rule)}
.chat-top b{font-size:15px;letter-spacing:-.01em}
.chat-dot{width:8px;height:8px;border-radius:50%;background:#1FA85A;flex:none}
.chat-note{font-size:12px;color:var(--ink-3);flex:1 1 200px}
.chat-log{padding:20px;display:flex;flex-direction:column;gap:14px;
  min-height:180px;max-height:52vh;overflow-y:auto}
.msg{max-width:88%;font-size:15px;line-height:1.55}
.msg.you{align-self:flex-end;background:var(--paper-2);border:1px solid var(--rule);
  padding:11px 14px;color:var(--ink)}
.msg.bot{align-self:flex-start;color:var(--ink);white-space:pre-wrap}
.msg.bot a{color:var(--red)}
.msg.bot b{font-weight:700}
.msg.err{align-self:flex-start;color:var(--red);font-family:var(--mono);font-size:12.5px}
.msg.typing{font-family:var(--mono);font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3)}
.chat-seed{display:flex;flex-wrap:wrap;gap:8px}
.chat-seed button{appearance:none;background:none;cursor:pointer;color:var(--ink-2);
  border:1.5px solid var(--rule);padding:8px 13px;font-family:var(--font);font-size:13.5px;
  text-align:left}
.chat-seed button:hover{border-color:var(--ink);color:var(--ink)}
.chat-in{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--rule)}
.chat-in input{flex:1;min-width:0;font-family:var(--font);font-size:15px;padding:12px 13px;
  border:1.5px solid var(--rule);background:#fff;color:var(--ink)}
.chat-in .btn{flex:0 0 auto;padding:12px 18px}
.chat-in .btn[disabled]{opacity:.45;cursor:default}
@media(max-width:560px){
  .chat-log{max-height:60vh}
  .msg{max-width:96%}
  .chat-in{padding:12px 14px}
}

/* ---------- capture ---------- */
/* The ask and the door out, side by side. The door is never smaller than
   a real link — the point is that it is a choice, not a dismiss. */
.cap{margin-top:24px;text-align:left}
.cap-h{font-weight:600;font-size:14.5px;color:var(--ink-2);margin-bottom:10px}
.cap-s{font-size:13.5px;line-height:1.45;color:var(--ink-3);margin:0 0 14px;max-width:52ch}
.cap-row{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;margin-top:14px}
.cap-f{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
.cap-f input[name="name"],.cap-f input[name="email"]{
  flex:1 1 190px;min-width:0;font-family:var(--font);font-size:15px;
  padding:12px 13px;border:1.5px solid var(--rule);background:#fff;color:var(--ink)}
.cap-f .act-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cap-f .btn{flex:0 0 auto;padding:12px 20px}
.cap-msg{flex:1 1 100%;font-family:var(--mono);font-size:11.5px;color:var(--ink-3);margin:2px 0 0}
.cap-msg.bad{color:var(--red)}
.cap-msg.good{color:#1FA85A;font-size:13px}
.cap-msg:empty{display:none}
.cap-go,.cap-back{font-family:var(--font);font-size:13.5px;letter-spacing:0;
  text-transform:none;color:var(--ink-3);text-decoration:none;background:none;
  border:0;padding:0;cursor:pointer}
.cap-go:hover,.cap-back:hover{color:var(--red)}

/* in the hero the card sits on a photograph, so every colour is restated */
.hero .cap{text-align:center}
.hero .cap-h{color:rgba(255,255,255,.8);font-weight:500}
.hero .cap-row{justify-content:center}
.hero .cap-go,.hero .cap-back{color:rgba(255,255,255,.55)}
.hero .cap-go:hover,.hero .cap-back:hover{color:#fff}
.hero .cap-s{color:rgba(255,255,255,.65);margin-left:auto;margin-right:auto}
.hero .cap-f{justify-content:center}
.hero .cap-f input[name="name"],.hero .cap-f input[name="email"]{
  background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28);color:#fff}
.hero .cap-f input::placeholder{color:rgba(255,255,255,.5)}
.hero .cap-msg{color:rgba(255,255,255,.6)}
.hero .cap-msg.bad{color:#FF8A8F}
.hero .cap-msg.good{color:#7BE08A}

@media(max-width:560px){ .cap-f .btn{flex:1 1 100%;justify-content:center} }

/* ---------- blog index ---------- */
.bl-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px;
  padding-bottom:22px;border-bottom:2px solid var(--ink)}
.bl-filter[hidden]{display:none !important}
.bl-f{appearance:none;background:none;cursor:pointer;color:var(--ink-2);
  border:1.5px solid var(--rule);padding:8px 14px;
  font-family:var(--mono);font-size:11px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase}
.bl-f:hover{border-color:var(--ink);color:var(--ink)}
.bl-f.on{background:var(--ink);border-color:var(--ink);color:#fff}
.bl-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0}
.bl{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);
  padding:26px 26px 28px 0;border-top:1px solid var(--rule)}
.bl-d{font-family:var(--mono);font-size:11px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:10px}
.bl-t{font-weight:800;font-size:18.5px;letter-spacing:-.02em;line-height:1.25;margin-bottom:9px}
.bl-b{font-size:14.5px;line-height:1.5;color:var(--ink-2)}
.bl-a{margin-top:14px;font-family:var(--mono);font-size:11px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--red)}
.bl:hover .bl-t{color:var(--red)}
#bl-more[hidden]{display:none !important}

/* ---------- signposts ---------- */
/* The pages the nav does not carry. Reads as a row of doors, not as a
   promo block: no colour fill, one rule per card, the arrow doing the
   work. Hidden entirely when nothing fits this visitor. */
.sign-wrap[hidden]{display:none !important}
.sign-slot{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:0;border-top:2px solid var(--ink)}
.sg{display:flex;flex-direction:column;position:relative;text-decoration:none;
  padding:26px 26px 26px 0;border-right:1px solid var(--rule);color:var(--ink)}
.sg:last-child{border-right:0}
.sg-k{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--red);margin-bottom:10px}
.sg-t{font-weight:800;font-size:19px;letter-spacing:-.02em;line-height:1.25;margin-bottom:9px}
.sg-b{font-size:14.5px;line-height:1.5;color:var(--ink-2);max-width:42ch}
.sg-a{margin-top:16px;font-size:18px;color:var(--red);transition:transform .15s ease}
.sg:hover .sg-t{color:var(--red)}
.sg:hover .sg-a{transform:translateX(5px)}
@media(max-width:700px){
  .sg{border-right:0;border-bottom:1px solid var(--rule);padding-right:0}
  .sg:last-child{border-bottom:0}
}

/* ---------- proof numbers ---------- */
/* auto-fit, because a cell can be hidden once the visitor has answered */
.proofs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:0;border-top:2px solid var(--ink)}
.proof{padding:30px 26px 30px 0;border-right:1px solid var(--rule)}
.proof:last-child,.proof[data-last]{border-right:0}
.proof .n{font-weight:900;font-size:clamp(38px,5.4vw,68px);line-height:.92;
  letter-spacing:-.045em;color:var(--ink)}
.proof .n u{text-decoration:none;font-size:.45em;letter-spacing:-.02em;color:var(--red)}
.proof .t{font-weight:700;font-size:16px;color:var(--ink);margin:14px 0 6px;line-height:1.3}
.proof .s{font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--ink-3);line-height:1.5}
@media(max-width:760px){.proofs{grid-template-columns:1fr}
  .proof{border-right:0;border-bottom:1px solid var(--rule);padding-right:0}
  .proof:last-child,.proof[data-last]{border-bottom:0}}

/* ---------- split blocks ---------- */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);align-items:start}
.split > *,.plans > *,.campuses > *,.proofs > *,.fgrid > *{min-width:0}
.split.rev{grid-template-columns:.95fr 1.05fr}
@media(max-width:900px){.split,.split.rev{grid-template-columns:1fr}}
figure{margin:0}
/* Full-width photograph between two blocks of text. 21:9 so it reads as a
   band and not as a second hero competing with the one at the top. */
figure.band{margin:0}
figure.band img{width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;background:var(--paper-3);display:block}
figure.band figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-3);padding-top:10px}
@media(max-width:700px){figure.band img{aspect-ratio:3/2}}
figure img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--paper-3)}
figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);
  padding-top:10px;line-height:1.5}

/* ---------- price cards ---------- */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,26px)}
@media(max-width:800px){.plans{grid-template-columns:1fr}}
.plan{border:1.5px solid var(--rule);background:var(--paper);padding:clamp(24px,3.2vw,36px);
  display:flex;flex-direction:column}
.plan.feat{border:2px solid var(--ink);position:relative}
.plan.feat::before{content:"Most students";position:absolute;top:-1px;right:-1px;
  background:var(--ink);color:#fff;font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;padding:6px 12px}
.plan h3{margin:0 0 6px}
.plan .who{font-size:15px;color:var(--ink-3);margin:0 0 22px;min-height:3em}
.plan .price{font-weight:900;font-size:clamp(34px,4.4vw,50px);letter-spacing:-.045em;
  color:var(--ink);line-height:1}
.plan .price i{font-style:normal;font-size:.40em;font-weight:800;letter-spacing:-.01em;color:var(--ink-3);margin-left:1px}
.plan .price small{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.06em;
  color:var(--ink-3);display:block;margin-top:9px;text-transform:uppercase}
.plan ul{list-style:none;padding:0;margin:24px 0;border-top:1px solid var(--rule)}
.plan li{padding:11px 0 11px 26px;border-bottom:1px solid var(--rule);font-size:15.5px;
  position:relative;color:var(--ink-2)}
.plan li::before{content:"";position:absolute;left:0;top:19px;width:11px;height:2px;background:var(--red)}
.plan li.off{color:var(--ink-3)}
.plan li.off::before{background:var(--rule)}
.plan .btn{margin-top:auto;justify-content:center}

/* ---------- differentiators ----------
   Cards, not a stat row: each carries its own claim and stands on it.
   The number is optional — a card without one simply starts at the
   headline rather than padding a box with something already said. */
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1px;background:var(--rule);border:1px solid var(--rule)}
.dcard{background:var(--paper);padding:clamp(26px,3vw,38px);display:flex;flex-direction:column}
.d-n{font-weight:900;font-size:clamp(34px,4vw,54px);line-height:.92;letter-spacing:-.045em;
  color:var(--ink);margin-bottom:16px}
.d-n u{text-decoration:none;font-size:.42em;letter-spacing:-.02em;color:var(--red)}
.d-t{font-weight:800;font-size:clamp(19px,1.7vw,23px);line-height:1.18;letter-spacing:-.025em;
  color:var(--ink);margin:0 0 12px;text-wrap:balance}
.d-b{font-size:15.5px;line-height:1.55;color:var(--ink-2);margin:0}
.d-s{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);margin-top:18px;padding-top:14px;
  border-top:1px solid var(--rule)}
.d-a{margin-top:auto;padding-top:18px;font-weight:700;font-size:15px;color:var(--ink);
  text-decoration:none;display:inline-flex;align-items:center;gap:9px;align-self:flex-start}
.d-a:hover{color:var(--red)}
.d-a .arw{font-size:17px}

/* ---------- campus grid ---------- */
.campuses{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}
@media(max-width:900px){.campuses{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.campuses{grid-template-columns:1fr}}
.camp{border:1.5px solid var(--rule);background:var(--paper);text-decoration:none;
  display:block;transition:border-color .14s ease,transform .14s ease}
.camp:hover{border-color:var(--ink);transform:translateY(-2px)}
.camp.here{border:2px solid var(--red)}
.camp img{aspect-ratio:16/10;object-fit:cover;width:100%;height:auto;background:var(--paper-3)}
.camp .cb{padding:18px 20px 20px}
.camp .cn{font-weight:800;font-size:20px;letter-spacing:-.025em;color:var(--ink)}
.camp .ca{font-family:var(--mono);font-size:11.5px;letter-spacing:.07em;color:var(--ink-3);margin-top:5px}
.camp .cx{font-size:14.5px;color:var(--ink-2);margin-top:11px}
.camp .near{display:inline-block;font-family:var(--mono);font-size:9.5px;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;background:var(--red);color:#fff;
  padding:3px 7px;margin-bottom:9px}

/* ---------- activation band ---------- */
.act{background:var(--red);color:#fff}
.act .wrap{padding-top:clamp(44px,6vw,80px);padding-bottom:clamp(44px,6vw,80px)}
.act .display{color:#fff}
.act .label{color:rgba(255,255,255,.75)}
.act p{color:rgba(255,255,255,.9);max-width:52ch;font-size:18px}
.act .btn{background:#fff;color:var(--red)}
.act .btn:hover{background:var(--ink);color:#fff}
/* the activation under the hero: a band, not a full section. Room for the
   date, the line, the description and a countdown, and no more. */
.act-band{background:var(--red);color:#fff}
/* The right column takes only what the countdown and the button need;
   the copy gets the rest. A 22ch headline looked fine on a short event
   name and folded a longer one into three narrow lines, which put the
   band back up near the height of the section it replaced. */
.act-band-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.34fr);
  gap:clamp(22px,3.5vw,52px);align-items:center;padding-block:clamp(26px,3vw,40px)}
@media(max-width:880px){.act-band-in{grid-template-columns:1fr;gap:24px}}
.act-band .label{color:rgba(255,255,255,.8)}
.act-band-h{font-weight:900;letter-spacing:-.032em;line-height:1.07;color:#fff;
  font-size:clamp(23px,2.5vw,34px);margin:11px 0 0;text-wrap:balance;max-width:34ch}
.act-band p{color:rgba(255,255,255,.9);font-size:15.5px;line-height:1.5;
  margin:12px 0 0;max-width:68ch}
.act-band-side{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.act-band .count{margin:0}
.act-band .count b{font-size:clamp(26px,3.2vw,42px)}
/* .act-form and .btn both set display, which beats the hidden attribute's
   own display:none. Without this the form is on the page from the start
   and the button never goes away. */
.act-band [hidden]{display:none !important}
[data-flow-not][hidden],[data-flow-only][hidden]{display:none !important}
.act-form{display:flex;flex-direction:column;gap:9px;width:100%;max-width:300px}
.act-form input{font-family:var(--font);font-size:15.5px;padding:12px 13px;border:0;
  background:#fff;color:var(--ink);width:100%}
.act-form input::placeholder{color:var(--ink-3)}
.act-form input:focus-visible{outline:3px solid rgba(255,255,255,.65);outline-offset:1px}
.act-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.act-form .btn{justify-content:center;padding:13px 20px;font-size:16px}
.act-form .btn[disabled]{opacity:.6;cursor:default}
.act-msg{font-family:var(--mono);font-size:11.5px;line-height:1.5;letter-spacing:.04em;
  color:rgba(255,255,255,.85);margin:2px 0 0}
.act-msg.bad{color:#FFD9DB}
.act-msg.good{color:#fff;font-size:13px;letter-spacing:0;font-family:var(--font)}
.act-band .btn{background:#fff;color:var(--red)}
.act-band .btn:hover{background:var(--ink);color:#fff}

.count{display:flex;gap:20px;margin:30px 0}
.count div{text-align:left}
.count b{display:block;font-weight:900;font-size:clamp(30px,4.6vw,52px);line-height:1;
  letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.count span{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;opacity:.75}

/* ---------- videos ---------- */
.vids{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:22px;align-items:stretch}
.vids-l{display:grid;gap:22px;align-content:start}
.vid{display:flex;flex-direction:column;min-width:0}
.vid-f{position:relative;display:block;background:#000;aspect-ratio:16/9;overflow:hidden;width:100%;margin-bottom:12px}
.vid-f img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
a.vid-f:hover img{transform:scale(1.03)}
a.vid-f:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.vid-f iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid-text{background:linear-gradient(135deg,#24242a,#101014);color:#fff!important}
.vid-text .vid-label{position:absolute;inset:24px 24px auto;font-size:clamp(16px,2.5vw,24px);line-height:1.4;font-weight:600}
.vid-play{position:absolute;left:18px;bottom:18px;width:60px;height:60px;border-radius:50%;background:var(--red);
  display:grid;place-items:center;box-shadow:0 6px 22px rgba(0,0,0,.4)}
.vid-play::before{content:"";border-style:solid;border-width:10px 0 10px 17px;border-color:transparent transparent transparent #fff;margin-left:4px}
.vid b{font-size:17px;font-weight:700;color:var(--ink);line-height:1.3}
.vid-s{font-size:14px;color:var(--ink-3);margin-top:3px}
.vid.tall{height:100%}
.vid.tall .vid-f{aspect-ratio:auto;flex:1 1 auto;min-height:440px}
.vid.tall .vid-f img{position:absolute;inset:0;object-position:50% 22%}
@media (max-width:820px){
  .vids{grid-template-columns:1fr}
  .vid.tall .vid-f{aspect-ratio:4/5;flex:none;min-height:0}
}
@media (prefers-reduced-motion:reduce){.vid-f img{transition:none}}

/* ---------- video slot ---------- */
.vslot{position:relative;background:var(--paper-3);border:1.5px dashed var(--ink-3);
  aspect-ratio:16/9;width:100%;max-width:100%;min-width:0;overflow:hidden;
  display:grid;place-items:center;text-align:center;padding:20px}
.vslot > div{max-width:100%;min-width:0}
.vslot .label{display:block;margin-bottom:9px}
.vslot b{display:block;font-size:17px;color:var(--ink);font-weight:700;margin-bottom:5px}
.vslot span{font-size:14px;color:var(--ink-3);max-width:38ch;display:block;
  margin:0 auto;overflow-wrap:anywhere}

/* ---------- footer ---------- */
footer{background:var(--night);color:rgba(255,255,255,.6);padding:clamp(48px,6vw,86px) 0 40px}
footer .display{color:#fff}
.fgrid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr 1fr;gap:30px;margin-bottom:48px}
@media(max-width:1100px){.fgrid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:820px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.fgrid{grid-template-columns:1fr}}
.fgrid h4,.fgrid .fh{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:rgba(255,255,255,.52);margin:0 0 16px}
.fgrid a{display:block;color:rgba(255,255,255,.78);text-decoration:none;
  font-size:15px;padding:5px 0}
.fgrid a:hover{color:#fff}
.legal{border-top:1px solid rgba(255,255,255,.14);padding-top:26px;
  font-family:var(--mono);font-size:11px;letter-spacing:.05em;line-height:1.9;
  color:rgba(255,255,255,.52)}

/* ---------- dev panel (DELETE BEFORE LAUNCH) ---------- */
#dev{position:fixed;right:14px;bottom:14px;z-index:200;background:var(--ink);color:#fff;
  font-family:var(--mono);font-size:11px;padding:12px;width:238px;box-shadow:0 10px 34px rgba(0,0,0,.34)}
#dev b{display:block;letter-spacing:.14em;text-transform:uppercase;font-size:9.5px;
  color:rgba(255,255,255,.5);margin:0 0 8px}
#dev select{width:100%;margin-bottom:7px;background:#1D1D22;color:#fff;border:1px solid #34343C;
  font-family:var(--mono);font-size:11px;padding:6px}
#dev .x{position:absolute;top:7px;right:9px;cursor:pointer;color:rgba(255,255,255,.45)}
@media print{#dev{display:none}}


/* ---------- additions for the full site ---------- */
.crumb{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);padding:20px 0 0}
.crumb a{color:var(--ink-3);text-decoration:none}
.crumb a:hover{color:var(--red)}
.pagehead{padding:clamp(40px,6vw,86px) 0 clamp(30px,4vw,52px);border-bottom:1px solid var(--rule)}
.pagehead .display{max-width:18ch}
.pagehead .lede{margin-top:22px}
.prose{max-width:66ch}
.prose h3{font-weight:800;font-size:clamp(20px,2.4vw,27px);letter-spacing:-.025em;
  color:var(--ink);margin:44px 0 12px;line-height:1.15}
.prose h4{font-weight:700;font-size:17.5px;color:var(--ink);margin:30px 0 8px}
.prose ul,.prose ol{padding-left:22px;margin:0 0 18px}
.prose li{margin-bottom:9px}
.prose li::marker{color:var(--red)}
.prose table{border-collapse:collapse;width:100%;margin:22px 0;font-size:15.5px}
.prose th,.prose td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--rule)}
.prose th{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-3);background:var(--paper-2)}
.prose td.n{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.tw{overflow-x:auto;margin:22px 0}
.note{background:var(--paper-2);border-left:4px solid var(--red);padding:20px 24px;margin:26px 0}
.note > :last-child{margin-bottom:0}
.note b{color:var(--ink)}
.faq{border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:20px 0;font-weight:700;font-size:18px;
  color:var(--ink);display:flex;gap:16px;align-items:baseline;letter-spacing:-.015em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";margin-left:auto;color:var(--red);font-weight:900;font-size:22px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 0 22px;max-width:66ch}
.faq .a > :last-child{margin-bottom:0}
.dates{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:860px){.dates{grid-template-columns:repeat(2,1fr)}}
.date{border:1.5px solid var(--rule);padding:18px 20px;background:var(--paper)}
.date.next{border:2px solid var(--red);background:var(--red);color:#fff}
.date.past{opacity:.4}
.date .m{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3)}
.date.next .m{color:#fff}
.date .d{font-weight:900;font-size:30px;letter-spacing:-.04em;color:var(--ink);line-height:1.05;margin-top:5px}
.date.next .d{color:#fff}
.date .x{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--red);margin-top:7px}
.date.next .x{color:#fff}
.date .e{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--ink-3);margin-top:4px}
.date.next .e{color:#fff}
.steps{counter-reset:s;list-style:none;padding:0;margin:30px 0}
.steps > li{counter-increment:s;position:relative;padding:0 0 30px 56px;
  border-left:2px solid var(--rule);margin:0}
.steps > li:last-child{border-left-color:transparent;padding-bottom:0}
.steps > li::before{content:counter(s);position:absolute;left:-17px;top:0;width:32px;height:32px;
  background:var(--red);color:#fff;font-family:var(--mono);font-size:13px;font-weight:600;
  display:grid;place-items:center}
.steps h3{margin:3px 0 8px;font-size:21px}
.steps p:last-child{margin-bottom:0}
.cols2{columns:2;column-gap:44px}
@media(max-width:760px){.cols2{columns:1}}
.pill{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;padding:4px 9px;background:var(--paper-3);
  color:var(--ink-2);margin:0 6px 6px 0}
.pill.on{background:var(--red);color:#fff}
.cta-band{background:var(--ink);color:rgba(255,255,255,.72)}
.cta-band .display{color:#fff}
.cta-band .wrap{padding-top:clamp(48px,6vw,86px);padding-bottom:clamp(48px,6vw,86px)}
.cta-band p{max-width:52ch;font-size:18px}

/* ---------- flow inside the hero ----------
   No card, no white box. The question is part of the hero: headline,
   question, answers, all one centred column over the photograph. The
   answers are glass buttons, so the image stays visible behind them. */
.hero.withflow .wrap{max-width:820px;text-align:center;
  padding-top:clamp(48px,7vw,92px);padding-bottom:clamp(48px,7vw,92px)}
.hero.withflow .h1{font-size:clamp(38px,5.4vw,68px);margin-bottom:clamp(22px,3vw,34px);
  max-width:19ch;margin-left:auto;margin-right:auto}
/* a stronger scrim so text over the photo always holds up */
/* A flow hero centres its type, so the scrim runs top to bottom: dense enough
   across the top for the headline and the five buttons, then clearing hard so
   the bottom half of the photograph is simply visible. The earlier numbers held
   the whole frame at 86% or darker and you could not tell what you were looking
   at, which defeats the point of choosing the picture. */
.hero.withflow .hero-img img{object-position:var(--hero-pos,50% 30%)}
@media(max-width:780px){
  /* On a phone the hero is portrait, so the crop takes the sides off rather
     than the top: the aircraft stays at its own height in the frame and lands
     behind the answer buttons. Giving the hero more room below the buttons
     drops them clear of it. */
  .hero.withflow .wrap{padding-bottom:150px}
  .hero.withflow .hero-img img{object-position:50% 50%}
}
.hero.withflow .hero-img::after{
  background:linear-gradient(180deg,rgba(11,11,13,.84) 0%,rgba(11,11,13,.76) 38%,
    rgba(11,11,13,.44) 68%,rgba(11,11,13,.12) 100%)}

.hero .flow{background:none;border:0;box-shadow:none;max-width:none;min-height:392px;
  display:block;color:#fff}
.hero .flow-top{background:none;border:0;padding:0;display:flex;justify-content:center;margin-bottom:22px}
.hero .flow-top .label{display:none}
.hero .prog{margin:0;gap:7px}
.hero .prog i{width:34px;height:3px;background:rgba(255,255,255,.22)}
.hero .prog i.on{background:var(--red)}
.hero .flow-body{padding:0}
.hero .flow-q{color:#fff;font-weight:700;font-size:clamp(20px,2.5vw,28px);line-height:1.2;
  letter-spacing:-.02em;margin:0 0 6px}
.hero .flow-help{color:rgba(255,255,255,.6);font-size:15px;margin:0 0 24px}

.hero .opts{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;
  gap:10px;max-width:720px;margin:0 auto}
.hero .opt{width:auto;flex:0 1 auto;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.22);color:#fff;padding:14px 20px;font-size:16px;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  transition:background .14s ease,border-color .14s ease,transform .14s ease}
.hero .opt:hover{background:var(--red);border-color:var(--red);transform:translateY(-2px)}
.hero .opt .mk{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.65);
  width:24px;height:24px;font-size:10.5px}
.hero .opt:hover .mk{border-color:rgba(255,255,255,.6);color:#fff}
.hero .opt small{color:rgba(255,255,255,.58);font-size:13.5px}
.hero .opt:hover small{color:rgba(255,255,255,.85)}

.hero .notes{border-top:1px solid rgba(255,255,255,.16);justify-content:center;
  max-width:560px;margin:20px auto 0}
.hero .notes > span{color:rgba(255,255,255,.45)}
.hero .note-b{color:rgba(255,255,255,.75);border-bottom-color:rgba(255,255,255,.28)}
.hero .note-b:hover{color:#fff;border-bottom-color:var(--red)}
.hero .flow-back{color:rgba(255,255,255,.55);margin-top:20px}
.hero .flow-back.cap-back{margin-top:0}
.hero .flow-back:hover{color:#fff}

/* the answer, same treatment: no box */
.hero .outcome{background:none;border:0;padding:0;text-align:center;max-width:620px;margin:0 auto}
.hero .outcome > .label{color:#FF6A70;display:block;margin-bottom:10px}
.hero .outcome h3,.hero .outcome .display{color:#fff;font-size:clamp(22px,2.8vw,32px);margin-bottom:12px}
.hero .outcome p{color:rgba(255,255,255,.72);font-size:16px;margin:0 auto 20px;max-width:50ch}
.hero .oc-meta{border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:15px 0;text-align:center;margin-bottom:20px}
.hero .oc-meta > div{padding:0 8px}
@media(max-width:560px){.hero .oc-meta{grid-template-columns:1fr 1fr}
  .hero .oc-meta > div:only-child,.hero .oc-meta > div:nth-child(3):last-child{grid-column:1/-1}}
.hero .oc-meta div{color:rgba(255,255,255,.5)}
.hero .oc-meta b{color:#fff;font-size:17px}
.hero .outcome .btn{background:var(--red);color:#fff}
.hero .outcome .btn:hover{background:#fff;color:var(--red)}
.hero .outcome .sub{color:rgba(255,255,255,.5)}
/* On the photograph every colour is restated, and the block sits in the
   card's own rhythm rather than announcing itself. */
.hero .oc-meta{margin-bottom:20px}
.hero .prio-ans{margin:0 auto 22px;max-width:54ch;color:rgba(255,255,255,.68)}
.hero .prio-ans b{color:#fff;font-weight:600}
.hero .prio-ans a{color:#fff;border-bottom-color:rgba(255,255,255,.45)}
.hero .prio-ans a:hover{color:#FF6A70;border-bottom-color:#FF6A70}

@media(max-width:700px){
  .hero.withflow .h1{font-size:clamp(34px,8.4vw,50px)}
  .hero .flow{min-height:0}
  .hero .opts{flex-direction:column;align-items:stretch;max-width:none}
}

/* ---------- location band ---------- */
.geo{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(20px,3vw,48px);
  align-items:center;border-top:2px solid var(--ink);padding-top:26px}
.geo p{margin:0;max-width:62ch;font-size:16px}
.geo .display{max-width:22ch}
.geo-cta{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.geo-cta .btn{justify-content:center;padding:16px 22px;font-size:16px}
@media(max-width:820px){.geo{grid-template-columns:1fr}
  .geo-cta{flex-direction:row;flex-wrap:wrap}}
.geo-tag{margin-left:2px}

/* ---------- featured campus ----------
   Scoped to .wrap.feat on purpose. A bare .feat also matched .plan.feat
   on the price cards and turned the featured card into a two-column
   grid, which stranded its price at the bottom of an empty column. */
.wrap.feat{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,64px);align-items:center}
@media(max-width:860px){.wrap.feat{grid-template-columns:1fr}}
.feat-why{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}
.feat-why li{padding:16px 0 16px 26px;border-bottom:1px solid var(--rule);
  position:relative;font-size:15.5px;color:var(--ink-2)}
.feat-why li::before{content:"";position:absolute;left:0;top:25px;width:12px;height:2px;background:var(--red)}

/* ---------- logo ----------
   The old source was a 480x480 PNG whose artwork only filled 224px of that
   height, so more than half of every "64px" logo was empty transparency and
   the mark rendered at about 30px. These are the vector files, cropped to
   the artwork, so the height below is the height you actually see. */
.logo{flex:none;display:flex;align-items:center}
.logo img{height:54px;width:auto;display:block}
@media(max-width:900px){.logo img{height:38px}}
.flogo{height:52px;width:auto}

/* ---------- cohort bars ---------- */
.cyears{display:grid;gap:22px;margin:8px 0 0}
.cyear{border-top:2px solid var(--ink);padding-top:16px}
.cy-h{display:flex;align-items:baseline;gap:16px}
.cy-n{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--ink-3)}
.cy-p{margin-left:auto;font-weight:900;font-size:clamp(30px,4.4vw,52px);letter-spacing:-.045em;
  color:var(--ink);line-height:1}
.cy-bar{height:12px;background:var(--paper-3);margin:14px 0 10px;overflow:hidden}
.cy-bar i{display:block;height:100%;background:var(--red)}
.cy-x{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--ink-3)}

/* ---------- monthly cohort columns ---------- */
.months{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;align-items:end;
  border-bottom:2px solid var(--ink);padding-bottom:0}
.mo{text-align:center;min-width:0}
.mo-b{height:150px;display:flex;align-items:flex-end;background:var(--paper-3)}
.mo-b i{display:block;width:100%;background:var(--ink-3)}
.mo.hi .mo-b i{background:var(--red)}
.mo.lo .mo-b i{background:#C9C9CE}
.mo-p{font-weight:800;font-size:14px;color:var(--ink);margin-top:8px;letter-spacing:-.02em}
.mo-m{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.mo-n{font-family:var(--mono);font-size:10px;color:var(--ink-3);opacity:.7}
@media(max-width:820px){.months{grid-template-columns:repeat(6,1fr);gap:8px;row-gap:20px}
  .mo-b{height:110px}}

/* ---------- graduate cards ---------- */
.grads{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:1000px){.grads{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grads{grid-template-columns:1fr}}
.grad{border:1.5px solid var(--rule);padding:22px;background:var(--paper);min-width:0}
.g-emp{font-weight:800;font-size:19px;letter-spacing:-.025em;color:var(--red);line-height:1.15}
.g-name{font-family:var(--mono);font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin:8px 0 18px}
.g-path{display:grid;gap:11px;border-top:1px solid var(--rule);padding-top:16px}
.g-path span{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-3);display:block;line-height:1.4}
.g-path b{display:block;font-family:var(--font);font-size:15.5px;font-weight:700;letter-spacing:-.015em;
  color:var(--ink);text-transform:none;margin-bottom:1px}


/* ---------- payment calculator ---------- */
.calc-wrap{background:var(--paper-2);padding:clamp(40px,5vw,72px) 0;
  border-bottom:1px solid var(--rule)}
.calc{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,3.5vw,52px);
  align-items:start;background:var(--paper);border:2px solid var(--ink);
  padding:clamp(24px,3.2vw,40px)}
@media(max-width:900px){.calc{grid-template-columns:1fr}}
.calc-in{min-width:0}
.cf{display:block;font-family:var(--mono);font-size:10.5px;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0 0 20px}
.cf b{float:right;font-family:var(--font);font-size:15px;font-weight:800;
  letter-spacing:-.02em;color:var(--ink);text-transform:none}
.cf select{display:block;width:100%;margin-top:8px;padding:13px;border:1.5px solid var(--rule);
  background:var(--paper);font-family:var(--font);font-size:16px;color:var(--ink)}
.cf select:focus{outline:none;border-color:var(--ink)}
.cf input[type=range]{display:block;width:100%;margin-top:12px;accent-color:var(--red);height:4px}

.calc-out{min-width:0;display:grid;gap:14px}
.co{border:1.5px solid var(--rule);padding:20px 22px;background:var(--paper)}
.co.co-hi{border:2px solid var(--red)}
.co-h{font-weight:800;font-size:18px;letter-spacing:-.022em;color:var(--ink);
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  padding-bottom:14px;border-bottom:1px solid var(--rule);margin-bottom:4px}
.co-h span{margin-left:auto;font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.co.co-hi .co-h span{color:var(--red)}
.co-rows > div{display:flex;align-items:baseline;gap:12px;padding:13px 0;
  border-bottom:1px solid var(--rule);flex-wrap:wrap}
.co-rows > div:last-child{border-bottom:0;padding-bottom:0}
.co-rows span{font-size:15px;color:var(--ink-2);flex:1 1 150px}
.co-rows b{font-weight:900;font-size:clamp(21px,2.4vw,27px);letter-spacing:-.035em;
  color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.co.co-hi .co-rows b{color:var(--red)}
.co-rows i{flex-basis:100%;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;
  color:var(--ink-3);font-style:normal}
.co-note{font-family:var(--mono);font-size:11.5px;line-height:1.7;color:var(--ink-3);margin:4px 0 0}
.co-note b{color:var(--ink-2)}
.calc-out .btn{justify-content:center}

/* ---------- class calendar ---------- */
.cal-head{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap;
  margin-bottom:clamp(26px,3.4vw,40px)}
.cal-head .cf{margin-left:auto}
.date{position:relative}
.date.next{border:2px solid var(--red)}
.date.next .x,.date.next .d{color:#fff;font-weight:700}
.date.next .m{color:#fff}
.date.next .seatbar{background:rgba(255,255,255,.26)}
.date.low{border-color:var(--red)}
.date.low .x{color:var(--red);font-weight:700}
.date.full{background:var(--paper-2);border-color:var(--rule)}
.date.full .d,.date.full .m{color:var(--ink-3)}
.date.full .x{color:var(--ink-3)}
.seatbar{height:5px;background:var(--paper-3);margin:12px 0 9px;overflow:hidden}
.seatbar i{display:block;height:100%;background:var(--ink-3)}
.date.low .seatbar i{background:var(--red)}
.date.next .seatbar i{background:#fff}
.date.full .seatbar i{background:var(--rule-strong,#B9B9BF)}
.cal-note{font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--ink-3);
  margin:20px 0 0;max-width:76ch}
.cal-note b{color:var(--ink-2)}

/* .next can co-occur with .low; these must win */
.date.next.low .x,.date.next.full .x,.date.next .x{color:#fff}
.date.next.low .d,.date.next .d{color:#fff}
.date.next.low{border-color:var(--red)}
.date.next .seatbar i{background:#fff}

/* ---------- next steps ---------- */
.nx-wrap{border-top:1px solid var(--rule)}
.nx-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--ink)}
@media(max-width:780px){.nx-row{grid-template-columns:1fr}}
.nx{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;text-decoration:none;
  padding:24px 26px 24px 0;border-right:1px solid var(--rule);min-width:0;
  transition:background .14s ease}
.nx:last-child{border-right:0}
@media(max-width:780px){.nx{border-right:0;border-bottom:1px solid var(--rule);padding-right:0}
  .nx:last-child{border-bottom:0}}
.nx:hover{background:var(--paper-2)}
.nx-k{flex-basis:100%;font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--red);margin-bottom:8px}
.nx-t{font-weight:700;font-size:17.5px;letter-spacing:-.02em;color:var(--ink);
  line-height:1.25;flex:1 1 auto}
.nx-a{color:var(--red);font-size:19px;line-height:1;transition:transform .14s ease}
.nx:hover .nx-a{transform:translateX(4px)}

/* ---------- campus picker + login in the header ---------- */
.hdr{gap:20px}
nav.main{flex:1}
.cp{position:relative;flex:none}
.cp-b{display:flex;align-items:center;gap:8px;background:none;cursor:pointer;
  border:1.5px solid var(--rule);padding:9px 14px;font-family:var(--font);
  font-size:14.5px;font-weight:600;color:var(--ink);line-height:1;
  transition:border-color .14s ease}
.cp-b:hover{border-color:var(--ink)}
.cp-b svg{color:var(--red);flex:none}
.cp-c{color:var(--ink-3);font-size:11px}
.cp-b.set .cp-l{color:var(--ink)}
.cp-p{position:absolute;right:0;top:calc(100% + 9px);z-index:80;width:296px;
  background:var(--paper);border:1.5px solid var(--ink);
  box-shadow:0 22px 60px rgba(0,0,0,.22);padding:6px}
.cp-h{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-3);padding:12px 14px 10px}
.cp-o{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;
  padding:11px 14px;font-family:var(--font);transition:background .12s ease}
.cp-o:hover{background:var(--paper-2)}
.cp-o.on{background:var(--red-soft)}
.cp-o.on .cp-n{color:var(--red)}
.cp-n{display:block;font-size:15.5px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}
.cp-a{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;
  color:var(--ink-3);margin-top:2px}
.cp-all{display:block;padding:13px 14px;margin-top:6px;border-top:1px solid var(--rule);
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);text-decoration:none}
.cp-all:hover{color:var(--red)}
.hdr-login{flex:none;font-weight:600;font-size:15px;color:var(--ink-2);text-decoration:none;
  padding:9px 4px;white-space:nowrap}
.hdr-login:hover{color:var(--red)}
@media(max-width:1180px){nav.main{gap:18px}nav.main a{font-size:14px}}
@media(max-width:1040px){.cp-l{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:900px){
  .cp-b{padding:8px 10px;font-size:13.5px}
  .cp-c{display:none}
  .hdr-login{font-size:14px}
  /* pin the panel to the viewport rather than to the button, or a
     narrow screen pushes it off the left edge */
  .cp-p{position:fixed;top:78px;left:14px;right:14px;width:auto}
}
@media(max-width:560px){
  .cp-l{max-width:none;font-size:0}
  .cp-l::after{content:attr(data-code);font-size:13px}
  .hdr .btn{padding:11px 13px;font-size:14px}
  /* Four things share a 390px bar: logo, campus code, Log in, Apply.
     Give up the arrow and some gap before giving up logo height. */
  .hdr{gap:10px}
  .hdr .btn .arw{display:none}
  .hdr-login{padding:9px 0}
  .logo img{height:34px}
}

/* =====================================================================
   CAMPUS DETAIL SECTIONS
   Sticky section nav, field specs, leadership, instructors, fleet
   table with filter, housing with a cost slider, buildings.
   ===================================================================== */

/* ---------- sticky section nav ---------- */
.secnav{position:sticky;top:92px;z-index:40;background:var(--paper);
  border-bottom:1px solid var(--rule);box-shadow:0 1px 0 rgba(16,16,19,.04)}
.secnav .wrap{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;
  padding-top:0;padding-bottom:0}
.secnav .wrap::-webkit-scrollbar{display:none}
.secnav a{flex:none;text-decoration:none;color:var(--ink-3);font-weight:600;
  font-size:14.5px;letter-spacing:-.005em;padding:17px 18px 15px;
  border-bottom:3px solid transparent;white-space:nowrap;transition:color .15s ease}
.secnav a:first-child{padding-left:0}
.secnav a:hover{color:var(--ink)}
.secnav a[aria-current="true"]{color:var(--ink);border-bottom-color:var(--red)}
@media(max-width:900px){.secnav{top:72px}.secnav a{font-size:13.5px;padding:14px 14px 12px}}
[id]{scroll-margin-top:150px}
@media(max-width:900px){[id]{scroll-margin-top:126px}}

/* ---------- shared bits ---------- */
.tone{background:var(--paper-2)}
h3.mini{font-family:var(--font);font-weight:800;font-size:21px;letter-spacing:-.02em;
  color:var(--ink);margin:0 0 6px}
.foot{font-size:15px;color:var(--ink-3);margin:14px 0 0;max-width:62ch}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------- the field ---------- */
.fieldgrid{display:grid;grid-template-columns:1fr 1fr;gap:52px}
@media(max-width:900px){.fieldgrid{grid-template-columns:1fr;gap:34px}}
dl.specs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;
  border-top:1px solid var(--rule)}
dl.specs > div{padding:15px 0;border-bottom:1px solid var(--rule)}
dl.specs > div:nth-child(odd){padding-right:18px}
dl.specs dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-3);margin:0 0 3px}
dl.specs dd{margin:0;color:var(--ink);font-weight:600;font-size:16.5px;line-height:1.3}
.practice{margin:20px 0 0;font-size:16px;color:var(--ink-2)}
.practice b{color:var(--ink)}
table.rw{border-collapse:collapse;width:100%;min-width:430px;font-size:15.5px}
table.rw caption{text-align:left;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);padding-bottom:9px}
table.rw th,table.rw td{text-align:left;padding:12px 14px 12px 0;
  border-bottom:1px solid var(--rule)}
table.rw thead th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);font-weight:500}
table.rw tbody th{font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
table.rw td{color:var(--ink-2);font-variant-numeric:tabular-nums}
ul.near{list-style:none;margin:0;padding:0}
ul.near li{display:flex;justify-content:space-between;gap:18px;padding:11px 0;
  border-bottom:1px solid var(--rule);font-size:16px}
ul.near b{color:var(--ink);font-weight:600}
ul.near span{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- photo placeholders ---------- */
.av{position:relative;width:52px;height:52px;flex:none;border-radius:50%;
  background:var(--paper-3);display:grid;place-items:center;overflow:hidden}
.av svg{position:absolute;inset:0;width:100%;height:100%;fill:none;
  stroke:rgba(16,16,19,.16);stroke-width:3.5}
.av span{position:relative;font-family:var(--mono);font-size:13px;font-weight:500;
  letter-spacing:.06em;color:var(--ink-3)}
.av.lg{width:100%;height:auto;aspect-ratio:4/3;border-radius:0;margin-bottom:18px}
.av.lg svg{inset:auto;position:relative;width:74px;height:74px}
.av.lg span{position:absolute;bottom:10px;right:12px;font-size:11px;letter-spacing:.14em}
.ph{aspect-ratio:3/2;background:var(--paper-3);display:grid;place-items:center;
  max-width:100%}
.ph span{font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-3)}

/* ---------- leadership ---------- */
.lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
@media(max-width:980px){.lgrid{grid-template-columns:1fr;gap:26px;max-width:620px}}
.lcard h3{font-family:var(--font);font-weight:800;font-size:23px;letter-spacing:-.025em;
  color:var(--ink);margin:0}
.ltitle{font-family:var(--mono);font-size:11.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--red);margin:6px 0 0}
.lmeta{font-size:14.5px;color:var(--ink-3);margin:5px 0 0}
.lbio{font-size:16px;color:var(--ink-2);margin:12px 0 0}

/* ---------- instructors ---------- */
.istats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.istats > div{padding:24px 24px 24px 0}
.istats > div + div{border-left:1px solid var(--rule);padding-left:24px}
.istats b{display:block;font-weight:900;font-size:clamp(28px,3.6vw,44px);
  letter-spacing:-.035em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.istats span{display:block;font-size:14.5px;color:var(--ink-3);margin-top:7px;max-width:18ch}
@media(max-width:820px){.istats{grid-template-columns:1fr 1fr}
  .istats > div{padding:18px 18px 18px 0}
  .istats > div:nth-child(odd){border-left:0;padding-left:0}
  .istats > div:nth-child(even){border-left:1px solid var(--rule);padding-left:18px}
  .istats > div:nth-child(-n+2){border-bottom:1px solid var(--rule)}}
.avrow{display:flex;flex-wrap:wrap;gap:20px 26px;margin-top:34px}
.avwrap{display:flex;flex-direction:column;align-items:center;gap:8px;width:66px}
.avwrap span{font-size:13.5px;color:var(--ink-3);text-align:center}

/* ---------- fleet ---------- */
.fcounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:6px 0 18px}
.fcount{display:flex;gap:18px;align-items:center;padding:20px 22px;border:1px solid var(--rule);background:#fff}
.fcount .n{font-family:var(--font);font-weight:900;font-size:44px;line-height:1;color:var(--ink);min-width:1.4em}
.fcount b{display:block;font-size:16.5px;color:var(--ink);margin-bottom:3px}
.fcount span{display:block;font-size:14px;line-height:1.45;color:var(--ink-3)}
.ftabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.fbtn{font-family:var(--font);font-weight:600;font-size:14.5px;cursor:pointer;
  padding:9px 16px;border:1px solid var(--rule);background:transparent;
  color:var(--ink-2);transition:all .15s ease}
.fbtn:hover{border-color:var(--ink-3);color:var(--ink)}
.fbtn.on{background:var(--ink);border-color:var(--ink);color:#fff}
table.fleet{border-collapse:collapse;width:100%;min-width:620px;font-size:16px}
table.fleet th,table.fleet td{text-align:left;padding:14px 18px 14px 0;
  border-bottom:1px solid var(--rule)}
table.fleet thead th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);font-weight:500;
  border-bottom:1px solid var(--ink)}
table.fleet tbody th code{font-family:var(--mono);font-size:15.5px;font-weight:500;
  color:var(--ink);letter-spacing:.02em}
table.fleet td{color:var(--ink-2)}
table.fleet tbody tr[hidden]{display:none}

/* ---------- housing ---------- */
.hgrid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
@media(max-width:900px){.hgrid{grid-template-columns:1fr;gap:32px}}
.hdist{font-family:var(--mono);font-size:13px;letter-spacing:.04em;
  color:var(--ink-3);margin:0 0 18px}
ul.hincl{list-style:none;margin:0;padding:0}
ul.hincl li{position:relative;padding:10px 0 10px 26px;border-bottom:1px solid var(--rule);
  font-size:16.5px;color:var(--ink-2)}
ul.hincl li::before{content:"";position:absolute;left:0;top:20px;width:13px;height:2px;
  background:var(--red)}
.hshot figcaption{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-3);margin-top:10px}
.hshot{margin:0 0 28px}
.hcalc{border-top:2px solid var(--ink);padding-top:22px}
.hcalc label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:16px}
input.hslide{width:100%;accent-color:var(--red);height:26px;cursor:pointer}
.hout{font-size:19px;color:var(--ink-2);margin:10px 0 0;font-variant-numeric:tabular-nums}
.hout b{color:var(--ink);font-weight:800}
.hnote{font-size:14.5px;color:var(--ink-3);margin:10px 0 0}

/* ---------- buildings ---------- */
.bgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule)}
.bcard{background:var(--paper);padding:26px 24px}
.bcard h3{font-family:var(--font);font-weight:800;font-size:19px;letter-spacing:-.02em;
  color:var(--ink);margin:0 0 4px}
.baddr{font-family:var(--mono);font-size:12px;letter-spacing:.03em;color:var(--red);
  margin:0 0 10px}
.bcard p:last-child{font-size:15.5px;color:var(--ink-2);margin:0}

/* ---------- campus dates strip ---------- */
.campdates{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}
/* the campus strip reuses .date but as a link, so give it link affordances */
a.date{display:block;text-decoration:none;transition:border-color .15s ease,transform .15s ease}
a.date:hover{border-color:var(--ink);transform:translateY(-2px)}
a.date.next:hover{border-color:var(--red-dk)}
@media(max-width:640px){
  /* two spec columns do not fit a phone: the values wrap and push the page wide */
  dl.specs{grid-template-columns:1fr}
  dl.specs > div:nth-child(odd){padding-right:0}
  .avwrap{width:58px}
  .campdates{grid-template-columns:1fr 1fr}
}
/* A 1fr grid track is minmax(auto,1fr), so a wide table inside one column
   stretches the whole grid past the viewport even though the table has its
   own scroll container. Letting the tracks shrink is what makes .scroll-x
   actually do its job. */
.fieldgrid > *, .hgrid > *, .istats > *{min-width:0}
.scroll-x{max-width:100%}
/* --- corrections after looking at the rendered page --- */
/* the small avatar carried both a silhouette and initials stacked on top of
   each other; the name sits underneath it already, so drop the initials */
.av:not(.lg) span{display:none}
.av:not(.lg) svg{stroke-width:3}
/* "Getting here" was landing hard against the runway table above it */
.fieldgrid h3.mini{margin-top:34px}
/* the config line read as a code string in mono and broke mid-phrase */
.hdist{font-family:var(--font);font-size:15.5px;letter-spacing:0;color:var(--ink-3)}

/* ---------- sectional chart ----------
   The FAA's own raster sectional, cropped to the field. Public domain as
   a US Government work; the caption carries the edition and the
   not-for-navigation note the FAA asks for. */
figure.sect{margin:44px 0 0;border-top:2px solid var(--ink);padding-top:26px}
figure.sect img{width:100%;height:auto;border:1px solid var(--rule);background:var(--paper-2)}
figure.sect figcaption{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;
  margin-top:14px;font-size:14.5px;color:var(--ink-3)}
figure.sect figcaption b{color:var(--ink);font-weight:700}
figure.sect figcaption span{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--red);border:1px solid var(--red);padding:3px 7px;
  margin-left:auto;white-space:nowrap}
@media(max-width:640px){figure.sect figcaption span{margin-left:0}}
/* the campus strip now leads with what has already gone at this campus */
.campdates{display:block}
.campdates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}
@media(max-width:640px){.campdates-grid{grid-template-columns:1fr 1fr}}
p.gone{font-size:16px;color:var(--ink-2);margin:0 0 20px;padding-left:16px;
  border-left:3px solid var(--red);max-width:62ch}

/* ---------- VA chapter picker ---------------------------------------
   Reuses .opt from the questionnaire so it reads as the same mechanism.
   The cards are visible by default and JS hides the unchosen ones, so
   with JavaScript off the page still explains all four chapters. */
.va-pick{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.opt.on{border-color:var(--ink);background:var(--paper-2)}
.opt.on .mk{border-color:var(--red);background:var(--red);color:#fff}
.va-card + .va-card{margin-top:30px;padding-top:30px;border-top:1px solid var(--rule)}
.va-outs{margin-top:34px}
.va-outs.picked .va-card{display:none}
.va-outs.picked .va-card.on{display:block;margin-top:0;padding-top:0;border-top:0}
.va-card h3 .va-ch{font-family:var(--mono);font-size:.42em;font-weight:500;
  letter-spacing:.06em;color:var(--red);vertical-align:.5em;margin-left:6px}
.va-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:0;border-top:2px solid var(--ink);margin:22px 0 10px}
.va-facts > div{padding:22px 26px 22px 0;border-right:1px solid var(--rule)}
.va-facts > div:last-child{border-right:0}
.va-facts span{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:9px}
.va-facts b{font-weight:700;font-size:17.5px;color:var(--ink);line-height:1.3}
@media(max-width:760px){
  .va-facts > div{border-right:0;border-bottom:1px solid var(--rule);padding-right:0}
  .va-facts > div:last-child{border-bottom:0}}
#va-cap:not(:empty){margin-top:34px}

/* ---------- the application intake ---------------------------------
   Wider than the two-field capture block because it asks for four
   things, and deliberately not styled as a "form" — the same paper and
   rules as the rest of the page, so it reads as the next step rather
   than as a gate that has appeared. */
.apf{margin-top:8px}
.apf-g{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}
.apf-g .f{display:flex;flex-direction:column;gap:7px}
.apf-g .f.wide{grid-column:1/-1;max-width:420px}
.apf-g label{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3)}
.apf-g input,.apf-g select{font-family:var(--font);font-size:16px;padding:13px 14px;
  border:1.5px solid var(--rule);background:#fff;color:var(--ink);width:100%;
  border-radius:0;appearance:none}
.apf-g select{background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),
  linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(100% - 19px) 21px,calc(100% - 13px) 21px;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:40px}
.apf-g input:focus,.apf-g select:focus{outline:0;border-color:var(--ink)}
.apf-g input[aria-invalid="true"]{border-color:var(--red)}
.apf-row{display:flex;flex-wrap:wrap;gap:16px 22px;align-items:center;margin-top:24px}
.apf-note{font-size:13px;color:var(--ink-3);max-width:34ch;line-height:1.4}
.apf-msg{margin-top:16px;font-size:14.5px;color:var(--ink-2);min-height:1.2em}
.apf-msg.bad{color:var(--red)}
.apf-msg.good{color:var(--ink);font-weight:700}
.apf-done{font-size:17px;line-height:1.5;color:var(--ink);max-width:56ch}
.apf-done b{color:var(--red)}
@media(max-width:680px){.apf-g{grid-template-columns:1fr}}

/* An explanatory block inside an outcome card. .note is styled for a
   light page; the outcome sits on the hero photograph where the text is
   white, so it needs its own treatment — the same trap .prio-ans and
   .note-b fell into. */
.oc-note{background:var(--paper-2);border-left:4px solid var(--red);
  padding:18px 22px;margin:0 0 26px;font-size:15px;line-height:1.55;
  color:var(--ink-2);text-align:left}
.oc-note b{color:var(--ink)}
.hero .oc-note{background:rgba(255,255,255,.1);border-left-color:var(--red);
  color:rgba(255,255,255,.88)}
.hero .oc-note b{color:#fff}

/* ---------- buttons inside a chat reply ----------------------------
   Sized down from the page buttons: a call to action inside a
   conversation should read as the obvious next step, not as the page
   shouting over the answer it just gave. */
.chat-cta{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 4px;
  align-self:flex-start;max-width:92%}
.chat-cta .btn{font-size:14px;padding:10px 15px;gap:8px}
.chat-cta .btn .arw{font-size:.95em}
/* One primary, the rest quiet. Two solid red buttons side by side ask
   the same question twice and answer neither. */
.chat-cta .btn + .btn{background:transparent;color:var(--ink);
  box-shadow:inset 0 0 0 1.5px var(--ink-3)}
.chat-cta .btn + .btn:hover{background:var(--ink);color:#fff;box-shadow:none}
@media(max-width:560px){.chat-cta{flex-direction:column;align-items:stretch}
  .chat-cta .btn{justify-content:center}}

/* ---------- mobile menu ---------- */
/* nav.main hides at 900px; this button and drop-down carry the same links. */
.nav-t{display:none;flex:none;width:44px;height:44px;padding:0;margin-left:-4px;
  background:none;border:0;cursor:pointer;flex-direction:column;
  align-items:center;justify-content:center;gap:5px}
.nav-t span{display:block;width:22px;height:2px;background:var(--ink);
  transition:transform .18s ease,opacity .18s ease}
.nav-t[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-t[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-t[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-m{position:absolute;left:0;right:0;top:100%;background:var(--paper);
  border-bottom:1.5px solid var(--ink);box-shadow:0 22px 60px rgba(0,0,0,.18);
  max-height:calc(100vh - 72px);overflow-y:auto}
.nav-m[hidden]{display:none}
.nav-m .wrap{display:flex;flex-direction:column;padding-top:6px;padding-bottom:14px}
.nav-m a{display:block;padding:16px 0;border-bottom:1px solid var(--rule);
  font-weight:700;font-size:19px;letter-spacing:-.015em;color:var(--ink);text-decoration:none}
.nav-m a:last-child{border-bottom:0}
.nav-m a.on,.nav-m a:hover{color:var(--red)}
.nav-m a.nav-m-login{font-family:var(--mono);font-size:12px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
@media(max-width:900px){.nav-t{display:flex}}
@media(min-width:901px){.nav-m{display:none!important}}
@media(max-width:560px){.hdr-login{display:none}.hdr{gap:8px}}

/* =====================================================================
   TOUCH TARGETS
   Measured at 390x844 with a coarse pointer: the header logo, the campus
   button, the nav and footer links, the filter chips and the capture
   "skip" links all came out 19-36px tall. The guidance everyone quotes is
   44px, and on a phone the difference between 34 and 44 is the difference
   between hitting the link and hitting the one under it.

   Every rule here is padding, not font size, so nothing moves on a mouse
   screen and nothing reflows: the text stays where it is and the hit box
   grows around it.
   ================================================================== */
@media (hover:none) and (pointer:coarse){
  .logo{padding:6px 0}
  .cp-b{padding-top:13px;padding-bottom:13px}
  nav.main a,.hdr-login{padding-top:12px;padding-bottom:12px}
  .cap-go,.cap-back{display:inline-block;padding:11px 0}
  .bl-f,.fbtn{padding-top:13px;padding-bottom:13px}
  .fgrid a{padding-top:9px;padding-bottom:9px}
  footer .fnav a,footer .flinks a{display:inline-block;padding:9px 0}
  /* the panel's own heading, the smallest type on the site */
  .cp-h{font-size:11.5px}
  /* Two labels were under 10px, which is below what most people can read
     at arm's length. The mono face runs small, so these are set against
     the rendered size rather than the nominal one. */
  .camp .near{font-size:11px}
  .va-card h3 .va-ch{font-size:12px}
}
/* A campus card standing in a sectional for a missing photograph. Lightened
   so the chart does not shout next to the photographs beside it, and anchored
   top-left so the airport itself survives the 16:10 crop. */
.camp img.camp-chart{object-position:50% 42%;filter:saturate(.78) brightness(1.04)}

/* ======================================================================
   BLOG POSTS
   The article copy is WordPress's, block for block. These rules restyle
   those blocks (paragraph, heading, image, table, quote, embed, Spectra
   CTA/notice/timeline/FAQ, Lasso product boxes, Formidable calculators)
   in this site's type and colour, so 220 imported posts read like the
   rest of the site without anybody re-editing them.
   ====================================================================== */
.cta-band p:empty{display:none}
.bl.has-img{padding-top:0;border-top:0}
.bl-img{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--paper-2);margin-bottom:16px}
.bl-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.bl:hover .bl-img img{transform:scale(1.03)}
.bl-list{gap:34px 30px}
.bl-list .bl{padding-right:0}
.bl-list.three{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
a.bl-f{text-decoration:none}
.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:52px}
.pg{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;min-width:42px;
  text-align:center;padding:11px 12px;border:1.5px solid var(--rule);color:var(--ink-2);text-decoration:none}
a.pg:hover{border-color:var(--ink);color:var(--ink)}
.pg.on{background:var(--ink);border-color:var(--ink);color:#fff}
.arch-top{border-bottom:1px solid var(--rule)}
.arch-top .sub{margin-top:12px}

.post .wrap{max-width:1240px}
.post-head{padding:clamp(40px,6vw,84px) 0 clamp(22px,3vw,34px);max-width:900px}
.post-h1{font-size:clamp(34px,5.4vw,66px);line-height:1.02}
.post-meta{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);margin:22px 0 0}
.post-meta a{color:var(--red);text-decoration:none}
.post-meta a:hover{text-decoration:underline}
.post-feat{margin:0 0 clamp(34px,4.5vw,56px)}
.post-feat .pf{display:block;aspect-ratio:21/9;overflow:hidden;background:var(--paper-2)}
.post-feat img{width:100%;height:100%;object-fit:cover}
@media(max-width:780px){.post-feat .pf{aspect-ratio:16/10}}
.post-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(40px,6vw,90px);
  padding-bottom:clamp(64px,8vw,110px)}
@media(max-width:1000px){.post-grid{grid-template-columns:minmax(0,1fr)}}
.post-aside{position:relative}
.post-aside > div:first-child{margin-top:0}
@media(min-width:1001px){.post-aside{align-self:start;position:sticky;top:120px}}
.pa-card{border-top:3px solid var(--ink);padding:22px 0 26px;margin-top:10px}
.pa-card p{font-size:15px;line-height:1.55;margin:10px 0 18px}
.pa-h{font-weight:800;font-size:19px;letter-spacing:-.02em;line-height:1.22;color:var(--ink);margin:0}
.pa-mag{border-top-color:var(--red)}
.pa-card .btn{padding:14px 20px;font-size:15px}
.pa-cats{display:flex;flex-direction:column;margin-top:12px}
.pa-cats a{padding:10px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-weight:600;color:var(--ink-2)}
.pa-cats a:hover{color:var(--red)}

/* --- the article body --- */
.wp{max-width:70ch;font-size:18px;line-height:1.7;color:var(--ink-2);overflow-wrap:break-word}
.wp > *:first-child{margin-top:0}
.wp p{margin:0 0 1.15em}
.wp a{color:var(--red);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.wp a:hover{color:var(--red-dk)}
.wp strong,.wp b{color:var(--ink)}
.wp h2{font-weight:900;font-size:clamp(26px,3.2vw,36px);letter-spacing:-.03em;line-height:1.1;
  color:var(--ink);margin:1.9em 0 .6em}
.wp h3{font-weight:800;font-size:clamp(21px,2.4vw,26px);letter-spacing:-.022em;line-height:1.2;
  color:var(--ink);margin:1.7em 0 .5em}
.wp h4,.wp h5,.wp h6{font-weight:700;font-size:19px;color:var(--ink);margin:1.5em 0 .45em}
.wp h2 strong,.wp h3 strong,.wp h4 strong{font-weight:inherit}
.wp ul,.wp ol{padding-left:24px;margin:0 0 1.3em}
.wp li{margin-bottom:.45em}
.wp li::marker{color:var(--red)}
.wp img{height:auto;max-width:100%}
.wp figure{margin:1.8em 0}
.wp .aligncenter{margin-left:auto;margin-right:auto;text-align:center}
.wp .aligncenter img{margin:0 auto}
.wp .alignleft{float:left;margin:.3em 1.4em 1em 0;max-width:45%}
.wp .alignright{float:right;margin:.3em 0 1em 1.4em;max-width:45%}
.wp figcaption,.wp .wp-element-caption{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;
  color:var(--ink-3);margin-top:10px;text-align:center}
.wp hr,.wp .wp-block-separator{border:0;border-top:1px solid var(--rule);margin:2.4em 0}
.wp blockquote{margin:1.8em 0;padding:4px 0 4px 26px;border-left:4px solid var(--red);
  font-size:19.5px;color:var(--ink)}
.wp blockquote p:last-child{margin-bottom:0}
.wp .tscroll{overflow-x:auto;margin:1.8em 0;-webkit-overflow-scrolling:touch}
.wp table{border-collapse:collapse;width:100%;font-size:15.5px;line-height:1.45;min-width:520px}
.wp th,.wp td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--rule);vertical-align:top}
.wp thead th,.wp thead td,.wp tr:first-child th{font-family:var(--mono);font-size:11px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);background:var(--paper-2)}
.wp .wp-block-table figcaption{text-align:left}
.wp .wp-block-embed{margin:1.8em 0}
.wp .wp-block-embed__wrapper{position:relative;aspect-ratio:16/9;background:#000}
.wp .wp-block-embed__wrapper iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.wp iframe{max-width:100%}
.wp .wp-block-columns{display:flex;gap:28px;margin:1.6em 0}
.wp .wp-block-column{flex:1 1 0;min-width:0}
@media(max-width:700px){.wp .wp-block-columns{flex-direction:column;gap:0}}
.wp .wp-block-buttons,.wp .uagb-buttons__wrap{display:flex;flex-wrap:wrap;gap:12px;margin:1.4em 0}
.wp .wp-block-button__link,.wp .uagb-buttons-repeater{display:inline-flex;align-items:center;gap:10px;
  background:var(--red);color:#fff !important;text-decoration:none !important;font-weight:700;
  font-size:16px;padding:15px 24px}
.wp .wp-block-button__link:hover,.wp .uagb-buttons-repeater:hover{background:var(--red-dk)}
.wp .wp-block-button__link::after,.wp .uagb-buttons-repeater::after{content:"\2192"}
/* Spectra CTA -> the site's dark band, inline */
.wp .wp-block-uagb-call-to-action{background:var(--ink);color:rgba(255,255,255,.76);
  padding:30px 32px;margin:2em 0}
.wp .uagb-cta__title{color:#fff;margin:0 0 .4em;font-size:24px}
.wp .uagb-cta__desc{margin:0 0 20px;font-size:16.5px}
.wp .wp-block-uagb-call-to-action strong{color:#fff}
.wp .uagb-cta__buttons a{margin-top:4px}
.wp .wp-block-uagb-container,.wp .wp-block-group{margin:1.6em 0}
.wp .wp-block-group > .wp-block-uagb-call-to-action{margin:0}
/* Spectra notice -> the site's note */
.wp .wp-block-uagb-inline-notice{background:var(--paper-2);border-left:4px solid var(--red);
  padding:20px 24px;margin:1.8em 0}
.wp .uagb-notice-title{margin:0 0 .4em;font-size:19px}
.wp .uagb-notice-text > :last-child{margin-bottom:0}
/* Spectra timeline */
.wp .wp-block-uagb-timeline,.wp .uagb-timeline__outer-wrap{border-left:2px solid var(--ink);
  padding-left:26px;margin:1.8em 0}
.wp .uagb-timeline__field{position:relative;margin-bottom:22px}
.wp .uagb-timeline__marker{display:none}
.wp .uagb-timeline__heading{font-weight:800;color:var(--ink);font-size:19px;margin:0 0 .3em}
.wp .uagb-timeline__date-new,.wp .uagb-timeline__date-hide{font-family:var(--mono);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
/* FAQ (was Spectra accordion) */
.wp .wp-faq{border-top:2px solid var(--ink);margin:1.8em 0}
.wp .wp-faq details{border-bottom:1px solid var(--rule)}
.wp .wp-faq summary{cursor:pointer;list-style:none;padding:18px 0;font-weight:700;font-size:18px;
  color:var(--ink);display:flex;gap:16px}
.wp .wp-faq summary::-webkit-details-marker{display:none}
.wp .wp-faq summary::after{content:"+";margin-left:auto;color:var(--red);font-weight:900;font-size:22px;line-height:1}
.wp .wp-faq details[open] summary::after{content:"\2013"}
.wp .wp-faq-a{padding:0 0 20px}
/* carousel -> swipeable strip */
.wp .wp-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:1.8em 0;
  padding-bottom:10px;-webkit-overflow-scrolling:touch}
.wp .wp-slide{flex:0 0 92%;scroll-snap-align:start}
.wp .wp-slide figure{margin:0}
.wp .wp-block-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
/* Lasso product boxes (Amazon affiliate) */
.wp .lasso-container{margin:1.8em 0}
.wp .lasso-display{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:8px 26px;
  border:1.5px solid var(--rule);padding:22px 24px;background:#fff}
.wp .lasso-box-1{grid-column:2;grid-row:1 / span 6;align-self:center}
.wp .lasso-box-1 img{max-height:180px;width:auto;object-fit:contain;margin:0 auto}
.wp .lasso-box-2,.wp .lasso-box-3,.wp .lasso-box-4,.wp .lasso-box-5{grid-column:1}
.wp a.lasso-title{display:block;font-weight:800;font-size:20px;line-height:1.25;letter-spacing:-.015em;
  color:var(--ink);text-decoration:none;margin-bottom:8px}
.wp a.lasso-title:hover{color:var(--red)}
.wp .lasso-price{font-family:var(--mono);font-size:13px;color:var(--ink-3)}
.wp .lasso-description{font-size:15.5px}
.wp .lasso-description p:empty,.wp .lasso-description br:only-child{display:none}
.wp a.lasso-button-1,.wp a.lasso-button-2{display:inline-flex;align-items:center;gap:10px;margin:8px 10px 6px 0;
  background:var(--red);color:#fff;text-decoration:none;font-weight:700;font-size:15px;padding:12px 20px}
.wp a.lasso-button-2{background:var(--ink)}
.wp a.lasso-button-1::after{content:"\2192"}
.wp .lasso-end{margin-top:8px}
.wp .lasso-disclosure,.wp .lasso-date{font-size:12px;color:var(--ink-3)}
.wp .lasso-amazon-prime,.wp .clear,.wp .lasso-stars{display:none}
.wp .lasso-fields{font-size:14.5px;margin:6px 0}
.wp .lasso-grid-row,.wp .lasso-display-table{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
@media(max-width:620px){
  .wp .lasso-display{grid-template-columns:1fr}
  .wp .lasso-box-1{grid-column:1;grid-row:auto}
}
/* Pay calculators (were Formidable Forms) */
.wp .frm-wrap{margin:2em 0}
.wp form.pcalc,.wp form.pform{background:var(--paper-2);border-top:3px solid var(--ink);padding:26px 28px 24px}
.wp form fieldset{border:0;margin:0;padding:0;min-width:0}
.wp .frm_form_title{margin:0 0 18px;font-size:22px}
.wp .frm_fields_container{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
.wp .frm_form_field{grid-column:1 / -1}
.wp .frm_form_field.frm6,.wp .frm_form_field.frm_half{grid-column:auto}
.wp .frm_section_heading{display:contents}
.wp .frm_section_heading > h3:empty{display:none}
@media(max-width:620px){.wp .frm_fields_container{grid-template-columns:1fr}.wp .frm_form_field.frm6{grid-column:1 / -1}}
.wp .frm_primary_label,.wp .frm_form_field > label{display:block;font-family:var(--mono);font-size:11px;
  font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.wp .frm_required{color:var(--red)}
.wp .frm_opt_container{display:flex;flex-wrap:wrap;gap:8px}
.wp .frm_radio label,.wp .frm_checkbox label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  background:#fff;border:1.5px solid var(--rule);padding:10px 14px;font-weight:600;font-size:15px;color:var(--ink)}
.wp .frm_radio input:checked + *,.wp .frm_radio label:has(input:checked){border-color:var(--ink)}
.wp .frm_radio input{accent-color:var(--red)}
.wp form select,.wp form input[type=text],.wp form input[type=number],.wp form input[type=email],.wp form textarea{
  width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--rule);background:#fff;color:var(--ink);border-radius:0}
.wp form input[type=range]{width:100%;accent-color:var(--red)}
.wp .frm-text-center,.wp .frm_range_value{font-family:var(--mono);font-weight:600;color:var(--ink)}
.wp .frm_total_formatted{font-weight:900;font-size:clamp(30px,4vw,42px);letter-spacing:-.03em;color:var(--ink);margin:4px 0 6px}
.wp .frm_hidden,.wp .frm_input_group.frm_hidden{display:none}
.wp .frm_description{font-size:13.5px;color:var(--ink-3)}
.wp .frm-hide{display:none !important}
.wp .frm_image_option_container img{max-width:120px}
.wp .frm_empty_url{display:none}
.wp .vertical_radio .frm_opt_container{flex-direction:column;align-items:stretch}
.wp .vertical_radio .frm_radio label{display:flex;width:100%;line-height:1.4}
.wp .frm_image_option_container.frm_label_with_image{display:block;padding:0;margin:0;min-height:0}
.wp form .pf-go{margin-top:18px}
.cta-band h2 + p:empty + .btn,.cta-band h2 + .btn,.cta-band .cta-h + p:empty + .btn,.cta-band .cta-h + .btn{margin-top:30px}
@media(min-width:900px){.bl-list.three{grid-template-columns:repeat(3,minmax(0,1fr))}}
.wp .lasso-display img{max-height:220px;width:auto;height:auto;object-fit:contain}

/* ---------- calculator: headline number + gated lender comparison ---------- */
.cf-help{display:block;margin-top:7px;font-family:var(--font);font-size:12.5px;font-weight:400;
  letter-spacing:0;text-transform:none;color:var(--ink-3);line-height:1.4}
.co-top{background:var(--ink);color:#fff;padding:22px 24px}
.co-k{display:block;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.62)}
.co-top b{display:block;font-weight:900;font-size:clamp(40px,5vw,58px);letter-spacing:-.04em;line-height:1;margin:10px 0 8px}
.co-s{font-size:13.5px;color:rgba(255,255,255,.66)}
.co-gate{position:relative;display:grid;gap:14px}
.co-gated{display:grid;gap:14px}
.co-gate.locked .co-gated{filter:blur(7px);opacity:.55;pointer-events:none;user-select:none;max-height:300px;overflow:hidden}
.co-lock{display:none}
.co-gate.locked .co-lock{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(440px,calc(100% - 24px));background:var(--paper);border:2px solid var(--ink);padding:24px 24px 18px;
  box-shadow:0 18px 50px rgba(0,0,0,.14)}
.co-lock-h{font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--ink);line-height:1.2}
.co-lock-s{font-size:14.5px;line-height:1.5;margin:8px 0 14px}
.co-lock-f{display:grid;gap:8px;margin-bottom:12px}
.co-lock input{font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--rule);width:100%}
.co-lock input:focus{outline:none;border-color:var(--ink)}
.co-lock .btn{width:100%;justify-content:center}
.co-lock .cap-msg{margin:10px 0 0;font-size:13.5px}
.co-gate.locked .co-gated{max-height:380px}
@media(max-width:560px){.co-gate.locked .co-gated{max-height:560px}.co-lock-2{grid-template-columns:1fr}}
.co-lock-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.co-wk{display:block;margin-top:6px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:#fff}
/* payment against pay at three career points (Bob Calton, 28 Aug) */
.cc-rows{display:grid;gap:16px;padding:14px 0 6px}
.cc-lab{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.cc-lab b{font-size:15px;font-weight:800;color:var(--ink)}
.cc-lab a{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.cc-bar{height:12px;background:var(--paper-2);border:1px solid var(--rule);position:relative}
.cc-bar span{position:absolute;inset:0 auto 0 0;background:var(--red);transition:width .25s}
.cc-v{margin-top:6px;font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.cc-v b{color:var(--ink);font-weight:800}

.va-band{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.va-band-in{display:flex;align-items:center;gap:28px 48px;flex-wrap:wrap}
.va-band-in > div{flex:1 1 420px}
.va-band-in p{margin:10px 0 0;max-width:62ch}
.va-tbl td,.va-tbl th{min-width:130px}
.wp .q-ok{outline:2px solid #1f8a4c;outline-offset:6px}
.wp .q-no{outline:2px solid var(--red);outline-offset:6px}
.wp .q-skip{outline:2px dashed var(--rule);outline-offset:6px}
.wp .frm_radio label.q-ans{border-color:#1f8a4c;box-shadow:inset 0 0 0 1px #1f8a4c}
.wp .pf-score{font-weight:800;color:var(--ink);margin:14px 0 0}
.wp .pf-picks{margin-top:16px}
.wp .pf-picks ul{margin:8px 0 0}
.wp .pf-picks span{font-family:var(--mono);font-size:13px;color:var(--ink-3)}
.wp .lasso-display.pf-dim{opacity:.35}
.pg-body{padding-top:clamp(34px,4vw,56px)}
.wp.wide{max-width:900px}
.pg-up{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 18px}
.pg-up a{color:var(--red);text-decoration:none}
.hero .h2,.hero .h3{color:#fff}
.btn.ghost-w{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.btn.ghost-w:hover{background:#fff;color:var(--ink)}
.wp .wp-block-cover{position:relative;background:var(--night);color:rgba(255,255,255,.8);padding:34px 30px;margin:2em 0;overflow:hidden}
.wp .wp-block-cover__image-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3;margin:0;max-width:none}
.wp .wp-block-cover__inner-container{position:relative;z-index:1}
.wp .wp-block-cover h2,.wp .wp-block-cover h3,.wp .wp-block-cover h4,.wp .wp-block-cover strong{color:#fff}
.wp .wp-block-cover a:not(.wp-block-button__link){color:#fff}
.wp .wp-block-cover__background{display:none}
.wp .wp-block-media-text{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;margin:1.8em 0}
@media(max-width:700px){.wp .wp-block-media-text{grid-template-columns:1fr}}
.wp .uagb-ifb-title{margin:.4em 0}
.wp canvas{max-width:100%}
.hdr-min{justify-content:space-between}
.hdr-min .hdr-tel{margin-left:auto;font-weight:700;color:var(--ink);text-decoration:none}
.ftr-min{padding:28px 0}
.ftr-min .legal{margin:0;border:0;padding:0}
.ftr-min a{color:inherit}
.wp iframe.zf-embed{width:100%;height:640px;border:0;display:block;background:#fff}
.wp a[class*="btn"],.wp a[class*="button"]:not(.wp-block-button__link):not(.uagb-buttons-repeater),.wp a[class*="cta-"]{display:inline-flex;align-items:center;gap:10px;margin:6px 10px 6px 0;background:var(--red);color:#fff;text-decoration:none;font-weight:700;font-size:16px;padding:14px 22px}
.wp a[class*="btn"]:hover,.wp a[class*="button"]:hover,.wp a[class*="cta-"]:hover{background:var(--red-dk);color:#fff}
.seo-answer{border-left:3px solid currentColor;padding:4px 0 4px 18px;margin:0 0 28px}
.seo-answer h2{margin:0 0 8px}
.seo-answer p{margin:0}

/* imported article headings re-leveled for a clean outline keep their original look */
.wp h3.h-as4,.wp h3.h-as5,.wp h3.h-as6,.wp h4.h-as5,.wp h4.h-as6,.wp h5.h-as6{font-weight:700;font-size:19px;color:var(--ink);margin:1.5em 0 .45em;letter-spacing:normal;line-height:1.3;font-family:inherit}
.wp h2.h-as3{font-weight:800;font-size:clamp(21px,2.4vw,26px);letter-spacing:-.022em;line-height:1.2;margin:1.7em 0 .5em}
.wp h2.h-as4,.wp h2.h-as5,.wp h2.h-as6{font-weight:700;font-size:19px;letter-spacing:normal;line-height:1.3;margin:1.5em 0 .45em}
.wp p.uagb-cta__title{font-weight:700;font-size:19px;line-height:1.3;color:var(--ink);margin:0 0 .45em}
.seo-sources{margin-top:40px;padding-top:18px;border-top:1px solid rgba(0,0,0,.12);font-size:15px}
.seo-sources .fh-src{font-weight:700;margin:0 0 6px}
.seo-sources ul{margin:0;padding-left:18px}
.faq summary h3.faq-q{font:inherit;margin:0;letter-spacing:inherit;color:inherit;text-transform:inherit}

/* visually hidden section heading: keeps the outline whole for screen readers and crawlers */
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* comfortable tap targets for the small links in the calculator */
.cc-lab a,.cf-help a{display:inline-block;padding-block:6px}
