/* ==========================================================================
   EvoQuest Sports Science - style.css
   Layers: 1 reset  2 tokens  3 base  4 layout  5 components  6 sections
   Palette contrast is verified - see tokens. Do not substitute colours.
   ========================================================================== */

/* ---------- 1. RESET ---------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
ul[class],ol[class]{list-style:none;margin:0;padding:0}
img,picture,svg,video{max-width:100%;display:block}
input,button,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit}
:where(h1,h2,h3,h4){text-wrap:balance}
:where(p,li){text-wrap:pretty}

/* ---------- 2. TOKENS --------------------------------------------------- */
:root{
  /* Brand core (Hexon Branding brand guidelines) */
  --orange:#F15B29;          /* Ignition Orange - the only accent hue */
  --slate:#545B63;           /* brand slate - LIGHT BACKGROUNDS ONLY (2.85:1 on dark) */
  --white:#FFFFFF;

  /* Accessible extensions */
  --orange-deep:#C4410F;     /* 5.11:1 both ways - small text + fills */
  --orange-lift:#FF7A45;     /* 7.57:1 on ink - orange text on dark */
  --ink:#0B0C0E;
  --panel:#14161A;
  --hairline:#232830;
  --paper:#F7F6F4;
  --paper-sunk:#EDEBE7;
  --paper-line:#E2DFDA;
  --mute-dark:#9AA1AA;       /* 7.50:1 on ink */
  --mute-light:#6B7280;      /* 4.83:1 on white */

  /* Functional data-viz only */
  --signal-good:#3FBF6A;
  --signal-watch:#E0A22B;

  /* Type */
  --f-display:"Saira Condensed","Saira","Arial Narrow",system-ui,sans-serif;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  /* Space (8px base) */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px;
  --s6:32px; --s7:48px; --s8:64px; --s9:96px; --s10:128px; --s11:160px;

  --wrap:1240px;
  --gutter:20px;
  --header-h:60px;
  --r-sm:4px; --r-md:10px; --r-pill:999px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
@media (min-width:1024px){:root{--gutter:40px;--header-h:72px}}

/* ---------- 3. BASE ----------------------------------------------------- */
body{
  font-family:var(--f-body);
  font-size:clamp(1rem,.97rem + .15vw,1.125rem);
  line-height:1.65;
  color:var(--paper);
  background:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,.h-display{
  font-family:var(--f-display);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:-.01em;
  line-height:1;
}
h1{font-size:clamp(2.5rem,1.7rem + 3.4vw,4.5rem)}
h2{font-size:clamp(2rem,1.5rem + 2.5vw,3.5rem);line-height:1.02}
h3{font-size:clamp(1.375rem,1.2rem + .9vw,2rem);line-height:1.08}
/* Use where the correct heading LEVEL is h2 but the visual weight is h3. */
.h-sm{font-size:clamp(1.375rem,1.2rem + .9vw,2rem);line-height:1.08}
p{max-width:68ch}
a{text-decoration-thickness:1px;text-underline-offset:3px}

:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:2px}
[id]{scroll-margin-top:calc(var(--header-h) + 24px)}

.eyebrow{
  font-family:var(--f-display);font-weight:600;text-transform:uppercase;
  letter-spacing:.16em;font-size:.8125rem;color:var(--orange);
  margin-bottom:var(--s4);display:block;line-height:1.3;
}
.num{font-family:var(--f-display);font-weight:700;font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{
  position:absolute;left:var(--s4);top:-100px;z-index:200;background:var(--orange-deep);
  color:#fff;padding:var(--s3) var(--s5);border-radius:var(--r-sm);font-weight:600;
  transition:top .15s var(--ease);
}
.skip-link:focus{top:var(--s4)}

/* Visible placeholder token - impossible to miss in review */
.ctaband .ph{border-color:rgba(255,255,255,.75);background:rgba(0,0,0,.18);color:#fff}
.ph{
  border:1px dashed var(--orange);background:rgba(241,91,41,.12);
  padding:0 .35em;border-radius:3px;font-style:normal;
  overflow-wrap:anywhere;   /* long tokens must never blow out a 360px layout */
}

/* ---------- 4. LAYOUT --------------------------------------------------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-narrow{max-width:820px}
.section{padding-block:72px}
@media (min-width:768px){.section{padding-block:var(--s9)}}
@media (min-width:1024px){.section{padding-block:var(--s10)}}
.section--tight{padding-block:var(--s8)}
.on-dark{background:var(--ink);color:var(--paper)}
.on-panel{background:var(--panel);color:var(--paper)}
.on-light{background:var(--paper);color:var(--ink)}
.on-light-sunk{background:var(--paper-sunk);color:var(--ink)}
.on-light p{color:#3B4048}
.on-dark .lead,.on-panel .lead{color:var(--mute-dark)}
.on-light .lead{color:var(--mute-light)}
.lead{font-size:clamp(1.0625rem,1rem + .3vw,1.25rem)}
.on-light .eyebrow{color:var(--orange-deep)}

.grid{display:grid;gap:var(--s5)}
.g-2,.g-3,.g-4{grid-template-columns:1fr}
@media (min-width:520px){.g-3,.g-4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:768px){.g-2{grid-template-columns:repeat(2,1fr)}}
@media (min-width:900px){.g-3{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.g-4{grid-template-columns:repeat(4,1fr)}}
.stack>*+*{margin-top:var(--s4)}
.stack-lg>*+*{margin-top:var(--s6)}
.section-head{max-width:760px;margin-bottom:var(--s8)}
.section-head h1,.section-head h2{margin-bottom:var(--s4)}
.ctaband .section-head h2{margin-bottom:var(--s4)}

/* ---------- 5. COMPONENTS ---------------------------------------------- */

/* --- Buttons --- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
  font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;font-size:1.0625rem;line-height:1;
  padding:18px var(--s6);min-height:52px;border-radius:var(--r-sm);
  text-decoration:none;text-align:center;
  transition:background-color .15s var(--ease),transform .15s var(--ease),color .15s var(--ease);
}
/* White-on-orange is 3.35:1 => only legal as LARGE text: >=17px + 700 weight. Locked above. */
.btn--primary{background:var(--orange);color:#fff}
.btn--primary:hover{background:var(--orange-deep);transform:translateY(-1px)}
.btn--primary:active{transform:translateY(0)}
.btn--ghost{background:transparent;color:var(--paper);border:1px solid var(--hairline)}
.btn--ghost:hover{border-color:var(--orange);color:var(--orange-lift)}
.on-light .btn--ghost{color:var(--ink);border-color:var(--paper-line)}
.on-light .btn--ghost:hover{border-color:var(--orange-deep);color:var(--orange-deep)}
.btn--block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}

/* The offer ladder: primary + the permanent de-risking secondary beneath it */
.cta-stack{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s3)}
.cta-stack .btn{width:100%}
@media (min-width:560px){.cta-stack .btn{width:auto}}
.cta-micro{font-size:.875rem;color:var(--mute-dark);margin:0}
.on-light .cta-micro{color:var(--mute-light)}
.cta-second{
  font-family:var(--f-body);font-weight:600;font-size:.9375rem;
  color:var(--orange-lift);text-decoration:underline;
}
.on-light .cta-second{color:var(--orange-deep)}

/* --- Header --- */
.header{
  position:sticky;top:0;z-index:100;height:var(--header-h);
  background:rgba(11,12,14,.92);border-bottom:1px solid var(--hairline);
  backdrop-filter:saturate(140%) blur(10px);
}
.header__in{display:flex;align-items:center;gap:var(--s5);height:100%}
.header__logo{display:flex;align-items:center;flex:0 0 auto}
.header__logo img{height:30px;width:auto}
@media (min-width:1024px){.header__logo img{height:36px}}
.header__nav{display:none;margin-left:auto}
.header__cta{display:none}
@media (min-width:1024px){
  .header__nav{display:flex;align-items:center;gap:var(--s6)}
  .header__cta{display:inline-flex;margin-left:var(--s6)}
  .header__cta.btn{min-height:44px;padding:14px var(--s5);font-size:.9375rem}
}
.header__nav a{
  text-decoration:none;font-weight:500;font-size:.9375rem;color:var(--mute-dark);
  transition:color .15s var(--ease);
}
.header__nav a:hover,.header__nav a[aria-current="page"]{color:var(--paper)}
.header__nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--orange)}
.burger{
  margin-left:auto;display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border:1px solid var(--hairline);border-radius:var(--r-sm);
}
@media (min-width:1024px){.burger{display:none}}
.burger span{display:block;width:18px;height:2px;background:var(--paper);position:relative}
.burger span::before,.burger span::after{
  content:"";position:absolute;left:0;width:18px;height:2px;background:var(--paper);
}
.burger span::before{top:-6px}.burger span::after{top:6px}

.mobilenav{
  position:fixed;inset:0;z-index:150;background:var(--ink);
  display:flex;flex-direction:column;padding:var(--s5) var(--gutter) var(--s7);
  transform:translateY(-8px);opacity:0;visibility:hidden;
  transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;
}
.mobilenav[data-open="true"]{opacity:1;visibility:visible;transform:none}
.mobilenav__top{display:flex;align-items:center;justify-content:space-between;
  height:var(--header-h);margin-bottom:var(--s6)}
.mobilenav__top img{height:30px;width:auto}
.mobilenav__close{width:44px;height:44px;border:1px solid var(--hairline);
  border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center}
.mobilenav__links{display:flex;flex-direction:column;gap:var(--s2);overflow-y:auto}
.mobilenav__links a{
  font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  font-size:1.75rem;text-decoration:none;padding:var(--s3) 0;
  border-bottom:1px solid var(--hairline);
}
.mobilenav__foot{margin-top:auto;padding-top:var(--s6)}

/* --- Mobile sticky CTA bar --- */
.stickybar{
  position:fixed;left:0;right:0;bottom:0;z-index:90;
  background:rgba(11,12,14,.96);border-top:1px solid var(--hairline);
  backdrop-filter:blur(10px);padding:var(--s3) var(--gutter)
    calc(var(--s3) + env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:var(--s3);
  transform:translateY(110%);transition:transform .25s var(--ease);
}
.stickybar[data-show="true"]{transform:none}
.stickybar .btn{flex:1;min-height:48px;font-size:.9375rem;padding-inline:var(--s4)}
.stickybar__x{
  flex:0 0 auto;width:40px;height:40px;display:inline-flex;align-items:center;
  justify-content:center;color:var(--mute-dark);border:1px solid var(--hairline);
  border-radius:var(--r-sm);
}
@media (min-width:1024px){.stickybar{display:none}}
body[data-stickybar="true"]{padding-bottom:88px}
@media (min-width:1024px){body[data-stickybar="true"]{padding-bottom:0}}

/* --- Hero --- */
.hero{position:relative;display:flex;align-items:flex-end;
  min-height:80svh;padding-block:var(--s8) var(--s7);overflow:hidden}
@media (min-width:768px){.hero{min-height:86svh;padding-block:var(--s9) var(--s8)}}
@media (min-width:1024px){.hero{min-height:92vh;align-items:center}}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media picture,.hero__media img{width:100%;height:100%;display:block}
.hero__media img{object-fit:cover;object-position:center 28%}
.hero__scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(11,12,14,.97) 18%,rgba(11,12,14,.72) 55%,rgba(11,12,14,.45) 100%)}
@media (min-width:1024px){
  .hero__scrim{background:linear-gradient(100deg,rgba(11,12,14,.96) 30%,rgba(11,12,14,.78) 52%,rgba(11,12,14,.34) 100%)}
}
.hero__in{position:relative;z-index:2;width:100%}
.hero__copy{max-width:730px}
.hero h1{margin-bottom:var(--s5)}
.hero .lead{margin-bottom:var(--s5);color:#D8DBDF}
@media (min-width:768px){.hero .lead{margin-bottom:var(--s6)}}
.hero__trust{margin-top:var(--s5);font-size:.875rem;color:var(--mute-dark);
  display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:center}
/* --- Photography ------------------------------------------------------- */
.card__media{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;
  background:#101316;display:block}
.card__media--wide{aspect-ratio:16/10}

/* Programme page hero: copy beside an art-directed portrait */
.prog-hero{display:grid;gap:var(--s7);align-items:center}
.prog-hero__media{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;
  border-radius:var(--r-md);background:#101316}
/* Below 768 the portrait source is cropped to a banner so it cannot dominate. */
@media (max-width:767px){.prog-hero__media{aspect-ratio:5/4;object-position:center 28%}}
@media (min-width:768px){
  .prog-hero{grid-template-columns:1fr .82fr;gap:var(--s6)}
  .prog-hero__media{aspect-ratio:3/4}
}
@media (min-width:1024px){.prog-hero{grid-template-columns:1fr .78fr;gap:var(--s7)}}

/* Testing & technology: alternating photo / explanation rows */
.test-row{display:grid;gap:var(--s6);margin-bottom:var(--s9);align-items:center}
.test-row__media{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
  border-radius:var(--r-md);background:#101316}
@media (min-width:768px){
  .test-row{grid-template-columns:.85fr 1fr;gap:var(--s7)}
  .test-row:nth-child(even) .test-row__img{order:2}
}

/* --- Video player ------------------------------------------------------
   Click-to-play only: preload="none" + a poster, so a page costs nothing
   until somebody actually asks for the film. The <video> is injected on
   first click by video.js, which is why the poster lives on a <button>. */
.vid{position:relative;margin:0;background:#101316;border-radius:var(--r-md);
  overflow:hidden;isolation:isolate}
.vid__frame{position:relative;width:100%;aspect-ratio:16/9;display:block}
.vid__poster{position:absolute;inset:0;width:100%;height:100%;padding:0;
  border:0;cursor:pointer;display:block;background:#101316}
.vid__poster img{width:100%;height:100%;object-fit:cover}
.vid__poster::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,12,14,.12) 0%,rgba(11,12,14,.55) 100%)}
.vid__play{position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:2;
  width:74px;height:74px;border-radius:var(--r-pill);background:var(--orange);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 34px rgba(11,12,14,.45);
  transition:scale .2s var(--ease),background .2s var(--ease)}
.vid__play svg{width:26px;height:26px;fill:#fff;margin-left:4px}
.vid__poster:hover .vid__play{scale:1.07;background:var(--orange-deep)}
.vid__poster:focus-visible{outline:3px solid var(--orange-lift);outline-offset:3px}
.vid__label{position:absolute;left:var(--s5);bottom:var(--s5);z-index:2;
  text-align:left;max-width:min(30ch,72%)}
.vid__label b{display:block;font-family:var(--f-display);font-weight:700;
  text-transform:uppercase;letter-spacing:.02em;font-size:1.0625rem;
  line-height:1.2;color:#fff}
.vid__label span{display:block;margin-top:6px;font-size:.8125rem;
  letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  background:#101316}
.vid__cap{margin-top:var(--s3);font-size:.8125rem;color:var(--mute-dark)}
.on-light .vid__cap{color:var(--mute-light)}
@media (min-width:768px){
  .vid__play{width:88px;height:88px}
  .vid__play svg{width:31px;height:31px}
  .vid__label b{font-size:1.25rem}
}

/* Full-bleed film section (homepage + about) */
.filmwrap{max-width:1040px;margin-inline:auto}

/* CTA band light-trail texture, screened over the orange */
.ctaband{position:relative;overflow:hidden;isolation:isolate}
.ctaband__tex{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url("/assets/img/texture-cta-768.webp");
  background-size:cover;background-position:center right;
  mix-blend-mode:soft-light;opacity:.5;
}
@media (min-width:768px){.ctaband__tex{background-image:url("/assets/img/texture-cta-1200.webp")}}
@media (min-width:1400px){.ctaband__tex{background-image:url("/assets/img/texture-cta-1536.webp")}}

/* --- Cards --- */
.card{
  background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);
  overflow:hidden;display:flex;flex-direction:column;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  transition:transform .25s var(--ease),border-color .25s var(--ease);
}
.on-light .card{background:#fff;border-color:var(--paper-line);
  box-shadow:0 1px 2px rgba(11,12,14,.06),0 8px 24px rgba(11,12,14,.05)}
.card__body{padding:var(--s5);display:flex;flex-direction:column;gap:var(--s3);flex:1}
.card h3{margin-bottom:var(--s1)}
.card__link{
  margin-top:auto;font-weight:600;font-size:.9375rem;color:var(--orange-lift);
  text-decoration:none;display:inline-flex;align-items:center;gap:6px;
}
.on-light .card__link{color:var(--orange-deep)}
.card__link::after{content:"";width:14px;height:1px;background:currentColor;
  transition:width .2s var(--ease)}
.card-link{text-decoration:none;color:inherit;display:flex}
.card-link:hover .card,.card-link:focus-visible .card{
  transform:translateY(-4px);border-color:var(--orange)}
.card-link:hover .card__link::after{width:24px}

/* --- Proof strip --- */
.proof{display:flex;gap:var(--s6);overflow-x:auto;padding-block:var(--s5);
  scrollbar-width:none}
.proof::-webkit-scrollbar{display:none}
.proof__item{flex:0 0 auto;min-width:150px}
.proof__n{font-family:var(--f-display);font-weight:700;font-size:2.25rem;
  line-height:1;color:var(--orange-deep);font-variant-numeric:tabular-nums}
.proof__l{font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--mute-light);margin-top:6px}
@media (min-width:768px){.proof{justify-content:space-between;overflow:visible}}

/* --- Method steps --- */
.steps{counter-reset:step;display:grid;gap:var(--s5)}
@media (min-width:600px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.steps{grid-template-columns:repeat(4,1fr);gap:var(--s6)}}
.step{position:relative;padding-top:var(--s5);border-top:2px solid var(--hairline)}
.step::before{
  counter-increment:step;content:"0" counter(step);
  font-family:var(--f-display);font-weight:700;font-size:.9375rem;
  color:var(--orange);letter-spacing:.1em;display:block;margin-bottom:var(--s3);
}
.step h3{margin-bottom:var(--s3)}
.step p{font-size:.9375rem;color:var(--mute-dark)}

/* --- Stat row --- */
.stats{display:flex;gap:var(--s7);flex-wrap:wrap}
.stat__n{font-family:var(--f-display);font-weight:700;font-size:2rem;line-height:1;
  color:var(--orange);font-variant-numeric:tabular-nums}
.stat__l{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--mute-dark);margin-top:6px}
.on-light .stat__n{color:var(--orange-deep)}
.on-light .stat__l{color:var(--mute-light)}


/* Long placeholder tokens must not blow out the stat row during review. */
.stat__n .ph,.proof__n .ph{font-size:.8125rem;font-family:var(--f-body);font-weight:500;
  letter-spacing:0;text-transform:none}
.stats{gap:var(--s6) var(--s7)}

/* --- Accordion (native details) --- */
.acc{border-top:1px solid var(--hairline)}
.on-light .acc{border-color:var(--paper-line)}
.acc__item{border-bottom:1px solid var(--hairline)}
.on-light .acc__item{border-color:var(--paper-line)}
.acc__item summary{
  list-style:none;cursor:pointer;padding:var(--s5) 44px var(--s5) 0;position:relative;
  font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  font-size:1.125rem;line-height:1.2;
}
.acc__item summary::-webkit-details-marker{display:none}
.acc__item summary::after{
  content:"";position:absolute;right:8px;top:50%;width:14px;height:14px;
  margin-top:-7px;border-right:2px solid var(--orange);border-bottom:2px solid var(--orange);
  transform:rotate(45deg) translateY(-25%);transition:transform .2s var(--ease);
}
.acc__item[open] summary::after{transform:rotate(-135deg) translateY(-25%)}
.acc__item summary:hover{color:var(--orange-lift)}
.on-light .acc__item summary:hover{color:var(--orange-deep)}
.acc__body{padding-bottom:var(--s5)}
.acc__body p{font-size:.9375rem;color:var(--mute-dark)}
.on-light .acc__body p{color:var(--mute-light)}

/* --- Two-column compare (for / not for) --- */
.compare{display:grid;gap:var(--s5)}
@media (min-width:768px){.compare{grid-template-columns:1fr 1fr;gap:var(--s7)}}
.compare ul{display:flex;flex-direction:column;gap:var(--s3)}
.compare li{display:flex;gap:var(--s3);font-size:.9375rem;line-height:1.55}
.compare li svg{flex:0 0 auto;margin-top:3px}

/* --- Booking card --- */
.bookcard{
  background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);
  padding:var(--s6);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
@media (min-width:1024px){.bookcard{position:sticky;top:calc(var(--header-h) + 24px)}}

/* --- Forms --- */
.form{display:flex;flex-direction:column;gap:var(--s5)}
.field{display:flex;flex-direction:column;gap:var(--s2)}
.field label{font-size:.875rem;font-weight:600;letter-spacing:.01em}
.field .hint{font-size:.8125rem;color:var(--mute-dark)}
.on-light .field .hint{color:var(--mute-light)}
.field input[type=text],.field input[type=email],.field input[type=tel],
.field input[type=number],.field select,.field textarea{
  width:100%;background:#0E1013;border:1px solid var(--hairline);
  border-radius:var(--r-sm);padding:14px var(--s4);font-size:16px;color:var(--paper);
  transition:border-color .15s var(--ease);min-height:50px;
}
.on-light .field input,.on-light .field select,.on-light .field textarea{
  background:#fff;border-color:var(--paper-line);color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--orange);outline:2px solid var(--orange);outline-offset:1px}
.field input[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:var(--orange-deep)}
.field .err{
  font-size:.8125rem;color:var(--orange-lift);display:none;align-items:center;gap:6px;
}
.on-light .field .err{color:var(--orange-deep)}
.field .err[data-show="true"]{display:flex}
.check{display:flex;gap:var(--s3);align-items:flex-start;font-size:.875rem;line-height:1.5}
.check input{flex:0 0 auto;width:20px;height:20px;margin-top:2px;accent-color:var(--orange)}
.form__divider{border:0;border-top:1px solid var(--hairline);margin:0}
.on-light .form__divider{border-color:var(--paper-line)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__status{font-size:.875rem}
.form__status[data-state="error"]{color:var(--orange-lift)}

/* --- CTA band --- */
.ctaband{background:var(--orange-deep);color:#fff}
.ctaband .eyebrow{color:rgba(255,255,255,.85)}
.ctaband .lead{color:rgba(255,255,255,.92)}
.ctaband .btn--primary{background:#fff;color:var(--orange-deep)}
.ctaband .btn--primary:hover{background:var(--ink);color:#fff}
.ctaband .cta-second,.ctaband .cta-micro{color:rgba(255,255,255,.92)}

/* --- Breadcrumbs --- */
.crumbs{font-size:.8125rem;color:var(--mute-dark);padding-block:var(--s5) 0}
.crumbs ol{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;
  list-style:none;padding:0;margin:0}
.crumbs a{text-decoration:none;color:var(--mute-dark)}
.crumbs a:hover{color:var(--orange-lift)}
.crumbs li+li::before{content:"/";margin-right:var(--s2);color:var(--hairline)}

/* --- Footer --- */
.footer{background:#08090B;border-top:1px solid var(--hairline);
  padding-block:var(--s9) var(--s7)}
.footer__grid{display:grid;gap:var(--s7)}
@media (min-width:560px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.footer__grid{grid-template-columns:1.6fr 1fr 1fr 1.4fr}}
.footer .foot-h{font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  font-size:.875rem;letter-spacing:.12em;color:var(--paper);margin-bottom:var(--s4);line-height:1.3}
.footer ul{display:flex;flex-direction:column;gap:var(--s3)}
.footer a{color:var(--mute-dark);text-decoration:none;font-size:.9375rem}
.footer a:hover{color:var(--orange-lift)}
.footer__logo img{height:34px;width:auto;margin-bottom:var(--s4)}
.footer__bottom{margin-top:var(--s8);padding-top:var(--s5);
  border-top:1px solid var(--hairline);display:flex;flex-wrap:wrap;gap:var(--s4);
  justify-content:space-between;font-size:.8125rem;color:var(--mute-dark)}
.footer__bottom ul{flex-direction:row;flex-wrap:wrap;gap:var(--s5)}

/* --- Cookie banner --- */
.cookie{
  position:fixed;left:var(--s4);right:var(--s4);bottom:calc(var(--s4) + 76px);z-index:120;
  background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);
  padding:var(--s5);display:none;gap:var(--s4);flex-direction:column;
  box-shadow:0 18px 50px rgba(0,0,0,.55);
}
.cookie[data-show="true"]{display:flex}
@media (min-width:768px){
  .cookie{left:auto;right:var(--s5);bottom:var(--s5);max-width:420px}
}
.cookie p{font-size:.875rem;color:var(--mute-dark);margin:0}
.cookie__row{display:flex;gap:var(--s3)}
.cookie__row .btn{flex:1;min-height:46px;font-size:.9375rem;padding-inline:var(--s4)}

/* --- Reveal on scroll --- */
.reveal{opacity:0;transform:translateY(16px);
  transition:opacity .4s var(--ease),transform .4s var(--ease)}
.reveal[data-in="true"]{opacity:1;transform:none}

/* --- Notice / callout --- */
.notice{
  border-left:3px solid var(--orange);background:rgba(241,91,41,.08);
  padding:var(--s4) var(--s5);border-radius:0 var(--r-sm) var(--r-sm) 0;
  font-size:.9375rem;
}
.notice p{color:var(--mute-dark);margin:0}
.on-light .notice p{color:#4B5058}

/* ---------- 6. REDUCED MOTION ------------------------------------------ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;
  }
  .reveal{opacity:1;transform:none}
}

/* ==========================================================================
   7. V2 COMPONENTS (2026-09-25 restructure)
   ========================================================================== */
@media (min-width:1024px) and (max-width:1199px){.header__nav{gap:var(--s5)}}

/* --- Tabs (ARIA tablist; app.js initTabs) --- */
.tabbar{display:flex;gap:var(--s2);overflow-x:auto;scrollbar-width:none;
  padding-bottom:var(--s2);margin-bottom:var(--s6);-webkit-overflow-scrolling:touch}
.tabbar::-webkit-scrollbar{display:none}
.tab{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:var(--s2);min-width:104px;min-height:52px;padding:var(--s3) var(--s4);
  border:1px solid var(--hairline);border-radius:var(--r-sm);background:transparent;
  font-family:var(--f-display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  font-size:.875rem;line-height:1.2;color:var(--mute-dark);text-align:center;
  transition:border-color .15s var(--ease),color .15s var(--ease),background .15s var(--ease)}
.tab small{display:block;font-size:.75rem;letter-spacing:.14em;color:var(--orange-lift);
  font-weight:600;margin-bottom:2px}
.tab:hover{color:var(--paper);border-color:#3a414b}
.tab[aria-selected="true"]{color:#fff;border-color:var(--orange);background:rgba(241,91,41,.12);
  box-shadow:inset 0 -3px 0 var(--orange)}
.tabs--light .tab{border-color:var(--paper-line);color:var(--mute-light);background:#fff}
.tabs--light .tab small{color:var(--orange-deep)}
.tabs--light .tab:hover{color:var(--ink);border-color:#cfcac3}
.tabs--light .tab[aria-selected="true"]{color:var(--ink);border-color:var(--orange-deep);
  background:#fff;box-shadow:inset 0 -3px 0 var(--orange-deep)}
@media (min-width:900px){
  .tabbar--grid{display:grid;grid-template-columns:repeat(var(--n),1fr);overflow:visible}
  .tabbar--grid .tab{min-width:0}
}
.tabpanel:focus-visible{outline:2px solid var(--orange);outline-offset:6px}
.tabpanel[hidden]{display:none}

/* --- Lab window: film + explanation --- */
.lab__panel{display:grid;gap:var(--s6);align-items:center}
@media (min-width:900px){.lab__panel{grid-template-columns:1.45fr 1fr;gap:var(--s7)}}
/* tabs with several tools: copy on top, one film per tool underneath */
@media (min-width:900px){.lab__panel--multi{grid-template-columns:1fr;gap:var(--s6)}}
.lab__panel--multi .lab__copy{max-width:72ch}
.lab__films{display:grid;gap:var(--s5)}
.lab__films>*{min-width:0}
@media (min-width:600px){.lab__films{grid-template-columns:repeat(2,1fr)}}
@media (min-width:900px){.lab__films--3{grid-template-columns:repeat(3,1fr)}}
.lab__films .vid__cap{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.06em;
  font-size:.875rem;font-weight:700;color:var(--orange-lift)}
.on-light .lab__films .vid__cap{color:var(--orange-deep)}
@media (min-width:600px){.lab__films .vid__play{width:60px;height:60px}
  .lab__films .vid__play svg{width:22px;height:22px}
  .lab__films .vid__label{left:var(--s4);bottom:var(--s4)}
  .lab__films .vid__label b{font-size:.9375rem}
  .lab__films .vid__label span{font-size:.6875rem}}
.lab__copy h3{margin-bottom:var(--s4)}
.lab__copy p{color:var(--mute-dark);font-size:1rem}
.on-light .lab__copy p{color:var(--mute-light)}
.lab__how{margin-top:var(--s4);font-size:.9375rem;color:var(--mute-dark)}
.lab__how b{display:block;font-family:var(--f-display);text-transform:uppercase;
  letter-spacing:.12em;font-size:.75rem;color:var(--orange-lift);margin-bottom:4px}
.on-light .lab__how{color:var(--mute-light)}
.on-light .lab__how b{color:var(--orange-deep)}

/* --- Flow (A -> B -> C) --- */
.flow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}
.flow__node{font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.125rem,1rem + .8vw,1.625rem);line-height:1.1;padding:var(--s3) var(--s5);
  border:1px solid var(--hairline);border-radius:var(--r-sm)}
.on-light .flow__node{border-color:var(--paper-line);background:#fff;color:var(--ink)}
.flow__arrow{color:var(--orange);flex:0 0 auto}

/* --- Problem quotes --- */
.quotes{border-top:1px solid var(--paper-line)}
.qrow{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;
  gap:var(--s2) var(--s6);padding:var(--s5) 0;border-bottom:1px solid var(--paper-line)}
.qrow__said{font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.375rem,1.1rem + 1.2vw,2.25rem);line-height:1.05;color:var(--ink)}
.qrow__ask{font-size:1rem;color:var(--mute-light)}
.kicker{margin-top:var(--s7);font-family:var(--f-display);font-weight:700;
  text-transform:uppercase;letter-spacing:.02em;font-size:clamp(1.125rem,1rem + .6vw,1.5rem);
  color:var(--orange-deep);max-width:none}
.on-light p.kicker{color:var(--orange-deep)}
.kicker--dark{color:var(--orange-lift)}

/* --- Key/value list (report descriptors, reasons, placement factors) --- */
.kvs{display:grid;gap:0;border-top:1px solid var(--hairline)}
.on-light .kvs{border-color:var(--paper-line)}
.kv{padding:var(--s4) 0;border-bottom:1px solid var(--hairline);display:flex;
  flex-direction:column;gap:4px}
.on-light .kv{border-color:var(--paper-line)}
.kv b{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.1em;
  font-size:.8125rem;color:var(--orange-lift)}
.on-light .kv b{color:var(--orange-deep)}
.kv span{font-size:.9375rem;color:var(--mute-dark)}
.on-light .kv span{color:#3B4048}
@media (min-width:768px){
  .kvs--4{grid-template-columns:repeat(2,1fr);column-gap:var(--s7)}
}
@media (min-width:1100px){.kvs--4{grid-template-columns:repeat(4,1fr);column-gap:var(--s6)}}

/* --- Report preview (real percentile profile) --- */
.report{display:grid;gap:var(--s7)}
@media (min-width:900px){.report{grid-template-columns:1.1fr 1fr;align-items:start}}
.report__img{margin-bottom:var(--s5)}
.report__img img{border-radius:var(--r-md)}
.pcard{background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);
  padding:var(--s5)}
@media (min-width:768px){.pcard{padding:var(--s6)}}
.pcard__top{display:flex;justify-content:space-between;gap:var(--s4);
  font-family:var(--f-display);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;
  color:var(--mute-dark);padding-bottom:var(--s4);margin-bottom:var(--s4);
  border-bottom:1px solid var(--hairline)}
.pbar{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:6px var(--s3);
  align-items:center;margin-bottom:var(--s4)}
.pbar__l{grid-column:1 / -1;font-size:.875rem;color:var(--paper)}
.pbar__t{height:8px;background:#232830;border-radius:var(--r-pill);overflow:hidden}
.pbar__f{display:block;height:100%;background:var(--orange);border-radius:var(--r-pill)}
.pbar__v{font-family:var(--f-display);font-weight:700;font-size:1.125rem;text-align:right;
  color:var(--orange-lift);font-variant-numeric:tabular-nums}
.pbar__v small{font-size:.6875rem;margin-left:1px}
.pcard__pri{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--hairline)}
.pcard__k{display:block;font-family:var(--f-display);text-transform:uppercase;
  letter-spacing:.12em;font-size:.75rem;color:var(--mute-dark);margin-bottom:var(--s3)}
.pcard__row{display:flex;gap:var(--s3);font-size:.9375rem;padding:6px 0}
.pcard__row b{font-family:var(--f-display);color:var(--orange-lift)}
.pcard__src{margin-top:var(--s4);font-size:.75rem;color:var(--mute-dark)}

/* --- Return-to-performance USP band --- */
.usp__in{display:grid;gap:var(--s7);align-items:center}
@media (min-width:1024px){.usp__in{grid-template-columns:1fr 1.05fr}}
.usp__in>div:only-child{max-width:860px}
@media (min-width:1024px){.usp__in:has(>div:only-child){grid-template-columns:1fr}}
.usp__h{font-size:clamp(2rem,1.4rem + 2.8vw,3.75rem)}
.usp__h span{color:var(--orange)}

/* --- ESSA / lead practitioner --- */
.essa{display:grid;gap:var(--s7);align-items:center}
@media (min-width:900px){.essa{grid-template-columns:1fr 1fr}}
.essa img{border-radius:var(--r-md)}

/* --- Two-up split with rule --- */
.split{display:grid;border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line)}
.split>div{padding:var(--s5) 0}
.split>div+div{border-top:1px solid var(--paper-line)}
@media (min-width:768px){
  .split{grid-template-columns:1fr 1fr}
  .split>div{padding:var(--s6) var(--s6) var(--s6) 0}
  .split>div+div{border-top:0;border-left:1px solid var(--paper-line);padding-left:var(--s6)}
}

/* --- Data table (intentional horizontal scroller on phones) --- */
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--paper-line);
  border-radius:var(--r-md);background:#fff}
.dtable{width:100%;border-collapse:collapse;min-width:560px;font-size:.9375rem;color:var(--ink)}
.dtable caption{caption-side:top;text-align:left;padding:var(--s4) var(--s5);
  font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mute-light);
  border-bottom:1px solid var(--paper-line)}
.dtable th,.dtable td{padding:var(--s3) var(--s5);text-align:left;
  border-bottom:1px solid var(--paper-line);vertical-align:top}
.dtable thead th{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.1em;
  font-size:.75rem;color:var(--mute-light);font-weight:700}
.dtable tbody th{font-weight:600}
.dtable td{font-variant-numeric:tabular-nums}
.dtable td.up{color:var(--orange-deep);font-weight:700}
.dtable tr:last-child th,.dtable tr:last-child td{border-bottom:0}
.on-dark .tablewrap,.on-panel .tablewrap{background:var(--panel);border-color:var(--hairline)}
.on-dark .dtable,.on-panel .dtable{color:var(--paper)}
.on-dark .dtable caption,.on-panel .dtable caption,
.on-dark .dtable thead th,.on-panel .dtable thead th{color:var(--mute-dark);border-color:var(--hairline)}
.on-dark .dtable th,.on-dark .dtable td,.on-panel .dtable th,.on-panel .dtable td{border-color:var(--hairline)}
.on-dark .dtable td.up,.on-panel .dtable td.up{color:var(--orange-lift)}
.dtable--dark td{color:var(--mute-dark)}

/* --- Case cards + pull quote --- */
.case__body{font-size:1rem;line-height:1.55;color:var(--paper)}
.case__note{font-size:.8125rem;color:var(--mute-dark)}
.pull{margin:0;padding-left:var(--s5);border-left:3px solid var(--orange)}
.pull p{font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.375rem,1.15rem + 1vw,2rem);line-height:1.12;color:var(--paper)}
.pull footer{margin-top:var(--s4);font-size:.875rem;color:var(--mute-dark)}

/* --- Integrated performance + pathway panels --- */
.int__panel,.pw{display:grid;gap:var(--s6);align-items:center}
@media (min-width:900px){.int__panel{grid-template-columns:1fr 1fr;gap:var(--s7)}}
.int__panel img{border-radius:var(--r-md)}
.pw{background:#fff;border:1px solid var(--paper-line);border-radius:var(--r-md);
  padding:var(--s5);align-items:start}
@media (min-width:768px){.pw{padding:var(--s7)}}
@media (min-width:900px){.pw{grid-template-columns:1.25fr 1fr;gap:var(--s7)}}
.pw__side{border-top:1px solid var(--paper-line);padding-top:var(--s5)}
@media (min-width:900px){.pw__side{border-top:0;border-left:1px solid var(--paper-line);
  padding:0 0 0 var(--s6)}}
.pw .card__link{color:var(--orange-deep)}

/* --- Programme placement --- */
.place{display:grid;gap:var(--s7)}
@media (min-width:900px){.place{grid-template-columns:.8fr 1.2fr;align-items:start}}
.steps--light .step{border-color:var(--paper-line)}
.steps--light .step p{color:var(--mute-light)}
.steps--light .step::before{color:var(--orange-deep)}
@media (min-width:1024px){.steps--5{grid-template-columns:repeat(5,1fr);gap:var(--s5)}}

/* --- Decision guide --- */
.decide{border-top:1px solid var(--paper-line)}
.decide__row{display:grid;grid-template-columns:1fr auto;gap:4px var(--s4);align-items:center;
  padding:var(--s5) 0;border-bottom:1px solid var(--paper-line);text-decoration:none;
  color:var(--ink)}
.decide__row span{font-size:1.0625rem;font-weight:500}
.decide__row b{grid-column:1;font-family:var(--f-display);text-transform:uppercase;
  letter-spacing:.1em;font-size:.8125rem;color:var(--orange-deep)}
.decide__row svg{grid-column:2;grid-row:1 / span 2;color:var(--orange-deep);
  transition:transform .2s var(--ease)}
.decide__row:hover span{color:var(--orange-deep)}
.decide__row:hover svg{transform:translateX(4px)}

/* grid children must be allowed to shrink below a wide table/film inside them */
.place>*,.report>*,.essa>*,.usp__in>*,.lab__panel>*,.int__panel>*,.pw>*{min-width:0}

/* 4 long nav labels + CTA need ~1100px; use the burger menu until 1200 */
@media (min-width:1024px) and (max-width:1199px){.header__nav,.header__cta{display:none!important}.burger{display:inline-flex}}

/* ==========================================================================
   8. CLIENT CHANGES 2026-10-03 ("Website Changes.docx" + testimonials)
   ========================================================================== */
.cta-kicker{font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.14em;font-size:.875rem;color:var(--orange-lift);margin:0}
.on-light .cta-kicker{color:var(--orange-deep)}
.cta-second{display:inline-flex;align-items:center;gap:6px}
.cta-arrow{width:16px;height:16px;flex:0 0 auto}

/* Highlighted trust line (Performance Diagnostics hero) */
.hero__trust--hl{margin-top:var(--s5);gap:var(--s2)}
.hero__trust--hl span{display:inline-flex;align-items:center;padding:8px 14px;
  border:1px solid var(--orange);border-radius:var(--r-pill);background:rgba(241,91,41,.14);
  font-family:var(--f-display);font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  font-size:.875rem;color:#fff;line-height:1.2}

/* Footer offer strip */
.footer__offer{margin-top:var(--s7);padding:var(--s5) 0 0;border-top:1px solid var(--hairline);
  display:flex;flex-wrap:wrap;gap:var(--s3) var(--s7)}
.footer .footer__offer a{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;
  font-family:var(--f-display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  font-size:.9375rem;color:var(--paper)}
.footer .footer__offer a:last-child{color:var(--orange-lift)}
.footer__offer a span{font-family:var(--f-body);font-weight:500;text-transform:none;
  letter-spacing:0;color:var(--mute-dark)}
.footer .footer__offer a:hover{color:var(--orange-lift)}

/* 8-tab lab bar: 4x2 on tablets/small laptops, one row from 1200px */
@media (min-width:900px){.tabbar--8{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1200px){.tabbar--8{grid-template-columns:repeat(8,1fr)}}
.lab__img{border-radius:var(--r-md);object-fit:cover}

/* S&C opener */
.usp__h span{color:var(--orange-lift)}
.usp__line{margin-top:var(--s5);font-family:var(--f-display);font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.125rem,1rem + .6vw,1.5rem);
  line-height:1.2;color:var(--paper)}
.on-light .usp__line{color:var(--ink)}
.kv .kv__line{display:block}
.kv .kv__line + .kv__line{margin-top:6px}
.kv__line em{font-style:normal;font-weight:600}

/* Testimonials */
.tgrid{display:grid;gap:var(--s5)}
.tgrid + .tgrid{margin-top:var(--s5)}
@media (min-width:768px){
  .tgrid--big.tgrid--n2,.tgrid--big.tgrid--n3{grid-template-columns:repeat(2,1fr)}
  .tgrid--small{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1024px){
  .tgrid--big.tgrid--n3{grid-template-columns:repeat(3,1fr)}
  .tgrid--small{grid-template-columns:repeat(4,1fr)}
}
.tcard{margin:0;display:flex;flex-direction:column;gap:var(--s4);padding:var(--s6);
  background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);min-width:0}
.on-light .tcard{background:#fff;border-color:var(--paper-line)}
.on-panel .tcard{background:var(--ink)}
.tcard--big{border-top:3px solid var(--orange)}
.tcard__mark{color:var(--orange);flex:0 0 auto}
.tcard__q{margin:0;flex:1}
.tcard__q p{font-size:1rem;line-height:1.6;color:var(--paper)}
.on-light .tcard__q p{color:#2A2F36}
.tcard--big .tcard__q p{font-size:1.0625rem}
.tcard__who{display:flex;flex-direction:column;gap:2px;padding-top:var(--s4);
  border-top:1px solid var(--hairline)}
.on-light .tcard__who{border-color:var(--paper-line)}
.tcard__who b{font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;font-size:1.125rem;line-height:1.2}
.tcard__who span{font-size:.8125rem;color:var(--mute-dark)}
.on-light .tcard__who span{color:var(--mute-light)}
.tcard__who .tcard__sport{font-family:var(--f-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.14em;font-size:.75rem;color:var(--orange-lift)}
.on-light .tcard__who .tcard__sport{color:var(--orange-deep)}

/* footer lists have no class, so the ul[class] reset missed them */
.footer ul{list-style:none;margin:0;padding:0}
.footer li{font-size:.9375rem;color:var(--mute-dark)}

/* a lone testimonial (S&C #return column) fills its column instead of 1/4 of it */
.tgrid--small.tgrid--solo{grid-template-columns:1fr}

/* ==========================================================================
   Website chat (assets/js/chat.js). Bottom-right; lifts above the mobile
   sticky CTA bar, and steps aside while the cookie banner is showing.
   ========================================================================== */
.eqc-fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:95;
  display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 18px 0 14px;
  border-radius:var(--r-pill);background:var(--orange-deep);color:#fff;font-weight:700;font-size:.9375rem;
  box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .2s var(--ease),background .2s var(--ease)}
.eqc-fab:hover{background:#A9370B;transform:translateY(-2px)}
.eqc-fab:focus-visible{outline:3px solid var(--orange-lift);outline-offset:3px}
.eqc-fab svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.eqc-dot{position:absolute;top:6px;right:8px;width:11px;height:11px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 2px var(--orange-deep);display:none}
.eqc-fab.has-unread .eqc-dot{display:block}
.eqc.is-open .eqc-fab{display:none}
body[data-stickybar="true"] .eqc-fab{bottom:calc(88px + env(safe-area-inset-bottom))}
@media (min-width:1024px){body[data-stickybar="true"] .eqc-fab{bottom:24px}.eqc-fab{right:24px;bottom:24px}}
/* Cookie banner up: phones hide the launcher until it is answered (they would overlap);
   wider screens just move it to the bottom-left, clear of the banner. */
body:has(.cookie[data-show="true"]) .eqc-teaser{display:none}
@media (max-width:767px){body:has(.cookie[data-show="true"]) .eqc-fab{display:none}}
@media (min-width:768px){body:has(.cookie[data-show="true"]) .eqc-fab{right:auto;left:24px;bottom:24px}}
@media (min-width:768px) and (max-width:1023px){body[data-stickybar="true"]:has(.cookie[data-show="true"]) .eqc-fab{bottom:calc(88px + env(safe-area-inset-bottom))}}
@media (max-width:420px){.eqc-fab span{display:none}.eqc-fab{padding:0;width:54px;justify-content:center}}

.eqc-teaser{position:fixed;right:16px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:95;max-width:250px;
  background:#fff;color:var(--ink);border-radius:14px 14px 4px 14px;padding:12px 14px;font-size:.875rem;line-height:1.4;
  box-shadow:0 12px 34px rgba(0,0,0,.3);cursor:pointer;animation:eqcIn .3s var(--ease)}
.eqc-teaser[hidden]{display:none}
body[data-stickybar="true"] .eqc-teaser{bottom:calc(148px + env(safe-area-inset-bottom))}
@media (min-width:1024px){.eqc-teaser,body[data-stickybar="true"] .eqc-teaser{right:24px;bottom:86px}}

.eqc-panel{position:fixed;right:16px;bottom:16px;z-index:130;width:min(400px,calc(100vw - 32px));height:min(620px,calc(100vh - 32px));
  display:flex;flex-direction:column;background:var(--panel);color:#fff;border:1px solid var(--hairline);border-radius:14px;
  overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.6);animation:eqcIn .22s var(--ease)}
.eqc-panel[hidden]{display:none}
@media (min-width:1024px){.eqc-panel{right:24px;bottom:24px}}
@media (max-width:600px){.eqc-panel{inset:0;width:100%;height:100%;height:100dvh;border-radius:0;border:0}}
@keyframes eqcIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.eqc-panel,.eqc-teaser{animation:none}}

.eqc-head{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--ink);border-bottom:2px solid var(--orange)}
.eqc-head img{width:36px;height:36px;flex:none}
.eqc-head div{flex:1;min-width:0}
.eqc-head b{display:block;font-family:var(--f-display);font-size:1.1rem;letter-spacing:.02em;text-transform:uppercase}
.eqc-head small{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--mute-dark)}
.eqc-live{width:7px;height:7px;border-radius:50%;background:var(--signal-good);flex:none}
.eqc-x{width:40px;height:40px;display:grid;place-items:center;border-radius:8px;color:var(--mute-dark)}
.eqc-x:hover{background:var(--panel);color:#fff}
.eqc-x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

.eqc-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.eqc-msg{max-width:85%;display:flex;flex-direction:column}
.eqc-b{padding:10px 13px;border-radius:14px;font-size:.9rem;line-height:1.45;overflow-wrap:anywhere}
.eqc-b a{color:var(--orange-lift);text-decoration:underline}
.eqc-t{font-size:.7rem;color:var(--mute-dark);margin-top:3px;padding:0 4px}
.eqc-msg--team{align-self:flex-start}
.eqc-msg--team .eqc-b{background:#1D2026;border:1px solid var(--hairline);border-bottom-left-radius:4px;color:#E6E8EB}
.eqc-msg--me{align-self:flex-end;align-items:flex-end}
.eqc-msg--me .eqc-b{background:var(--orange-deep);color:#fff;border-bottom-right-radius:4px}
.eqc-msg.is-pending{opacity:.7}

.eqc-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}
.eqc-chips[hidden]{display:none}
.eqc-chip{border:1px solid #3A404A;border-radius:var(--r-pill);padding:6px 12px;font-size:.78rem;color:#D5D9DE;text-align:left}
.eqc-chip:hover{border-color:var(--orange-lift);color:#fff}

.eqc-form{border-top:1px solid var(--hairline);padding:12px 14px calc(10px + env(safe-area-inset-bottom));background:var(--ink)}
.eqc-gate{display:grid;gap:8px;margin-bottom:8px}
.eqc-gate[hidden]{display:none}
.eqc-form input,.eqc-form textarea{width:100%;background:#16191E;border:1px solid #2E343D;border-radius:8px;color:#fff;
  padding:10px 12px;font-size:16px;line-height:1.4}
.eqc-form input::placeholder,.eqc-form textarea::placeholder{color:#8A919A}
.eqc-form input:focus,.eqc-form textarea:focus{outline:2px solid var(--orange-lift);outline-offset:0;border-color:transparent}
.eqc-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0}
.eqc-row{display:flex;gap:8px;align-items:flex-end}
.eqc-row textarea{resize:none;min-height:44px;max-height:120px}
.eqc-send{flex:none;width:44px;height:44px;border-radius:10px;background:var(--orange-deep);color:#fff;display:grid;place-items:center}
.eqc-send:hover{background:#A9370B}
.eqc-send[disabled]{opacity:.5}
.eqc-send svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.eqc-err{color:#FF9B8A;font-size:.8rem;margin:8px 0 0}
.eqc-err[hidden]{display:none}
.eqc-foot{font-size:.75rem;color:var(--mute-dark);margin:8px 0 0;text-align:center}
.eqc-foot a{color:var(--orange-lift)}

/* ==========================================================================
   /book-a-call/ scheduler (assets/js/booking.js)
   ========================================================================== */
ul.cb-points{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:18px}
.cb-points li{display:flex;gap:12px;align-items:flex-start;color:var(--mute-dark)}
.cb-points b{color:#fff}
.cb-tick{flex:none;width:22px;height:22px;color:var(--orange-lift);margin-top:2px}
.cb-h{font-family:var(--f-display);font-size:1.25rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:12px}
.cb-h small{font-family:var(--f-body);font-size:.8rem;font-weight:500;color:var(--mute-dark);text-transform:none;letter-spacing:0}
.cb-days{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}
.cb-day{flex:none;scroll-snap-align:start;width:68px;padding:10px 0;border:1px solid var(--hairline);border-radius:var(--r-md);
  display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--ink);color:#fff;transition:border-color .15s,background .15s}
.cb-day small{font-size:.72rem;color:var(--mute-dark);text-transform:uppercase;letter-spacing:.05em}
.cb-day b{font-family:var(--f-display);font-size:1.6rem;line-height:1}
.cb-day:hover{border-color:var(--orange-lift)}
.cb-day[aria-pressed="true"]{background:var(--orange-deep);border-color:var(--orange-deep)}
.cb-day[aria-pressed="true"] small{color:#fff}
.cb-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.cb-time{min-height:48px;padding:8px;border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--ink);color:#fff;
  font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:border-color .15s,background .15s}
.cb-time small{font-size:.68rem;font-weight:400;color:var(--mute-dark)}
.cb-time:hover,.cb-time:focus-visible{border-color:var(--orange-lift);background:#1A1D22}
.cb-day:focus-visible,.cb-time:focus-visible,.cb-change:focus-visible{outline:3px solid var(--orange-lift);outline-offset:2px}
.cb-tz{font-size:.8125rem;color:var(--mute-dark);margin:-4px 0 12px}
.cb-status{color:var(--mute-dark);margin-top:12px;font-size:.9rem}
.cb-status:empty{display:none}
.cb-chosen{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;margin-bottom:24px;
  border:1px solid var(--orange-deep);border-radius:var(--r-md);background:rgba(196,65,15,.12)}
.cb-chosen small{color:var(--mute-dark)}
.cb-change{flex:none;color:var(--orange-lift);font-weight:600;text-decoration:underline;padding:2px}
.cb-ok{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--orange-deep);margin-bottom:16px}
.cb-okic{width:28px;height:28px;color:#fff}
#cbErr[hidden]{display:none}
