@font-face{font-family:Playfair;src:url(fonts/PlayfairDisplay.ttf) format("truetype");font-weight:400 700;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/Montserrat.ttf) format("truetype");font-weight:300 700;font-display:swap}
:root{--brown:#3f2018;--ink:#6a5049;--blush:#f7e4e1;--blush-2:#fbefec;--cream:#fcf8f4;--sand:#efe6df;--gold:#b0874f;--line:rgba(63,32,24,.14);--r:18px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:Montserrat,system-ui,sans-serif;font-weight:300;color:var(--ink);background:var(--cream);line-height:1.75;font-size:16px;padding-bottom:72px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:Playfair,Georgia,serif;font-weight:400;color:var(--brown);line-height:1.08;letter-spacing:-.01em;font-feature-settings:"lnum"}
h1{font-size:clamp(2.7rem,7.4vw,5.6rem)}
h2{font-size:clamp(2.1rem,4.6vw,3.6rem)}
h3{font-size:1.45rem;line-height:1.25}
em{font-style:italic;color:var(--gold)}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.eyebrow{font-size:.7rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.sec{padding:104px 0}
.center{text-align:center}
.lede{max-width:560px;margin:22px auto 0;font-size:1.05rem}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--brown);color:#fff;text-decoration:none;font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;padding:17px 32px;border:1px solid var(--brown);border-radius:999px;transition:background .3s,color .3s,transform .3s;white-space:nowrap}
.btn:hover{background:transparent;color:var(--brown);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--brown)}
.btn.ghost:hover{background:var(--brown);color:#fff}
.btn.light{background:#fff;border-color:#fff;color:var(--brown)}
.link{font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--brown);text-decoration:none;background:linear-gradient(var(--gold),var(--gold)) 0 100%/40% 1px no-repeat;padding-bottom:6px;transition:background-size .4s}
.link:hover{background-size:100% 1px}
.ph{background:linear-gradient(160deg,#f3e6e1,#ead9d2);display:flex;align-items:center;justify-content:center;text-align:center;color:#a9877b;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding:20px}
.ph-tag{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.85);backdrop-filter:blur(6px);color:#8e6d61;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;padding:6px 11px;border-radius:999px}
.fade{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s ease}
.fade.in{opacity:1;transform:none}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(252,248,244,.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);transition:box-shadow .3s}
.hdr.scrolled{box-shadow:0 1px 0 var(--line)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.hdr img{height:38px;width:auto}
.nav{display:none;gap:40px;font-size:.7rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase}
.nav a{text-decoration:none;opacity:.8;transition:opacity .2s}.nav a:hover{opacity:1}
.hdr .btn{display:none;padding:12px 24px}
.tel{font-size:.76rem;font-weight:500;letter-spacing:.06em;text-decoration:none;color:var(--brown)}
/* hero */
.hero{padding:28px 0 72px}
.hero-txt{padding:24px 0 36px}
.hero .loc{font-size:.7rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
.hero p.sub{margin:26px 0 36px;max-width:470px;font-size:1.08rem}
.ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero-img{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
/* first-time */
#first-time{padding:0 0 28px}
.ft{background:#fff;border-radius:var(--r);padding:36px 28px;display:grid;gap:24px;box-shadow:0 20px 60px -30px rgba(63,32,24,.22)}
.ft h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.ft p{margin-top:12px;max-width:560px}
/* specials */
#specials{padding:0 0 40px}
.sp{background:var(--blush);border-radius:var(--r);padding:44px 28px;display:grid;gap:30px}
.sp-head h2{font-size:clamp(2rem,3.6vw,2.8rem)}
.sp-head p{margin:14px 0 26px;font-size:.92rem;max-width:340px}
.sp-list{list-style:none}
.sp-list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);color:var(--brown)}
.sp-list li:first-child{padding-top:0}
.sp-name{font-weight:400}
.sp-name small{display:block;font-size:.8rem;color:var(--ink);font-weight:300}
.sp-price{font-family:Playfair,serif;font-size:1.45rem;white-space:nowrap;font-feature-settings:"lnum"}
.sp-price s{font-size:.95rem;opacity:.45;margin-right:10px}
/* cards */
.cards{display:grid;gap:48px;margin-top:64px}
.card .img{position:relative;aspect-ratio:4/5;overflow:hidden;margin-bottom:24px;border-radius:var(--r)}
.card .img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.card:hover .img img{transform:scale(1.04)}
.card p{font-size:.95rem;margin:10px 0 18px}
/* why */
.why{background:#fff}
.why .grid{display:grid;gap:56px}
.points{display:grid;gap:0}
.pt{padding:30px 0;border-top:1px solid var(--line)}
.pt:last-child{border-bottom:1px solid var(--line)}
.pt h3{font-size:clamp(1.4rem,2.4vw,1.85rem)}
.pt p{margin-top:10px;font-size:.98rem;max-width:520px}
/* reviews */
.reviews{background:var(--blush-2)}
.rating{display:inline-flex;flex-direction:column;align-items:center;gap:8px;margin:36px 0 34px}
.stars{font-size:1.5rem;letter-spacing:.2em;color:var(--gold)}
.fill{display:inline-block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;background:#fff;color:#8e6d61;padding:6px 12px;border-radius:999px;border:1px dashed #d7bfb5}
/* team */
.team{display:grid;gap:48px;margin-top:64px}
.mem .img{position:relative;aspect-ratio:4/5;overflow:hidden;margin-bottom:22px;border-radius:var(--r)}
.mem .img img{width:100%;height:100%;object-fit:cover;object-position:top}
.mem .role{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--gold);margin:8px 0 10px}
.mem p{font-size:.94rem}
/* visit */
.visit .grid{display:grid;gap:48px}
.visit dl{margin-top:30px}
.visit dt{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--gold);margin-top:26px}
.visit dd a{text-decoration:none}
.map{min-height:360px;position:relative;border-radius:var(--r)}
/* final */
.final{background:var(--brown);text-align:center;color:#ead8d1;border-radius:var(--r);margin:0 16px}
.final h2{color:#fff}.final .eyebrow{color:#e2bfa9}
.final .btn{margin-top:34px}
.final .btn.light:hover{background:transparent;color:#fff;border-color:#fff}
footer{padding:72px 0 40px;font-size:.84rem}
footer .grid{display:grid;gap:28px}
footer img{height:48px;width:auto}
footer a{text-decoration:none}
footer .small{margin-top:44px;font-size:.72rem;opacity:.7;padding-top:24px;border-top:1px solid var(--line)}
/* mobile book bar */
.bookbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;display:flex;gap:8px;padding:6px;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-radius:999px;box-shadow:0 10px 30px -10px rgba(63,32,24,.35)}
.bookbar a{flex:1;text-align:center;padding:14px 0;font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--brown);border-radius:999px}
.bookbar a.primary{background:var(--brown);color:#fff}
@media(min-width:900px){
 body{padding-bottom:0}
 .bookbar{display:none}
 .nav{display:flex}.hdr .btn{display:inline-flex}.tel{display:none}
 .hdr .wrap{height:84px}
 .hero{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;padding:40px 24px 120px}
 .hero-img{aspect-ratio:auto;height:min(80vh,760px)}
 .sec{padding:150px 0}
 .ft{grid-template-columns:1fr auto;align-items:center;padding:44px 56px}
 .sp{grid-template-columns:1fr 1.5fr;gap:80px;padding:72px 64px}
 .cards{grid-template-columns:repeat(4,1fr);gap:28px}
 .why .grid{grid-template-columns:1fr 1.3fr;gap:96px;align-items:start}
 .why .head{position:sticky;top:140px}
 .team{grid-template-columns:repeat(3,1fr);gap:32px}
 .visit .grid{grid-template-columns:1fr 1.2fr;align-items:stretch}
 .final{margin:0 24px}
 footer .grid{grid-template-columns:1.4fr 1fr 1fr 1fr}
}

.ft-pts{list-style:none;margin-top:16px;display:grid;gap:8px}
.ft-pts li{position:relative;padding-left:22px;font-size:.95rem;color:var(--brown)}
.ft-pts li:before{content:'';position:absolute;left:0;top:.6em;width:10px;height:1px;background:currentColor}
.card .card-sub{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold,#b08d57);margin:6px 0 0}

/* ===== INSTAGRAM STRIP (homepage) ===== */
.ig{padding:24px 0 96px}
.ig .center p.lede{max-width:520px;margin:0 auto}
.ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:40px 0 36px}
.ig-grid a{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;border-radius:6px}
.ig-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.ig-grid a:after{content:"";position:absolute;inset:0;background:rgba(63,32,24,0);transition:background .4s}
.ig-grid a:hover img{transform:scale(1.04)}.ig-grid a:hover:after{background:rgba(63,32,24,.12)}
.ig .ctas{justify-content:center}
.ig-btn svg,.ig-hdr svg{width:16px;height:16px;flex:none}
.ig-btn{display:inline-flex;align-items:center;gap:10px}
.ig-hdr{display:none;color:var(--brown);line-height:0}
@media(min-width:900px){.ig-grid{grid-template-columns:repeat(6,1fr);gap:10px}.ig-grid a{border-radius:var(--r)}.ig-hdr{display:inline-flex;margin-left:18px}.ig-hdr svg{width:18px;height:18px}}

/* ===== MOBILE: treatment tiles become text cards (photos hidden, not downloaded: <picture> source is desktop-only) ===== */
.card .m-only{display:none}
@media(max-width:768px){
#treatments .cards{gap:12px;margin-top:40px}
#treatments .card{position:relative;background:var(--blush-2);border-radius:var(--r);padding:22px 64px 22px 24px;transition:background .3s}
#treatments .card:active{background:#f3dcd7}
#treatments .card .img,#treatments .card>p:not(.card-sub){display:none}
#treatments .card h3{font-size:1.3rem;margin:0}
#treatments .card .card-sub,#treatments .card .m-only{display:block;margin:6px 0 0;font-size:.64rem}
#treatments .card .link{position:static;display:block;height:0;font-size:0;line-height:0;background:none;padding:0}
#treatments .card .link:after{content:"";position:absolute;inset:0;border-radius:var(--r)}
#treatments .card:after{content:"";position:absolute;right:24px;top:50%;width:9px;height:9px;border-top:1.5px solid var(--gold);border-right:1.5px solid var(--gold);transform:translateY(-50%) rotate(45deg);pointer-events:none}
}
@media(max-width:768px){.ig-grid a:nth-child(n+4){display:none}}

/* ===== STAGE 1 REFINEMENT (homepage only, scoped to body.home) — editorial, warm neutrals, less pink ===== */
.home{--warm:#f4ede6;--warm-2:#f8f3ee}
.home h1{font-size:clamp(2.5rem,6.2vw,4.7rem);line-height:1.04;letter-spacing:-.015em}
.home h1 em{display:block}
.home .hero .loc{letter-spacing:.3em}
.home .hero p.sub{max-width:500px;font-size:1.04rem;line-height:1.85}
.home .hero-trust{display:inline-block;margin-top:26px;font-size:.78rem;letter-spacing:.06em;color:var(--brown);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:4px}
.home .hero-trust span{color:var(--gold);letter-spacing:.12em;margin-right:6px}
.home .hero-trust:hover{border-color:var(--gold)}
.home .eyebrow{letter-spacing:.34em}
/* Method */
.home .method{padding:96px 0 104px;background:var(--warm-2);text-align:center}
.home .method .rule{display:block;width:48px;height:1px;background:var(--gold);margin:30px auto}
.home .method-txt{font-family:Playfair,Georgia,serif;font-size:clamp(1.25rem,2.3vw,1.7rem);line-height:1.6;color:var(--brown);max-width:780px;margin:0 auto;font-weight:400}
/* Instagram spacing */
.home .ig{padding:16px 0 88px}
/* First-timer path */
.home .start{padding:0 0 24px}
.home .start-box{border:1px solid var(--line);border-radius:var(--r);padding:40px 28px;display:grid;gap:26px;background:#fff}
.home .start-box h2{font-size:clamp(1.8rem,3.2vw,2.5rem)}
.home .start-box p:not(.eyebrow){margin-top:14px;max-width:560px}
.home .start-ctas{display:flex;flex-wrap:wrap;gap:12px}
/* Results + reviews */
.home .results{background:var(--warm)}
.home .res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:48px 0 0}
.home .res-grid a{position:relative;display:block;border-radius:10px;overflow:hidden;aspect-ratio:4/5;background:#fff;text-decoration:none}
.home .res-grid img{width:100%;height:100%;object-fit:cover}
.home .res-grid span{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 10px;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:linear-gradient(transparent,rgba(40,20,14,.55));text-align:center}
.home .reviews-strip{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-top:56px;padding-top:44px;border-top:1px solid var(--line)}
.home .reviews-strip .rating-text{color:var(--brown)}
.home .reviews-strip strong{font-weight:500}
.home .reviews-strip .btn{margin-top:14px}
/* Why: warm neutral instead of stark white */
.home .why{background:#fff}
/* Founder */
.home .founder{display:grid;gap:36px;align-items:center}
.home .founder .img{border-radius:var(--r);overflow:hidden;aspect-ratio:4/5}
.home .founder .img img{width:100%;height:100%;object-fit:cover;object-position:top}
.home .founder h2{font-size:clamp(2.2rem,4.4vw,3.4rem)}
.home .founder .role{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--gold);margin:12px 0 22px}
.home .founder p:not(.eyebrow):not(.role){max-width:500px;margin-top:14px}
.home .team2{max-width:820px;margin-left:auto;margin-right:auto}
/* Less pink: mobile treatment cards in warm neutral */
@media(max-width:768px){.home #treatments .card{background:var(--warm)}.home #treatments .card:active{background:#ece2d9}.home .res-grid{gap:6px}.home .res-grid span{font-size:.5rem;letter-spacing:.12em;padding:18px 4px 8px}.home .method{padding:72px 0 80px}}
@media(min-width:900px){
.home .start-box{grid-template-columns:1.4fr auto;align-items:center;padding:48px 56px}
.home .start-ctas{flex-direction:column}
.home .founder{grid-template-columns:.9fr 1fr;gap:96px}
.home .team2{grid-template-columns:repeat(2,1fr)}
.home .res-grid{gap:20px;max-width:1000px;margin-left:auto;margin-right:auto}
.home .res-grid a{border-radius:var(--r)}
.home .res-grid span{font-size:.66rem}
}
.home .sp{background:var(--warm)}
@media(min-width:900px){.home h1{font-size:clamp(2.6rem,4.4vw,4rem)}}
@media(max-width:768px){.home .res-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:72%;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-left:-24px;margin-right:-24px;padding:0 24px 6px;scrollbar-width:none}.home .res-grid::-webkit-scrollbar{display:none}.home .res-grid a{scroll-snap-align:center}.home .res-grid span{font-size:.6rem;letter-spacing:.16em}}

/* merged start + first-time offer */
.home .start{padding:8px 0 40px}
.home .start-box{grid-template-columns:none;gap:30px}
.home .start-offer{border-top:1px solid var(--line);padding-top:28px}
.home .start-offer .offer-tag{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:500}
.home .offer-name{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:8px}
.home .start-offer h3{font-size:clamp(1.35rem,2.2vw,1.7rem)}
.home .offer-price{font-family:Playfair,serif;font-size:1.9rem;color:var(--brown);font-feature-settings:"lnum";white-space:nowrap}
.home .start-offer p:not(.offer-tag){margin-top:12px;max-width:560px}
.home .start-offer .start-ctas{margin-top:26px;flex-direction:row}
@media(min-width:900px){.home .start-box{grid-template-columns:1fr 1.15fr;gap:80px;align-items:start;padding:60px 64px}.home .start-offer{border-top:0;border-left:1px solid var(--line);padding:0 0 0 64px}.home .start-head h2{font-size:clamp(2.2rem,3.6vw,3rem)}.home .start-head p{margin-top:18px;max-width:340px}}
/* hero side-margin fix (mobile): .hero padding shorthand was overriding .wrap side padding */
@media(max-width:899px){.hero{padding-left:24px;padding-right:24px}}
