
/* BlueMagic Group hair — generated stylesheet */
@font-face{font-family:'Poppins';src:url('/assets/fonts/poppins-400.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:'Poppins';src:url('/assets/fonts/poppins-400-ext.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0100-02AF,U+0300-0301,U+1E00-1EFF,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';src:url('/assets/fonts/poppins-500.woff2') format('woff2');font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:'Poppins';src:url('/assets/fonts/poppins-500-ext.woff2') format('woff2');font-weight:500;font-display:swap;unicode-range:U+0100-02AF,U+0300-0301,U+1E00-1EFF,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';src:url('/assets/fonts/poppins-600.woff2') format('woff2');font-weight:600;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:'Poppins';src:url('/assets/fonts/poppins-600-ext.woff2') format('woff2');font-weight:600;font-display:swap;unicode-range:U+0100-02AF,U+0300-0301,U+1E00-1EFF,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';src:url('/assets/fonts/poppins-700.woff2') format('woff2');font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:'Poppins';src:url('/assets/fonts/poppins-700-ext.woff2') format('woff2');font-weight:700;font-display:swap;unicode-range:U+0100-02AF,U+0300-0301,U+1E00-1EFF,U+2C60-2C7F,U+A720-A7FF}
:root{
  --bg:#04222F;--bg-alt:#062C3C;--bg-elev:#0A3648;--surface:#0D3E52;
  --ink:#F2F7F9;--ink-soft:#B9CDD6;--ink-faint:#7FA0AD;
  --accent:#1AAEE0;--accent-soft:#5FC8EA;--gold:#5FC8EA;--gold-soft:#A9E2F5;
  --cta:#1AAEE0;--cta-ink:#03222E;--wa:#0E7A41;
  --line:rgba(185,205,214,.16);--line-strong:rgba(185,205,214,.3);--shadow:0 18px 50px -18px rgba(0,0,0,.55);--focus:#5FC8EA;
  --danger:#FF8A80;--ok:#7BDCB5;
  --lite-bg:#F4F8FA;--lite-ink:#0B2836;--lite-ink-soft:#41616F;--lite-line:rgba(3,53,74,.12);
  --sec:clamp(56px, 9vw, 112px);--gut:clamp(18px, 4vw, 32px);--maxw:1200px;--maxw-text:760px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}}
html,body{overflow-x:clip}
body{margin:0;font-family:'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;font-size:1rem;line-height:1.65;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
img,svg,video,iframe{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{line-height:1.18;margin:0 0 .5em;font-weight:600;text-wrap:balance}
h1{font-size:clamp(2.1rem, 5.4vw, 3.5rem);font-weight:700}h2{font-size:clamp(1.7rem, 3.9vw, 2.5rem)}h3{font-size:clamp(1.15rem, 2.2vw, 1.4rem)}h4{font-size:1.05rem}
p{margin:0 0 1em}a{color:var(--accent-soft);text-decoration:none}a:hover{text-decoration:underline}
ul,ol{padding-left:1.2em}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
.visually-hidden,.hp,input.hp{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;overflow:hidden!important;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;top:-48px;left:12px;z-index:200;background:var(--cta);color:var(--cta-ink);padding:10px 18px;border-radius:0 0 10px 10px;transition:top .2s}
.skip:focus{top:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
.wrap--text{max-width:var(--maxw-text)}
.sec{padding-block:var(--sec)}
.sec--alt{background:var(--bg-alt)}
.sec--lite{background:var(--lite-bg);color:var(--lite-ink)}
.sec--lite h2,.sec--lite h3{color:var(--lite-ink)}
.sec--lite .sec-sub,.sec--lite p{color:var(--lite-ink-soft)}
.eyebrow{letter-spacing:.16em;text-transform:uppercase;font-size:.78rem;font-weight:600;color:var(--gold);margin:0 0 .6em}
.sec-head{max-width:820px;margin-bottom:clamp(28px,4.5vw,52px)}
.sec-head--c{margin-inline:auto;text-align:center}
.sec-sub{color:var(--ink-soft);font-size:1.05rem}
.sec-note{color:var(--ink-faint);font-size:.9rem;margin-top:28px;text-align:center}
.sec--lite .sec-note{color:var(--lite-ink-soft)}
.sec-body{color:var(--ink-soft);font-size:1.02rem}
.sec-body--c{text-align:center;max-width:640px;margin-inline:auto}
.sec-cta{text-align:center;margin-top:36px}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:999px;font-weight:600;font-size:.98rem;border:2px solid transparent;transition:transform .15s,box-shadow .15s,background .15s;text-decoration:none!important;min-height:48px}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:var(--cta);color:var(--cta-ink)}
.btn--primary:hover{box-shadow:0 10px 26px -8px var(--cta)}
.btn--ghost{border-color:var(--line-strong);color:var(--ink);background:transparent}
.btn--dark{background:#0B2836;color:#F4F8FA}
.sec--lite .btn--dark{background:#0B2836;color:#F4F8FA}
.btn--wa{background:var(--wa);color:#fff}
.btn--s{padding:10px 18px;min-height:42px;font-size:.9rem}
.btn--full{width:100%;justify-content:center}
.btn__ic{display:inline-flex}
.linklike{background:none;border:0;color:var(--accent);text-decoration:underline;padding:4px}
/* header */
.hdr{position:sticky;top:0;z-index:100;background:rgba(4,34,47,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hdr__in{display:flex;align-items:center;gap:clamp(12px,1.4vw,22px);min-height:70px;max-width:1360px}
.hdr__acts>.btn--primary{height:44px;padding:0 20px;display:inline-flex;align-items:center}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;text-decoration:none!important}
.brand img{width:auto;height:40px}
.brand__word{font-weight:700;font-size:1.14rem;letter-spacing:-.01em;color:var(--ink);white-space:nowrap}
.brand__word b{color:var(--accent);font-weight:700}
.brand__division{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;border-left:1px solid var(--line-strong);padding-left:10px;line-height:1.3;max-width:110px}
@media(min-width:1321px){.brand__word,.brand__division{display:none}}
@media(max-width:1320px){.brand__division{display:none}}
/* The mark alone is small, so give it a little more presence. */
@media(min-width:1321px){.brand img{height:44px}}
.nav__list{display:flex;list-style:none;margin:0;padding:0;gap:2px;flex-wrap:nowrap}
.nav{margin-left:16px;min-width:0;flex:0 1 auto}
.hdr__acts{flex:0 0 auto}
.nav__link{display:flex;align-items:center;gap:5px;padding:10px 12px;color:var(--ink);font-weight:500;font-size:.94rem;background:none;border:0;border-radius:8px;text-decoration:none!important}
.nav__link:hover{background:var(--bg-elev)}
@media(max-width:1500px){.nav__link{padding:10px 9px;font-size:.9rem}}
@media(max-width:1360px){.nav__link{padding:10px 7px;font-size:.87rem}.hdr__acts>.btn--primary{padding:0 15px;font-size:.86rem}.hdr__sister{padding:0 11px}}
.nav__link[aria-current=page],.nav__sub a[aria-current=page]{color:var(--accent);background:var(--bg-elev)}
.has-sub{position:relative}
.nav__sub{position:absolute;top:100%;left:0;min-width:250px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);list-style:none;padding:10px;margin:6px 0 0;display:none;z-index:60}
.has-sub.is-open .nav__sub,.has-sub:focus-within .nav__sub{display:block}
@media(hover:hover){.has-sub:hover .nav__sub{display:block}}
.nav__sub a{display:block;padding:9px 12px;border-radius:8px;color:var(--ink);font-size:.92rem;text-decoration:none!important}
.nav__sub a:hover{background:var(--bg-elev);color:var(--accent)}
.nav__mega{min-width:560px;padding:22px}
.mega__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px}
.mega__title{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:0 0 8px;padding:0 12px}
.mega__col ul{list-style:none;margin:0;padding:0}
.mega__cta{border-top:1px solid var(--line);margin-top:16px;padding-top:16px;text-align:right}
@media(max-width:1320px){.nav__mega{min-width:0;padding:0 0 8px 16px}.mega__grid{grid-template-columns:1fr;gap:8px}.mega__cta{display:none}}
.hdr__acts{display:flex;align-items:center;gap:8px}
/* The utility controls (sister site, language, call) are one visual family:
   same height, same radius, same border weight. Only the CTA breaks rank. */
.hdr__acts>.hdr__sister,.hdr__acts>.lang>.lang__btn,.hdr:not(.hdr--lp) .hdr__acts>.hdr__call{
  height:40px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);
  font-size:.84rem;font-weight:600;line-height:1;transition:border-color .16s,background .16s,color .16s}
.hdr__acts>.hdr__sister:hover,.hdr__acts>.lang>.lang__btn:hover,.hdr:not(.hdr--lp) .hdr__acts>.hdr__call:hover{
  border-color:var(--accent);background:var(--bg-elev)}
.hdr .btn{white-space:nowrap}
.hdr__call{display:inline-flex;align-items:center;gap:7px;color:var(--ink);font-weight:500;font-size:.92rem;text-decoration:none!important}
.hdr:not(.hdr--lp) .hdr__call{width:40px;justify-content:center;flex:0 0 40px;padding:0}

.hdr:not(.hdr--lp) .hdr__call svg{width:18px;height:18px;color:var(--accent)}
.burger{display:none;width:46px;height:46px;background:none;border:0;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.burger span{width:22px;height:2px;background:var(--ink);transition:transform .2s,opacity .2s}
.nav__mobile-extra{display:none}
/* language selector */
.lang{position:relative}
.lang__btn{display:inline-flex;align-items:center;gap:6px;padding:0 12px;color:var(--ink);cursor:pointer}
.lang__menu{position:absolute;right:0;top:100%;margin-top:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);list-style:none;padding:8px;min-width:160px;z-index:70}
.lang__menu a{display:block;padding:8px 12px;border-radius:8px;color:var(--ink);font-size:.92rem;text-decoration:none!important}
.lang__menu a:hover{background:var(--bg-elev)}
.lang__menu a[aria-current]{color:var(--accent);font-weight:600}
/* hero */
.hero{position:relative;overflow:hidden;min-height:min(88svh,760px);display:flex;align-items:center}
.hero__media,.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__shade{position:absolute;inset:0;background:linear-gradient(105deg, rgba(2,26,37,.92) 0%, rgba(2,26,37,.72) 45%, rgba(2,26,37,.25) 100%)}
.hero__in{position:relative;display:grid;gap:40px;padding-block:clamp(48px,8vw,96px);width:100%;grid-template-columns:1fr}
@media(min-width:960px){.hero__in{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:center}}
.hero__sub{font-size:clamp(1.02rem,2vw,1.22rem);color:var(--ink-soft);max-width:560px}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 20px}
.hero__proof{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.hero__pextra{color:var(--ink-soft);font-size:.9rem}
@media(max-width:640px){.hero__pextra{display:none}}
.tp{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;color:var(--ink);font-size:.9rem;text-decoration:none!important;background:rgba(255,255,255,.08);padding:8px 14px;border-radius:999px}
.stars{color:#00B67A;display:inline-flex;gap:1px}
.hero__form .leadform{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow)}
@media(max-width:820px){.hero:not(.hero--lp) .hero__form{display:none}.hero__in{padding-block:clamp(48px,10vw,72px)}}
@media(max-width:560px){.hero__ctas .btn{width:100%;justify-content:center}.hero__proof .tp{white-space:normal;width:100%;justify-content:center;text-align:center}.hero__proof .tp>span{display:none}}
/* trustbar */
.trustbar{background:rgba(255,255,255,.05);border-block:1px solid var(--line)}
.trustbar ul{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;list-style:none;margin:0;padding:14px 0}
.trustbar li{display:flex;align-items:center;gap:8px;font-size:.88rem;color:var(--ink-soft);font-weight:500}
.trustbar svg{color:var(--gold)}
@media(max-width:700px){
  .trustbar .wrap{padding-inline:0}
  .trustbar ul{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:10px;padding:10px var(--gut);scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .trustbar ul::-webkit-scrollbar{display:none}
  .trustbar li{flex:0 0 auto;scroll-snap-align:start;background:var(--bg-elev);border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:.8rem}
}
/* concerns */
.concerns__grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));list-style:none;padding:0;margin:0}
.concern{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px;height:100%;color:var(--ink);text-decoration:none!important;transition:border-color .15s,transform .15s}
.concern:hover{border-color:var(--accent);transform:translateY(-3px)}
.concern__t{font-weight:600;font-size:1.04rem}
.concern__d{color:var(--ink-soft);font-size:.9rem;flex:1}
.concern__go{color:var(--accent)}
/* treatment cards */
.tgrid{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.tcard{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;color:var(--ink);text-decoration:none!important;display:flex;flex-direction:column;transition:transform .18s,border-color .18s;box-shadow:var(--shadow)}
.tcard:hover{transform:translateY(-4px);border-color:var(--accent)}
.tcard__img{aspect-ratio:1/1;overflow:hidden}
.tcard__img img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.tcard__body{padding:22px;display:flex;flex-direction:column;gap:8px;flex:1}
.tcard__body p{color:var(--ink-soft);font-size:.93rem;flex:1;margin:0}
.tcard__from{color:var(--gold)!important;font-weight:600;flex:0!important}
.tcard__go{color:var(--accent);font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:6px;margin-top:6px}
/* results / before-after */
.results__filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:30px}
.chip{border:1px solid var(--lite-line);background:transparent;color:var(--lite-ink);border-radius:999px;padding:8px 16px;font-size:.88rem;font-weight:500}
.chip.is-on{background:var(--lite-ink);color:#F4F8FA}
.results__grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.results__grid:has(> :only-child){grid-template-columns:minmax(0,680px);justify-content:center}
@media(min-width:1100px){.results__grid{grid-template-columns:repeat(4,1fr)}.results__grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,480px));justify-content:center}.results__grid:has(> :only-child){grid-template-columns:minmax(0,680px)}}
.ba{margin:0}
/* press strip (shared by both sites) */
.dpress{padding-block:clamp(26px,3.4vw,40px);border-bottom:1px solid var(--line)}
.dpress__label{text-align:center;letter-spacing:.18em;text-transform:uppercase;font-size:.74rem;font-weight:600;color:var(--ink-faint);margin:0 0 18px}
.dpress__logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px 40px;list-style:none;padding:0;margin:0}
.dpress__logos li img{height:34px;width:auto;max-width:150px;object-fit:contain;display:block}
/* The outlet artwork is black, drawn for a white page. Rather than inverting each
   logo (which turns the opaque ones into solid blocks), the strip carries its own
   light panel on the dark theme so every mark renders as its designers intended. */
.dpress__logos{background:#fff;border-radius:16px;padding:18px 26px;}
.dpress__logos li img{filter:grayscale(1);opacity:.75;transition:filter .2s,opacity .2s}
.dpress__logos li a:hover img,.dpress__logos li a:focus-visible img{filter:grayscale(0);opacity:1}
.dpress__note{text-align:center;color:var(--ink-faint);font-size:.8rem;margin:16px auto 0;max-width:62ch}
@media(max-width:600px){.dpress__logos li img{height:19px}.dpress__logos{gap:14px 24px}}

/* trust narrative + counters */
.twhy__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:clamp(22px,3vw,34px) 0}
.twhy__stat{text-align:center;padding:20px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.twhy__stat b{display:block;font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:700;line-height:1.1;color:var(--accent)}
.twhy__stat span{display:block;margin-top:6px;font-size:.86rem;color:var(--ink-faint)}
.twhy__body{max-width:78ch;margin-inline:auto}
.twhy__copy p{margin:0 0 1em}
.twhy__copy.is-clamped{display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.twhy__more{display:block;margin:12px auto 0;font-weight:600}

/* trusted by professionals */
.pros__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:clamp(14px,2vw,22px)}
.pro{margin:0;text-align:center}
.pro__ph{position:relative;aspect-ratio:1/1;border-radius:50%;overflow:hidden;border:2px solid var(--line);max-width:190px;margin-inline:auto}
.pro__ph img{width:100%;height:100%;object-fit:cover;display:block}
.pro figcaption{margin-top:12px}
.pro figcaption b{display:block;font-size:1rem}
.pro figcaption span{display:block;margin-top:3px;font-size:.84rem;color:var(--ink-faint);line-height:1.45}

/* services icon grid */
.svcs__grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(12px,1.6vw,18px)}
/* Seven services read better as 4+3 than as 5+2, so the grid caps at four. */
@media(min-width:1060px){.svcs__grid{grid-template-columns:repeat(4,1fr)}}
.svc{display:flex;flex-direction:column;align-items:flex-start;gap:10px;height:100%;padding:22px 20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-decoration:none;color:inherit;transition:transform .18s,border-color .18s,box-shadow .18s}
.svc:hover,.svc:focus-visible{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 10px 30px rgba(0,0,0,.12)}
.svc__ic{width:56px;height:56px;display:grid;place-items:center}
.svc__ic img{width:100%;height:100%;object-fit:contain}
/* Line icons need a plate to carry the same weight as the illustrated ones. */
.svc__ic--vector{width:54px;height:54px;border-radius:50%;background:rgba(26,174,224,.16);color:var(--accent)}
.svc__ic--vector svg{width:27px;height:27px;stroke-width:1.7}
.svc b{font-size:1.02rem;line-height:1.3}
.svc__note{font-size:.84rem;color:var(--ink-faint);line-height:1.5}
.svc__go{margin-top:auto;padding-top:10px;color:var(--accent);display:inline-flex}

/* news cards — the blog library card, without media. The library's featured
   images carry the headline burnt into the artwork, so a thumbnail would print
   every title twice; the card leads on type instead. */
.news__grid{display:grid;gap:clamp(14px,2vw,20px);grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}
/* The news strip sits in a light section, so its cards follow the same light
   treatment as .edu__card rather than the dark card used on /blog/. */
.news .sourcecard__link{background:#fff;border:1px solid rgba(3,53,74,.14);border-top:3px solid var(--accent);color:#0B2836;box-shadow:0 6px 22px rgba(3,53,74,.07)}
.news .sourcecard__link:hover{border-color:var(--accent)}
.news .sourcecard h3{color:#0B2836}
.news .sourcecard__body>p:not(.sourcecard__topic){color:#41616F}
.news .sourcecard__meta{color:#5C7885;border-top-color:rgba(3,53,74,.12)}
.news .sourcecard__topic{color:#0E7FA8!important}
.sourcecard--flat .sourcecard__body{padding:24px 22px 20px}
.sourcecard--flat h3{margin:0 0 10px;font-size:1.06rem;line-height:1.34;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.sourcecard--flat .sourcecard__meta b{white-space:nowrap}
/* internal link index on imported pages */
.linklist__grid{list-style:none;padding:0;margin:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.linklist__grid a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:12px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-weight:600;font-size:.94rem;text-decoration:none!important;transition:border-color .16s,transform .16s}
.linklist__grid a:hover,.linklist__grid a:focus-visible{border-color:var(--accent);transform:translateY(-2px)}
/* The index sits in a light section, so it follows the same light card treatment
   as .edu__card and the news strip rather than the dark card used elsewhere. */
.linklist .linklist__grid a{background:#fff;border-color:rgba(3,53,74,.14);color:#0B2836}
.linklist__grid svg{flex:none;color:var(--accent)}
/* Quick-nav chips: orientation on a long homepage, and real internal links.
   Shared by both sites, so the colours come from tokens rather than being fixed. */
.dqnav{background:var(--bg-alt);border-bottom:1px solid var(--line)}
.dqnav ul{display:flex;gap:10px;list-style:none;padding:12px 0;margin:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.dqnav ul::-webkit-scrollbar{display:none}
.dqnav a{display:inline-flex;align-items:center;min-height:40px;white-space:nowrap;padding:0 18px;border-radius:999px;border:1px solid var(--line);color:var(--ink-soft);font-size:.88rem;font-weight:600;text-decoration:none!important;transition:border-color .18s,color .18s,background .18s;background:var(--surface)}
.dqnav a:hover,.dqnav a:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--bg-elev)}
.hdr__sister{display:inline-flex;align-items:center;gap:7px;padding:0 14px;color:inherit;text-decoration:none!important;white-space:nowrap}
.hdr__sister svg{flex:none;color:var(--accent)}
/* Below the desktop nav the label is dropped so the burger always stays on
   screen; the link keeps its aria-label, so it is still named for assistive tech. */
@media(max-width:1180px){.hdr__sister span{display:none}.hdr__sister{padding:0;width:40px;justify-content:center}}
/* On the narrowest phones the row must still fit the burger, so the globe icon
   drops (the locale code already says it) and the wordmark steps down a size. */
@media(max-width:480px){
  .lang__btn>svg:first-child{display:none}
  .lang__btn{padding:0 9px;gap:4px}
  .hdr__acts{gap:6px}
  .hdr .hdr__in{padding-left:14px;padding-right:14px;gap:10px}
  .brand img{height:34px}
  .brand__word{font-size:.98rem}
}
/* Below 360px the wordmark gives way to the logo mark so the menu button fits. */
@media(max-width:359px){.brand__word{display:none}}
.ba__frame{position:relative;aspect-ratio:3/4;border-radius:16px;overflow:hidden;touch-action:pan-y;cursor:ew-resize}
.ba__frame.is-easing .ba__before,.ba__frame.is-easing .ba__handle{transition:clip-path .35s ease,left .35s ease}
@media (prefers-reduced-motion:reduce){.ba__frame.is-easing .ba__before,.ba__frame.is-easing .ba__handle{transition:none}}
.ba__frame img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.ba__after,.ba__before{position:absolute;inset:0}
.ba__before{clip-path:inset(0 50% 0 0)}
.ba__handle{position:absolute;top:0;bottom:0;left:50%;width:4px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.5);cursor:ew-resize}
.ba__handle::after{content:'⟷';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;color:#0B2836;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px}
.ba__tag{position:absolute;bottom:10px;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:rgba(0,0,0,.55);color:#fff;padding:4px 10px;border-radius:6px}
.ba__tag--b{left:10px}.ba__tag--a{right:10px}
.ba figcaption{padding:12px 4px;font-size:.9rem;color:var(--lite-ink-soft)}
.ba figcaption b{color:var(--lite-ink)}
.ba__consent{display:block;font-size:.76rem;color:var(--lite-ink-soft);margin-top:2px}
.ba[hidden]{display:none}
/* why */
.why__grid,.intl__grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.why__card,.intl__item{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:26px}
.why__card p,.intl__item p{color:var(--ink-soft);font-size:.93rem;margin:0}
.why__ic{display:inline-flex;width:44px;height:44px;border-radius:12px;background:rgba(26,174,224,.14);color:var(--accent);align-items:center;justify-content:center;margin-bottom:14px}
/* journey */
.journey__steps{list-style:none;margin:0;padding:0;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));counter-reset:step}
.journey__steps--v{grid-template-columns:1fr}
.jstep{display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.jstep__n{flex:0 0 38px;height:38px;border-radius:50%;background:var(--gold);color:#04222F;display:flex;align-items:center;justify-content:center;font-weight:700}
.jstep h3{font-size:1rem;margin-bottom:4px}
.jstep p{color:var(--ink-soft);font-size:.9rem;margin:0}
/* team */
.team__grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.member{text-align:center}
.member__img{aspect-ratio:1;border-radius:18px;overflow:hidden;background:var(--bg-elev);margin-bottom:14px}
.member__img img{width:100%;height:100%;object-fit:cover}
.member h3{font-size:1.02rem;margin:0}
.member p{color:var(--ink-soft);font-size:.86rem;margin:2px 0 0}
.member__meta{color:var(--gold)!important;font-weight:500}
/* clinic gallery */
.clinic__gallery{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media(min-width:900px){.clinic__gallery{grid-template-columns:repeat(4,1fr)}.clinic__ph--main{grid-column:span 2;grid-row:span 2}.clinic__gallery:has(> :nth-child(6)){grid-template-columns:repeat(3,1fr)}.clinic__gallery:has(> :nth-child(6)) .clinic__ph--main{grid-column:auto;grid-row:auto}}
.clinic__ph{border-radius:16px;overflow:hidden;aspect-ratio:4/3}
.clinic__ph img{width:100%;height:100%;object-fit:cover}
.clinic__addr{display:flex;align-items:center;gap:8px;justify-content:center;color:var(--ink-soft);margin-top:22px}
/* reviews */
.reviews__badge{display:flex;justify-content:center;margin-bottom:26px}
.reviews__row{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.review{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;margin:0}
.review__stars{margin-bottom:10px}
.review p{font-size:.95rem;color:var(--ink)}
.review footer{color:var(--ink-soft);font-size:.86rem}
.review__src{font-size:.8rem;display:inline-flex;align-items:center;min-height:24px;padding-block:3px}
/* education */
.edu__grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.edu__card{background:#fff;border:1px solid rgba(3,53,74,.14);border-radius:16px;padding:24px;color:#0B2836;text-decoration:none!important;display:flex;flex-direction:column;gap:8px;transition:transform .15s,border-color .15s}
.edu__card h3{color:#0B2836}
.edu__card:hover{transform:translateY(-3px);border-color:var(--accent)}
.edu__card p{color:#41616F;font-size:.9rem;flex:1;margin:0}
/* final CTA */
.final{background:linear-gradient(160deg,#0A3648,#04222F);color:var(--ink)}
.final h2{color:inherit}
.final__grid{display:grid;gap:40px}
@media(min-width:960px){.final__grid{grid-template-columns:1fr 1fr;align-items:start}}
.final__points{list-style:none;padding:0;display:grid;gap:10px;margin:22px 0}
.final__points li{display:flex;gap:10px;align-items:start;color:var(--ink-soft)}
.final__points svg{color:var(--gold);flex:0 0 auto;margin-top:3px}
.final__alt{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.final .btn--ghost{color:var(--final-ghost-ink,#F2F7F9);border-color:var(--final-ghost-line,rgba(242,247,249,.45))}
.final .leadform{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:var(--shadow);color:var(--ink)}
.final .leadform{color:var(--ink)}
html[data-site] .final{--final-ghost-ink:#F2F7F9;--final-ghost-line:rgba(242,247,249,.45)}
/* facts bar */
.facts{background:var(--bg-alt);border-block:1px solid var(--line)}
.facts dl{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;padding:26px 0}
.fact dt{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
.fact dd{margin:4px 0 0;font-weight:600;font-size:1.02rem}
/* prose */
.prose h2{margin-top:1.6em}
.prose ul li,.prose ol li{margin-bottom:.5em;color:var(--ink-soft)}
.prose p{color:var(--ink-soft)}
.prose__note{display:flex;gap:10px;background:rgba(26,174,224,.1);border:1px solid rgba(26,174,224,.3);border-radius:12px;padding:14px 16px;font-size:.9rem;color:var(--ink);align-items:flex-start}
.prose__note svg{flex:0 0 auto;color:var(--accent);margin-top:2px}
.prose__img{border-radius:16px;margin:1.4em 0}
/* faq */
.faq__item{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;background:var(--surface)}
.faq__item summary{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 20px;font-weight:600;cursor:pointer;list-style:none;font-size:.98rem}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item[open] summary svg{transform:rotate(180deg)}
.faq__item summary svg{transition:transform .2s;flex:0 0 auto;color:var(--accent)}
.faq__a{padding:0 20px 18px;color:var(--ink-soft);font-size:.94rem}
/* stages / timeline */
.stages__list{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.stages__list li{display:flex;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.stages__dur{display:flex;align-items:center;gap:6px;color:var(--gold);font-size:.85rem;margin:6px 0 0}
/* tables */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;border:1px solid var(--line);position:relative;background:linear-gradient(to left,var(--bg-elev) 0,transparent 18px) right/18px 100% no-repeat local}
.ctable{width:100%;border-collapse:collapse;font-size:.92rem;min-width:460px;background:var(--surface)}
@media(max-width:640px){.ctable{font-size:.85rem}.ctable th,.ctable td{padding:10px 10px}
.compare .table-scroll{border:0;background:none}
.compare .ctable{min-width:0}
.compare .ctable thead{display:none}
.compare .ctable tr{display:block;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:var(--surface);overflow:hidden}
.compare .ctable th[scope=row]{display:block;background:var(--bg-elev);border-bottom:1px solid var(--line)}
.compare .ctable td{display:block;border-bottom:1px solid var(--line)}
.compare .ctable td:last-child{border-bottom:0}
.compare .ctable td::before{content:attr(data-th);display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:2px}}
.ctable th,.ctable td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line)}
.ctable thead th{background:var(--bg-elev);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}
.ctable tbody tr:last-child :is(td,th){border-bottom:0}
@media(max-width:640px){.pricing .table-scroll{border:0}.pricing .ctable{min-width:0}.pricing .ctable tr{display:flex;flex-direction:column;border-bottom:1px solid var(--line)}.pricing .ctable th,.pricing .ctable td{border-bottom:0;padding:8px 12px}.pricing .ctable th{padding-bottom:0}}
.ctable td svg{color:var(--ok)}
/* cta band */
.ctaband{background:linear-gradient(120deg,var(--accent),#0E7FA8);color:#fff;padding-block:clamp(36px,6vw,64px)}
.ctaband h2{color:#fff;margin:0}
.ctaband p{color:rgba(255,255,255,.85);margin:6px 0 0}
.ctaband__in{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.ctaband .btn--primary{background:#fff;color:#03354A}
/* cols */
.cols__grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.cols__col{border-radius:16px;padding:26px;border:1px solid var(--line);background:var(--surface)}
.cols__col ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.cols__col li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-soft);font-size:.94rem}
.cols__col svg{flex:0 0 auto;margin-top:3px;color:var(--ok)}
.cols__col--warn svg{color:var(--gold)}
/* videos */
.vids__grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.vid__thumb{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;border-radius:16px;overflow:hidden;background:#000}
.vid__thumb img{width:100%;height:100%;object-fit:cover;opacity:.85}
.vid__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center}
.vid p{margin:10px 0 0;font-size:.92rem;color:var(--ink-soft)}
.vid iframe{width:100%;aspect-ratio:16/9;border-radius:16px}
/* forms */
.leadform label{display:block;margin-bottom:14px}
.leadform label>span,.wizard label>span{display:block;font-size:.84rem;font-weight:500;margin-bottom:6px;color:var(--ink-soft)}
input[type=text],input[type=tel],input[type=email],select,textarea{width:100%;padding:13px 14px;border-radius:10px;border:1.5px solid var(--line-strong);background:rgba(255,255,255,.06);color:var(--ink);font:inherit;min-height:48px}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:3px solid var(--focus);outline-offset:2px}
input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger)}
.f-row{display:grid;gap:0 14px}
@media(min-width:560px){.f-row{grid-template-columns:1fr 1fr}}
.f-check{display:flex!important;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--ink-soft);margin-bottom:10px!important}
.f-check a{text-decoration:underline}
.f-check input{width:20px;height:20px;margin-top:1px;accent-color:var(--accent);flex:0 0 auto}
.f-err{color:var(--danger);font-size:.88rem;font-weight:500}
.f-note{display:flex;gap:8px;align-items:center;font-size:.8rem;color:var(--ink-soft);margin:12px 0 0}
.f-note svg{color:var(--ok);flex:0 0 auto}
.f-file input{padding:10px}
input[type=file]::file-selector-button{background:var(--cta);color:var(--cta-ink);border:0;border-radius:999px;padding:9px 16px;font:inherit;font-weight:600;margin-right:12px;cursor:pointer}
.f-file__hint{display:flex;gap:8px;align-items:center;font-size:.8rem;color:var(--ink-faint);margin-top:6px}
.leadform__h{font-size:1.15rem;margin-bottom:16px;font-weight:600;line-height:1.2}
/* wizard */
.wizard{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(20px,4vw,34px);box-shadow:var(--shadow)}
.wizard__bar{height:6px;border-radius:3px;background:var(--bg-elev);overflow:hidden;margin-bottom:10px}
.wizard__progress{height:100%;background:var(--accent);transition:width .3s}
.wizard__count{font-size:.84rem;color:var(--ink-faint);margin-bottom:20px}
.wizard__step{border:0;padding:0;margin:0}
.wizard__intro{color:var(--ink-soft);font-size:.94rem}
.wizard__nav{display:flex;gap:12px;justify-content:space-between;margin-top:22px}
.wizard__nav .btn[data-next],.wizard__nav .btn[data-submit]{margin-left:auto}
.f-choice{border:0;padding:0;margin:0 0 16px}
.f-choice legend{font-size:.84rem;font-weight:500;color:var(--ink-soft);margin-bottom:8px;padding:0}
.chipopt{display:inline-flex;margin:0 8px 8px 0}
.chipopt input{position:absolute;opacity:0}
.chipopt span{display:inline-flex;padding:11px 18px;border-radius:999px;border:1.5px solid var(--line-strong);font-size:.9rem;cursor:pointer;transition:all .15s;min-height:44px;align-items:center}
.chipopt input:checked+span{background:var(--accent);border-color:var(--accent);color:#04222F;font-weight:600}
.chipopt input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
/* contact */
.contactsec__grid{display:grid;gap:40px}
@media(min-width:960px){.contactsec__grid{grid-template-columns:1.1fr .9fr}}
.contactsec__list{list-style:none;padding:0;display:grid;gap:16px;margin:24px 0}
.contactsec__list li{display:flex;gap:12px;color:var(--ink-soft)}
.contactsec__list svg{color:var(--accent);flex:0 0 auto;margin-top:3px}
.map{margin-top:26px;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
.map iframe{width:100%;height:340px}
/* thanks */
.thanks{text-align:center}
.thanks__badge{width:72px;height:72px;border-radius:50%;background:var(--ok);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 24px}
.thanks .journey__steps--v{text-align:left;margin:24px 0}
.thanks .hero__ctas{justify-content:center}
/* breadcrumbs */
.crumbs{border-bottom:1px solid var(--line);background:var(--bg-alt)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:11px 0;font-size:.82rem}
.crumbs li+li::before{content:'/';margin-right:6px;color:var(--ink-faint)}
.crumbs a{color:var(--ink-soft)}
.crumbs [aria-current]{color:var(--ink)}
/* footer */
.ftr{background:#021A25;color:var(--ink-soft);margin-top:auto}
.ftr h3{color:var(--ink);font-size:.95rem;margin-bottom:14px}
.ftr__grid{display:grid;gap:36px;padding-block:clamp(44px,7vw,72px);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.ftr__brand{max-width:300px}
.ftr__brand img{margin-bottom:16px;height:auto}
.ftr__brand p{font-size:.88rem}
.ftr__col ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.ftr__col a{color:inherit;font-size:.88rem}
.ftr__col a:hover{color:var(--accent)}
.ftr__contact p{display:flex;gap:9px;font-size:.88rem;align-items:flex-start}
.ftr__contact svg{flex:0 0 auto;margin-top:3px;color:var(--accent)}
.ftr__contact a{color:inherit}
.ftr__social{display:flex;gap:6px;margin-top:18px;margin-inline-start:-10px}
.ftr__social a{color:inherit;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%}
.ftr__social a:hover,.ftr__social a:focus-visible{color:var(--accent);background:var(--bg-elev)}
.tp--dark{background:rgba(255,255,255,.08);color:var(--ink);margin-top:16px}
.ftr__bottom{border-top:1px solid rgba(255,255,255,.1);padding-block:26px;font-size:.8rem}
.ftr__note{max-width:820px}
.ftr__legal-list{display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;padding:0;margin:12px 0}
.ftr__legal-list a,.ftr__legal-list .linklike{color:inherit;font-size:.8rem}
.ftr__copy{margin:10px 0 0;color:var(--ink-faint)}
.ftr--lp{padding-block:34px}
/* floaters */
.wa-float{position:fixed;right:18px;bottom:86px;z-index:90;width:56px;height:56px;border-radius:50%;background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px -6px rgba(37,211,102,.6)}
.wa-float svg{width:28px;height:28px}
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:95;display:none;grid-template-columns:1fr auto auto;background:#0A3648;border-top:1px solid var(--line);padding:10px 12px;gap:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.sticky-cta__main{background:var(--cta);color:var(--cta-ink);border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:600;padding:13px;min-height:48px;text-decoration:none!important}
.sticky-cta__wa,.sticky-cta__call{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}
.sticky-cta__wa{background:var(--wa)}
.sticky-cta__call{background:var(--accent)}
.sticky-cta{transition:transform .3s ease,visibility .3s ease}
.sticky-cta.is-muted,.sticky-cta.is-suppressed{transform:translateY(120%);visibility:hidden}
@media(max-width:820px){.sticky-cta{display:grid}.wa-float{bottom:auto;display:none}}
/* consent */
.consent{position:fixed;z-index:150;left:0;right:0;bottom:0;padding:14px;pointer-events:none}
.consent__card{pointer-events:auto;max-width:500px;margin-left:max(14px,calc((100vw - var(--maxw))/2 + var(--gut)));margin-right:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:18px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.4);max-height:min(72svh,620px);overflow:auto}
.consent__card h2{font-size:1rem;margin-bottom:6px}.consent__card>p{font-size:.8rem;line-height:1.5;color:var(--ink-soft);margin-bottom:12px}
.consent__acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.consent__links{font-size:.75rem;margin:10px 0 0}
.consent__prefs{margin-bottom:12px}
@media(max-width:820px){
  .consent{bottom:76px;padding:8px}
  .consent__card{max-width:none;margin:0;padding:14px;border-radius:16px}
  .consent__acts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .consent__acts .btn{justify-content:center;padding-inline:12px}
  .consent__acts .linklike{grid-column:1/-1;justify-self:start}
  .consent__prefs .f-check{margin-bottom:6px!important}
}
/* exit intent */
.exit{position:fixed;inset:0;z-index:160;background:rgba(2,20,28,.7);display:flex;align-items:center;justify-content:center;padding:20px}
.exit__card{position:relative;background:var(--surface);color:var(--ink);border-radius:20px;padding:38px;max-width:440px;text-align:center;display:grid;gap:10px;justify-items:center}
.exit__x{position:absolute;top:12px;right:14px;background:none;border:0;font-size:18px;color:var(--ink-soft);width:44px;height:44px}
/* LP specifics */
.hdr--lp .brand{margin-right:auto}
@media(max-width:640px){.hdr--lp .brand__word{display:none}.hdr--lp .hdr__call span{display:none}.hdr--lp .hdr__in{gap:10px}}
.hero--lp{min-height:min(92svh,820px)}
.lp-points{list-style:none;padding:0;margin:20px 0;display:grid;gap:10px}
.lp-points li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-soft)}
.lp-points svg{color:var(--gold);flex:0 0 auto;margin-top:3px}
.lp-disclaimer{font-size:.76rem;color:var(--ink-faint);margin-top:14px}
.lpprob__grid{list-style:none;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));margin-bottom:26px}
.lpprob__grid li{display:flex;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;font-size:.93rem;color:var(--ink-soft)}
.lpprob__grid svg{color:var(--accent);flex:0 0 auto;margin-top:2px}
.lpprob__grid b{color:var(--ink)}
.lpinc__grid{list-style:none;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
@media(min-width:1000px){.is-lp .tgrid{grid-template-columns:repeat(4,1fr)}}
.lpinc__grid li{display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;font-size:.92rem}
.lpinc__grid svg{color:var(--ok);flex:0 0 auto;margin-top:2px}
.lpurg__card{display:flex;gap:18px;background:var(--surface);border:1px solid var(--gold);border-radius:16px;padding:26px;align-items:flex-start}
.lpurg__card svg{color:var(--gold);flex:0 0 auto;width:28px;height:28px}
.lpurg__card h2{font-size:1.2rem}
.lpurg__card p{margin:0;color:var(--ink-soft)}
.press-strip{background:var(--bg-alt);border-block:1px solid var(--line);padding:18px 0}
.press-strip p{text-align:center;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 8px}
.press-strip ul{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 36px;list-style:none;margin:0;padding:0;font-weight:600;color:var(--ink-soft);font-size:1.02rem}
/* imported source library — editorial hierarchy shared by Hair and Dental */
.sourcehero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(circle at 82% 10%,rgba(26,174,224,.14) 0,transparent 34%),var(--bg-alt)}
.sourcehero__in{display:grid;gap:clamp(30px,5vw,70px);align-items:center;padding-block:clamp(56px,8vw,104px)}
.sourcehero__copy{max-width:780px}.sourcehero__copy h1{font-size:clamp(2.2rem,5vw,4.8rem);letter-spacing:-.04em;max-width:15ch}.sourcehero__sub{font-size:clamp(1rem,2vw,1.2rem);color:var(--ink-soft);max-width:66ch;margin-top:22px}
.sourcehero__back{display:inline-flex;align-items:center;gap:7px;color:var(--ink-soft);font-size:.82rem;font-weight:600;margin-bottom:22px}.sourcehero__back svg{width:15px;transform:rotate(180deg)}
.sourcehero__meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--ink-faint);font-size:.86rem;margin:22px 0 0}.sourcehero__media{margin:0;border-radius:clamp(18px,3vw,32px);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow);border:1px solid var(--line)}.sourcehero__media img{width:100%;height:100%;object-fit:cover}
.sourcehero--text .sourcehero__copy{margin-inline:auto;text-align:center}.sourcehero--text .sourcehero__copy h1{max-width:18ch;margin-inline:auto}.sourcehero--text .sourcehero__sub{margin-inline:auto}
@media(min-width:960px){.sourcehero__in{grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr)}.sourcehero--text .sourcehero__in{display:block}}
.sourcebody{background:var(--bg)}.sourcebody__layout{display:grid;gap:clamp(30px,5vw,72px);max-width:1120px}.sourcebody__aside{display:none}.sourcebody__article{min-width:0;max-width:760px}.sourcebody__article>h2{font-size:clamp(1.6rem,3vw,2.25rem);margin:2.1em 0 .65em;scroll-margin-top:100px}.sourcebody__article>h2:first-of-type{margin-top:1.2em}.sourcebody__article>h3{font-size:clamp(1.15rem,2vw,1.35rem);margin:1.6em 0 .55em}.sourcebody__article>p,.sourcebody__article>ul,.sourcebody__article>ol{color:var(--ink-soft);font-size:clamp(1rem,1.2vw,1.08rem)}.sourcebody__article li{margin-bottom:.55em}.sourcebody__article blockquote,.sourcebody__notice{display:flex;gap:12px;background:rgba(26,174,224,.1);border:1px solid rgba(26,174,224,.3);border-radius:16px;padding:18px 20px;margin:24px 0}.sourcebody__article blockquote svg,.sourcebody__notice svg{flex:0 0 auto;color:var(--accent);margin-top:3px}.sourcebody__article blockquote p,.sourcebody__notice p{margin:0;color:var(--ink)}.sourcebody__figure{margin:clamp(28px,5vw,52px) 0}.sourcebody__figure img{width:100%;border-radius:18px}.sourcebody__figure figcaption{font-size:.78rem;color:var(--ink-faint);margin-top:8px}.sourcetoc{position:sticky;top:98px;border-left:2px solid var(--line-strong);padding-left:18px}.sourcetoc>p{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:600}.sourcetoc ol{list-style:none;margin:0;padding:0;display:grid;gap:9px}.sourcetoc a{display:block;color:var(--ink-soft);font-size:.82rem;line-height:1.35}.sourcetoc a:hover{color:var(--accent)}
.sourcetoc-mobile{border:1px solid var(--line-strong);border-radius:14px;background:var(--surface);margin-bottom:20px}.sourcetoc-mobile summary{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:600;cursor:pointer;list-style:none}.sourcetoc-mobile summary::-webkit-details-marker{display:none}.sourcetoc-mobile summary svg{color:var(--accent);transition:transform .2s}.sourcetoc-mobile[open] summary svg{transform:rotate(180deg)}.sourcetoc-mobile nav{border-top:1px solid var(--line);padding:10px 16px 14px}.sourcetoc-mobile ol{margin:0;padding-left:1.2em}.sourcetoc-mobile a{display:block;padding:5px 0;color:var(--ink-soft);font-size:.85rem}
@media(min-width:1000px){.sourcebody__layout{grid-template-columns:230px minmax(0,760px)}.sourcebody__aside{display:block}}
.sourcelib__empty p{margin:0 0 12px}
@media(min-width:1000px){.sourcetoc-mobile{display:none}}
.sourcelib{background:var(--bg-alt)}.sourcelib__controls{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:28px}.sourcelib__controls input,.sourcelib__controls select{width:100%;min-height:52px;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface);color:var(--ink);padding:12px 16px}.sourcelib__count{align-self:center;color:var(--ink-faint);font-size:.86rem;margin:0}.sourcelib__grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.sourcecard{min-width:0}.sourcecard__link{height:100%;display:flex;flex-direction:column;border:1px solid var(--line);background:var(--surface);border-radius:18px;overflow:hidden;color:var(--ink);text-decoration:none!important;box-shadow:var(--shadow);transition:transform .18s,border-color .18s}.sourcecard__link:hover{transform:translateY(-4px);border-color:var(--accent)}.sourcecard__media{aspect-ratio:16/9;overflow:hidden;background:var(--bg-elev)}.sourcecard__media img{width:100%;height:100%;object-fit:cover}.sourcecard__media--empty{display:flex;align-items:center;justify-content:center;color:var(--accent)}.sourcecard__media--empty svg{width:38px;height:38px}.sourcecard__body{padding:22px;display:flex;flex-direction:column;flex:1}.sourcecard__topic{font-size:.7rem!important;letter-spacing:.11em;text-transform:uppercase;color:var(--gold)!important;font-weight:600;margin-bottom:9px}.sourcecard h3{font-size:1.05rem;line-height:1.35}.sourcecard__body>p:not(.sourcecard__topic){font-size:.84rem;color:var(--ink-soft);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.sourcecard__meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font-size:.74rem;color:var(--ink-faint)}.sourcecard__meta b{margin-left:auto;color:var(--accent);display:inline-flex;align-items:center;gap:4px}.sourcecard__meta svg{width:14px;height:14px}.sourcelib__more{text-align:center;margin-top:34px}.sourcelib__empty{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;color:var(--ink-soft)}
@media(min-width:720px){.sourcelib__controls{grid-template-columns:minmax(280px,1fr) 260px auto}.sourcelib__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1120px){.sourcelib__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* responsive nav */
@media(max-width:1320px){
  .hdr{backdrop-filter:none;-webkit-backdrop-filter:none}
  .nav{position:fixed;inset:68px 0 auto 0;height:calc(100dvh - 68px);margin-left:0;background:var(--bg);transform:translateX(-100%);visibility:hidden;transition:transform .25s,visibility 0s .25s;overflow-y:auto;overscroll-behavior:contain;padding:20px var(--gut) 120px;z-index:99}
  .nav.is-open{transform:none;visibility:visible;transition:transform .25s}
  .nav__list{flex-direction:column;gap:0}
  .nav__link{width:100%;justify-content:space-between;padding:15px 8px;font-size:1.05rem;border-bottom:1px solid var(--line);border-radius:0}
  .nav__sub{position:static;display:none;border:0;box-shadow:none;background:transparent;padding:0 0 8px 16px;margin:0}
  .has-sub.is-open .nav__sub{display:block}
  .nav__mobile-extra{display:grid;gap:12px;margin-top:24px}
  .burger{display:flex}
  .burger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger[aria-expanded=true] span:nth-child(2){opacity:0}
  .burger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  body.nav-open{overflow:hidden}
}
@media(max-width:640px){.hide-s{display:none!important}}
@media(max-width:1320px){.hide-m{display:none!important}}
@media(max-width:820px){body{padding-bottom:70px}.ftr{padding-bottom:8px}}
@media(max-width:700px){
  /* The results grid joins the mobile carousel set: six stacked 3:4 cards were
     4.9 screens of scrolling on a 390px viewport. Content stays in the DOM. */
  .treatments .tgrid,.team__grid,.reviews__row,.results__grid{display:flex;overflow-x:auto;gap:14px;scroll-snap-type:x mandatory;padding:2px var(--gut) 14px;margin-inline:calc(-1*var(--gut));scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .treatments .tgrid::-webkit-scrollbar,.team__grid::-webkit-scrollbar,.reviews__row::-webkit-scrollbar{display:none}
  .treatments .tgrid>*,.reviews__row>*,.results__grid>*{flex:0 0 84%;scroll-snap-align:center}
  .team__grid>*{flex:0 0 66%;scroll-snap-align:center}
  .sourcehero__in{padding-block:42px}.sourcehero__copy h1{font-size:clamp(1.95rem,9vw,2.5rem);max-width:none;letter-spacing:-.03em}
}
/* reveal animation */
.sec>.wrap{animation:none}
@media(prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}
  .rv.is-in{opacity:1;transform:none}
}
[hidden]{display:none!important}

/* ============================================================================
   v6 layer — hair rebuild.
   Two jobs: hold every text style to one ladder (three weights, six sizes, one
   accent hue), and carry the sections that were rebuilt. It is appended last so
   it wins over the older rules it is deliberately overriding.
   ========================================================================== */

/* --- type discipline -------------------------------------------------------
   Headings are bold, never semibold; supporting text is regular, never 500.
   The only weight between them is 600, reserved for buttons, labels and links. */
h1,h2{font-weight:700;letter-spacing:-.022em}
h3,h4{font-weight:700;letter-spacing:-.01em}
.sec-sub{font-size:1.02rem;font-weight:400;line-height:1.6;color:var(--ink-soft)}
.sec-head{max-width:760px}
.eyebrow,.dsec-eyebrow,.dpress__label,.mega__title,.sourcecard__topic,.sourcetoc>p{
  color:var(--accent)!important;font-weight:600;letter-spacing:.14em;font-size:.78rem}
.btn,.nav__link,.tcard__go,.linklike,.chip,.dqnav a{font-weight:600}
.trustbar li,.member p,.f-note,.sec-note{font-weight:400}
/* One family of numerals across counters, stats and step markers. */
.twhy__stat b,.member__stats dt,.jline__marker b{font-variant-numeric:tabular-nums;letter-spacing:-.02em}

/* --- hero (no inline form) ------------------------------------------------- */
.hero--clean{min-height:min(84svh,720px)}
.hero--clean .hero__in{grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.hero--clean .hero__in{grid-template-columns:minmax(0,1fr)}}
.hero--clean .hero__copy{max-width:760px}
.hero--clean h1{font-size:clamp(2.3rem,6vw,4rem);max-width:16ch}
.hero--clean .hero__sub{max-width:56ch;font-size:clamp(1.05rem,2vw,1.28rem)}
.hero__press{margin-top:30px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.hero__press-label{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}
.hero__press ul{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;list-style:none;margin:0;padding:0}
.hero__press img{height:22px;width:auto;max-width:112px;object-fit:contain;filter:grayscale(1) brightness(0) invert(1);opacity:.72}
@media(max-width:600px){.hero__press img{height:16px}.hero__press{gap:8px 16px}}

/* --- review badges (Trustpilot + Google) ----------------------------------- */
.tpair{display:inline-flex;flex-wrap:wrap;gap:10px;align-items:center}
.tp{font-weight:600;gap:7px}
.tp b{font-weight:700}
.tp>span{font-weight:400;color:var(--ink-soft)}
.tp--g .stars{color:#FBBC05}
.tp--g svg:first-child{flex:0 0 auto}
.ftr .tp{background:rgba(255,255,255,.08)}
/* The pre-v6 mobile rule hid every span inside the badge, which took the stars
   with it and left a bare "4.6/5". Both badges stay whole on a phone; they just
   stack and shed the wordy suffix on the Trustpilot one. */
@media(max-width:560px){
  .tpair{width:100%;flex-direction:column;align-items:stretch;gap:8px}
  .hero__proof{width:100%}
  .hero__proof .tp,.ftr .tp{width:100%;justify-content:flex-start;white-space:nowrap;text-align:left}
  /* :not(.stars) matters — the star row is also a direct span child, and giving
     it display:inline stacks its block-level SVGs into a column. */
  .hero__proof .tp>span:not(.stars),.ftr .tp>span:not(.stars){display:inline;font-size:.82rem}
  .tp{font-size:.85rem;padding:10px 14px}
}

/* --- lead form ------------------------------------------------------------- */
.leadform label>span{font-weight:600;color:var(--ink-soft);font-size:.82rem;letter-spacing:.01em}
/* Phone field with the prefix picker. The picker is the only country question,
   so it has to feel like a first-class control, not a bolted-on prefix. */
.f-tel{position:relative;margin-bottom:14px}
.f-tel__row{position:relative;display:flex;align-items:stretch;gap:0}
.tel-btn{display:inline-flex;align-items:center;gap:8px;padding:0 12px 0 14px;min-height:48px;
  border:1.5px solid var(--line-strong);border-right:0;border-radius:10px 0 0 10px;
  background:rgba(255,255,255,.08);color:var(--ink);
  font-weight:700;font-size:.95rem;white-space:nowrap;transition:border-color .16s,background .16s}
.tel-btn:hover{background:rgba(255,255,255,.14);border-color:var(--accent)}
.tel-btn__f{font-size:1.15rem;line-height:1}
.tel-btn__d{font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.tel-btn__c{display:inline-flex;color:var(--ink-faint);transition:transform .18s}
.tel-btn__c svg{width:14px;height:14px}
.tel-btn[aria-expanded=true]{border-color:var(--accent);background:rgba(26,174,224,.16)}
.tel-btn[aria-expanded=true] .tel-btn__c{transform:rotate(180deg);color:var(--accent)}
.f-tel__row>input[type=tel]{border-radius:0 10px 10px 0;min-width:0;flex:1}
.f-tel__native{margin-top:8px}
/* the popover */
.tel-pop{position:absolute;z-index:60;top:calc(100% + 8px);left:0;width:min(360px,100%);
  background:var(--surface);border:1px solid var(--line-strong);border-radius:16px;
  box-shadow:0 24px 60px -18px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.12);overflow:hidden;
  animation:telIn .16s ease-out}
.tel-pop--up{top:auto;bottom:calc(100% + 8px);transform-origin:bottom left}
@keyframes telIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.tel-pop{animation:none}}
.tel-pop__search{display:flex;align-items:center;gap:9px;padding:12px 14px;border-bottom:1px solid var(--line)}
.tel-pop__search svg{flex:0 0 auto;width:17px;height:17px;color:var(--ink-faint)}
.tel-pop__search input{border:0!important;background:transparent!important;padding:0!important;min-height:0!important;
  font-size:.95rem;font-weight:600;color:var(--ink);outline:0!important;width:100%}
.tel-pop__search input:focus{outline:0!important;box-shadow:none}
.tel-pop__list{list-style:none;margin:0;padding:6px;max-height:264px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.tel-opt{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;
  padding:9px 10px;border-radius:10px;cursor:pointer;font-size:.92rem;color:var(--ink)}
.tel-opt__f{font-size:1.1rem;line-height:1}
.tel-opt__n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tel-opt__d{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-weight:600;font-size:.86rem}
.tel-opt.is-active{background:rgba(26,174,224,.16)}
.tel-opt.is-sel{color:var(--accent);font-weight:700}
.tel-opt.is-sel .tel-opt__d{color:var(--accent)}
.tel-opt[hidden]{display:none}
@media(max-width:560px){.tel-pop{width:100%}.tel-pop__list{max-height:46vh}}

.f-consent{font-size:.8rem;line-height:1.5;color:var(--ink-faint);margin:4px 0 14px}
.f-consent a{color:var(--accent);text-decoration:underline}
.leadform__h{font-weight:700;font-size:1.2rem}

/* --- swipe rail (reels, patient voices, professionals) --------------------- */
.rail{position:relative}
.rail__track{display:flex;gap:clamp(12px,1.6vw,20px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px var(--gut) 16px;margin-inline:calc(-1*var(--gut));scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rail__track::-webkit-scrollbar{display:none}
.rail__track>*{flex:0 0 auto;scroll-snap-align:start;margin:0}
.rail__nav{position:absolute;top:calc(50% - 34px);width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);display:none;align-items:center;justify-content:center;z-index:3;box-shadow:var(--shadow);transition:border-color .16s,color .16s}
.rail__nav:hover{border-color:var(--accent);color:var(--accent)}
.rail__nav[disabled]{opacity:.3;pointer-events:none}
.rail__nav--prev{left:-14px;transform:rotate(90deg)}
.rail__nav--next{right:-14px;transform:rotate(-90deg)}
@media(min-width:900px) and (hover:hover){.rail__nav{display:flex}}
.sec--lite .rail__nav{background:#fff;border-color:rgba(3,53,74,.2);color:#0B2836}

/* --- reels (the clinic's Instagram feed) ----------------------------------- */
.reels__head{display:flex;flex-wrap:wrap;gap:20px 32px;align-items:flex-end;justify-content:space-between;margin-bottom:clamp(24px,3.4vw,38px)}
.reels__id{max-width:640px}
.reels__id h2{margin:0 0 8px}
.reels__id .sec-sub{margin:0}
.reels__follow{display:inline-flex;align-items:center;gap:12px;padding:12px 20px 12px 14px;border-radius:999px;
  border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);text-decoration:none!important;
  transition:border-color .16s,transform .16s;flex:0 0 auto}
.reels__follow:hover{border-color:var(--accent);transform:translateY(-2px)}
/* The Instagram mark keeps its own gradient — it is a third-party logo, and a
   monochrome version reads as a generic camera icon. */
.reels__follow>svg{width:30px;height:30px;flex:0 0 auto;padding:5px;border-radius:10px;color:#fff;
  background:linear-gradient(45deg,#F9CE34 0%,#EE2A7B 48%,#6228D7 100%)}
.reels__follow span{display:flex;flex-direction:column;line-height:1.25}
.reels__follow b{font-size:.94rem;font-weight:700}
.reels__follow em{font-style:normal;font-size:.78rem;color:var(--ink-faint)}
.reels__track{padding-top:8px}
.reel{width:min(58vw,232px);margin:0}
.reel__frame{position:relative;display:block;aspect-ratio:9/16;border-radius:18px;overflow:hidden;
  background:var(--bg-elev);border:1px solid var(--line);text-decoration:none!important;
  transition:transform .2s,border-color .2s,box-shadow .2s}
.reel__frame:hover,.reel__frame:focus-visible{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 18px 40px -18px rgba(0,0,0,.6)}
.reel__frame img{width:100%;height:100%;object-fit:cover}
.reel__ph{position:absolute;inset:0;background:linear-gradient(150deg,var(--bg-elev),var(--surface))}
/* A gradient floor so the caption is legible over any frame. */
.reel__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,34,47,.42) 0%,rgba(4,34,47,0) 34%,rgba(4,34,47,.12) 58%,rgba(4,34,47,.86) 100%)}
.reel__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;
  background:rgba(255,255,255,.94);color:#04222F;display:flex;align-items:center;justify-content:center;
  transition:transform .2s;box-shadow:0 6px 20px rgba(0,0,0,.28)}
.reel__frame:hover .reel__play{transform:translate(-50%,-50%) scale(1.1)}
.reel__glyph{position:absolute;right:12px;top:12px;width:26px;height:26px;color:#fff;opacity:.92;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}
.reel__glyph svg{width:100%;height:100%}
.reel__cap{position:absolute;left:14px;right:14px;bottom:14px;color:#fff;font-size:.86rem;font-weight:600;line-height:1.35;
  text-shadow:0 1px 6px rgba(0,0,0,.55);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
/* the on-demand embed */
.reelbox{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;background:rgba(2,16,23,.9);backdrop-filter:blur(6px);padding:24px}
.reelbox.is-on{display:flex}
.reelbox__in{width:min(400px,92vw);height:min(700px,84vh);background:#000;border-radius:16px;overflow:hidden}
.reelbox__in iframe{width:100%;height:100%;border:0}
.reelbox__x{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:#fff;font-size:18px;line-height:1}
@media(max-width:700px){.reels__head{align-items:flex-start}.reels__follow{padding:10px 16px 10px 12px}}

/* --- motion steps ("Flying in? We planned for that") ----------------------- */
.msteps__box{border:1px solid var(--line);border-radius:24px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}
.msteps__slides{position:relative}
.mstep{display:none;grid-template-columns:1fr;gap:0}
.mstep.is-on{display:grid}
@media(min-width:900px){.mstep.is-on{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center}}
.mstep__stage{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(165deg,#062C3C,#0A3648)}
.mstep__sky{position:absolute;inset:0;background:
  radial-gradient(circle at 22% 26%,rgba(26,174,224,.22),transparent 42%),
  radial-gradient(circle at 78% 62%,rgba(26,174,224,.14),transparent 46%)}
/* --- the six travel scenes -------------------------------------------------
   Every scene shares one stage (1000x600), one palette and one motion rule:
   nothing animates unless its slide is on screen and the visitor has not asked
   for reduced motion. */
.mv{position:absolute;inset:0;width:100%;height:100%}
.mv text{font-family:inherit}
.mv-road{stroke:var(--line-strong);stroke-width:3;fill:none;stroke-linecap:round}
.mv-halo{fill:var(--accent);opacity:.22}
.mv-skin{fill:rgba(95,200,234,.16);stroke:var(--accent);stroke-width:3}
/* 1 route */
/* The landmass sits under everything; the borders are drawn at a lighter weight
   than the flight arcs so the routes stay the subject. */
.mv-land{fill:rgba(26,174,224,.10);stroke:rgba(95,200,234,.34);stroke-width:1.3;stroke-linejoin:round}
.mv-routes path{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;opacity:.85}
.mv-origins circle{fill:#04222F;stroke:var(--accent);stroke-width:3}
.mv-origins text{fill:var(--ink);font-size:25px;font-weight:700;paint-order:stroke;stroke:#062C3C;stroke-width:5px;stroke-linejoin:round}
.mv-dest circle{fill:var(--accent)}
.mv-dest text{fill:var(--ink);font-size:38px;font-weight:700;letter-spacing:-.01em}
.mv-plane circle{fill:var(--accent)}
/* the glyph is drawn pointing up-right, so it is rolled back onto the tangent */
.mv-plane path{fill:#04222F;transform:scale(1.55) rotate(-45deg)}
.mv-plane{offset-rotate:auto;offset-distance:0%;opacity:0}
/* 2 transfer */
.mv-terminal path{fill:rgba(95,200,234,.14);stroke:var(--accent);stroke-width:3;stroke-linejoin:round}
.mv-terminal rect{fill:var(--accent);opacity:.55}
.mv-dest--pin path{fill:var(--accent)}
.mv-pin-dot{fill:#04222F}
.mv-road-dash{stroke:var(--accent);stroke-width:4;fill:none;stroke-linecap:round;stroke-dasharray:26 30;opacity:.5}
.mv-car-body{fill:var(--accent)}
.mv-car-glass{fill:#04222F;opacity:.85}
.mv-wheel{fill:#04222F}
.mv-hub{fill:var(--accent)}
.mv-car{transform:translate(180px,452px)}
/* 3 hotel */
.mv-building{fill:rgba(95,200,234,.13);stroke:var(--accent);stroke-width:3}
.mv-building-top{fill:var(--accent);opacity:.9}
.mv-windows rect{fill:var(--accent);opacity:.12}
.mv-win--checkin{opacity:.12}
.mv-arrive circle{fill:var(--accent)}
.mv-arrive path{fill:#04222F;transform:scale(1.4) rotate(-45deg)}
.mv-arrive{offset-path:path('M-60 250 Q240 150 470 236');offset-rotate:auto;offset-distance:0%;opacity:0}
.mv-door{fill:var(--accent);opacity:.5}
.mv-stars path{fill:var(--accent);opacity:.9}
.mv-moon circle{fill:var(--accent);opacity:.28}
.mv-moon-cut{fill:#062C3C;opacity:1}
/* 4 surgery */
.mv-lamp>path{stroke:var(--line-strong);stroke-width:4;fill:none}
.mv-lamp ellipse{fill:var(--accent);opacity:.9}
.mv-lamp-beam{fill:var(--accent);opacity:.07;stroke:none}
.mv-line{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;stroke-dasharray:14 16}
.mv-line--done{stroke-dasharray:none;opacity:.9}
.mv-grafts circle{fill:var(--accent)}
/* 5 wash */
.mv-shower path{stroke:var(--line-strong);stroke-width:5;fill:none}
.mv-shower path+path{fill:var(--accent);stroke:none}
.mv-drops ellipse{fill:var(--accent);opacity:.75}
/* 6 growth */
.mv-strands path{stroke:var(--accent);stroke-width:9;stroke-linecap:round;fill:none;transform-box:fill-box;transform-origin:bottom}
.mv-marks circle{fill:#062C3C;stroke:var(--accent);stroke-width:5}
.mv-marks text{fill:var(--ink);font-size:36px;font-weight:700;text-anchor:middle}
@media(prefers-reduced-motion:no-preference){
  .mstep.is-on .mv-routes path{stroke-dasharray:900;stroke-dashoffset:900;animation:mvDraw 1.4s ease-out forwards;animation-delay:calc(var(--i) * .14s + .15s)}
  .mstep.is-on .mv-origins g{opacity:0;animation:mvIn .5s ease-out forwards;animation-delay:calc(var(--i) * .14s)}
  .mstep.is-on .mv-halo{animation:mvHalo 2.6s ease-out infinite;transform-box:fill-box;transform-origin:center}
  .mstep.is-on .mv-plane{animation:mvFly 5.2s cubic-bezier(.5,0,.5,1) .6s infinite}
  .mstep.is-on .mv-car{animation:mvDrive 5s cubic-bezier(.45,0,.55,1) infinite}
  .mstep.is-on .mv-road-dash{animation:mvDash 1.1s linear infinite}
  .mstep.is-on .mv-arrive{animation:mvArrive 6s cubic-bezier(.4,0,.4,1) infinite}
  .mstep.is-on .mv-win--checkin{animation:mvCheckin 6s ease-in-out infinite}
  .mstep.is-on .mv-line{stroke-dasharray:520;stroke-dashoffset:520;animation:mvDraw 1.6s ease-out .2s forwards}
  .mstep.is-on .mv-grafts circle{opacity:0;transform:scale(.2);transform-box:fill-box;transform-origin:center;animation:mvPop .45s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:calc(1.5s + var(--i) * .12s)}
  .mstep.is-on .mv-grafts--set circle{animation-delay:calc(var(--i) * .06s)}
  .mstep.is-on .mv-drops ellipse{animation:mvDrop 1.5s ease-in infinite;animation-delay:calc(var(--i) * .17s)}
  .mstep.is-on .mv-strands path{transform:scaleY(0);animation:mvGrow .8s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(var(--i) * .07s)}
  .mstep.is-on .mv-marks g{opacity:0;animation:mvIn .5s ease-out forwards;animation-delay:calc(.6s + var(--i) * .18s)}
}
@keyframes mvDraw{to{stroke-dashoffset:0}}
@keyframes mvIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes mvHalo{0%{opacity:.4;transform:scale(.85)}70%,100%{opacity:0;transform:scale(2.1)}}
@keyframes mvFly{0%{offset-distance:0%;opacity:0}12%{opacity:1}62%{opacity:1}74%,100%{offset-distance:86%;opacity:0}}
@keyframes mvDrive{0%{transform:translate(150px,452px)}55%,100%{transform:translate(760px,452px)}}
@keyframes mvDash{to{stroke-dashoffset:-56}}
@keyframes mvArrive{0%{offset-distance:0%;opacity:0}8%{opacity:1}44%{offset-distance:100%;opacity:1}52%,100%{offset-distance:100%;opacity:0}}
/* the room lights the moment the plane reaches the building, then stays on */
@keyframes mvCheckin{0%,44%{opacity:.12;filter:none}52%,92%{opacity:1;filter:drop-shadow(0 0 14px var(--accent))}100%{opacity:.12;filter:none}}
@keyframes mvPop{to{opacity:1;transform:scale(1)}}
@keyframes mvDrop{0%{transform:translateY(0);opacity:0}15%{opacity:.85}100%{transform:translateY(300px);opacity:0}}
@keyframes mvGrow{to{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.mv-plane{offset-distance:52%;opacity:1}}
@media(max-width:700px){
  .mv-origins text{font-size:38px}
  .mv-dest text{font-size:46px}
  .mv-marks text{font-size:44px}
}
.mstep__copy{padding:clamp(26px,4vw,44px)}
.mstep__n{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--accent);margin:0 0 10px}
.mstep__n span{color:var(--ink-faint)}
.mstep__copy h3{font-size:clamp(1.25rem,2.4vw,1.7rem);margin:0 0 10px}
.mstep__copy p{color:var(--ink-soft);margin:0;font-size:1rem;max-width:46ch}
.msteps__bar{display:flex;align-items:center;justify-content:center;gap:14px;padding:0 20px 22px}
.msteps__bar .rail__nav{position:static;display:flex;width:42px;height:42px;transform:none}
.msteps__bar .rail__nav:first-child svg{transform:rotate(90deg)}
.msteps__bar .rail__nav:last-child svg{transform:rotate(-90deg)}
.msteps__dots{display:flex;gap:8px}
.mdot{width:9px;height:9px;padding:0;border-radius:50%;border:0;background:var(--line-strong);transition:width .2s,background .2s}
.mdot.is-on{width:26px;border-radius:999px;background:var(--accent)}
@media(prefers-reduced-motion:no-preference){
  .mstep.is-on .mstep__pulse{animation:mpulse 2.6s ease-out infinite}
  .mstep.is-on .mstep__stage--plane .mstep__mover{animation:mfly 4.4s ease-in-out infinite}
  .mstep.is-on .mstep__stage--car .mstep__mover{animation:mdrive 3.6s ease-in-out infinite}
  .mstep.is-on .mstep__stage--rise .mstep__mover{animation:mrise 3.2s ease-in-out infinite}
  .mstep.is-on .mstep__stage--beat .mstep__mover{animation:mbeat 2.4s ease-in-out infinite}
  .mstep.is-on .mstep__ground{animation:mline 3s ease-in-out infinite}
}
@keyframes mfly{0%{transform:translate(-120px,26px) rotate(-8deg)}50%{transform:translate(0,-10px) rotate(0)}100%{transform:translate(120px,-42px) rotate(8deg)}}
@keyframes mdrive{0%,100%{transform:translateX(-56px)}50%{transform:translateX(56px)}}
@keyframes mrise{0%,100%{transform:translateY(14px)}50%{transform:translateY(-14px)}}
@keyframes mbeat{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
@keyframes mpulse{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(2.6)}}
@keyframes mline{0%,100%{opacity:.28}50%{opacity:.7}}

/* --- why-vs comparison ----------------------------------------------------- */
.wvs__table{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--surface)}
.wvs__head{display:none;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink-faint);border-bottom:1px solid var(--line)}
.wvs__head--us{color:var(--accent)}
.wvs__row{display:grid;gap:0;border-bottom:1px solid var(--line)}
.wvs__row:last-child{border-bottom:0}
.wvs__q{margin:0;padding:18px 22px 6px;font-weight:700;font-size:1rem}
.wvs__cell{display:flex;flex-direction:column;gap:4px;padding:10px 22px 16px;font-size:.94rem;line-height:1.5}
.wvs__cell>span:last-child{display:flex;gap:9px;align-items:flex-start}
.wvs__cell svg{flex:0 0 auto;margin-top:3px}
.wvs__lab{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink-faint)}
.wvs__cell--them{color:var(--ink-faint)}
.wvs__cell--them svg{color:var(--ink-faint)}
.wvs__cell--us{color:var(--ink);background:rgba(26,174,224,.08);font-weight:600}
.wvs__cell--us svg{color:var(--accent)}
.wvs__cell--us .wvs__lab{color:var(--accent)}
@media(min-width:880px){
  .wvs__head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr);padding:14px 22px;gap:22px}
  .wvs__row{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:0}
  .wvs__q{padding:20px 22px;align-self:center}
  .wvs__cell{padding:20px 22px;justify-content:center}
  .wvs__lab{display:none}
}

/* --- journey as a line ----------------------------------------------------- */
.jline{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:0}
.jline__step{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:18px;padding:0 0 34px}
.jline__step:last-child{padding-bottom:0}
.jline__step::before{content:'';position:absolute;left:27px;top:52px;bottom:-6px;width:2px;background:linear-gradient(var(--accent),rgba(26,174,224,.15))}
.jline__step:last-child::before{display:none}
.jline__marker{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#04222F;font-weight:700;font-size:1.15rem;box-shadow:0 0 0 6px rgba(26,174,224,.12)}
.jline__n{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--accent);margin:0 0 4px}
.jline__body h3{font-size:1.12rem;margin:0 0 6px}
.jline__body>p:last-of-type{color:var(--ink-soft);margin:0;font-size:.95rem}
.jline__when{display:inline-flex;align-items:center;gap:7px;margin:10px 0 0!important;font-size:.82rem;color:var(--accent)!important;font-weight:600}
.jline__when svg{width:15px;height:15px}
@media(min-width:900px){
  .jline{grid-template-columns:repeat(var(--jsteps),minmax(0,1fr));gap:clamp(14px,1.6vw,26px)}
  .jline__step{grid-template-columns:minmax(0,1fr);gap:16px;padding:0;text-align:left}
  .jline__step::before{left:54px;right:-26px;top:26px;bottom:auto;width:auto;height:2px;background:linear-gradient(90deg,var(--accent),rgba(26,174,224,.2))}
  .jline__marker{margin-bottom:2px}
}

/* --- journey ---------------------------------------------------------------
   A shallow wave band holds the dotted line and the numbered markers; the step
   blocks sit in a plain row beneath, one under each marker. Both are in normal
   flow, so neither can reach the section heading or the button. Below the
   desktop breakpoint the wave is dropped and the same markers run down a rail
   on the left of each step. */
.jpath{margin-top:clamp(4px,1vw,12px)}
.jpath__wave{position:relative;height:128px;margin-bottom:6px}
.jpath__wave svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.jpath__wave path{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-dasharray:1 12;opacity:.75}
.jdot{position:absolute;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:var(--accent);color:#04222F;
  font-weight:700;font-size:1.2rem;
  box-shadow:0 0 0 8px rgba(26,174,224,.12),0 10px 24px -10px var(--accent)}
.jpath__steps{list-style:none;margin:0;padding:0;display:grid;gap:clamp(14px,1.6vw,22px);
  grid-template-columns:repeat(var(--jsteps,5),minmax(0,1fr))}
.jstepc{margin:0;display:flex;flex-direction:column}
.jstepc__dot{display:none}
.jstepc__body{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:16px;
  padding:20px 18px 22px;text-align:center}
.jstepc__n{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--accent);margin:0 0 8px}
.jstepc__body h3{font-size:1.02rem;margin:0 0 10px;line-height:1.28}
.jstepc__body>p:last-of-type{color:var(--ink-soft);font-size:.88rem;margin:0;line-height:1.5}
.jstepc__when{display:inline-flex;align-items:center;gap:6px;margin:14px 0 0!important;
  font-size:.78rem;color:var(--accent)!important;font-weight:700}
.jstepc__when svg{width:14px;height:14px}
@media(prefers-reduced-motion:no-preference){
  .jpath__wave path{animation:jflow 2.6s linear infinite}
}
@keyframes jflow{to{stroke-dashoffset:-26}}
/* Under 1000px five columns stop working, so the wave is replaced by a rail:
   the marker moves inline beside each step and a dotted line joins them. */
@media(max-width:999px){
  .jpath__wave{display:none}
  .jpath__steps{grid-template-columns:1fr;gap:0}
  .jstepc{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;padding-bottom:26px;position:relative}
  .jstepc:last-child{padding-bottom:0}
  .jstepc::before{content:'';position:absolute;left:27px;top:58px;bottom:2px;width:0;
    border-left:4px dotted var(--accent);opacity:.6}
  .jstepc:last-child::before{display:none}
  .jstepc__dot{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;
    background:var(--accent);color:#04222F;font-weight:700;font-size:1.2rem;
    box-shadow:0 0 0 6px rgba(26,174,224,.12)}
  .jstepc__body{text-align:left;padding:16px 18px 18px}
}

/* --- team cards ------------------------------------------------------------ */
.member__stats{display:flex;justify-content:center;gap:18px;margin:10px 0 0}
.member__stats div{text-align:center}
.member__stats dt{font-weight:700;font-size:1.18rem;color:var(--accent);margin:0}
.member__stats dd{margin:0;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);line-height:1.3;max-width:11ch}
.member h3{font-weight:700;font-size:1.05rem}
.member p{font-size:.85rem}

/* --- results gallery -------------------------------------------------------
   An editorial grid rather than a wall of equal thumbnails: the first case runs
   double width as a lead, the rest fall into a 3-up rhythm, and every card is a
   dark framed plate so mixed source quality reads as one deliberate set instead
   of as an archive dump. Hover lifts the card and brings the caption forward. */
.results{position:relative;overflow:hidden}
/* a soft vignette so the section reads as a gallery wall, not a spreadsheet */
.results::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 80% at 50% 0%,rgba(26,174,224,.10),transparent 60%)}
.results .wrap{position:relative}
/* grouped gallery: a heading per category, then that category's grid */
/* Pre-v6 rules widened a grid holding only one or two cards. That was right for
   a single pooled gallery; with a group per category it made the Beard and
   Female cards twice the size of every other case. Cards stay one size, and a
   short group simply leaves the rest of its row empty. */
.results__grid:has(> :only-child),
.results__grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr));justify-content:start}
@media(min-width:760px){
  .results__grid:has(> :only-child),
  .results__grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:1100px){
  .results__grid:has(> :only-child),
  .results__grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
}
.bagroups{display:grid;gap:clamp(34px,4.4vw,58px)}
.bagroup[hidden]{display:none}
.bagroup__head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 clamp(14px,1.8vw,20px);
  padding-bottom:12px;border-bottom:1px solid var(--lite-line)}
.bagroup__head h3{margin:0;font-size:clamp(1.05rem,1.9vw,1.3rem);color:var(--lite-ink);letter-spacing:-.01em}
.bagroup__n{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--accent-soft);
  background:rgba(26,174,224,.12);border-radius:999px;padding:3px 10px;font-variant-numeric:tabular-nums}
.bagroup__head p{margin:0;font-size:.85rem;color:var(--lite-ink-soft);flex:1 1 100%}
.results__grid{display:grid;gap:clamp(14px,1.6vw,22px);grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:760px){.results__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1100px){.results__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ba{margin:0;position:relative;height:100%;border-radius:18px;overflow:hidden;background:#0B2836;
  box-shadow:0 10px 30px -14px rgba(3,53,74,.5);transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s}
.ba:hover{transform:translateY(-6px);box-shadow:0 24px 48px -18px rgba(3,53,74,.6)}
/* the plate */
/* height:100% together with aspect-ratio made the shot resolve its WIDTH from
   the row height, so cards sharing a row with the tall lead computed a 557px
   plate inside a 268px card and showed only their left half. The ratio sets the
   height; only the lead, which fills a 2x2 area, opts out of it. */
.ba__shot{position:relative;overflow:hidden;background:#0B2836;width:100%}
.ba__shot--two{display:grid;grid-template-columns:1fr 1fr;gap:2px;aspect-ratio:3/2}
.ba__shot--one{aspect-ratio:3/2}
/* Composite frames are already a wide before|after pair, so they need far less
   vertical crop than a single portrait half does. */
.ba__shot--one img{object-position:50% 34%}
.ba__half{position:relative;overflow:hidden}
.ba__shot img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;
  transition:transform .5s cubic-bezier(.22,1,.36,1),filter .4s}
.ba:hover .ba__shot img{transform:scale(1.05)}
/* One grade over every frame so archive scans and studio pairs match: a touch
   more contrast, a shared cool cast, and a floor gradient for the caption. */
.ba__shot img{filter:saturate(1.05) contrast(1.06) brightness(1.02)}
.ba__shot::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(11,40,54,0) 42%,rgba(11,40,54,.55) 74%,rgba(11,40,54,.95) 100%)}
.ba .ba__tag{position:absolute;bottom:auto;top:10px;left:10px;right:auto;z-index:2;
  font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(11,40,54,.72);color:#fff;padding:4px 9px;border-radius:6px;backdrop-filter:blur(6px)}
.ba__shot--one .ba__tag{left:10px}
.ba__shot--one .ba__tag--a{left:auto;right:10px}
.ba__shot--two .ba__tag{left:8px}
.ba__shot--two .ba__half:last-child .ba__tag--a{left:8px}
.ba .ba__tag--a{background:var(--accent);color:#04222F}
/* the caption sits on the plate, not under it */
.ba__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 15px 15px;color:#fff;text-align:left}
.ba__name{display:block;font-weight:700;font-size:.98rem;color:#fff;letter-spacing:-.01em;margin-bottom:3px}
.ba__quote{display:flex;gap:7px;align-items:flex-start;margin:0 0 5px;font-size:.86rem;line-height:1.4;color:#fff;font-weight:600}
.ba__quote svg{flex:0 0 auto;width:14px;height:14px;color:var(--accent);margin-top:2px;opacity:.9}
.ba__meta{display:block;font-size:.76rem;color:rgba(255,255,255,.78);font-weight:500;line-height:1.35}
.ba[hidden]{display:none}
/* chips */
.results__filters{gap:9px;margin-bottom:clamp(22px,3vw,34px)}
.chip{border:1px solid var(--lite-line);background:transparent;color:var(--lite-ink);border-radius:999px;
  padding:9px 18px;font-size:.86rem;font-weight:600;transition:background .2s,color .2s,border-color .2s,transform .2s}
.chip:hover{border-color:var(--accent);color:var(--accent-soft);transform:translateY(-1px)}
.chip.is-on{background:var(--lite-ink);color:#F4F8FA;border-color:var(--lite-ink)}
@media(prefers-reduced-motion:no-preference){
  .ba{opacity:0;animation:baIn .5s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(var(--i) * .045s)}
}
@keyframes baIn{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:700px){
  .results__grid{gap:10px}
  .ba__cap{padding:10px 11px 11px}
  .ba__name{font-size:.86rem}
  .ba__quote{font-size:.78rem}
  .ba__meta{font-size:.68rem}
  .ba .ba__tag{font-size:.56rem;padding:3px 7px;top:7px;left:7px}
}

/* --- technique cards (no borrowed patient photos) -------------------------- */
.tcard__img{aspect-ratio:4/3}
.tcard--plate .tcard__img{display:flex;align-items:center;justify-content:center;background:
  radial-gradient(circle at 30% 25%,rgba(26,174,224,.22),transparent 55%),
  linear-gradient(150deg,#0A3648,#062C3C)}
.tcard__glyph{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#04222F}
.tcard__glyph svg{width:30px;height:30px;stroke-width:1.8}
.tcard__from{color:var(--accent)!important;font-weight:700}
.tcard h3{font-size:1.1rem}

/* --- CTA band, bolder ------------------------------------------------------ */
.ctaband--bold{background:linear-gradient(120deg,#1AAEE0 0%,#0E7FA8 58%,#03354A 100%);position:relative;overflow:hidden;padding-block:clamp(48px,7vw,84px)}
.ctaband--bold::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 88% 12%,rgba(255,255,255,.22),transparent 42%);pointer-events:none}
.ctaband--bold .ctaband__in{position:relative;z-index:1;gap:32px}
.ctaband__copy{max-width:34ch}
.ctaband__kicker{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:#fff;background:rgba(255,255,255,.18);padding:7px 14px;border-radius:999px}
.ctaband__kicker svg{width:14px;height:14px}
.ctaband--bold h2{font-size:clamp(1.9rem,4.4vw,3rem);line-height:1.08;letter-spacing:-.03em}
.ctaband--bold p{font-size:1.05rem;color:rgba(255,255,255,.9);margin-top:12px}
.ctaband--bold .btn--primary{background:#fff;color:#03354A;font-weight:700;padding:16px 30px}
.ctaband--bold .btn--wa{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.4)}
.ctaband__acts{display:flex;flex-wrap:wrap;gap:12px}

/* --- footer, decluttered --------------------------------------------------- */
.ftr__grid{grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr)) minmax(0,1.1fr)}
.ftr__col h3{font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:14px}
.ftr__col ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.ftr__col a{color:var(--ink-soft);font-size:.9rem}
.ftr__col a:hover{color:var(--accent)}
.ftr__brand p{font-size:.9rem;color:var(--ink-soft);max-width:38ch}
.ftr__contact p{display:flex;gap:9px;align-items:flex-start;font-size:.9rem;color:var(--ink-soft);margin:0 0 9px}
.ftr__contact svg{flex:0 0 auto;color:var(--accent);margin-top:2px}
.ftr__social{display:flex;gap:12px;margin-top:16px}
.ftr__social a{color:var(--ink-soft)}
.ftr__social a:hover{color:var(--accent)}
.ftr__bottom{display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:clamp(28px,4vw,44px);padding-top:20px}
.ftr__legal-list{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:0;padding:0}
.ftr__legal-list a,.ftr__legal-list .linklike{color:var(--ink-faint);font-size:.8rem;text-decoration:none;font-weight:400}
.ftr__legal-list a:hover,.ftr__legal-list .linklike:hover{color:var(--accent);text-decoration:underline}
.ftr__copy{margin:0;font-size:.78rem;color:var(--ink-faint);max-width:64ch}
@media(max-width:900px){.ftr__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.ftr__grid{grid-template-columns:minmax(0,1fr)}.ftr__bottom{flex-direction:column;align-items:flex-start}}

/* --- corrections from the first visual pass -------------------------------- */
/* The .leadform label>span blanket rule sets display:block, which stacked the
   prefix picker above the phone input. The row needs its own, tighter rule. */
.leadform label>span.f-tel__row{display:flex;margin-bottom:0}
/* Stars were collapsing to dots inside the flex badge, then stacking vertically
   once the badge went full-width: the row needs to refuse both shrink and wrap. */
.tp .stars,.review__stars .stars,.stars{display:inline-flex!important;flex:0 0 auto;flex-wrap:nowrap;line-height:0}
.stars svg{width:15px;height:15px;flex:0 0 auto}
.tp{padding:9px 14px;flex-wrap:nowrap}
.tp>b,.tp>span{flex:0 0 auto}
/* Rail children have no intrinsic width, so each one has to declare its own. */
.reviews__row .review{width:min(84vw,360px);display:flex;flex-direction:column}
.review footer{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding-top:12px}
.review footer b{color:var(--ink);font-weight:700;font-size:.95rem}
.review footer span{color:var(--ink-faint);font-size:.82rem}
.review__ph{width:64px;height:64px;border-radius:50%;overflow:hidden;margin-bottom:14px;border:2px solid var(--accent)}
.review__ph img{width:100%;height:100%;object-fit:cover}
.pros__track .pro{width:min(62vw,236px)}
.pro__ph--pending{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--bg-elev);color:var(--ink-faint)}
/* The technique plate is a holding pattern for the commissioned artwork, so it
   should read as a card header, not as a missing hero image. */
.tcard--plate .tcard__img{aspect-ratio:16/6}
.tcard__glyph{width:58px;height:58px}
/* Portrait sources: three pairs across gives each face room, and the crop holds
   the hairline (the subject) rather than centring on the chin. */
.member__stats dd{max-width:none;white-space:nowrap}
.member__stats{gap:22px}
/* Four clinic photos tile cleanly as a 2×2; the 1-large-plus-3 rule was built
   for five and left a hole in the corner. */
.clinic__gallery:has(> :nth-child(4):last-child){grid-template-columns:repeat(2,1fr)}
.clinic__gallery:has(> :nth-child(4):last-child) .clinic__ph--main{grid-column:auto;grid-row:auto}
.ftr__brand{align-self:start;min-width:0}
/* The footer column is narrower than the Trustpilot badge's natural width, and
   the badge is nowrap, so it was running past the column edge. In the footer the
   pair stacks and each badge wraps its own suffix onto a second line. */
.tpair--compact{display:grid;gap:8px;justify-items:start;max-width:100%}
.tpair--compact .tp{max-width:100%;flex-wrap:wrap;white-space:normal;row-gap:2px;line-height:1.35;font-size:.82rem;padding:8px 13px;gap:6px}
.tpair--compact .tp>span{white-space:normal;font-size:.8rem}
.tpair--compact .stars svg{width:13px;height:13px}

/* --- mobile ---------------------------------------------------------------- */
@media(max-width:700px){
  .reviews__row{display:flex!important}
  .msteps__box{border-radius:18px}
  .ctaband__in{flex-direction:column;align-items:flex-start}
  .ctaband__acts .btn{width:100%;justify-content:center}
}
/* --- vertical rhythm -------------------------------------------------------
   One set of gaps for the whole page: heading to content, content to note,
   content to button. Several sections were setting their own and ending up
   tighter than the rest. */
.sec-head{margin-bottom:clamp(34px,4.6vw,60px)}
.sec-head--c{margin-inline:auto}
.sec-head h2{margin-bottom:.4em}
.sec-head .sec-sub{margin-bottom:0}
.sec-cta{margin-top:clamp(40px,4.6vw,64px)}
/* a note directly above a button should not close the gap under it */
.sec-note{margin-top:clamp(26px,3vw,38px)}
.sec-note + .sec-cta,
.sec-cta + .sec-note{margin-top:clamp(22px,2.4vw,32px)}
.reels__head{margin-bottom:clamp(28px,3.6vw,44px)}
.bagroup__head{margin-bottom:clamp(18px,2.2vw,26px)}
.msteps__box,.wvs__table,.jpath,.tgrid,.team__grid,.results__grid,.rail{margin-top:0}
/* the carousel bar was sitting hard against the slide */
.msteps__bar{padding-top:6px}
/* headings inside cards need air above their body copy */
.wvs__q{padding-top:20px}
@media(max-width:700px){
  .sec-head{margin-bottom:clamp(26px,6vw,38px)}
  .sec-cta{margin-top:clamp(30px,7vw,42px)}
}

@media print{.hdr,.ftr,.wa-float,.sticky-cta,.consent{display:none!important}}
