/* ============================================================
   ROSELUXE BEAUTY LASER — site system v3 (Nordic minimal)
   Brand sheet edition 02: forest / sage / cream / muted gold
   ============================================================ */
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/playfair-display-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/playfair-display-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Lato";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/lato-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Lato";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/lato-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Allura";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/allura-latin-400-normal.woff2) format("woff2")}

:root{
  --forest:#0F3D2E;
  --forest-deep:#0A2C21;
  --sage:#869F7E;
  --sage-soft:#DCE5D7;
  --sage-mist:#EEF2EA;
  --cream:#F8F4EA;
  --cream-2:#F1EEE7;
  --page:#FFFFFF;
  --paper:#F9F8F5;
  --gold:#B89B62;
  --gold-deep:#9A7F4A;
  --ink:#1A1A18;
  --ink-2:#4D514B;
  --ink-3:#7A7E76;
  --line:rgba(26,26,24,.12);
  --line-strong:rgba(26,26,24,.28);
  --line-light:rgba(248,244,234,.18);
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Lato","Helvetica Neue",Arial,sans-serif;
  --script:"Allura","Brush Script MT",cursive;
  --maxw:1180px;
  --gutter:clamp(20px,4vw,48px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --tray:0px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--page);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.7;font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;padding-bottom:var(--tray);
}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a,button,summary,label{-webkit-tap-highlight-color:transparent}
input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--sage-soft);color:var(--ink)}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.narrow{max-width:760px}
.skip{position:absolute;left:-999px;top:8px;background:var(--forest);color:#fff;padding:10px 16px;z-index:999}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- type ---------- */
h1,h2,h3,.serif{font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.005em;color:var(--ink)}
h1{font-size:clamp(38px,5.4vw,66px);line-height:1.04}
h2{font-size:clamp(30px,3.8vw,46px)}
h3{font-size:clamp(21px,2.2vw,26px);line-height:1.2}
h4{font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:.02em}
em.ac,.ac{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--gold)}
.on-green em.ac,.on-green .ac{color:var(--gold)}
.script{font-family:var(--script);font-weight:400;letter-spacing:0;line-height:1;color:var(--gold)}
.eyebrow{display:block;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--forest)}
.on-green .eyebrow{color:var(--gold)}
.lede{font-size:clamp(17px,1.5vw,20px);line-height:1.65;color:var(--ink-2);max-width:62ch}
.on-green .lede{color:rgba(248,244,234,.84)}
.muted{color:var(--ink-3)}
.small{font-size:14px}
p+p{margin-top:1em}
.sec-head{max-width:700px}
.sec-head .eyebrow{margin-bottom:18px}
.sec-head h2{margin-bottom:16px}
.sec-head.center{text-align:center;margin-left:auto;margin-right:auto}
.sec-head.center .lede{margin-left:auto;margin-right:auto}
.rule{height:1px;background:var(--line);border:0}
.gold-rule{width:48px;height:1px;background:var(--gold);border:0;margin:22px 0}
.center .gold-rule{margin-left:auto;margin-right:auto}

/* ---------- sections ---------- */
.section{padding:clamp(64px,9vw,120px) 0}
.section.tight{padding:clamp(44px,6vw,80px) 0}
.section.flush-top{padding-top:0}
.bg-paper{background:var(--paper)}
.bg-cream2{background:var(--cream-2)}
.bg-mist{background:var(--sage-mist)}
.on-green{background:var(--forest);color:var(--cream)}
.on-green h1,.on-green h2,.on-green h3{color:var(--cream)}
.on-green .rule{background:var(--line-light)}
.hairline-top{border-top:1px solid var(--line)}
.hairline-bottom{border-bottom:1px solid var(--line)}

/* ---------- leaves ---------- */
.leaf-bg{position:relative;overflow:hidden;isolation:isolate}
.leaf-bg::before,.leaf-bg::after{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  background-repeat:no-repeat;background-size:contain;opacity:.16;
  filter:blur(1.5px);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-170 -20 430 600'><path d='M0 31Q-48 44 -75 87Q-26 74 0 31ZM2 63Q38 112 98 124Q62 75 2 63ZM4 95Q-62 120 -95 182Q-29 158 4 95ZM7 127Q56 188 133 202Q84 141 7 127ZM11 159Q-64 195 -97 273Q-21 236 11 159ZM16 191Q72 258 159 271Q103 204 16 191ZM22 223Q-53 268 -81 352Q-5 307 22 223ZM29 255Q86 320 172 331Q115 266 29 255ZM37 287Q-30 335 -49 415Q18 367 37 287ZM46 319Q97 375 173 383Q122 326 46 319ZM55 351Q3 394 -6 462Q46 418 55 351ZM66 383Q106 425 164 429Q124 387 66 383ZM77 415Q44 447 41 494Q75 461 77 415ZM90 446Q113 472 148 473Q124 447 90 446ZM103 478Q88 494 89 516Q105 500 103 478ZM108 489Q111 526 136 553Q133 516 108 489Z' fill='%23000'/><path d='M0 0L0 26L1 52L3 78L5 104L8 130L11 156L15 182L19 208L25 234L30 260L37 286L44 312L51 338L60 364L68 390L78 416L88 442L99 468L110 494L122 520' fill='none' stroke='%23000' stroke-width='5' stroke-linecap='round'/></svg>");
}
.leaf-bg.on-green::before,.leaf-bg.on-green::after{opacity:.22;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-170 -20 430 600'><path d='M0 31Q-48 44 -75 87Q-26 74 0 31ZM2 63Q38 112 98 124Q62 75 2 63ZM4 95Q-62 120 -95 182Q-29 158 4 95ZM7 127Q56 188 133 202Q84 141 7 127ZM11 159Q-64 195 -97 273Q-21 236 11 159ZM16 191Q72 258 159 271Q103 204 16 191ZM22 223Q-53 268 -81 352Q-5 307 22 223ZM29 255Q86 320 172 331Q115 266 29 255ZM37 287Q-30 335 -49 415Q18 367 37 287ZM46 319Q97 375 173 383Q122 326 46 319ZM55 351Q3 394 -6 462Q46 418 55 351ZM66 383Q106 425 164 429Q124 387 66 383ZM77 415Q44 447 41 494Q75 461 77 415ZM90 446Q113 472 148 473Q124 447 90 446ZM103 478Q88 494 89 516Q105 500 103 478ZM108 489Q111 526 136 553Q133 516 108 489Z' fill='%23061F17'/><path d='M0 0L0 26L1 52L3 78L5 104L8 130L11 156L15 182L19 208L25 234L30 260L37 286L44 312L51 338L60 364L68 390L78 416L88 442L99 468L110 494L122 520' fill='none' stroke='%23061F17' stroke-width='5' stroke-linecap='round'/></svg>")}
.leaf-bg::before{width:min(62vw,560px);aspect-ratio:400/560;right:-14%;top:-18%;transform:rotate(28deg)}
.leaf-bg::after{width:min(44vw,400px);aspect-ratio:400/560;left:-16%;bottom:-26%;transform:rotate(-142deg) scaleX(-1)}
.leaf-bg.leaf-soft::before{opacity:.09}
.leaf-bg.leaf-soft::after{opacity:.07}
.leaf-icon{width:22px;height:22px;stroke:var(--sage);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.on-green .leaf-icon{stroke:var(--gold)}
.frond{display:inline-block;width:40px;height:16px;vertical-align:middle;margin-right:10px;color:var(--sage)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  padding:16px 26px;border:1px solid var(--forest);color:var(--forest);background:transparent;
  min-height:48px;line-height:1;white-space:nowrap;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);
}
.arr{width:18px;height:10px;flex:none;transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn:hover{background:var(--forest);color:var(--cream)}
.btn.solid{background:var(--forest);color:var(--cream)}
.btn.solid:hover{background:var(--forest-deep);border-color:var(--forest-deep)}
.btn.gold{border-color:var(--gold);color:var(--gold-deep)}
.btn.gold:hover{background:var(--gold);color:#fff}
.on-green .btn{border-color:rgba(248,244,234,.55);color:var(--cream)}
.on-green .btn:hover{background:var(--cream);color:var(--forest);border-color:var(--cream)}
.on-green .btn.solid{background:var(--gold);border-color:var(--gold);color:#fff}
.on-green .btn.solid:hover{background:var(--cream);color:var(--forest);border-color:var(--cream)}
.btn.sm{padding:12px 18px;font-size:11px;min-height:40px}
.btn svg.wa{width:16px;height:16px;fill:currentColor}
.textlink{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--forest);padding-bottom:4px;border-bottom:1px solid var(--gold);transition:gap .25s var(--ease)}
.textlink:hover{gap:16px}
.textlink .arr{width:16px}
.on-green .textlink{color:var(--cream)}
.actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s}
.site-header.scrolled{border-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.brand{display:flex;align-items:center;flex:none}
.logo{display:block;width:168px;aspect-ratio:1034/334;background:var(--gold);-webkit-mask:url(logo.svg) no-repeat center/contain;mask:url(logo.svg) no-repeat center/contain}
.logo.cream{background:var(--cream)}
.monogram{display:block;width:40px;aspect-ratio:360/334;background:var(--gold);-webkit-mask:url(monogram.svg) no-repeat center/contain;mask:url(monogram.svg) no-repeat center/contain}
.nav-links{display:flex;align-items:center;gap:26px;list-style:none}
.nav-links a{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);position:relative;padding:6px 0;transition:color .2s}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .3s var(--ease)}
.nav-links a:hover,.nav-links a.active{color:var(--forest)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-has-menu{position:relative;display:inline-block}
.rl-navmenu{position:absolute;left:-18px;top:100%;padding-top:14px;min-width:230px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.25s var(--ease)}
.nav-has-menu:hover .rl-navmenu,.nav-has-menu:focus-within .rl-navmenu{opacity:1;visibility:visible;transform:none}
.rl-navmenu-inner,.rl-navmenu>.rl-navmenu-item:first-child{border-top:1px solid var(--gold)}
.rl-navmenu-item{display:block;background:var(--page);padding:13px 18px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--line);border-left:1px solid var(--line);border-right:1px solid var(--line)}
.rl-navmenu-item::after{display:none}
.rl-navmenu-item:hover{background:var(--sage-mist)}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:6px;margin-right:-10px}
.nav-toggle span{display:block;width:26px;height:1.5px;background:var(--forest);transition:.3s var(--ease)}
.site-header.open .nav-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.site-header.open .nav-toggle span:nth-child(2){opacity:0}
.site-header.open .nav-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
@media (max-width:1040px){
  .site-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--page)}
  .nav{height:68px}
  .logo{width:148px}
  .nav-toggle{display:flex}
  .nav-cta .btn{padding:11px 14px;font-size:11px;min-height:40px}
  .nav-cta .btn .arr,.nav-cta .btn .more{display:none}
  .nav-links{position:fixed;inset:68px 0 0 0;background:var(--page);flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;padding:14px var(--gutter) 40px;overflow:auto;
    opacity:0;visibility:hidden;transform:translateY(-6px);transition:.3s var(--ease)}
  .site-header.open .nav-links{opacity:1;visibility:visible;transform:none}
  .nav-links li{width:100%;border-bottom:1px solid var(--line)}
  .nav-links>li>a,.nav-links>li>.nav-has-menu>a{display:block;padding:18px 0;font-family:var(--serif);font-size:26px;font-weight:400;letter-spacing:0;text-transform:none}
  .nav-links a::after{display:none}
  .nav-has-menu{display:block}
  .rl-navmenu{position:static;opacity:1;visibility:visible;transform:none;padding:0 0 14px 0;min-width:0}
  .rl-navmenu-item{background:transparent;border:0;padding:8px 0 8px 18px;font-size:13px;letter-spacing:.14em;color:var(--ink-2)}
  .rl-navmenu>.rl-navmenu-item:first-child{border-top:0}
}

/* ---------- hero (home) ---------- */
.hero{display:grid;grid-template-columns:1fr 1fr;min-height:min(86vh,760px);background:var(--forest);color:var(--cream)}
.hero-copy{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(56px,8vw,110px) clamp(24px,4vw,56px) clamp(56px,8vw,110px) max(var(--gutter),calc((100vw - var(--maxw))/2 + var(--gutter)))}
.hero-copy .eyebrow{color:var(--gold);margin-bottom:26px}
.hero-copy h1{color:var(--cream);max-width:12ch}
.hero-copy .gold-rule{margin:28px 0 24px}
.hero-copy .lede{color:rgba(248,244,234,.84);max-width:40ch}
.hero-copy .actions{margin-top:36px}
.hero-script{position:absolute;right:clamp(20px,5vw,70px);bottom:30px;font-size:clamp(28px,3vw,40px);color:rgba(184,155,98,.9);transform:rotate(-4deg)}
.hero-media{position:relative;min-height:420px;overflow:hidden;background:#E9DFD3}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 30%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,61,46,.28),rgba(15,61,46,0) 28%)}
@media (max-width:900px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-media{order:-1;aspect-ratio:1/1;min-height:0;max-height:70vh}
  .hero-media img{object-position:60% 25%}
  .hero-media::after{background:linear-gradient(0deg,rgba(15,61,46,.5),rgba(15,61,46,0) 36%)}
  .hero-copy{padding:48px var(--gutter) 60px}
  .hero-copy h1{max-width:none}
  .hero-script{position:static;transform:none;margin-top:28px;font-size:34px}
}

.hero.leaf-bg::before{width:min(40vw,420px);right:auto;left:26%;top:-22%;transform:rotate(38deg);opacity:.26}
.hero.leaf-bg::after{width:min(36vw,360px);left:-10%;bottom:-20%;opacity:.22}
@media (max-width:900px){.hero.leaf-bg::before{left:auto;right:-10%;top:auto;bottom:-12%;width:60vw;transform:rotate(-30deg) scaleX(-1)}.hero.leaf-bg::after{display:none}}

/* ---------- page header (inner) ---------- */
.pagehead{padding:clamp(56px,8vw,104px) 0 clamp(36px,5vw,64px)}
.pagehead .crumb{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:28px}
.pagehead .crumb:hover{color:var(--forest)}
.pagehead .eyebrow{margin-bottom:20px}
.pagehead h1{max-width:16ch}
.pagehead .lede{margin-top:22px}
.pagehead.split{padding-bottom:0}
.split-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,90px);align-items:center}
.split-grid .pic{aspect-ratio:4/5;overflow:hidden;background:var(--cream-2)}
.split-grid .pic img{width:100%;height:100%;object-fit:cover}
.split-grid .pic.landscape{aspect-ratio:5/4}
@media (max-width:900px){.split-grid{grid-template-columns:1fr;gap:36px}.split-grid .pic{aspect-ratio:4/3}}

/* ---------- treatments grid ---------- */
.treat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(18px,2.4vw,32px)}
.treat-card{display:flex;flex-direction:column;color:inherit}
.treat-card .pic{aspect-ratio:4/5;overflow:hidden;background:var(--cream-2);margin-bottom:20px}
.treat-card .pic img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.treat-card:hover .pic img{transform:scale(1.035)}
.treat-card h3,.treat-card h2{font-size:21px;margin-bottom:8px;line-height:1.2}
.treat-card p{font-size:14.5px;color:var(--ink-2);line-height:1.6;flex:1}
.treat-card .from{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--forest)}
.treat-card .from b{font-family:var(--serif);font-weight:400;font-size:19px;letter-spacing:0;text-transform:none;color:var(--ink)}
.treat-card .from s{color:var(--ink-3);font-weight:400;font-family:var(--sans);font-size:12px;margin-right:6px}
@media (max-width:1100px){.treat-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.treat-grid{grid-template-columns:repeat(2,1fr);gap:28px 16px}.treat-card h3,.treat-card h2{font-size:18px;flex:1}.treat-card p{display:none}.treat-card .from{flex-direction:column;align-items:flex-start;gap:2px}}
/* legacy class names kept for admin-injected markup */
.svc-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(18px,2.4vw,32px)}
.svc-card{display:flex;flex-direction:column;color:inherit}
.svc-card .svc-thumb{aspect-ratio:4/5;overflow:hidden;background:var(--cream-2);margin-bottom:20px}
.svc-card .svc-thumb img{width:100%;height:100%;object-fit:cover}
.svc-card h3{font-size:21px;margin-bottom:8px}.svc-card p{font-size:14.5px;color:var(--ink-2);flex:1}
.svc-card .svc-from{display:block;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--forest)}
@media (max-width:1100px){.svc-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.svc-grid{grid-template-columns:repeat(2,1fr)}}

/* ---------- values row ---------- */
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.values>div{padding:36px 28px 36px 0;border-right:1px solid var(--line)}
.values>div:last-child{border-right:0}
.values>div+div{padding-left:28px}
.values .leaf-icon{margin-bottom:18px}
.values h3{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--forest);margin-bottom:10px}
.values p{font-size:14.5px;color:var(--ink-2);line-height:1.6}
@media (max-width:860px){.values{grid-template-columns:1fr 1fr}.values>div{padding:26px 20px 26px 0}.values>div:nth-child(2){border-right:0}.values>div:nth-child(n+3){border-top:1px solid var(--line)}.values>div:nth-child(3){padding-left:0}}
@media (max-width:480px){.values>div{padding:20px 14px 20px 0}.values>div+div{padding-left:14px}.values h3{font-size:11px;letter-spacing:.16em}.values p{font-size:13.5px}}

/* ---------- offers band ---------- */
.offers{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.offers>div{padding:34px 36px 34px 0;border-right:1px solid var(--line-light)}
.offers>div+div{padding-left:36px}
.offers>div:last-child{border-right:0}
.offers .eyebrow{margin-bottom:14px}
.offers .big{font-family:var(--serif);font-size:clamp(28px,3vw,40px);line-height:1.05;color:var(--cream)}
.offers .big s{color:rgba(248,244,234,.45);font-size:.55em;margin-right:8px;font-family:var(--sans);text-decoration-thickness:1px}
.offers p{margin-top:10px;font-size:14.5px;color:rgba(248,244,234,.78)}
@media (max-width:860px){.offers{grid-template-columns:1fr}.offers>div{border-right:0;border-bottom:1px solid var(--line-light);padding:26px 0!important}.offers>div:last-child{border-bottom:0}}

/* ---------- feature split ---------- */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,7vw,110px);align-items:center}
.feature .pic{aspect-ratio:4/5;overflow:hidden;background:var(--cream-2)}
.feature .pic.wide{aspect-ratio:5/4}
.feature .pic img{width:100%;height:100%;object-fit:cover}
.feature .copy .eyebrow{margin-bottom:18px}
.feature .copy h2{margin-bottom:22px}
.feature .copy p{color:var(--ink-2)}
.feature .copy .actions,.feature .copy .textlink{margin-top:30px}
.feature.flip .pic{order:2}
@media (max-width:860px){.feature{grid-template-columns:1fr;gap:32px}.feature.flip .pic{order:0}.feature .pic{aspect-ratio:4/3}}

/* ---------- reviews ---------- */
.rating{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.rating .num{font-family:var(--serif);font-size:44px;line-height:1}
.rating .g-logo{height:30px;width:auto;margin-right:4px}
.rating .stars{color:var(--gold);letter-spacing:.14em;font-size:15px}
.rating a{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:3px}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);margin-top:48px}
.quotes blockquote{border-top:1px solid var(--line);padding-top:26px}
.quotes blockquote p{font-family:var(--serif);font-size:19px;line-height:1.5;color:var(--ink)}
.quotes blockquote p::before{content:"\201C";color:var(--gold);margin-right:2px}
.quotes blockquote p::after{content:"\201D";color:var(--gold)}
.quotes cite{display:block;margin-top:16px;font-style:normal;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
@media (max-width:860px){.quotes{grid-template-columns:1fr;gap:20px}}

/* ---------- blog cards ---------- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,44px) clamp(18px,2.6vw,32px)}
.post-card{display:flex;flex-direction:column;color:inherit}
.post-card .post-img{aspect-ratio:3/2;overflow:hidden;background:var(--cream-2);margin-bottom:18px}
.post-card .post-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.post-card:hover .post-img img{transform:scale(1.03)}
.post-cat{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:10px}
.post-card h3{font-size:22px;line-height:1.25;margin-bottom:10px}
.post-card p{font-size:14.5px;color:var(--ink-2);line-height:1.6;flex:1}
.post-meta{display:block;margin-top:14px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
@media (max-width:900px){.post-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.post-grid{grid-template-columns:1fr}}
.feat-post{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,5vw,64px);align-items:center;color:inherit;margin-bottom:clamp(48px,7vw,90px)}
.feat-post .feat-img{aspect-ratio:3/2;overflow:hidden;background:var(--cream-2)}
.feat-post .feat-img img{width:100%;height:100%;object-fit:cover}
.feat-post h2{margin:6px 0 16px}
.feat-post p{color:var(--ink-2)}
@media (max-width:860px){.feat-post{grid-template-columns:1fr;gap:22px}}
.filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 40px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.chip-f{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:9px 14px;border:1px solid var(--line-strong);color:var(--ink-2);transition:.2s}
.chip-f:hover{border-color:var(--forest);color:var(--forest)}
.chip-f.active{background:var(--forest);border-color:var(--forest);color:var(--cream)}

/* ---------- article ---------- */
.article-head{padding:clamp(48px,7vw,96px) 0 40px}
.crumbs{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:28px}
.crumbs a:hover{color:var(--forest)}
.article-head h1{font-size:clamp(34px,4.6vw,58px);max-width:20ch}
.article-dek{margin-top:22px;font-size:clamp(17px,1.5vw,20px);color:var(--ink-2);max-width:60ch}
.article-meta{margin-top:24px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.article-meta span+span::before{content:"\00B7";margin:0 10px}
.article-fig{aspect-ratio:16/8;overflow:hidden;background:var(--cream-2)}
.article-fig img{width:100%;height:100%;object-fit:cover}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,6vw,80px);padding-top:clamp(44px,6vw,72px);padding-bottom:clamp(44px,6vw,72px)}
.prose{font-size:18px;line-height:1.75;color:var(--ink-2);max-width:68ch}
.prose h2{font-size:clamp(24px,2.6vw,32px);color:var(--ink);margin:1.9em 0 .7em}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.6em 0 .6em;color:var(--ink)}
.prose p{margin:0 0 1.2em}
.prose ul,.prose ol{margin:0 0 1.2em 1.2em}
.prose li{margin-bottom:.4em}
.prose a{border-bottom:1px solid var(--gold)}
.prose strong{color:var(--ink);font-weight:700}
.prose blockquote{border-left:1px solid var(--gold);padding-left:22px;font-family:var(--serif);font-size:1.15em;color:var(--ink);margin:1.6em 0}
.aside-card{position:sticky;top:100px;border:1px solid var(--line);padding:30px 28px;background:var(--page)}
.aside-card .eyebrow{margin-bottom:14px}
.aside-card h3{margin-bottom:10px}
.aside-card p{font-size:14.5px;color:var(--ink-2);margin-bottom:22px}
.aside-card .btn{width:100%}
.aside-card .textlink{margin-top:20px;font-size:11px;white-space:normal;line-height:1.6;max-width:100%}
@media (max-width:900px){.article-grid{grid-template-columns:1fr}.aside-card{position:static}}
.faq{max-width:760px}
.faq h2{margin-bottom:22px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 0;font-family:var(--serif);font-size:19px;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-size:22px;color:var(--gold);flex:none;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 22px;color:var(--ink-2);max-width:62ch}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,32px)}
@media (max-width:760px){.rel-grid{grid-template-columns:1fr}}

/* ---------- price lists ---------- */
.price-note{font-size:13px;color:var(--ink-3);letter-spacing:.04em}
.price-group{margin-top:clamp(36px,5vw,56px)}
.price-group>h3{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line-strong);margin-bottom:4px}
.price-group>h3 span{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.price-list{list-style:none}
.prow{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.prow .pick{display:contents;cursor:pointer}
.pick-box{position:absolute;opacity:0;width:1px;height:1px}
.tick{width:20px;height:20px;border:1px solid var(--line-strong);display:grid;place-items:center;transition:.2s;flex:none}
.tick::after{content:"";width:10px;height:10px;background:var(--forest);transform:scale(0);transition:transform .2s var(--ease)}
.pick-box:checked~.tick{border-color:var(--forest)}
.pick-box:checked~.tick::after{transform:scale(1)}
.pick-box:focus-visible~.tick{outline:2px solid var(--gold);outline-offset:3px}
.rname{font-size:17px;color:var(--ink);line-height:1.35}
.rname .rdesc{display:block;font-size:13.5px;color:var(--ink-3);margin-top:2px}
.rprice{font-family:var(--serif);font-size:19px;color:var(--ink);white-space:nowrap;text-align:right}
.rprice small{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-top:2px}
.rprice s{display:block;font-family:var(--sans);font-size:12px;color:var(--ink-3);text-decoration-thickness:1px}
.prow.special .rprice{color:var(--forest)}
.prow.special .rprice b{font-weight:400;font-size:26px}
.pills{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.pill{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--gold);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.pill .leaf-icon{width:16px;height:16px;stroke:var(--gold)}
.pkg-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,36px);margin-top:28px}
.pkg-card{border:1px solid var(--line);padding:30px 28px;background:var(--page)}
.pkg-card .who{display:block;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:14px}
.pkg-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:16px}
.pkg-line+p{font-size:14px;color:var(--ink-2);padding-bottom:16px;border-bottom:1px solid var(--line)}
.pkg-line+p:last-child{border-bottom:0;padding-bottom:0}
.pkg-line h4{font-family:var(--serif);font-weight:400;font-size:20px;letter-spacing:0}
.pkg-line .pkg-price{font-family:var(--serif);font-size:20px}
@media (max-width:760px){.pkg-grid{grid-template-columns:1fr}}
.steps{list-style:none;counter-reset:s;display:grid;gap:22px;margin-top:28px}
.steps li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start}
.steps li::before{counter-increment:s;content:"0" counter(s);font-family:var(--serif);font-size:28px;color:var(--gold);line-height:1}
.steps strong{display:block;font-size:16px;margin-bottom:4px;color:var(--ink)}
.steps p{font-size:15px;color:var(--ink-2)}
.cross{display:flex;gap:12px;flex-wrap:wrap}
.cross a{padding:12px 18px;border:1px solid var(--line-strong);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);transition:.2s}
.cross a:hover{border-color:var(--forest);color:var(--forest)}


.price-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,5vw,72px)}
@media (max-width:760px){.price-cols{grid-template-columns:1fr}.price-cols .price-group{margin-top:clamp(36px,5vw,56px)!important}}
.overview{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,64px) clamp(28px,5vw,72px);margin-top:clamp(36px,5vw,56px)}
.ogroup h3{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding-bottom:12px;border-bottom:1px solid var(--line-strong)}
.ogroup h3 a:hover{color:var(--forest)}
.ogroup h3 span{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);text-align:right}
.ogroup ul{list-style:none}
.orow{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.orow small{display:block;font-size:12.5px;color:var(--ink-3)}
.orow .op{font-family:var(--serif);font-size:17px;white-space:nowrap}
.orow .op s{font-family:var(--sans);font-size:12px;color:var(--ink-3);margin-right:4px}
.ogroup .textlink{margin-top:18px;font-size:11px}
@media (max-width:760px){.overview{grid-template-columns:1fr}}

/* ---------- booking tray + modal ---------- */
.book-tray{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--forest);color:var(--cream);box-shadow:0 -10px 30px rgba(10,44,33,.18);transform:translateY(100%);visibility:hidden;transition:transform .35s var(--ease),visibility 0s .35s}
.book-tray.on{transform:none;visibility:visible;transition:transform .35s var(--ease)}
.bt-inner{max-width:var(--maxw);margin:0 auto;padding:14px var(--gutter);display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.bt-count{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.bt-names{flex:1;min-width:160px;font-size:14px;color:rgba(248,244,234,.86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bt-clear{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(248,244,234,.7);border-bottom:1px solid rgba(248,244,234,.4);padding-bottom:2px}
.book-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:16px}
.book-modal.on{display:flex}
.bm-backdrop{position:absolute;inset:0;background:rgba(10,44,33,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.bm-card{position:relative;width:min(640px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--page);padding:40px 36px;border-top:3px solid var(--gold)}
.bm-x{position:absolute;right:12px;top:10px;width:40px;height:40px;font-size:26px;line-height:1;color:var(--ink-2)}
.bm-card .eyebrow{margin-bottom:12px}
.bm-card h3{margin-bottom:8px}
.bm-sub{font-size:14.5px;color:var(--ink-2);margin-bottom:26px}
.bm-label{display:block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--forest);margin-bottom:8px}
.bm-list{list-style:none;border-top:1px solid var(--line)}
.bm-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.bm-list li span:last-child{font-family:var(--serif);white-space:nowrap}
.bm-list button{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-left:10px}
.bm-total{display:flex;justify-content:space-between;padding:12px 0;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.bm-total strong{font-family:var(--serif);font-size:20px;letter-spacing:0;text-transform:none;color:var(--ink)}
.bm-add-select,.bm-card input,.bm-card select,.bm-card textarea{width:100%;background:var(--page);border:1px solid var(--line-strong);padding:13px 14px;font-size:15px;color:var(--ink);border-radius:0;-webkit-appearance:none;appearance:none}
.bm-card input:focus,.bm-card select:focus{outline:none;border-color:var(--forest)}
.bm-add-select{margin-top:12px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%230F3D2E' stroke-width='1.4'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.bm-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.bm-field{margin-top:18px}
.bm-field .req{color:var(--gold-deep)}
.time-chips{display:flex;gap:8px;flex-wrap:wrap}
.time-chip{padding:10px 14px;border:1px solid var(--line-strong);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);transition:.2s}
.time-chip.on{background:var(--forest);border-color:var(--forest);color:var(--cream)}
.bm-or{display:flex;align-items:center;gap:12px;margin:14px 0 10px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.bm-or::before,.bm-or::after{content:"";flex:1;height:1px;background:var(--line)}
.bm-send{width:100%;margin-top:26px}
.bm-fine{margin-top:14px;font-size:12.5px;color:var(--ink-3);line-height:1.5}
.bm-err{display:none;margin-top:8px;font-size:12.5px;color:#9B3B2A}
.bm-err.on{display:block}
@media (max-width:560px){.bm-card{padding:32px 20px}.bm-grid{grid-template-columns:1fr}}
body.modal-open{overflow:hidden}

/* ---------- before / after ---------- */
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,32px)}
.ba-grid figure{margin:0}
.ba-pair{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--cream-2)}
.ba-pair img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-pair .before-wrap{position:absolute;inset:0;width:var(--pos,50%);overflow:hidden}
.ba-pair .before-wrap img{width:calc(100% / var(--frac,.5));max-width:none}
.ba-pair .handle{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:1px;background:#fff;pointer-events:none}
.ba-pair .handle::after{content:"";position:absolute;top:50%;left:50%;width:34px;height:34px;transform:translate(-50%,-50%);border-radius:50%;background:#fff;border:1px solid var(--gold);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F3D2E' stroke-width='1.5'><path d='M9 7l-5 5 5 5M15 7l5 5-5 5'/></svg>");background-size:18px;background-repeat:no-repeat;background-position:center}
.ba-pair input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;-webkit-appearance:none;appearance:none}
.ba-tag{position:absolute;bottom:12px;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:6px 9px;background:rgba(255,255,255,.92);color:var(--forest);pointer-events:none}
.ba-tag.l{left:12px}.ba-tag.r{right:12px}.ba-tag.t{left:12px;top:12px;bottom:auto}
.ba-single{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--cream-2)}
.ba-single img{width:100%;height:100%;object-fit:cover}
.ba-grid figcaption{margin-top:12px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
@media (max-width:900px){.ba-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ba-grid{grid-template-columns:1fr}}

/* ---------- treatment journey (start → 4 → 8 sessions) ---------- */
.journey{display:grid;gap:18px}
.journey-frame{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--cream-2)}
.journey-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s linear;will-change:opacity}
.journey-frame img.is-on{opacity:1}
.journey-frame .j-label{position:absolute;left:14px;bottom:14px;padding:8px 12px;background:rgba(255,255,255,.92);color:var(--forest);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;pointer-events:none}
.journey-frame .j-label b{display:block;font-family:var(--serif);font-weight:400;font-size:20px;letter-spacing:0;text-transform:none;color:var(--ink);margin-top:2px}
.journey-ctrl{position:relative;padding-top:6px}
.journey-ctrl .j-track{position:absolute;left:0;right:0;top:14px;height:1px;background:var(--line-strong)}
.journey-ctrl .j-fill{position:absolute;left:0;top:14px;height:1px;width:0;background:var(--gold);transition:width .15s linear}
.journey-ctrl input[type=range]{position:absolute;left:-9px;right:-9px;top:0;width:calc(100% + 18px);height:30px;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none;z-index:3}
.j-steps{display:flex;justify-content:space-between;position:relative;z-index:2;pointer-events:none}
.j-step{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:12px;width:33%;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);transition:color .2s}
.j-step:first-child{align-items:flex-start}.j-step:last-child{align-items:flex-end;text-align:right}
.j-step::before{content:"";width:17px;height:17px;border-radius:50%;background:#fff;border:1px solid var(--line-strong);box-sizing:border-box;transition:.2s}
.j-step.on{color:var(--forest)}
.j-step.on::before{border-color:var(--forest);background:var(--forest);box-shadow:inset 0 0 0 4px #fff}
.j-step.done::before{border-color:var(--gold);background:var(--gold);box-shadow:inset 0 0 0 4px #fff}
.j-step small{display:block;font-weight:400;letter-spacing:.04em;text-transform:none;font-size:12.5px;color:var(--ink-3);margin-top:-6px}
@media (max-width:600px){.j-step small{display:none}.j-step{font-size:10px;letter-spacing:.12em}}
.journey-note{font-size:13px;color:var(--ink-3)}
.journey-feature{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,90px);align-items:center}
@media (max-width:860px){.journey-feature{grid-template-columns:1fr;gap:28px}}

/* ---------- case cards ---------- */
.case-media{position:relative}
.case-open{position:absolute;top:12px;right:12px;z-index:4;padding:7px 10px;background:rgba(255,255,255,.92);color:var(--forest);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;opacity:0;transition:opacity .2s}
.case-media:hover .case-open,.case-open:focus-visible{opacity:1}
@media (hover:none){.case-open{opacity:1}}
.case-card figcaption a{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline;color:inherit}
.case-card .case-n{font-family:var(--serif);font-weight:400;font-size:15px;letter-spacing:0;color:var(--gold)}
.case-card .case-go{display:inline-flex;align-items:center;gap:8px;color:var(--ink-3);font-size:10px;letter-spacing:.14em;transition:color .2s}
.case-card .case-go .arr{width:14px}
.case-card:hover .case-go{color:var(--forest)}
.case-journey .journey{gap:12px}
.case-journey .j-step small,.case-journey .journey-note{display:none}
.case-journey .j-step{font-size:10px;letter-spacing:.12em}
.case-journey .j-label{padding:6px 9px;font-size:10px}
.case-journey .j-label b{font-size:16px}
.case-stage .ba-pair,.case-stage .ba-single{aspect-ratio:1/1}

/* ---------- gallery strip ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,18px)}
.gallery .g{aspect-ratio:4/5;overflow:hidden;background:var(--cream-2)}
.gallery .g.wide{grid-column:span 2;aspect-ratio:8/5}
.gallery img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.gallery{grid-template-columns:1fr 1fr}.gallery .g.wide{grid-column:span 2}}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
.info-list{display:grid;gap:0;border-top:1px solid var(--line)}
.info-list>div,.info-list>a{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid var(--line);color:inherit}
.info-list h3{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--forest);padding-top:4px}
.info-list p{color:var(--ink-2);font-size:15.5px}
.info-list a.go{display:inline-block;margin-top:6px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--forest);border-bottom:1px solid var(--gold);padding-bottom:2px}
.map{aspect-ratio:4/3;background:var(--paper);border:1px solid var(--line);margin-top:28px}
.map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1) sepia(.12) contrast(.95)}
.form{border:1px solid var(--line);background:var(--page);padding:clamp(24px,4vw,40px)}
.form .f{margin-bottom:18px}
.form label{display:block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--forest);margin-bottom:8px}
.form input,.form select,.form textarea{width:100%;background:var(--page);border:1px solid var(--line-strong);padding:13px 14px;font-size:15px;border-radius:0;-webkit-appearance:none;appearance:none}
.form textarea{min-height:130px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--forest)}
.form .fine{font-size:12.5px;color:var(--ink-3);margin-top:12px}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}.info-list>div,.info-list>a{grid-template-columns:1fr;gap:6px}}

/* ---------- CTA band ---------- */
.cta-band{display:grid;grid-template-columns:1.2fr auto;gap:32px;align-items:center}
.cta-band h2{max-width:16ch}
.cta-band p{margin-top:16px;color:rgba(248,244,234,.8);max-width:48ch}
@media (max-width:760px){.cta-band{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.site-footer{background:var(--forest-deep);color:rgba(248,244,234,.8);padding:clamp(56px,7vw,88px) 0 32px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.footer-brand .logo{width:190px;margin-bottom:22px}
.footer-brand p{font-size:15px;max-width:300px;color:rgba(248,244,234,.66)}
.footer-brand .script{display:block;margin-top:22px;font-size:30px;color:var(--gold)}
.footer-col h4{font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.footer-col a,.footer-col p{display:block;font-size:15px;margin-bottom:10px;color:rgba(248,244,234,.78)}
.footer-col a:hover{color:#fff}
.footer-col .rl-navmenu{display:none}
.footer-bottom{margin-top:56px;padding-top:22px;border-top:1px solid var(--line-light);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(248,244,234,.5)}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;gap:30px}}

/* ---------- floating WhatsApp ---------- */
.wa-float{position:fixed;right:18px;bottom:calc(18px + var(--tray));z-index:70;width:54px;height:54px;border-radius:50%;background:var(--forest);color:var(--cream);display:grid;place-items:center;box-shadow:0 10px 24px rgba(10,44,33,.28);transition:transform .25s var(--ease),bottom .35s var(--ease)}
.wa-float:hover{transform:translateY(-2px)}
.wa-float svg{width:24px;height:24px;fill:currentColor}
@media (min-width:1041px){.wa-float{display:none}}

/* ---------- reveal (subtle, no layout shift) ---------- */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
  .reveal.in{opacity:1;transform:none}
  .d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}
}
.no-js .reveal{opacity:1;transform:none}

/* ---------- misc ---------- */
.two-col{columns:2;column-gap:48px}
@media (max-width:760px){.two-col{columns:1}}
.privacy h2{font-size:24px;margin:2em 0 .6em}
.privacy p,.privacy li{color:var(--ink-2)}
.privacy ul{margin-left:1.2em}

/* ---------- trust & usability additions ---------- */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tiles>div{padding:22px 24px 22px 0;border-right:1px solid var(--line)}
.tiles>div+div{padding-left:24px}
.tiles>div:last-child{border-right:0}
.tiles .eyebrow{font-size:10px;margin-bottom:8px;color:var(--ink-3)}
.tiles b{font-family:var(--serif);font-weight:400;font-size:clamp(17px,1.6vw,21px);line-height:1.25;color:var(--ink)}
@media (max-width:760px){.tiles{grid-template-columns:1fr 1fr}.tiles>div{padding:16px 14px 16px 0}.tiles>div:nth-child(2){border-right:0}.tiles>div:nth-child(n+3){border-top:1px solid var(--line)}.tiles>div:nth-child(3){padding-left:0}}
.trustline{display:flex;gap:10px 28px;flex-wrap:wrap;align-items:center;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.trustline span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:10px;vertical-align:middle}
.trustline a{color:var(--forest);display:inline-flex;gap:8px;align-items:center;border-bottom:1px solid var(--gold);padding-bottom:2px}
.jumps{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.jumps a{padding:9px 14px;border:1px solid var(--line-strong);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.jumps a:hover{border-color:var(--forest);color:var(--forest)}
.notfor{margin-top:40px;border:1px solid var(--line);padding:26px 26px 20px;background:var(--paper)}
.notfor ul{list-style:none;margin-bottom:14px}
.notfor li{position:relative;padding:8px 0 8px 22px;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink-2)}
.notfor li:last-child{border-bottom:0}
.notfor li::before{content:"";position:absolute;left:0;top:16px;width:10px;height:1px;background:var(--gold)}
.estimator{border:1px solid var(--line);padding:clamp(24px,4vw,40px);background:var(--page)}
.est-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.est-grid label span{display:block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--forest);margin-bottom:8px}
.est-grid select{width:100%;background:var(--page);border:1px solid var(--line-strong);padding:12px 36px 12px 12px;font-size:15px;border-radius:0;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%230F3D2E' stroke-width='1.4'/></svg>");background-repeat:no-repeat;background-position:right 12px center}
.est-out{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:16px;margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.est-out .eyebrow{font-size:10px;margin-bottom:6px;color:var(--ink-3)}
.est-out b{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.4vw,30px);line-height:1.1}
@media (max-width:760px){.est-grid{grid-template-columns:1fr 1fr}.est-out{grid-template-columns:1fr 1fr}.est-out>div:last-child{grid-column:span 2}}
.rdesc.course{color:var(--gold-deep)}
.bt-total{font-size:13px;color:rgba(248,244,234,.8)}
.bt-total b{font-family:var(--serif);font-weight:400;font-size:17px;color:var(--cream)}
.cred-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,36px);margin-top:40px}
.cred-grid>div{border-top:1px solid var(--line-strong);padding-top:20px}
.cred-grid h3{font-size:20px;margin-bottom:10px}
.cred-grid p{font-size:15px;color:var(--ink-2)}
@media (max-width:760px){.cred-grid{grid-template-columns:1fr}}
.footer-trust{display:flex;gap:10px 28px;flex-wrap:wrap;margin-top:44px;padding-top:22px;border-top:1px solid var(--line-light);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(248,244,234,.6)}
.footer-trust span::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);margin-right:10px;vertical-align:middle}
.care-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);margin-top:36px}
.care-block{border-top:1px solid var(--line-strong);padding-top:22px}
.care-block h2{font-size:26px;margin-bottom:14px}
.care-list{counter-reset:c;list-style:none;margin-bottom:18px}
.care-list li{position:relative;padding:10px 0 10px 36px;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink-2)}
.care-list li::before{counter-increment:c;content:counter(c,decimal-leading-zero);position:absolute;left:0;top:10px;font-family:var(--serif);color:var(--gold);font-size:16px}
@media (max-width:760px){.care-grid{grid-template-columns:1fr}}
.nav-phone{display:none}
@media (max-width:1040px){.nav-phone{display:block;border-bottom:0!important;padding-top:22px}.nav-phone a{font-family:var(--serif)!important;font-size:22px!important;padding:0 0 4px!important}.nav-phone span{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}}
.lang{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--ink-3);padding:6px 4px}
.lang i{font-style:normal;color:var(--line-strong)}
.lang span.on{color:var(--forest);border-bottom:1px solid var(--gold)}
@media (max-width:1040px){.lang{padding:6px 2px}}
.pill[href]:hover{background:var(--gold);color:#fff}

/* ---------- tattoo offer landing ---------- */
.lp-header .nav{height:72px}
.lp-hero{padding:clamp(40px,6vw,84px) 0 clamp(40px,6vw,72px)}
.lp-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,90px);align-items:center}
.lp-copy .eyebrow{margin-bottom:22px}
.lp-copy h1{max-width:12ch}
.lp-copy .lede{margin-top:22px}
.offer-box{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin:30px 0 28px}
.offer-box>div{padding:16px 18px;border-right:1px solid var(--line)}
.offer-box>div:last-child{border-right:0}
.offer-box b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.8vw,24px);line-height:1.1;color:var(--forest)}
.offer-box span{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:6px}
.lp-video{position:relative}
.lp-vid{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--cream-2)}
.lp-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.94);color:var(--forest);display:grid;place-items:center;box-shadow:0 12px 30px rgba(10,44,33,.25);transition:transform .25s var(--ease)}
.lp-play svg{width:30px;height:30px;margin-left:4px}
.lp-play:hover{transform:translate(-50%,-50%) scale(1.06)}
.lp-vid-cap{display:flex;flex-direction:column;gap:4px;margin-top:16px}
.lp-vid-cap b{font-family:var(--serif);font-weight:400;font-size:20px}
.lp-vid-cap small{font-size:13px;color:var(--ink-3)}
.lp-video.playing .lp-play,.lp-video.playing .lp-vid-cap{display:none}
.lp-journey{display:none}
.lp-video.no-video .lp-vid,.lp-video.no-video .lp-play,.lp-video.no-video .lp-vid-cap{display:none}
.lp-video.no-video .lp-journey{display:block}
@media (max-width:900px){.lp-grid{grid-template-columns:1fr;gap:34px}.lp-copy h1{max-width:none}.offer-box{grid-template-columns:1fr 1fr 1fr}.offer-box>div{padding:12px 10px}}
@media (max-width:520px){.offer-box b{font-size:17px}.offer-box span{font-size:10px;letter-spacing:.1em}}
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);margin-top:40px}
.tier{padding:28px 24px;border-right:1px solid var(--line)}
.tier:last-child{border-right:0}
.tier .eyebrow{margin-bottom:4px}
.tier small{display:block;font-size:13px;color:var(--ink-3);margin-bottom:18px}
.tier b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,38px);line-height:1}
.tier em{display:block;font-style:normal;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:8px 0 16px}
.tier-course{display:block;padding-top:14px;border-top:1px solid var(--line);font-size:13.5px;color:var(--gold-deep)}
.tier-course s{color:var(--ink-3);margin-left:6px}
@media (max-width:900px){.tiers{grid-template-columns:1fr 1fr}.tier:nth-child(2){border-right:0}.tier:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:480px){.tiers{grid-template-columns:1fr}.tier{border-right:0!important}.tier+.tier{border-top:1px solid var(--line)}}
.lp-sticky{display:none}
@media (max-width:900px){.lp-sticky{position:fixed;left:0;right:0;bottom:0;z-index:85;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px var(--gutter);background:rgba(255,255,255,.96);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:13px;color:var(--ink-2)}.lp-sticky b{font-family:var(--serif);font-size:17px;color:var(--ink)}body:has(.lp-sticky){padding-bottom:64px}body:has(.lp-sticky) .wa-float{display:none}}

/* ---------- landing v2: video-led ---------- */
.lp2-top{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:16px var(--gutter);max-width:calc(var(--maxw) + 2*var(--gutter));margin:0 auto}
.lp2-top .logo{width:150px}
.lp2-top .btn{border-color:rgba(248,244,234,.5);color:var(--cream)}
.lp2-top .btn:hover{background:var(--cream);color:var(--forest)}
.lp2-hero{padding:92px 0 clamp(40px,6vw,80px);min-height:100svh;display:flex;align-items:center}
.lp2-hero.leaf-bg::before{opacity:.3}
.lp2-grid{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:1.1fr auto;gap:clamp(28px,6vw,96px);align-items:center}
.lp2-copy h1{color:var(--cream);font-size:clamp(34px,5.2vw,68px);max-width:13ch;margin-top:22px}
.lp2-lede{margin-top:20px}
.lp2-cta{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:32px}
.lp2-cta .btn{padding:20px 30px;font-size:13px;background:var(--gold);border-color:var(--gold);color:#fff;position:relative}
.lp2-cta .btn::after{content:"";position:absolute;inset:-1px;border:1px solid var(--gold);animation:lp2pulse 2.4s ease-out infinite;pointer-events:none}
@keyframes lp2pulse{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(1.12,1.5)}}
@media (prefers-reduced-motion:reduce){.lp2-cta .btn::after{animation:none;display:none}}
.lp2-sub{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(248,244,234,.62)}
.lp2-cta-mob{display:none}
.lp2-offer{list-style:none;display:flex;gap:0;margin-top:40px;border-top:1px solid var(--line-light)}
.lp2-offer li{padding:18px 26px 0 0;margin-right:26px;border-right:1px solid var(--line-light)}
.lp2-offer li:last-child{border:0}
.lp2-offer b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.8vw,24px);color:var(--cream)}
.lp2-offer span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(248,244,234,.6)}
.lp2-media{width:min(360px,34vw)}
.tv{position:relative;aspect-ratio:9/16;background:#0a2c21;overflow:hidden;border:1px solid rgba(184,155,98,.7);box-shadow:0 30px 70px rgba(0,0,0,.35),0 0 0 8px rgba(248,244,234,.05)}
.tv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tv-hit{position:absolute;inset:0;z-index:2;width:100%;height:100%}
.tv-sound{position:absolute;z-index:3;left:50%;bottom:22px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:10px;padding:12px 18px;background:rgba(255,255,255,.95);color:var(--forest);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;pointer-events:none;animation:lp2bob 2s ease-in-out infinite}
.tv-sound svg{width:18px;height:18px}
@keyframes lp2bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-5px)}}
.tv.sound .tv-sound{display:none}
.tv-pause{position:absolute;z-index:3;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:rgba(255,255,255,.94);color:var(--forest);display:none;place-items:center;pointer-events:none}
.tv-pause svg{width:28px;height:28px;margin-left:4px}
.tv.paused .tv-pause{display:grid}
.tv-bar{position:absolute;z-index:3;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.25)}
.tv-bar i{display:block;height:100%;width:0;background:var(--gold)}
.tv-end{position:absolute;inset:0;z-index:4;display:none;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px;text-align:center;background:rgba(10,44,33,.9)}
.tv.ended .tv-end{display:flex}
.tv-end b{font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.3;color:var(--cream)}
.tv-end .btn{background:var(--gold);border-color:var(--gold);color:#fff}
.tv-replay{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(248,244,234,.7);border-bottom:1px solid rgba(248,244,234,.4);padding-bottom:2px}
.tv-chips{display:flex;gap:8px;margin-top:14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.tv-chips::-webkit-scrollbar{display:none}
.tv-chip{flex:none;padding:9px 12px;border:1px solid rgba(248,244,234,.28);color:rgba(248,244,234,.86);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;transition:.2s}
.tv-chip i{font-style:normal;color:var(--gold);margin-right:8px;font-weight:400}
.tv-chip.on,.tv-chip:hover{background:var(--cream);color:var(--forest);border-color:var(--cream)}
@media (max-width:860px){
  .lp2-hero{padding:76px 0 36px;min-height:0;display:block}
  .lp2-grid{grid-template-columns:1fr;gap:20px}
  .lp2-copy h1{font-size:clamp(30px,8.4vw,44px);max-width:none;margin-top:12px}
  .lp2-lede{margin-top:10px;font-size:15px}
  .lp2-cta-desk,.lp2-offer{display:none}
  .lp2-cta-mob{display:flex;align-items:stretch;margin-top:6px}
  .lp2-cta-mob .btn{width:100%}
  .lp2-cta-mob .lp2-sub{text-align:center}
  .lp2-media{width:100%;max-width:440px;margin:0 auto}
  .tv{aspect-ratio:auto;height:min(62svh,calc((100vw - 2*var(--gutter))*16/9))}
  .lp2-top .logo{width:128px}
}
.lp2-vs{background:var(--forest-deep);color:var(--cream)}
.lp2-vs-grid{display:grid;grid-template-columns:1fr 1fr}
.lp2-vs-grid>div{padding:clamp(36px,6vw,72px) clamp(20px,4vw,56px) clamp(36px,6vw,72px) 0}
.lp2-vs-grid>div+div{padding-left:clamp(20px,4vw,56px);border-left:1px solid var(--line-light)}
.lp2-vs .eyebrow{color:rgba(248,244,234,.55)}
.lp2-vs .win .eyebrow{color:var(--gold)}
.lp2-vs .big{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(64px,11vw,132px);line-height:1;margin:14px 0 16px;color:rgba(248,244,234,.38)}
.lp2-vs .win .big{color:var(--gold);font-size:clamp(46px,8vw,104px);padding-top:.12em}
.lp2-vs p{font-size:clamp(15px,1.5vw,18px);line-height:1.6;color:rgba(248,244,234,.82);max-width:34ch}
@media (max-width:640px){.lp2-vs-grid{grid-template-columns:1fr}.lp2-vs-grid>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line-light)}}
.pq-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(18px,3vw,40px);margin-top:44px}
.pq{grid-column:span 2;border-top:1px solid var(--line-strong);padding-top:22px}
.pq:nth-child(1),.pq:nth-child(2){grid-column:span 3}
.pq p{font-family:var(--serif);font-size:clamp(22px,2.4vw,32px);line-height:1.25;color:var(--ink)}
.pq:nth-child(1) p,.pq:nth-child(2) p{font-size:clamp(26px,3.2vw,42px)}
.pq p::before{content:"\201C";color:var(--gold)}.pq p::after{content:"\201D";color:var(--gold)}
.pq cite{display:block;margin-top:14px;font-style:normal;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
@media (max-width:760px){.pq-grid{grid-template-columns:1fr}.pq,.pq:nth-child(1),.pq:nth-child(2){grid-column:auto}}
.lp2-final .btn{background:var(--gold);border-color:var(--gold);color:#fff;padding:20px 30px}
.lp2-addr{margin-top:28px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:rgba(248,244,234,.55)}
.lp2-addr a{border-bottom:1px solid rgba(248,244,234,.3)}
.lp2-sticky{transform:translateY(110%);transition:transform .35s var(--ease)}
.lp2-sticky.on{transform:none}
.lp2-grid>*{min-width:0}
.lp2{overflow-x:clip}
@media (max-width:860px){.lp2-grid{grid-template-columns:minmax(0,1fr)}.lp2-sticky span{white-space:nowrap;font-size:12px}}
