/* Hannah Clarke additions on top of the HC Skin design system (same tokens) */
:root{--esp:#18120f;--bd:#ece6df;--brown:#7A5240;--cream:#f7f1ec}
.logo b{letter-spacing:.04em}
/* mega menu: lead + four columns of groups */
.hdr .mega-in.hc-mega{grid-template-columns:230px repeat(4,minmax(0,1fr))!important}
.hdr .mega-in.hc-mega .mega-col{padding-inline:0 26px}
.hdr .mega-in.hc-mega .mega-col h4 a:after{content:""}
.hdr .mega-note{margin:-14px 0 22px;padding:12px 16px;border-radius:8px;background:#f7f4f0;font-size:13px;color:#4a4a4a}
.hdr .mega-note a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:1300px){.hdr .mega-in.hc-mega{grid-template-columns:200px repeat(4,minmax(0,1fr))!important}}
.drawer .acc-panel h5 a{text-decoration:none}
/* hero subtitle */
.pg-hero .hero-sub{color:#fff;opacity:.9;margin-top:10px}
/* in-page contents chips */
.toc{justify-content:center;max-width:1100px}
.toc a{font-size:13.5px}
html{scroll-behavior:smooth}
section[id]{scroll-margin-top:110px}
/* long-form rich text */
.rte h3{font-size:clamp(18px,1.5vw,21px);font-weight:500;margin-top:10px;color:var(--ink)}
.rte ul,.rte ol{padding-left:22px;display:flex;flex-direction:column;gap:8px}
.rte li::marker{color:var(--brown)}
.rte strong,.rte b{font-weight:600}
.rte blockquote{margin:6px 0;padding:18px 22px;border-left:3px solid var(--brown);background:var(--cream);border-radius:0 12px 12px 0;font-style:italic}
.band .rte blockquote{background:#fff}
.rte blockquote p{margin:0}
.rte table{width:100%;border-collapse:collapse;font-size:16px;background:#fff;border-radius:12px;overflow:hidden}
.rte th,.rte td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--bd);vertical-align:top}
.rte th{font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--brown);background:#faf7f4}
.rte tr:last-child td{border-bottom:0}
.rte td:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.price-card{background:#fff;border:1px solid var(--bd);border-radius:16px;padding:clamp(18px,2.4vw,30px);display:flex;flex-direction:column;gap:14px}
.band .price-card{border-color:#fff}
.price-card .btn-row{margin-top:6px}
.intro p:first-child{font-size:clamp(17px,1.45vw,20px);color:var(--ink)}
/* practitioner block on treatment pages */
.meet .ab-media{aspect-ratio:4/5}
.meet .rte{gap:12px}
/* gallery row */
.gl-row{display:grid;grid-auto-flow:column;grid-auto-columns:min(calc((100vw - 120px)/4.2),300px);gap:14px;overflow-x:auto;scrollbar-width:none;margin-top:24px;padding-bottom:4px}
.gl-row::-webkit-scrollbar{display:none}
.gl,.gl-row .rl{margin:0;border-radius:12px;overflow:hidden;aspect-ratio:3/4;background:#ece6df}
.gl img{width:100%;height:100%;object-fit:cover}
@media(max-width:700px){.gl-row{grid-auto-columns:62%}}
/* reels (vertical video) */
.rl{position:relative;margin:0;border-radius:12px;overflow:hidden;aspect-ratio:9/16;background:#18120f;color:#fff;isolation:isolate}
.rl video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.rl:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0000 55%,#140e0bc7 100%)}
.rl figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.35}
.rl-link{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;background:#fff;color:#111;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none}
.rl-link svg{width:14px;height:14px}
.rl-snd{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;border:0;background:#ffffffe0;color:#111;display:grid;place-items:center;cursor:pointer}
.rl-snd svg{width:18px;height:18px}
.rl-snd .w{opacity:.25}
.rl.on .rl-snd .w{opacity:1}
.rl-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}
@media(max-width:900px){.rl-row{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:64%;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory}.rl-row .rl{scroll-snap-align:start}}
/* meet Hannah */
.mh{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:center}
.mh-vid .rl{max-width:420px}
.mh-copy{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.mh-copy .ab-h em,.ab-h em,.h-l em{font-style:italic;color:var(--brown)}
.team-mini{list-style:none;padding:0;margin:4px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}
.team-mini li{display:flex;gap:12px;align-items:center;background:#f7f4f0;border-radius:12px;padding:12px}
.team-mini b{display:block;font-weight:500}
.team-mini small{color:var(--ink-3);font-size:13px}
.team-mini .av{background:#fff}
@media(max-width:820px){.mh{grid-template-columns:1fr}.mh-vid .rl{max-width:none;aspect-ratio:4/5}.team-mini{grid-template-columns:1fr}}
/* reviews */
.rv-row{display:grid;grid-auto-flow:column;grid-auto-columns:min(calc((100vw - 120px)/3.3),420px);gap:16px;overflow-x:auto;scrollbar-width:none;margin-top:24px;padding-bottom:4px}
.rv-row::-webkit-scrollbar{display:none}
.rvw{margin:0;background:#fff;border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:14px}
.rvw blockquote{margin:0;font-size:17px;line-height:1.55;color:var(--ink)}
.rvw figcaption{font-weight:500;font-size:14px;color:var(--ink-3);margin-top:auto}
.rv-stars{display:flex;gap:2px;color:#b8865b}
.rv-stars svg{width:16px;height:16px}
@media(max-width:700px){.rv-row{grid-auto-columns:84%}}
/* team grid */
.tm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}
.tmc{background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.tm-img{aspect-ratio:4/3;background:#f7f1ec;display:grid;place-items:center;overflow:hidden}
.tm-img img{width:100%;height:100%;object-fit:cover}
.tm-img .av.lg{background:#fff}
.tm-b{padding:20px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
@media(max-width:1000px){.tm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.tm-grid{grid-template-columns:1fr}}
/* treatments hub group images */
.grp-img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:12px;margin-bottom:6px}
/* before & after */
.ba-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:24px}
.ba-grid figure{margin:0;border-radius:12px;overflow:hidden;background:#fff;aspect-ratio:4/5}
.ba-grid img{width:100%;height:100%;object-fit:cover}
@media(max-width:820px){.ba-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* dark CTA */
.fb.dark-fb{background:var(--esp);color:#fff}
.fb.dark-fb .lead{color:#ffffffcc}
.fb.dark-fb .eyebrow{color:#d8b79c}
.fb .btn.light{background:#fff;color:#111;border-color:#fff}
.fb .btn.ghost-light{background:transparent;color:#fff;border-color:#ffffff80}
.fb.sister{background:var(--cream)}
.fb.sister>img{background:#fff}
.price-sec .h-m{margin-top:4px}
.findus-map{min-height:320px}
.team-mini .av{width:44px;height:44px;flex:none}
.team-mini .av img{width:44px;height:44px;object-fit:cover;border-radius:50%}
/* real Hannah Clarke wordmark */
.logo .hc-logo{display:block;width:clamp(150px,13vw,196px);height:auto;color:var(--ink)}
.hdr.is-clear .logo .hc-logo,.t-index .hdr.is-clear .logo .hc-logo{color:#fff}
.t-index .hdr.is-cond:not(.is-clear) .logo .hc-logo,.t-index .hdr.is-open .logo .hc-logo{color:var(--ink)}
.drawer .logo .hc-logo{width:170px;color:var(--ink)}
@media(max-width:900px){.logo .hc-logo{width:150px}}
/* reels row scrolls when there are more than four */
.rl-row{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:calc((100% - 48px)/4.25);overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory}
.rl-row::-webkit-scrollbar{display:none}
.rl-row .rl{scroll-snap-align:start}
@media(max-width:900px){.rl-row{grid-auto-columns:64%}}
.fb.sister>img{object-fit:cover}
/* review fixes */
.fb.sister,.fb.sister h2,.fb.sister .h-l{color:var(--ink)}
.fb.sister .lead{color:var(--ink-2)}
.fb.sister .eyebrow{color:var(--brown)}
.hdr .nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
@media(max-width:700px){.hero-lux .hero-side{min-width:0;max-width:100%}.hero-lux .hero-side .btn-row{display:grid;grid-template-columns:1fr;gap:10px;width:100%;max-width:100%}.hero-lux .hero-side .btn-row .btn{width:auto;min-width:0}.hero-lux .hero-side .lead br{display:none}}
.rv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:900px){.rv-grid{grid-template-columns:1fr}}
/* breaking up long sections */
.rte .xs-cards{margin:4px 0}
.rte .xs-card{padding:18px 20px}
.rte .xs-card b{font-size:16.5px}
.rte .xs-card .muted{font-size:15px;line-height:1.55;color:var(--ink-2)}
.rte .xs-card .muted a{color:inherit}
.rte p.lead.ink{font-size:clamp(18px,1.55vw,21px);line-height:1.5;max-width:none}
.rte ol.steps{list-style:none;padding:0;counter-reset:st;display:grid;gap:10px}
.rte ol.steps>li{counter-increment:st;position:relative;background:#fff;border:1px solid var(--bd);border-radius:14px;padding:14px 18px 14px 58px;font-size:16px}
.band .rte ol.steps>li{border-color:#fff}
.rte ol.steps>li:before{content:counter(st);position:absolute;left:16px;top:13px;width:28px;height:28px;border-radius:50%;background:var(--esp);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600}
.rte ul.chk{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
.rte ul.chk>li{position:relative;padding-left:30px;font-size:16px}
.rte ul.chk>li:before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:#d8b79c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%2318120f' stroke-width='2.4'%3E%3Cpath d='m5 10.5 3.2 3.2L15 6.8'/%3E%3C/svg%3E") center/12px no-repeat}
@media(max-width:700px){.rte ul.chk{grid-template-columns:1fr}}
.media-sec{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(24px,4vw,64px);align-items:start}
.media-sec .media{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r);position:sticky;top:110px}
.media-sec .h-l{margin-bottom:16px}
.media-sec.flip>img{order:2}
@media(max-width:900px){.media-sec{grid-template-columns:1fr}.media-sec .media{position:static;aspect-ratio:16/10}.media-sec.flip>img{order:0}}
.mid-cta{background:var(--esp);color:#fff;border-radius:var(--r);padding:clamp(20px,3vw,32px) clamp(20px,3.5vw,40px);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.mid-cta b{display:block;font-weight:500;font-size:clamp(19px,1.8vw,24px)}
.mid-cta span{color:#ffffffb3;font-size:15px}
.mid-cta .btn.light{background:#fff;color:#111;border-color:#fff}
.mid-cta .btn.ghost-light{background:transparent;color:#fff;border-color:#ffffff80}
.ft-usp2 li{align-items:center}
.team-mini li{padding:14px 16px}
.tmc .tm-b{padding:24px}
/* meet the team */
.st-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.stc{background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;scroll-margin-top:120px}
.band .stc{background:#fff}
.st-img{margin:0;position:relative}
.st-img img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.st-img figcaption{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.92);border-radius:999px;padding:4px 12px;font-size:12px;letter-spacing:.04em}
.st-b{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.st-b .h-m{margin:0}
.st-rate{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted,#6b625a);margin:0}
.st-rate .rv-stars{display:inline-flex;gap:2px}
.st-rate .rv-stars svg{width:14px;height:14px}
.st-days{font-size:14px;font-weight:500;margin:0}
.st-bio p{margin:0 0 10px;line-height:1.6}
.st-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px}
.st-links a{font-size:13px;border:1px solid rgba(0,0,0,.14);border-radius:999px;padding:6px 12px;text-decoration:none;color:inherit}
.st-links a:hover{border-color:currentColor}
.st-book{align-self:flex-start;margin-top:8px}
@media(max-width:1000px){.st-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.st-grid{grid-template-columns:1fr}}
/* booking page */
.bk-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;align-items:start}
.bk-frame{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:20px;min-height:560px;display:flex;flex-direction:column;gap:16px}
.bk-frame .vagaro{flex:1;min-height:480px}
.bk-frame .vagaro iframe{width:100%!important;min-height:640px;border:0}
.bk-fallback{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;border-top:1px solid rgba(0,0,0,.08);padding-top:16px;text-align:center}
.bk-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:110px}
.bk-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.bk-list li{display:flex;flex-direction:column;gap:4px;padding:14px 0;border-bottom:1px solid rgba(0,0,0,.08);font-size:15px;line-height:1.5}
.bk-list li:last-child{border-bottom:0;padding-bottom:0}
.bk-list b{font-weight:500}
.bk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}
.bk-grp{background:#fff;border-radius:16px;padding:22px 24px}
.bk-grp ul{list-style:none;padding:0;margin:10px 0 0}
.bk-grp li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(0,0,0,.07);font-size:15px}
.bk-grp li:last-child{border-bottom:0}
.bk-grp li a{color:inherit;text-decoration:none}
.bk-grp li a:hover{text-decoration:underline}
.bk-grp li span{color:var(--muted,#6b625a);white-space:nowrap;font-size:14px}
.bk-team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:24px}
.bk-tm{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:10px}
.bk-tm img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none}
.bk-tm span{display:flex;flex-direction:column;min-width:0}
.bk-tm b{font-weight:500;font-size:15px}
.bk-tm small{color:var(--muted,#6b625a);font-size:12.5px;line-height:1.35}
@media(max-width:1000px){.bk-wrap{grid-template-columns:1fr}.bk-side{position:static}.bk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bk-team{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.bk-grid,.bk-team{grid-template-columns:1fr}}
/* rotating statement: always two lines, tighter spacing */
.rot-sec{padding-block:clamp(36px,5vw,72px) clamp(4px,1.5vw,16px)}
.rot-sec .statement .ln{display:block;white-space:nowrap}
@media(max-width:820px){.rot-sec .statement{font-size:clamp(22px,6.4vw,44px);line-height:1.3}.rot-sec .statement .rot-w{display:inline-block;width:auto!important;text-align:left}.rot-sec .statement .pic{width:1.5em}}
/* mobile menu: treatment groups as drop downs */
.drawer .sub-acc{border-bottom:1px solid rgba(0,0,0,.08)}
.drawer .sub-acc summary{list-style:none;display:flex;align-items:center;gap:10px;padding:13px 0;font-size:16.5px;cursor:pointer}
.drawer .sub-acc summary::-webkit-details-marker{display:none}
.drawer .sub-acc .sa-n{font-size:12px;color:var(--ink-3);border:1px solid rgba(0,0,0,.12);border-radius:999px;padding:1px 8px;line-height:1.5}
.drawer .sub-acc summary svg{margin-left:auto;width:14px;height:14px;transition:transform .25s}
.drawer .sub-acc[open] summary svg{transform:rotate(180deg)}
.drawer .sub-acc .sa-body{padding:0 0 10px 14px;border-left:1px solid rgba(0,0,0,.1);margin:0 0 12px 2px}
.drawer .sub-acc .sa-body a.mi{font-size:15.5px;padding:6px 0;color:var(--ink-2,#3b2f29)}
.drawer .acc-panel>a.mi:first-child{padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.08)}
/* footer USP: keep icons clear of the dividers at every width */
@media(max-width:1100px){.ft-usp2 li+li{padding-left:16px}.ft-usp2 li:nth-child(4){padding-left:0}}
@media(max-width:600px){.ft-usp2 li{padding-left:0}.ft-usp2 li:nth-child(even){padding-left:14px!important}.ft-usp2 li:nth-child(4){border-left:1px solid #3b2f291a}.ft-usp2 li:last-child{padding-left:0!important}}
.drawer .sub-acc summary::after,.drawer .sub-acc summary::before{content:none!important;display:none!important}
.ft-logo{display:inline-block;color:var(--ink,#111);margin-bottom:14px}
.ft-logo .hc-logo{width:190px;height:auto;display:block}
.team-mini li{padding:0}
.team-mini .tmm{display:flex;gap:12px;align-items:center;padding:12px 14px;color:inherit;text-decoration:none;width:100%;border-radius:12px}
.team-mini .tmm:hover b{text-decoration:underline;text-underline-offset:3px}
.team-mini .av{width:48px;height:48px;flex:none;border-radius:50%;overflow:hidden;display:block}
.team-mini .av img{width:48px;height:48px;object-fit:cover;object-position:50% 25%;border-radius:50%;display:block}
/* hero loop video */
.hero-lux>video.hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% calc(30% - var(--hs,0) * 22%);z-index:0}
/* rotating statement: one line on desktop (per comment), one sentence per line on smaller screens */
.rot-sec .statement{font-size:clamp(26px,3vw,46px)}
.rot-sec .statement .ln{display:inline;white-space:nowrap}
.rot-sec .statement .ln+.ln{margin-left:.35em}
@media(max-width:900px){.rot-sec .statement .ln{display:block}.rot-sec .statement .ln+.ln{margin-left:0}.rot-sec .statement{font-size:clamp(22px,6.4vw,44px)}}
.bk-req{align-self:flex-start;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;background:#fff;border:1px solid rgba(59,47,41,.18);color:var(--brown,#7a5a48);border-radius:999px;padding:3px 10px;margin-bottom:4px}
.bk-req.none{color:#3c6b4f;border-color:rgba(60,107,79,.35)}
.bk-list li>span:last-child{color:var(--ink-3,#6b625a)}
.bk-frame .vagaro{font-size:12px;line-height:1.5;color:#999}.bk-frame .vagaro a{color:#999!important;font-size:12px!important}
.hw-tag{display:inline-block;vertical-align:middle;margin-left:8px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;color:var(--brown,#7a5a48);border:1px solid rgba(59,47,41,.2);border-radius:999px;padding:2px 9px;line-height:1.5;position:relative;top:-2px}
.hw-n .hw-tag{top:0;margin-left:10px;letter-spacing:.06em;flex:none}
.hrow,.tr-row,.rl-row,.gl-row{overflow-y:hidden;overscroll-behavior-x:contain}
.price-note{font-size:14px;color:var(--ink-3,#6b625a);background:#f7f4f0;border-radius:10px;padding:10px 14px;margin:14px 0 0;line-height:1.5}.price-note a{color:inherit;text-decoration:underline}
