@font-face{font-family:Poppins;font-weight:300;font-display:swap;src:url(../fonts/Poppins-Light.woff) format("woff")}
@font-face{font-family:Poppins;font-weight:500;font-display:swap;src:url(../fonts/Poppins-Medium.woff) format("woff")}
:root{--paper:#FAF4EA;--sand:#F2E3CF;--wall:#EBCDAA;--peach:#F8E6DE;--ink:#66443C;--soft:#8A6558;--sage:#4F6B5B;--pad:clamp(20px,5vw,72px);--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font:300 17px/1.85 Poppins,system-ui,sans-serif;color:var(--ink);background:var(--wall);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--sage);outline-offset:4px}
.bg{position:fixed;inset:-6% 0;z-index:-1;background:url(../images/bg-wall-2400.webp) center/cover;will-change:transform}
.bg:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(250,244,234,.38),rgba(250,244,234,.58))}
@media(max-width:900px){.bg{background-image:url(../images/bg-wall-1200.webp)}}
.px{transform:translate3d(0,var(--py,0px),0);will-change:transform}
/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:32px;padding:14px var(--pad);color:var(--paper);transition:background .5s,color .5s,padding .5s}
.hdr.solid{background:rgba(250,244,234,.9);backdrop-filter:blur(10px);color:var(--ink);padding-block:8px}
.hdr .mark{height:58px;width:auto;transition:filter .5s}
.hdr:not(.solid) .mark{filter:brightness(0) invert(.95)}
.nav{display:flex;gap:clamp(18px,2.6vw,42px);margin-left:auto;align-items:center;font-size:15px}
.nav a{text-decoration:none;padding:4px 0;border-bottom:1px solid transparent;transition:border-color .3s}
.nav a:hover,.nav a[aria-current]{border-color:currentColor}
.lang{font-size:13px;letter-spacing:.12em;opacity:.8}.lang span{opacity:.5}
.menu-btn{display:none;margin-left:auto;background:none;border:0;color:inherit;cursor:pointer;padding:12px 8px;width:44px;height:44px;position:relative}.menu-btn i{position:absolute;left:9px;right:9px;height:2px;background:currentColor;border-radius:2px;transition:transform .4s var(--ease),opacity .25s}.menu-btn i:nth-child(1){top:14px}.menu-btn i:nth-child(2){top:21px}.menu-btn i:nth-child(3){top:28px}.menu-open .menu-btn i:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-open .menu-btn i:nth-child(2){opacity:0}.menu-open .menu-btn i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* type */
h1,h2,h3{font-weight:300;line-height:1.1;letter-spacing:.005em}
.eyebrow{font:500 12px/1 Poppins;letter-spacing:.42em;text-transform:uppercase}
.btn{display:inline-block;border:1px solid currentColor;padding:14px 38px;font:500 12.5px/1 Poppins;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;transition:background .45s,color .45s,border-color .45s}
.btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.link{font-size:15px;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.sec{position:relative;padding:clamp(80px,11vw,170px) var(--pad)}
.vt{writing-mode:vertical-rl;font-size:clamp(30px,4.2vw,62px);font-weight:300;line-height:1;white-space:nowrap}
.spec{margin:22px 0 28px;font-size:16px}.spec b{font-weight:300;color:var(--ink)}.spec span{color:var(--soft)}
.spec p{margin:6px 0}
/* hero */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;color:var(--paper);background:#3a2a25}
.hero-ph{position:absolute;inset:-12% 0}.hero-ph img{width:100%;height:100%;object-fit:cover;object-position:60% 40%}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(40,26,22,.45),rgba(40,26,22,.2) 45%,rgba(40,26,22,.62))}
.hero-copy{position:absolute;z-index:3;left:var(--pad);right:var(--pad);bottom:clamp(36px,7vh,80px);display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.hero h1{font-size:clamp(40px,7.4vw,112px);margin-top:14px}
/* intro */
.intro{min-height:80vh;display:grid;grid-template-columns:minmax(110px,16vw) minmax(0,1fr);gap:clamp(56px,11vw,190px);align-items:center}
.intro-mark{height:clamp(250px,42vh,400px);opacity:.28;justify-self:center;pointer-events:none}.intro-mark img{height:100%;width:auto}
.intro-txt .link{display:inline-block;margin-top:44px}
.statement{font-size:clamp(28px,4.4vw,66px);line-height:1.22;font-weight:300;max-width:17em;text-align:left}
/* treatment blocks */
.tb{display:grid;gap:clamp(20px,3vw,48px);align-items:start;margin-bottom:clamp(90px,12vw,190px)}
.tb.a{grid-template-columns:auto minmax(0,.9fr) minmax(0,1fr);padding-left:6vw}
.tb.b{grid-template-columns:minmax(0,1.15fr) minmax(0,1.2fr) auto;padding-right:3vw}
.ph{position:relative;overflow:hidden;background:var(--sand)}
.ph img{width:100%;height:118%;object-fit:cover}
.ph .cap{position:absolute;inset:0;display:grid;place-items:center;color:var(--paper);font-size:clamp(15px,1.7vw,22px);text-align:center;padding:20px;background:rgba(40,26,22,.18)}
.tb h3{font-size:clamp(24px,2.4vw,34px);margin-bottom:8px}
.tb .txt{align-self:end}.tb .tag{font-size:19px;color:var(--soft);margin-bottom:14px}
.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:28px;margin-top:26px}.duo h4{font-weight:300;font-size:21px;margin-bottom:4px}.duo p{font-size:15px;line-height:1.7}
.rates{border-top:1px solid rgba(102,68,60,.35);margin-top:30px;padding-top:18px;font-size:15px}.rates strong{font-weight:500;letter-spacing:.06em}
/* method */
.method{padding:0 0 clamp(80px,10vw,150px)}
.vid{position:relative;aspect-ratio:16/9;max-height:92svh;width:100%;background:#2b1f1b;overflow:hidden}
.vid video{width:100%;height:100%;object-fit:cover}
.snd{position:absolute;right:var(--pad);bottom:22px;background:rgba(250,244,234,.88);border:0;color:var(--ink);font:500 11.5px Poppins;letter-spacing:.2em;text-transform:uppercase;padding:11px 20px;cursor:pointer}
.mcols{display:grid;grid-template-columns:auto 1fr 1fr;gap:clamp(24px,4vw,64px);padding:clamp(60px,8vw,120px) var(--pad) 0;align-items:start}
.mcols p+p{margin-top:16px}.quote{grid-column:2/4;font-size:clamp(24px,3vw,42px);line-height:1.25;margin:10px 0}
/* group + about */
.gc{display:grid;grid-template-columns:auto minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:center}
.gc .txt .btn{margin-top:28px}
.about{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:clamp(30px,6vw,110px);align-items:center;background:rgba(250,244,234,.62)}
.about h2{font-size:clamp(30px,4.2vw,62px);margin-bottom:18px}.about .btn{margin-top:30px}
/* footer */
.foot{background:rgba(242,227,207,.9);padding:clamp(48px,6vw,80px) var(--pad) 32px;text-align:center}
.foot>img{height:clamp(110px,12vw,170px);width:auto;margin:0 auto 14px}.brand{font:500 18px Poppins;letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;margin-bottom:38px}
.fcols{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;text-align:left;font-size:15px;max-width:980px;margin:0 auto;border-top:1px solid rgba(102,68,60,.3);padding-top:36px}
.fcols h4{font:500 12px Poppins;letter-spacing:.3em;text-transform:uppercase;margin-bottom:12px}
.fcols a{display:block;text-decoration:none;width:max-content;border-bottom:1px solid transparent}.fcols a:hover{border-color:currentColor}
.love{margin-top:44px;font-size:13px;letter-spacing:.3em;opacity:.8}
/* reveals */
.js .rv{opacity:0;transform:translateY(30px);transition:opacity 1.1s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
.js .rvi::after{content:"";position:absolute;inset:0;z-index:3;background:#EBD8BF;transform-origin:top;transition:transform 1.5s var(--ease)}.js .rvi.in::after{transform:scaleY(0)}
.js .vt.rv{transform:translateY(-34px)}.js .vt.rv.in{transform:none}
@media(prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}.js .rvi::after{display:none}.px{transform:none!important}html{scroll-behavior:auto}}
/* mobile */
@media(max-width:900px){
 .lang{display:none}.menu-btn{display:block}
 .tb.a,.tb.b,.gc,.about,.mcols{grid-template-columns:1fr;padding-left:0;padding-right:0}
 .tb.a,.tb.b{padding:0}.vt{writing-mode:horizontal-tb;font-size:clamp(32px,9vw,48px)}
 .tb.b .vt{order:-1}.mcols .quote{grid-column:auto}.duo{grid-template-columns:1fr}.fcols{grid-template-columns:1fr}
 .intro{grid-template-columns:1fr;gap:36px}.intro-mark{height:34vh;opacity:.22;justify-self:start}
 .ph{aspect-ratio:4/5}.tb.b .ph{aspect-ratio:4/3}
}
.ph img{margin-top:-9%}.r45{aspect-ratio:4/5}.r43{aspect-ratio:4/3}.r32{aspect-ratio:3/2}
.nav .bk{border:1px solid currentColor;padding:8px 24px;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.nav .bk:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.duo p:nth-of-type(1){margin-bottom:8px;color:var(--soft)}
/* fixed-photo reveal: the photo stays still while the frame scrolls over it */
.ph.fx{overflow:visible;clip-path:inset(0)}
.ph.fx img{position:fixed;top:0;margin:0;height:100vh;height:100lvh;width:var(--w,100%);object-fit:cover;object-position:50% 35%}
@media(prefers-reduced-motion:reduce){.ph.fx{overflow:hidden;clip-path:none}.ph.fx img{position:static;height:118%;margin-top:-9%;width:100%}}
.home{display:flex;align-items:center;gap:16px;text-decoration:none}
.bn{font:500 17px/1.5 Poppins;letter-spacing:.42em;text-transform:uppercase;white-space:nowrap;opacity:var(--bn,1);transform:translate3d(calc((1 - var(--bn,1))*-16px),0,0)}
@media(max-width:900px){.bn{font-size:15px;letter-spacing:.38em}}
@media(min-width:901px) and (max-width:980px){.bn{display:none}}
/* breathing space so the fixed portrait has scrolled out of view when the page ends */
.gap{background:rgba(250,244,234,.62);height:max(0px,calc(100vh - var(--fh,420px) - var(--pb,160px) + 24px));height:max(0px,calc(100lvh - var(--fh,420px) - var(--pb,160px) + 24px))}

.ph.fx.fx-off img{visibility:hidden}
.note{font-size:15px;margin:-10px 0 30px}
/* sub pages */
.page-top{padding-top:clamp(130px,16vw,210px)}
.ptitle{display:flex;gap:clamp(24px,4vw,64px);align-items:flex-start;margin-bottom:clamp(50px,7vw,110px)}
.ptitle p{max-width:30em;font-size:clamp(18px,1.6vw,23px);line-height:1.6;align-self:flex-end}
.page-top .tb{margin-bottom:clamp(70px,9vw,140px)}
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px);margin-top:20px}
.how div{border-top:1px solid rgba(102,68,60,.35);padding-top:16px}.how h4{font-weight:300;font-size:21px;margin-bottom:6px}.how p{font-size:15.5px}
.tabs{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:34px}
.tabs button{background:none;border:1px solid var(--ink);color:var(--ink);font:500 11.5px Poppins;letter-spacing:.2em;text-transform:uppercase;padding:14px 26px;cursor:pointer;transition:.3s}
.tabs button[aria-selected=true],.tabs button:hover{background:var(--ink);color:var(--paper)}
.tabs button:focus-visible,.cal-open:focus-visible{outline:2px solid var(--sage);outline-offset:3px}
.cal{background:rgba(250,244,234,.7);padding:clamp(18px,3vw,40px);min-height:300px}
.cal iframe{display:block;width:100%;height:760px;border:0;background:#fff}
.cal-info{margin-bottom:22px}.cal-info h3{font-size:clamp(22px,2.2vw,30px);margin-bottom:6px}.cal-info p{color:var(--soft)}
.cal-fallback{padding:20px 0}.cal-fallback p{margin-bottom:20px;max-width:32em}
.cal-open{display:inline-block;margin-top:18px;font-size:14px}
.about-p{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:clamp(30px,6vw,110px);align-items:start}
.about-p .ph{position:sticky;top:110px}
.about-p p+p{margin-top:18px}.about-p h2{font-size:clamp(30px,4.2vw,62px);margin-bottom:22px}
.coelho{max-width:34em;margin:0 auto clamp(70px,9vw,140px);text-align:center}.coelho q{display:block;font-size:clamp(22px,2.6vw,36px);line-height:1.4;quotes:"“" "”"}.coelho p{margin-top:16px;color:var(--soft)}
@media(max-width:900px){.ptitle{flex-direction:column}.how{grid-template-columns:1fr}.about-p{grid-template-columns:1fr}.about-p .ph{position:relative;top:0}.cal iframe{height:680px}.ptitle .vt{writing-mode:horizontal-tb}}
[hidden]{display:none!important}
.vid{background:#2b1f1b center/cover no-repeat}.js .vid video{opacity:0;transition:opacity 1.4s ease}.js .vid.ready video{opacity:1}

/* ===== PHONE ONLY (desktop untouched) ===== */
@media(max-width:900px){
 /* slide-in menu from the right (works on every page) */
 .hdr.solid{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(250,244,234,.96)}
 .nav{display:flex;position:fixed;top:0;right:0;bottom:0;left:auto;width:min(82vw,340px);margin:0;background:var(--paper);color:var(--ink);flex-direction:column;justify-content:center;align-items:flex-start;padding:80px 34px 40px;gap:24px;font-size:26px;z-index:60;transform:translate3d(100%,0,0);visibility:hidden;transition:transform .5s var(--ease),visibility 0s linear .5s;box-shadow:-18px 0 40px rgba(40,26,22,.12)}
 .nav .bk{font-size:12.5px;margin-top:10px}
 .menu-open .nav{transform:none;visibility:visible;transition:transform .5s var(--ease),visibility 0s}
 .menu-open .menu-btn{position:relative;z-index:70;color:var(--ink)}
 body::after{content:"";position:fixed;inset:0;z-index:45;background:rgba(40,26,22,.38);opacity:0;pointer-events:none;transition:opacity .5s}
 body.menu-open::after{opacity:1;pointer-events:auto}
 body.menu-open{overflow:hidden}
 .menu-open .hdr{color:var(--ink)}

 /* ILM + Massage: each fits one phone screen, vertical title beside the text */
 .sec{padding-top:64px;padding-bottom:64px}
 .page-top{padding-top:96px}
 .tb{min-height:calc(100svh - 128px);align-content:center;column-gap:16px;row-gap:14px;margin-bottom:28px}
 .tb.a{grid-template-columns:auto minmax(0,1fr);padding:0}
 .tb.a .vt{grid-column:1;grid-row:1/span 2}
 .tb.a .ph{grid-column:2;grid-row:1;aspect-ratio:auto;height:24svh}
 .tb.a .txt{grid-column:2;grid-row:2}
 .tb.b{grid-template-columns:minmax(0,1fr) auto;padding:0}
 .tb.b .txt{grid-column:1}
 .tb.b .vt{grid-column:2;order:0}
 .tb.b .ph{grid-column:1;grid-row:1;aspect-ratio:auto;height:24svh;display:block}
 .tb.b .txt{grid-row:2}
 .tb.b .vt{grid-row:1/span 2}
 .tb .vt{font-size:clamp(28px,8vw,38px);writing-mode:vertical-rl;align-self:start}
 .tb h3{font-size:21px;margin-bottom:4px}.tb .tag{font-size:15px;margin-bottom:8px}
 .tb .txt p{font-size:14.5px;line-height:1.6}
 .tb .spec{margin:12px 0 10px;font-size:14px}.tb .spec p{margin:2px 0}
 .tb .note{font-size:13px;margin:0 0 16px}
 .tb .btn{padding:12px 24px}
 .tb .duo{grid-template-columns:1fr;gap:14px;margin-top:4px}.tb .duo h4{font-size:18px}.tb .duo p{font-size:14px;line-height:1.55}
 .tb .duo p:nth-of-type(1){margin-bottom:2px}
 .tb .cap{display:none}
 .intro{grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center;min-height:70svh}
 .intro-mark{height:34svh;opacity:.3;justify-self:start}
 .statement{font-size:clamp(22px,6.2vw,30px)}
 /* method */
 .mcols{grid-template-columns:minmax(0,1fr);row-gap:14px;padding:36px 26px 0}
 .mcols .vt{grid-row:auto;font-size:clamp(28px,8vw,38px);writing-mode:horizontal-tb}
 .mcols>div{grid-column:1}.mcols p{font-size:14.5px;line-height:1.6}.mcols p+p{margin-top:10px}
 .method{padding-bottom:56px}
 /* Meet Abigail: smaller portrait, whole section in one view */
 .about{gap:22px;min-height:0;padding-top:56px;padding-bottom:56px}
 .about .ph{aspect-ratio:auto;height:32svh}
 .about h2{margin-bottom:10px}
 .about .rv p{font-size:18px!important}
 /* About page portrait */
 .about-p .ph{aspect-ratio:auto;height:40svh}
 .about-p{gap:26px}
 /* treatments: choose / reserve / pay side by side */
 .how{grid-template-columns:repeat(3,1fr);gap:0}
 .how div{border-top:0;padding:4px 12px}.how div:first-child{padding-left:0}.how div:last-child{padding-right:0}.how div+div{border-left:1px solid rgba(102,68,60,.4)}
 .how h4{font-size:16px}.how p{font-size:13px;line-height:1.5}
 .ptitle{margin-bottom:24px}
}
.scale{background:rgba(250,244,234,.7);padding:clamp(20px,3vw,40px);margin-bottom:clamp(28px,4vw,50px)}
.scale h2{font-size:clamp(22px,2.4vw,32px);margin-bottom:10px}
.scale>p{max-width:46em;font-size:16px;line-height:1.7}.scale>p+p{margin-top:10px}
.scale dl{display:grid;grid-template-columns:auto 1fr;gap:6px 24px;margin-top:18px;font-size:16px}.scale dt{color:var(--soft)}
@media(max-width:900px){.scale>p,.scale dl{font-size:14.5px}}

@media(max-width:900px){.tb.b{row-gap:10px}.tb.b .duo{gap:10px}.tb.b .duo p{font-size:13.5px;line-height:1.5}.tb.b .duo h4{font-size:17px}.tb.b .note{margin-bottom:12px}.tb.b .spec{margin:8px 0 6px}}
.mo{display:none}@media(max-width:900px){.mo{display:inline}}
.lang a{text-decoration:none;opacity:.7}.lang a:hover{opacity:1;text-decoration:underline}.lang b{font-weight:500}
.lang-m{display:none}
@media(max-width:900px){.lang-m{display:block;margin-top:14px;font-size:14px;letter-spacing:.16em}.lang-m a{text-decoration:none;opacity:.7;margin-right:6px}.lang-m b{font-weight:500}}

.scale h3{font-weight:300;font-size:clamp(19px,1.8vw,24px);margin:22px 0 6px}
.tiers{list-style:none;margin:14px 0 4px;max-width:46em}
.tiers li{display:grid;grid-template-columns:minmax(0,15em) 1fr;gap:6px 24px;padding:12px 0;border-top:1px solid rgba(102,68,60,.3);font-size:16px;line-height:1.6}
.tiers li:last-child{border-bottom:1px solid rgba(102,68,60,.3)}.tiers b{font-weight:500}
@media(max-width:900px){.tiers li{grid-template-columns:1fr;font-size:14.5px;gap:2px}}
@media(max-width:900px){
 #group.sec{padding-top:56px;padding-bottom:40px}
 #group .gc{gap:12px}
 #group .vt{font-size:clamp(26px,7.4vw,34px)}
 #group .ph{aspect-ratio:auto;height:22svh}
 #group .txt p{font-size:14.5px;line-height:1.6}#group .txt .tag{font-size:16px;margin-bottom:6px}
 #group .btn{margin-top:14px;padding:12px 24px}
}

@media(min-width:901px){.gc{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;padding-right:3vw}.gc .txt{order:1}.gc .ph{order:2}.gc .vt{order:3}}
.gc .tag{font-size:19px;color:var(--soft);margin-bottom:12px}

/* smoother phone scrolling: static background sized to the large viewport, no per-frame effects */
@media(max-width:900px){
 html{scroll-behavior:auto}
 .bg{inset:0 0 auto 0;height:100vh;height:100lvh;transform:translateZ(0)!important;backface-visibility:hidden;will-change:transform}
 .px{will-change:auto;transform:none!important}
}
@supports (overflow:clip){body{overflow-x:clip}}
.gc .txt p+p{margin-top:14px}
