/* ============================================================
   MEERA SHAH COACHING — shared styles
   Palette
     ink      #2A1433  deep aubergine (text, dark panels)
     plum     #5C3D6E  mid plum (secondary text, rules)
     lilac    #F1ECF9  pale lilac (page ground)
     lilac-2  #E1D6F2  deeper lilac (tints, borders)
     citron   #D9F04A  sharp citrus (accents only, never body text)
     paper    #FFFFFF  cards
   Type
     display  Bricolage Grotesque
     body     Instrument Sans
   ============================================================ */

:root{
  --ink:#2A1433;
  --ink-soft:#3D2450;
  --plum:#5C3D6E;
  --lilac:#F1ECF9;
  --lilac-2:#E1D6F2;
  --lilac-3:#CDBBE6;
  --citron:#D9F04A;
  --citron-dim:#C4DB35;
  --paper:#FFFFFF;
  --dark-text:#EFE7F8;
  --dark-muted:#C5B3D8;

  --font-display:"Bricolage Grotesque", "Arial Black", sans-serif;
  --font-body:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;
  --ls-label:.12em; /* one tracking value for every small-caps label */

  --r-s:12px;
  --r-m:22px;
  --r-l:32px;
  --r-pill:999px;

  --sp-1:0.5rem;
  --sp-2:1rem;
  --sp-3:1.5rem;
  --sp-4:2.5rem;
  --sp-5:4rem;
  --section-pad:clamp(4rem, 9vw, 7.5rem);
  --gutter:clamp(1.25rem, 4vw, 2.5rem);

  --shadow-card:0 2px 6px rgba(42,20,51,.05), 0 18px 44px -18px rgba(42,20,51,.18);
  --shadow-float:0 10px 40px -8px rgba(42,20,51,.35);

  --nav-h:74px;
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--nav-h) + 16px);
  -webkit-text-size-adjust:100%;
}
body{
  font-family:var(--font-body);
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--ink);
  background:var(--lilac);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  -webkit-tap-highlight-color:transparent;
}
p{ text-wrap:pretty; }
[id]{ scroll-margin-top:calc(var(--nav-h) + 20px); }
img,svg{ max-width:100%; display:block; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
input,select,textarea{ font:inherit; color:inherit; }
a{ color:var(--plum); text-decoration-thickness:1.5px; text-underline-offset:3px; }
a:hover{ color:var(--ink); }
ul[role="list"]{ list-style:none; }

::selection{ background:var(--citron); color:var(--ink); }

:focus-visible{
  outline:3px solid var(--plum);
  outline-offset:3px;
  border-radius:4px;
}
.on-dark :focus-visible,
.dark-panel :focus-visible,
.chat-head :focus-visible{
  outline-color:var(--citron);
}
/* white card inside a dark section: citron would vanish on white */
.form-card :focus-visible{
  outline-color:var(--plum);
}

/* ---------- type scale ---------- */
h1,h2,h3,.display{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.06;
  letter-spacing:-0.015em;
  text-wrap:balance;
}
h2{ font-size:clamp(2rem, 4.4vw, 3.25rem); }
h3{ font-size:clamp(1.2rem, 2vw, 1.45rem); line-height:1.2; }

/* lining, equal-width figures wherever numbers do work */
.offer-price, .teaser-price strong, .stat b, .session-time, .agenda-time,
.tl-year, .arc-mini b, .stop-node, .next-steps li::before{
  font-variant-numeric:lining-nums tabular-nums;
}

/* screen-reader-only headings */
.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;
}
/* section that hangs directly off a page hero */
.section-flush-top{ padding-top:0; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-family:var(--font-body);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
  color:var(--plum);
}
.eyebrow::before{
  content:"";
  width:.6rem;
  height:.6rem;
  border-radius:2px;
  background:var(--citron);
  transform:rotate(45deg);
  flex:none;
}
.on-dark .eyebrow{ color:var(--dark-muted); }

.lede{
  font-size:clamp(1.1rem, 1.6vw, 1.25rem);
  line-height:1.6;
  color:var(--ink-soft);
  max-width:56ch;
}
.on-dark .lede{ color:var(--dark-muted); }

/* ---------- layout primitives ---------- */
.container{
  width:min(1180px, 100% - 2*var(--gutter));
  margin-inline:auto;
}
.section{ padding-block:var(--section-pad); }
.section-paper{ background:var(--paper); }
.section-head{
  display:grid;
  gap:1.1rem;
  max-width:760px;
  margin-bottom:clamp(2.5rem, 5vw, 4rem);
}
.section-head-flush{ margin-bottom:0; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.95rem 1.8rem;
  border-radius:var(--r-pill);
  font-family:var(--font-display);
  font-weight:600;
  font-size:1rem;
  letter-spacing:.01em;
  text-decoration:none;
  border:2px solid transparent;
  transition:transform .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
  will-change:transform;
}
.btn:active{ transform:translateY(1px) scale(.99); }
.btn-primary{
  background:var(--ink);
  color:var(--citron);
}
.btn-primary:hover{
  background:var(--citron);
  color:var(--ink);
  box-shadow:0 8px 24px -8px rgba(42,20,51,.4);
}
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border-color:var(--lilac-3);
}
.btn-ghost:hover{
  border-color:var(--ink);
  color:var(--ink);
  background:rgba(255,255,255,.55);
}
.btn-citron{
  background:var(--citron);
  color:var(--ink);
}
.btn-citron:hover{
  background:var(--paper);
  color:var(--ink);
}
.btn-ghost-dark{
  background:transparent;
  color:var(--dark-text);
  border-color:rgba(217,240,74,.5);
}
.btn-ghost-dark:hover{
  border-color:var(--citron);
  color:var(--citron);
  background:rgba(217,240,74,.08);
}
.btn .arr{ transition:transform .18s ease; }
.btn:hover .arr{ transform:translateX(3px); }

.link-arrow{
  font-weight:700;
  color:var(--ink);
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
}
.link-arrow::after{
  content:"→";
  transition:transform .18s ease;
}
.link-arrow:hover{ color:var(--plum); }
.link-arrow:hover::after{ transform:translateX(3px); }

/* ---------- nav ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  border-bottom:1px solid transparent;
  transition:border-color .25s ease, box-shadow .25s ease;
}
/* Blur lives on a pseudo-element: backdrop-filter on the header itself would
   make it the containing block for the position:fixed mobile menu, trapping
   the menu inside the 74px bar. */
.site-header::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgba(241,236,249,.82);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.site-header.is-scrolled{
  border-bottom-color:var(--lilac-2);
  box-shadow:0 6px 24px -14px rgba(42,20,51,.25);
}
.nav-inner{
  height:var(--nav-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.brand{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.22rem;
  letter-spacing:-.01em;
  color:var(--ink);
  text-decoration:none;
  display:inline-flex;
  align-items:baseline;
  gap:.15rem;
  white-space:nowrap;
}
.brand .dot{
  width:.5em;
  height:.5em;
  border-radius:2px;
  background:var(--citron);
  transform:rotate(45deg) translateY(-1px);
  display:inline-block;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:clamp(1rem, 2.4vw, 2rem);
  list-style:none;
}
.nav-links a:not(.btn){
  font-weight:600;
  font-size:.95rem;
  color:var(--ink-soft);
  text-decoration:none;
  padding:.35rem .1rem;
  border-bottom:2px solid transparent;
  transition:color .15s ease, border-color .15s ease;
}
.nav-links a:not(.btn):hover{
  color:var(--ink);
  border-bottom-color:var(--citron);
}
.nav-links a:not(.btn)[aria-current="page"]{
  color:var(--ink);
  border-bottom-color:var(--citron);
}
.nav-links .btn{ padding:.6rem 1.3rem; font-size:.92rem; }
.nav-toggle{
  display:none;
  width:46px;
  height:46px;
  border-radius:12px;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:1101;
}
.nav-toggle span{
  position:absolute;
  left:12px;
  right:12px;
  height:2.5px;
  border-radius:2px;
  background:var(--ink);
  transition:transform .25s ease, opacity .2s ease, top .25s ease;
}
.nav-toggle span:nth-child(1){ top:16px; }
.nav-toggle span:nth-child(2){ top:22px; }
.nav-toggle span:nth-child(3){ top:28px; }
.nav-open .nav-toggle span:nth-child(1){ top:22px; transform:rotate(45deg); }
.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
.nav-open .nav-toggle span:nth-child(3){ top:22px; transform:rotate(-45deg); }

@media (max-width:860px){
  .nav-toggle{ display:inline-flex; }
  body.nav-open{ overflow:hidden; }
  .nav-open .wa-float,
  .nav-open .chat-fab{ opacity:0; pointer-events:none; }
  .nav-links{
    position:fixed;
    inset:0;
    z-index:1100;
    flex-direction:column;
    justify-content:center;
    gap:1.6rem;
    background:var(--lilac);
    background-image:radial-gradient(60% 45% at 85% 10%, rgba(217,240,74,.28), transparent 70%),
                     radial-gradient(70% 55% at 10% 95%, rgba(92,61,110,.16), transparent 70%);
    transform:translateY(-102%);
    transition:transform .32s cubic-bezier(.6,.05,.25,1);
    visibility:hidden;
  }
  .nav-open .nav-links{ transform:translateY(0); visibility:visible; }
  .nav-links a:not(.btn){
    font-family:var(--font-display);
    font-size:1.6rem;
    font-weight:700;
  }
  .nav-links .btn{ font-size:1.1rem; padding:.9rem 2rem; }
}

/* ---------- inner page hero ---------- */
.page-hero{
  position:relative;
  padding:clamp(3.75rem, 8vw, 6rem) 0 clamp(2.75rem, 6vw, 4.5rem);
  overflow:hidden;
}
.page-hero::before{
  content:"";
  position:absolute;
  top:-45%;
  right:-15%;
  width:60vw;
  height:60vw;
  max-width:700px;
  max-height:700px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, rgba(217,240,74,.42), rgba(217,240,74,0) 62%);
  pointer-events:none;
}
.page-hero::after{
  content:"";
  position:absolute;
  bottom:-60%;
  left:-18%;
  width:50vw;
  height:50vw;
  max-width:620px;
  max-height:620px;
  border-radius:50%;
  background:radial-gradient(circle at 60% 40%, rgba(92,61,110,.18), rgba(92,61,110,0) 65%);
  pointer-events:none;
}
.page-hero-inner{
  position:relative;
  z-index:1;
  display:grid;
  gap:1.3rem;
  max-width:880px;
}
.page-hero h1{
  font-size:clamp(2.4rem, 5.4vw, 4.1rem);
  font-weight:800;
  line-height:1.05;
  letter-spacing:-.02em;
  max-width:20ch;
}
.page-hero h1 em{
  font-style:normal;
  position:relative;
  white-space:nowrap;
}
.page-hero h1 em::after{
  content:"";
  position:absolute;
  left:-2%;
  right:-2%;
  bottom:.06em;
  height:.3em;
  background:var(--citron);
  z-index:-1;
  border-radius:4px;
  transform:skewX(-8deg);
}

/* ---------- structural pull-quotes ---------- */
.pq{
  padding-block:clamp(3.5rem, 7vw, 5.5rem);
}
.pq blockquote{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.7rem, 3.8vw, 2.9rem);
  line-height:1.15;
  letter-spacing:-.015em;
  max-width:24ch;
  margin-inline:auto;
  text-align:center;
  color:var(--plum);
  text-wrap:balance;
}
.pq blockquote strong{
  color:var(--ink);
  font-weight:800;
}
.pq cite{
  display:block;
  margin-top:1.2rem;
  font-family:var(--font-body);
  font-style:normal;
  font-size:.9rem;
  font-weight:700;
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
  color:var(--ink-soft);
  text-align:center;
}
.pq cite::before{ content:"– "; color:var(--citron-dim); }
.pq-cta{
  text-align:center;
  margin-top:1.6rem;
}

/* ---------- offer cards ---------- */
.offers-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(1.1rem, 2vw, 1.6rem);
  align-items:stretch;
}
.offer-card{
  background:var(--paper);
  border-radius:var(--r-l);
  padding:2.2rem 1.9rem 2rem;
  box-shadow:var(--shadow-card);
  display:flex;
  flex-direction:column;
  gap:1.1rem;
  position:relative;
}
.offer-card.is-featured{
  background:var(--ink);
  background-image:radial-gradient(80% 50% at 100% 0%, rgba(92,61,110,.6), transparent 65%);
  color:var(--dark-text);
  transform:translateY(-10px);
  box-shadow:var(--shadow-float);
}
.offer-flag{
  position:absolute;
  top:-14px;
  left:1.9rem;
  background:var(--citron);
  color:var(--ink);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
  padding:.32rem .8rem;
  border-radius:var(--r-pill);
}
.offer-kind{
  font-size:.75rem;
  font-weight:700;
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
  color:var(--plum);
}
.is-featured .offer-kind{ color:var(--dark-muted); }
.offer-card h3{ font-size:1.5rem; }
.is-featured h3{ color:#FFFFFF; }
.offer-price{
  font-family:var(--font-display);
  font-weight:800;
  font-size:2.3rem;
  letter-spacing:-.02em;
  line-height:1;
}
.offer-price small{
  display:block;
  font-family:var(--font-body);
  font-weight:600;
  font-size:.85rem;
  letter-spacing:0;
  color:var(--plum);
  margin-top:.45rem;
}
.is-featured .offer-price{ color:var(--citron); }
.is-featured .offer-price small{ color:var(--dark-muted); }
.offer-list{
  list-style:none;
  display:grid;
  gap:.6rem;
  flex:1;
}
.offer-list li{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  font-size:.96rem;
  color:var(--ink-soft);
  line-height:1.5;
}
.is-featured .offer-list li{ color:var(--dark-muted); }
.on-dark .offer-list li{ color:var(--dark-muted); }
.offer-list svg{ width:17px; height:17px; flex:none; margin-top:.25rem; }
.offer-card .btn{ align-self:flex-start; }
.offers-reassure{
  margin-top:2.2rem;
  margin-inline:auto;
  max-width:74ch;
  text-align:center;
  font-size:.95rem;
  color:var(--plum);
}
.offers-reassure-left{
  margin-top:0;
  margin-inline:0;
  text-align:left;
}
@media (max-width:960px){
  .offers-grid{ grid-template-columns:1fr; max-width:560px; margin-inline:auto; }
  .offer-card.is-featured{ transform:none; order:-1; }
}

/* ---------- testimonial / outcome cards ---------- */
.outcome-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:clamp(1.1rem, 2vw, 1.6rem);
}
.outcome-card{
  background:var(--paper);
  border-radius:var(--r-m);
  padding:2rem 1.9rem 1.9rem;
  box-shadow:var(--shadow-card);
  display:flex;
  flex-direction:column;
  gap:1.2rem;
  position:relative;
}
.outcome-card::before{
  content:"“";
  font-family:var(--font-display);
  font-weight:800;
  font-size:3.4rem;
  line-height:.5;
  color:var(--citron-dim);
  display:block;
  height:.6em;
}
.outcome-card blockquote{
  font-size:1.05rem;
  line-height:1.6;
  color:var(--ink-soft);
  flex:1;
}
.outcome-who{
  display:flex;
  align-items:center;
  gap:.85rem;
}
.outcome-avatar{
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--ink);
  color:var(--citron);
  display:grid;
  place-items:center;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.95rem;
  flex:none;
}
.outcome-who b{ display:block; font-size:.98rem; line-height:1.3; }
.outcome-who span{ font-size:.85rem; color:var(--plum); line-height:1.3; }
@media (max-width:760px){
  .outcome-grid{ grid-template-columns:1fr; }
}

/* ---------- media strip ---------- */
.media-strip{
  background:var(--paper);
  border-block:1px solid var(--lilac-2);
  padding-block:clamp(2.4rem, 4.5vw, 3.4rem);
}
.media-inner{
  display:grid;
  gap:1.4rem;
  text-align:center;
}
.media-label{
  font-size:.78rem;
  font-weight:700;
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
  color:var(--plum);
}
.media-logos{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:baseline;
  gap:1rem 2.6rem;
  list-style:none;
}
.media-logos li{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1rem, 1.6vw, 1.25rem);
  letter-spacing:.02em;
  color:var(--plum);
  white-space:nowrap;
}
.media-talks{
  font-size:.95rem;
  color:var(--ink-soft);
  max-width:64ch;
  margin-inline:auto;
}
.media-talks em{ font-style:normal; font-weight:700; color:var(--ink); }

/* ---------- credentials & stats ---------- */
.cred-list{
  list-style:none;
  display:grid;
  gap:.8rem;
  margin-top:.4rem;
}
.cred-list li{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  font-size:.98rem;
  line-height:1.5;
}
.cred-list svg{ width:19px; height:19px; flex:none; margin-top:.22rem; }
.cred-list strong{ font-weight:700; }
.stats-row{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
  margin-top:.6rem;
}
.stat{
  background:var(--lilac);
  border-radius:var(--r-m);
  padding:1.2rem 1.1rem 1.1rem;
}
.stat b{
  display:block;
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.9rem;
  letter-spacing:-.02em;
  line-height:1;
}
.stat span{
  font-size:.82rem;
  font-weight:600;
  color:var(--plum);
}
@media (max-width:560px){
  .stats-row{ grid-template-columns:1fr 1fr; }
  .stats-row .stat:last-child{ grid-column:1 / -1; }
}

/* ---------- FAQ ---------- */
.faq-wrap{ max-width:780px; }
.faq-item h3{ display:contents; font-size:inherit; }
.faq-item{
  background:var(--paper);
  border-radius:var(--r-s);
  margin-bottom:.8rem;
  box-shadow:0 1px 3px rgba(42,20,51,.06);
  border:1px solid transparent;
  transition:border-color .2s ease;
  overflow:hidden;
}
.faq-item.is-open{ border-color:var(--lilac-3); }
.faq-q{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  text-align:left;
  padding:1.15rem 1.4rem;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.06rem;
  line-height:1.3;
}
.faq-q:hover{ color:var(--plum); }
.faq-chev{
  flex:none;
  width:26px;
  height:26px;
  border-radius:50%;
  background:var(--lilac);
  display:grid;
  place-items:center;
  transition:transform .3s ease, background-color .3s ease;
}
.faq-chev svg{ width:13px; height:13px; }
.is-open .faq-chev{
  transform:rotate(180deg);
  background:var(--citron);
}
.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .35s ease;
}
.faq-a-inner{
  padding:0 1.4rem 1.4rem;
  color:var(--ink-soft);
  font-size:.99rem;
  max-width:62ch;
}

/* ---------- dark booking panel + forms ---------- */
.book{
  background:var(--ink);
  background-image:radial-gradient(60% 70% at 100% 0%, rgba(92,61,110,.55), transparent 62%),
                   radial-gradient(40% 40% at 0% 100%, rgba(217,240,74,.09), transparent 60%);
  color:var(--dark-text);
  border-radius:clamp(1.5rem, 3.5vw, 3rem);
  margin-inline:clamp(.5rem, 1.5vw, 1.25rem);
}
.book h2{ color:#FFFFFF; }
.book-grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:clamp(2.5rem, 5vw, 4.5rem);
  align-items:start;
}
.book-copy{ display:grid; gap:1.4rem; }
.book-copy .lede{ color:var(--dark-muted); }
.next-steps{
  list-style:none;
  display:grid;
  gap:1.1rem;
  counter-reset:step;
  margin-top:.4rem;
}
.next-steps li{
  counter-increment:step;
  display:flex;
  gap:1rem;
  align-items:flex-start;
  font-size:.98rem;
  color:var(--dark-muted);
  line-height:1.55;
}
.next-steps li::before{
  content:counter(step);
  flex:none;
  width:34px;
  height:34px;
  border-radius:50%;
  border:2px solid var(--citron);
  color:var(--citron);
  display:grid;
  place-items:center;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.95rem;
}
.next-steps strong{ color:var(--dark-text); }
.book-side-note{
  font-size:.88rem;
  color:var(--dark-muted);
  border-left:3px solid var(--citron);
  padding-left:1rem;
}
.form-card{
  background:var(--paper);
  color:var(--ink);
  border-radius:var(--r-l);
  padding:clamp(1.6rem, 3vw, 2.4rem);
  box-shadow:var(--shadow-float);
}
.form-grid{ display:grid; gap:1.15rem; }
.field label{
  display:block;
  font-weight:700;
  font-size:.9rem;
  margin-bottom:.4rem;
}
.field label .req{ color:var(--plum); }
.field label .opt{ font-weight:500; color:var(--plum); }
.field input,
.field select,
.field textarea{
  width:100%;
  background:var(--lilac);
  border:2px solid transparent;
  border-radius:var(--r-s);
  padding:.8rem 1rem;
  font-size:1rem;
  color:var(--ink);
  transition:border-color .18s ease, background-color .18s ease;
}
.field textarea{ resize:vertical; min-height:110px; }
.field input::placeholder,
.field textarea::placeholder,
.chat-input-row input::placeholder{
  color:var(--plum);
  opacity:.55;
}
/* the un-chosen select reads as a placeholder, not an answer */
.field select:required:invalid{ color:var(--plum); }
.field select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%232A1433' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  padding-right:2.6rem;
}
.field input:hover,
.field select:hover,
.field textarea:hover{ background:var(--lilac-2); }
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--plum);
  background:var(--paper);
}
.field.has-error input,
.field.has-error select,
.field.has-error textarea{
  border-color:#B3261E;
  background:#FBEDEC;
}
.field-error{
  display:none;
  font-size:.84rem;
  font-weight:600;
  color:#B3261E;
  margin-top:.35rem;
}
.has-error .field-error{ display:block; }
.form-fineprint{
  font-size:.8rem;
  color:var(--plum);
}
.form-success{
  display:none;
  text-align:center;
  padding:2.4rem .8rem;
}
.form-success.is-visible{ display:block; }
.form-success .tick{
  width:64px;
  height:64px;
  margin:0 auto 1.2rem;
  border-radius:50%;
  background:var(--citron);
  display:grid;
  place-items:center;
}
.form-success .tick svg{ width:30px; height:30px; }
.form-success h3{ font-size:1.4rem; margin-bottom:.6rem; }
.form-success p{ color:var(--ink-soft); max-width:38ch; margin-inline:auto; }
@media (max-width:900px){
  .book-grid{ grid-template-columns:1fr; }
}

/* ---------- reply-promise chip ---------- */
/* Time-aware "when will I hear back?" reassurance, filled in by main.js.
   Hidden until the script runs, so a no-JS visitor never sees an empty pill. */
.reply-chip{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-size:.84rem;
  font-weight:600;
  color:var(--plum);
  background:var(--lilac);
  border:1px solid var(--lilac-2);
  border-radius:var(--r-pill);
  padding:.45rem 1rem;
}
.reply-chip[hidden]{ display:none; }
.reply-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--citron-dim);
  flex:none;
}
.on-dark .reply-chip{
  color:var(--dark-muted);
  background:rgba(255,255,255,.06);
  border-color:rgba(217,240,74,.3);
}
.on-dark .reply-dot{ background:var(--citron); }

/* ---------- form send-failure notice ---------- */
/* Only appears when FORM_ENDPOINT is set and the POST fails. */
.form-submit-error{
  font-size:.9rem;
  font-weight:600;
  color:#B3261E;
  background:#FBEDEC;
  border-radius:var(--r-s);
  padding:.75rem 1rem;
  margin-top:1rem;
}
.form-submit-error a{ color:#B3261E; }
.form-submit-error[hidden]{ display:none; }

/* ---------- editorial photography ---------- */
/* Real CC0 photographs, used sparingly – tone-treated to sit in the palette. */
.photo-frame{
  border-radius:var(--r-l);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  margin:0;
}
.photo-frame img{
  width:100%;
  height:auto;
  display:block;
}
.photo-frame figcaption{
  font-size:.82rem;
  font-weight:600;
  color:var(--plum);
  background:var(--paper);
  padding:.7rem 1.2rem;
  border-top:3px solid var(--citron);
}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--ink);
  background-image:radial-gradient(60% 70% at 100% 0%, rgba(92,61,110,.55), transparent 62%),
                   radial-gradient(40% 40% at 0% 100%, rgba(217,240,74,.09), transparent 60%);
  color:var(--dark-text);
  border-radius:clamp(1.5rem, 3.5vw, 3rem);
  margin-inline:clamp(.5rem, 1.5vw, 1.25rem);
  padding-block:clamp(3.5rem, 7vw, 5.5rem);
}
.cta-band h2{ color:#FFFFFF; max-width:20ch; }
.cta-band .lede{ color:var(--dark-muted); }
.cta-band-inner{
  display:grid;
  gap:1.5rem;
  justify-items:start;
  max-width:800px;
}
.cta-band .cta-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  align-items:center;
}
.cta-band .cta-meta{
  font-size:.88rem;
  color:var(--dark-muted);
}

/* ---------- footer ---------- */
.site-footer{
  padding:clamp(3rem, 6vw, 4.5rem) 0 7rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:2.5rem;
  padding-bottom:2.5rem;
  border-bottom:1px solid var(--lilac-2);
}
.footer-brand p{
  color:var(--ink-soft);
  font-size:.95rem;
  max-width:34ch;
  margin-top:.8rem;
}
.footer-col h4{
  font-family:var(--font-body);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
  color:var(--plum);
  margin-bottom:1rem;
}
.footer-col ul{
  list-style:none;
  display:grid;
  gap:.55rem;
}
.footer-col a{
  text-decoration:none;
  font-size:.96rem;
  color:var(--ink-soft);
}
.footer-col a:hover{ color:var(--ink); text-decoration:underline; }
.footer-col address{
  font-style:normal;
  font-size:.96rem;
  color:var(--ink-soft);
  line-height:1.7;
}
.footer-legal{
  padding-top:1.8rem;
  display:grid;
  gap:.5rem;
  font-size:.84rem;
  color:var(--plum);
}
.footer-legal a{ color:var(--plum); font-weight:600; }
.footer-legal a:hover{ color:var(--ink); }
@media (max-width:760px){
  .footer-grid{ grid-template-columns:1fr; gap:2rem; }
}

/* ---------- floating: WhatsApp (left) ---------- */
.wa-float{
  position:fixed;
  left:1.1rem;
  bottom:1.1rem;
  z-index:1150;
  display:flex;
  align-items:center;
  gap:.6rem;
  text-decoration:none;
}
.wa-btn{
  width:56px;
  height:56px;
  border-radius:50%;
  background:#25D366;
  display:grid;
  place-items:center;
  box-shadow:0 8px 24px -6px rgba(42,20,51,.35);
  transition:transform .2s ease;
}
.wa-float:hover .wa-btn{ transform:scale(1.07); }
.wa-btn svg{ width:30px; height:30px; }
.wa-label{
  background:var(--ink);
  color:var(--lilac);
  font-size:.82rem;
  font-weight:600;
  padding:.45rem .9rem;
  border-radius:var(--r-pill);
  opacity:0;
  transform:translateX(-8px);
  transition:opacity .2s ease, transform .2s ease;
  pointer-events:none;
  white-space:nowrap;
}
.wa-float:hover .wa-label,
.wa-float:focus-visible .wa-label{
  opacity:1;
  transform:translateX(0);
}

/* ---------- floating: chat (right) ---------- */
.chat-fab{
  position:fixed;
  right:1.1rem;
  bottom:1.1rem;
  z-index:1150;
  width:60px;
  height:60px;
  border-radius:50%;
  background:var(--ink);
  display:grid;
  place-items:center;
  box-shadow:0 8px 24px -6px rgba(42,20,51,.4);
  transition:transform .2s ease, background-color .2s ease;
}
.chat-fab:hover{ transform:scale(1.07); background:var(--ink-soft); }
.chat-fab svg{ width:28px; height:28px; }
.chat-fab .icon-close{ display:none; }
.chat-open .chat-fab .icon-chat{ display:none; }
.chat-open .chat-fab .icon-close{ display:block; }
.chat-fab-ping{
  position:absolute;
  top:2px;
  right:2px;
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--citron);
  border:2.5px solid var(--lilac);
}

.chat-panel{
  position:fixed;
  right:1.1rem;
  bottom:calc(1.1rem + 60px + .9rem);
  z-index:1149;
  width:min(370px, calc(100vw - 2.2rem));
  height:min(540px, calc(100dvh - 8rem));
  background:var(--paper);
  border-radius:var(--r-m);
  box-shadow:0 24px 70px -12px rgba(42,20,51,.45);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  opacity:0;
  transform:translateY(16px) scale(.98);
  pointer-events:none;
  visibility:hidden; /* keeps the closed panel out of the tab order */
  transition:opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}
.chat-open .chat-panel{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
  visibility:visible;
  transition:opacity .25s ease, transform .25s ease;
}
.chat-head{
  background:var(--ink);
  color:var(--dark-text);
  padding:1rem 1.1rem;
  display:flex;
  align-items:center;
  gap:.85rem;
  flex:none;
}
.chat-avatar{
  width:40px;
  height:40px;
  border-radius:50%;
  background:var(--citron);
  color:var(--ink);
  display:grid;
  place-items:center;
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.1rem;
  flex:none;
}
.chat-head-txt b{
  display:block;
  font-family:var(--font-display);
  font-size:1.05rem;
  line-height:1.2;
  color:#FFFFFF;
}
.chat-head-txt span{
  font-size:.78rem;
  color:var(--dark-muted);
  display:inline-flex;
  align-items:center;
  gap:.35rem;
}
.chat-head-txt span::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--citron);
}
.chat-close{
  margin-left:auto;
  width:34px;
  height:34px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--dark-muted);
  transition:background-color .15s ease, color .15s ease;
}
.chat-close:hover{ background:rgba(255,255,255,.12); color:#fff; }
.chat-close svg{ width:16px; height:16px; }
.chat-body{
  flex:1;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:1.1rem;
  display:flex;
  flex-direction:column;
  gap:.7rem;
  background:var(--lilac);
  scrollbar-width:thin;
}
.chat-msg{
  max-width:85%;
  padding:.7rem 1rem;
  border-radius:16px;
  font-size:.93rem;
  line-height:1.5;
  animation:msg-in .25s ease both;
}
@keyframes msg-in{
  from{ opacity:0; transform:translateY(8px); }
  to{ opacity:1; transform:translateY(0); }
}
.chat-msg.from-bot{
  background:var(--paper);
  color:var(--ink);
  border-bottom-left-radius:5px;
  align-self:flex-start;
  box-shadow:0 1px 3px rgba(42,20,51,.08);
}
.chat-msg.from-user{
  background:var(--ink);
  color:var(--lilac);
  border-bottom-right-radius:5px;
  align-self:flex-end;
}
.typing-dots{
  display:inline-flex;
  gap:5px;
  padding:.35rem 0;
}
.typing-dots i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--lilac-3);
  animation:dot-bounce 1.1s infinite ease-in-out;
}
.typing-dots i:nth-child(2){ animation-delay:.15s; }
.typing-dots i:nth-child(3){ animation-delay:.3s; }
@keyframes dot-bounce{
  0%,60%,100%{ transform:translateY(0); opacity:.5; }
  30%{ transform:translateY(-5px); opacity:1; }
}
.chat-chips{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  padding:.75rem 1.1rem;
  background:var(--lilac);
  border-top:1px solid var(--lilac-2);
  flex:none;
}
.chat-chip{
  font-size:.8rem;
  font-weight:600;
  color:var(--ink);
  background:var(--paper);
  border:1.5px solid var(--lilac-3);
  border-radius:var(--r-pill);
  padding:.4rem .9rem;
  transition:background-color .15s ease, border-color .15s ease, color .15s ease;
}
.chat-chip:hover{
  border-color:var(--ink);
  background:var(--citron);
}
.chat-input-row{
  display:flex;
  gap:.6rem;
  padding:.8rem 1.1rem;
  background:var(--paper);
  border-top:1px solid var(--lilac-2);
  flex:none;
}
.chat-input-row input{
  flex:1;
  border:2px solid var(--lilac-2);
  border-radius:var(--r-pill);
  padding:.6rem 1.1rem;
  font-size:.93rem;
  background:var(--lilac);
  min-width:0;
}
.chat-input-row input:focus{
  outline:none;
  border-color:var(--plum);
  background:var(--paper);
}
.chat-send{
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--ink);
  color:var(--citron);
  display:grid;
  place-items:center;
  flex:none;
  transition:background-color .15s ease, transform .15s ease;
}
.chat-send:hover{ background:var(--ink-soft); transform:scale(1.05); }
.chat-send svg{ width:18px; height:18px; }
.chat-credit{
  flex:none;
  text-align:center;
  font-size:.68rem;
  letter-spacing:.06em;
  color:var(--plum);
  background:var(--paper);
  padding:.45rem .5rem .6rem;
}
.chat-credit a{ color:var(--plum); font-weight:600; }

@media (max-width:560px){
  .chat-panel{
    right:0;
    left:0;
    bottom:0;
    width:100%;
    height:100dvh;
    border-radius:0;
  }
  .chat-open .chat-fab{ transform:scale(0); pointer-events:none; }
  .chat-open .wa-float{ opacity:0; pointer-events:none; }
}

/* ---------- scroll reveal ---------- */
.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.is-in{
  opacity:1;
  transform:none;
}
.reveal-d1{ transition-delay:.08s; }
.reveal-d2{ transition-delay:.16s; }
.reveal-d3{ transition-delay:.24s; }

/* ---------- skip link ---------- */
.skip-link{
  position:absolute;
  left:1rem;
  top:-100px;
  z-index:2000;
  background:var(--ink);
  color:var(--citron);
  font-weight:700;
  padding:.7rem 1.2rem;
  border-radius:var(--r-s);
  text-decoration:none;
  transition:top .2s ease;
}
.skip-link:focus{ top:1rem; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    transition-delay:0s !important;
  }
  .reveal{ opacity:1; transform:none; }
  .hero-quote.is-out{ opacity:1; transform:none; }
}

/* ---------- honeypot (spam trap) ---------- */
/* Off-screen, not display:none – naive bots fill it, humans never see it
   and can't tab into it (tabindex="-1" + aria-hidden in the markup). */
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px;
  height:1px;
  overflow:hidden;
}

/* ---------- print ---------- */
/* Tuned so coaching.html (programmes, prices, the session arc) prints
   cleanly in black-on-white; the shared rules help every page. */
@media print{
  *,*::before,*::after{
    box-shadow:none !important;
    text-shadow:none !important;
  }
  body{
    background:#fff;
    color:#000;
    font-size:10.5pt;
  }
  /* chrome & widgets off the page */
  .skip-link,
  .nav-toggle,
  .nav-links,
  .wa-float,
  #chatRoot,
  .cta-band,
  .journey-hint,
  .quote-dots,
  .btn,
  .pq-cta,
  .link-arrow{
    display:none !important;
  }
  .site-header{
    position:static;
    border-bottom:1px solid #000;
  }
  .site-header::before{ display:none; }
  .brand{ color:#000; }
  .brand .dot{ background:#000; }
  /* reveal animations must not hide content on paper */
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .section{ padding-block:1.1rem; }
  .page-hero{ padding:1.2rem 0 .8rem; }
  .page-hero::before,
  .page-hero::after,
  .hero-bg{ display:none; }
  .page-hero h1 em::after,
  .hero-quote em::after{ background:#e0e0e0; }
  a{ color:#000; text-decoration:none; }
  h1,h2,h3,.lede,p,li,address{ color:#000 !important; }
  .eyebrow,.on-dark .eyebrow{ color:#000; }
  .eyebrow::before{ background:#000; }
  /* dark panels flip to black-on-white */
  .journey,.teaser,.book,.nl-band,.offer-card.is-featured,.legal-summary{
    background:#fff !important;
    background-image:none !important;
    color:#000 !important;
    border:1px solid #999;
    border-radius:8px;
    margin-inline:0;
  }
  .on-dark *,
  .journey *,
  .teaser *,
  .is-featured *{
    color:#000 !important;
  }
  /* the 90-day arc: stacked and unclipped instead of a horizontal scroller */
  .journey-track-wrap{
    overflow:visible;
    margin-inline:0;
    padding-inline:0;
    padding-bottom:0;
  }
  .journey-track{
    display:block;
    width:auto;
  }
  .stop{
    display:flex;
    flex-direction:row;
    align-items:flex-start;
    gap:1rem;
    margin-bottom:.7rem;
    break-inside:avoid;
  }
  .stop-node-row{ height:auto; flex:none; }
  .stop-node-row::after{ display:none !important; }
  .stop-node{
    width:38px;
    height:38px;
    font-size:1rem;
    background:#fff;
    color:#000;
    border-color:#000;
  }
  .stop.is-free .stop-node{
    background:#000;
    color:#fff;
  }
  .stop-free-tag{
    background:#fff;
    color:#000;
    border-color:#000;
  }
  .stop-card{
    background:#fff;
    border:1px solid #bbb;
    padding:.9rem 1rem;
  }
  /* cards keep their edges without colour */
  .offer-card,
  .persona-card,
  .outcome-card,
  .case-card,
  .contact-card,
  .article-card,
  .legal-card,
  .session-flow li,
  .agenda li,
  .notfor-list li,
  .faq-item{
    border:1px solid #bbb;
    break-inside:avoid;
  }
  .offer-card.is-featured{ transform:none; }
  .offer-flag{
    position:static;
    align-self:flex-start;
    background:#fff;
    color:#000;
    border:1px solid #000;
  }
  .offer-price small{ color:#000; }
  .session-time,
  .agenda-time{
    background:#fff;
    border:1px solid #000;
    color:#000;
  }
  .agenda li{ border-left:3px solid #000; }
  .agenda li.is-break{ background:#f2f2f2; }
  /* FAQ answers print open */
  .faq-a{ max-height:none !important; overflow:visible; }
  .faq-chev{ display:none; }
  /* compact footer */
  .site-footer{ padding:1.2rem 0; border-top:1px solid #000; }
  .footer-grid{ border-bottom:0; padding-bottom:.6rem; gap:1.2rem; }
  .stat{ background:#fff; border:1px solid #bbb; }
}
