/* Lemma College Counseling — shared stylesheet.
   Single source of truth for the design system; every page links this.
   Merged from the <style> blocks previously duplicated across pages. */

:root{
    --ink:#0F1B2A;
    --slate:#3A4A5F;
    --muted:#6E7D8D;
    --paper:#F5F6F8;
    --white:#FFFFFF;
    --rule:#D8DDE5;
    --rule-soft:#E7EBF1;
    /* Brand, sampled from lemma-icon.png: navy carries the structure,
       gold accents it. --gold-deep is the text-safe gold — the logo's
       own gold only reaches 2.6:1 on paper, so it is reserved for
       graphic accents and for text on the dark closing band. */
    --navy:#002154;
    --navy-deep:#001838;
    --gold:#C1953A;
    --gold-deep:#8A6410;
    --serif:"Spectral",Georgia,"Times New Roman",serif;
    --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
    --gutter:clamp(20px,5vw,64px);
    --maxw:1120px;
  }
*,*::before,*::after{box-sizing:border-box;}
/* The UA stylesheet gives [hidden] display:none, but any author rule
   setting display (flex/grid) beats it. Without this, hiding a flex
   element with the hidden attribute silently does nothing. */
[hidden]{display:none!important;}


html{scroll-behavior:smooth;}
body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    font-size:17px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
a{color:inherit;}
ul{margin:0;padding:0;list-style:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}
.eyebrow{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--muted);
    margin:0;
  }
:focus-visible{
    outline:2px solid var(--navy);
    outline-offset:3px;
    border-radius:2px;
  }
.skip{
    position:absolute;left:-999px;top:0;
    background:var(--ink);color:var(--paper);
    padding:10px 16px;z-index:100;
    font-family:var(--mono);font-size:13px;
  }
.skip:focus{left:8px;top:8px;}
/* ── masthead ─────────────────────────────── */
/* Two bands: the lockup on top, the links row beneath it. Only the links row
   should stay pinned — sticking both would hold ~190px at the top of every
   screen — but a sticky child cannot escape its parent's box, so pinning
   .nav alone would just scroll away with the header. Instead the whole
   masthead sticks, offset upward by exactly the height of the brand band, so
   the band slides out of view and leaves the links row sitting at top:0. */
  .masthead{
    --brand-pad-top:clamp(20px,3vw,28px);
    --brand-pad-bottom:clamp(14px,2vw,20px);
    --logo-h:clamp(52px,5.5vw,68px);
    --brand-h:calc(var(--brand-pad-top) + var(--logo-h) + var(--brand-pad-bottom));
    position:sticky;top:calc(-1 * var(--brand-h));z-index:50;
  }
.masthead__brand{
    max-width:var(--maxw);margin:0 auto;
    padding:var(--brand-pad-top) var(--gutter) var(--brand-pad-bottom);
    display:flex;align-items:center;
  }
.mark{text-decoration:none;display:block;}
.mark__logo{
    height:var(--logo-h);width:auto;display:block;
  }
.nav{
    position:sticky;top:0;z-index:50;
    background:rgba(245,246,248,.92);
    backdrop-filter:saturate(140%) blur(8px);
    border-bottom:1px solid var(--rule-soft);
  }
.nav__inner{
    max-width:var(--maxw);margin:0 auto;
    padding:14px var(--gutter);
    display:flex;align-items:center;gap:28px;
  }
/* The lockup carries the practice name, so the links row is just links and
   the call to action; the links take the free space to keep the button right. */
.nav__links{display:flex;gap:26px;margin-right:auto;}
.nav__links a{
    font-family:var(--mono);font-size:12px;letter-spacing:.06em;
    text-decoration:none;color:var(--slate);padding:4px 0;
    border-bottom:1px solid transparent;
  }
.nav__links a:hover{color:var(--navy);border-bottom-color:var(--navy);}
.btn{
    display:inline-block;
    font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;
    text-decoration:none;padding:11px 20px;
    border:1px solid var(--navy);
    background:var(--navy);color:var(--white);
    transition:background .18s ease,color .18s ease;
  }
.btn:hover{background:var(--navy-deep);border-color:var(--navy-deep);}
.btn--ghost{background:transparent;color:var(--navy);}
.btn--ghost:hover{background:var(--navy);color:var(--white);}
.btn--lg{padding:15px 30px;font-size:13.5px;}
/* ── hero: the definition ─────────────────── */
  .hero{
    position:relative;overflow:hidden;
    border-bottom:1px solid var(--rule);
    background:
      repeating-linear-gradient(0deg,transparent 0 27px,var(--rule-soft) 27px 28px),
      repeating-linear-gradient(90deg,transparent 0 27px,var(--rule-soft) 27px 28px),
      var(--white);
  }
.hero::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(245,246,248,0) 55%,var(--paper) 100%);
  }
.hero__inner{
    position:relative;z-index:1;
    max-width:var(--maxw);margin:0 auto;
    padding:clamp(72px,11vw,132px) var(--gutter) clamp(64px,9vw,104px);
  }
.defn{
    border-left:2px solid var(--gold);
    padding-left:22px;
    max-width:36rem;
    margin-bottom:clamp(36px,5vw,52px);
  }
.defn__word{
    font-family:var(--serif);font-size:19px;font-weight:500;
    margin:0 0 6px;
  }
.defn__word span{
    font-family:var(--mono);font-size:12px;color:var(--muted);
    font-weight:400;margin-left:8px;letter-spacing:.04em;
  }
.defn__body{
    font-family:var(--serif);font-style:italic;font-weight:300;
    font-size:clamp(17px,2vw,19px);line-height:1.55;
    color:var(--slate);margin:0;
  }
.hero h1{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(34px,5.6vw,62px);
    line-height:1.1;letter-spacing:-.015em;
    margin:0 0 26px;max-width:16ch;
  }
.hero h1 em{font-style:normal;color:var(--navy);}
.hero__lede{
    font-size:clamp(17px,1.9vw,19.5px);
    color:var(--slate);max-width:48ch;margin:0 0 36px;
  }
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;}
/* ── prose sections ───────────────────────── */
  .band{border-bottom:1px solid var(--rule);}
.band--white{background:var(--white);}
.band__inner{
    max-width:var(--maxw);margin:0 auto;
    padding:clamp(56px,8vw,96px) var(--gutter);
  }
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.9fr);gap:clamp(24px,5vw,72px);}
.cols + .cols{margin-top:clamp(48px,6vw,72px);}
.cols h2{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(25px,3vw,33px);line-height:1.2;
    margin:10px 0 0;letter-spacing:-.01em;
  }
.cols p{margin:0 0 18px;color:var(--slate);max-width:60ch;}
.cols p:last-child{margin-bottom:0;}
.cols p strong{color:var(--ink);font-weight:600;}
.traits{margin-top:6px;}
.traits li{
    padding:13px 0 13px 30px;
    border-top:1px solid var(--rule-soft);
    position:relative;color:var(--slate);
  }
.traits li:first-child{border-top:none;padding-top:0;}
.traits li:first-child::before{top:5px;}
.traits li::before{
    content:"—";position:absolute;left:0;top:18px;
    font-family:var(--mono);font-size:13px;color:var(--navy);
  }
/* ── programs: the lemmas ─────────────────── */
  .progs__head{
    display:flex;align-items:flex-end;justify-content:space-between;
    gap:24px;flex-wrap:wrap;
    padding-bottom:22px;border-bottom:2px solid var(--ink);
  }
.progs__head h2{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(27px,3.4vw,38px);margin:8px 0 0;letter-spacing:-.01em;
  }
.progs__note{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.04em;max-width:26ch;text-align:right;}
.prog{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.5fr);
    gap:clamp(20px,5vw,64px);
    padding:clamp(34px,4.5vw,52px) 0;
    border-bottom:1px solid var(--rule);
  }
.prog__label{position:relative;}
.prog__num{
    font-family:var(--mono);font-size:12px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--gold-deep);display:block;margin-bottom:10px;
  }
.prog__grade{
    font-family:var(--serif);font-size:clamp(38px,5vw,56px);
    font-weight:300;line-height:1;letter-spacing:-.02em;display:block;
  }
.prog__grade small{
    display:block;font-family:var(--mono);font-size:11px;
    letter-spacing:.14em;text-transform:uppercase;
    color:var(--muted);margin-top:12px;
  }
.prog h3{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(23px,2.7vw,30px);margin:0 0 14px;letter-spacing:-.01em;
  }
.prog__stmt{
    font-family:var(--serif);font-style:italic;font-weight:300;
    font-size:clamp(17.5px,2vw,20px);line-height:1.5;
    color:var(--navy-deep);margin:0 0 18px;max-width:52ch;
  }
.prog p{color:var(--slate);margin:0 0 18px;max-width:58ch;}
.prog__inc{
    margin-top:26px;padding-top:20px;border-top:1px solid var(--rule-soft);
  }
.prog__inc .eyebrow{margin-bottom:14px;}
.prog__inc ul{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:2px 32px;
  }
.prog__inc li{
    position:relative;padding:7px 0 7px 22px;
    font-size:15.5px;color:var(--slate);line-height:1.5;
  }
.prog__inc li::before{
    content:"·";position:absolute;left:4px;top:6px;
    font-family:var(--mono);color:var(--navy);font-size:17px;
  }
/* ── support note ─────────────────────────── */
  .support{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.5fr);
    gap:clamp(20px,5vw,64px);align-items:start;
  }
.support p{margin:0;color:var(--slate);max-width:58ch;font-size:16.5px;}
.support h2{font-family:var(--serif);font-weight:500;font-size:24px;margin:8px 0 12px;}
/* ── close: QED ───────────────────────────── */
  .qed{background:var(--ink);color:var(--paper);border-bottom:none;}
.qed__inner{
    max-width:var(--maxw);margin:0 auto;
    padding:clamp(64px,9vw,104px) var(--gutter);
    text-align:center;
  }
.qed__mark{
    font-size:24px;line-height:1;color:var(--gold);
    display:block;margin-bottom:22px;
  }
.qed h2{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(28px,4.4vw,46px);line-height:1.18;
    margin:0 auto 20px;max-width:19ch;letter-spacing:-.015em;
  }
.qed p{
    color:#B9C4CC;max-width:44ch;margin:0 auto 34px;font-size:17px;
  }
.qed .btn{background:var(--paper);color:var(--ink);border-color:var(--paper);}
.qed .btn:hover{background:var(--navy);border-color:var(--navy);color:var(--white);}
.foot{background:var(--ink);color:#8A98A4;}
.foot__inner{
    max-width:var(--maxw);margin:0 auto;
    padding:26px var(--gutter) 40px;
    border-top:1px solid #22304180;
    display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;
    font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;
  }
.foot a{color:#B9C4CC;text-decoration:none;border-bottom:1px solid #3A4A5F;}
.foot a:hover{color:var(--white);border-bottom-color:var(--white);}
.foot__spacer{margin-left:auto;}
/* ── motion ───────────────────────────────── */
  .rise{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease;}
.rise.is-in{opacity:1;transform:none;}
/* ── page head ────────────────────────────── */
  .head{
    position:relative;overflow:hidden;
    border-bottom:1px solid var(--rule);
    background:
      repeating-linear-gradient(0deg,transparent 0 27px,var(--rule-soft) 27px 28px),
      repeating-linear-gradient(90deg,transparent 0 27px,var(--rule-soft) 27px 28px),
      var(--white);
  }
.head::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(245,246,248,0) 55%,var(--paper) 100%);
  }
.head__inner{
    position:relative;z-index:1;
    max-width:var(--maxw);margin:0 auto;
    padding:clamp(56px,8vw,96px) var(--gutter) clamp(48px,7vw,80px);
  }
.head h1{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(32px,5vw,54px);
    line-height:1.12;letter-spacing:-.015em;
    margin:14px 0 24px;max-width:18ch;
  }
.head h1 em{font-style:normal;color:var(--navy);}
.head__lede{
    font-size:clamp(17px,1.9vw,19px);
    color:var(--slate);max-width:52ch;margin:0;
  }
.head__note{
    font-size:15.5px;color:var(--muted);
    max-width:52ch;margin:16px 0 0;
    padding-left:16px;border-left:2px solid var(--gold);
  }
/* ── bands ────────────────────────────────── */
  .band{border-bottom:1px solid var(--rule);}
.sec__head{
    display:flex;align-items:flex-end;justify-content:space-between;
    gap:24px;flex-wrap:wrap;
    padding-bottom:22px;border-bottom:2px solid var(--ink);
  }
.sec__head h2{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(25px,3.2vw,35px);margin:8px 0 0;letter-spacing:-.01em;
  }
.sec__note{
    font-family:var(--mono);font-size:11.5px;color:var(--muted);
    letter-spacing:.04em;max-width:28ch;text-align:right;
  }
/* ── tiers ────────────────────────────────── */
  .tier{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.5fr);
    gap:clamp(20px,5vw,64px);
    padding:clamp(30px,4vw,46px) 0;
    border-bottom:1px solid var(--rule);
  }
.tier__num{
    font-family:var(--mono);font-size:12px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--gold-deep);display:block;margin-bottom:10px;
  }
.tier__grade{
    font-family:var(--serif);font-size:clamp(38px,5vw,56px);
    font-weight:300;line-height:1;letter-spacing:-.02em;display:block;
  }
.tier__grade small{
    display:block;font-family:var(--mono);font-size:11px;
    letter-spacing:.14em;text-transform:uppercase;
    color:var(--muted);margin-top:12px;
  }
.tier h3{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(22px,2.6vw,28px);margin:0 0 12px;letter-spacing:-.01em;
  }
.tier__stmt{
    font-family:var(--serif);font-style:italic;font-weight:300;
    font-size:clamp(16.5px,1.9vw,18.5px);line-height:1.5;
    color:var(--navy-deep);margin:0 0 22px;max-width:52ch;
  }
.fee{
    display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 18px;
    padding:18px 0;
    border-top:1px solid var(--rule-soft);
    border-bottom:1px solid var(--rule-soft);
  }
.fee__amt{
    font-family:var(--serif);font-weight:300;
    font-size:clamp(32px,4.2vw,44px);line-height:1;letter-spacing:-.02em;
  }
.fee__unit{
    font-family:var(--mono);font-size:11px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--muted);
  }
.fee__terms{
    font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;
    color:var(--muted);margin-left:auto;text-align:right;
  }
.fee__label{
    width:100%;margin:0;
    font-family:var(--mono);font-size:11px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--navy);
  }
.fee + .fee{border-top:none;}
.fee__note{
    font-size:15px;color:var(--muted);margin:14px 0 0;max-width:52ch;
  }
.tier__inc{margin-top:22px;}
.tier__inc .eyebrow{margin-bottom:14px;}
.tier__inc ul{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:2px 32px;
  }
.tier__inc li{
    position:relative;padding:7px 0 7px 22px;
    font-size:15.5px;color:var(--slate);line-height:1.5;
  }
.tier__inc li::before{
    content:"·";position:absolute;left:4px;top:6px;
    font-family:var(--mono);color:var(--navy);font-size:17px;
  }
/* ── add-on rates ─────────────────────────── */
  .rates{width:100%;border-collapse:collapse;margin-top:8px;}
.rates caption{
    text-align:left;font-family:var(--mono);font-size:11px;
    letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
    padding-bottom:14px;
  }
.rates th{
    text-align:left;font-family:var(--mono);font-weight:500;
    font-size:11px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--muted);padding:0 16px 10px 0;
    border-bottom:1px solid var(--rule);
  }
.rates th:last-child,.rates td:last-child{text-align:right;padding-right:0;}
.rates td{
    padding:15px 16px 15px 0;
    border-bottom:1px solid var(--rule-soft);
    color:var(--slate);font-size:16px;vertical-align:baseline;
  }
.rates td:first-child{color:var(--ink);}
.rates td:last-child{
    font-family:var(--mono);font-size:15px;color:var(--ink);white-space:nowrap;
  }
/* ── terms ────────────────────────────────── */
  .terms{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.5fr);
    gap:clamp(20px,5vw,64px);align-items:start;
  }
.terms h2{font-family:var(--serif);font-weight:500;font-size:24px;margin:8px 0 16px;}
.terms li{
    padding:13px 0 13px 30px;
    border-top:1px solid var(--rule-soft);
    position:relative;color:var(--slate);font-size:16px;
  }
.terms li:first-child{border-top:none;padding-top:0;}
.terms li:first-child::before{top:5px;}
.terms li::before{
    content:"—";position:absolute;left:0;top:18px;
    font-family:var(--mono);font-size:13px;color:var(--navy);
  }
/* ── close ────────────────────────────────── */
  .qed{background:var(--ink);color:var(--paper);border-bottom:none;}
/* ── head ─────────────────────────────────── */
  .head{
    position:relative;overflow:hidden;
    border-bottom:1px solid var(--rule);
    background:
      repeating-linear-gradient(0deg,transparent 0 27px,var(--rule-soft) 27px 28px),
      repeating-linear-gradient(90deg,transparent 0 27px,var(--rule-soft) 27px 28px),
      var(--white);
  }
/* ── program picker ───────────────────────── */
  .pick{background:var(--white);border-bottom:1px solid var(--rule);}
.pick__inner{
    max-width:var(--maxw);margin:0 auto;
    padding:clamp(32px,4.5vw,52px) var(--gutter);
  }
.pick__row{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.5fr);
    gap:clamp(20px,5vw,64px);align-items:start;
  }
.pick select{
    font-family:var(--sans);font-size:16.5px;color:var(--ink);
    background:var(--white);
    border:1px solid var(--rule);border-radius:0;
    padding:13px 14px;width:100%;max-width:36rem;
    appearance:none;
    background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);
    background-position:calc(100% - 20px) calc(50% + 2px),calc(100% - 14px) calc(50% + 2px);
    background-size:6px 6px,6px 6px;
    background-repeat:no-repeat;
  }
.pick__out{
    margin-top:20px;padding-top:18px;
    border-top:1px solid var(--rule-soft);
    display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 18px;
  }
.pick__fee{
    font-family:var(--serif);font-weight:300;
    font-size:clamp(28px,3.6vw,38px);line-height:1;letter-spacing:-.02em;
  }
.pick__unit{
    font-family:var(--mono);font-size:11px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--muted);
  }
/* ── clauses ──────────────────────────────── */
  .doc{background:var(--paper);}
.doc__inner{
    max-width:var(--maxw);margin:0 auto;
    padding:clamp(44px,6vw,76px) var(--gutter);
  }
.clause{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.5fr);
    gap:clamp(16px,5vw,64px);
    padding:clamp(28px,3.6vw,42px) 0;
    border-top:1px solid var(--rule);
  }
.clause:first-of-type{border-top:2px solid var(--ink);}
.clause__n{
    font-family:var(--mono);font-size:12px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--gold-deep);display:block;margin-bottom:8px;
  }
.clause h2{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(20px,2.3vw,25px);margin:0;letter-spacing:-.01em;line-height:1.25;
  }
.clause p{margin:0 0 16px;color:var(--slate);max-width:64ch;}
.clause p:last-child{margin-bottom:0;}
.clause strong{color:var(--ink);font-weight:600;}
.clause ul{margin:0 0 16px;}
.clause li{
    position:relative;padding:7px 0 7px 22px;
    color:var(--slate);line-height:1.55;max-width:62ch;
  }
.clause li::before{
    content:"·";position:absolute;left:4px;top:6px;
    font-family:var(--mono);color:var(--navy);font-size:17px;
  }
/* ── signing ──────────────────────────────── */
  .sign{background:var(--white);border-top:1px solid var(--rule);}
.sign__inner{
    max-width:var(--maxw);margin:0 auto;
    padding:clamp(44px,6vw,76px) var(--gutter);
  }
.sign__grid{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.5fr);
    gap:clamp(16px,5vw,64px);align-items:start;
  }
.sign h2{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(22px,2.6vw,28px);margin:0 0 16px;letter-spacing:-.01em;
  }
.sign p{margin:0 0 16px;color:var(--slate);max-width:62ch;}
/* ── signing form ─────────────────────────── */
  .fields{
    margin-top:30px;display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:22px 40px;
  }
.field{display:flex;flex-direction:column-reverse;}
.field--wide{grid-column:1/-1;}
.field input{
    font-family:var(--sans);font-size:16.5px;color:var(--ink);
    background:transparent;border:none;border-bottom:1px solid var(--ink);
    border-radius:0;padding:6px 2px;width:100%;
  }
.field input:focus{outline:none;border-bottom-width:2px;border-bottom-color:var(--navy);}
.field label{
    font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--muted);margin-bottom:8px;
  }
.field input:focus + label{color:var(--navy);}
.pad{margin-top:34px;}
.pad__label{
    font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--muted);
    display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  }
.pad__clear{
    font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
    text-transform:uppercase;color:var(--navy);
    background:none;border:none;padding:0;cursor:pointer;
    border-bottom:1px solid transparent;margin-left:auto;
  }
.pad__clear:hover{border-bottom-color:var(--navy);}
#pad{
    display:block;width:100%;height:170px;margin-top:10px;
    background:var(--white);
    border:1px solid var(--rule);border-bottom:1px solid var(--ink);
    touch-action:none;cursor:crosshair;
  }
.pad__hint{
    font-size:14.5px;color:var(--muted);margin:10px 0 0;
  }
.agree{
    display:flex;gap:12px;align-items:flex-start;
    margin-top:30px;max-width:62ch;cursor:pointer;
  }
.agree input{
    appearance:none;flex:0 0 auto;
    width:19px;height:19px;margin:3px 0 0;
    border:1px solid var(--slate);background:var(--white);cursor:pointer;
  }
.agree input:checked{
    background:var(--navy);border-color:var(--navy);
    background-image:linear-gradient(45deg,transparent 44%,var(--white) 44%,var(--white) 56%,transparent 56%),
                     linear-gradient(-45deg,transparent 44%,var(--white) 44%,var(--white) 56%,transparent 56%);
    background-size:11px 11px;background-position:center;background-repeat:no-repeat;
  }
.agree span{font-size:16px;color:var(--slate);}
.notice{
    margin-top:30px;padding:18px 20px;
    background:var(--paper);border-left:2px solid var(--navy);
  }
.notice p{margin:0;font-size:15.5px;color:var(--slate);max-width:60ch;}
.actions{margin-top:26px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.actions button{
    font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;
    padding:14px 26px;cursor:pointer;
    border:1px solid var(--navy);background:var(--navy);color:var(--white);
    transition:background .18s ease;
  }
.actions button:hover:not(:disabled){background:var(--navy-deep);border-color:var(--navy-deep);}
.actions button:disabled{
    background:transparent;color:var(--muted);border-color:var(--rule);cursor:not-allowed;
  }
.actions__why{font-size:14.5px;color:var(--muted);}
.actions button.btn--sec{background:transparent;color:var(--navy);}
.actions button.btn--sec:hover:not(:disabled){background:var(--navy);color:var(--white);}
.actions button.btn--sec:disabled{color:var(--muted);border-color:var(--rule);}
.status{
    margin:18px 0 0;padding:14px 18px;font-size:15.5px;
    border-left:2px solid var(--navy);background:var(--paper);color:var(--slate);
    max-width:60ch;
  }
.status[data-state="error"]{border-left-color:#A8323C;color:#7E2630;}
.status[data-state="sent"]{border-left-color:var(--navy);color:var(--navy-deep);}

@media (max-width:860px){
  /* Without the links, a second band would be a nearly empty row. Collapse
     the masthead into one compact bar — lockup left, call to action right —
     and stick the whole thing, so the CTA stays reachable on a phone. */
  .nav__links{display:none;}
  .masthead{
    position:sticky;top:0;z-index:50;
    background:rgba(245,246,248,.92);
    backdrop-filter:saturate(140%) blur(8px);
    border-bottom:1px solid var(--rule-soft);
    display:flex;align-items:center;gap:14px;
    padding:9px var(--gutter);
  }
  .masthead__brand{padding:0;margin:0;flex:none;min-width:0;}
  .mark__logo{height:40px;}
  .nav{position:static;background:none;backdrop-filter:none;border-bottom:none;margin-left:auto;}
  .nav__inner{padding:0;}
  .nav .btn{padding:10px 14px;font-size:11.5px;}
  .cols,.prog,.support{grid-template-columns:1fr;}
  .prog__grade{font-size:34px;}
  .prog__grade small{display:inline-block;margin:0 0 0 14px;transform:translateY(-6px);}
  .progs__note{text-align:left;}
  .tier,.terms{grid-template-columns:1fr;}
  .tier__grade{font-size:34px;}
  .tier__grade small{display:inline-block;margin:0 0 0 14px;transform:translateY(-6px);}
  .sec__note{text-align:left;}
  .fee__terms{margin-left:0;text-align:left;width:100%;}
  .clause,.pick__row,.sign__grid{grid-template-columns:1fr;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .rise{opacity:1;transform:none;transition:none;}
  *{animation:none!important;}
}

@media print{
  /* .nav is the links row and the call to action — neither belongs on paper.
     The brand band stays: on a printed agreement it reads as letterhead. */
  .nav,.foot,.skip,.pad__clear,.actions,.notice,.pad__hint,.status{display:none;}
  .masthead{position:static;}
  .masthead__brand{padding-left:0;padding-right:0;}
  body{background:var(--white);font-size:11pt;}
  .head,.pick,.doc,.sign{background:var(--white);}
  .head::after{display:none;}
  .clause{page-break-inside:avoid;}
  .sign__inner{page-break-before:always;}
  .field input{border-bottom:1px solid #000;}
  #pad{border:none;border-bottom:1px solid #000;height:150px;}
  .agree input{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pick select{border:none;padding-left:0;background-image:none;font-weight:600;}
}

/* ══ portrait (about page) ══════════════════════ */
.portrait{
  margin:0 0 26px;
}
.portrait picture{display:block;}
.portrait img{
  display:block;
  width:100%;max-width:280px;height:auto;
  aspect-ratio:4/5;
  object-fit:cover;object-position:50% 28%;
  border:1px solid var(--rule);
  background:var(--rule-soft);
}
.portrait figcaption{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);
  margin-top:10px;max-width:280px;
}
@media (max-width:860px){
  .portrait img{max-width:220px;}
}

/* ══ consultation dialog ════════════════════════ */
.modal{
  padding:0;border:1px solid var(--rule);border-radius:0;
  background:var(--paper);color:var(--ink);
  width:min(560px,calc(100vw - 32px));
  max-height:calc(100vh - 48px);
  box-shadow:0 24px 60px rgba(15,27,42,.22);
}
.modal::backdrop{background:rgba(15,27,42,.42);backdrop-filter:blur(2px);}
.modal__inner{padding:clamp(26px,4vw,40px);}
.modal__close{
  position:absolute;top:10px;right:12px;
  font-family:var(--mono);font-size:22px;line-height:1;
  background:none;border:none;color:var(--muted);cursor:pointer;padding:6px 8px;
}
.modal__close:hover{color:var(--ink);}
.modal h2{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(22px,2.8vw,28px);margin:8px 0 12px;letter-spacing:-.01em;
}
.modal__lede{color:var(--slate);margin:0 0 24px;font-size:16px;max-width:46ch;}
.modal__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:20px 26px;
}
.modal .field--area{margin-top:20px;}
.modal .field textarea{
  font-family:var(--sans);font-size:16.5px;color:var(--ink);
  background:transparent;border:none;border-bottom:1px solid var(--ink);
  border-radius:0;padding:6px 2px;width:100%;resize:vertical;line-height:1.5;
}
.modal .field textarea:focus{outline:none;border-bottom-width:2px;border-bottom-color:var(--navy);}
.modal .field textarea:focus + label{color:var(--navy);}
.modal__actions{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap;}
.modal__actions button{
  font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;
  padding:13px 26px;cursor:pointer;
  border:1px solid var(--navy);background:var(--navy);color:var(--white);
  transition:background .18s ease;
}
.modal__actions button:hover:not(:disabled){background:var(--navy-deep);border-color:var(--navy-deep);}
.modal__actions button:disabled{background:transparent;color:var(--muted);border-color:var(--rule);cursor:not-allowed;}
.modal__actions button.btn--sec{background:transparent;color:var(--navy);}
.modal__actions button.btn--sec:hover{background:var(--navy);color:var(--white);}
.modal .status{margin-top:18px;}

/* ══ intake wizard ══════════════════════════════ */
.wiz__bar{margin-bottom:clamp(30px,4vw,44px);}
/* Resume notice: shown only when answers were restored from a saved draft. */
.wiz__resume{
  margin-bottom:clamp(24px,3vw,32px);padding:18px 22px;
  background:var(--paper);border-left:2px solid var(--gold);
}
.wiz__resume-text{margin:0;font-size:15.5px;color:var(--slate);max-width:60ch;}
.wiz__link{
  margin-top:8px;padding:0;background:none;border:none;
  font-family:var(--mono);font-size:12px;letter-spacing:.04em;
  color:var(--navy);text-decoration:underline;text-underline-offset:3px;cursor:pointer;
}
.wiz__link:hover{color:var(--gold-deep);}
.wiz__saved{
  margin:10px 0 0;font-family:var(--mono);font-size:11px;
  letter-spacing:.06em;color:var(--muted);
}
.wiz__meta{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:16px;flex-wrap:wrap;margin-bottom:12px;
}
.wiz__count{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-deep);
}
.wiz__title{
  font-family:var(--serif);font-size:17px;color:var(--slate);
}
.wiz__track{height:2px;background:var(--rule-soft);}
.wiz__fill{
  height:2px;width:0;background:var(--gold);
  transition:width .35s ease;
}

.wiz__step h2{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(24px,3vw,32px);margin:8px 0 10px;letter-spacing:-.01em;
}
.wiz__blurb{color:var(--slate);margin:0 0 30px;max-width:56ch;}
.wiz__loading{color:var(--muted);font-family:var(--mono);font-size:13px;}

.wiz__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:26px 40px;
}
.wiz__grid .field--wide{grid-column:1/-1;}
.wiz__grid textarea{
  font-family:var(--sans);font-size:16.5px;color:var(--ink);
  background:transparent;border:none;border-bottom:1px solid var(--ink);
  border-radius:0;padding:6px 2px;width:100%;resize:vertical;line-height:1.55;
}
.wiz__grid select{
  font-family:var(--sans);font-size:16.5px;color:var(--ink);
  background:transparent;border:none;border-bottom:1px solid var(--ink);
  border-radius:0;padding:6px 2px;width:100%;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);
  background-position:calc(100% - 11px) calc(50% + 1px),calc(100% - 5px) calc(50% + 1px);
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;
}
.wiz__grid textarea:focus,.wiz__grid select:focus{
  outline:none;border-bottom-width:2px;border-bottom-color:var(--navy);
}
.wiz__grid textarea:focus + label,.wiz__grid select:focus + label{color:var(--navy);}
.field__hint{
  order:-1;margin:0 0 6px;
  font-size:13.5px;color:var(--muted);line-height:1.45;
}
.field--bad input,.field--bad textarea,.field--bad select{border-bottom-color:#A8323C;}
.field--bad label{color:#A8323C;}

.wiz__nav{
  margin-top:clamp(32px,4vw,46px);padding-top:26px;
  border-top:1px solid var(--rule);
  display:flex;gap:12px;flex-wrap:wrap;align-items:center;
}
.wiz__nav button{
  font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;
  padding:14px 30px;cursor:pointer;
  border:1px solid var(--navy);background:var(--navy);color:var(--white);
  transition:background .18s ease;
}
.wiz__nav button:hover:not(:disabled){background:var(--navy-deep);border-color:var(--navy-deep);}
.wiz__nav button:disabled{background:transparent;color:var(--muted);border-color:var(--rule);cursor:not-allowed;}
.wiz__nav button.btn--sec{background:transparent;color:var(--navy);}
.wiz__nav button.btn--sec:hover{background:var(--navy);color:var(--white);}
.wiz__note{font-size:14.5px;color:var(--muted);}

.wiz__done{padding:clamp(30px,5vw,52px) 0;max-width:52ch;}
.wiz__done h2{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3.4vw,36px);margin:0 0 14px;}
.wiz__done p{color:var(--slate);margin:0;}
.wiz__done .qed__mark{color:var(--gold-deep);margin-bottom:18px;}

@media (max-width:860px){
  .wiz__grid{grid-template-columns:1fr;}
  .wiz__meta{flex-direction:column;gap:4px;}
}

/* Inline validation message.
   .field is column-reverse, so a *lower* order value places an element
   further down. -2 puts the error beneath the input; the hint sits at -1
   just above it. Without an explicit order it would render above the label. */
.field__err{
  order:-2;
  margin:8px 0 0;
  font-size:13.5px;line-height:1.45;
  color:#A8323C;
}
.field--bad input,
.field--bad textarea,
.field--bad select{border-bottom-width:2px;}
