/* =====================================================================
   NexGen Neurotherapy — styles.css (consolidated design system)
   Brand: Deep Forest Green, Sage Wash, White, Sage. Cormorant Garamond + DM Sans.
   One source of truth: tokens first, then base, layout, components, pages,
   then responsive rules grouped by breakpoint. No stacked overrides.
   Breakpoints: ≤1080 (compact nav) · ≤900 (tablet) · ≤699 (single column) · ≤640 (phone) · ≤420 (small phone)
   ===================================================================== */

/* ---------- 1. Tokens ---------- */
:root{
  /* colour */
  --green:#0B5347; --green-dark:#083d34; --green-ink:#10302a;
  --stone:#EEF5F3; --stone-deep:#d9e9e5; --white:#fff;
  --sage:#B5D3D1; --sage-soft:#e3efee;
  --text:#1c2b27; --muted:#4a5d58; --line:#dfe6e3;
  --gold:#b88a2e; --on-green:#e9f2f0; --on-green-muted:#c9dcd8;
  --shadow:0 10px 30px rgba(11,83,71,.08);
  --focus:0 0 0 3px #fff,0 0 0 5px var(--green);

  /* type */
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'DM Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --fs-h1:clamp(2.375rem,1.6rem + 2.4vw,3.5rem);     /* 38 → 56px */
  --fs-h2:clamp(1.875rem,1.45rem + 1.35vw,2.625rem); /* 30 → 42px */
  --fs-h3:clamp(1.375rem,1.22rem + .45vw,1.625rem);  /* 22 → 26px */
  --fs-h3-lg:clamp(1.5rem,1.3rem + .7vw,1.8rem);     /* audience/feature titles */
  --fs-h4:1.03rem;
  --fs-body:1.0625rem;  /* 17px (16px on phones) */
  --fs-lead:1.125rem;   /* 18px */
  --fs-small:.9375rem;  /* 15px */
  --fs-caption:.84rem;
  --fs-eyebrow:.75rem;
  --fs-btn:.97rem;
  --lh-h1:1.08; --lh-h2:1.16; --lh-h3:1.2; --lh-body:1.7; --lh-ui:1.3;

  /* spacing scale */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px; --s9:80px;
  --section:clamp(44px,2.2rem + 2.6vw,80px);   /* phone ~45 · tablet ~56 · desktop ~72–80 */
  --gutter:clamp(16px,2.6vw,24px);
  --gap:clamp(20px,1.1rem + .6vw,28px);
  --card-pad:clamp(24px,1.3rem + .7vw,32px);
  --intro-gap:clamp(28px,1.6rem + .6vw,40px);    /* section intro → content */

  /* layout */
  --container:1160px; --container-wide:1280px; --measure:66ch; --measure-editorial:70ch;
  --radius:14px; --radius-lg:20px; --radius-sm:10px;
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text);background:var(--white);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--green)}
a:hover{color:var(--green-dark)}
a[href^="tel:"]{white-space:nowrap}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}
h1,h2,h3{font-family:var(--serif);color:var(--green);font-weight:700;text-wrap:balance}
h1{font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:-.015em;margin:0 0 var(--s5)}
h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:-.01em;margin:0 0 var(--s4)}
h3{font-size:var(--fs-h3);line-height:var(--lh-h3);margin:0 0 var(--s2)}
h4{font-family:var(--sans);font-size:var(--fs-h4);line-height:var(--lh-ui);font-weight:600;color:var(--green-ink);margin:0 0 var(--s1)}
p{margin:0 0 var(--s4);text-wrap:pretty}
p:last-child{margin-bottom:0}
li{text-wrap:pretty}
em{font-style:italic}
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:760px}
.skip{position:absolute;left:-999px;top:0;background:var(--green);color:#fff;padding:10px 14px;z-index:2000}
.skip:focus{left:8px}
.eyebrow{font-size:var(--fs-eyebrow);font-weight:700;letter-spacing:.16em;line-height:1.4;text-transform:uppercase;color:var(--green);margin:0 0 var(--s3)}
.lead{font-size:var(--fs-lead);line-height:1.65;color:var(--muted);max-width:var(--measure)}
.muted{color:var(--muted)}
.small{font-size:var(--fs-small)}
.stars{color:var(--gold);letter-spacing:1px}
.hp{position:absolute;left:-5000px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- 3. Header & navigation ---------- */
.strip{background:var(--green);color:#fff;font-size:.86rem}
.strip .wrap{max-width:var(--container-wide);display:flex;gap:22px;justify-content:flex-end;align-items:center;min-height:38px;flex-wrap:wrap}
.strip a{color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:7px;line-height:1}
.strip svg{flex-shrink:0;display:block}
.strip a:hover{color:#fff;text-decoration:underline}
.strip .note{margin-right:auto;opacity:.88}

.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.97);backdrop-filter:saturate(1.2) blur(6px);border-bottom:1px solid var(--line)}
.site-header .wrap{max-width:var(--container-wide);display:flex;align-items:center;gap:var(--s4);min-height:84px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.brand img{height:60px;width:auto}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text strong{font-family:var(--serif);font-size:1.4rem;font-weight:700;color:var(--green);white-space:nowrap}
.brand-text span{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:3px;white-space:nowrap}
.main-nav{margin-left:auto}
.menu{display:flex;align-items:center;gap:2px;margin:0;padding:0;list-style:none}
.menu > li{list-style:none}
.menu a{display:flex;align-items:center;min-height:44px;padding:0 11px;font-size:.95rem;font-weight:500;letter-spacing:.005em;color:var(--green-ink);text-decoration:none;border-radius:8px;white-space:nowrap}
.menu a:hover{color:var(--green);background:var(--sage-soft)}
.menu a[aria-current=page]{color:var(--green);background:var(--sage-soft);font-weight:600}
.menu a.nav-coach{font-weight:600;color:var(--green)}
.menu .menu-cta{margin-left:var(--s3)}
.menu a.btn{min-height:46px;padding:0 20px;color:#fff;background:var(--green);font-weight:600}
.menu a.btn:hover{background:var(--green-dark);color:#fff}
.site-header .head-cta,.site-header .burger{display:none}
.burger{align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:600;font-size:.92rem;color:var(--green);background:#fff;border:1.5px solid var(--line);border-radius:var(--radius-sm);min-height:44px;min-width:44px;padding:0 14px;cursor:pointer}
.burger .i-close{display:none}
.burger[aria-expanded=true] .i-open{display:none}
.burger[aria-expanded=true] .i-close{display:block}
.coach-mark{font-family:var(--serif);font-size:1.35rem;font-weight:700;color:var(--green);margin-left:14px;padding-left:14px;border-left:1px solid var(--line);line-height:1.1}
.coach-mark small{display:block;font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.coach-sub{background:var(--sage-soft);border-bottom:1px solid var(--line)}
.coach-sub .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding-top:10px;padding-bottom:10px}
.coach-sub .coach-mark{margin-left:0;padding-left:0;border-left:0;font-size:1.2rem}
.coach-links{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.coach-links a:not(.btn){padding:8px 12px;border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-small);font-weight:500;text-decoration:none}
.coach-links a:not(.btn):hover,.coach-links a[aria-current=page]{color:var(--green);background:#fff}
.coach-links .btn{padding:9px 16px;font-size:var(--fs-small)}
body.menu-open{overflow:hidden}
body.menu-open .action-bar{display:none!important}

/* ---------- 4. Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:12px 22px;border-radius:var(--radius-sm);font-family:var(--sans);font-weight:600;font-size:var(--fs-btn);line-height:var(--lh-ui);letter-spacing:.005em;text-decoration:none;border:1.5px solid var(--green);cursor:pointer;transition:background .15s,color .15s}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-dark);color:#fff}
.btn-ghost{background:#fff;color:var(--green)}
.btn-ghost:hover{background:var(--sage-soft)}
.btn-light{background:#fff;color:var(--green);border-color:#fff}
.btn-light:hover{background:var(--stone);color:var(--green)}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.65)}
.btn-outline-light:hover{background:rgba(255,255,255,.12);color:#fff}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s5)}
.more{display:inline-flex;align-items:center;gap:6px;margin-top:var(--s2);font-weight:600;text-decoration:none}

/* ---------- 5. Sections & heroes ---------- */
section{padding:var(--section) 0}
section.tight{padding:calc(var(--section) * .55) 0}
section.ev-lib{padding-top:calc(var(--section) * .2)}
.bg-stone{background:var(--stone)}
.bg-green{background:var(--green);color:var(--on-green)}
.bg-green h2,.bg-green h3{color:#fff}
.bg-green a:not(.btn){color:#fff}
.section-head{max-width:720px;margin-bottom:var(--intro-gap)}
.section-head .lead{margin:0}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head.center .lead{margin-left:auto;margin-right:auto}

.hero{position:relative;padding:clamp(32px,1.6rem + 1.6vw,52px) 0;background:var(--stone);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:url(img/neural.svg) right -60px top -40px/620px no-repeat;opacity:.55;pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(32px,2rem + 2vw,56px);align-items:center}
.hero .lead{max-width:56ch}
.hero .btn-row{margin-top:var(--s6)}
.hero .small.muted{margin-top:var(--s4)!important;font-size:var(--fs-caption)}
.hero-photo{position:relative}
.hero-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 25%;border-radius:22px;box-shadow:var(--shadow)}
.hero-photo .tag{position:absolute;left:14px;right:14px;bottom:14px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:9px 14px;background:rgba(255,255,255,.96);border-radius:var(--radius-sm);box-shadow:var(--shadow);font-size:var(--fs-caption);line-height:1.3}
.hero-photo .tag strong{color:var(--green);font-family:var(--serif);font-size:1.15rem;white-space:nowrap}
.hero-photo .tag span{color:var(--muted)}
.hero-photo .tag .tag-sub{flex-basis:100%;margin-top:-2px;color:var(--green);font-weight:600;font-size:.82rem;letter-spacing:.02em}
.hero-photo img.flip{transform:scaleX(-1)}

.page-hero{position:relative;padding:clamp(32px,1.6rem + 2.2vw,60px) 0 clamp(32px,1.6rem + 1.8vw,52px);background:var(--stone);overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:url(img/neural.svg) right -80px top -60px/520px no-repeat;opacity:.45;pointer-events:none}
.page-hero .wrap{position:relative}
.page-hero h1{max-width:22ch}
.page-hero .btn-row{margin-top:var(--s5)}
.crumbs{font-size:var(--fs-caption);color:var(--muted);margin:0 0 var(--s4)}
/* page heroes with a purposeful right-hand panel */
.page-hero.has-aside .wrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(28px,1.5rem + 3vw,72px);align-items:center}
.page-hero.has-aside h1{max-width:18ch}
.page-hero.is-map .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr)}
.page-hero.is-map h1{max-width:none}
.page-hero.is-map h1 .nowrap{white-space:nowrap}
.ph-aside{position:relative}
.ph-panel{background:#fff;border:1px solid var(--stone-deep);border-radius:var(--radius-lg);padding:var(--card-pad);box-shadow:var(--shadow)}
.ph-panel > .eyebrow{margin-bottom:var(--s4)}
.ph-list{list-style:none;margin:0;padding:0}
.ph-list li{display:grid;grid-template-columns:minmax(88px,.42fr) minmax(0,1fr);gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--line);font-size:var(--fs-small);line-height:1.5}
.ph-list li:first-child{border-top:0;padding-top:0}
.ph-list li strong{color:var(--green-ink);font-weight:600}
.ph-list li span{color:var(--muted)}
.ph-list li.solo{display:block;color:var(--green-ink);font-weight:500;padding-left:26px;position:relative}
.ph-list li.solo::before{content:"";position:absolute;left:2px;top:1.05em;width:12px;height:7px;border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg)}
.ph-list li.solo:first-child::before{top:.4em}
.ph-panel .btn{width:100%;margin-top:var(--s5)}
.ph-note{font-size:var(--fs-caption);color:var(--muted);margin:var(--s4) 0 0}
.ph-panel .chips{gap:8px}
.ph-panel .chips a{padding:8px 14px;font-size:.9rem}
.ph-photo{margin:0;position:relative;max-width:380px;justify-self:end;margin-left:auto}
.ph-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.ph-photo figcaption{position:absolute;left:14px;right:14px;bottom:14px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:9px 14px;background:rgba(255,255,255,.96);border-radius:var(--radius-sm);font-size:var(--fs-caption)}
.ph-photo figcaption strong{font-family:var(--serif);font-size:1.12rem;color:var(--green)}
.ph-photo figcaption span{color:var(--muted)}
.ph-photo img.flip{transform:scaleX(-1)}
.cov-card{margin:0 0 0 auto;max-width:600px;background:#fff;border:1px solid var(--stone-deep);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--s3)}
.cov-map{display:block;width:100%;height:auto}
.cov-map .sea{fill:#dcebe8}
.cov-map path{stroke:#fff;stroke-width:1.1;stroke-linejoin:round}
.cov-map .c-oth{fill:#f4f8f7}
.cov-map .c-arr{fill:var(--sage)}
.cov-map text{font-family:var(--sans);text-anchor:middle}
.cov-map .l-home{font-size:12px;font-weight:600;fill:#fff}
.cov-map .l-sm{font-size:8.5px}
.cov-map .l-arr{font-size:11px;font-weight:600;fill:var(--green-ink)}
.cov-map .l-oth{font-size:10px;font-weight:500;fill:#8aa6a1}
.cov-map .pdot{fill:#fff;stroke:var(--green);stroke-width:2}
.cov-map .l-town{font-size:11px;font-weight:700;fill:#fff;text-anchor:start}
.cov-map .iland{fill:var(--green);opacity:.85;stroke:none}
.cov-map .ibox{fill:none;stroke:#fff;stroke-width:1.5}
.cov-map .it{font-size:10.5px;fill:var(--green);font-weight:600}
.cov-key{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--line);max-width:520px}
.cov-legend{list-style:none;margin:0 0 var(--s4);padding:0;display:grid;gap:var(--s3)}
.cov-legend li{display:grid;grid-template-columns:22px 1fr;gap:var(--s3);align-items:start;font-size:var(--fs-small);line-height:1.5}
.cov-legend strong{display:block;color:var(--green-ink);font-weight:600}
.cov-legend span{color:var(--muted)}
.key{width:22px;height:16px;border-radius:5px;margin-top:3px}
.key-home{background:var(--green)}
.key-arr{background:var(--sage)}
.key-virt{background:#fff;border:2px solid var(--green)}
.cov-key .btn{margin-top:var(--s2)}
/* centred editorial heroes where no visual is needed */
.page-hero.centered{text-align:center}
.page-hero.centered .wrap{max-width:820px}
.page-hero.centered h1{margin-left:auto;margin-right:auto}
.page-hero.centered .lead{margin-left:auto;margin-right:auto}
.page-hero.centered .btn-row{justify-content:center}
.page-hero.centered::before{background-position:right -140px top -60px}
.contact-row{list-style:none;padding:0;margin:var(--s5) 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s3) var(--s5)}
.contact-row li{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--green-ink)}
.contact-row a{display:inline-flex;align-items:center;gap:8px;min-height:44px;text-decoration:none}
.contact-row svg{color:var(--green)}
/* editorial: featured article + article thumbnails */
.art-thumb{display:block;aspect-ratio:16/7;border-radius:10px;background:var(--green) url(img/neural-light.svg) right -30px center/240px no-repeat;margin-bottom:var(--s4)}
.feature-art{display:flex;flex-direction:column;background:#fff;border:1px solid var(--stone-deep);border-radius:var(--radius-lg);padding:var(--s4);box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
.feature-art:hover{border-color:var(--green);transform:translateY(-2px)}
.feature-art .art-thumb{aspect-ratio:16/8;background-size:320px;margin-bottom:0}
.fa-body{display:flex;flex-direction:column;padding:var(--s5) var(--s3) var(--s3)}
.fa-title{font-family:var(--serif);font-weight:700;color:var(--green);font-size:clamp(1.45rem,1.25rem + .7vw,1.8rem);line-height:1.18;margin-bottom:var(--s2);text-wrap:balance}
.fa-text{color:var(--muted);font-size:var(--fs-small);line-height:1.6}
.feature-art .more{margin-top:var(--s4)}
.art-card h3{font-size:var(--fs-h3);margin:0 0 var(--s2)}
.art-card p.small{margin:0}
.art-card .art-kicker{margin-bottom:var(--s3)}
/* article pages */
.art-hero h1{font-size:clamp(2.1rem,1.5rem + 2vw,3.1rem);max-width:20ch}
.art-points{background:var(--stone);box-shadow:none}
.art-points .ticks{margin:0}
.art-points .ticks li{font-size:var(--fs-small)}
.art-body{padding-top:clamp(32px,1.6rem + 1.4vw,48px)}
/* case-study outcome tables */
.table-wrap{overflow-x:auto;margin-top:var(--s5);border:1px solid var(--line);border-radius:var(--radius)}
.cs-table{width:100%;border-collapse:collapse;font-size:var(--fs-small);min-width:520px}
.cs-table th,.cs-table td{text-align:left;vertical-align:top;padding:12px 16px;border-bottom:1px solid var(--line);line-height:1.5}
.cs-table thead th{background:var(--green);color:#fff;font-weight:600;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}
.cs-table tbody th{color:var(--green-ink);font-weight:600;width:28%}
.cs-table tbody td:last-child{color:var(--green);font-weight:600}
.cs-table tbody tr:last-child th,.cs-table tbody tr:last-child td{border-bottom:0}
.cs-note{margin-top:var(--s3)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.crumbs a{color:var(--muted)}

.creds{background:var(--green);color:#fff}
.creds ul{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s3) var(--s6);margin:0;padding:clamp(18px,1rem + .6vw,26px) 0;list-style:none}
.creds li{display:flex;align-items:center;gap:10px;font-size:.92rem;font-weight:600;color:#fff}
.creds svg{color:var(--sage);flex-shrink:0;width:22px;height:22px}
.creds .stars{color:#e3b34c;font-size:1.05rem}
.creds + section{padding-top:calc(var(--section) * .8)}

/* ---------- 6. Layout ---------- */
.grid{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(6,minmax(0,1fr))}       /* 3 columns on a 6-track grid so a short last row can be centred */
.g3 > *{grid-column:span 2}
.g3 > :nth-last-child(2):nth-child(3n+1){grid-column:2 / 4}
.g3 > :last-child:nth-child(3n+2){grid-column:4 / 6}
.g3 > :last-child:nth-child(3n+1){grid-column:3 / 5}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,2rem + 2.5vw,64px);align-items:center}
.split.top{align-items:start}
.portrait{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;border-radius:var(--radius-lg);box-shadow:var(--shadow)}

/* ---------- 7. Cards ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad);height:100%}
.card.stone{background:var(--stone);border-color:var(--stone-deep)}
.card.feature{background:var(--green);border-color:var(--green);color:var(--on-green)}
.card.feature h3,.card.feature h4{color:#fff}
.card.feature a:not(.btn){color:#fff}
.card.feature .btn-light{color:var(--green);background:#fff}
.card h3{margin-bottom:var(--s2)}
.card p.muted,.card .small{line-height:1.6}
.card .icon{width:48px;height:48px;border-radius:12px;background:var(--sage-soft);color:var(--green);display:flex;align-items:center;justify-content:center;margin-bottom:var(--s4)}
.card.feature .icon{background:rgba(255,255,255,.12);color:#fff}
.card .btn-row{margin-top:var(--s5)}
a.card{display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s,box-shadow .15s}
a.card:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:var(--shadow)}
a.card .more{margin-top:auto;padding-top:var(--s4);font-size:.93rem;color:var(--green)}
a.card:hover .more{text-decoration:underline}
#more{display:flex;flex-direction:column;justify-content:center}
.audience{padding:clamp(24px,1.4rem + 1vw,36px);display:flex;flex-direction:column}
.audience h3{font-size:var(--fs-h3-lg)}
.audience .btn-row{margin-top:auto;padding-top:var(--s5)}
.ticks{list-style:none;padding:0;margin:var(--s4) 0 0}
.ticks li{position:relative;padding-left:28px;margin-bottom:var(--s2);line-height:1.55}
.ticks li::before{content:"";position:absolute;left:2px;top:.55em;width:14px;height:8px;border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg)}
.card.feature .ticks li::before,.bg-green .ticks li::before{border-color:var(--sage)}
.badge{display:inline-block;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--sage-soft);color:var(--green);padding:4px 10px;border-radius:999px;margin-bottom:var(--s3)}
.notice{background:var(--sage-soft);border-left:4px solid var(--green);border-radius:0 12px 12px 0;padding:18px 22px;margin:var(--s5) 0}
.disclaimer{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 24px;font-size:var(--fs-small);color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0;list-style:none}
.chips a,.chips span{display:inline-block;padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;color:var(--green-ink);font-size:.93rem;font-weight:500}
.chips a:hover{border-color:var(--green);color:var(--green)}

/* "sound familiar" cards: 2 columns on a 4-track grid, odd last card centred */
.symptoms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.symptoms > *{grid-column:span 2}
.symptoms > :last-child:nth-child(odd){grid-column:2 / 4}
.symptom{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:var(--s5);text-decoration:none;color:inherit}
.symptom:hover{border-color:var(--green)}
.symptom q{display:block;font-family:var(--serif);font-size:clamp(1.15rem,1.05rem + .35vw,1.3rem);font-style:italic;color:var(--green);quotes:"\201C" "\201D";line-height:1.25;margin-bottom:var(--s2)}
.symptom span{display:block;font-size:var(--fs-small);line-height:1.55;color:var(--muted)}

/* foldable cards (tap to open) */
details.fold.card{height:auto;align-self:start}
.grid:has(> details.fold){align-items:start}
section:has(> .wrap > details.fold){padding-top:calc(var(--section) * .5)}
details.fold summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}
details.fold summary::-webkit-details-marker{display:none}
details.fold summary h3{margin:0}
details.fold summary::after{content:"+";font-size:1.6rem;line-height:1;color:var(--green);flex-shrink:0}
details.fold[open] summary::after{content:"−"}
details.fold[open] summary{margin-bottom:var(--s3)}

/* steps */
.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;gap:var(--s4)}
.steps li{counter-increment:s;position:relative;padding:4px 0 4px 58px;min-height:42px}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:40px;height:40px;border-radius:50%;background:var(--green);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}
.steps h4{margin-bottom:2px}
.steps p{margin:0;color:var(--muted);font-size:var(--fs-small);line-height:1.6}
.steps.flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 44px;margin-top:var(--s2)}
.steps.flow li{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:52px var(--s5) var(--s5);min-height:0;box-shadow:var(--shadow)}
.steps.flow li::before{left:var(--s5);top:-20px;width:44px;height:44px;font-size:1.05rem;box-shadow:0 0 0 6px var(--stone)}
.steps.flow li::after{content:"→";position:absolute;right:-33px;top:50%;transform:translateY(-50%);color:var(--green);opacity:.55;font-size:1.4rem;line-height:1}
.steps.flow li:nth-child(3n)::after,.steps.flow li:last-child::after{display:none}
.steps.flow h4{font-size:1.05rem;margin-bottom:6px}

/* testimonials */
.quote-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad);display:flex;flex-direction:column;height:100%}
.quote-card .stars{margin-bottom:var(--s3)}
.quote-card blockquote{margin:0 0 var(--s4);font-size:1.02rem;line-height:1.65;color:var(--text)}
.quote-card cite{margin-top:auto;font-style:normal;font-weight:600;color:var(--green);font-size:.95rem}
.quote-card cite span{display:block;font-weight:400;color:var(--muted);font-size:var(--fs-caption)}

/* FAQ */
.faq-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:clamp(24px,1.5rem + 2.5vw,56px);align-items:start}
.faq-side h2{margin-bottom:var(--s3)}
.faq-side p.muted{font-size:var(--fs-small);margin:0}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;position:relative;padding:var(--s4) 44px var(--s4) 0;min-height:44px;font-weight:600;font-size:1.02rem;line-height:1.45;color:var(--green-ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:1.6rem;font-weight:400;color:var(--green)}
.faq details[open] summary::after{content:"–"}
.faq details > div{padding:0 0 var(--s4);max-width:var(--measure)}
.faq details p{color:var(--muted);line-height:1.65}

/* CTA band */
.cta-band{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s5) var(--s6);background:var(--green);color:var(--on-green);border-radius:var(--radius-lg);padding:clamp(28px,1.4rem + 2vw,48px) clamp(24px,1.2rem + 2.4vw,52px)}
.cta-band::after{content:"";position:absolute;inset:0;background:url(img/neural-light.svg) right -40px center/360px no-repeat;opacity:.25;pointer-events:none}
.cta-band h2{color:#fff;font-size:clamp(1.6rem,1.3rem + 1vw,2.1rem);margin-bottom:var(--s2)}
.cta-band p{margin:0;max-width:52ch}
.cta-band .btn-row{margin-top:0;position:relative;z-index:1}

/* tables */
.price-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.price-table th,.price-table td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:top}
.price-table thead th{background:var(--green);color:#fff;font-weight:600;font-size:.95rem}
.price-table td:last-child,.price-table th:last-child{text-align:right;white-space:nowrap;font-weight:600;color:var(--green)}
.price-table thead th:last-child{color:#fff}
.price-table tr:last-child td{border-bottom:0}
.price-table small{display:block;color:var(--muted);font-weight:400}

/* ---------- 8. Forms ---------- */
.form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:.9rem;font-weight:600;color:var(--green-ink)}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;min-height:46px;padding:11px 14px;border:1.5px solid #cdd9d5;border-radius:var(--radius-sm);background:#fff;color:var(--text);width:100%}
.field input::placeholder,.field textarea::placeholder{color:#6b7c78}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--sage-soft)}
.field textarea{min-height:120px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;color:var(--muted);margin-top:var(--s4)}
.check input{margin-top:3px;accent-color:var(--green);width:20px;height:20px;flex-shrink:0}
.form .btn{width:100%;margin-top:var(--s4);padding:14px}
.form-done{display:none;background:var(--sage-soft);border:1px solid var(--green);border-radius:12px;padding:22px;text-align:center}
.form-done.show{display:block}
.quote-out{display:none;margin-top:22px;border:2px solid var(--green);border-radius:12px;padding:22px;background:var(--sage-soft)}
.quote-out.show{display:block}
.quote-line{display:flex;justify-content:space-between;gap:var(--s4);padding:9px 0;border-bottom:1px solid var(--line);font-size:.97rem}
.quote-line.total{border:0;font-weight:700;color:var(--green);font-size:1.12rem}
.quote-line.sub{font-weight:600;color:var(--green-ink)}
.quote-line.tbc span:last-child{color:var(--muted);font-style:italic;text-align:right}
.quote-sub{margin-top:var(--s3);padding-top:var(--s2);font-size:var(--fs-caption);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.q-group{border:0;padding:0;margin:0 0 var(--s5)}
.q-group legend{font-family:var(--serif);font-weight:700;font-size:1.25rem;color:var(--green);padding:0;margin-bottom:var(--s3)}
.q-rows{display:grid;gap:var(--s2)}
.q-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s3) var(--s4);border:1.5px solid var(--line);border-radius:var(--radius-sm);background:#fff;cursor:pointer}
.q-row strong{display:block;color:var(--green-ink);font-size:.97rem}
.q-row small{display:block;color:var(--muted);font-size:.86rem}
.q-row input[type=number]{width:84px;min-height:44px;font:inherit;font-size:1rem;text-align:center;padding:8px;border:1.5px solid #cdd9d5;border-radius:var(--radius-sm)}
.q-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--green);flex-shrink:0}
.q-error{margin:var(--s3) 0 0;padding:10px 14px;border-radius:var(--radius-sm);background:#fdf1ef;color:#8a2f1d;font-size:var(--fs-small);font-weight:600}
.tabs{display:inline-flex;flex-wrap:wrap;gap:6px;background:var(--stone);padding:6px;border-radius:14px;margin-bottom:var(--s6)}
.tab{font:inherit;font-weight:600;font-size:1rem;border:0;background:transparent;color:var(--green-ink);min-height:44px;padding:10px 20px;border-radius:var(--radius-sm);cursor:pointer}
.tab.active{background:var(--green);color:#fff}
.panel{display:none}
.panel.active{display:block}

/* ---------- 9. Page components ---------- */
.area-card h3{margin-bottom:var(--s1)}
.area-card p{font-size:var(--fs-small);color:var(--muted);margin-bottom:var(--s2)}
.evidence{border-left:3px solid var(--sage);padding:4px 0 4px 24px;margin-bottom:36px}
.evidence .ref{font-size:.88rem;color:var(--muted)}

/* case studies */
.cs{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(24px,1.2rem + 1.4vw,40px);margin-bottom:var(--s6);box-shadow:var(--shadow)}
.cs h2{font-size:clamp(1.6rem,1.3rem + 1vw,2.15rem);margin:0 0 var(--s4)}
.cs h3{font-size:1.3rem;margin:var(--s5) 0 var(--s2)}
.cs-glance{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.cs-glance li{background:var(--stone);border-radius:var(--radius-sm);padding:12px 16px;font-size:.92rem}
.cs-glance strong{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:2px}
.cs-results{list-style:none;padding:0;margin:var(--s4) 0 0;display:flex;flex-wrap:wrap;gap:10px}
.cs-results li{background:var(--green);color:#fff;border-radius:999px;padding:8px 16px;font-size:.9rem;font-weight:600}

/* articles */
.article{max-width:var(--measure-editorial)}
.article p,.article li{font-size:1.06rem;line-height:1.75}
.article h2{font-size:clamp(1.6rem,1.35rem + .9vw,2rem);margin:1.8em 0 .5em}
.article h3{margin:1.4em 0 .4em}
.article sup{font-size:.7em;color:var(--green);font-weight:700}
.article section,.article + section{padding:calc(var(--section) * .7) 0}
.refs{padding-left:20px}
.refs li{margin-bottom:10px;font-size:.9rem}
.art-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin:0 0 var(--s4)}
.art-kicker span+span::before{content:"·";margin-right:14px;color:var(--muted)}
.art-kicker .art-tag+span::before{content:none}
.art-tag{background:var(--green);color:#fff;border-radius:6px;padding:4px 10px;letter-spacing:.12em}
.art-kicker.sm{font-size:.72rem;margin-bottom:var(--s3)}
.art-byline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:var(--s5);padding-top:20px;border-top:1px solid var(--stone-deep)}
.art-byline img{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:50% 20%}
.art-byline strong{display:block;color:var(--green-ink);font-size:.98rem}
.art-byline div span{display:block;font-size:.85rem;color:var(--muted)}
.art-byline .art-dates{margin-left:auto;text-align:right}

/* coaching */
.phase{border-top:2px solid var(--green);padding-top:18px}
.phase .num{font-family:var(--serif);font-size:2.4rem;color:var(--sage);line-height:1;font-weight:700}
.option{text-align:center}
.option .len{font-family:var(--serif);font-size:2rem;color:var(--green);font-weight:700;line-height:1}
body.coach .hero::before,body.coach .page-hero::before{opacity:.3}

/* ---------- 10. Footer ---------- */
.site-footer{background:var(--green-ink);color:var(--on-green-muted);padding:clamp(48px,2.6rem + 1.6vw,64px) 0 var(--s6);font-size:.94rem;line-height:1.6}
.site-footer a{color:#e7f0ee;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr));gap:var(--s6) clamp(24px,1.2rem + 2vw,48px);align-items:start}
.foot-brand p{max-width:34ch;margin:0 0 var(--s3)}
.foot-contact{line-height:1.8}
.site-footer h4{color:#fff;font-size:var(--fs-eyebrow);font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:0 0 var(--s4)}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:var(--s2)}
.site-footer li a{display:inline-block;padding:2px 0}
.foot-logo{display:flex;align-items:center;justify-content:center;width:136px;height:136px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(181,211,209,.35);margin-bottom:var(--s5);overflow:hidden}
.foot-logo img{width:115px;height:auto;transform:translateX(-1px)}
.foot-legal{border-top:1px solid rgba(255,255,255,.12);margin-top:var(--s7);padding-top:var(--s5);font-size:var(--fs-caption);line-height:1.6;color:#a9bfba}
.foot-legal p{margin:0}
.action-bar{display:none}

/* ---------- 11. Responsive ---------- */
/* desktop nav: name/descriptor give way before the menu does; logo always visible */
@media (max-width:1440px){.brand-text span{display:none}}
@media (max-width:1360px){.brand-text{display:none}}
/* compact header (≤1180): logo + Enquire + Menu; full menu opens as a panel */
@media (max-width:1180px){
  .site-header .wrap{min-height:72px;gap:var(--s3)}
  .brand img{height:52px}
  .site-header .head-cta{display:inline-flex;margin-left:auto;min-height:44px;padding:0 18px}
  .site-header .burger{display:inline-flex}
  .main-nav{margin-left:0}
  /* header has backdrop-filter, so it is the containing block for this fixed panel: anchor to its bottom edge */
  .menu{display:none;position:fixed;left:0;right:0;top:100%;height:calc(100vh - var(--hdr,110px));height:calc(100dvh - var(--hdr,110px));z-index:1001;flex-direction:column;align-items:stretch;gap:0;padding:var(--s3) var(--gutter) calc(var(--s7) + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain}
  .menu.open{display:flex}
  .menu > li{border-bottom:1px solid var(--line)}
  .menu a{min-height:54px;padding:0 4px;font-size:1.12rem;border-radius:0}
  .menu a:hover,.menu a[aria-current=page]{background:transparent;color:var(--green)}
  .menu a[aria-current=page]{box-shadow:inset 3px 0 0 var(--green);padding-left:12px}
  .menu .menu-cta{border-bottom:0;margin:var(--s5) 0 0}
  .menu a.btn{justify-content:center;width:100%;min-height:52px;font-size:1.05rem;border-radius:var(--radius-sm)}
}
/* tablet (≤900) */
@media (max-width:900px){
  .page-hero.has-aside .wrap{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--s6)}
  .strip .note{display:none}
  .strip .wrap{justify-content:center}
  .g3{grid-template-columns:repeat(4,minmax(0,1fr))}
  .g3 > *,.g3 > :nth-last-child(2):nth-child(3n+1),.g3 > :last-child:nth-child(3n+2),.g3 > :last-child:nth-child(3n+1){grid-column:span 2}
  .g3 > :last-child:nth-child(odd){grid-column:2 / 4}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-brand{grid-column:1/-1;display:flex;align-items:center;gap:var(--s5)}
  .foot-brand .foot-logo{margin:0;flex-shrink:0}
  .faq-wrap{grid-template-columns:1fr;gap:var(--s4)}
  .steps.flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps.flow li:nth-child(3n)::after{display:block}
  .steps.flow li:nth-child(2n)::after,.steps.flow li:last-child::after{display:none}
}
/* tablet side-by-side (700–900) */
@media (min-width:700px) and (max-width:900px){
  .hero .wrap{grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);gap:32px}
  .split{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px}
  .g3:has(> .quote-card){grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
  .g3:has(> .quote-card) > *{grid-column:auto}
  .quote-card{padding:20px}
  .quote-card blockquote{font-size:.95rem}
}
/* single column (≤699) */
@media (max-width:699px){
  .page-hero.has-aside .wrap{grid-template-columns:1fr;gap:var(--s5)}
  .ph-panel .btn{display:none}
  .ph-photo{justify-self:start;margin:0;max-width:440px;width:100%}
  .ph-photo img{aspect-ratio:1/1;object-position:50% 18%}
  .hero .wrap,.split{grid-template-columns:1fr;gap:var(--s6)}
  .hero-photo,.portrait{max-width:440px}
  .hero-photo .tag{left:10px;right:10px;bottom:10px}
}
/* phone (≤640) */
@media (max-width:640px){
  body{font-size:1rem;padding-bottom:56px}
  .strip{font-size:.78rem}
  .strip .wrap{gap:14px;flex-wrap:nowrap;min-height:34px}
  .site-header .wrap{gap:8px;min-height:68px}
  .brand{gap:8px}
  .site-header .head-cta{padding:0 14px;font-size:.92rem}
  .burger{padding:0 12px}
  .g2,.g3,.g4,.fields,.cs-glance{grid-template-columns:1fr}
  .g3 > *,.g3 > :nth-last-child(2):nth-child(3n+1),.g3 > :last-child:nth-child(3n+2),.g3 > :last-child:nth-child(3n+1),.g3 > :last-child:nth-child(odd){grid-column:auto}
  .symptoms{grid-template-columns:1fr;gap:var(--s3)}
  .symptoms > *,.symptoms > :last-child:nth-child(odd){grid-column:auto}
  .symptom{padding:var(--s4) 18px}
  .tight .grid.g4{grid-template-columns:1fr 1fr;gap:var(--s3)}
  .tight .grid.g4 .card{padding:var(--s4)}
  .tight .grid.g4 .icon{display:none}
  .btn-row .btn{width:100%}
  .creds ul{justify-content:flex-start;gap:10px 18px}
  .creds li{font-size:.88rem}
  .foot-grid{grid-template-columns:1fr;gap:var(--s6)}
  .foot-brand{display:block}
  .foot-brand .foot-logo{margin-bottom:var(--s4)}
  .price-table th,.price-table td{padding:12px}
  .tabs{display:flex}
  .tab{flex:1;padding:10px;font-size:.92rem}
  .steps.flow{grid-template-columns:1fr;gap:30px}
  .steps.flow li::after{display:none!important}
  .bg-green .portrait{max-height:360px;object-fit:cover;object-position:50% 15%}
  .quote-card:nth-child(n+2){display:none}
  .hero-photo img{max-height:340px;object-position:50% 20%}
  .hero::before,.page-hero::before{background-size:380px;opacity:.3}
  .art-byline .art-dates{margin-left:62px;text-align:left}
  .coach-sub .wrap{flex-direction:column;align-items:flex-start;gap:var(--s2)}
  .coach-links .btn{display:none}
  .action-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:999;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.06)}
  .action-bar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px 8px;font-weight:600;text-decoration:none;color:var(--green)}
  .action-bar a + a{background:var(--green);color:#fff}
}
@media (max-width:480px){.brand-text{display:none}}

@media print{.site-header,.strip,.action-bar,.site-footer{display:none}}
@media (max-width:360px){
  .strip a[href^="mailto:"]{display:none}
  .site-header .head-cta{padding:0 12px}
  .burger{padding:0 10px}
  .burger-label{display:none}
}
