/* Mentalize — shared styles for every page (extracted from index.html). Service-page layout lives in service.css. */
/* =========================================================
   DESIGN TOKENS — lifted from the Clireo Framer template
   ========================================================= */
:root{
  --navy:#1b2978;        /* primary brand navy (buttons, headings) */
  --navy-2:#0e1954;      /* deep navy (footer / stats) */
  --navy-3:#293052;      /* body-dark */
  --pink:#fa84e0;        /* accent */
  --bg:#f5f9fc;          /* page background */
  --bg-2:#edf4fa;        /* soft panel */
  --sky:#c9e6ff;
  --white:#ffffff;
  --text:#52525a;
  --muted:#8a90a0;
  --line:#e4ebf3;
  --r-xl:24px; --r-lg:20px; --r-md:16px; --r-sm:12px;
  --font:'Golos Text','Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'Fragment Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --container:1320px;
  --gutter:32px;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:16px;line-height:1.6;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;border:0;background:none;cursor:pointer;color:inherit}
ul{list-style:none}
h1,h2,h3,h4{color:var(--navy);font-weight:500;letter-spacing:-.03em;line-height:1.05}
h2{font-size:clamp(32px,3.6vw,50px)}
h3{font-size:clamp(20px,1.8vw,24px);letter-spacing:-.02em;line-height:1.2}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.section{padding:clamp(80px,9vw,128px) 0}
/* Section prefix: pink badge */
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--pink);background:rgba(250,132,224,.14);padding:9px 14px;border-radius:999px;display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;line-height:1}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--pink);flex:none}
.eyebrow.light{color:var(--pink);background:rgba(250,132,224,.18)}
.lead{font-size:18px;line-height:1.6;color:var(--navy-3)}
.center{text-align:center}
.center .eyebrow{justify-content:center}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:16px;padding:8px 8px 8px 28px;border-radius:999px;font-weight:500;font-size:16px;line-height:1;white-space:nowrap;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn .ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;transition:transform .35s var(--ease)}
.btn:hover .ic{transform:rotate(45deg)}
.btn .ic svg{width:18px;height:18px}
.btn-light{background:#fff;color:var(--navy);box-shadow:0 10px 30px rgba(14,25,84,.08)}
.btn-light .ic{background:var(--pink);color:#fff}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy .ic{background:var(--pink);color:#fff}
.btn-soft{background:var(--bg-2);color:var(--navy)}
.btn-soft .ic{background:var(--pink);color:#fff}
.btn-pink{background:var(--pink);color:#fff;justify-content:center;padding:20px 28px;width:100%;font-size:16px;border-radius:999px}
.btn-pink:hover{box-shadow:0 12px 30px rgba(250,132,224,.35)}
.btn-solid{background:var(--navy);color:#fff;padding:18px 32px;border-radius:14px;font-weight:500}
.link-arrow{display:inline-flex;align-items:center;gap:10px;color:var(--navy);font-weight:500;font-size:17px}
.link-arrow svg{width:18px;height:18px;transition:transform .35s var(--ease)}
.link-arrow:hover svg{transform:translate(2px,-2px)}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* =========================================================
   NAV
   ========================================================= */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:18px 0;transition:background .35s var(--ease),box-shadow .35s var(--ease),padding .35s var(--ease)}
.nav .container{display:flex;align-items:center;justify-content:flex-start;gap:40px;position:relative;z-index:2}
.brand{display:inline-flex;align-items:center;transition:transform .35s var(--ease)}
.brand:hover{transform:translateY(-2px)}
.brand img{width:auto;height:72px;object-fit:contain;transition:height .35s var(--ease)}
.brand img.dark{display:none}
.nav-links{display:flex;gap:40px;font-size:16px;color:#fff;transition:color .3s}
.nav-links>a,.nav-links .has-menu>a{position:relative;padding:6px 0;opacity:.92;display:inline-flex;align-items:center;gap:6px}
.nav-links>a::after,.nav-links .has-menu>a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-links>a:hover::after,.nav-links .has-menu:hover>a::after{transform:scaleX(1)}
/* Services dropdown */
.has-menu{position:relative;padding-bottom:6px;margin-bottom:-6px}
.has-menu>a svg{width:14px;height:14px;transition:transform .3s var(--ease)}
.has-menu:hover>a svg,.has-menu:focus-within>a svg{transform:rotate(180deg)}
.dropdown{position:absolute;top:calc(100% + 6px);left:-12px;min-width:250px;background:#fff;border-radius:16px;padding:10px;box-shadow:0 24px 60px rgba(14,25,84,.18);display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility 0s .25s}
.has-menu:hover .dropdown,.has-menu:focus-within .dropdown{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.dropdown a{display:block;padding:11px 14px;border-radius:10px;color:var(--navy);font-size:15px;font-weight:500;opacity:1}
.dropdown a:hover{background:var(--bg)}
.dropdown a::after{display:none}
.nav-cta{background:#fff;color:var(--navy);padding:14px 26px;border-radius:14px;font-weight:500;font-size:16px;transition:transform .35s var(--ease),background .3s,color .3s}
.nav-cta:hover{transform:translateY(-2px)}
.burger{display:none;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.14);place-items:center;color:#fff;transition:background .3s,color .3s}
.burger svg{width:22px;height:22px}
.mobile-menu{display:none;position:fixed;inset:0;background:#fff;padding:120px var(--gutter) 48px;z-index:1;overflow-y:auto}
/* Scrolled state: white bar, black text, dark logo */
.nav.scrolled{background:#fff;box-shadow:0 8px 30px rgba(14,25,84,.08);padding:10px 0}
.nav.scrolled .brand img{height:56px}
.nav.scrolled .brand img.light{display:none}
.nav.scrolled .brand img.dark{display:block}
.nav.scrolled .nav-links{color:#111}
.nav.scrolled .nav-links a{opacity:1}
.nav.scrolled .nav-cta{background:var(--navy);color:#fff}
.nav.scrolled .burger{background:var(--bg-2);color:#111}
.nav.scrolled .mobile-menu{top:0}
[id]{scroll-margin-top:96px}
.mobile-menu a{display:block;padding:18px 0;color:var(--navy);font-weight:500;font-size:26px;letter-spacing:-.01em;border-bottom:1px solid var(--line)}
.mobile-menu a:hover{color:var(--pink)}
.mobile-menu .sub{display:flex;justify-content:space-between;align-items:center;width:100%;padding:18px 0;font:inherit;font-size:26px;font-weight:500;letter-spacing:-.01em;color:var(--navy);text-align:left;border-bottom:1px solid var(--line)}
.mobile-menu .sub svg{width:24px;height:24px;transition:transform .3s var(--ease)}
.mobile-menu .sub.open svg{transform:rotate(180deg)}
.mobile-menu .sub-links{display:none;padding:4px 0 8px;border-bottom:1px solid var(--line)}
.mobile-menu .sub.open+.sub-links{display:block}
.mobile-menu .sub-links a{padding:12px 0 12px 20px;font-weight:400;font-size:19px;border-bottom:0}
.mobile-menu.open{display:block}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;min-height:100vh;color:#fff;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img,.hero-bg video{width:100%;height:100%;object-fit:cover;object-position:center}
/* The looping clip sits over its own poster frame, so there is never a blank hero while it loads. */
.hero-bg video{position:absolute;inset:0}
@media (prefers-reduced-motion:reduce){.hero-bg video{display:none}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(14,25,84,.7) 0%,rgba(27,41,120,.45) 45%,rgba(27,41,120,.28) 100%)}
.hero h1,.hero p.lead,.backed{text-shadow:0 2px 18px rgba(14,25,84,.45)}
.hero-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:start;padding-top:140px;padding-bottom:56px}
.hero-copy{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;padding-top:12px}
.backed{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.avatars{display:flex}
.avatars span{width:44px;height:44px;border-radius:50%;background:#fff;border:2px solid rgba(255,255,255,.9);margin-left:-10px;overflow:hidden;display:grid;place-items:center}
.avatars span:first-child{margin-left:0}
.avatars img{width:100%;height:100%;object-fit:cover}
.avatars .plus{background:#fff;color:var(--navy);font-size:22px;font-weight:400}
.backed small{display:block;font-size:14px;opacity:.8;line-height:1.3}
.backed b{font-weight:500;font-size:16px}
.hero h1{color:#fff;font-size:clamp(42px,5.2vw,76px);line-height:1.02;max-width:12ch;margin-bottom:24px}
.hero p.lead{color:rgba(255,255,255,.92);max-width:520px;font-size:clamp(17px,1.4vw,20px)}
.hero-stat{margin-top:clamp(40px,7vh,88px);display:flex;flex-direction:column;gap:14px}
.hero-logos{position:relative;width:100%;max-width:560px;height:64px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.hero-logos-track{position:absolute;left:0;top:0;display:flex;width:max-content;animation:heromarquee 20s linear infinite}
.hero-logos:hover .hero-logos-track{animation-play-state:paused}
.hero-logos .group{display:flex;align-items:center;gap:52px;padding-right:52px;flex:none}
.hero-logos span{display:grid;place-items:center;height:64px;flex:none}
.hero-logos img{height:58px;width:auto;max-width:140px;object-fit:contain;opacity:.95}
@keyframes heromarquee{to{transform:translateX(-50%)}}
.hero-logos img.mono{filter:brightness(0) invert(1)}
.hero-logos img.zoom{transform:scale(1.35)}

.book{background:#fff;border-radius:var(--r-xl);padding:36px;color:var(--navy);max-width:500px;margin-left:auto;box-shadow:0 40px 80px rgba(14,25,84,.25)}
.book h3{font-size:26px;line-height:1.15;margin-bottom:22px;letter-spacing:-.03em}
/* Honeypot: off-screen and skipped by keyboard and screen readers, so only bots fill it. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.field{margin-bottom:16px}
.field label{display:block;font-size:15px;font-weight:500;margin-bottom:8px;color:var(--navy)}
.field input,.field select,.field textarea{width:100%;background:var(--bg);border:1px solid transparent;border-radius:var(--r-sm);padding:15px 16px;font:inherit;font-size:15px;color:var(--navy);outline:0;transition:border-color .25s,box-shadow .25s}
.field input::placeholder,.field textarea::placeholder{color:#a3a9b8}
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(27,41,120,.35);box-shadow:0 0 0 4px rgba(27,41,120,.06)}
.field textarea{min-height:120px;resize:vertical}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%231b2978' stroke-width='1.6'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.book .note{font-size:13px;color:var(--muted);margin-top:14px;text-align:center}
.book .success{display:none;padding:28px 8px;text-align:center}
.book .success svg{width:56px;height:56px;margin:0 auto 14px}
.book.sent form{display:none}.book.sent .success{display:block}

/* =========================================================
   ABOUT
   ========================================================= */
.about-head{max-width:900px;margin:0 auto}
.about-head h2{font-size:clamp(28px,3.2vw,44px);line-height:1.1}
.about-actions{display:flex;align-items:center;justify-content:center;gap:40px;margin-top:36px;flex-wrap:wrap}
.trusted{display:flex;align-items:center;gap:12px;text-align:left}
.trusted small{display:block;font-size:14px;color:var(--muted)}
.trusted b{font-weight:500;color:var(--navy);font-size:16px}
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:72px}
.card{background:#fff;border-radius:var(--r-lg);padding:32px;display:flex;flex-direction:column;justify-content:space-between;min-height:380px;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.card:hover{transform:translateY(-6px);box-shadow:0 30px 60px rgba(14,25,84,.08)}
.icon{width:60px;height:60px;color:var(--pink)}
.icon svg{width:100%;height:100%}
.card h3{margin:0 0 12px}
.card p{font-size:16px;line-height:1.65}

/* =========================================================
   MARQUEE
   ========================================================= */
.marquee{overflow:hidden;padding:20px 0 40px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{display:flex;align-items:center;gap:56px;padding-right:56px;font-size:clamp(48px,6.4vw,92px);font-weight:500;letter-spacing:-.035em;color:var(--navy);white-space:nowrap;line-height:1.2}
.marquee-track span svg{width:.5em;height:.5em;color:var(--navy);flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* =========================================================
   TREATMENTS (dark carousel)
   ========================================================= */
.treat{background:var(--navy);color:#fff;overflow:hidden;position:relative}
.treat h2{color:#fff;max-width:14ch}
/* Photo behind navy bands, tinted with the brand blue */
.sec-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.sec-bg img{width:100%;height:100%;object-fit:cover}
.sec-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,32,110,.9),rgba(27,41,120,.86))}
.treat>*,.stats>*{position:relative;z-index:1}
.treat>.sec-bg,.stats>.sec-bg{position:absolute;z-index:0}
.track-wrap{position:relative;margin-top:56px}
.track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 max(var(--gutter),calc((100vw - var(--container)) / 2 + var(--gutter)));scroll-padding:0 max(var(--gutter),calc((100vw - var(--container)) / 2 + var(--gutter)))}
.track::-webkit-scrollbar{display:none}
.tcard{position:relative;flex:0 0 min(460px,82vw);aspect-ratio:460/515;border-radius:var(--r-md);overflow:hidden;scroll-snap-align:start;background:#0e1954;transition:opacity .5s var(--ease)}
.tcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.tcard:hover img{transform:scale(1.05)}
.tcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,25,84,0) 40%,rgba(14,25,84,.92) 100%)}
.tcard .body{position:absolute;left:28px;right:28px;bottom:28px;z-index:2}
.tcard .chip{width:60px;height:60px;border-radius:14px;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;margin-bottom:22px;color:#fff}
.tcard .chip svg{width:28px;height:28px}
.tcard h3{color:#fff;font-size:28px;margin-bottom:8px}
.tcard p{color:rgba(255,255,255,.82);font-size:16px;line-height:1.55;max-width:34ch}
.tcard.dim{opacity:.32}
.arrows{display:flex;justify-content:center;gap:16px;margin-top:32px}
.arrows button{width:46px;height:46px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;transition:transform .3s var(--ease)}
.arrows button:hover{transform:scale(1.06)}
.arrows svg{width:18px;height:18px}
.treat-foot{display:flex;align-items:center;gap:32px;margin-top:40px}
.treat-foot p{max-width:330px;color:rgba(255,255,255,.85);font-size:17px;line-height:1.5}
.treat-foot .rule{flex:1;height:1px;background:rgba(255,255,255,.18)}
.treat-foot .link-arrow{color:#fff}

/* =========================================================
   VALUES
   ========================================================= */
.values-grid{display:grid;grid-template-columns:1fr 1.05fr 1fr;border:1px solid var(--line);border-radius:var(--r-xl);margin-top:64px;background:#fff;overflow:hidden}
.vcol{display:flex;flex-direction:column}
.vitem{display:grid;grid-template-columns:48px 1fr;gap:24px;padding:40px 36px;flex:1;border-bottom:1px solid var(--line)}
.vitem:last-child{border-bottom:0}
.vitem .icon{width:48px;height:48px}
.vitem h3{font-size:26px;margin-bottom:10px}
.vitem p{font-size:16px;line-height:1.6}
.vmedia{padding:36px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.vmedia img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-md);min-height:560px}

/* =========================================================
   RESULTS / TESTIMONIALS
   ========================================================= */
.results-head{max-width:760px;margin:0 auto}
.results-head p{margin-top:22px}
/* Autoplay video component (muted autoplay, tap for sound) */
.vid{position:relative;border-radius:var(--r-md);overflow:hidden;background:#0e1954}
.vid img,.vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vid video{opacity:0;transition:opacity .6s ease}
.vid.ready video{opacity:1}
.vid .tag{position:absolute;top:18px;left:18px;z-index:3;background:rgba(255,255,255,.92);color:var(--navy);font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;border-radius:999px}
.snd{position:absolute;right:14px;bottom:14px;z-index:3;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.94);color:var(--navy);border-radius:999px;padding:9px 14px 9px 11px;font-size:13px;font-weight:500;box-shadow:0 6px 20px rgba(14,25,84,.25);transition:transform .3s var(--ease)}
.snd:hover{transform:translateY(-2px)}
.snd svg{width:16px;height:16px}
.snd .on{display:none}
.vid.sound .snd .off{display:none}.vid.sound .snd .on{display:block}
.vid.sound .snd{background:var(--pink);color:#fff}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.quote{background:#fff;border-radius:var(--r-md);padding:32px;display:flex;flex-direction:column;justify-content:space-between;gap:36px}
.stars5{display:flex;gap:4px;color:#f5b400}
.stars5 svg{width:18px;height:18px}
.quote p{color:var(--navy);font-size:17px;line-height:1.6;margin-top:18px}
.who{display:flex;align-items:center;gap:14px}
.who .av{width:46px;height:46px;border-radius:50%;color:#fff;display:grid;place-items:center;font-weight:500;font-size:18px}
.who .av.c1{background:var(--pink)}
.who .av.c2{background:var(--navy)}
.who .av.c3{background:#0099ff}
.who b{display:block;font-weight:500;color:var(--navy)}
.who small{color:var(--muted);font-size:14px}
.results-cta{display:flex;justify-content:center;margin-top:56px}

/* =========================================================
   APPROACH
   ========================================================= */
.approach-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:64px}
.approach-left{position:sticky;top:96px;align-self:start}
.approach-left .lead{max-width:520px;margin-bottom:48px}
.tabs{display:flex;flex-direction:column;gap:12px;max-width:240px}
.tabs button{display:flex;align-items:center;gap:12px;background:#fff;color:var(--navy);padding:14px 22px;border-radius:12px;font-weight:500;font-size:17px;text-align:left;transition:background .3s,color .3s}
.tabs button svg{width:20px;height:20px;color:var(--pink);flex:none}
.tabs button.active{background:var(--navy);color:#fff}
.tabs button.active svg{color:var(--pink)}
.approach-right{display:flex;flex-direction:column;gap:32px}
.approach-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:8px}
.panel{background:#fff;border-radius:var(--r-xl);padding:16px 16px 28px;scroll-margin-top:110px}
.panel .media{border-radius:var(--r-md);overflow:hidden;aspect-ratio:16/9;position:relative;background:#0e1954}
.panel .media img,.panel .media video{width:100%;height:100%;object-fit:cover}
.panel .p-body{padding:22px 8px 0}
.panel h3{font-size:28px;margin-bottom:12px}
.panel p{font-size:16px;line-height:1.65;max-width:56ch}

/* =========================================================
   STORY — "Unlock Your True Potential" (Gerry's video)
   ========================================================= */
.story{background:#fff}
.story-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:64px;align-items:center}
.story-copy .lead{max-width:520px;margin:20px 0 28px}
.story-list{display:flex;flex-direction:column;gap:14px;margin-bottom:36px}
.story-list li{display:flex;gap:14px;align-items:flex-start;color:var(--navy);font-weight:500;font-size:17px;line-height:1.4}
.story-list li svg{width:22px;height:22px;color:var(--pink);flex:none;margin-top:2px}
.story-media{background:var(--bg);border-radius:var(--r-xl);padding:14px}
.story-media .vid{aspect-ratio:16/9}
.story-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 8px 4px;color:var(--muted);font-size:14px;flex-wrap:wrap}
.story-meta b{color:var(--navy);font-weight:500;font-size:15px}

/* =========================================================
   FOUNDER (team section — Gerry only)
   ========================================================= */
.founder{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center;margin-top:56px}
.founder .photo{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/5;background:var(--bg-2)}
.founder .photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;transition:transform 1.2s var(--ease)}
.founder:hover .photo img{transform:scale(1.03)}
.founder-body h3{font-size:clamp(24px,2.2vw,30px);margin-bottom:6px}
.founder-body .role{color:var(--muted);font-size:16px;margin-bottom:22px;display:block}
.founder-body p{font-size:17px;line-height:1.65;margin-bottom:16px}
.founder-tags{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 28px}
.founder-tags span{background:var(--bg-2);color:var(--navy);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500}
.founder-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.founder-actions .soc{width:48px;height:48px;border-radius:14px;background:var(--bg-2);display:grid;place-items:center;color:var(--navy)}
.founder-actions .soc svg{width:20px;height:20px}


/* =========================================================
   STATS
   ========================================================= */
.stats{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.stats h2{color:#fff;font-size:clamp(28px,2.8vw,38px);max-width:14ch;margin:0 auto}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-md);margin-top:56px}
.stat{padding:64px 24px;text-align:center;border-right:1px solid rgba(255,255,255,.12)}
.stat:last-child{border-right:0}
.stat .n{font-size:clamp(48px,5vw,72px);font-weight:500;letter-spacing:-.04em;line-height:1;margin-bottom:16px}
.stat p{color:rgba(255,255,255,.75);font-size:16px}

/* =========================================================
   SHOP (replaces blog)
   ========================================================= */
.shop-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px}
.shop-head h2{max-width:16ch}
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.product .img{display:block;aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;background:#fff;border:1px solid var(--line);padding:8%;box-sizing:border-box}
.product .img img{width:100%;height:100%;object-fit:contain;transition:transform 1.2s var(--ease)}
.product:hover .img img{transform:scale(1.04)}
.product .meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:15px;margin:22px 0 8px}
.product .meta i{width:4px;height:4px;border-radius:50%;background:var(--muted);display:inline-block}
.product .meta b{color:var(--navy);font-weight:500}
.product h3{font-size:21px;margin-bottom:8px}
.product p{font-size:15px;line-height:1.5;color:var(--text);margin-bottom:14px}
.shop-link{display:inline-flex;align-items:center;gap:8px;color:var(--pink);font-weight:500;font-size:15px}
.shop-link svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.shop-link:hover svg{transform:translate(2px,-2px)}
.shop-desc{max-width:760px;margin-top:20px}

/* =========================================================
   FAQ
   ========================================================= */
.faq-grid{display:grid;grid-template-columns:1fr 1.55fr;gap:64px}
.faq-left{display:flex;flex-direction:column;gap:28px}
.faq-left h2{font-size:clamp(36px,4vw,56px)}
.need{max-width:380px}
.need p{color:var(--text);font-size:17px;line-height:1.5;margin-bottom:22px}
.acc{display:flex;flex-direction:column;gap:14px}
.acc-item{background:#fff;border-radius:var(--r-md);padding:8px 24px}
.acc-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;text-align:left;color:var(--navy);font-size:20px;font-weight:500;letter-spacing:-.01em}
.acc-btn .tg{width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;flex:none;transition:transform .4s var(--ease)}
.acc-btn .tg svg{width:14px;height:14px}
.acc-item.open .acc-btn .tg{transform:rotate(45deg)}
.acc-body{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.acc-body p{padding:0 0 24px;font-size:17px;line-height:1.6;max-width:60ch}

/* =========================================================
   CTA + FOOTER
   ========================================================= */
.footer{background:var(--navy-2);color:#fff;padding:0 0 40px}
/* Full-bleed CTA band: photo behind a navy tint, same treatment as the other blue bands */
.cta{position:relative;overflow:hidden;min-height:520px;display:grid;place-items:center;text-align:center;padding:clamp(96px,11vw,150px) 24px;isolation:isolate}
.cta .sec-bg{z-index:-2}
.cta .sec-bg::after{display:none}
.cta::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,25,84,.6),rgba(14,25,84,.82));z-index:-1}
.cta h2{color:#fff;font-size:clamp(34px,4vw,52px);margin-bottom:18px}
.cta p{color:rgba(255,255,255,.85);max-width:460px;margin:0 auto 34px;font-size:17px}
.cta-row{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}
.cta .btn-light .ic{background:var(--pink)}
.cta-trust{text-align:left;color:#fff}
.cta-trust b{display:block;font-weight:500;font-size:18px}
.cta-trust small{opacity:.85;font-size:15px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;margin-top:80px}
.news h4{color:#fff;font-size:20px;font-weight:500;max-width:22ch;margin-bottom:22px;line-height:1.3}
.news form{display:flex;gap:6px;max-width:380px}
.news input{flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:14px 16px;color:#fff;font:inherit;outline:0}
.news input::placeholder{color:rgba(255,255,255,.5)}
.news button{width:48px;height:48px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;display:grid;place-items:center}
.news button svg{width:16px;height:16px}
.news small{display:block;margin-top:12px;color:rgba(255,255,255,.6);font-size:14px}
.fcol h5{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:22px;font-weight:400}
.fcol a{display:block;padding:5px 0;font-size:16px;color:#fff;opacity:.92}
.fcol a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.foot-bottom{margin-top:80px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:15px;color:rgba(255,255,255,.85)}
.foot-bottom a{text-decoration:underline;text-underline-offset:3px}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1180px){
  .story-grid,.founder{gap:40px}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.12)}
  .foot-grid{grid-template-columns:1fr 1fr;gap:40px}
}
@media (max-width:1000px){
  .nav-links{display:none}
  .burger{display:grid}
  .brand img{height:62px}
  .hero-inner{grid-template-columns:minmax(0,1fr);padding-top:120px}
  .hero-bg img,.hero-bg video{object-position:center}
  .hero-copy{min-height:0}
  .book{margin:0;max-width:100%}
  .cards-3{grid-template-columns:1fr}
  .card{min-height:0;gap:36px}
  .values-grid{grid-template-columns:1fr}
  .vmedia{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px}
  .vmedia img{min-height:0;aspect-ratio:4/3}
  .videos,.quotes,.products{grid-template-columns:1fr}
  .approach-grid,.faq-grid{grid-template-columns:1fr;gap:40px}
  .story-grid,.founder{grid-template-columns:1fr;gap:32px}
  .founder .photo{aspect-ratio:4/3}
  .approach-left{position:static}
  .tabs{flex-direction:row;flex-wrap:wrap;max-width:none}
  .faq-left{gap:36px}
  .shop-head{flex-direction:column;align-items:flex-start}
}
@media (max-width:600px){
  :root{--gutter:20px}
  .section{padding:72px 0}
  .hero h1{font-size:52px}
  .book{padding:26px 22px}
  .field-row{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr}
  .stat{border-right:0;border-bottom:1px solid rgba(255,255,255,.12);padding:44px 20px}
  .stat:last-child{border-bottom:0}
  .foot-grid{grid-template-columns:1fr}
  .cta{min-height:0;padding:56px 20px}
  .vitem{padding:28px 22px;grid-template-columns:40px 1fr;gap:16px}
  .marquee-track span{gap:28px;padding-right:28px}
  .hero-stat .big{font-size:64px}
  .treat-foot{flex-direction:column;align-items:flex-start;gap:20px}
  .treat-foot .rule{display:none}
  .acc-btn{font-size:17px}
}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .marquee-track,.hero-logos-track{animation:none}
  html{scroll-behavior:auto}
}

/* Solid nav variant: pages without a dark hero (e.g. product.html). Same look as .scrolled, applied from first paint with no transition. */
.nav.solid,.nav.solid .nav-links,.nav.solid .nav-cta,.nav.solid .burger,.nav.solid .brand img{transition:none}
.nav.solid{background:#fff;box-shadow:0 8px 30px rgba(14,25,84,.08);padding:10px 0}
.nav.solid .brand img{height:56px}
.nav.solid .brand img.light{display:none}
.nav.solid .brand img.dark{display:block}
.nav.solid .nav-links{color:#111}
.nav.solid .nav-links a{opacity:1}
.nav.solid .nav-cta{background:var(--navy);color:#fff}
.nav.solid .burger{background:var(--bg-2);color:#111}
.nav.solid .mobile-menu{top:0}

/* Nav CTA as a pill with the pink arrow chip, matching the other buttons */
.nav-cta.btn{padding:7px 7px 7px 22px;border-radius:999px;font-size:15px;gap:12px;box-shadow:none}
.nav-cta.btn .ic{width:38px;height:38px;border-radius:50%;background:var(--pink);color:#fff}
.nav.scrolled .nav-cta.btn,.nav.solid .nav-cta.btn{background:var(--navy);color:#fff}

/* Flat nav with seven items: tighter spacing, burger kicks in earlier; home shop images greyed out */
.nav-links{gap:28px;font-size:15px}
@media (max-width:1280px){
  .nav-links{gap:18px;font-size:14px}
  .nav-cta.btn{font-size:14px;padding:6px 6px 6px 16px;gap:10px}
  .nav-cta.btn .ic{width:34px;height:34px}
  .brand img{height:60px}
}
@media (max-width:1120px){
  .nav-links{display:none}
  .burger{display:grid}
  .nav-cta.btn{font-size:14px;padding:6px 6px 6px 16px;gap:10px}
  .nav-cta.btn .ic{width:34px;height:34px}
}
@media (max-width:480px){
  .nav .container{gap:12px}
  .brand img{height:50px}
  .nav-cta.btn{font-size:13px;padding:5px 5px 5px 14px;gap:8px}
  .nav-cta.btn .ic{width:32px;height:32px}
}
/* Service cards: no icon chip on phones */
@media (max-width:700px){.tcard .chip,.xcard .badge{display:none}}

/* Nav: CTA hugs the right edge, burger next to it; open-menu state keeps the bar white */
.nav-cta{margin-left:auto}
.burger{flex:none}
.burger .x{display:none}
.burger.open .lines{display:none}
.burger.open .x{display:block}
.nav.menu-open{background:#fff;box-shadow:none}
.nav.menu-open .brand img.light{display:none}
.nav.menu-open .brand img.dark{display:block}
.nav.menu-open .nav-cta.btn{background:var(--navy);color:#fff}
.nav.menu-open .burger{background:var(--bg-2);color:#111}
body.menu-open{overflow:hidden}
/* Home treatments: description sits under the title */
.treat-lead{max-width:600px;color:rgba(255,255,255,.85);font-size:17px;line-height:1.55;margin-top:18px}

/* Click-to-play video: red YouTube-style play button over the poster */
.yt-play{position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:linear-gradient(180deg,rgba(14,25,84,.04),rgba(14,25,84,.28));cursor:pointer}
.yt-play svg{width:86px;height:60px;filter:drop-shadow(0 8px 22px rgba(0,0,0,.35));transition:transform .3s var(--ease)}
.yt-play:hover svg{transform:scale(1.07)}
.vid.playing .yt-play,.vid.playing img{display:none}
.vid.manual video{opacity:1}

/* Founder: prefix + title live in the right column */
.founder-body .eyebrow{margin-bottom:16px}
.founder-body h2{margin-bottom:6px}
.founder-body .role{margin-bottom:18px}

/* Bolder nav items */
.nav-links>a,.nav-links .has-menu>a{font-weight:600}
/* Mobile: approach cards stack on top of each other as you scroll */
@media (max-width:900px){
  .approach-right{gap:20px}
  .approach-right .panel{position:sticky;box-shadow:0 -14px 40px rgba(14,25,84,.14);border:1px solid var(--line)}
  .approach-right .panel:nth-of-type(1){top:96px}
  .approach-right .panel:nth-of-type(2){top:112px}
  .approach-right .panel:nth-of-type(3){top:128px}
  .approach-right .panel:last-of-type{margin-bottom:40px}
}

/* =========================================================
   BASKET (assets/cart.js)
   ========================================================= */
.cart-btn{position:relative;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;flex:none;transition:background .3s,color .3s}
.cart-btn svg{width:22px;height:22px}
.nav.scrolled .cart-btn,.nav.solid .cart-btn,.nav.menu-open .cart-btn{background:var(--bg-2);color:#111}
.cart-count{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--pink);color:#fff;font-size:12px;font-weight:600;display:grid;place-items:center;line-height:1}
.cart-overlay{position:fixed;inset:0;background:rgba(14,25,84,.45);z-index:95;opacity:0;pointer-events:none;transition:opacity .3s}
.cart-overlay.open{opacity:1;pointer-events:auto}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);background:#fff;z-index:96;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .35s var(--ease);box-shadow:-20px 0 60px rgba(14,25,84,.2)}
.cart-drawer.open{transform:none}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}
.cart-head b{font-size:20px;color:var(--navy);font-weight:500}
.cart-close{width:40px;height:40px;border-radius:50%;background:var(--bg);color:var(--navy);display:grid;place-items:center}
.cart-close svg{width:18px;height:18px}
.cart-items{flex:1;overflow-y:auto;padding:8px 22px}
.cart-item{display:grid;grid-template-columns:72px 1fr auto;gap:14px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}
.cart-item .thumb{width:72px;height:72px;border-radius:12px;border:1px solid var(--line);background:#fff;padding:6px;object-fit:contain;display:block}
.cart-item b{display:block;color:var(--navy);font-weight:500;font-size:15px;line-height:1.3}
.cart-item small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.cart-item .line{text-align:right;color:var(--navy);font-weight:600;font-size:15px;padding-top:2px}
.cart-qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;margin-top:10px}
.cart-qty button{width:30px;height:30px;color:var(--navy);font-size:16px;background:transparent}
.cart-qty span{min-width:28px;text-align:center;font-size:14px;color:var(--navy)}
.cart-remove{background:none;color:var(--muted);font-size:13px;text-decoration:underline;text-underline-offset:2px;margin-top:8px;display:block;padding:0}
.cart-empty{text-align:center;color:var(--muted);padding:56px 12px;font-size:15px;line-height:1.8}
.cart-empty a{color:var(--navy);font-weight:500;text-decoration:underline;text-underline-offset:2px}
.cart-foot{padding:18px 22px 22px;border-top:1px solid var(--line);background:#fff}
.cart-sub{display:flex;justify-content:space-between;font-size:17px;color:var(--navy);margin-bottom:6px}
.cart-sub b{font-weight:600}
.cart-note{font-size:13px;color:var(--muted);margin-bottom:14px}
.cart-checkout{width:100%}
.cart-checkout:disabled{opacity:.5;cursor:not-allowed}
.cart-continue{width:100%;text-align:center;padding:12px;color:var(--navy);font-weight:500;font-size:15px;margin-top:6px;background:none}
.cart-notice{margin-top:14px;background:rgba(250,132,224,.12);border:1px solid rgba(250,132,224,.45);border-radius:12px;padding:14px;font-size:14px;color:var(--navy);line-height:1.5}
.cart-notice b{display:block;margin-bottom:4px;font-weight:600}
.cart-notice a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}
.cart-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:12px 18px;border-radius:999px;font-size:14px;font-weight:500;z-index:97;box-shadow:0 14px 36px rgba(14,25,84,.3);white-space:nowrap}
body.cart-open{overflow:hidden}
@media (max-width:480px){.cart-btn{width:40px;height:40px}.cart-btn svg{width:20px;height:20px}.nav .container{gap:8px}.brand img{height:46px}}

/* Nav fit with the basket button: tighter gaps, no wrapping; hide empty badge */
.nav .container{gap:24px}
.nav-links{gap:22px}
.nav-links>a,.nav-links .has-menu>a{white-space:nowrap}
.cart-count[hidden]{display:none}
@media (max-width:1280px){.nav-links{gap:16px}.nav .container{gap:16px}}
.brand{flex:none}

/* Extra-compact nav between 1120px and 1200px so the basket + CTA still fit */
@media (max-width:1200px){
  .nav .container{gap:12px}
  .nav-links{gap:12px;font-size:13.5px}
  .cart-btn{width:40px;height:40px}
  .cart-btn svg{width:20px;height:20px}
  .nav-cta.btn{font-size:13px;padding:5px 5px 5px 14px;gap:8px}
  .nav-cta.btn .ic{width:32px;height:32px}
}

/* Basket icon: plain icon (no circle), pushed right next to the CTA; on mobile it lives in the menu */
.cart-btn{background:transparent;width:40px;height:40px;margin-left:auto}
.nav.scrolled .cart-btn,.nav.solid .cart-btn,.nav.menu-open .cart-btn{background:transparent;color:#111}
.cart-btn:hover{color:var(--pink)}
.cart-btn svg{width:24px;height:24px}
.cart-btn+.nav-cta{margin-left:0}
.cart-count{top:0;right:0}
.cart-menu-link{display:flex!important;justify-content:space-between;align-items:center}
.cart-menu-link>span:first-child{display:inline-flex;align-items:center;gap:12px}
.cart-menu-link svg{width:26px;height:26px}
.cart-menu-count{min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--pink);color:#fff;font-size:14px;font-weight:600;display:grid;place-items:center}
.cart-menu-count[hidden]{display:none}
@media (max-width:1120px){.cart-btn{display:none}}

/* Account icon beside the basket; mobile bar keeps CTA + burger flush right */
.acct-btn{background:transparent;width:40px;height:40px;color:#fff;display:grid;place-items:center;flex:none;transition:color .3s}
.acct-btn svg{width:24px;height:24px}
.nav.scrolled .acct-btn,.nav.solid .acct-btn,.nav.menu-open .acct-btn{color:#111}
.acct-btn:hover{color:var(--pink)}
.acct-btn+.nav-cta{margin-left:0}
@media (max-width:1120px){
  .acct-btn{display:none}
  .nav-cta.btn{margin-left:auto}
}

/* Sept 2026 brief: question-style hero heading, two-card Ways We Can Help, footer strapline */
/* Three lines: "Are you controlling your" / "behaviour, or is it" / "controlling you?".
   The breaks are forced with <br class="hb">, but only while the hero is two columns.
   Below 1000px the column is full width and the forced break would orphan "your",
   so the breaks are dropped and the heading wraps on its own. */
/* Cap is 52px, not 60px: the container stops growing at 1320px while 4vw keeps rising,
   so a 60px cap overflowed line one on wide screens and wrapped it to four lines. */
.hero h1.hero-q{max-width:none;font-size:clamp(34px,4vw,52px);line-height:1.1;letter-spacing:-.02em}
@media (max-width:1000px){.hero h1.hero-q .hb{display:none}}
.track.two{overflow:visible;scroll-snap-type:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:0 var(--gutter);max-width:var(--container);margin:0 auto;box-sizing:border-box}
.track.two .tcard{flex:none;aspect-ratio:auto;min-height:520px}
.track.two .tcard p{max-width:none}
.track.two .tcard p+p{margin-top:10px}
.track.two .tcard .body{left:28px;right:28px;bottom:28px}
.track.two .tcard img{position:absolute;inset:0}
.track.two .tcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,25,84,0) 30%,rgba(14,25,84,.92) 100%)}
.track.two .tcard .body{z-index:2}
.track.two .tcard.dim{opacity:1}
@media (max-width:900px){.track.two{grid-template-columns:1fr}.track.two .tcard{min-height:440px}}
.news .foot-approach{font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.78);margin:-8px 0 18px;max-width:34ch}

/* Two-card Ways We Can Help: no carousel arrows. Shop pages: no consultation CTA, burger hugs the right */
.arrows[hidden]{display:none}
@media (max-width:1120px){.nav .container:not(:has(.nav-cta)) .burger{margin-left:auto}}

/* Service cards: diagonal arrow top-right */
.tcard .go{position:absolute;top:20px;right:20px;z-index:3;width:46px;height:46px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center;box-shadow:0 8px 24px rgba(14,25,84,.25);transition:transform .35s var(--ease)}
.tcard .go svg{width:20px;height:20px}
.tcard:hover .go{transform:rotate(45deg)}
/* Forms without labels: placeholder carries the field name */
.field input::placeholder,.field textarea::placeholder{color:#6b7390}

/* Hero: Google review row (avatars + stars + rating) */
.rating{display:flex;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.rating .avatars span{width:40px;height:40px;border:2px solid rgba(255,255,255,.95);margin-left:-10px}
.rating .avatars span:first-child{margin-left:0}
.rating-text{display:flex;flex-direction:column;gap:3px}
.rating .stars5{gap:3px}
.rating .stars5 svg{width:16px;height:16px;filter:drop-shadow(0 2px 6px rgba(14,25,84,.35))}
.rating-line{display:flex;align-items:center;gap:8px;color:#fff;font-size:15px;font-weight:600;letter-spacing:-.01em;text-shadow:0 2px 14px rgba(14,25,84,.45)}
@media (max-width:480px){.rating{gap:12px}.rating .avatars span{width:34px;height:34px;margin-left:-8px}.rating-line{font-size:14px}}
/* Mobile menu: Cart and Account rows are plain text (no icons) */
.cart-menu-link>span:first-child{gap:0}