/*
Theme Name: Better Flow Child
Template: hello-elementor
Description: Brand shell + blog templates for betterflowphysio.co.uk. Pages built as HTML blocks keep their own shell; posts and archives are rendered by this theme.
Version: 1.0.25
Author: Broxbourne Marketing
*/

/* ============================================================
   SMARTPHYSIO homepage — mobile-first rebuild
   Palette: teal #62C5C3 only. No black. No white text on teal.
   Type: Poppins (headings) + Verdana (everything else).
   ============================================================ */

:root{
  --teal:#10192a;
  --teal-tint:#253551;
  --teal-wash:#EAECEF;
  --teal-deep:#0a0f1a;
  --off-white:#FAFAFA;
  --pale-grey:#F2F2F2;
  --grey-dark:#444444;
  --grey-mid:#555555;
  --grey-light:#66666F;
  --white:#FFFFFF;
  --star:#444444;
  --accent:#d4b87c;
  --container:1600px;
  --gutter:10vw;
  --r-card:18px;
  --r-panel:28px;
  --r-sm:12px;
  --sh:0 2px 8px rgba(16,25,42,.08);
  --sh-lift:0 8px 24px rgba(16,25,42,.14);
  --pad-y:72px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--grey-mid);
     font-family:Verdana,Geneva,sans-serif;font-size:16.5px;line-height:1.65;
     overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4,.blair{font-family:'Poppins',Verdana,sans-serif;font-weight:600;letter-spacing:-.01em;color:var(--grey-dark);margin:0}
h1{font-size:clamp(28px,7.4vw,41px);line-height:1.12}
h2{font-size:clamp(25px,5.6vw,37px);line-height:1.16;color:var(--grey-mid)}
h3{font-size:clamp(17px,4.2vw,19.5px);line-height:1.32}
p{margin:0 0 14px}
p:last-child{margin-bottom:0}
h1,h2,p,a,span,li,address,em{overflow-wrap:break-word}
h3{overflow-wrap:normal;word-break:normal;hyphens:none}
.wrap{width:80vw;max-width:var(--container);margin:0 auto;padding:0}
section{padding:var(--pad-y) 0}
.kicker{font-family:'Poppins',Verdana,sans-serif;font-size:12px;letter-spacing:2.6px;
        color:var(--teal-deep);margin-bottom:12px;}
.lead{font-size:clamp(17px,4.3vw,19px);line-height:1.6;color:var(--grey-dark);max-width:62ch}
.sec-intro{max-width:60ch;margin-bottom:30px}
.band-off{background:var(--off-white)}
.band-white{background:var(--white)}
.center{text-align:center}
.center .sec-intro{margin-left:auto;margin-right:auto}
.stars{color:var(--star);letter-spacing:1px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--white);padding:10px 16px;z-index:99;border-radius:8px}

/* ---------- buttons ---------- */
.btn:hover{transform:translateY(-2px)}
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;
     min-height:52px;padding:14px 26px;border-radius:999px;border:2px solid transparent;
     font-family:'Poppins',Verdana,sans-serif;font-size:14px;font-weight:600;letter-spacing:0;
     text-decoration:none;cursor:pointer;transition:background-color .22s,color .22s,border-color .22s,transform .22s,box-shadow .22s}

.btn-teal{background:var(--accent);color:var(--teal-deep);box-shadow:0 4px 14px rgba(46,153,151,.25)}
.btn-teal:hover{filter:brightness(.92);color:var(--teal-deep)}
.logo{display:flex;align-items:center;gap:12px}
.logo-img{width:56px;height:56px;border-radius:50%;object-fit:contain}
@media(max-width:768px){.logo-img{width:44px;height:44px}}
.btn-grey{background:var(--grey-mid);color:var(--white)}
.btn-grey:hover{background:var(--grey-dark)}
.btn-line{background:transparent;color:var(--grey-mid);border-color:var(--grey-light)}
.btn-line:hover{background:var(--grey-mid);color:var(--white);border-color:var(--grey-mid)}
.btn-white{background:var(--white);color:var(--grey-mid);box-shadow:0 4px 14px rgba(20,49,47,.12)}
.btn-white:hover{background:var(--grey-mid);color:var(--white)}
.btn-white-line{background:transparent;color:var(--grey-dark);border-color:var(--grey-dark)}
.btn-white-line:hover{background:var(--white);color:var(--grey-mid);border-color:var(--white)}
.btn-sm{min-height:44px;padding:10px 20px;font-size:13px}

/* ---------- header ---------- */
.util{background:var(--teal-deep);color:#fff}
.util .wrap{display:flex;align-items:center;justify-content:center;gap:8px 18px;flex-wrap:wrap;
            padding-top:9px;padding-bottom:9px;
            font-family:'Poppins',Verdana,sans-serif;font-size:13.5px;letter-spacing:.4px}
.util a{color:#fff;text-decoration:none;font-weight:600}
.util .dot{opacity:.55}
header{position:relative;z-index:60;background:rgba(255,255,255,.92);
       backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
       border-bottom:1px solid var(--pale-grey)}
.hd{display:flex;align-items:center;justify-content:space-between;gap:12px;
    width:80vw;max-width:var(--container);margin:0 auto;padding:10px 0}
.logo{display:block;text-decoration:none;line-height:1;flex:0 0 auto}
.logo{min-width:0}
.logo .l1{font-family:'Poppins',system-ui,sans-serif;font-weight:700;letter-spacing:0;font-size:22px;line-height:1;white-space:nowrap}
.logo .l1 .a{color:#00B1AF}.logo .l1 .b{color:#555555}
.logo .l2{font-family:'Poppins',Verdana,sans-serif;font-size:clamp(6.6px,1.95vw,8.6px);letter-spacing:clamp(1.5px,.55vw,2.3px);color:#6C6C6C;margin-top:3px;white-space:nowrap}
nav.main{display:none;gap:2px}
.hd-act{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.burger{display:inline-flex;align-items:center;gap:8px;background:none;border:0;cursor:pointer;
        font-family:'Poppins',Verdana,sans-serif;font-size:13px;letter-spacing:1.2px;color:var(--grey-mid);
        padding:12px 6px;min-height:44px;white-space:nowrap;flex:0 0 auto}
.burger svg{width:20px;height:14px;stroke:var(--grey-mid);stroke-width:2;stroke-linecap:round}
.mnav{display:none;border-top:1px solid var(--pale-grey);background:var(--white)}
.mnav.open{display:block}
/* mobile nav link styling lives in the mega-menu block below */

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;background:var(--teal-wash);overflow:hidden;
      min-height:clamp(470px,78vh,580px);display:grid;align-items:center;
      padding:40px 0 46px}
.hero>.wrap{position:relative;z-index:2}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
         object-position:86% 28%;z-index:0}
.hero-veil{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(250,250,250,.97) 0%,rgba(250,250,250,.93) 38%,rgba(250,250,250,.8) 55%,rgba(250,250,250,.35) 70%,rgba(250,250,250,0) 85%)}
.hero-copy{max-width:660px;background:rgba(255,255,255,.86);border-radius:var(--r-panel);
           padding:24px 20px 26px;box-shadow:0 10px 34px rgba(20,49,47,.10)}
.rating-chip{display:inline-flex;align-items:center;gap:10px;background:var(--white);
             padding:9px 16px 9px 10px;border-radius:999px;box-shadow:var(--sh);
             font-size:13.5px;color:var(--grey-mid);text-decoration:none;margin-bottom:18px}
.rating-chip .g{width:26px;height:26px;flex:0 0 auto}
.rating-chip b{color:var(--grey-dark);font-family:Verdana,sans-serif}
.hero h1{margin-bottom:26px;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.hero-cta{display:flex;flex-direction:row;flex-wrap:nowrap;gap:10px;margin-bottom:26px}
.hero-cta .btn{flex:1 1 0;min-width:0;white-space:normal;line-height:1.25;
               padding:13px 20px;font-size:12.5px}
.hero-cta .btn-line{background:rgba(255,255,255,.72);border-color:var(--grey-mid)}
.hero-cta .btn-line:hover{background:var(--grey-mid)}
.ticks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 18px;max-width:560px;
       font-size:13.5px;color:var(--grey-dark);margin:0;padding:0;list-style:none}
.ticks li{display:flex;align-items:flex-start;gap:8px;line-height:1.4}
.ticks svg{width:15px;height:15px;stroke:var(--teal-deep);stroke-width:2.6;fill:none;flex:0 0 auto;margin-top:2px}

/* ---------- trust strip ---------- */
.trust{background:var(--white);padding:24px 0;border-bottom:1px solid var(--pale-grey)}
.trust-card{display:flex;flex-direction:column;align-items:center;gap:18px}
.trust-marks{display:flex;align-items:center;justify-content:center;gap:26px}
.trust-marks img{height:42px;width:auto}
.trust-sep{width:64px;height:1px;background:var(--pale-grey)}
.trust-awards{display:flex;align-items:center;justify-content:center;gap:26px 34px;
              flex-wrap:wrap;text-decoration:none;opacity:.92;transition:opacity .2s}
.trust-awards:hover{opacity:1}
.trust-awards img{width:auto}
.trust-awards .t-sme{max-height:30px}
.trust-awards .t-prestige{max-height:46px}
.trust-awards .t-ghp{max-height:26px}
.trust-awards .t-luxlife{max-height:30px}

/* ---------- generic cards ---------- */
.card{background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh);padding:26px 22px;
      text-decoration:none;display:flex;flex-direction:column;height:100%;
      transition:transform .28s ease,box-shadow .28s ease}
a.card:hover,a.card:focus-visible{transform:translateY(-6px);box-shadow:var(--sh-lift)}
.card h3{margin-bottom:9px}
.card p{font-size:15px;line-height:1.65;color:var(--grey-mid)}
.card .go{margin-top:auto;padding-top:16px;font-size:13.5px;letter-spacing:1px;color:var(--teal-deep);font-weight:400;
          font-family:Verdana,sans-serif}
a.card:hover .go{text-decoration:underline}
.ic{width:52px;height:52px;border-radius:50%;background:var(--teal-tint);display:flex;align-items:center;
    justify-content:center;margin-bottom:16px;transition:background-color .28s}
.ic svg{width:25px;height:25px;stroke:var(--teal-deep);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:stroke .28s}
a.card:hover .ic{background:var(--teal)}
a.card:hover .ic svg{stroke:var(--grey-dark)}

/* ---------- scroller → grid ---------- */
.scroller{display:grid;grid-auto-flow:column;grid-auto-columns:79%;gap:14px;
          overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
          scroll-padding-left:var(--gutter);padding:6px var(--gutter) 20px;margin:0 calc(-1 * var(--gutter));
          -webkit-overflow-scrolling:touch;scrollbar-width:none}
.scroller::-webkit-scrollbar{display:none}
.scroller>*{scroll-snap-align:start}
.swipe-hint{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--grey-light);margin-top:-6px}
.swipe-hint svg{width:16px;height:16px;stroke:var(--grey-light);fill:none;stroke-width:1.8}

/* ---------- teal panel ---------- */
.panel{background:var(--teal);border-radius:var(--r-panel);padding:34px 22px;color:var(--grey-dark)}
.panel h2,.panel h3{color:var(--grey-dark)}
.panel .kicker{color:var(--grey-dark);opacity:.8}
.panel-copy{background:var(--white);border-radius:var(--r-card);padding:26px 22px;box-shadow:0 10px 30px rgba(20,49,47,.12)}
.panel-copy h2{color:var(--grey-mid)}
.panel-copy p{color:var(--grey-mid)}
.panel-copy .tag{background:var(--teal-tint);border-color:transparent;color:var(--grey-dark)}
.panel-copy .tag:hover{background:var(--teal);color:var(--grey-dark)}

/* ---------- tags ---------- */
.tags{display:flex;flex-wrap:wrap;gap:9px}
.tag{display:inline-flex;align-items:center;min-height:42px;padding:9px 18px;background:var(--white);
     color:var(--grey-mid);font-size:14px;text-decoration:none;border-radius:999px;
     border:1px solid var(--pale-grey);transition:background-color .2s,color .2s,transform .2s,border-color .2s}
.tag:hover{background:var(--teal);color:var(--grey-dark);border-color:var(--teal);transform:translateY(-2px)}
.panel .tag{border-color:transparent}
.panel .tag:hover{background:var(--grey-mid);color:var(--white)}

/* ---------- awards ---------- */
.aw{background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh);padding:26px 20px 22px;
    text-align:center;display:flex;flex-direction:column;height:100%;transition:transform .28s,box-shadow .28s}
.aw:hover{transform:translateY(-5px);box-shadow:var(--sh-lift)}
.aw .aw-logo{height:84px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.aw .aw-logo img{width:auto;max-width:100%}
.aw-logo img.l-sme{max-height:56px}
.aw-logo img.l-prestige{max-height:84px}
.aw-logo img.l-ghp{max-height:50px}
.aw-logo img.l-luxlife{max-height:58px}
.aw .aw-n{font-family:'Poppins',Verdana,sans-serif;font-size:13px;letter-spacing:1.6px;
          color:var(--teal-deep);margin-bottom:10px}
.aw ul{margin:0;padding:0;list-style:none;font-size:13px;line-height:1.55;color:var(--grey-mid)}
.aw li{padding:5px 0;border-top:1px solid var(--pale-grey)}
.aw li:first-child{border-top:0}
.aw li b{display:block;font-weight:normal;color:var(--grey-dark)}
.aw li span{color:var(--grey-light);font-size:12px}

/* ============================================================
   MEGA MENU
   ============================================================ */
header{position:sticky;top:0;z-index:60}
.mi{position:relative;display:flex}
.mt{display:inline-flex;align-items:center;gap:7px;background:none;border:0;cursor:pointer;
    font-family:'Poppins',Verdana,sans-serif;font-size:13px;letter-spacing:.5px;
    color:var(--grey-light);text-decoration:none;white-space:nowrap;border-radius:999px;
    padding:11px 14px;transition:background-color .2s,color .2s}
.mt svg{width:9px;height:6px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;
        stroke-linejoin:round;transition:transform .25s;opacity:.75}
.mt:hover,.mt:focus-visible{background:var(--teal-tint);color:var(--grey-dark)}
.mi.open .mt{background:var(--teal);color:var(--grey-dark)}
.mi.open .mt svg{transform:rotate(180deg)}

.mm{display:none;position:absolute;left:0;right:0;top:100%;background:var(--white);
    border-top:1px solid var(--pale-grey);box-shadow:0 24px 44px rgba(20,49,47,.16);
    opacity:0;transform:translateY(-8px);transition:opacity .22s ease,transform .22s ease}
.mm.show{display:block}
.mm.in{opacity:1;transform:none}
.mm-in{width:80vw;max-width:var(--container);margin:0 auto;padding:36px 0 40px;
       display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:44px;align-items:start}
#mm-care .mm-in,#mm-resources .mm-in{grid-template-columns:minmax(0,1fr) minmax(0,.42fr)}
#mm-care .mm-in,#mm-about .mm-in{grid-template-columns:minmax(0,1fr) minmax(0,.42fr)}
.mm-h{font-family:'Poppins',Verdana,sans-serif;font-size:11.5px;letter-spacing:2.4px;
      color:var(--teal-deep);margin-bottom:16px}
.mm-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.mm-col ul{list-style:none;margin:0;padding:0}
.mm-col li{margin-bottom:9px}
.mm-col a{font-size:14.5px;line-height:1.45;color:var(--grey-mid);text-decoration:none;
          display:inline-block;border-bottom:1px solid transparent;transition:color .18s,border-color .18s}
.mm-col a:hover{color:var(--teal-deep);border-color:var(--teal)}
.mm-col a.mm-more{color:var(--teal-deep);font-weight:400;font-size:13.5px}

.mm-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.mm-card{display:block;text-decoration:none;border-radius:var(--r-sm);overflow:hidden;
         background:var(--white);box-shadow:var(--sh);transition:transform .25s,box-shadow .25s}
.mm-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lift)}
.mm-card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.mm-card b{display:block;font-family:'Poppins',Verdana,sans-serif;font-weight:400;font-size:15px;
           color:var(--grey-dark);letter-spacing:.4px;padding:12px 12px 2px}
.mm-card>span{display:block;font-size:12px;line-height:1.45;color:var(--grey-light);padding:0 12px}
.mm-card em .stars{display:inline}
.mm-card em{display:block;font-style:normal;font-size:12px;color:var(--grey-mid);padding:6px 12px 13px}

.mm-feature{display:flex;gap:16px;align-items:center;text-decoration:none;background:var(--teal-wash);
            border-radius:var(--r-card);padding:20px;transition:background-color .22s,transform .22s}
.mm-feature:hover{background:var(--teal-tint);transform:translateY(-3px)}
.mm-feature svg{width:74px;height:154px;flex:0 0 auto}
.mm-feature img{width:104px;height:104px;object-fit:cover;border-radius:var(--r-sm);flex:0 0 auto}
.mm-feature b{display:block;font-family:'Poppins',Verdana,sans-serif;font-weight:400;font-size:16px;
              color:var(--grey-dark);letter-spacing:.3px;margin-bottom:6px}
.mm-feature span{display:block;font-size:13.5px;line-height:1.55;color:var(--grey-mid);margin-bottom:10px}
.mm-feature em{font-style:normal;font-size:13px;font-weight:400;color:var(--teal-deep)}

.mm-scrim{position:fixed;inset:0;background:rgba(20,49,47,.20);z-index:50;opacity:0;
          transition:opacity .22s ease;pointer-events:none}
.mm-scrim.in{opacity:1}

/* ---------- mobile menu ---------- */
.mnav{max-height:calc(100vh - 118px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:12px}
.mnav-sec{border-bottom:1px solid var(--pale-grey)}
.mnav-sec summary{list-style:none;cursor:pointer;position:relative;
                  padding:16px 52px 16px var(--gutter);
                  font-family:'Poppins',Verdana,sans-serif;font-size:15.5px;letter-spacing:.6px;
                  color:var(--grey-dark)}
.mnav-sec summary::-webkit-details-marker{display:none}
.mnav-sec summary::after{content:'';position:absolute;right:var(--gutter);top:50%;width:10px;height:10px;
                         border-right:2px solid var(--teal-deep);border-bottom:2px solid var(--teal-deep);
                         transform:translateY(-70%) rotate(45deg);transition:transform .22s}
.mnav-sec[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.mnav-body{padding:0 var(--gutter) 16px}
.mnav-body a{display:block;padding:11px 0;font-size:14.5px;color:var(--grey-mid);text-decoration:none;
             border-bottom:1px solid var(--pale-grey)}
.mnav-body a:last-child{border-bottom:0}
.mnav-h{display:block;font-family:'Poppins',Verdana,sans-serif;font-size:11px;letter-spacing:2.2px;
        color:var(--teal-deep);margin:16px 0 6px}
.mnav-clinics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:6px}
.mnav-clinics a{padding:0;border:0;border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--sh);background:var(--white)}
.mnav-clinics img{width:100%;aspect-ratio:3/2;object-fit:cover}
.mnav-clinics b{display:block;font-family:'Poppins',Verdana,sans-serif;font-weight:400;font-size:14px;
                color:var(--grey-dark);padding:9px 10px 1px}
.mnav-clinics span{display:block;font-size:11.5px;line-height:1.4;color:var(--grey-light);padding:0 10px 11px}
.mnav-top{display:block;padding:16px var(--gutter);border-bottom:1px solid var(--pale-grey);
          font-family:'Poppins',Verdana,sans-serif;font-size:15.5px;letter-spacing:.6px;
          color:var(--grey-dark);text-decoration:none}
.mnav-cta{display:flex;flex-direction:column;gap:10px;padding:18px var(--gutter) 8px}
.mnav-cta .btn{width:100%}

@media (prefers-reduced-motion:reduce){
  .mm,.mm-scrim,.mm-card,.mm-feature{transition:none}
  .mm-card:hover,.mm-feature:hover{transform:none}
}

/* ============================================================
   HOME VISITS — one photograph, one promise, one proof, one button
   ============================================================ */
.hv{background:var(--teal-wash);padding:0;display:grid;grid-template-columns:minmax(0,1fr);
    overflow:hidden;position:relative;border-top:1px solid var(--pale-grey)}
.hv-photo{position:relative;order:1;display:block;overflow:hidden}
.hv-photo:hover img{transform:scale(1.035)}
.hv-photo img{width:100%;height:clamp(230px,52vw,320px);object-fit:cover;object-position:center 24%;
              display:block;transition:transform .6s cubic-bezier(.2,.6,.2,1)}


.hv-copy{order:2;padding:34px var(--gutter) 42px}
.hv-copy-in{max-width:560px}
.hv-copy h2{margin-bottom:12px;font-size:clamp(24px,5.4vw,33px);line-height:1.14}
.hv-line{font-size:clamp(15.5px,3.9vw,17px);line-height:1.6;color:var(--grey-mid);margin:0 0 24px;max-width:44ch}

.hv-quote{margin:0 0 26px;border-left:2px solid var(--teal);padding:1px 0 1px 18px}
.hv-quote blockquote{margin:0 0 8px;font-size:14.5px;line-height:1.62;color:var(--grey-dark)}
.hv-quote figcaption{font-size:12.5px;color:var(--grey-light)}
.hv-quote .stars{font-size:12.5px;margin-right:4px}

@media (min-width:1000px){
  .hv{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);align-items:stretch}
  .hv-photo{order:2}
  .hv-photo img{position:absolute;inset:0;width:100%;height:100%;object-position:56% 22%}
  .hv-copy{order:1;display:flex;align-items:center;min-height:460px;
           padding:60px 60px 60px max(var(--gutter), calc((100vw - var(--container)) / 2))}
  .hv-copy-in{max-width:520px;margin-left:auto}
}
@media (min-width:1400px){ .hv-copy{min-height:500px;padding-right:80px} }
@media (prefers-reduced-motion:reduce){.hv-photo img,.hv-photo:hover img{transition:none;transform:none}}

/* ============================================================
   MEGA MENU
   ============================================================ */
header{position:sticky;top:0;z-index:60}
.mi{position:relative;display:flex}
.mt{display:inline-flex;align-items:center;gap:7px;background:none;border:0;cursor:pointer;
    font-family:'Poppins',Verdana,sans-serif;font-size:13px;letter-spacing:.5px;
    color:var(--grey-light);text-decoration:none;white-space:nowrap;border-radius:999px;
    padding:11px 14px;transition:background-color .2s,color .2s}
.mt svg{width:9px;height:6px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;
        stroke-linejoin:round;transition:transform .25s;opacity:.75}
.mt:hover,.mt:focus-visible{background:var(--teal-tint);color:var(--grey-dark)}
.mi.open .mt{background:var(--teal);color:var(--grey-dark)}
.mi.open .mt svg{transform:rotate(180deg)}

.mm{display:none;position:absolute;left:0;right:0;top:100%;background:var(--white);
    border-top:1px solid var(--pale-grey);box-shadow:0 24px 44px rgba(20,49,47,.16);
    opacity:0;transform:translateY(-8px);transition:opacity .22s ease,transform .22s ease}
.mm.show{display:block}
.mm.in{opacity:1;transform:none}
.mm-in{width:80vw;max-width:var(--container);margin:0 auto;padding:36px 0 40px;
       display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:44px;align-items:start}
#mm-care .mm-in,#mm-resources .mm-in{grid-template-columns:minmax(0,1fr) minmax(0,.42fr)}
#mm-care .mm-in,#mm-about .mm-in{grid-template-columns:minmax(0,1fr) minmax(0,.42fr)}
.mm-h{font-family:'Poppins',Verdana,sans-serif;font-size:11.5px;letter-spacing:2.4px;
      color:var(--teal-deep);margin-bottom:16px}
.mm-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.mm-col ul{list-style:none;margin:0;padding:0}
.mm-col li{margin-bottom:9px}
.mm-col a{font-size:14.5px;line-height:1.45;color:var(--grey-mid);text-decoration:none;
          display:inline-block;border-bottom:1px solid transparent;transition:color .18s,border-color .18s}
.mm-col a:hover{color:var(--teal-deep);border-color:var(--teal)}
.mm-col a.mm-more{color:var(--teal-deep);font-weight:400;font-size:13.5px}

.mm-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.mm-card{display:block;text-decoration:none;border-radius:var(--r-sm);overflow:hidden;
         background:var(--white);box-shadow:var(--sh);transition:transform .25s,box-shadow .25s}
.mm-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lift)}
.mm-card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.mm-card b{display:block;font-family:'Poppins',Verdana,sans-serif;font-weight:400;font-size:15px;
           color:var(--grey-dark);letter-spacing:.4px;padding:12px 12px 2px}
.mm-card>span{display:block;font-size:12px;line-height:1.45;color:var(--grey-light);padding:0 12px}
.mm-card em .stars{display:inline}
.mm-card em{display:block;font-style:normal;font-size:12px;color:var(--grey-mid);padding:6px 12px 13px}

.mm-feature{display:flex;gap:16px;align-items:center;text-decoration:none;background:var(--teal-wash);
            border-radius:var(--r-card);padding:20px;transition:background-color .22s,transform .22s}
.mm-feature:hover{background:var(--teal-tint);transform:translateY(-3px)}
.mm-feature svg{width:74px;height:154px;flex:0 0 auto}
.mm-feature img{width:104px;height:104px;object-fit:cover;border-radius:var(--r-sm);flex:0 0 auto}
.mm-feature b{display:block;font-family:'Poppins',Verdana,sans-serif;font-weight:400;font-size:16px;
              color:var(--grey-dark);letter-spacing:.3px;margin-bottom:6px}
.mm-feature span{display:block;font-size:13.5px;line-height:1.55;color:var(--grey-mid);margin-bottom:10px}
.mm-feature em{font-style:normal;font-size:13px;font-weight:400;color:var(--teal-deep)}

.mm-scrim{position:fixed;inset:0;background:rgba(20,49,47,.20);z-index:50;opacity:0;
          transition:opacity .22s ease;pointer-events:none}
.mm-scrim.in{opacity:1}

/* ---------- mobile menu ---------- */
.mnav{max-height:calc(100vh - 118px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:12px}
.mnav-sec{border-bottom:1px solid var(--pale-grey)}
.mnav-sec summary{list-style:none;cursor:pointer;position:relative;
                  padding:16px 52px 16px var(--gutter);
                  font-family:'Poppins',Verdana,sans-serif;font-size:15.5px;letter-spacing:.6px;
                  color:var(--grey-dark)}
.mnav-sec summary::-webkit-details-marker{display:none}
.mnav-sec summary::after{content:'';position:absolute;right:var(--gutter);top:50%;width:10px;height:10px;
                         border-right:2px solid var(--teal-deep);border-bottom:2px solid var(--teal-deep);
                         transform:translateY(-70%) rotate(45deg);transition:transform .22s}
.mnav-sec[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.mnav-body{padding:0 var(--gutter) 16px}
.mnav-body a{display:block;padding:11px 0;font-size:14.5px;color:var(--grey-mid);text-decoration:none;
             border-bottom:1px solid var(--pale-grey)}
.mnav-body a:last-child{border-bottom:0}
.mnav-h{display:block;font-family:'Poppins',Verdana,sans-serif;font-size:11px;letter-spacing:2.2px;
        color:var(--teal-deep);margin:16px 0 6px}
.mnav-clinics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:6px}
.mnav-clinics a{padding:0;border:0;border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--sh);background:var(--white)}
.mnav-clinics img{width:100%;aspect-ratio:3/2;object-fit:cover}
.mnav-clinics b{display:block;font-family:'Poppins',Verdana,sans-serif;font-weight:400;font-size:14px;
                color:var(--grey-dark);padding:9px 10px 1px}
.mnav-clinics span{display:block;font-size:11.5px;line-height:1.4;color:var(--grey-light);padding:0 10px 11px}
.mnav-top{display:block;padding:16px var(--gutter);border-bottom:1px solid var(--pale-grey);
          font-family:'Poppins',Verdana,sans-serif;font-size:15.5px;letter-spacing:.6px;
          color:var(--grey-dark);text-decoration:none}
.mnav-cta{display:flex;flex-direction:column;gap:10px;padding:18px var(--gutter) 8px}
.mnav-cta .btn{width:100%}

@media (prefers-reduced-motion:reduce){
  .mm,.mm-scrim,.mm-card,.mm-feature{transition:none}
  .mm-card:hover,.mm-feature:hover{transform:none}
}

/* ============================================================
   CONDITIONS / BODY MAP
   ============================================================ */
.band-tint{background:var(--teal-wash);border-top:1px solid var(--pale-grey);
           border-bottom:1px solid var(--pale-grey)}

.bm-grid{display:grid;gap:26px}

/* ---- the figure stage (desktop only) ---- */
.bm-stage{display:none}
.bm-figs{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bm-fig{position:relative;aspect-ratio:375/900}
.bm-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.bm-layer{position:absolute;inset:0;pointer-events:none}
.bm-hl{position:absolute;border-radius:50%;opacity:0;transition:opacity .26s ease}
.bm-hl b{position:absolute;inset:0;display:block;overflow:hidden;border-radius:50%}
.bm-hl i{position:absolute;display:block;background-repeat:no-repeat;background-size:100% 100%}
.bm-hl::after{content:'';position:absolute;inset:-7px;border-radius:50%;
              border:1.5px solid rgba(46,153,151,.30)}
.bm-hl.on{opacity:1}
.bm-hot{position:absolute;padding:0;margin:0;border:0;background:none;cursor:pointer;
        border-radius:40%;-webkit-tap-highlight-color:transparent}
.bm-hot:hover,.bm-hot:focus,.bm-hot:active{background:none;border:0;box-shadow:none}
.bm-hot::before{content:'';position:absolute;left:50%;top:50%;width:22px;height:22px;
  margin:-11px 0 0 -11px;border-radius:50%;pointer-events:none;
  background:rgba(98,197,195,.20);border:1.5px solid rgba(46,153,151,.45);
  animation:bmPing 2.8s ease-in-out infinite;transition:opacity .2s ease}
.bm-hot::after{content:'';position:absolute;left:50%;top:50%;width:8px;height:8px;
  margin:-4px 0 0 -4px;border-radius:50%;background:#2E9997;opacity:.8;
  pointer-events:none;transition:opacity .2s ease}
.bm-hot:hover::before,.bm-hot:hover::after,
.bm-hot:focus-visible::before,.bm-hot:focus-visible::after,
.bm-hot.dim::before,.bm-hot.dim::after{opacity:0}
.bm-hot[data-key="neck"]::before,.bm-hot[data-key="neck"]::after{top:72%}
@keyframes bmPing{0%,100%{box-shadow:0 0 0 0 rgba(98,197,195,.40)}50%{box-shadow:0 0 0 9px rgba(98,197,195,0)}}
@media (prefers-reduced-motion:reduce){.bm-hot::before{animation:none}}
.bm-hot:focus-visible{outline:2px solid var(--teal-deep);outline-offset:2px}
.bm-cap{position:absolute;left:0;right:0;bottom:-26px;text-align:center;
        font-family:'Poppins',Verdana,sans-serif;font-size:11px;letter-spacing:2.2px;
        color:var(--grey-light)}
.bm-label{margin-top:46px;text-align:center;height:92px;max-width:330px;
          margin-left:auto;margin-right:auto;overflow:hidden;
          display:flex;flex-direction:column;justify-content:flex-start}
.bm-label b{display:block;font-weight:normal;font-family:'Poppins',Verdana,sans-serif;
            font-size:16px;letter-spacing:.4px;color:var(--grey-dark);margin-bottom:4px}
.bm-label span{font-size:13px;line-height:1.5;color:var(--grey-light)}

/* ---- the condition list (desktop) ---- */
.bm-list{display:none}
.bm-row{display:flex;align-items:center;gap:14px;background:var(--white);
        border-radius:var(--r-sm);padding:15px 18px;text-decoration:none;
        box-shadow:0 1px 2px rgba(20,49,47,.05);
        border-left:3px solid transparent;
        transition:box-shadow .22s,transform .22s,border-color .22s}
.bm-i{font-family:'Poppins',Verdana,sans-serif;font-size:12px;letter-spacing:1px;
      color:var(--teal-deep);opacity:.6;flex:0 0 auto;transition:opacity .2s}
.bm-row b{font-weight:normal;font-size:15.5px;color:var(--grey-dark);flex:1 1 auto}
.bm-row em{font-style:normal;font-size:12.5px;color:var(--grey-light);white-space:nowrap}
.bm-row svg{width:14px;height:14px;flex:0 0 auto;stroke:var(--teal-deep);fill:none;
            stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0;
            transition:opacity .2s,transform .2s;transform:translateX(-4px)}
.bm-row:hover,.bm-row.on{box-shadow:0 8px 24px rgba(20,49,47,.13);transform:translateX(4px);
                         border-left-color:var(--teal)}
.bm-row:hover svg,.bm-row.on svg{opacity:1;transform:none}
.bm-row:hover .bm-i,.bm-row.on .bm-i{opacity:1}
.bm-more{font-size:13.5px;line-height:1.6;color:var(--grey-light);margin:6px 0 0}
.bm-more a{color:var(--teal-deep);font-weight:400;text-decoration:none}
.bm-more a:hover{text-decoration:underline}

/* ---- the mobile / tablet alternative ---- */
.bm-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bm-tile{background:var(--white);border-radius:var(--r-sm);padding:16px 14px;
         text-decoration:none;box-shadow:var(--sh);display:flex;flex-direction:column;gap:4px;
         border-top:3px solid var(--teal);transition:transform .22s,box-shadow .22s}
.bm-tile:active{transform:scale(.98)}
.bm-tile b{font-weight:normal;font-family:'Poppins',Verdana,sans-serif;font-size:14.5px;
           line-height:1.3;letter-spacing:.2px;color:var(--grey-dark)}
.bm-tile span{font-size:12px;color:var(--grey-light)}
.bm-tiles .bm-more{grid-column:1/-1;margin-top:6px}

@media (min-width:1000px){
  .bm-tiles{display:none}
  .bm-stage{display:block;width:100%;max-width:440px;margin:0 auto;box-sizing:border-box;
            background:var(--white);border-radius:var(--r-panel);
            padding:34px 30px 30px;box-shadow:0 2px 6px rgba(20,49,47,.06),0 20px 46px rgba(20,49,47,.13)}
  .bm-list{display:grid;gap:9px;align-content:center}
  .bm-grid{grid-template-columns:440px minmax(0,1fr);gap:48px;align-items:center}
  .bm-figs{max-width:400px;margin:0 auto}
}
@media (prefers-reduced-motion:reduce){
  .bm-hl,.bm-row,.bm-row svg{transition:none}
  .bm-row:hover,.bm-row.on{transform:none}
}

/* ============================================================
   WHY US — stat strip
   ============================================================ */
.strip{background:var(--white);border-top:1px solid var(--pale-grey);
       border-bottom:1px solid var(--pale-grey);padding:46px 0 40px}
.strip-head{text-align:center;margin-bottom:26px}
.strip-head .kicker{margin-bottom:9px}
.strip-head h2{font-size:clamp(21px,4.6vw,29px);color:var(--grey-dark)}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.stat{text-align:center;padding:20px 10px;border-top:1px solid var(--pale-grey)}
.stat:nth-child(2n){border-left:1px solid var(--pale-grey)}
.stat:nth-child(-n+2){border-top:0}
.stat .n{display:block;font-family:'Poppins',Verdana,sans-serif;
         font-size:clamp(40px,10vw,64px);line-height:1;color:var(--teal-deep);
         letter-spacing:-.5px;-webkit-text-stroke:1.1px var(--teal-deep);
         font-variant-numeric:tabular-nums}
.stat b{display:block;font-weight:normal;font-family:'Poppins',Verdana,sans-serif;
        font-size:12.5px;letter-spacing:1.6px;
        color:var(--grey-mid);margin-top:12px;line-height:1.4}
@media (min-width:760px){
  .strip{padding:56px 0 50px}
  .stats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .stat{border-top:0;border-left:1px solid var(--pale-grey);padding:8px 16px}
  .stat:first-child{border-left:0}
  .stat b{font-size:13px;min-height:2.8em}
}
@media (prefers-reduced-motion:reduce){.stat .n{transition:none}}

/* ============================================================
   CAROUSEL — stays a horizontal rail at every width
   ============================================================ */
.car{position:relative}
.car-nav{display:none;position:absolute;top:-70px;z-index:3;width:44px;height:44px;border-radius:50%;
         background:var(--white);border:1px solid var(--pale-grey);cursor:pointer;
         align-items:center;justify-content:center;padding:0;
         box-shadow:0 6px 20px rgba(20,49,47,.16);transition:opacity .2s,transform .2s,box-shadow .2s}
.car-nav svg{width:18px;height:18px;stroke:var(--grey-dark);fill:none;stroke-width:2;
             stroke-linecap:round;stroke-linejoin:round}
.car-nav:hover{transform:scale(1.06);box-shadow:var(--sh-lift)}
.car-nav[disabled]{opacity:.32;cursor:default;transform:none;box-shadow:var(--sh)}
.car-prev{right:56px}
.car-next{right:0}
@media (min-width:1000px){
  .car-nav{display:flex}
  /* the team rail must not collapse into a grid on desktop */
  .scroller.carousel{grid-template-columns:none;grid-auto-flow:column;
                     grid-auto-columns:calc((100% - 3 * 24px) / 4.25);
                     overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
                     scroll-padding-left:0;margin:0;padding:6px 0 22px;gap:24px;
                     scroll-behavior:smooth;scrollbar-width:none}
  .scroller.carousel::-webkit-scrollbar{display:none}
  /* services rail: wider cards so single-word titles do not clip */
  #svcCar{grid-auto-columns:calc((100% - 2 * 24px) / 3.25)}
}
@media (prefers-reduced-motion:reduce){
  .scroller.carousel{scroll-behavior:auto}
  .car-nav:hover{transform:none}
}

.hide-sm{display:none}

/* ---------- founder + press ---------- */
.founder-photo{border-radius:var(--r-panel);overflow:hidden;box-shadow:var(--sh);margin-bottom:24px}
.founder-photo img{width:100%;aspect-ratio:1/1;object-fit:cover}
.creds{font-size:13.5px;letter-spacing:1.4px;color:var(--grey-light);margin-bottom:20px}
.marquee{overflow:hidden;position:relative;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%)}
.mtrack{display:inline-flex;gap:46px;align-items:center;width:max-content;padding:8px 0;animation:mscroll 42s linear infinite}
.marquee:hover .mtrack{animation-play-state:paused}
@keyframes mscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.mtrack img{height:26px;width:auto;opacity:.72;flex:0 0 auto}

/* ---------- team ---------- */
.person{background:var(--white);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh);
        text-decoration:none;display:block;transition:transform .28s,box-shadow .28s}
.person:hover{transform:translateY(-6px);box-shadow:var(--sh-lift)}
.person img{width:100%;aspect-ratio:1/1;object-fit:cover}
.person .pi{padding:16px 16px 18px}
.person b{display:block;font-family:'Poppins',Verdana,sans-serif;font-weight:400;font-size:16px;
          color:var(--grey-dark);letter-spacing:.4px;margin-bottom:4px}
.person span{display:block;font-size:12.5px;color:var(--grey-light);line-height:1.45}

/* ---------- reviews ---------- */
.rev{background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh);padding:24px 22px;
     display:flex;flex-direction:column;height:100%}
.rev .who{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.rev .ava{width:40px;height:40px;border-radius:50%;background:var(--teal-tint);color:var(--teal-deep);
          display:flex;align-items:center;justify-content:center;font-size:14px;
          font-family:'Poppins',Verdana,sans-serif;flex:0 0 auto}
.rev .who b{display:block;font-weight:normal;font-size:14.5px;color:var(--grey-dark)}
.rev .who span{font-size:12px;color:var(--grey-light)}
.rev .stars{margin-bottom:10px;font-size:15px}
.rev p{font-size:14.5px;line-height:1.7;color:var(--grey-mid)}
.rev .src{margin-top:auto;padding-top:16px;display:flex;align-items:center;gap:8px;
          font-size:12px;color:var(--grey-light)}
.rev .src svg{width:15px;height:15px;flex:0 0 auto}
.g-summary{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--white);
           border-radius:var(--r-card);padding:20px 22px;box-shadow:0 8px 24px rgba(20,49,47,.10);margin-bottom:22px}
.g-summary .big{font-family:'Poppins',Verdana,sans-serif;font-size:40px;line-height:1;color:var(--grey-dark)}
.g-summary .meta{font-size:13px;color:var(--grey-light)}
.g-summary svg.g{width:34px;height:34px;flex:0 0 auto}
.g-summary .btn{margin-left:auto}

/* ---------- pricing ---------- */
.price-band{background:var(--white);border-radius:var(--r-panel);box-shadow:var(--sh);
            border:1px solid var(--pale-grey);padding:26px 24px;display:grid;gap:22px}
.price-cells{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.price-cell{padding-right:16px}
.price-cell+.price-cell{border-left:1px solid var(--pale-grey);padding-left:24px;padding-right:0}
.p-lab{display:block;font-family:'Poppins',Verdana,sans-serif;font-size:11.5px;letter-spacing:2px;
       color:var(--grey-light);margin-bottom:9px}
.p-num{display:block;font-family:'Poppins',Verdana,sans-serif;font-size:clamp(23px,6vw,33px);
       line-height:1;color:var(--teal-deep);-webkit-text-stroke:.7px var(--teal-deep)}
.price-side{display:grid;gap:16px;align-content:center}
.p-meta{font-size:13.5px;line-height:1.6;color:var(--grey-mid);margin:0}
.price-side .btn{justify-self:start}

/* ---------- insurers ---------- */
.insurers{background:var(--white);border:1px solid var(--pale-grey);border-radius:var(--r-panel);box-shadow:var(--sh);
          padding:34px 0 38px}
.ins-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
          flex-wrap:wrap;margin-bottom:22px}
.ins-head h3{font-size:clamp(15px,3.8vw,17.5px);letter-spacing:.4px;color:var(--grey-mid)}
.ins-head a{font-size:13.5px;font-weight:400;color:var(--teal-deep);text-decoration:none;
            font-family:Verdana,sans-serif;white-space:nowrap}
.ins-head a:hover{text-decoration:underline}
.ins-marquee .mtrack{gap:14px;animation-duration:58s;padding:2px 0}
.ins-chip{display:flex;align-items:center;justify-content:center;flex:0 0 auto;
          height:64px;min-width:136px;padding:0 24px;background:var(--white);
          border:1px solid var(--pale-grey);border-radius:14px;
          box-shadow:0 1px 2px rgba(20,49,47,.04)}
.ins-chip img{width:auto;opacity:1;height:auto}
.ins-chip .l-bupa,.ins-chip .l-axa{max-height:34px}
.ins-chip .l-wpa,.ins-chip .l-nuffield{max-height:32px}
.ins-chip .l-aviva,.ins-chip .l-vitality,.ins-chip .l-cigna{max-height:27px}
.ins-chip .l-benenden,.ins-chip .l-simplyhealth,.ins-chip .l-westfield,.ins-chip .l-medicash{max-height:23px}

/* ---------- clinics ---------- */
.clinic img{width:100%;aspect-ratio:4/3;object-fit:cover}
.clinic{background:var(--white);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh);
        text-decoration:none;display:flex;flex-direction:column;height:100%;
        transition:transform .28s,box-shadow .28s}
.clinic:hover,.clinic.on{transform:translateY(-6px);box-shadow:var(--sh-lift)}
.clinic .ci{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1}
.clinic h3{margin-bottom:7px}
.clinic address{font-style:normal;font-size:14px;line-height:1.6;color:var(--grey-mid);margin-bottom:9px}
.clinic .rate{font-size:13.5px;color:var(--grey-mid);margin-bottom:14px}
.clinic .go{margin-top:auto;font-size:13.5px;letter-spacing:1px;color:var(--teal-deep);font-weight:400}

/* ---------- clinic map ---------- */
.cl-grid{display:grid;gap:24px}
.cl-map{position:relative;border-radius:var(--r-panel);overflow:hidden;background:var(--white);
        box-shadow:0 2px 6px rgba(20,49,47,.06),0 16px 40px rgba(20,49,47,.10);
        border:1px solid var(--pale-grey)}
.cl-map-in{position:relative;display:block}
.cl-map img{width:100%;height:auto;display:block;aspect-ratio:1100/863}
.pin{position:absolute;transform:translate(-50%,-100%);background:none;border:0;padding:0;
     cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;z-index:2}
.pin-dot{width:18px;height:18px;border-radius:50% 50% 50% 0;/*map pin: cartographic icon, see note*/transform:rotate(-45deg);
         background:var(--teal-deep);border:2.5px solid var(--white);
         box-shadow:0 3px 8px rgba(20,49,47,.35);transition:transform .22s,background-color .22s}
.pin-lab{font-family:'Poppins',Verdana,sans-serif;font-size:10.5px;letter-spacing:1.1px;
         color:var(--grey-dark);background:rgba(255,255,255,.92);
         padding:3px 8px;border-radius:999px;white-space:nowrap;
         box-shadow:0 2px 6px rgba(20,49,47,.14);transition:background-color .22s,color .22s}

.pin:hover .pin-lab,.pin.on .pin-lab{background:var(--teal-deep);color:var(--white)}
.pin:focus-visible .pin-dot{outline:2px solid var(--teal-deep);outline-offset:3px}
.map-credit{position:absolute;right:8px;bottom:6px;font-size:9.5px;color:var(--grey-light);
            background:rgba(255,255,255,.82);padding:2px 7px;border-radius:6px}
.map-credit a{color:inherit}


.cl-note{display:block;text-decoration:none;background:var(--white);border-radius:var(--r-card);
         border:1px solid var(--pale-grey);box-shadow:var(--sh);padding:20px 22px;margin-top:16px;
         transition:transform .24s,box-shadow .24s,border-color .24s}
.cl-note:hover{transform:translateY(-3px);box-shadow:var(--sh-lift);border-color:var(--teal)}
.cl-note b{display:block;font-weight:normal;font-family:'Poppins',Verdana,sans-serif;
           font-size:16px;letter-spacing:.3px;color:var(--grey-dark);margin-bottom:5px}
.cl-note span{display:block;font-size:13.5px;line-height:1.55;color:var(--grey-mid);margin-bottom:10px}
.cl-note em{font-style:normal;font-size:13px;font-weight:400;color:var(--teal-deep)}

@media (min-width:1000px){
  .cl-grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:34px;align-items:start}
  .cl-col{position:sticky;top:120px}
  .scroller.cl-cards{grid-template-columns:minmax(0,1fr);gap:18px}
  .cl-cards .clinic{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:stretch;
                    flex-direction:row;height:auto}
  .cl-cards .clinic>img{width:150px;height:100%;min-height:132px;object-fit:cover;display:block}
  .cl-cards .clinic .ci{padding:16px 18px 16px 20px;justify-content:center}
  .cl-cards .clinic .rate{margin-bottom:10px}
  .cl-note{margin-top:18px}
  .cl-grid .swipe-hint{display:none}
}

/* ---------- FAQ ---------- */
.faq-grid,.faqs{display:grid;gap:18px;max-width:900px}
.faq{background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh);overflow:hidden;
     border:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.faq:hover{border-color:var(--pale-grey);box-shadow:0 6px 18px rgba(20,49,47,.10)}
.faq[open]{border-color:var(--teal)}
.faq summary{cursor:pointer;list-style:none;padding:19px 52px 19px 22px;position:relative;
             font-family:'Poppins',Verdana,sans-serif;font-size:16px;color:var(--grey-dark);letter-spacing:.3px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'';position:absolute;right:22px;top:50%;width:11px;height:11px;
                    border-right:2px solid var(--teal-deep);border-bottom:2px solid var(--teal-deep);
                    transform:translateY(-70%) rotate(45deg);transition:transform .25s}
.faq[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq .a{padding:0 56px 20px 22px;font-size:15px;line-height:1.7;color:var(--grey-mid);max-width:74ch}

/* ---------- final CTA ---------- */
.cta-final{background:var(--teal);padding:var(--pad-y) 0;text-align:center}
.cta-final h2{color:var(--grey-dark);margin-bottom:14px}
.cta-final p{color:var(--grey-dark);max-width:52ch;margin:0 auto 26px}
.cta-btns{display:flex;flex-direction:column;gap:12px;max-width:420px;margin:0 auto}
@media (min-width:900px){
  .cta-btns{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:stretch;
            max-width:none;gap:14px}
  .cta-btns .btn{flex:0 1 auto;white-space:nowrap;padding-left:34px;padding-right:34px}
}

/* ---------- footer ---------- */
footer{background:var(--grey-mid);color:var(--white);padding:48px 0 24px}
/* R2 sticky mobile bar (58px, fixed to viewport bottom) needs extra bottom clearance on mobile only, on top of the R4.8 48/24 footer padding */
@media(max-width:639px){footer{padding-bottom:calc(24px + 58px)}}
footer a{color:var(--white);text-decoration:none;opacity:.88}
footer a:hover{opacity:1;text-decoration:underline}
.ft-grid{display:grid;gap:34px}
.ft-col h4{font-size:14px;letter-spacing:2px;color:var(--white);margin-bottom:10px;opacity:.75}
.ft-col ul{list-style:none;margin:0;padding:0;font-size:14.5px;line-height:1.5}
.ft-col li{margin:0}
.ft-brand .l1{font-family:'Poppins',Verdana,sans-serif;font-size:24px;color:var(--white);line-height:1}
.ft-brand .l2{font-family:'Poppins',Verdana,sans-serif;font-size:9px;letter-spacing:2.4px;
              color:var(--white);opacity:.75;margin-top:4px}
.ft-brand p{font-size:14px;opacity:.85;margin-top:16px;max-width:34ch}
.ft-marks{display:flex;gap:14px;align-items:center;margin-top:18px}
.ft-marks img{height:34px;width:auto;background:var(--white);padding:6px 10px;border-radius:8px}
.ft-bottom{border-top:1px solid rgba(255,255,255,.22);margin-top:38px;padding-top:22px;
           display:flex;flex-direction:column;gap:10px;font-size:12.5px;opacity:.85}

/* ---------- sticky mobile bar ---------- */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:70;display:flex;border-top:1px solid var(--pale-grey);
      box-shadow:0 -4px 20px rgba(20,49,47,.18)}
.mbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:58px;
        text-decoration:none;font-family:'Poppins',Verdana,sans-serif;font-size:14.5px;letter-spacing:.6px}
.mbar .b1{background:var(--teal);color:var(--grey-dark)}
.mbar .b2{background:var(--grey-mid);color:var(--white)}
.mbar svg{width:17px;height:17px;fill:none;stroke-width:2;stroke-linecap:round}
.mbar .b1 svg{stroke:var(--grey-dark)}.mbar .b2 svg{stroke:var(--white)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .mtrack{animation:none;flex-wrap:wrap;width:100%;justify-content:center}
  .btn:hover,.card:hover,.person:hover,.clinic:hover,.aw:hover{transform:none}
  *{scroll-behavior:auto!important}
}

/* ============================================================
   TABLET  ≥ 640px
   ============================================================ */
@media (min-width:640px){
  :root{--gutter:32px;--pad-y:88px}
  .hero-cta{flex-wrap:wrap}
  .hero-cta .btn{flex:0 1 auto;min-width:auto;white-space:nowrap;padding:14px 32px;font-size:13.5px}
  .ticks{gap:12px 26px;font-size:14px}
  .scroller{grid-auto-columns:46%}
  .price-band{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;padding:30px 34px;gap:34px}
  .price-band .p-num{font-size:15px;-webkit-text-stroke:0}
  .price-side{grid-template-columns:1fr auto;align-items:center;gap:24px}
  .insurers{padding:42px 0 46px}
  .ins-chip{height:70px;min-width:152px;padding:0 28px}
  .ft-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px}
  .ft-bottom{flex-direction:row;justify-content:space-between;flex-wrap:wrap;gap:16px}
  .bm-grid{grid-template-columns:400px minmax(0,1fr);align-items:center;gap:36px}
  .trust-card{flex-direction:row;justify-content:center;gap:34px}
  .trust-sep{width:1px;height:44px}
  .trust-marks{gap:30px}
  footer{padding-bottom:24px}
  .mbar{display:none}
}

/* ============================================================
   DESKTOP  ≥ 901px
   ============================================================ */
@media (min-width:901px){
  :root{--pad-y:112px}
  body{font-size:17px}
  .hd{padding:12px 0}
  .logo .l1{font-size:27px}
  .logo .l2{font-size:9.2px;letter-spacing:2.5px}

  .hero{min-height:clamp(520px,68vh,620px);padding:52px 0 58px}
  .hero-bg{object-position:78% 28%}
  .hero-veil{background:linear-gradient(90deg,rgba(250,250,250,.97) 0%,rgba(250,250,250,.93) 38%,rgba(250,250,250,.8) 55%,rgba(250,250,250,.35) 70%,rgba(250,250,250,0) 85%)}
  .hero-copy{max-width:700px;background:none;box-shadow:none;padding:0}
  .hero-cta{gap:14px;margin-bottom:30px;flex-wrap:wrap}
  .hero-cta .btn{padding:15px 34px;font-size:14px}
  .ticks{gap:12px 34px;font-size:14.5px}

  .scroller{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-columns:auto;
            overflow:visible;margin:0;padding:0;gap:24px}
  .scroller.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .swipe-hint{display:none}
  .card{padding:30px 26px}

  .panel{padding:56px 52px}
  .panel-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:44px;align-items:center}
  .panel-copy{padding:34px 32px}
  .panel-media img{width:100%;height:clamp(300px,30vw,420px);object-fit:cover;object-position:center 40%;
                   border-radius:var(--r-card);box-shadow:0 14px 40px rgba(20,49,47,.20)}

  .founder-grid{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:48px;align-items:center}
  .founder-photo{margin-bottom:0}
  .mtrack img{height:30px}

  .trust-card{gap:48px}
  .trust-awards{gap:38px}
  .trust-marks img{height:46px}
  .g-summary{padding:24px 30px}
  .ft-grid{grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:42px}
  .bm-grid{gap:56px}
  .bm-svg{max-width:330px}
}


/* ============================================================
   HEADER FIT — measured, not guessed. The full nav appears only
   where it genuinely fits; below that the Menu button owns it.
   ============================================================ */
@media (max-width:600px){ .util-x{display:none} }
@media (max-width:640px){
  .blbl{display:none}
  .burger{padding:12px 8px}
  .hd-act{gap:6px}
  .hd{gap:8px}
  .hd-act .btn{display:none}          /* booking lives in the sticky bottom bar */
  .burger{padding:12px 4px 12px 10px}
}
@media (max-width:379px){
  .burger .blbl{display:none}
  .burger{gap:0;padding:14px 6px;min-width:44px;justify-content:center}
}
/* Home visit button: visible whenever the action cluster is shown */
@media (min-width:900px){ .hide-sm{display:inline-flex} }

@media (min-width:1200px){
  nav.main{display:flex;flex:1 1 auto;justify-content:center;gap:0;min-width:0}
  .burger{display:none}
  .mnav{display:none!important}
  .logo .l1{font-size:22px}
  .logo .l2{font-size:7.6px;letter-spacing:1.9px}
  .mt{padding:10px 4px;font-size:10.5px;letter-spacing:.1px}
  .hd-act{gap:8px}
  .hd-act .btn{padding:9px 11px;font-size:11px}
  .search-btn{width:38px}
}
@media (min-width:1440px){
  .logo .l1{font-size:25px}
  .logo .l2{font-size:8.6px;letter-spacing:2.3px}
  nav.main{gap:2px}
  .mt{padding:11px 8px;font-size:11.5px;letter-spacing:.3px}
  .hd-act{gap:10px}
  .hd-act .btn{padding:10px 14px;font-size:12px}
  .search-btn{width:44px}
}
@media (min-width:1660px){
  nav.main{gap:4px}
  .mt{padding:11px 11px;font-size:12px}
  .hd-act .btn{padding:10px 17px;font-size:12.5px}
  .search-btn{width:46px}
}
.cond-links{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:38px}
/* ---------- cookie consent ---------- */
.ck{position:fixed;left:12px;right:12px;bottom:70px;z-index:80;background:var(--white);color:var(--grey-mid);
    border-radius:var(--r-card);box-shadow:var(--sh-lift);padding:18px 18px 16px;font-size:13.5px;line-height:1.6;
    display:none}
.ck.show{display:block}
.ck b{display:block;font-family:'Poppins',Verdana,sans-serif;font-weight:400;font-size:15px;color:var(--grey-dark);margin-bottom:4px}
.ck p{margin:0 0 12px}
.ck a{color:var(--grey-dark);text-decoration:underline}
.ck-btns{display:flex;gap:10px;flex-wrap:wrap}
.ck-btns .btn{min-height:42px;padding:0 18px;font-size:13px;min-width:auto}
@media (min-width:640px){ .ck{left:20px;right:auto;bottom:20px;max-width:400px;padding:22px 22px 20px} }

/* SVC-CSS-ANCHOR */


/* ---- service page ---- */
.crumbs{font-size:12.5px;color:var(--grey-light);margin-bottom:18px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.crumbs a{color:var(--grey-light);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs span[aria-current]{color:var(--grey-mid)}
.svc-hero .hero-bg{object-position:62% 50%}
.svc-hero .hero-veil{background:linear-gradient(90deg,rgba(250,250,250,.97) 0%,rgba(250,250,250,.93) 38%,rgba(250,250,250,.8) 55%,rgba(250,250,250,.35) 70%,rgba(250,250,250,0) 85%)}
.svc-hero .crumbs{margin-bottom:14px}
.hero-lead{font-size:clamp(15.5px,4vw,18px);line-height:1.6;color:var(--grey-dark);
           margin:0 0 24px;max-width:44ch}

/* what it is: prose and an at-a-glance panel share the row */
.what-grid{display:grid;gap:26px}
.what-main h2{margin-bottom:18px}
.glance{background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh);
        border-top:4px solid var(--teal);padding:22px 22px 8px}
.glance > b{display:block;font-weight:400;font-family:'Poppins',Verdana,sans-serif;
            font-size:15px;letter-spacing:1.4px;color:var(--grey-dark);margin-bottom:14px}
.glance dl{margin:0}
.glance dl > div{padding:12px 0;border-top:1px solid var(--pale-grey)}
.glance dl > div:first-child{border-top:0;padding-top:0}
.glance dt{font-size:12px;letter-spacing:1.4px;color:var(--grey-light);
           font-family:'Poppins',Verdana,sans-serif;margin-bottom:5px}
.glance dd{margin:0;font-size:14px;line-height:1.6;color:var(--grey-mid)}
.prose p{font-size:16px;line-height:1.75;color:var(--grey-mid);margin:0 0 16px;max-width:62ch}
.prose p:last-child{margin-bottom:0}
.who-grid{display:grid;gap:24px}
.who-aw{max-width:320px}
.fees{background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh);padding:8px 26px 22px}
.fee{display:flex;justify-content:space-between;align-items:baseline;gap:18px;
     padding:16px 0;border-bottom:1px solid var(--pale-grey)}
.fee span{font-size:15px;color:var(--grey-mid)}
.fee b{font-family:'Poppins',Verdana,sans-serif;font-weight:400;font-size:20px;color:var(--grey-dark);text-align:right}
.fee-note{font-size:13.5px;line-height:1.6;color:var(--grey-light);margin:16px 0 0}
.fee-note a{color:var(--teal-deep);text-decoration:none}
.fee-note a:hover{text-decoration:underline}

/* ---- tighter vertical rhythm on interior pages ---- */
@media (min-width:901px){ :root{--pad-y:78px} }

/* ---- teal band: teal is a surface, every word on it is grey-dark ---- */
.band-teal{background:var(--teal)}
.band-teal .kicker,.band-teal h2,.band-teal .sec-intro,.band-teal p{color:var(--grey-dark)}
.band-teal .kicker{opacity:.85}

/* ---- condition / related cards ---- */
.conds{display:grid;gap:14px}
.cond{display:block;text-decoration:none;background:var(--white);border-radius:var(--r-card);
      box-shadow:var(--sh);padding:20px 20px 18px;border-left:4px solid var(--teal);
      transition:transform .28s,box-shadow .28s}
.cond:hover{transform:translateY(-4px);box-shadow:var(--sh-lift)}
.cond b{display:block;font-weight:400;font-family:'Poppins',Verdana,sans-serif;
        font-size:17.5px;color:var(--grey-dark);margin-bottom:7px}
.cond span{display:block;font-size:14px;line-height:1.6;color:var(--grey-mid);margin-bottom:12px}
.cond em{font-style:normal;font-size:13px;letter-spacing:.6px;color:var(--grey-mid);
         font-family:Verdana,sans-serif}
.cond:hover em{text-decoration:underline}
@media (min-width:760px){ .conds{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px} }
@media (min-width:1000px){ .conds{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px} }

/* ---- fees: teal accent + the insurer marquee sits with the cost ---- */
.fees{border-top:4px solid var(--teal)}
#fees .insurers{margin-top:34px}
#fees .sec-intro{max-width:none}
#fees .fee span{font-size:15.5px}

/* ---- shared: numbered steps ---- */
.steps{display:grid;gap:14px}
.step{background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh);padding:22px 20px 20px}
.step-n{display:inline-block;font-family:'Poppins',Verdana,sans-serif;font-size:13px;
        letter-spacing:1.6px;color:var(--grey-dark);background:var(--teal);
        border-radius:var(--r-sm);padding:5px 11px;margin-bottom:14px}
.step b{display:block;font-weight:400;font-family:'Poppins',Verdana,sans-serif;
        font-size:18px;color:var(--grey-dark);margin-bottom:7px}
.step span:not(.step-n){display:block;font-size:14.5px;line-height:1.65;color:var(--grey-mid)}
@media (min-width:760px){ .steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px} }
@media (min-width:1000px){
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
  /* the shockwave photo is dark on the left, so unlike the homepage the copy
     keeps its white panel at desktop: readable, and the photo stays vivid */
  .svc-hero .hero-copy{max-width:740px;background:rgba(255,255,255,.93);
                       border-radius:var(--r-panel);box-shadow:var(--sh);
                       padding:30px 34px 32px}
  .who-grid{grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:start}
  .what-grid{grid-template-columns:minmax(0,1fr) 330px;gap:48px;align-items:start}
  .what-main .prose p{max-width:none}
}



/* ---- header search ---- */
.search-btn{display:inline-flex;align-items:center;justify-content:center;width:46px;height:44px;padding:0;
            background:none;border:0;cursor:pointer;border-radius:999px;flex:0 0 auto;
            transition:background-color .2s}
.search-btn svg{width:24px;height:24px;stroke:var(--grey-mid);stroke-width:2;fill:none;stroke-linecap:round}
.search-btn:hover,.search-btn[aria-expanded="true"]{background:var(--teal-tint)}
.search-btn[aria-expanded="true"] svg{stroke:var(--grey-dark)}
.mm-search .mm-in{display:block;padding:26px var(--gutter) 30px;max-width:760px;margin:0 auto}
.search-form{display:flex;align-items:center;gap:12px;background:var(--white);
             border:1px solid var(--pale-grey);border-radius:999px;box-shadow:var(--sh);
             padding:6px 6px 6px 20px}
.search-form svg{width:18px;height:18px;stroke:var(--grey-light);stroke-width:2;fill:none;
                 stroke-linecap:round;flex:0 0 auto}
.search-form input{flex:1 1 auto;min-width:0;border:0;outline:none;background:none;
                   font-family:Verdana,sans-serif;font-size:15.5px;color:var(--grey-dark);padding:10px 0}
.search-form input::placeholder{color:var(--grey-light)}

/* ---- insurers now live inside the pricing section: no band, no borders ---- */
.insurers{background:none;border:0;box-shadow:none;border-radius:0;padding:0;margin-top:40px}
.insurers .ins-marquee{margin-top:0}

/* ---- home-visit review: a real Google review card, not a full-width pull quote ---- */
.hv-quote{margin:0 0 26px;border-left:0;padding:16px 18px 15px;
          background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh);
          max-width:400px}
.hv-q-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.hv-q-top .g{width:18px;height:18px;flex:0 0 auto}
.hv-q-src{font-size:12px;color:var(--grey-light);font-family:Verdana,sans-serif}
.hv-quote .stars{font-size:12px;margin:0 0 0 auto;color:var(--star);letter-spacing:1px}
.hv-quote blockquote{margin:0 0 9px;font-size:14px;line-height:1.6;color:var(--grey-dark)}
.hv-quote figcaption{font-size:12px;color:var(--grey-light)}

/* ---- Sammy's photo runs the full height of her copy ---- */
@media (min-width:901px){
  .founder-grid{align-items:stretch}
  .founder-photo{height:100%}
  .founder-photo img{height:100%;aspect-ratio:auto;object-fit:cover;object-position:50% 22%}
}

/* ---- shared two-column geometry: the conditions panel and the clinic map
       must sit on exactly the same grid, or the two sections read as misaligned ---- */
@media (min-width:1000px){
  .bm-grid,.cl-grid{grid-template-columns:400px minmax(0,1fr);column-gap:48px;align-items:stretch}
  .bm-stage,.cl-map{width:400px;max-width:400px}
  .cl-note{width:400px;max-width:400px;box-sizing:border-box}

  /* both columns share one height, so tops AND bottoms line up */
  .bm-stage{display:flex;flex-direction:column;justify-content:center}
  /* the figures are a flex item now: without an explicit width the auto margins
     make it shrink-to-fit and the aspect-ratio figures collapse to nothing */
  .bm-figs{width:100%;flex:0 0 auto}

  .cl-col{position:static;display:flex;flex-direction:column}
  /* the MAP takes up the slack, not the note underneath it */
  .cl-map{flex:1 1 auto;min-height:0}
  .cl-note{flex:0 0 auto}
  /* keep the pins locked to the image: the inner box holds the map's aspect
     ratio and is cropped left/right, so every pin stays over its real location */
  .cl-map-in{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);
             height:100%;aspect-ratio:1100/863}
  .cl-map img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}

  /* home visits: text was starting 24px left of every other section, because the
     padding used 100vw (which includes the scrollbar) and omitted the gutter.
     Measuring from the section's own width instead lands it exactly on 271. */
  .hv{display:block;position:relative}
  .hv-photo{position:absolute;top:0;right:0;bottom:0;width:50%;order:0}
  .hv-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .hv-copy{width:100%;min-height:460px;display:flex;align-items:center;
           padding:60px 0 60px calc((100% - var(--container)) / 2 + var(--gutter))}
  .hv-copy-in{max-width:440px;margin-left:0}
}
@media (min-width:1400px){ .hv-copy{min-height:500px;padding-right:0} }

/* ================= blog (theme-rendered posts) ================= */
.bp-hero{padding:56px 0 34px}
.bp-hero .crumbs{margin-bottom:14px}
.bp-hero h1{max-width:820px;margin-bottom:16px}
.bp-meta{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13.5px;color:var(--grey-light);align-items:center}
.bp-meta b{font-weight:400;color:var(--grey-mid)}
.bp-meta .dot{opacity:.5}
.bp-figure{margin:0 0 34px;border-radius:var(--r-panel);overflow:hidden;box-shadow:var(--sh);aspect-ratio:16/9;background:var(--pale-grey)}
.bp-figure img{width:100%;height:100%;object-fit:cover;display:block}
.bp-wrap{max-width:780px;margin:0 auto;padding:0 var(--gutter)}
.bp-body{font-size:17px;line-height:1.75;color:var(--grey-dark)}
.bp-body p{margin:0 0 1.35em}
.bp-body h2{font-size:clamp(22px,3vw,28px);margin:1.9em 0 .6em}
.bp-body h3{font-size:clamp(18px,2.4vw,21px);margin:1.6em 0 .5em}
.bp-body h4{font-size:17px;margin:1.4em 0 .4em}
.bp-body ul,.bp-body ol{margin:0 0 1.4em 1.3em;padding:0}
.bp-body li{margin:.35em 0}
.bp-body a{color:var(--teal-deep);text-decoration:underline;text-underline-offset:3px}
.bp-body a:hover{color:var(--grey-dark)}
.bp-body img{max-width:100%;height:auto;border-radius:var(--r-card);box-shadow:var(--sh);margin:1.6em 0;display:block}
.bp-body blockquote{margin:1.8em 0;padding:18px 24px;border-left:4px solid var(--teal);background:var(--off-white);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--grey-mid)}
.bp-body table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:15px}
.bp-body th,.bp-body td{border:1px solid var(--pale-grey);padding:10px 12px;text-align:left}
.bp-body th{background:var(--off-white)}
.bp-review{margin:44px 0 0;padding:22px 24px;background:var(--off-white);border-radius:var(--r-card);font-size:14px;color:var(--grey-mid);line-height:1.6}
.bp-review b{display:block;color:var(--grey-dark);margin-bottom:4px;font-weight:400;font-family:'Poppins',Verdana,sans-serif;font-size:15px}
.bp-related{display:grid;gap:18px;grid-template-columns:1fr;margin-top:8px}
@media (min-width:700px){.bp-related{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}}
.bp-card{display:flex;flex-direction:column;background:var(--white);border-radius:var(--r-card);box-shadow:var(--sh);overflow:hidden;text-decoration:none;color:inherit;transition:transform .28s,box-shadow .28s}
.bp-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lift)}
.bp-card .im{aspect-ratio:16/10;background:var(--pale-grey);overflow:hidden}
.bp-card .im img{width:100%;height:100%;object-fit:cover;display:block}
.bp-card .in{padding:16px 18px 20px}
.bp-card .cat{font-size:11.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--teal-deep);margin-bottom:8px}
.bp-card h3{font-size:16px;line-height:1.35;margin:0 0 8px;color:var(--grey-dark)}
.bp-card time{font-size:12.5px;color:var(--grey-light)}
.bp-grid{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:640px){.bp-grid{grid-template-columns:1fr 1fr;gap:22px}}
@media (min-width:980px){.bp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.bp-pag{display:flex;gap:8px;justify-content:center;margin-top:36px;flex-wrap:wrap}
.bp-pag .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border-radius:999px;border:1px solid var(--pale-grey);color:var(--grey-mid);text-decoration:none;font-size:14px;background:var(--white)}
.bp-pag .page-numbers.current{background:var(--teal);border-color:var(--teal);color:var(--grey-dark)}
.bp-cats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px}
.bp-cats a{font-size:13px;padding:7px 14px;border-radius:999px;border:1px solid var(--pale-grey);color:var(--grey-mid);text-decoration:none;background:var(--white)}
.bp-cats a.on,.bp-cats a:hover{border-color:var(--teal);color:var(--grey-dark)}

/* ---- BF navy header (logo is white on transparent) ---- */
#siteHeader{background:var(--teal);border-bottom:0;box-shadow:0 1px 0 rgba(255,255,255,.06)}
.util{display:none}
.hd .mt{color:#fff;text-transform:none;letter-spacing:0;font-size:14px;font-weight:500}
.mt:hover,.mt:focus-visible{background:rgba(255,255,255,.12);color:#fff}
.mi.open .mt{background:rgba(255,255,255,.16);color:#fff}
.mt svg,.search-btn svg,.burger svg{stroke:#fff}
.logo .l1{color:#fff}.logo .l2{color:rgba(255,255,255,.72)}
.search-btn,.burger,.burger .blbl{color:#fff}
.hd-tel{color:#fff;font-weight:600;text-decoration:none;white-space:nowrap;margin-right:6px}
@media (max-width:1023px){.hd-tel{display:none}}
.mnav{background:var(--teal-deep)}.mnav a,.mnav summary,.mnav .mnav-h{color:#fff}

/* ---- BF header v2: match the original header ---- */
.hd{padding:14px var(--gutter);min-height:84px}
.logo .l1,.logo .l2{display:none}
.logo-img{width:60px;height:60px}
@media (max-width:768px){.logo-img{width:48px;height:48px}}
.hd .mt{font-size:16px;font-weight:500;padding:10px 14px}
.hd .mt.hd-tel{font-weight:500;margin:0}
.hd-act .btn-teal{padding:15px 28px;border-radius:999px;font-size:15px;font-weight:600;box-shadow:0 0 22px rgba(212,184,124,.45)}
.hd-act .btn-teal:hover{box-shadow:0 0 28px rgba(212,184,124,.65)}
.search-btn{display:none}
@media (max-width:1023px){.hd .mt.hd-tel{display:none}}

/* ---- K1(c): hero veil was masking the hero photo near-invisible ---- */
.hero-veil{background:linear-gradient(90deg,rgba(250,250,250,.96) 0%,rgba(250,250,250,.9) 34%,rgba(250,250,250,.55) 52%,rgba(250,250,250,.12) 68%,rgba(250,250,250,0) 80%)}

/* ---- K2: eyebrow / role / breadcrumb / hero-meta font + avatar ---- */
.kicker,.cl-role,.crumbs,.crumbs a,.hero-meta,.strip-head .kicker{font-family:'Poppins',system-ui,sans-serif;font-variant:normal;font-variant-caps:normal;font-feature-settings:normal}
.kicker,.cl-role{text-transform:uppercase;letter-spacing:.12em;font-size:12.5px;font-weight:600;color:var(--grey-mid)}
.hero-meta{font-size:15px;color:var(--grey-mid);margin:14px 0 22px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.hero-meta a{color:var(--grey-dark);text-decoration:none;font-weight:600}
.cl-avatar{width:150px;height:150px;border-radius:50%;object-fit:cover;display:block;box-shadow:var(--sh)}
@media (max-width:640px){.cl-avatar{width:110px;height:110px}}

/* ---- K3: enquiry forms (kit/forms/sp-forms.css) ---- */
.sp-form{background:var(--white);border-radius:var(--r-panel);box-shadow:var(--sh);padding:30px 26px 26px;max-width:760px}
@media (min-width:760px){.sp-form{padding:38px 36px 32px}}
.sp-grid{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:640px){.sp-grid{grid-template-columns:1fr 1fr;gap:20px}}
.sp-field{margin:0 0 18px}
.sp-grid .sp-field{margin:0}
.sp-field label,.sp-consent label{display:block;font-size:13.5px;color:var(--grey-mid);margin-bottom:7px;line-height:1.5}
.sp-field label span{color:var(--teal-deep)}
.sp-field input,.sp-field select,.sp-field textarea{width:100%;font-family:Verdana,sans-serif;font-size:15px;color:var(--grey-dark);
  background:var(--off-white);border:1px solid var(--pale-grey);border-radius:var(--r-sm);padding:12px 14px;outline:none;
  transition:border-color .18s,box-shadow .18s}
.sp-field textarea{resize:vertical;min-height:130px;line-height:1.6}
.sp-field input:focus,.sp-field select:focus,.sp-field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(98,197,195,.22)}
.sp-field input:invalid:not(:placeholder-shown),.sp-field textarea:invalid:not(:placeholder-shown){border-color:#C46A6A}
.sp-wide{margin-top:18px}
.sp-consent{margin:20px 0 4px}
.sp-consent label{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--grey-light);margin:0}
.sp-consent input{flex:0 0 auto;margin-top:2px;width:16px;height:16px;accent-color:var(--teal)}
.sp-consent a{color:var(--teal-deep)}
.sp-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:22px 0 0}
.sp-note{font-size:12.5px;color:var(--grey-light)}
.sp-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sp-msg{border-radius:var(--r-sm);padding:13px 16px;margin:0 0 22px;font-size:14px;line-height:1.55;max-width:760px}
.sp-msg-err{background:#FBEDED;color:#8A4040;border:1px solid #EBD2D2}

/* ---- hero base (was missing from the kit stylesheet) ---- */
.hero{position:relative;overflow:hidden;isolation:isolate;background:var(--off-white)}
.hero img.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;display:block;margin:0;max-width:none}
.hero .hero-veil{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(250,250,250,.96) 0%,rgba(250,250,250,.9) 34%,rgba(250,250,250,.55) 52%,rgba(250,250,250,.12) 68%,rgba(250,250,250,0) 80%)}
.hero>.wrap{position:relative;z-index:2}
@media (max-width:768px){.hero .hero-veil{background:linear-gradient(180deg,rgba(250,250,250,.97) 0%,rgba(250,250,250,.9) 55%,rgba(250,250,250,.6) 100%)}}

/* ---- hero stacking (image was hidden at z 0) ---- */
.hero img.hero-bg{z-index:1}
.hero .hero-veil{z-index:2}
.hero>.wrap{z-index:3}
/* ---- hero image: force own compositor layer (image otherwise fails to paint on first load) ---- */
.hero img.hero-bg{will-change:transform;transform:translateZ(0);backface-visibility:hidden}

/* ---- Brief Q3: condition/service icons + NAP icons ---- */
.cond .ic{margin:0 0 14px;background:#fff;box-shadow:inset 0 0 0 1px #E3E5EA}
.cond .ic img.sp-ico{width:30px;height:30px;display:block}
.cond:hover .ic{background:#fff}
.nap-line img.sp-ico{width:20px;height:20px;vertical-align:-4px;margin-right:8px}

/* ---- Brief R1.0(a): hero legibility pre-fix ---- */
.hero .hero-veil{background:linear-gradient(90deg,rgba(250,250,250,.98) 0%,rgba(250,250,250,.96) 40%,rgba(250,250,250,.75) 58%,rgba(250,250,250,.25) 74%,rgba(250,250,250,0) 86%)}
.svc-hero .hero-veil{background:inherit}
.svc-hero .hero-veil{background:linear-gradient(90deg,rgba(250,250,250,.98) 0%,rgba(250,250,250,.96) 40%,rgba(250,250,250,.75) 58%,rgba(250,250,250,.25) 74%,rgba(250,250,250,0) 86%)!important}

/* ---- Brief R2 F4: tap-target sizing (footer legal links, cookies reopen, burger) ---- */
.ft-col li a,.ft-bottom a,#ck-open{display:inline-block;padding:8px 0;min-height:36px;line-height:20px}
/* R4.8: tighter footer link spacing — 28px min-height + 20px line-height still clears the R2 tap-target rule */
.ft-col li a{padding:4px 0;min-height:28px;line-height:20px;display:inline-block}
.burger{min-width:44px;width:44px}

/* =========================================================================
   Brief R3 (17 Sep) — Jess's homepage walkthrough, applied site-wide
   ========================================================================= */

/* ---- R3.3 section heading -> grid gap ---- */
.sec-head,.center .sec-intro,#treatments .sec-intro,#conditions .sec-intro{margin-bottom:0}
h2 + .sec-intro,.kicker + h2{margin-bottom:0}
#treatments h2,#conditions h2,.band-white h2,.band-off h2{margin-bottom:14px}
.conds{margin-top:40px}
@media(max-width:768px){.conds{margin-top:28px}}

/* ---- R3.4 icon centring (all cards) ---- */
.cond .ic{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 16px;border-radius:50%}
.cond .ic img.sp-ico{width:30px;height:30px;display:block;margin:0}
.cond-tile .ic{margin:0 20px 0 0}

/* ---- R3.5 treatment cards (.cond, service grids — not .cond-tile) ---- */
.cond{background:#fff;border:1px solid #E6E8EE;border-radius:18px;box-shadow:0 6px 24px -14px rgba(16,25,42,.25);
      padding:28px 24px;border-left:0;transition:transform .2s,box-shadow .2s;text-align:center}
.cond:hover{transform:translateY(-6px);box-shadow:0 16px 34px -16px rgba(16,25,42,.35)}
.cond .ic{background:var(--teal-wash,#EAECEF)}
@media(min-width:1024px){.conds{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}}
@media(max-width:1023px){.conds{gap:20px}}

/* ---- R3.6 condition tiles (.cond-tile) — distinct from service cards ---- */
.cond-tile{display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;column-gap:16px;row-gap:2px;
           align-items:center;text-align:left;background:var(--teal-wash,#EAECEF);border:0;
           border-radius:14px;padding:18px 20px;box-shadow:none}
.cond-tile:hover{background:#fff;box-shadow:0 10px 28px -16px rgba(16,25,42,.3);transform:translateY(-3px)}
.cond-tile .ic{grid-row:1/3;grid-column:1;width:48px;height:48px;background:#fff;margin:0}
.cond-tile b{grid-column:2;grid-row:1;margin:0;align-self:end}
.cond-tile span{grid-column:2;grid-row:2;margin:0;align-self:start;font-size:13px;line-height:1.45;color:var(--grey-mid)}
.cond-tile:not(:has(span:not(:empty))) b{grid-row:1/3;align-self:center}
@media(min-width:900px){#conditions .conds,.cond-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:899px){#conditions .conds,.cond-grid{grid-template-columns:1fr!important}}

/* ---- R3.1 home hero (Split Spotlight) — scoped so .svc-hero elsewhere is untouched ---- */
.hero-home{background:var(--teal,#10192a);color:#fff;padding:64px 0 56px;min-height:0}
.hero-home .hero-home-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;position:relative;z-index:2}
.hero-home .eyebrow{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent,#d4b87c);font-weight:600;margin-bottom:10px}
.hero-home h1{color:#fff;font-size:clamp(2rem,4.2vw,3rem);max-width:16ch;margin-bottom:18px;text-shadow:none}
.hero-home h1 .hl,.hero-home h1 em{color:var(--accent,#d4b87c);font-style:normal}
.hero-home .hero-lead{color:rgba(255,255,255,.85);max-width:46ch}
.hero-home .hero-cta{margin:22px 0 20px}
.hero-home .hero-cta .btn-line{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.hero-home .hero-cta .btn-line:hover{border-color:var(--accent,#d4b87c);color:var(--accent,#d4b87c);background:transparent}
.hero-home-chips{display:flex;gap:10px;flex-wrap:wrap}
.hero-home-chips .chip{display:inline-flex;align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
                        color:rgba(255,255,255,.9);font-size:.78rem;padding:8px 14px;border-radius:999px;white-space:nowrap}
.hero-home-photo-wrap{position:relative}
.hero-home-photo{border-radius:24px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 70px -30px rgba(0,0,0,.6);background:#16233c}
.hero-home-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero-home-badge{position:absolute;bottom:-18px;left:-14px;background:#fff;color:#101929;border-radius:16px;padding:12px 16px;
                  box-shadow:0 18px 36px -16px rgba(0,0,0,.5);display:flex;gap:10px;align-items:center}
.hero-home-badge .tb-g{flex:0 0 auto}
.hero-home-stars{color:#F2B705;letter-spacing:1px;font-size:.95rem;display:inline-flex;align-items:center;gap:4px}
.hero-home-badge small{display:block;color:#66666F;font-size:.7rem;margin-top:1px}
@media(max-width:900px){
  .hero-home .hero-home-grid{grid-template-columns:1fr;gap:30px}
  .hero-home-photo-wrap{max-width:380px;margin:0 auto}
  .hero-home-badge{position:relative;bottom:auto;left:auto;margin-top:-30px;margin-left:14px;width:max-content}
}

/* ---- R3.7 "Why Better Flow" full-bleed dark section ---- */
.why-full{position:relative;background-size:cover;background-position:center;color:#fff;padding:76px 0}
.why-full .kicker{color:var(--accent,#d4b87c)}
.why-full h2{color:#fff;margin-bottom:28px}
.why-cards{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.why-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:20px 22px}
.why-card b{display:block;color:#fff;font-weight:600;margin-bottom:6px;font-size:1rem}
.why-card span{display:block;color:rgba(255,255,255,.75);font-size:.9rem;line-height:1.5}
.btn-line-white{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.btn-line-white:hover{border-color:var(--accent,#d4b87c);color:var(--accent,#d4b87c);background:transparent}
@media(max-width:768px){.why-cards{grid-template-columns:1fr}}

/* ---- R3.8 team carousel — inset photo, white card, teal-wash section ---- */
.spt-team{background:var(--teal-wash,#EAECEF)}
.spt-team .spt-scroller{gap:24px}
.spt-team .spt-person{background:#fff;padding:20px}
.spt-team .spt-person img{border-radius:12px;aspect-ratio:1;object-fit:cover}
.spt-team .spt-pi{padding:14px 0 0}

/* ==== R8 (20 Sep) — #why rebuilt to variant E1 (Jess pick) + new #how steps section; the
   R11 .why-b2 override block above is gone with it. If page 95's REST save 403s again, the
   live page keeps its old .why-b2 markup untouched (this theme carries no shim for it — the
   new .why-e1/.how-rehab CSS ships inline with page 95's own content once that save succeeds,
   same as every other section on this build). ==== */

/* ==== R7.3 (20 Sep) — home hero grid still had a page-inlined width:100% overriding
   the new .wrap sizing (from _svc_extra.css, can't be re-posted); neutralise it here. ==== */
.hero-home .hero-home-grid{width:80vw!important;max-width:var(--container)!important;margin:0 auto!important}
