/* ============================================================
   ADHD YORKSHIRE - DESIGN SYSTEM
   Palette : white, off-white, oatmeal, ink, one dark green
   Rules   : zero border-radius, zero shadow, hairline structure
   Fonts   : self-hosted, no external requests
   ============================================================ */

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;
  font-display:swap;src:url('/fonts/cormorant-garamond.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 400;
  font-display:swap;src:url('/fonts/cormorant-garamond-italic.woff2') format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:300 600;
  font-display:swap;src:url('/fonts/jost.woff2') format('woff2');}

:root{
  --white:      #ffffff;
  --paper:      #fbfaf6;
  --oat-tint:   #f2f0e8;
  --oat:        #cac0a5;   /* sampled from the logo */
  --oat-deep:   #857a58;

  --ink:        #12120e;
  --ink-soft:   #33332b;
  --ink-mute:   #6a6a5e;

  --rule:        rgba(18,18,14,.13);
  --rule-mid:    rgba(18,18,14,.26);
  --rule-strong: rgba(18,18,14,.72);

  --green:      #29362c;   /* sampled from the logo */
  --qb-blue:    #0073a8;   /* sampled from the QbCheck logo */
  --qb-wash:    #f1f6f9;
  --green-mid:  #35453a;
  --green-pale: #b3c0b4;

  --shell: 1180px;
  --ease: cubic-bezier(.22,.68,.26,1);

  --r-sm: 6px;    /* buttons */
  --r-md: 12px;   /* cards, panels */
  --r-lg: 16px;   /* image frames */
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--white);
  color:var(--ink-soft);
  font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
::selection{ background:var(--oat-tint); color:var(--ink); }

/* ---------- type ---------- */
.display{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:500;
  color:var(--ink);
  letter-spacing:.004em;
  text-wrap:balance;
}
h1.display{ font-size:clamp(44px,7.2vw,88px); line-height:1.07; margin:0; font-weight:600; }
h2.display{ font-size:clamp(34px,4.6vw,58px); line-height:1.14; margin:0; font-weight:600; }
h3.display{ font-size:clamp(24px,2.6vw,31px); line-height:1.24; margin:0; }

.eyebrow{
  font-size:10.5px; font-weight:500; text-transform:uppercase;
  letter-spacing:.28em; color:var(--ink-mute); margin:0;
}
.lede{
  font-size:clamp(17px,1.55vw,19px);
  line-height:1.8; font-weight:400; color:var(--ink-soft);
  max-width:47ch; margin:0;
}
p{ margin:0; }
p + p{ margin-top:1.5em; }
strong{ font-weight:600; color:var(--ink); }

/* ---------- layout ---------- */
.shell{ width:100%; max-width:var(--shell); margin:0 auto; padding:0 40px; }
section{ position:relative; }
.band{ padding:clamp(88px,13vw,168px) 0; }
.band--tight{ padding:clamp(72px,9vw,112px) 0; }
.center{ text-align:center; }
.center .lede{ margin-left:auto; margin-right:auto; }

/* ---------- rose mark ----------
   colour is inherited via currentColor, because CSS selectors
   cannot reach inside the shadow tree created by <use>          */
.rose{ width:32px; height:32px; color:var(--oat-deep); }
.rose--lg{ width:54px; height:54px; }
.center .rose--lg{ margin-inline:auto; }
.rose--pale{ color:var(--green-pale); }

/* ---------- header ---------- */
header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.93);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .4s var(--ease);
}
header.is-stuck{ border-bottom-color:var(--rule); }
.bar{ display:flex; align-items:center; justify-content:space-between; gap:28px; height:88px; }
.brand{ display:flex; align-items:center; text-decoration:none; }
.brand img{ height:26px; width:auto; }
.close-logo{ height:34px; width:auto; margin:0 auto 30px; }
nav.links{ display:flex; align-items:center; gap:38px; }
nav.links a{
  font-size:11px; font-weight:400; text-transform:uppercase;
  letter-spacing:.2em; color:var(--ink-soft); text-decoration:none;
  position:relative; padding-bottom:4px; transition:color .3s var(--ease);
}
nav.links a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--ink); transition:width .4s var(--ease);
}
nav.links a:hover{ color:var(--ink); }
nav.links a:hover::after{ width:100%; }

/* ---------- buttons ---------- */
.btn{
  display:inline-block; border:1px solid var(--ink); background:transparent;
  color:var(--ink); text-decoration:none; cursor:pointer;
  font-family:inherit; font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:.22em;
  padding:19px 46px; border-radius:var(--r-sm);
  transition:background .45s var(--ease),color .45s var(--ease);
}
.btn:hover{ background:var(--ink); color:var(--white); }
.btn--green{ background:var(--green); border-color:var(--green); color:#f2f0e8; }
.btn--green:hover{ background:var(--ink); border-color:var(--ink); color:#fff; }
.btn--light{ border-color:rgba(255,255,255,.45); color:#f4f2ec; }
.btn--light:hover{ background:#f4f2ec; color:var(--green); border-color:#f4f2ec; }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px; }
.center .btn-row{ justify-content:center; }

.textlink{
  font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.22em;
  color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rule-mid);
  padding-bottom:5px; transition:border-color .35s var(--ease);
}
.textlink:hover{ border-bottom-color:var(--ink); }

/* in-copy links: quiet underline, used when a page is mentioned mid-sentence */
.copylink{
  color:var(--ink); text-decoration:underline;
  text-decoration-color:var(--rule-mid); text-decoration-thickness:1px;
  text-underline-offset:4px; transition:text-decoration-color .35s var(--ease);
}
.copylink:hover{ text-decoration-color:var(--ink); }

/* ---------- hero ---------- */
.hero{ padding-top:clamp(76px,11vw,132px); padding-bottom:clamp(76px,11vw,124px); }
.hero .eyebrow{ margin-bottom:38px; }
.hero h1{ margin-bottom:34px; max-width:17ch; margin-left:auto; margin-right:auto; }
.hero .lede{ margin-bottom:48px; }
.hero-rule{ width:1px; height:76px; background:var(--rule-mid); margin:64px auto 0; }

/* ---------- image frames ---------- */
.frame{ border-radius:var(--r-lg); overflow:hidden; background:var(--oat-tint); }
.frame img{ width:100%; height:100%; object-fit:cover; }
.feature{ aspect-ratio:24/13; }
.feature-cap{
  margin-top:18px; font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-mute); text-align:center;
}

/* ---------- routes ---------- */
.routes-head{ max-width:620px; margin:0 auto clamp(44px,5.5vw,68px); text-align:center; }
.routes-head .eyebrow{ margin-bottom:24px; }
.routes-head h2{ margin-bottom:22px; }
.routes-head .lede{ margin-inline:auto; }

.routes{
  display:grid; grid-template-columns:1fr 1fr; align-items:stretch;
  border:1px solid var(--rule); border-radius:var(--r-md); overflow:hidden;
}
.route{
  display:flex; flex-direction:column;
  padding:clamp(36px,3.8vw,52px);
  background:var(--white);
}
.route + .route{ border-left:1px solid var(--rule); }
.route--feature{ background:var(--paper); }
.routes-shared{
  margin:30px auto 0; max-width:56ch; text-align:center;
  font-size:15px; line-height:1.75; color:var(--ink-mute);
}
.routes-cta{ margin-top:34px; text-align:center; }
.routes-note{ margin-top:20px; font-size:13.5px; color:var(--ink-mute); }

.route-top{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:26px; }
.route .eyebrow{ margin:0; }
.tag{
  font-size:10px; font-weight:500; text-transform:uppercase; letter-spacing:.18em;
  color:var(--oat-deep); border:1px solid rgba(133,122,88,.45);
  border-radius:100px; padding:5px 13px; white-space:nowrap;
}
.route h3{ margin-bottom:14px; }
.route p{ font-weight:400; font-size:16px; line-height:1.8; }

.route-list{ list-style:none; margin:26px 0 0; padding:0; }
.route-list li{
  position:relative; padding-left:26px; font-size:15.5px; line-height:1.55;
  color:var(--ink-soft); margin-bottom:13px;
}
.route-list li::before{
  content:''; position:absolute; left:2px; top:.62em; width:9px; height:9px;
  border-radius:100px; border:1px solid var(--oat-deep);
}

.price-block{ margin-top:auto; padding-top:34px; border-top:1px solid var(--rule); }
.price-row{ display:flex; align-items:baseline; gap:12px; }
.price{
  font-family:'Cormorant Garamond',Georgia,serif; font-weight:500;
  font-size:clamp(44px,5vw,60px); line-height:1; color:var(--ink);
}
.price-note{ font-size:12.5px; letter-spacing:.03em; color:var(--ink-mute); }
.price-sub{ margin-top:8px; font-size:13.5px; color:var(--ink-mute); line-height:1.6; }

/* ---------- strengths ---------- */
.strengths{ background:var(--oat-tint); }
.st-wrap{
  display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:clamp(38px,6vw,88px); align-items:start;
}
.st-head .rose{ margin-bottom:26px; }
.st-head h2{ margin:0; }
.st-intro{ margin-top:24px; font-size:16px; line-height:1.75; color:var(--ink-mute); max-width:30ch; }
.st-rows{ border-top:1px solid rgba(133,122,88,.32); }
.st-row{
  display:grid; grid-template-columns:minmax(0,132px) minmax(0,1fr);
  gap:clamp(18px,2.4vw,32px); align-items:baseline;
  padding:26px 0; border-bottom:1px solid rgba(133,122,88,.32);
}
.st-cat{
  font-size:10.5px; font-weight:500; text-transform:uppercase; letter-spacing:.2em;
  color:var(--oat-deep); line-height:1.75;
}
.st-lab{ font-size:16.5px; line-height:1.75; color:var(--ink); }
@media (max-width:920px){
  .st-wrap{ grid-template-columns:1fr; }
  .st-row{ min-height:0; }
  .st-head{ text-align:left; }
  .st-head .rose{ margin-inline:0; }
  .st-intro{ max-width:none; }
}
@media (max-width:600px){
  .st-row{ grid-template-columns:1fr; gap:8px; padding:22px 0; }
}

/* ---------- included ---------- */
.included{ background:var(--paper); }
.inc-head{ max-width:640px; margin-bottom:clamp(48px,6vw,76px); }
.inc-head h2{ margin-bottom:26px; }
.inc-list{ border-top:1px solid var(--rule); }
.inc-item{
  display:grid; grid-template-columns:64px 1fr; gap:12px; align-items:baseline;
  padding:26px 4px; border-bottom:1px solid var(--rule);
}
.inc-num{
  font-size:11px; font-weight:400; letter-spacing:.18em; color:var(--oat-deep);
  font-variant-numeric:tabular-nums;
}
.inc-text{ font-size:17.5px; font-weight:400; color:var(--ink); line-height:1.6; }
.inc-text span{ display:block; font-size:15px; color:var(--ink-mute); margin-top:6px; }
.inc-foot{ margin-top:44px; font-size:14.5px; color:var(--ink-mute); max-width:52ch; }
.inc-more{ margin-top:30px; }

/* ---------- process steps ---------- */
.steps{ border-top:1px solid var(--rule); }
.step{
  display:grid; grid-template-columns:minmax(0,92px) minmax(0,1fr);
  gap:clamp(18px,3vw,46px);
  padding:clamp(36px,4vw,54px) 0;
  border-bottom:1px solid var(--rule);
}
.step-num{
  font-family:'Cormorant Garamond',Georgia,serif; font-weight:500;
  font-size:clamp(34px,3.8vw,50px); line-height:1; color:var(--oat-deep);
  font-variant-numeric:lining-nums; font-feature-settings:'lnum' 1;
}
.step-body h3{ margin-bottom:16px; }
.step-body p{ font-size:17px; line-height:1.8; color:var(--ink-soft); max-width:62ch; }
.step-body p + p{ margin-top:1.25em; }

/* the one place the process genuinely differs by age */
.step-split{
  margin-top:26px; display:grid; grid-template-columns:1fr 1fr;
  gap:0; border:1px solid var(--rule); border-radius:var(--r-md); overflow:hidden;
}
.step-split > div{ padding:26px 28px; background:var(--white); }
.step-split > div + div{ border-left:1px solid var(--rule); }
.step-split .eyebrow{ margin-bottom:12px; color:var(--oat-deep); }
.step-split p{ font-size:15.5px; line-height:1.7; margin:0; max-width:none; }

.steps-outro{
  margin-top:clamp(44px,5vw,66px); max-width:64ch;
}
.steps-outro p{ font-size:18px; line-height:1.8; color:var(--ink); }

@media (max-width:920px){
  .step{ grid-template-columns:1fr; gap:14px; }
  .step-num{ font-size:32px; }
  .step-split{ grid-template-columns:1fr; }
  .step-split > div + div{ border-left:0; border-top:1px solid var(--rule); }
}

/* ---------- signs grid ---------- */
.signs{
  display:grid; grid-template-columns:1fr 1fr;
  border-top:1px solid var(--rule); margin-top:clamp(38px,4vw,52px);
}
.sign{ padding:28px 0; border-bottom:1px solid var(--rule); }
.sign:nth-child(odd){ padding-right:clamp(20px,3vw,44px); }
.sign:nth-child(even){ padding-left:clamp(20px,3vw,44px); border-left:1px solid var(--rule); }
.sign h4{
  font-family:'Jost',sans-serif; font-size:16.5px; font-weight:500;
  color:var(--ink); margin:0 0 8px; line-height:1.45;
}
.sign p{ font-size:15.5px; line-height:1.7; color:var(--ink-soft); margin:0; }
.signs-note{ margin-top:34px; font-size:14.5px; color:var(--ink-mute); max-width:58ch; }
@media (max-width:820px){
  .signs{ grid-template-columns:1fr; }
  .sign:nth-child(odd), .sign:nth-child(even){ padding-left:0; padding-right:0; border-left:0; }
}

/* ---------- brand frame, a partner logo shown quietly ---------- */
.brandframe{
  background:var(--white); border:1px solid var(--rule); border-radius:var(--r-lg);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:clamp(30px,4vw,46px); padding:clamp(52px,7vw,100px) 24px;
}
.brandframe img{ width:min(260px,62%); height:auto; }

/* ---------- stat grid, animated counters ---------- */
.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--rule); }
.stat{ padding:clamp(30px,3.4vw,46px) 10px 28px; border-bottom:1px solid var(--rule); text-align:center; }
.stat + .stat{ border-left:1px solid var(--rule); }
.stat-num{
  font-family:'Cormorant Garamond',Georgia,serif; font-weight:500;
  font-size:clamp(32px,3.5vw,52px); line-height:1; color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.stat-lab{
  margin-top:14px; font-size:10.5px; font-weight:500; text-transform:uppercase;
  letter-spacing:.2em; color:var(--ink-mute);
}
.stat-note{ margin-top:34px; font-size:14.5px; color:var(--ink-mute); max-width:58ch; }
@media (max-width:820px){
  .stat-grid{ grid-template-columns:1fr 1fr; }
  .stat:nth-child(3){ border-left:0; }
}

/* ---------- qb band: the stats carry QbCheck's own colours ---------- */
.qb-band{ background:var(--qb-wash); }
.qb-band .stat-grid{ border-top-color:rgba(0,115,168,.22); }
.qb-band .stat{ border-bottom-color:rgba(0,115,168,.22); }
.qb-band .stat + .stat{ border-left-color:rgba(0,115,168,.22); }
.qb-band .stat-num{ color:var(--qb-blue); }

/* ---------- qb demo strip, the task abstracted to a pulse ---------- */
.qb-demo{ display:flex; gap:clamp(14px,2vw,24px); justify-content:center; }
.qb-demo span{
  width:13px; height:13px; border:1.5px solid var(--oat-deep); border-radius:50%;
  opacity:.45; animation:qbPulse 5.6s infinite;
}
.qb-demo span:nth-child(2),
.qb-demo span:nth-child(5),
.qb-demo span:nth-child(7){ border-radius:3px; }
.qb-demo span:nth-child(1){ animation-delay:0s; }
.qb-demo span:nth-child(2){ animation-delay:.7s; }
.qb-demo span:nth-child(3){ animation-delay:1.4s; }
.qb-demo span:nth-child(4){ animation-delay:2.1s; }
.qb-demo span:nth-child(5){ animation-delay:2.8s; }
.qb-demo span:nth-child(6){ animation-delay:3.5s; }
.qb-demo span:nth-child(7){ animation-delay:4.2s; }
.qb-demo span:nth-child(8){ animation-delay:4.9s; }
@keyframes qbPulse{
  0%, 12%, 100%{ background:transparent; opacity:.45; transform:scale(1); }
  5%{ background:var(--oat-deep); opacity:1; transform:scale(1.3); }
}

/* ---------- green callout band ---------- */
.callout{ background:var(--green); color:#dfe8e1; }
.callout .eyebrow{ color:var(--green-pale); }
.callout h2.display{ color:#f4f2ec; margin:24px 0 26px; }
.callout .lede{ color:#cbd6cd; margin-inline:auto; }

/* ---------- narrative prose ---------- */
.prose{ max-width:64ch; }
.prose p{ font-size:17px; line-height:1.85; color:var(--ink-soft); margin:0; }
.prose p + p{ margin-top:1.35em; }
.prose strong{ font-weight:500; color:var(--ink); }
.prose-more{ margin-top:38px; }

/* ---------- pull statement ---------- */
.statement{ background:var(--oat-tint); }
.statement .quote{
  font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; font-weight:300;
  font-size:clamp(26px,3.6vw,42px); line-height:1.38; color:var(--ink);
  max-width:24ch; margin:0 auto; text-wrap:balance;
}
.statement .attrib{
  margin-top:28px; font-size:10.5px; font-weight:500; text-transform:uppercase;
  letter-spacing:.22em; color:var(--oat-deep);
}

/* ---------- legal pages ---------- */
.legal{ max-width:720px; }
.legal h3{ margin:2.4em 0 0.7em; }
.legal p{ font-size:16.5px; line-height:1.8; color:var(--ink-soft); }
.legal .updated{
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-mute); margin-top:3em;
}

/* ---------- faq ---------- */
.faq-list{ border-top:1px solid var(--rule); max-width:860px; }
.faq-item{ padding:clamp(30px,3.6vw,44px) 0; border-bottom:1px solid var(--rule); }
.faq-item h3{ margin-bottom:14px; }
.faq-item p{ max-width:64ch; font-size:16.5px; line-height:1.8; color:var(--ink-soft); }
.faq-item p + p{ margin-top:1.2em; }

/* ---------- testimonials ---------- */
.quotes-head{ max-width:620px; margin:0 auto clamp(44px,5vw,64px); text-align:center; }
.quotes-head .eyebrow{ margin-bottom:24px; }
.quotes{
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(133,122,88,.32);
}
.quote-item{
  display:flex; flex-direction:column;
  padding:42px clamp(20px,2.6vw,38px) 38px;
}
.quote-item + .quote-item{ border-left:1px solid rgba(133,122,88,.32); }
.quote-text{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-style:italic; font-weight:300;
  font-size:clamp(19px,1.9vw,22px); line-height:1.55; color:var(--ink);
  margin:0;
}
.quote-attrib{
  margin-top:auto; padding-top:28px;
  font-size:10.5px; font-weight:500; text-transform:uppercase;
  letter-spacing:.2em; color:var(--oat-deep);
}
.quotes--two{ grid-template-columns:repeat(2,1fr); max-width:880px; margin-inline:auto; }
.quotes-foot{
  margin-top:38px; text-align:center;
  font-size:13.5px; color:var(--ink-mute);
}
@media (max-width:920px){
  .quotes{ grid-template-columns:1fr; }
  .quote-item + .quote-item{ border-left:0; border-top:1px solid rgba(133,122,88,.32); }
  .quote-item{ padding:34px 0 30px; }
}

/* ---------- about ---------- */
.about-grid{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr); gap:clamp(44px,6.5vw,92px); align-items:start; }
.about-portrait{ aspect-ratio:3/4; }
.about-grid > aside{ position:sticky; top:114px; }
.quals{ margin-top:48px; border-top:1px solid var(--ink); padding-top:30px; }
.quals .eyebrow{ margin-bottom:22px; }
.about-aside .eyebrow{ margin-bottom:22px; }
.cred{ border-bottom:1px solid var(--rule); padding:15px 0; font-size:15px; font-weight:400; color:var(--ink); line-height:1.6; }
.cred:last-child{ border-bottom:0; }
.about-body h2{ margin-bottom:32px; }
.about-body p{ font-weight:400; max-width:52ch; }

/* ---------- booking ---------- */
.booking{ margin-top:clamp(46px,5vw,66px); }
.booking-card{
  background:#fff; border-radius:var(--r-md); overflow:hidden;
  max-width:900px; margin:0 auto; text-align:left;
}
.booking-card iframe{ display:block; width:100%; height:720px; border:0; }
.booking-card .calendly-inline-widget{ min-width:320px; height:720px; }
.booking-fallback{ padding:54px 30px; text-align:center; }
.booking-fallback p{ font-size:15.5px; color:var(--ink-soft); max-width:42ch; margin:0 auto; }
.booking-btn{ margin-top:26px; }
.booking-fallback strong{ color:var(--ink); }
.booking-legal{
  margin-top:20px; font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--green-pale);
}
@media (max-width:600px){ .booking-card iframe,
  .booking-card .calendly-inline-widget{ height:960px; } }

/* ---------- close ---------- */
.close{ background:var(--green); color:#dfe8e1; }
.close h2.display{ color:#f4f2ec; }
.close .eyebrow{ color:var(--green-pale); }
.close .lede{ color:#cfdcd4; }
.close .rose--lg{ margin-bottom:34px; }
.contact{
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(255,255,255,.16); margin-top:clamp(56px,7vw,86px);
}
.contact div{ padding:34px 26px 0; }
.contact div + div{ border-left:1px solid rgba(255,255,255,.16); }
.contact .eyebrow{ margin-bottom:14px; }
.contact a,.contact span{
  font-size:15.5px; font-weight:400; color:#f4f2ec;
  text-decoration:none; line-height:1.6; word-break:break-word;
  border-bottom:1px solid transparent; transition:border-color .3s var(--ease);
}
.contact a:hover{ border-bottom-color:var(--green-pale); }

footer{ background:var(--green); color:var(--green-pale); padding:0 0 44px; }
.foot-links{
  display:flex; flex-wrap:wrap; gap:14px 30px; padding-bottom:26px;
}
.foot-links a{
  font-size:11.5px; font-weight:400; text-transform:uppercase; letter-spacing:.16em;
  color:var(--green-pale); text-decoration:none;
  border-bottom:1px solid transparent; padding-bottom:3px;
  transition:border-color .3s var(--ease),color .3s var(--ease);
}
.foot-links a:hover{ color:#f4f2ec; border-bottom-color:var(--green-pale); }

.foot-inner{
  border-top:1px solid rgba(255,255,255,.14); padding-top:26px;
  display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between;
  font-size:11.5px; letter-spacing:.06em;
}

/* ---------- reveal ---------- */
.rv{ opacity:0; transform:translateY(24px); transition:opacity 1s var(--ease),transform 1s var(--ease); }
.rv.in{ opacity:1; transform:none; }
.rv-d1{ transition-delay:.09s; } .rv-d2{ transition-delay:.18s; }
.rv-d3{ transition-delay:.27s; } .rv-d4{ transition-delay:.36s; }

/* ---------- responsive ---------- */
@media (max-width:920px){
  /* The nav stays visible on small screens. Most traffic arrives on a phone,
     often onto a deep page, and a header with no way out of it is a dead end. */
  .bar{ flex-direction:column; justify-content:center; gap:12px; height:auto; padding:16px 0 14px; }
  nav.links{ gap:22px; flex-wrap:wrap; justify-content:center; }
  nav.links a{ font-size:10px; letter-spacing:.14em; }
  .routes{ grid-template-columns:1fr; }
  .route + .route{ border-left:0; border-top:1px solid var(--rule); }
  .about-grid{ grid-template-columns:1fr; }
  .about-grid > aside{ position:static; }
  .st-grid{ grid-template-columns:repeat(2,1fr); row-gap:46px; }
  .st + .st{ border-left:0; }
  .st{ padding:0 12px; }
  .contact{ grid-template-columns:1fr; }
  .contact div + div{ border-left:0; border-top:1px solid rgba(255,255,255,.16); }
  .contact div{ padding:26px 0 22px; }
}
@media (max-width:600px){
  body{ font-size:16px; }
  .shell{ padding:0 24px; }
  .bar{ height:auto; }
  .brand img{ height:21px; }
  nav.links{ gap:18px; }
  nav.links a{ font-size:9.5px; letter-spacing:.11em; }
  .st-grid{ grid-template-columns:1fr; row-gap:38px; }
  .btn{ padding:17px 32px; width:100%; text-align:center; }
  .btn-row{ width:100%; }
  .inc-item{ grid-template-columns:46px 1fr; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .rv{ opacity:1; transform:none; transition:none; }
  .qb-demo span{ animation:none; }
}


/* ============================================================
   LAYOUT RULES THAT REPLACE INLINE STYLES
   Nothing in this project may carry a style="" attribute.
   If a page needs spacing, it gets a named rule here instead,
   so every page inherits the same decisions automatically.
   ============================================================ */
.svg-defs{ position:absolute; width:0; height:0; }
.band--flush{ padding:0; }

.hero .btn-row{ margin-top:48px; }

.inc-head > .eyebrow{ margin-bottom:26px; }
.about-body > .eyebrow{ margin-bottom:24px; }
.about-cta{ margin-top:44px; }


.close h2.display{ margin-top:24px; }
.close .lede{ margin-top:26px; }
.close .btn-row{ margin-top:38px; }
.contact{ text-align:left; }

.notfound h1.display{ margin:34px auto; }
.notfound .lede{ margin-bottom:48px; }
