/* ============================================================
   BODY BOOST — boutique health editorial
   Palette: warm paper, charcoal ink, brand blue as precision accent
   ============================================================ */
:root{
  --paper:#FBFAF7;
  --ink:#212A2C;
  --soft:#5A6A6D;
  --blue:#00A3C1;
  --deep:#0B3B47;
  --mist:#F0F6F7;
  --line:rgba(11,59,71,.14);
  --display:"Inter",system-ui,sans-serif;
  --body:"Inter",system-ui,sans-serif;
  --max:1080px;
  --r:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{font-family:var(--body);font-size:18px;line-height:1.7;color:var(--ink);background:var(--paper)}
img{max-width:100%;display:block}
.photo{border-radius:var(--r);filter:saturate(.95) contrast(1.03)}
a{color:var(--blue);text-decoration-thickness:1.5px;text-underline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 26px}
.narrow{max-width:720px;margin:0 auto;padding:0 26px}

h1,h2,h3{font-family:var(--display);font-weight:800;color:var(--ink);line-height:1.14;letter-spacing:-.02em}
h1{font-size:clamp(2.3rem,5.2vw,3.6rem)}
h2{font-size:clamp(1.7rem,3.4vw,2.35rem);margin-bottom:.55em}
h3{font-size:1.28rem;margin-bottom:.4em;font-weight:700}
.eyebrow{font-family:var(--body);font-weight:600;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin-bottom:14px}
.softtext{color:var(--soft)}
.section{padding:88px 0}
.section.tight{padding:64px 0}
.rule{border:0;border-top:1px solid var(--line);margin:0}

/* signature brush underline */
.u{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 9' preserveAspectRatio='none'%3E%3Cpath d='M3 6 C 28 2.5, 62 8, 117 4' stroke='%2300A3C1' stroke-width='3.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat bottom/100% .16em;padding-bottom:.14em}

.btn{display:inline-block;font-family:var(--body);font-weight:600;font-size:.98rem;text-decoration:none;border-radius:999px;padding:15px 32px;transition:transform .15s,background .15s,color .15s;cursor:pointer;border:none}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:#0091AC;transform:translateY(-1px)}
.btn-ink{border:1.5px solid var(--ink);color:var(--ink);background:transparent}
.btn-ink:hover{background:var(--ink);color:var(--paper)}
.btn-white{background:#fff;color:var(--deep)}

/* header */
header.site{position:sticky;top:0;z-index:60;background:rgba(251,250,247,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:14px;padding-bottom:14px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo img{width:44px;height:44px}
.logo span{font-family:var(--display);font-weight:600;font-size:1.22rem;color:var(--ink)}
nav.main{display:flex;align-items:center;gap:26px}
nav.main a{font-family:var(--body);font-weight:600;font-size:.94rem;color:var(--ink);text-decoration:none}
nav.main a:hover,nav.main a.active{color:var(--blue)}
nav.main .btn{padding:11px 22px;font-size:.9rem}
@media(max-width:920px){nav.main{gap:16px}nav.main a{font-size:.87rem}}
@media(max-width:730px){nav.main a:not(.btn){display:none}}

.announce{background:var(--deep);color:#fff;text-align:center;font-size:.9rem;padding:9px 20px}
.announce strong{color:#7ADCEF}

/* home hero */
.hero{padding:84px 0 90px}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
@media(max-width:880px){.hero .wrap{grid-template-columns:1fr;gap:44px}}
.hero p.hello{font-weight:600;font-size:1.25rem;color:var(--soft);margin-bottom:16px}
.hero p.lead{font-size:1.16rem;margin:24px 0 34px;max-width:32em}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-note{font-size:.9rem;color:var(--soft);margin-top:18px}
.hero-img{position:relative}
.hero-img img{width:100%}
.hero-img figcaption{font-size:.85rem;color:var(--soft);margin-top:12px}

/* inner page hero */
.pagehero{padding:74px 0 56px;border-bottom:1px solid var(--line)}
.pagehero p.intro{max-width:42em;margin-top:20px;font-size:1.12rem}

/* pillars — hairline separated, no boxes */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);margin-top:44px;border-top:1px solid var(--line)}
@media(max-width:900px){.pillars{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pillars{grid-template-columns:1fr}}
.pillar{padding:30px 26px 30px 0;border-bottom:1px solid var(--line)}
.pillar+.pillar{padding-left:26px;border-left:1px solid var(--line)}
@media(max-width:900px){.pillar:nth-child(3){border-left:none;padding-left:0}}
@media(max-width:560px){.pillar{border-left:none!important;padding-left:0!important}}
.pillar h3{font-size:1.1rem}
.pillar p{font-size:.95rem;color:var(--soft)}

/* feature split */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
@media(max-width:860px){.feature{grid-template-columns:1fr;gap:36px}}

/* class cards */
.cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:44px}
@media(max-width:900px){.cardgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.cardgrid{grid-template-columns:1fr}}
.classcard{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:32px 28px;text-decoration:none;color:var(--ink);display:block;transition:background .15s}
.classcard:hover{background:var(--mist)}
.classcard .ic{width:52px;height:52px;margin-bottom:16px;color:var(--blue)}
.classcard h3{font-size:1.2rem}
.classcard p{font-size:.94rem;color:var(--soft)}
.classcard .go{display:inline-block;margin-top:12px;font-weight:600;font-size:.9rem;color:var(--blue)}

/* class page */
.classhero{padding:70px 0 54px;border-bottom:1px solid var(--line)}
.classhero .wrap{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center}
@media(max-width:640px){.classhero .wrap{grid-template-columns:1fr;gap:18px}}
.classhero .ic{width:84px;height:84px;color:var(--blue)}
.classhero p.tag{font-weight:600;font-size:1.2rem;color:var(--soft);margin-top:10px}
.classbody{padding:64px 0 30px}
.classbody h2{font-size:1.35rem;margin-top:2.1em}
.classbody h2:first-child{margin-top:0}
.classbody p{margin-bottom:1.1em;max-width:44em}
.factline{border-left:3px solid var(--blue);padding:6px 0 6px 20px;margin:1.6em 0;font-family:var(--display);font-size:1.15rem;line-height:1.5;max-width:34em}
.classmeta{background:var(--mist);border-radius:var(--r);padding:30px 32px;margin:2.4em 0}
.classmeta p{margin-bottom:.5em}
.classmeta p:last-child{margin-bottom:0}

/* deep band */
.deepband{background:var(--deep);color:#fff}
.deepband h2,.deepband h3{color:#fff}
.deepband p{color:rgba(255,255,255,.86)}
.deepband .eyebrow{color:#7ADCEF}

/* quote */
.quoteband{padding:90px 0;text-align:center}
.quoteband blockquote{font-family:var(--display);font-size:clamp(1.35rem,3vw,1.9rem);line-height:1.4;max-width:24em;margin:0 auto 20px}
.quoteband cite{font-style:normal;font-weight:600;font-size:.95rem;color:var(--soft)}
.placeholder-tag{display:inline-block;background:#FFF3CD;color:#7A5C00;font-size:.75rem;font-weight:700;border-radius:5px;padding:3px 10px;margin-bottom:14px;letter-spacing:.04em}

/* timetable embed */
.ttframe{width:100%;height:1100px;border:1px solid var(--line);border-radius:var(--r);background:#fff}

/* steps */
.steps{counter-reset:s;margin-top:40px;border-top:1px solid var(--line)}
.step{display:grid;grid-template-columns:90px 1fr;gap:26px;padding:30px 0;border-bottom:1px solid var(--line)}
@media(max-width:560px){.step{grid-template-columns:56px 1fr;gap:16px}}
.step .n{font-family:var(--display);font-size:2.4rem;color:var(--blue);line-height:1}
.step h3{font-size:1.18rem}
.step p{color:var(--soft);font-size:.98rem;max-width:40em}

/* fears */
.fear{border-left:3px solid var(--blue);padding:4px 0 4px 22px;margin-bottom:30px}
.fear .q{font-weight:600;font-size:1.18rem;margin-bottom:8px}
.fear p{color:var(--soft);font-size:.97rem;max-width:38em}

/* quiz */
.quiz-box{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:38px 36px;margin-top:36px;max-width:760px}
@media(max-width:600px){.quiz-box{padding:26px 20px}}
.quiz-box .qnum{font-weight:600;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin-bottom:10px}
.quiz-box h3{font-size:1.3rem;margin-bottom:20px}
.quiz-opts{display:grid;gap:12px}
.quiz-opts button{text-align:left;font-family:var(--body);font-size:1rem;font-weight:600;color:var(--ink);background:var(--mist);border:1.5px solid transparent;border-radius:10px;padding:15px 18px;cursor:pointer}
.quiz-opts button:hover{border-color:var(--blue)}
.quiz-result .rec{font-weight:600;color:var(--blue);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}
.quiz-result p{margin-bottom:18px}
.quiz-reset{background:none;border:none;color:var(--blue);font-weight:600;cursor:pointer;font-size:.9rem;margin-left:16px;text-decoration:underline;font-family:var(--body)}
.quiz-progress{height:3px;background:var(--mist);border-radius:2px;margin-bottom:28px;overflow:hidden}
.quiz-progress div{height:100%;background:var(--blue);width:0;transition:width .25s}

/* gear */
.gear{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:44px}
@media(max-width:720px){.gear{grid-template-columns:1fr}}
.gearitem{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 28px}
.gearitem h3{font-size:1.15rem}
.gearitem .looks{font-weight:600;color:var(--soft);font-size:1rem;margin-bottom:10px}
.gearitem p{font-size:.95rem;color:var(--soft)}

/* articles */
.post{display:block;text-decoration:none;color:var(--ink);border-top:1px solid var(--line);padding:34px 0}
.post .tag{font-weight:600;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.post h3{margin-top:10px;font-size:1.4rem}
.post p{color:var(--soft);max-width:44em;margin-top:8px}
.post .go{display:inline-block;margin-top:12px;font-weight:600;color:var(--blue)}

/* cta */
.cta{padding:96px 0;text-align:center}
.cta h2{max-width:18em;margin:0 auto .4em}
.cta p{max-width:34em;margin:0 auto 32px;color:var(--soft)}

/* footer */
footer{background:var(--deep);color:rgba(255,255,255,.82);padding:64px 0 34px;font-size:.94rem}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:44px}
@media(max-width:760px){footer .cols{grid-template-columns:1fr}}
footer h4{font-family:var(--display);font-weight:500;color:#fff;font-size:1.15rem;margin-bottom:14px}
footer a{color:rgba(255,255,255,.82);text-decoration:none}
footer a:hover{color:#7ADCEF}
footer ul{list-style:none}
footer li{padding:4px 0}
.promise{font-family:var(--display);font-size:1.25rem;color:#fff;margin-bottom:10px}
.fineprint{border-top:1px solid rgba(255,255,255,.16);margin-top:44px;padding-top:22px;text-align:center;font-size:.82rem;color:rgba(255,255,255,.55)}

/* article page */
.article{padding:64px 0 20px}
.article h2{font-size:1.5rem;margin:1.8em 0 .5em}
.article p{margin-bottom:1.15em;max-width:44em}
.pull{border-left:3px solid var(--blue);padding:8px 0 8px 22px;margin:1.8em 0;font-family:var(--display);font-size:1.25rem;line-height:1.45;max-width:30em}
.disclaimer{font-size:.88rem;color:var(--soft);border-top:1px solid var(--line);margin-top:2.6em;padding-top:1.3em;max-width:44em}

/* mobile menu */
.menu-btn{display:none;background:none;border:none;font-size:1.5rem;color:var(--ink);cursor:pointer;padding:6px 10px}
@media(max-width:730px){.menu-btn{display:block}}
.mobilenav{display:none;flex-direction:column;background:var(--paper);border-top:1px solid var(--line)}
.mobilenav.open{display:flex}
.mobilenav a{padding:16px 26px;font-size:1.08rem;font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.mobilenav a:hover{color:var(--blue);background:var(--mist)}
.mobilenav .btn{margin:16px 26px;text-align:center;border-bottom:none}
@media(min-width:731px){.mobilenav{display:none!important}}

/* trainer cards + mock form */
.trainer{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:start;padding:44px 0;border-top:1px solid var(--line)}
@media(max-width:720px){.trainer{grid-template-columns:1fr;gap:22px}}
.trainer img{width:100%;border-radius:var(--r)}
.trainer .cred{color:var(--blue);font-weight:700;font-size:.92rem;margin:6px 0 14px}
.trainer .bestfor{font-weight:600;font-size:1.15rem;margin-bottom:12px}
.mockform{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:36px;max-width:640px;margin-top:30px}
@media(max-width:600px){.mockform{padding:24px 20px}}
.mockform label{display:block;font-weight:600;font-size:.92rem;margin:18px 0 6px}
.mockform label:first-of-type{margin-top:0}
.mockform input,.mockform select,.mockform textarea{width:100%;font-family:var(--body);font-size:1rem;padding:13px 14px;border:1.5px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink)}
.mockform input:focus,.mockform select:focus,.mockform textarea:focus{outline:none;border-color:var(--blue)}
.mockform textarea{min-height:100px;resize:vertical}
.mockform .btn{margin-top:24px}

/* gallery */
.masonry{columns:3 300px;column-gap:18px}
.masonry .gph{width:100%;margin-bottom:18px;break-inside:avoid}

/* dropdown nav */
nav.main{position:relative}
.navitem{position:relative}
.navitem>a{display:inline-flex;align-items:center;gap:5px}
.navitem>a::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.6}
.navitem.nodrop>a::after{display:none}
.dropdown{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(11,59,71,.14);padding:8px;min-width:190px;z-index:80}
.navitem:hover .dropdown,.navitem:focus-within .dropdown{display:block}
.dropdown a{display:block;padding:11px 14px;border-radius:7px;font-size:.92rem;white-space:nowrap}
.dropdown a:hover{background:var(--mist);color:var(--blue)}
@media(max-width:730px){.navitem>a::after{display:none}}

/* two-column template — text + side panel (form, image, or highlight) */
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start;margin-top:20px}
.split.reverse{grid-template-columns:.85fr 1.15fr}
.split.reverse>*:first-child{order:2}
@media(max-width:860px){.split,.split.reverse{grid-template-columns:1fr}.split.reverse>*:first-child{order:0}}
.split .panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:32px;position:sticky;top:96px}
@media(max-width:860px){.split .panel{position:static}}

/* inline cross-link callout (e.g. massage mentioned on other pages) */
.crosslink{background:var(--mist);border-left:3px solid var(--blue);border-radius:0 10px 10px 0;padding:16px 20px;margin:1.6em 0;font-size:.96rem}
.crosslink a{font-weight:700}

/* member login button */
.loginbtn{padding:9px 20px;font-size:.88rem;margin-left:10px}
@media(max-width:900px){.loginbtn{display:none}}
header.site .wrap{flex-wrap:nowrap}

/* ============================================================
   V2 "WOW" VISUAL SYSTEM — bold, dense, brush-circle signature
   ============================================================ */
:root{
  --v2-deep:#073640;
  --v2-blue:#00A3C1;
  --v2-skyblue:#5FD6EE;
  --v2-paper:#FAF8F3;
  --v2-mist:#E3F3F6;
  --v2-ink:#0E1416;
  --display2:"Inter Tight",var(--display);
}
.v2{background:var(--v2-paper);color:var(--v2-ink)}
.v2 h1,.v2 h2,.v2 h3{font-family:var(--display2);font-weight:900;letter-spacing:-.03em;line-height:1.02}
.v2 h1{font-size:clamp(3rem,8vw,6.2rem)}
.v2 h2{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:.3em}
.v2 .kicker{font-family:var(--display2);font-weight:800;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}

/* brush-circle photo frame — the signature element, echoing the logo */
.brush{position:relative;display:inline-block;width:100%}
.brush img{width:100%;display:block;border-radius:50%;aspect-ratio:1/1;object-fit:cover;position:relative;z-index:1}
.brush::before{content:"";position:absolute;inset:-4.5%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M100 6 C50 9 8 48 6 100 C4 152 48 194 100 194 C154 194 196 150 194 98 C192 50 150 8 100 6' stroke='%2300A3C1' stroke-width='7' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;z-index:0}
.brush.skyblue::before{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M100 6 C50 9 8 48 6 100 C4 152 48 194 100 194 C154 194 196 150 194 98 C192 50 150 8 100 6' stroke='%235FD6EE' stroke-width='7' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%}
.brush.deep::before{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M100 6 C50 9 8 48 6 100 C4 152 48 194 100 194 C154 194 196 150 194 98 C192 50 150 8 100 6' stroke='%23073640' stroke-width='7' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%}

/* section blocks, full-bleed, alternating, no timid whitespace */
.v2block{padding:76px 0}
.v2block.deep{background:var(--v2-deep);color:#fff}
.v2block.deep h1,.v2block.deep h2,.v2block.deep h3{color:#fff}
.v2block.lightblue{background:var(--v2-mist);color:var(--v2-ink)}
.v2block.mist{background:var(--v2-mist)}
.v2block.blue{background:var(--v2-blue);color:#fff}
.v2block.blue h1,.v2block.blue h2,.v2block.blue h3{color:#fff}

/* diagonal cut between blocks */
.cut-bottom{clip-path:polygon(0 0,100% 0,100% 94%,0 100%)}
.cut-top{clip-path:polygon(0 6%,100% 0,100% 100%,0 100%)}
.cut-both{clip-path:polygon(0 4%,100% 0,100% 96%,0 100%)}

/* hero collage — asymmetric bento grid, not one lonely photo */
.collage{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:auto auto;gap:22px;align-items:center}
.collage .big{grid-row:1/3}
@media(max-width:820px){.collage{grid-template-columns:1fr}.collage .big{grid-row:auto}}

/* marquee strip of classes */
.marquee{overflow:hidden;white-space:nowrap;border-top:3px solid var(--v2-ink);border-bottom:3px solid var(--v2-ink);background:var(--v2-blue);padding:16px 0}
.marquee span{color:#fff}
.marquee-track{display:inline-block;padding-left:100%;animation:marquee 60s linear infinite}
.marquee span{font-family:var(--display2);font-weight:900;font-size:1.4rem;text-transform:uppercase;letter-spacing:.02em;margin:0 34px;display:inline-block}
.marquee span::after{content:"\2726";margin-left:34px;font-size:1rem;opacity:.6}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none;padding-left:0}}

/* stat band */
.statband{display:grid;grid-template-columns:repeat(4,1fr);gap:0;text-align:center}
@media(max-width:760px){.statband{grid-template-columns:repeat(2,1fr)}}
.stat{padding:30px 18px;border-left:1px solid rgba(255,255,255,.25)}
.stat:first-child{border-left:none}
@media(max-width:760px){.stat:nth-child(odd){border-left:none}}
.stat .num{font-family:var(--display2);font-weight:900;font-size:clamp(2.4rem,5vw,3.4rem);display:block;line-height:1}
.stat .lab{font-size:.9rem;opacity:.85;margin-top:6px}

/* bento class grid */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:16px}
.bento a{border-radius:20px;padding:26px;text-decoration:none;display:flex;flex-direction:column;justify-content:flex-end;min-height:170px;position:relative;overflow:hidden}
.bento a h3{font-family:var(--display2);font-weight:900;font-size:1.3rem;position:relative;z-index:1}
.bento a p{font-size:.86rem;position:relative;z-index:1;margin-top:4px}
.bento a::before{content:"";position:absolute;inset:0;opacity:.14;background:radial-gradient(circle at 80% 20%,#fff,transparent 60%)}
.bento .b1{grid-column:span 3;grid-row:span 2;background:var(--v2-deep);color:#fff}
.bento .b2{grid-column:span 3;background:var(--v2-blue);color:#fff}
.bento .b3{grid-column:span 2;background:var(--v2-skyblue);color:var(--v2-ink)}
.bento .b4{grid-column:span 4;background:var(--v2-ink);color:#fff}
@media(max-width:900px){.bento{grid-template-columns:repeat(2,1fr)}.bento .b1,.bento .b2,.bento .b3,.bento .b4{grid-column:span 2}.bento .b1{grid-row:span 1}}

/* big pull-quote */
.bigquote{font-family:var(--display2);font-weight:800;font-size:clamp(1.6rem,4vw,2.8rem);line-height:1.15;letter-spacing:-.01em}

.v2 .btn{border-radius:999px;font-weight:800;padding:16px 34px;font-size:1rem}
.v2 .btn-blue-solid{background:var(--v2-blue);color:#fff}
.v2 .btn-blue-solid:hover{transform:translateY(-2px);background:#0091ab}
.v2 .btn-line{border:2.5px solid currentColor;background:transparent;color:inherit}
.v2 .btn-line:hover{background:currentColor;color:var(--v2-deep)}

/* fix: force text color inside colored bento/collage cards, cascade was unreliable */
.bento .b1 h3,.bento .b1 p,.bento .b2 h3,.bento .b2 p,.bento .b4 h3,.bento .b4 p{color:#fff}
.bento .b3 h3,.bento .b3 p{color:var(--v2-ink)}

/* fix: tighten nav so it doesn't wrap at normal desktop widths */
nav.main{gap:16px}
nav.main>a,nav.main .navitem>a{font-size:.88rem;white-space:nowrap}
header.site .wrap{gap:10px}
.loginbtn{white-space:nowrap}
@media(max-width:1080px){
  nav.main{gap:10px}
  nav.main>a,nav.main .navitem>a{font-size:.82rem}
}

/* ============================================================
   HEALTH CHECK — animated filling bottle
   ============================================================ */
.healthcheck{display:flex;align-items:center;gap:36px}
@media(max-width:560px){.healthcheck{flex-direction:column;text-align:center}}
.bottle-wrap{flex:none;width:96px}
.bottle{position:relative;width:96px;height:220px;margin:0 auto}
.bottle-neck{position:absolute;top:0;left:50%;transform:translateX(-50%);width:34px;height:22px;background:rgba(255,255,255,.12);border:3px solid var(--v2-ink,#0E1416);border-bottom:none;border-radius:6px 6px 0 0}
.bottle-body{position:absolute;top:18px;left:0;right:0;bottom:0;border:3px solid var(--v2-ink,#0E1416);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.5)}
.bottle-fill{position:absolute;left:0;right:0;bottom:0;height:0%;background:linear-gradient(180deg,var(--v2-blue,#00A3C1),var(--v2-deep,#073640));transition:height 1.1s cubic-bezier(.22,1,.36,1)}
.bottle-fill::after{content:"";position:absolute;top:-6px;left:0;right:0;height:12px;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.5),transparent 70%)}
.bottle-label{margin-top:14px;font-family:var(--display2,var(--display));font-weight:800;font-size:.95rem}
.healthcheck-text h3{margin-bottom:8px}
@media(prefers-reduced-motion:reduce){.bottle-fill{transition:none}}

/* v2 bento-style upgrade for existing cardgrid/classcard components site-wide */
.v2 .cardgrid{border:none;gap:16px;margin-top:24px}
.v2 .classcard{border:none;border-radius:20px;padding:26px;transition:transform .15s}
.v2 .classcard:hover{transform:translateY(-3px);background:inherit}
.v2 .classcard h3{font-family:var(--display2);font-weight:900;font-size:1.25rem}
.v2 .classcard .ic{color:inherit}
.v2 .cardgrid .classcard:nth-child(6n+1){background:var(--v2-deep);color:#fff}
.v2 .cardgrid .classcard:nth-child(6n+1) p,.v2 .cardgrid .classcard:nth-child(6n+1) .go{color:rgba(255,255,255,.85)}
.v2 .cardgrid .classcard:nth-child(6n+2){background:var(--v2-blue);color:#fff}
.v2 .cardgrid .classcard:nth-child(6n+2) p,.v2 .cardgrid .classcard:nth-child(6n+2) .go{color:rgba(255,255,255,.85)}
.v2 .cardgrid .classcard:nth-child(6n+3){background:var(--v2-skyblue);color:var(--v2-ink)}
.v2 .cardgrid .classcard:nth-child(6n+3) p,.v2 .cardgrid .classcard:nth-child(6n+3) .go{color:var(--v2-ink);opacity:.8}
.v2 .cardgrid .classcard:nth-child(6n+4){background:var(--v2-ink);color:#fff}
.v2 .cardgrid .classcard:nth-child(6n+4) p,.v2 .cardgrid .classcard:nth-child(6n+4) .go{color:rgba(255,255,255,.85)}
.v2 .cardgrid .classcard:nth-child(6n+5){background:var(--v2-mist)}
.v2 .cardgrid .classcard:nth-child(6n+6){background:#fff;border:2px solid var(--v2-ink)}
.v2 .go{font-weight:800}

/* alternating colour-block section helper classes for the rest of the site */
.v2 .cblock-mist{background:var(--v2-mist)}
.v2 .cblock-deep{background:var(--v2-deep);color:#fff}
.v2 .cblock-deep h2,.v2 .cblock-deep h3{color:#fff}
.v2 .cblock-lightblue{background:var(--v2-mist);color:var(--v2-ink)}

/* fix: same inheritance bug as homepage bento, h1/h2/h3 have an explicit color rule
   that beats inherited color, so every colour-block card needs its heading colour set directly */
.v2 .cardgrid .classcard:nth-child(6n+1) h3,
.v2 .cardgrid .classcard:nth-child(6n+2) h3,
.v2 .cardgrid .classcard:nth-child(6n+4) h3{color:#fff}
.v2 .cardgrid .classcard:nth-child(6n+3) h3{color:var(--v2-ink)}

/* self-recognition photo cards */
.fitcard{border-radius:20px;overflow:hidden;position:relative;aspect-ratio:.85;display:flex;align-items:flex-end}
.fitcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fitcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(7,54,64,.88) 100%)}
.fitcard .cap{position:relative;z-index:1;padding:20px;color:#fff}
.fitcard .cap p{font-family:var(--display2,var(--display));font-weight:800;font-size:1.08rem;line-height:1.25}
.fitgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:36px}
@media(max-width:900px){.fitgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.fitgrid{grid-template-columns:1fr}}

/* Editable content (Performance Pages): keep line breaks an editor types. Values never contain them otherwise. */
[data-maveni-field]{white-space:pre-line}
