/* ============ XHORTATION — Midnight Luxury ============ */
:root{
  --ink:#08080A;
  --ink-2:#0E0E11;
  --ink-3:#15151A;
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.18);
  --fg:#F2F1EE;
  --fg-mute:#A7A6A2;
  /* #787774 measured 4.06:1 on --ink-3 and 4.47:1 on --ink — under the 4.5:1
     WCAG AA floor. This tone carries the fee footnotes, the poverty-level
     qualifiers and the "not a crisis service" line, so it has to be legible.
     #8E8D85 measures 6.00 / 5.78 / 5.46 across the three surfaces. */
  --fg-dim:#8E8D85;
  --gold:#C9A227;
  --gold-lt:#E4C766;

  --font-title:'Cinzel','Times New Roman',Georgia,serif;   /* caps only — titles */
  --font-display:'Satoshi','Inter',system-ui,sans-serif;   /* numerals, labels, UI */
  --font-body:'Satoshi','Inter',system-ui,sans-serif;

  --text-xs:.8125rem; --text-fine:.875rem; --text-sm:.875rem; --text-base:1rem;
  --text-lg:1.125rem; --text-xl:1.5rem; --text-2xl:2.25rem;
  --text-3xl:3rem; --text-hero:clamp(2.75rem,7.2vw,5.75rem);

  --sp-1:.5rem; --sp-2:1rem; --sp-3:1.5rem; --sp-4:2rem;
  --sp-6:3rem; --sp-8:4rem; --sp-12:6rem; --sp-16:8rem;

  --wrap:1200px;
  --r:2px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--fg);
  font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
/* The picture element is a wrapper, not a box. Left inline it breaks the sizing
   chain: an img set to height:100% would resolve against the picture instead of
   the figure and collapse the hero. This makes it transparent to layout.
   (Deliberately no angle brackets around the tag name above — this stylesheet
   gets inlined into a <style> block by build_single.py, and a literal tag in a
   comment is indistinguishable from real markup to a regex.) */
picture{display:block;width:100%;height:100%}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
::selection{background:var(--gold);color:#0a0a0a}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--sp-3)}
/* keep anchor targets clear of the sticky header */
section[id]{scroll-margin-top:5.5rem}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--sp-2);top:var(--sp-2);z-index:200;background:var(--gold);color:#0a0a0a;padding:.5rem .9rem;font-size:var(--text-sm)}

/* ---------- Type ---------- */
.eyebrow{
  font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);margin:0 0 var(--sp-2);font-weight:500;
}
.h2{
  font-family:var(--font-title);font-weight:600;
  font-size:clamp(1.5rem,2.9vw,2.15rem);line-height:1.22;
  letter-spacing:.03em;margin:0 0 var(--sp-3);
}
.prose p{color:var(--fg-mute);margin:0 0 var(--sp-2);max-width:60ch}
.prose em{color:var(--fg);font-style:italic}
.prose strong{color:var(--fg);font-weight:700}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;
  padding:1rem 1.75rem;border:1px solid transparent;border-radius:var(--r);
  cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s;
}
.btn--gold{background:var(--gold);color:#0A0A0A}
.btn--gold:hover{background:var(--gold-lt);transform:translateY(-2px)}
.btn--ghost{border-color:var(--line-2);color:var(--fg)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn--sm{padding:.7rem 1.15rem;font-size:var(--text-xs)}
.btn--full{width:100%;margin-top:var(--sp-1)}

/* ---------- Nav ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:100;
  background:rgba(8,8,10,0);border-bottom:1px solid transparent;
  transition:background .35s,border-color .35s,backdrop-filter .35s;
}
.nav.is-stuck{background:rgba(8,8,10,.9);backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.nav__inner{
  max-width:var(--wrap);margin:0 auto;padding:1.1rem var(--sp-3);
  display:flex;align-items:center;gap:var(--sp-4);
}
.brand{display:flex;align-items:center;gap:.65rem;color:var(--gold);flex:0 0 auto}
.brand__mark{width:30px;height:30px;flex:0 0 auto}
.brand__text{
  font-family:var(--font-title);font-weight:600;font-size:1rem;
  letter-spacing:.26em;color:var(--fg);
}
.nav__links{display:flex;gap:var(--sp-3);margin-left:auto}
.nav__links a{
  font-size:var(--text-sm);color:var(--fg-mute);letter-spacing:.04em;
  padding-bottom:2px;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;
}
.nav__links a:hover{color:var(--fg);border-bottom-color:var(--gold)}
.nav__toggle{display:none}
.nav__drawer{display:none}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:min(100svh,900px);display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.hero__media{position:absolute;inset:0}
.hero__media img{width:100%;height:100%;object-fit:cover;opacity:1;filter:brightness(1.35) saturate(1.1)}
.hero__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(8,8,10,.9) 0%,rgba(8,8,10,.62) 45%,rgba(8,8,10,.08) 100%),
    linear-gradient(0deg,var(--ink) 0%,rgba(8,8,10,0) 40%);
}
.hero__inner{position:relative;max-width:var(--wrap);width:100%;margin:0 auto;padding:8.5rem var(--sp-3) var(--sp-4)}
.hero__title{
  font-family:var(--font-title);font-weight:600;
  font-size:clamp(2.15rem,5.4vw,4.15rem);line-height:1.12;letter-spacing:.012em;
  margin:0 0 var(--sp-3);max-width:20ch;
}
.hero__title span{display:block}
.hero__title .gold{color:var(--gold)}
.hero__lede{font-size:var(--text-lg);color:#D9D7D1;max-width:56ch;margin:0 0 var(--sp-4)}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.hero__stats{
  position:relative;max-width:var(--wrap);width:100%;margin:0 auto;
  padding:0 var(--sp-3) var(--sp-6);
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);
}
.stat{border-top:1px solid var(--line);padding-top:var(--sp-2)}
.stat__n{
  display:block;font-family:var(--font-display);font-weight:500;
  font-size:var(--text-xl);color:var(--gold);line-height:1.1;letter-spacing:-.01em;
}
.stat__l{display:block;font-size:var(--text-xs);color:var(--fg-dim);letter-spacing:.12em;text-transform:uppercase;margin-top:.35rem}

/* ---------- Trust strip ---------- */
.strip{background:var(--ink-2);border-block:1px solid var(--line)}
.strip__list{
  max-width:var(--wrap);margin:0 auto;padding:var(--sp-3);
  list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);
}
.strip__list li{
  font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;
  color:var(--fg-mute);padding-left:1.1rem;position:relative;line-height:1.6;
}
.strip__list li::before{
  content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;background:var(--gold);
}

/* ---------- Sections ---------- */
.section{padding:var(--sp-16) 0}
.section--alt{background:var(--ink-2)}
.section__head{max-width:60ch;margin-bottom:var(--sp-8)}
.section__head--center{margin-inline:auto;text-align:center}
.section__lede{font-size:var(--text-lg);color:var(--fg-mute);margin:0}
.grid-2{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--sp-8);align-items:start}
.grid-2--contact{grid-template-columns:1fr 1fr;gap:var(--sp-8)}

/* ---------- About ---------- */
.creds__name{
  margin:var(--sp-4) 0 .35rem;font-family:var(--font-title);font-weight:600;
  font-size:1.15rem;letter-spacing:.04em;line-height:1.2;
}
.creds{list-style:none;padding:0;margin:var(--sp-2) 0 0;display:grid;gap:.75rem}
.creds li{
  display:flex;gap:.9rem;align-items:baseline;font-size:var(--text-sm);
  color:var(--fg);border-top:1px solid var(--line);padding-top:.75rem;
}
.creds li > span:first-child{font-family:var(--font-display);color:var(--gold);font-size:var(--text-xs);letter-spacing:.1em;flex:0 0 auto}
.creds__t{display:block}
.creds__t em{
  display:block;font-style:normal;font-size:var(--text-xs);
  letter-spacing:.1em;color:var(--fg-dim);margin-top:.3rem;
}
.creds__t em a{color:var(--fg-mute);border-bottom:1px solid rgba(201,162,39,.45);transition:color .2s}
.creds__t em a:hover{color:var(--gold)}
.about__figure{margin:0;position:relative}
.about__figure img{width:100%;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--line)}
.about__figure figcaption{
  margin-top:var(--sp-2);font-family:var(--font-display);font-weight:400;
  font-size:var(--text-xl);line-height:1.3;letter-spacing:-.015em;color:var(--fg);
}
.about__figure figcaption span{
  display:block;margin-top:.6rem;font-family:var(--font-body);
  font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
}

/* ---------- Service cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.card{background:var(--ink-2);padding:var(--sp-4);transition:background .3s}
.card:hover{background:var(--ink-3)}
.card__n{
  display:block;font-family:var(--font-display);font-size:var(--text-xs);
  letter-spacing:.18em;color:var(--gold);margin-bottom:var(--sp-3);
}
.card h3{
  font-family:var(--font-title);font-weight:600;font-size:1.2rem;
  line-height:1.28;letter-spacing:.035em;margin:0 0 .75rem;
}
.card p{margin:0;color:var(--fg-mute);font-size:var(--text-sm);line-height:1.7}

/* Link cards. The heading holds the anchor, but a stretched ::after makes the
   whole card the hit area - a parent on a phone should not have to hit a two-word
   headline. position:relative on the card scopes the stretch; the text stays
   selectable because the overlay sits above the padding, not the copy. */
.card--link{position:relative;display:flex;flex-direction:column}
/* Push the label to the bottom so the three "Read" cues line up across the row
   regardless of how long each card's copy runs. */
.card--link .card__more{margin-top:auto}
.card--link h3 a{
  color:inherit;text-decoration:none;
  border-bottom:1px solid transparent;transition:color .25s,border-color .25s;
}
.card--link h3 a::after{content:"";position:absolute;inset:0}
.card--link:hover h3 a,.card--link:focus-within h3 a{
  color:var(--gold-lt);border-bottom-color:color-mix(in srgb,var(--gold-lt) 45%,transparent);
}
.card--link h3 a:focus-visible{outline:none}
.card--link:focus-within{outline:2px solid var(--gold);outline-offset:2px}
.card--link .card__more{
  display:block;padding-top:var(--sp-3);font-family:var(--font-display);
  font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
}
.card--link .card__more::after{content:" \2192";transition:transform .25s}

/* ---------- Phases ---------- */
.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}
.phase{
  border:1px solid var(--line);background:var(--ink-2);
  padding:var(--sp-4);position:relative;transition:border-color .3s,transform .3s;
}
.phase:hover{border-color:var(--line-2);transform:translateY(-3px)}
.phase header{border-bottom:1px solid var(--line);padding-bottom:var(--sp-3);margin-bottom:var(--sp-3)}
.phase__n{
  display:block;font-family:var(--font-display);font-weight:500;font-size:var(--text-2xl);
  color:rgba(201,162,39,.28);line-height:1;letter-spacing:-.02em;margin-bottom:var(--sp-2);
}
.phase__weeks{
  margin:0 0 .5rem;font-size:var(--text-xs);letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold);
}
.phase h3{
  font-family:var(--font-title);font-weight:600;font-size:1.18rem;
  line-height:1.26;letter-spacing:.035em;margin:0;
}
.phase__sub{margin:.35rem 0 0;font-size:var(--text-sm);color:var(--fg-dim)}
.phase__desc{margin:0 0 var(--sp-2);color:var(--fg-mute);font-size:var(--text-sm);line-height:1.7}
.phase ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.phase li{
  position:relative;padding-left:1.1rem;font-size:var(--text-sm);
  color:var(--fg-mute);line-height:1.55;
}
.phase li::before{content:"";position:absolute;left:0;top:.6em;width:4px;height:4px;background:var(--gold)}

/* ---------- Belief band ---------- */
.belief{position:relative;padding:var(--sp-16) 0;overflow:hidden;text-align:center}
.belief__media{position:absolute;inset:0}
.belief__media img{width:100%;height:100%;object-fit:cover;object-position:center 62%;opacity:.55}
.belief__scrim{position:absolute;inset:0;background:linear-gradient(180deg,var(--ink) 0%,rgba(8,8,10,.6) 48%,var(--ink) 100%)}
.belief__inner{position:relative;max-width:70ch}
.belief__quote{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.6rem,3.6vw,2.5rem);line-height:1.22;letter-spacing:-.02em;
  margin:0 0 var(--sp-3);
}
.belief__sub{margin:0;color:var(--fg-mute);font-size:var(--text-lg)}

/* ---------- Contact ---------- */
.details{margin:var(--sp-4) 0 0;display:grid;gap:0}
.details > div{
  display:grid;grid-template-columns:9rem 1fr;gap:var(--sp-2);
  border-top:1px solid var(--line);padding:.9rem 0;
}
.details dt{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim)}
.details dd{margin:0;font-size:var(--text-base);color:var(--fg);overflow-wrap:break-word}
.details dd a{border-bottom:1px solid rgba(201,162,39,.5);transition:color .2s}
.details dd a:hover{color:var(--gold)}

.payment{
  margin-top:var(--sp-4);border:1px solid var(--line);
  background:rgba(255,255,255,.02);padding:var(--sp-3);
}
.payment__title{
  margin:0 0 .4rem;font-size:var(--text-xs);letter-spacing:.16em;
  text-transform:uppercase;color:var(--fg);font-weight:500;
}
.payment p{margin:0;font-size:var(--text-sm);color:var(--fg-mute);line-height:1.65}
.payment__meta{margin-top:.6rem !important;font-size:var(--text-fine) !important;color:var(--fg-dim) !important;letter-spacing:.04em}
.crisis{
  margin-top:var(--sp-3);border:1px solid rgba(201,162,39,.32);
  border-left:3px solid var(--gold);background:rgba(201,162,39,.06);
  padding:var(--sp-3);
}
.crisis__title{
  margin:0 0 .4rem;font-size:var(--text-xs);letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold);font-weight:500;
}
.crisis p{margin:0;font-size:var(--text-sm);color:var(--fg-mute);line-height:1.65}
.crisis strong{color:var(--fg)}

/* ---------- Form ---------- */
.form{border:1px solid var(--line);background:var(--ink);padding:var(--sp-4)}
.form__title{
  margin:0 0 var(--sp-3);font-family:var(--font-title);font-weight:600;
  font-size:1.15rem;letter-spacing:.04em;line-height:1.3;
}
.field{margin-bottom:var(--sp-2)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.field label{
  display:block;font-size:var(--text-xs);letter-spacing:.12em;
  text-transform:uppercase;color:var(--fg-dim);margin-bottom:.45rem;
}
.field input,.field textarea{
  width:100%;background:var(--ink-3);border:1px solid var(--line);
  color:var(--fg);font-family:var(--font-body);font-size:var(--text-base);
  padding:.8rem .9rem;border-radius:var(--r);transition:border-color .2s,background .2s;
}
.field textarea{resize:vertical;min-height:5rem}
/* Removing the outline entirely left keyboard users with only a subtle
   border shift to locate themselves in the form. The gold border stays as
   the visual treatment; the ring is what makes focus unmistakable. */
.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{
  border-color:var(--gold);background:#101014;
  outline:2px solid var(--gold);outline-offset:2px;
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold);background:#101014;outline:none}
.field select{
  width:100%;background:var(--ink-3);border:1px solid var(--line);
  color:var(--fg);font-family:var(--font-body);font-size:var(--text-base);
  padding:.8rem 2.4rem .8rem .9rem;border-radius:var(--r);
  transition:border-color .2s,background .2s;appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%23C9A227' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .95rem center;
}
.form__intro{margin:calc(var(--sp-3) * -1 + .35rem) 0 var(--sp-3);font-size:var(--text-sm);color:var(--fg-mute);line-height:1.6}
.req{color:var(--gold)}
.field-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{
  display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;
  margin:var(--sp-3) 0 var(--sp-3);border-top:1px solid var(--line);padding-top:var(--sp-3);
}
/* 18px failed WCAG 2.5.8 Target Size (Minimum), which sets a 24px floor.
   This is the box a parent has to tick to send the form, so it is the last
   thing that should be fiddly on a phone. */
.consent input{
  width:24px;height:24px;margin:0;accent-color:var(--gold);
  cursor:pointer;flex:0 0 auto;
}
/* Consent language is a disclosure, not fine print. 12px was too small for
   text that tells a parent not to put clinical detail in a web form. */
.consent label{font-size:var(--text-sm);color:var(--fg-mute);line-height:1.65;letter-spacing:.01em;cursor:pointer}
.consent label a{color:var(--gold);border-bottom:1px solid rgba(201,162,39,.5)}
.form__note{margin:var(--sp-2) 0 0;font-size:var(--text-fine);color:var(--fg-dim);line-height:1.6}

/* Sets the reply expectation before the click, not after it. Brighter than
   .form__note on purpose: a hesitant parent should read this, not skim past. */
.form__promise{
  margin:0 0 var(--sp-2);font-size:var(--text-sm);color:var(--fg);line-height:1.6;
  padding-left:.85rem;border-left:2px solid var(--gold);
}
.form__promise a{color:var(--gold-lt);border-bottom:1px solid rgba(201,162,39,.5)}
.form__msg{
  margin:var(--sp-2) 0 0;font-size:var(--text-sm);line-height:1.6;
  border-top:1px solid var(--line);padding-top:var(--sp-2);
}
.form__msg--ok{color:var(--gold)}
.form__msg--err{color:#F0B4A8}

.affil{
  margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line-2);
  font-size:var(--text-sm);color:var(--fg-dim);line-height:1.7;
}
.affil strong{color:var(--fg-mute);font-weight:500}

/* ---------- Cohort / scarcity line ---------- */
.cohort{
  display:inline-flex;align-items:center;gap:.6rem;margin:var(--sp-3) 0 0;
  border:1px solid rgba(201,162,39,.4);background:rgba(201,162,39,.07);
  padding:.55rem .95rem;font-size:var(--text-sm);color:var(--fg-mute);
}
.cohort strong{color:var(--gold);font-weight:500}
.cohort__dot{
  width:7px;height:7px;border-radius:50%;background:var(--gold);flex:0 0 auto;
  box-shadow:0 0 0 4px rgba(201,162,39,.16);
}

/* ---------- Parent guide (lead magnet) ---------- */
.magnet{border-top:1px solid var(--line)}
.grid-2--magnet{grid-template-columns:1.05fr .95fr;gap:var(--sp-8);align-items:center}
.magnet__list{
  list-style:none;padding:0;margin:var(--sp-4) 0 0;display:grid;gap:.85rem;
}
.magnet__list li{
  position:relative;padding-left:1.5rem;font-size:var(--text-sm);
  color:var(--fg-mute);line-height:1.7;
}
.magnet__list li::before{
  content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--gold);
}
.magnet__list strong{color:var(--fg);font-weight:500}
.magnet__card{
  border:1px solid var(--line-2);background:var(--ink-2);padding:var(--sp-4);
}
.magnet__kicker{
  margin:0;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);
}
.magnet__title{
  font-family:var(--font-title);font-weight:600;font-size:1.55rem;
  line-height:1.24;letter-spacing:.03em;margin:var(--sp-2) 0 .4rem;color:var(--fg);
}
.magnet__sub{
  margin:0 0 var(--sp-4);font-size:var(--text-sm);color:var(--fg-dim);line-height:1.6;
  padding-bottom:var(--sp-3);border-bottom:1px solid var(--line);
}
.magnet__form .field:first-of-type{margin-top:0}

/* ---- Continued care + FAQ ---- */
.payment--wide{max-width:76ch;margin-inline:auto;margin-top:var(--sp-6);padding:var(--sp-4)}
.payment--wide p + p{margin-top:.9rem}
.payment__rate{
  margin-top:.9rem !important;color:var(--fg) !important;
  font-size:var(--text-base) !important;font-weight:500;
}
.payment a{color:var(--gold-lt);border-bottom:1px solid rgba(201,162,39,.45)}
.payment a:hover{color:var(--gold)}

/* ---- Fees ---- */
.fees__grid{display:grid;grid-template-columns:1.02fr .98fr;gap:var(--sp-8);align-items:start;margin-top:var(--sp-6)}
.fees__label{
  font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);margin:0 0 var(--sp-2)
}
.fees__table{border-top:1px solid var(--line)}
.fee{
  display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);
  padding:.85rem 0;border-bottom:1px solid var(--line)
}
.fee__name{font-size:var(--text-base);color:var(--fg)}
.fee__meta{display:block;font-size:var(--text-fine);color:var(--fg-dim);letter-spacing:.04em;margin-top:.2rem}
.fee__amt{
  font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;color:var(--gold);
  flex:0 0 auto;font-variant-numeric:tabular-nums
}
.fees__note{margin:var(--sp-2) 0 0;font-size:var(--text-fine);color:var(--fg-dim);line-height:1.7}
.fees__note a{color:var(--fg-mute);border-bottom:1px solid rgba(201,162,39,.45);transition:color .2s}
.fees__note a:hover{color:var(--gold)}
.total{border:1px solid var(--line-2);background:var(--ink-3);padding:var(--sp-4)}
.total__title{
  font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;
  color:var(--fg-dim);margin:0 0 var(--sp-3)
}
.total__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);padding:.5rem 0;font-size:var(--text-sm);color:var(--fg-mute)}
.total__row span:last-child{color:var(--fg);font-variant-numeric:tabular-nums;flex:0 0 auto}
.total__row--sum{
  border-top:1px solid var(--line-2);margin-top:.5rem;padding-top:var(--sp-2);
  font-size:var(--text-base);color:var(--fg)
}
.total__row--sum span:last-child{font-family:var(--font-display);font-size:var(--text-xl);color:var(--gold)}
.total__per{margin:.75rem 0 0;font-size:var(--text-sm);color:var(--fg-mute);line-height:1.65}
.total__per strong{color:var(--fg);font-weight:500}
.tiers{max-width:76ch;margin:var(--sp-6) auto 0}
.fees__intro{
  max-width:64ch;margin:0 auto var(--sp-4);text-align:center;
  font-size:var(--text-sm);color:var(--fg-mute);line-height:1.75
}
.fees__note strong{color:var(--fg);font-weight:500}
.plan{border:1px solid var(--line-2);background:var(--ink-2);padding:var(--sp-4)}
.plan__tag{
  font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0
}
.plan__name{
  font-family:var(--font-title);font-size:1.18rem;font-weight:600;line-height:1.26;
  letter-spacing:.04em;color:var(--fg);margin:.6rem 0 0
}
.plan__price{
  font-family:var(--font-display);font-size:clamp(2.1rem,4vw,2.6rem);font-weight:500;line-height:1;
  color:var(--gold);margin:var(--sp-2) 0 var(--sp-3);padding-bottom:var(--sp-3);
  border-bottom:1px solid var(--line)
}
.plan__price span{
  font-family:var(--font-body);font-size:var(--text-sm);font-weight:400;color:var(--fg-dim);
  letter-spacing:.04em;margin-left:.35rem
}
.plan__list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.plan__list li{
  position:relative;padding-left:1.1rem;font-size:var(--text-sm);color:var(--fg-mute);line-height:1.7
}
.plan__list li::before{content:"";position:absolute;left:0;top:.62em;width:4px;height:4px;background:var(--gold)}
.plan__list strong{color:var(--fg);font-weight:500}
.plan__note{
  margin:var(--sp-3) 0 0;padding-top:var(--sp-3);border-top:1px solid var(--line);
  font-size:var(--text-fine);color:var(--fg-dim);line-height:1.7
}
.tiers__row{
  display:grid;grid-template-columns:1.5fr .75fr .75fr;gap:var(--sp-3);align-items:baseline;
  padding:.8rem 0;border-bottom:1px solid var(--line)
}
.tiers__row--head{border-bottom-color:var(--line-2)}
.tiers__row--head span{
  font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim)
}
.tiers__row span:nth-child(2),.tiers__row span:nth-child(3){text-align:right;font-variant-numeric:tabular-nums}
.tiers__band{font-size:var(--text-base);color:var(--fg)}
.tiers__band em{display:block;font-style:normal;font-size:var(--text-fine);color:var(--fg-dim);margin-top:.2rem}
.tiers__amt{font-family:var(--font-display);font-size:var(--text-base);color:var(--gold)}
.tiers__tot{font-size:var(--text-sm);color:var(--fg-mute)}

.faq{border-top:1px solid var(--line)}
.faq__list{max-width:74ch;margin:var(--sp-6) auto 0;border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__item summary{
  list-style:none;cursor:pointer;padding:var(--sp-3) var(--sp-6) var(--sp-3) 0;
  position:relative;font-family:var(--font-display);font-weight:500;
  font-size:var(--text-lg);line-height:1.35;letter-spacing:-.01em;color:var(--fg);
  transition:color .2s;
}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:hover{color:var(--gold-lt)}
.faq__item summary::after{
  content:"";position:absolute;right:.35rem;top:50%;width:12px;height:12px;
  background:
    linear-gradient(var(--gold),var(--gold)) center/12px 1px no-repeat,
    linear-gradient(var(--gold),var(--gold)) center/1px 12px no-repeat;
  transform:translateY(-50%);transition:transform .25s ease;
}
.faq__item[open] summary::after{
  background:linear-gradient(var(--gold),var(--gold)) center/12px 1px no-repeat;
  transform:translateY(-50%) rotate(180deg);
}
.faq__item[open] summary{color:var(--gold-lt)}
.faq__a{padding:0 var(--sp-6) var(--sp-4) 0}
.faq__a p{margin:0;color:var(--fg-mute);font-size:var(--text-sm);line-height:1.75}
.faq__a p + p{margin-top:.75rem}
.faq__a a{color:var(--gold-lt);border-bottom:1px solid rgba(201,162,39,.45)}
.faq__a a:hover{color:var(--gold)}
.faq__a strong{color:var(--fg);font-weight:500}

/* ============ Supervision page ============ */

/* ---------- Sub-page hero ---------- */
.nav.is-solid{background:rgba(8,8,10,.92);backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.subhero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.subhero__media{position:absolute;inset:0}
.subhero__media img{width:100%;height:100%;object-fit:cover;opacity:.7}
.subhero__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(8,8,10,.97) 0%,rgba(8,8,10,.88) 46%,rgba(8,8,10,.5) 100%),
    linear-gradient(0deg,var(--ink) 3%,rgba(8,8,10,.2) 62%);
}
.subhero__inner{position:relative;padding:10.5rem var(--sp-3) var(--sp-6)}
.crumbs{
  display:flex;align-items:center;gap:.6rem;margin-bottom:var(--sp-4);
  font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);
}
.crumbs a{color:var(--fg-mute);transition:color .2s}
.crumbs a:hover{color:var(--gold)}
.subhero__title{
  font-family:var(--font-title);font-weight:600;
  font-size:clamp(1.95rem,4.2vw,3.1rem);line-height:1.14;letter-spacing:.015em;
  margin:0 0 var(--sp-3);max-width:22ch;
}
.subhero__title span{display:block}
.subhero__title .gold{color:var(--gold)}
.subhero__lede{font-size:var(--text-lg);color:var(--fg-mute);max-width:58ch;margin:0 0 var(--sp-4)}
.subhero .hero__stats{padding-bottom:var(--sp-6)}

/* ---------- Supporting image ---------- */
.shot{margin:0}
.shot img{width:100%;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--line)}

/* ---------- Requirement cards ---------- */
/* Four columns is the supervision page's requirement grid. The hairline gaps are
   the parent's background showing through, so a column count that does not match
   the item count leaves an empty lit cell at the end of the row - use the
   modifier that matches the number of items. */
.rules{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.rules--3{grid-template-columns:repeat(3,1fr)}
.rules--2{grid-template-columns:repeat(2,1fr)}
.rule{background:var(--ink);padding:var(--sp-3);display:flex;flex-direction:column;transition:background .3s}
.rule:hover{background:var(--ink-3)}
.rule h3{
  margin:0 0 .7rem;font-family:var(--font-display);font-weight:500;
  font-size:var(--text-base);line-height:1.25;letter-spacing:-.005em;color:var(--fg);
}
.rule p{margin:0;font-size:var(--text-sm);color:var(--fg-mute);line-height:1.7}
.rule strong{color:var(--fg);font-weight:500}
.rule__cite{
  margin-top:auto;padding-top:var(--sp-2);
  font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold);opacity:.85;
}
.rules__note{
  margin:var(--sp-4) 0 0;font-size:var(--text-fine);color:var(--fg-dim);
  line-height:1.8;max-width:88ch;
}
.rules__note a{color:var(--fg-mute);border-bottom:1px solid rgba(201,162,39,.45);transition:color .2s}
.rules__note a:hover{color:var(--gold)}

/* ---------- Fit columns ---------- */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}
.fit__col{border-top:2px solid var(--line-2);padding-top:var(--sp-3)}
.fit__col--yes{border-top-color:var(--gold)}
.fit__title{
  margin:0 0 var(--sp-2);font-family:var(--font-display);font-weight:500;
  font-size:var(--text-lg);letter-spacing:-.01em;color:var(--fg);
}
.fit__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.fit__col li{
  position:relative;padding-left:1.6rem;font-size:var(--text-sm);
  color:var(--fg-mute);line-height:1.7;
}
.fit__col--yes li::before{
  content:"";position:absolute;left:0;top:.5em;width:9px;height:5px;
  border-left:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);
  transform:rotate(-45deg);
}
.fit__col--no li::before{
  content:"";position:absolute;left:0;top:.72em;width:9px;height:1.5px;background:var(--fg-dim);
}

/* ---------- Cross-link band ---------- */
.crosslink{border-top:1px solid var(--line);padding-block:var(--sp-8)}
.crosslink__inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--sp-6);flex-wrap:wrap;
}
.crosslink .h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:var(--sp-2)}
.crosslink__lede{margin:0;color:var(--fg-mute);font-size:var(--text-sm);max-width:54ch}

/* ---------- Privacy ---------- */
.privacy{border-top:1px solid var(--line);padding-bottom:var(--sp-12)}
.privacy__lede{max-width:62ch;color:var(--fg-mute);font-size:var(--text-base);margin:0 0 var(--sp-8)}
.privacy__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4) var(--sp-6)}
.privacy__item h3{
  margin:0 0 .6rem;font-family:var(--font-display);font-weight:500;
  font-size:var(--text-base);letter-spacing:-.005em;color:var(--fg);
  border-top:1px solid var(--line-2);padding-top:var(--sp-2);
}
.privacy__item p{margin:0;font-size:var(--text-sm);color:var(--fg-mute);line-height:1.75}
.privacy__meta{
  margin:var(--sp-8) 0 0;padding-top:var(--sp-3);border-top:1px solid var(--line);
  font-size:var(--text-fine);color:var(--fg-dim);line-height:1.7;max-width:70ch;
}

/* ---------- Mobile call bar ---------- */
.callbar{display:none}

/* ---------- Footer ---------- */
.footer{background:var(--ink-2);border-top:1px solid var(--line);padding:var(--sp-8) 0 var(--sp-4)}
.footer__inner{display:grid;grid-template-columns:1.4fr .6fr;gap:var(--sp-6);align-items:start}
.footer__brand .brand__mark{color:var(--gold);width:34px;height:34px;margin-bottom:var(--sp-2)}
.footer__word{
  margin:0;font-family:var(--font-title);font-weight:600;
  font-size:1.3rem;letter-spacing:.26em;
}
.footer__parent{
  margin:.55rem 0 0;font-size:var(--text-xs);letter-spacing:.16em;
  text-transform:uppercase;color:var(--fg-dim);
}
.footer__tag{margin:.4rem 0 var(--sp-2);color:var(--gold);font-size:var(--text-sm);font-style:italic}
.footer__desc{margin:0;color:var(--fg-mute);font-size:var(--text-sm);max-width:50ch}
.footer__nav{display:grid;gap:.7rem;justify-items:start}
.footer__nav a{font-size:var(--text-sm);color:var(--fg-mute);transition:color .2s}
.footer__nav a:hover{color:var(--gold)}
.footer__legal{
  margin-top:var(--sp-6);border-top:1px solid var(--line);padding-top:var(--sp-3);
  display:flex;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;
}
.footer__legal p{margin:0;font-size:var(--text-fine);color:var(--fg-dim);line-height:1.7;max-width:78ch}
.footer__legal a{color:var(--fg-mute);border-bottom:1px solid rgba(201,162,39,.45);transition:color .2s}
.footer__legal a:hover{color:var(--gold)}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.reveal.in{opacity:1;transform:none}
/* Fees summary (home) */
.feesum{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);max-width:900px;margin:var(--sp-6) auto 0}
.feesum__item{border-top:1px solid var(--line-2);padding-top:var(--sp-2);text-align:center}
.feesum__n{display:block;font-family:var(--font-display);font-size:clamp(2rem,4vw,2.6rem);font-weight:500;color:var(--gold);line-height:1.1}
.feesum__l{display:block;margin-top:.4rem;font-size:var(--text-sm);color:var(--fg-mute)}
.feesum__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);justify-content:center;align-items:center;margin-top:var(--sp-6)}
.textlink{font-size:var(--text-sm);color:var(--fg-mute);border-bottom:1px solid rgba(201,162,39,.5);padding-bottom:2px;transition:color .2s}
.textlink:hover{color:var(--gold)}
.subhero--plain .subhero__inner{padding-bottom:var(--sp-8)}
.hero__actions--center{justify-content:center;margin-top:var(--sp-4)}
@media (max-width:640px){.feesum{grid-template-columns:1fr;gap:var(--sp-2)}}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .phases{grid-template-columns:1fr}
  .strip__list{grid-template-columns:repeat(2,1fr)}
  .privacy__grid{grid-template-columns:repeat(2,1fr)}
  .rules{grid-template-columns:repeat(2,1fr)}
}
/* Tighten vertical rhythm on small screens. Kept separate from the navigation
   breakpoint below because the two have different triggers: spacing is about
   screen height and reading comfort, the nav is about whether the header row
   physically fits. */
@media (max-width:860px){
  :root{--sp-16:4.5rem;--sp-12:3.5rem;--sp-8:2.5rem}
}

/* Navigation collapse. This is 950px, not 860px, and the number is measured
   rather than chosen: with seven links plus the consultation button the header
   row has a min-content width of 951px, so anything narrower pushed the button
   off the right edge of the screen. Collapsing to the drawer at 950px closes
   that gap. If a nav item is ever added or renamed, re-measure - the safe
   breakpoint moves with the width of the link text. */
@media (max-width:950px){
  .nav__links{display:none}
  .nav__cta{display:none}
  .nav__toggle{
    display:flex;flex-direction:column;justify-content:center;gap:6px;
    margin-left:auto;width:42px;height:42px;background:none;border:1px solid var(--line-2);
    border-radius:var(--r);cursor:pointer;padding:0 10px;
  }
  .nav__toggle span{display:block;height:1.5px;background:var(--fg);transition:transform .3s,opacity .3s}
  .nav__toggle[aria-expanded="true"] span:first-child{transform:translateY(3.75px) rotate(45deg)}
  .nav__toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
  .nav__drawer{
    display:grid;gap:0;max-height:0;overflow:hidden;
    background:rgba(8,8,10,.98);backdrop-filter:blur(14px);
    transition:max-height .35s ease;
  }
  .nav__drawer.open{max-height:380px;border-top:1px solid var(--line)}
  .nav__drawer a{padding:1.05rem var(--sp-3);border-bottom:1px solid var(--line);font-size:var(--text-base);color:var(--fg-mute)}
  .nav__drawer .drawer__cta{color:var(--gold);letter-spacing:.06em;text-transform:uppercase;font-size:var(--text-sm)}

  .hero{min-height:auto}
  .hero__inner{padding-top:7.5rem}
  .subhero__inner{padding-top:8.5rem}
  .subhero__title{max-width:none}
  .shot{order:-1}
  .shot img{aspect-ratio:16/10}
  .fit{grid-template-columns:1fr;gap:var(--sp-4)}
  .crosslink__inner{gap:var(--sp-3)}
  .hero__title{max-width:none}
  .hero__stats{grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}
  .grid-2,.grid-2--contact,.grid-2--magnet{grid-template-columns:1fr;gap:var(--sp-6)}
  .fees__grid{grid-template-columns:1fr;gap:var(--sp-6)}
  .about__figure{order:-1}
  .cards{grid-template-columns:1fr}
  .footer__inner{grid-template-columns:1fr;gap:var(--sp-4)}
  /* Was grid-auto-flow:column with flex-wrap, which cannot work: flex-wrap has
     no effect on a grid, so every link was forced into one non-wrapping row and
     the footer grew to its combined width - about 1050px - overflowing any
     viewport below that and giving the whole page a horizontal scrollbar. A real
     wrapping flex row fixes it and scales as links are added. */
  .footer__nav{
    display:flex;flex-flow:row wrap;justify-content:flex-start;
    column-gap:var(--sp-3);row-gap:.7rem;
  }
  .privacy__grid{grid-template-columns:1fr;gap:var(--sp-3)}

  /* Tap-to-call bar: highest-converting mobile element on a practice site */
  .callbar{
    display:grid;grid-template-columns:1fr 1fr;
    position:fixed;left:0;right:0;bottom:0;z-index:150;
    background:rgba(8,8,10,.96);backdrop-filter:blur(14px);
    border-top:1px solid var(--line-2);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .callbar a{
    display:flex;align-items:center;justify-content:center;gap:.5rem;
    padding:1.05rem .6rem;font-size:.875rem;font-weight:500;line-height:1;
    letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;
  }
  .callbar__call{background:var(--gold);color:#0A0A0A}
  .callbar__req{color:var(--fg);border-left:1px solid var(--line-2)}
  body{padding-bottom:4.25rem}
  .footer{padding-bottom:var(--sp-6)}
}
@media (max-width:520px){
  .strip__list{grid-template-columns:1fr}
  .rules{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
  .details > div{grid-template-columns:1fr;gap:.25rem}
  .btn{width:100%}
  .hero__actions{gap:.75rem}
  .footer__nav{flex-direction:column}
  .fee{flex-direction:column;gap:.3rem}
  .tiers__row--head{display:none}
  .tiers__row{grid-template-columns:1fr;gap:.3rem}
  .tiers__row span:nth-child(2),.tiers__row span:nth-child(3){text-align:left}
  .tiers__row span:nth-child(2)::before,.tiers__row span:nth-child(3)::before{
    font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;
    color:var(--fg-dim);margin-right:.5rem
  }
  .tiers__row span:nth-child(2)::before{content:"Per session"}
  .tiers__row span:nth-child(3)::before{content:"12 weeks"}
}

/* ============ GOOD FAITH ESTIMATE NOTICE ============ */
/* Federally required disclosure (45 CFR 149.610). Must remain publicly
   reachable and legible. Do not collapse behind an accordion or reduce
   below --text-sm — this is a compliance element, not decoration. */
.gfe{
  margin-top:var(--sp-6);
  scroll-margin-top:6.5rem; /* clears the sticky nav when deep-linked from the footer */
  border:1px solid var(--line-2);
  border-left:2px solid var(--gold);
  background:var(--ink-3);
  padding:var(--sp-4);
}
.gfe__eyebrow{
  margin:0 0 var(--sp-1);
  font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);font-weight:600;
}
.gfe__title{
  margin:0 0 var(--sp-2);
  font-family:var(--font-title);font-size:1.15rem;
  font-weight:600;line-height:1.3;letter-spacing:.035em;color:var(--fg);
}
.gfe__lead{
  margin:0 0 var(--sp-3);
  font-size:var(--text-base);line-height:1.65;color:var(--fg-mute);
}
.gfe__list{
  margin:0;padding:0;list-style:none;
  border-top:1px solid var(--line);
}
.gfe__list li{
  position:relative;
  padding:.8rem 0 .8rem var(--sp-3);
  border-bottom:1px solid var(--line);
  font-size:var(--text-sm);line-height:1.65;color:var(--fg-mute);
}
.gfe__list li::before{
  content:"";position:absolute;left:0;top:1.35rem;
  width:8px;height:1px;background:var(--gold);
}
.gfe__foot{
  margin:var(--sp-3) 0 0;
  font-size:var(--text-fine);line-height:1.7;color:var(--fg-dim);
}
.gfe a{color:var(--fg);border-bottom:1px solid rgba(201,162,39,.5);transition:color .2s}
.gfe a[href^="tel:"]{white-space:nowrap} /* keep 1-800-985-3059 on one line */
.gfe a:hover{color:var(--gold)}
@media (max-width:520px){
  .gfe{padding:var(--sp-3)}
  .gfe__title{font-size:var(--text-lg)}
}

/* ---------- Logo mark: Cinzel capital X in the ring ---------- */
.brand__x{
  font-family:var(--font-title);font-weight:700;font-size:26px;letter-spacing:0;
}

/* ============================================================
   PRINT
   Parents print the fee schedule to talk it over at the kitchen
   table, and the Good Faith Estimate notice is a document the No
   Surprises Act expects them to be able to keep. A dark-field site
   printed as-is burns a toner cartridge and comes out unreadable,
   so print gets a white field, black type, and a stamped header and
   footer carrying the licence numbers and the source URL.
   ============================================================ */
@media print{
  :root{
    --ink:#fff; --ink-2:#fff; --ink-3:#fff;
    --fg:#000; --fg-mute:#333; --fg-dim:#444;
    --gold:#6b5410; --gold-lt:#6b5410;
    --line:#bbb; --line-2:#888;
  }
  *,*::before,*::after{
    background:transparent !important; box-shadow:none !important;
    text-shadow:none !important; color:#000 !important;
  }
  html,body{background:#fff !important;font-size:10.5pt;line-height:1.45}
  @page{margin:16mm 14mm}

  /* Chrome, navigation and anything that only works on a screen */
  .nav,.callbar,.nav__drawer,.nav__toggle,.skip,
  .hero__media,.hero__scrim,.belief__media,.belief__scrim,
  .about__figure,.form,.magnet__form,.crosslink,.faq__item summary::-webkit-details-marker
  {display:none !important}

  /* Sections that are pure screen atmosphere */
  .belief,.cohort{display:none !important}

  /* A printed button is dead ink — it cannot be clicked and it eats a line.
     The phone number and address are stamped in the footer instead. */
  .btn,.hero__actions,.drawer__cta,.nav__cta{display:none !important}

  /* The oversized step numerals are a screen device. At print size they
     dominate the page and push real content onto extra sheets. */
  .stat__n{font-size:14pt !important}
  .card__n,.phase__n{font-size:8.5pt !important;letter-spacing:.12em}
  .phase__weeks{font-size:8pt !important}

  /* Squeeze the vertical air out of the card and phase stacks. */
  .card,.phase{padding:6pt 0 !important;margin:0 !important;border-width:0 0 .5pt 0 !important;border-color:#ccc !important}
  .phase{border:.5pt solid #ccc !important;padding:8pt !important;margin-bottom:7pt !important}
  .cards,.phases{gap:0 !important}
  .section__head,.section__lede{margin-bottom:8pt !important}
  .prose p,.card p,.phase__desc{margin:0 0 5pt !important}

  /* Small uppercase eyebrow labels were landing flush against the paragraph
     above them, which read as one run-on block on paper. */
  .eyebrow,.tiers__cap,.total__cap,.section__eyebrow{margin-top:12pt !important;display:block}

  .hero,.hero__inner{padding:0 !important;min-height:0 !important}
  .section{padding:14pt 0 !important;border:0 !important}
  .wrap{max-width:none;padding:0}
  .grid-2,.grid-2--contact,.grid-2--magnet,.fees__grid,.privacy__grid,
  .cards,.phases,.strip__list{display:block !important}

  /* Titling: Cinzel prints well, but caps at screen sizes waste paper */
  .hero__title{font-size:20pt !important;line-height:1.15 !important}
  .h2{font-size:13pt !important;line-height:1.2 !important;margin-top:0}
  .card h3,.phase h3,.gfe__title,.magnet__title{font-size:11pt !important}
  .eyebrow,.gfe__eyebrow,.fees__label{font-size:7.5pt !important}

  /* Keep the money and the legal boxes intact across a page break */
  .fee,.tiers__row,.total__row,.phase,.card,.gfe__list li,
  .privacy__item,.faq__item,.crisis{break-inside:avoid;page-break-inside:avoid}
  .gfe,.crisis,.total{border:1pt solid #888 !important;padding:8pt !important}
  .h2,.card h3,.phase h3{break-after:avoid;page-break-after:avoid}

  /* A printout with naked link text loses the ABEC verification path,
     the HHS poverty guidelines and the ACA citations. Print the target. */
  .prose a[href^="http"]::after,.gfe a[href^="http"]::after,
  .fees__note a[href^="http"]::after,.privacy a[href^="http"]::after,
  .faq__a a[href^="http"]::after{
    content:" <" attr(href) ">";font-size:8pt;color:#444 !important;word-break:break-all;
  }
  a{text-decoration:underline}

  /* Stamp every printed sheet with who produced it. */
  body::before{
    display:block;content:"XHORTATION — a counseling program of Mentors LLC · John Preston Gunn, Licensed Professional Counselor, Alabama #02770 · Board-Approved Supervisor #SC03158";
    font-size:8pt;line-height:1.4;padding-bottom:5pt;margin-bottom:12pt;
    border-bottom:1.5pt solid #000;
  }
  body::after{
    display:block;content:"Mentors LLC · 894 East Main Street, Headland, AL 36345 · (334) 785-5271 · mentorsllc.com — Printed from the website. Fees and program details are current as of the print date; confirm before relying on them. Not a crisis service: call or text 988, or call 911.";
    font-size:7.5pt;line-height:1.4;padding-top:5pt;margin-top:14pt;border-top:1pt solid #000;
  }

  /* FAQ answers are collapsed on screen; a printed FAQ with hidden
     answers is a blank page, so force every one open. */
  .faq__item{border-bottom:1pt solid #bbb}
  .faq__a{display:block !important;height:auto !important;overflow:visible !important;
          max-height:none !important;opacity:1 !important;padding:0 0 8pt !important}

  /* Reveal-on-scroll never fires in a print context */
  .reveal{opacity:1 !important;transform:none !important}
}

/* ==========================================================================
   Mentors LLC brand layer (practice brand) + XHORTATION program treatments
   ========================================================================== */
.brand__logo{width:36px;height:auto;flex:0 0 auto;display:block}
.brand__text{display:inline-flex;align-items:baseline;gap:.5em}
.brand__llc{font-size:.68em;letter-spacing:.3em;color:var(--gold)}
.footer__logo{display:block;width:190px;height:auto;margin:0 0 var(--sp-3)}
.footer__parent{color:var(--gold);margin-top:0}
.footer__desc{margin-top:var(--sp-2)}
.footer__program{display:flex;align-items:center;gap:.6rem;margin:var(--sp-3) 0 0;font-size:var(--text-sm);color:var(--fg-mute)}
.footer__program .brand__mark{width:24px;height:24px;margin:0;flex:0 0 auto}

/* Home: three ways we help — program card carries a gold rule */
.card--program{box-shadow:inset 0 2px 0 var(--gold)}

/* Home: XHORTATION feature band */
.xband{position:relative;overflow:hidden;padding:var(--sp-12,6rem) 0;border-block:1px solid var(--line)}
.xband__media{position:absolute;inset:0}
.xband__media img{width:100%;height:100%;object-fit:cover;object-position:center 60%;opacity:.4}
.xband__scrim{position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,rgba(8,8,10,.86) 50%,rgba(8,8,10,.7) 100%)}
.xband__inner{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--sp-8);align-items:center}
.xband__mark{width:72px;height:72px;display:block;margin-bottom:var(--sp-3)}
.xband__mark .brand__x{font-size:26px}
.xband__kicker{margin:0;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--fg-dim)}
.xband__title{margin:.5rem 0 0;font-family:var(--font-title);font-weight:600;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:.2em;line-height:1.1}
.xband__tag{margin:.6rem 0 0;color:var(--gold);font-size:var(--text-lg);font-style:italic}
.xband__phases{list-style:none;margin:0 0 var(--sp-2);padding:0;display:grid;gap:1px;background:var(--line)}
.xband__phases li{background:rgba(14,14,17,.85);padding:var(--sp-3);color:var(--fg-mute);font-size:var(--text-sm);display:grid;grid-template-columns:7.5rem 1fr;column-gap:var(--sp-3)}
.xband__phases span{grid-row:span 2;color:var(--gold);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;padding-top:.2rem}
.xband__phases strong{color:var(--fg);font-weight:500;font-size:var(--text-base)}
.xband__body .cohort{margin:var(--sp-2) 0 var(--sp-4);display:flex}
@media (max-width:900px){
  .xband__inner{grid-template-columns:1fr;gap:var(--sp-5,2.5rem)}
  .xband__phases li{grid-template-columns:1fr}
  .xband__phases span{grid-row:auto;padding:0 0 .3rem}
}

/* Program page identity */
.program-id{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3)}
.program-id__mark{width:52px;height:52px;flex:0 0 auto}
.program-id__mark .brand__x{font-size:26px}
.program-id__name{margin:0;font-family:var(--font-title);font-weight:600;letter-spacing:.26em;font-size:1.15rem;color:var(--fg)}
.program-id__of{margin:.2rem 0 0;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.program-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);max-width:760px;margin-top:var(--sp-6)}
@media (max-width:640px){.program-stats{grid-template-columns:repeat(2,1fr)}}
#about-program .prose{max-width:68ch}

/* Secure request card (replaces the on-site intake form) */
.secure-card__steps{list-style:none;margin:var(--space-6,1.5rem) 0;padding:0;display:grid;gap:var(--space-4,1rem)}
.secure-card__steps li{display:grid;grid-template-columns:2.25rem 1fr;gap:.75rem;font-size:var(--text-sm,.95rem);color:var(--color-text-muted,#b9b4a8);line-height:1.55;padding-bottom:var(--space-4,1rem);border-bottom:1px solid rgba(201,162,39,.14)}
.secure-card__steps li span{color:#C9A227;font-size:.8rem;letter-spacing:.12em;padding-top:.15rem}
.secure-card .form__promise{margin-top:var(--space-5,1.25rem)}

/* Card differentiators (Three ways to work with us) */
.card__tag{display:block;margin:0 0 .6rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#C9A227}
.card p.card__best{margin-top:.9rem;font-size:.9em;color:var(--color-text,#e9e6dd);line-height:1.5}
.card__best strong{color:#C9A227;font-weight:500}
