/* LIV Laser + Aesthetics — design system
   World: ivory ground, deep-green committed fields, mushroom hairlines/highlights.
   Motion grammar: expo ease-out, hover gated to fine pointers, reveals once, one scroll-driven moment per page. */

:root{
  --ivory:#F4EFE9; --paper:#FBF8F4; --stone:#ECE4DA; --line:#DDD2C5;
  --green:#294B4A; --green-deep:#1B3433; --green-soft:#3B6663;
  --mush:#9C8A7C; --mush-ink:#8A7869; --mush-text:#6E6053;
  --sage:#99A493; --sage-soft:#E3E8DF;
  --ink:#292B2A; --ink-soft:#5B564D;
  --err:#8C2F2F;
  --display:'Playfair Display', Georgia, 'Times New Roman', serif;
  --body:'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-io:cubic-bezier(.77,0,.175,1);
  --header-h:76px;
  --pad:clamp(1.25rem,4.5vw,4rem);
  --spark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='219 287 45 45'%3E%3Cpath d='M263.155 309.413C246.309 312.03 244.185 314.154 241.568 331C238.952 314.154 236.828 312.03 219.981 309.413C236.828 306.796 238.952 304.672 241.568 287.826C244.185 304.672 246.309 306.796 263.155 309.413Z'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:light;scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 24px)}
html{overflow-x:clip}
body{margin:0;background:var(--ivory);color:var(--ink);font:400 1.0625rem/1.65 var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg,iframe{display:block;max-width:100%}
img{height:auto}
p{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:400;letter-spacing:-.018em;line-height:1.08;text-wrap:balance}
ul,ol{margin:0;padding:0;list-style:none}
::selection{background:var(--green);color:var(--ivory)}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}
.on-green :focus-visible{outline-color:var(--ivory)}
html{scrollbar-color:var(--mush) var(--ivory);scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--mush);border-radius:10px;border:2px solid var(--ivory)}
.skip{position:absolute;left:1rem;top:-4rem;background:var(--green);color:var(--ivory);padding:.75rem 1rem;z-index:200;transition:top .2s var(--ease-out)}
.skip:focus{top:1rem}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:1320px;margin-inline:auto;padding-inline:var(--pad)}
.wrap--narrow{max-width:900px}
.s{padding-block:clamp(4.5rem,9vw,8.5rem);position:relative}
.s--tight{padding-block:clamp(3rem,6vw,5rem)}
.s--stone{background:var(--stone)}
.s--sage{background:var(--sage-soft)}
.on-green{background:var(--green);color:var(--ivory)}
.hair{height:1px;background:var(--line);border:0;margin:0}
.grid-2{display:grid;grid-template-columns:repeat(12,1fr);column-gap:clamp(1rem,2.5vw,2.5rem);row-gap:2.5rem}

/* ---------- type ---------- */
.h-display{font-size:clamp(3.1rem,7.4vw,6rem);line-height:1.02;letter-spacing:-.025em}
.h1{font-size:clamp(2.6rem,5.6vw,4.75rem);line-height:1.04}
.h2{font-size:clamp(2rem,3.7vw,3.1rem)}
.h3{font-size:clamp(1.3rem,1.8vw,1.55rem);line-height:1.2}
.lede{font-size:clamp(1.1rem,1.35vw,1.28rem);line-height:1.6;color:var(--ink-soft);max-width:56ch}
.on-green .lede{color:rgba(244,239,233,.82)}
.prose p+p{margin-top:1.15em}.prose{max-width:62ch;color:var(--ink-soft)}
.on-green .prose{color:rgba(244,239,233,.82)}
.hl{color:var(--mush-ink)}
.on-green .hl,.hero-green .hl{color:var(--mush)}
.hl-i{font-style:italic;color:var(--mush-ink)}
.on-green .hl-i{color:var(--mush)}
.kicker{display:inline-flex;align-items:center;gap:.65rem;font:600 .75rem/1.2 var(--body);letter-spacing:.15em;text-transform:uppercase;color:var(--mush-text);margin-bottom:1.4rem}
.kicker::before{content:"";width:.95rem;height:.95rem;background:var(--mush);-webkit-mask:var(--spark) center/contain no-repeat;mask:var(--spark) center/contain no-repeat;flex:none}
.on-green .kicker{color:var(--sage)}.on-green .kicker::before{background:var(--mush)}
.tnum{font-variant-numeric:tabular-nums lining-nums}

/* ---------- buttons & links ---------- */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.1rem;padding:.9rem 1.75rem;border-radius:2px;font:600 .8rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;background:var(--green);color:var(--ivory);border:1px solid var(--green);transition:transform .16s var(--ease-out),color .4s var(--ease-out),border-color .4s var(--ease-out)}
.btn::before{content:"";position:absolute;inset:0;background:var(--green-soft);transform:translateY(101%);transition:transform .5s var(--ease-out);z-index:-1}
.btn:active{transform:scale(.97)}
.btn svg{width:1rem;height:1rem;transition:transform .35s var(--ease-out)}
.btn--ghost{background:transparent;color:var(--green)}
.btn--ghost::before{background:var(--green)}
.btn--light{background:var(--ivory);color:var(--green);border-color:var(--ivory)}
.btn--light::before{background:var(--sage-soft)}
.btn--line-light{background:transparent;color:var(--ivory);border-color:rgba(244,239,233,.55)}
.btn--line-light::before{background:var(--ivory)}
.btn--block{width:100%}
@media (hover:hover) and (pointer:fine){
  .btn:hover::before{transform:translateY(0)}
  .btn--ghost:hover,.btn--line-light:hover{color:var(--ivory)}
  .btn--line-light:hover{color:var(--green)}
  .btn:hover svg{transform:translateX(4px)}
}
.link{position:relative;display:inline-flex;align-items:center;gap:.5rem;font:600 .8rem/1.2 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--green);padding-bottom:.35rem}
.link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:left;transition:transform .5s var(--ease-out)}
.link svg{width:.9rem;height:.9rem;transition:transform .35s var(--ease-out)}
.on-green .link{color:var(--ivory)}
@media (hover:hover) and (pointer:fine){.link:hover::after{transform:scaleX(.35)}.link:hover svg{transform:translateX(4px)}}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:100;height:var(--header-h);background:rgba(244,239,233,.9);backdrop-filter:saturate(1.3) blur(14px);-webkit-backdrop-filter:saturate(1.3) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s var(--ease-out),box-shadow .3s}
.site-header.is-stuck{border-color:var(--line)}
.site-header .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.brand{display:block;flex:none}.brand img{height:42px;width:auto}
.nav{display:flex;align-items:center;gap:clamp(1.1rem,2vw,2.1rem)}
.nav__link{position:relative;display:inline-flex;align-items:center;gap:.35rem;font:500 .78rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);padding:.6rem 0}
.nav__link::after{content:"";position:absolute;left:0;right:0;bottom:.25rem;height:1px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.nav__link[aria-current="page"]::after,.nav__item.is-current>.nav__link::after{transform:scaleX(1)}
.nav__caret{width:.6rem;height:.6rem;transition:transform .3s var(--ease-out)}
.nav__item{position:relative}
.nav__panel{position:absolute;top:calc(100% + .5rem);left:-1.25rem;min-width:19rem;background:var(--paper);border:1px solid var(--line);padding:.6rem;box-shadow:0 30px 50px -28px rgba(41,75,74,.35);opacity:0;visibility:hidden;transform:translateY(8px);transform-origin:top left;transition:opacity .2s var(--ease-out),transform .25s var(--ease-out),visibility .25s}
.nav__panel a{display:block;padding:.8rem 1rem;font:500 .95rem/1.3 var(--body);color:var(--ink);border-radius:2px;transition:background-color .2s,color .2s,padding-left .3s var(--ease-out)}
.nav__panel a[aria-current="page"]{color:var(--green);font-weight:600}
.nav__item:focus-within .nav__panel,.nav__item.is-open .nav__panel{opacity:1;visibility:visible;transform:none}
@media (hover:hover) and (pointer:fine){
  .nav__link:hover::after{transform:scaleX(1)}
  .nav__item:hover .nav__panel{opacity:1;visibility:visible;transform:none}
  .nav__item:hover .nav__caret{transform:rotate(180deg)}
  .nav__panel a:hover{background:var(--stone);color:var(--green);padding-left:1.35rem}
}
.header-cta{display:flex;align-items:center;gap:1rem}
.header-cta .btn{min-height:2.75rem;padding:.75rem 1.4rem}
.burger{display:none;width:2.75rem;height:2.75rem;position:relative}
.burger span{position:absolute;left:.7rem;right:.7rem;height:1.5px;background:var(--ink);transition:transform .35s var(--ease-out),opacity .2s,top .35s var(--ease-out)}
.burger span:nth-child(1){top:1.05rem}.burger span:nth-child(2){top:1.35rem}.burger span:nth-child(3){top:1.65rem}
.menu-open .burger span:nth-child(1){top:1.35rem;transform:rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){top:1.35rem;transform:rotate(-45deg)}
@media (max-width:1080px){
  .burger{display:block}
  .header-cta .btn{display:none}
  .nav{position:fixed;inset:var(--header-h) 0 auto 0;height:calc(100vh - var(--header-h));height:calc(100dvh - var(--header-h));background:var(--ivory);flex-direction:column;align-items:stretch;gap:0;padding:1rem var(--pad) 5rem;overflow-y:auto;transform:translateY(-1rem);opacity:0;visibility:hidden;transition:opacity .3s var(--ease-out),transform .4s var(--ease-out),visibility .4s}
  .menu-open .nav{opacity:1;visibility:visible;transform:none}
  .nav>*{opacity:0;transform:translateY(14px);transition:opacity .4s var(--ease-out),transform .5s var(--ease-out);transition-delay:calc(var(--n,0)*45ms)}
  .menu-open .nav>*{opacity:1;transform:none}
  .nav__link{font:400 1.75rem/1.2 var(--display);letter-spacing:-.01em;text-transform:none;padding:.7rem 0;width:100%;border-bottom:1px solid var(--line)}
  .nav__link::after{display:none}.nav__caret{display:none}
  .nav__panel{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:none;padding:.4rem 0 .8rem 1rem;min-width:0}
  .nav__panel a{padding:.55rem 0;font-size:1.05rem;color:var(--ink-soft)}
  .nav .btn-m{display:flex;margin-top:1.2rem;flex:none}
}
@media (min-width:1081px){.nav .btn-m{display:none}}

/* ---------- reveal & parallax ---------- */
.js [data-reveal]{opacity:0;transform:translate3d(0,28px,0);transition:opacity .9s var(--ease-out) calc(var(--i,0)*80ms),transform 1s var(--ease-out) calc(var(--i,0)*80ms)}
.js [data-reveal="fade"]{transform:none}
.js [data-reveal="clip"]{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease-io) calc(var(--i,0)*90ms)}
.js [data-reveal="rise"]{transform:translate3d(0,64px,0) scale(.985)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal="clip"].is-in{clip-path:inset(0 0 0 0)}
.px{position:relative;overflow:hidden}
.px>img,.px>picture>img{width:100%;height:118%;object-fit:cover;will-change:transform}
.arch{border-radius:999px 999px 2px 2px}
.frame{position:relative;background:var(--stone)}
.frame:not(.px)>img{width:100%;height:100%;object-fit:cover}

/* ---------- home hero ---------- */
.hero{padding-top:clamp(2rem,4vw,3.5rem);padding-bottom:clamp(3rem,6vw,5rem)}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.hero__title span{display:block}
.swap{display:flex;align-items:baseline;gap:.5em;font:italic 400 clamp(1.15rem,1.6vw,1.4rem)/1 var(--display);color:var(--green);margin-bottom:1.5rem;height:1.6em;overflow:hidden}
.swap__words{display:block;position:relative;height:1.4em;overflow:hidden}
.swap__words span{display:block;height:1.4em;transition:transform .8s var(--ease-io),opacity .5s}
.hero__lede{margin-top:1.8rem}
.hero .btn-row{margin-top:2.2rem}
.hero__media{position:relative;aspect-ratio:4/5;max-height:78vh}
.hero__media .px{height:100%}
.fact{position:absolute;z-index:2;background:var(--paper);padding:.9rem 1.15rem;box-shadow:0 22px 40px -24px rgba(41,75,74,.45);display:flex;flex-direction:column;gap:.15rem;transition:transform .5s var(--ease-out)}
.fact b{font:500 1.05rem/1.2 var(--display)}.fact span{font:600 .68rem/1.2 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mush-text)}
.fact--a{left:-1.5rem;bottom:2.5rem}.fact--b{right:-.75rem;top:3rem}
@media (hover:hover) and (pointer:fine){.fact:hover{transform:translateY(-5px)}}
.info-strip{border-block:1px solid var(--line)}
.info-strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.info-strip div{padding:1.4rem 1.5rem;border-left:1px solid var(--line);font-size:.95rem;color:var(--ink-soft)}
.info-strip div:first-child{border-left:0;padding-left:0}
.info-strip b{display:block;font:600 .7rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mush-text);margin-bottom:.5rem}
@media (max-width:900px){
  .hero__grid{grid-template-columns:1fr}
  .hero__media{order:-1;aspect-ratio:5/4;max-height:none}
  .fact--a{left:.75rem}.fact--b{right:.75rem}
  .info-strip .wrap{grid-template-columns:1fr 1fr}
  .info-strip div:nth-child(3){border-left:0;padding-left:0}.info-strip div:nth-child(n+3){border-top:1px solid var(--line)}
}

/* ---------- scroll expand ---------- */
.se__track{position:relative}
.se__stage{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--ivory)}
.se__frame{position:absolute;inset:0;clip-path:inset(30% 29% 12% 29% round 24px);will-change:clip-path;background:var(--green)}
.se__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:center;will-change:transform}
.se__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,52,51,.35),rgba(27,52,51,.86));opacity:0}
.se__title{position:absolute;left:0;right:0;top:calc(var(--hdr,76px) + 3vh);display:flex;justify-content:center;text-align:center;padding:0 8%;font-family:var(--display);font-weight:400;letter-spacing:-.018em;color:var(--green);font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.06;z-index:3;pointer-events:none;will-change:opacity,transform}
.se__hint{position:absolute;left:0;right:0;bottom:1.5rem;text-align:center;font:600 .68rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--mush-text);pointer-events:none}
.se__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:6% var(--pad);opacity:0;color:var(--ivory);will-change:opacity,transform}
.se__overlay .prose{color:rgba(244,239,233,.86);margin-inline:auto;text-align:center;font-size:clamp(1.15rem,1.7vw,1.5rem);line-height:1.55;font-family:var(--display)}
@media (max-width:900px){.se__stage{height:88vh}.se__frame{clip-path:inset(30% 10% 8% 10% round 20px)}}
@media (prefers-reduced-motion:reduce){.se__frame{clip-path:none!important}.se__scrim,.se__overlay{opacity:1!important;transform:none!important}.se__title,.se__hint{display:none}.se__stage{height:auto;min-height:80vh}}

/* ---------- accordion gallery (services) ---------- */
.ag{display:flex;gap:.6rem;height:clamp(440px,66vh,600px)}
.ag__p{position:relative;flex:1 1 0;min-width:0;overflow:hidden;display:block;background:var(--green);transition:flex-grow .8s var(--ease-io)}
.ag__p.is-active{flex-grow:4.2}
.ag__p img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.8);transform:scale(1.08);transition:filter .8s var(--ease-io),transform 1.2s var(--ease-out)}
.ag__p.is-active img{filter:none;transform:scale(1)}
.ag__p::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,52,51,0) 40%,rgba(27,52,51,.88));transition:opacity .6s}
.ag__label{position:absolute;left:1.4rem;right:1.4rem;bottom:1.5rem;z-index:2;color:var(--ivory)}
.ag__label h3{font-size:clamp(1.15rem,1.6vw,1.6rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.4rem;transition:opacity .4s}
.ag__label p{font-size:.92rem;opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease-out) .15s,transform .6s var(--ease-out) .15s;max-width:34ch;color:rgba(244,239,233,.86)}
.ag__label .link{margin-top:.9rem;opacity:0;transition:opacity .5s .25s}
.ag__p.is-active .ag__label p{opacity:1;transform:none}.ag__p.is-active .ag__label .link{opacity:1}
.ag__p:not(.is-active) .ag__label h3{opacity:.92}
@media (max-width:820px){
  .ag{flex-direction:column;height:auto}
  .ag__p{flex:none!important;height:5.5rem;transition:height .7s var(--ease-io)}
  .ag__p.is-active{height:19rem}
  .ag__label h3{white-space:normal}
}

/* ---------- ledger (prices teaser) ---------- */
.ledger{border-top:1px solid var(--ink)}
.ledger__row{display:grid;grid-template-columns:1fr auto 2rem;align-items:baseline;gap:1.25rem;padding:1.35rem .25rem;border-bottom:1px solid var(--line);position:relative;transition:padding .45s var(--ease-out)}
.ledger__row::before{content:"";position:absolute;inset:0;background:var(--sage-soft);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease-out);z-index:-1}
.ledger__name{font:400 clamp(1.3rem,2.2vw,1.9rem)/1.2 var(--display)}
.ledger__price{font:600 1.15rem/1 var(--body)}
.ledger__go{width:1.1rem;height:1.1rem;color:var(--green);transition:transform .4s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.ledger__row:hover{padding-inline:1.25rem}.ledger__row:hover::before{transform:scaleY(1)}.ledger__row:hover .ledger__go{transform:translate(4px,-4px)}}
.ledger{isolation:isolate}

/* ---------- duo (her / him) ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;min-height:72vh}
.duo__p{position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:clamp(1.75rem,4vw,3.5rem);color:var(--ivory);isolation:isolate}
.duo__p img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:scale(1.02);transition:transform 1.4s var(--ease-out)}
.duo__p::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,52,51,.05) 30%,rgba(27,52,51,.9));z-index:-1;transition:opacity .6s}
.duo__p h3{font-size:clamp(1.8rem,3.4vw,3rem);margin-bottom:.8rem}
.duo__p p{max-width:36ch;color:rgba(244,239,233,.86);margin-bottom:1.4rem}
@media (hover:hover) and (pointer:fine){.duo__p:hover img{transform:scale(1.08)}.duo__p:hover .link svg{transform:translateX(4px)}}
@media (max-width:820px){.duo{grid-template-columns:1fr}.duo__p{min-height:52vh}}

/* ---------- founder quote ---------- */
.quote{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.quote blockquote{margin:0;font:400 clamp(1.5rem,2.6vw,2.35rem)/1.32 var(--display);letter-spacing:-.012em}
.quote cite{display:block;margin-top:1.6rem;font:600 .78rem/1.4 var(--body);letter-spacing:.12em;text-transform:uppercase;font-style:normal;color:var(--mush-text)}
@media (max-width:820px){.quote{grid-template-columns:1fr}}
.portrait{aspect-ratio:4/5;position:relative;border-radius:999px 999px 2px 2px;overflow:hidden;background:var(--sage-soft);display:flex;align-items:flex-end;justify-content:center}
.portrait::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(41,75,74,.045) 14px 15px)}
.portrait__note{position:relative;z-index:1;margin:0 1.5rem 2.2rem;text-align:center;font:600 .7rem/1.5 var(--body);letter-spacing:.13em;text-transform:uppercase;color:var(--green)}
.portrait__note i{display:block;width:1.6rem;height:1.6rem;margin:0 auto .8rem;background:var(--mush);-webkit-mask:var(--spark) center/contain no-repeat;mask:var(--spark) center/contain no-repeat}

/* ---------- final CTA ---------- */
.cta{position:relative;overflow:hidden;text-align:center;padding-block:clamp(5rem,10vw,9rem)}
.cta .h1{max-width:16ch;margin-inline:auto}
.cta .lede{margin:1.6rem auto 0;max-width:46ch}
.cta .btn{margin-top:2.4rem}
.cta__spark{position:absolute;left:50%;top:50%;width:min(80vw,720px);aspect-ratio:1;transform:translate(-50%,-50%);background:rgba(153,164,147,.09);-webkit-mask:var(--spark) center/contain no-repeat;mask:var(--spark) center/contain no-repeat;pointer-events:none;will-change:transform}
.cta .wrap{position:relative}

/* ---------- footer ---------- */
.site-footer{background:var(--green);color:var(--ivory);padding-top:clamp(3.5rem,6vw,5.5rem)}
.site-footer a{transition:color .25s,opacity .25s}
.foot__top{display:grid;grid-template-columns:1.2fr 2fr;gap:clamp(2rem,6vw,6rem);padding-bottom:3.5rem;border-bottom:1px solid rgba(244,239,233,.16)}
.foot__brand img{height:56px;width:auto;margin-bottom:1.4rem}
.foot__brand p{color:rgba(244,239,233,.78);max-width:34ch}
.foot__brand em{display:block;margin-top:1.6rem;font:italic 400 1.5rem/1.2 var(--display);color:var(--mush)}
.foot__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.foot__cols h4{font:600 .7rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-bottom:1.15rem}
.foot__cols li+li{margin-top:.55rem}
.foot__cols address{font-style:normal;color:rgba(244,239,233,.86);font-size:.95rem;line-height:1.6}
.foot__cols p{font-size:.95rem;color:rgba(244,239,233,.86)}
.foot__cols a{font-size:.95rem;color:rgba(244,239,233,.86)}
@media (hover:hover) and (pointer:fine){.foot__cols a:hover{color:var(--mush)}}
.foot__bottom{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;padding:1.6rem 0 2rem;font-size:.85rem;color:rgba(244,239,233,.7)}
.foot__bottom ul{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem}.foot__bottom a{color:rgba(244,239,233,.7)}
@media (hover:hover) and (pointer:fine){.foot__bottom a:hover{color:var(--ivory)}}
@media (max-width:980px){.foot__top{grid-template-columns:1fr}.foot__cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot__cols{grid-template-columns:1fr}}

/* ---------- internal page hero ---------- */
.phero{padding-top:clamp(2.5rem,5vw,4.5rem);padding-bottom:clamp(3rem,6vw,5.5rem)}
.crumb{display:flex;gap:.6rem;font-size:.82rem;color:var(--mush-text);margin-bottom:2rem}
.crumb a{transition:color .2s}
@media (hover:hover){.crumb a:hover{color:var(--green)}}
.crumb span[aria-hidden]{opacity:.6}
.phero__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.phero__media{aspect-ratio:1/1.05}
.phero__media .px{height:100%}
.phero .lede{margin-top:1.6rem}.phero .btn-row{margin-top:2.1rem}
.phero--text .phero__grid{grid-template-columns:1fr}
.phero--text .h1{max-width:18ch}
@media (max-width:900px){.phero__grid{grid-template-columns:1fr}.phero__media{order:-1;aspect-ratio:5/4}}

/* ---------- section head ---------- */
.sh{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:end;margin-bottom:clamp(2.5rem,5vw,4rem)}
.sh--stack{grid-template-columns:1fr;max-width:52rem}
@media (max-width:820px){.sh{grid-template-columns:1fr}}

/* ---------- tabs ---------- */
.tabs__bar{position:relative;display:flex;gap:clamp(1rem,2.2vw,2.2rem);overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);background:var(--ivory)}
.tabs__bar::-webkit-scrollbar{display:none}
.tab{position:relative;flex:none;padding:1.1rem 0;font:600 .8rem/1 var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--mush-text);transition:color .3s}
.tab[aria-selected="true"]{color:var(--green)}
@media (hover:hover) and (pointer:fine){.tab:hover{color:var(--green)}}
.tabs__ink{position:absolute;left:0;bottom:-1px;height:2px;background:var(--green);width:0;transition:transform .5s var(--ease-out),width .5s var(--ease-out)}
.tabs--sticky .tabs__bar{position:sticky;top:var(--header-h);z-index:40}
.tabpanel{padding-top:clamp(1.75rem,3vw,2.75rem)}
.tabpanel[hidden]{display:none}
.tabpanel.is-showing{animation:panelIn .55s var(--ease-out)}
@keyframes panelIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.zone{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(1.5rem,4vw,4rem);align-items:start}
.zone__media{aspect-ratio:4/5;position:sticky;top:calc(var(--header-h) + 2rem)}
.zone__media .px{height:100%}
@media (max-width:820px){.zone{grid-template-columns:1fr}.zone__media{position:static;aspect-ratio:16/10}}

/* ---------- price rows (accordion) ---------- */
.prows{border-top:1px solid var(--ink)}
.prow{border-bottom:1px solid var(--line)}
.prow__btn{display:grid;grid-template-columns:minmax(0,1fr) auto 1.6rem;align-items:baseline;gap:1rem;width:100%;text-align:left;padding:1.15rem .25rem;transition:padding .4s var(--ease-out),background-color .3s}
.prow__name{font:500 1.02rem/1.35 var(--body);color:var(--ink)}
.prow__price{font:600 1.15rem/1 var(--body);font-variant-numeric:tabular-nums lining-nums;color:var(--green);white-space:nowrap}
.prow__price.is-free{color:var(--mush-ink)}
.prow__icon{position:relative;width:1rem;height:1rem;align-self:center;justify-self:end}
.prow__icon::before,.prow__icon::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:var(--green);transition:transform .4s var(--ease-out)}
.prow__icon::after{transform:rotate(90deg)}
.prow.is-open .prow__icon::after{transform:rotate(0)}
.prow__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease-out)}
.prow.is-open .prow__body{grid-template-rows:1fr}
.prow__inner{overflow:hidden}
.prow__inner p{padding:.15rem 3rem 1.4rem .25rem;color:var(--ink-soft);max-width:66ch;font-size:.97rem}
.prow__inner .link{margin:0 0 1.5rem .25rem}
@media (hover:hover) and (pointer:fine){.prow__btn:hover{padding-inline:1rem;background:var(--sage-soft)}}
.tabs-note{margin-top:2rem;font-size:.9rem;color:var(--mush-text);max-width:60ch}

/* ---------- packages ---------- */
.pkg{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;gap:1.5rem 2rem;align-items:center;padding:1.75rem 0;border-bottom:1px solid var(--line)}
.pkgs{border-top:1px solid var(--ink)}
.pkg__name{font:400 clamp(1.25rem,1.9vw,1.6rem)/1.25 var(--display)}
.pkg__desc{margin-top:.5rem;font-size:.92rem;color:var(--ink-soft);max-width:58ch}
.pkg__cmp{font-size:.88rem;color:var(--mush-text)}
.pkg__cmp s{color:var(--mush-text)}
.pkg__save{display:inline-block;margin-top:.4rem;padding:.3rem .65rem;background:var(--sage-soft);color:var(--green);font:600 .78rem/1 var(--body);letter-spacing:.04em}
.pkg__price{font:600 1.7rem/1 var(--body);color:var(--green);font-variant-numeric:tabular-nums}
@media (max-width:820px){.pkg{grid-template-columns:1fr auto}.pkg__cmp{grid-column:1/-1;order:3}}
.consult{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.consult__img{aspect-ratio:4/3}.consult__img .px{height:100%}
.consult__price{font:400 clamp(3.4rem,8vw,6rem)/1 var(--display);color:var(--mush);margin-bottom:1rem}
@media (max-width:820px){.consult{grid-template-columns:1fr}}

/* ---------- path cards (women / men) ---------- */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.steps li{padding:2rem 2rem 2.4rem 0;border-right:1px solid var(--line);margin-right:2rem}
.steps li:last-child{border-right:0;margin-right:0}
.steps h3{margin-bottom:.8rem}.steps p{color:var(--ink-soft);font-size:.98rem}
@media (max-width:820px){.steps{grid-template-columns:1fr}.steps li{border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding-right:0}}

/* ---------- FAQ ---------- */
.acc{border-top:1px solid var(--ink);max-width:56rem}
.acc .prow__name{font:400 clamp(1.15rem,1.7vw,1.4rem)/1.3 var(--display)}
.acc .prow__btn{padding-block:1.4rem}

/* ---------- before/after ---------- */
.ba{position:relative;max-width:620px;margin-inline:auto;aspect-ratio:4/3.2;overflow:hidden;cursor:ew-resize;user-select:none;touch-action:pan-y;background:var(--stone)}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba__before{filter:grayscale(1) brightness(.85) contrast(.9)}
.ba__after{clip-path:inset(0 50% 0 0)}
.ba__line{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--ivory);transform:translateX(-1px)}
.ba__grip{position:absolute;top:50%;left:50%;width:3.1rem;height:3.1rem;border-radius:50%;background:var(--ivory);color:var(--green);display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);box-shadow:0 10px 24px -10px rgba(0,0,0,.45);transition:transform .25s var(--ease-out)}
.ba__grip svg{width:1.15rem;height:1.15rem}
.ba:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.ba.is-drag .ba__grip{transform:translate(-50%,-50%) scale(1.1)}
.ba__tag{position:absolute;top:1rem;padding:.4rem .7rem;background:rgba(27,52,51,.7);color:var(--ivory);font:600 .68rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase}
.ba__tag--l{left:1rem}.ba__tag--r{right:1rem}
.ba__pct{position:absolute;top:1rem;left:50%;transform:translateX(-50%);background:var(--ivory);color:var(--green);padding:.4rem .8rem;font:600 .85rem/1 var(--body);font-variant-numeric:tabular-nums;min-width:3.4rem;text-align:center}
.ba-cap{text-align:center;max-width:46ch;margin:1.4rem auto 0;font-size:.88rem;color:var(--mush-text)}

/* ---------- timeline (about) ---------- */
.tl{position:relative;max-width:56rem;margin-inline:auto}
.tl::before{content:"";position:absolute;left:5.5rem;top:.5rem;bottom:.5rem;width:1px;background:var(--line)}
.tl__fill{position:absolute;left:5.5rem;top:.5rem;width:1px;height:0;background:var(--green)}
.tl li{position:relative;display:grid;grid-template-columns:5.5rem 1fr;gap:0 2.6rem;padding-block:1.6rem}
.tl__year{font:400 clamp(1.5rem,2.4vw,2rem)/1 var(--display);color:var(--green);text-align:right;padding-right:.2rem}
.tl li::before{content:"";position:absolute;left:calc(5.5rem - 5px);top:2.1rem;width:11px;height:11px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--mush);transition:background-color .5s,border-color .5s,transform .5s var(--ease-out)}
.tl li.is-in::before{background:var(--green);border-color:var(--green);transform:scale(1.15)}
.tl p{color:var(--ink-soft);max-width:44ch}
@media (max-width:560px){.tl::before,.tl__fill{left:.3rem}.tl li{grid-template-columns:1fr;padding-left:2rem}.tl li::before{left:-.2rem}.tl__year{text-align:left}}

/* ---------- contact ---------- */
.cgrid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,6vw,6rem);align-items:start}
.cinfo dl{margin:2.25rem 0 0;border-top:1px solid var(--ink)}
.cinfo dl>div{display:grid;grid-template-columns:8.5rem 1fr;gap:1rem;padding:1.15rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.cinfo dt{font:600 .7rem/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mush-text)}
.cinfo dd{margin:0;font:400 1.15rem/1.4 var(--display)}
.cinfo dd a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease-out)}
@media (hover:hover){.cinfo dd a:hover{background-size:100% 1px}}
.cinfo dd small{display:block;font:400 .86rem/1.4 var(--body);color:var(--ink-soft);margin-top:.2rem}
.form{background:var(--paper);border:1px solid var(--line);padding:clamp(1.5rem,3.5vw,2.75rem)}
.field{margin-top:1.4rem;position:relative}
.field label{display:block;font:600 .74rem/1.2 var(--body);letter-spacing:.11em;text-transform:uppercase;color:var(--ink);margin-bottom:.55rem}
.field label i{font-style:normal;color:var(--mush-ink)}
.field input,.field select,.field textarea{width:100%;font:400 1rem/1.4 var(--body);color:var(--ink);background:var(--ivory);border:1px solid var(--line);border-radius:2px;padding:.9rem 1rem;transition:border-color .25s,box-shadow .25s,background-color .25s}
.field textarea{min-height:9rem;resize:vertical}
.field select{appearance:none;-webkit-appearance:none;padding-right:2.75rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B3936' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:1rem}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--mush)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(41,75,74,.14);background:#fff}
.field [aria-invalid="true"]{border-color:var(--err)}
.field .err{display:none;margin-top:.45rem;font-size:.85rem;color:var(--err)}
.field.has-err .err{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__note{margin-top:1.5rem;font-size:.86rem;color:var(--ink-soft);line-height:1.6}
.form__note a{text-decoration:underline;text-underline-offset:3px}
.form .btn{margin-top:1.75rem}
.form .btn.is-loading{pointer-events:none;opacity:.8}
.form .btn.is-loading::after{content:"";width:1rem;height:1rem;border:2px solid rgba(244,239,233,.4);border-top-color:var(--ivory);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.form-ok{display:none;text-align:left;padding:1rem 0}
.form-ok h3{font-size:1.9rem;margin-bottom:1rem}.form-ok p{color:var(--ink-soft)}
.form-ok .tick{width:3.2rem;height:3.2rem;border-radius:50%;background:var(--green);color:var(--ivory);display:flex;align-items:center;justify-content:center;margin-bottom:1.4rem}
.form-ok .tick svg{width:1.4rem;height:1.4rem}
.form.is-sent form{display:none}.form.is-sent .form-ok{display:block;animation:panelIn .6s var(--ease-out)}
@media (max-width:900px){.cgrid{grid-template-columns:1fr}.cinfo dl>div{grid-template-columns:7rem 1fr}}
.visit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.hours{margin-top:2rem;border-top:1px solid var(--ink)}
.hours div{display:flex;justify-content:space-between;gap:1rem;padding:.85rem .25rem;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;transition:background-color .3s,padding .4s var(--ease-out)}
.hours div.is-today{background:var(--sage-soft);padding-inline:1rem;font-weight:600;color:var(--green)}
.hours dt,.hours dd{margin:0}
.addr{font:400 1.4rem/1.35 var(--display);margin-top:2rem}
.addr small{display:block;font:400 .95rem/1.5 var(--body);color:var(--ink-soft);margin-top:.5rem}
@media (max-width:820px){.visit{grid-template-columns:1fr}}
.map{position:relative;aspect-ratio:16/8;min-height:380px;background:var(--stone);overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(.96);transition:filter .5s}
@media (hover:hover){.map:hover iframe{filter:none}}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.trio>div{position:relative;padding:2.2rem 2rem 2.6rem 0;margin-right:2rem;border-right:1px solid var(--line)}
.trio>div:last-child{border-right:0;margin-right:0}
.trio h3{font:600 .8rem/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:1rem;display:flex;align-items:center;gap:.7rem}
.trio h3::before{content:"";width:1rem;height:1rem;background:var(--mush);-webkit-mask:var(--spark) center/contain no-repeat;mask:var(--spark) center/contain no-repeat;transition:transform .6s var(--ease-out)}
.trio p{color:var(--ink-soft)}
@media (hover:hover) and (pointer:fine){.trio>div:hover h3::before{transform:rotate(90deg) scale(1.3)}}
.photo-slot{margin-top:2.5rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.photo-slot div{aspect-ratio:4/3;background:var(--stone);display:flex;align-items:center;justify-content:center;text-align:center;padding:1rem;font:600 .68rem/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mush-text);border:1px dashed var(--mush)}
@media (max-width:820px){.trio{grid-template-columns:1fr}.trio>div{border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding-right:0}}
.areas{margin-top:1.5rem;padding:.9rem 0;font-size:.92rem;color:var(--ink-soft);border-block:1px solid var(--line)}

/* ---------- blog ---------- */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem 2rem}
.post{display:block}
.post__img{aspect-ratio:4/3;overflow:hidden;background:var(--stone);margin-bottom:1.25rem}
.post__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-out)}
.post .tag{display:inline-block;font:600 .68rem/1 var(--body);letter-spacing:.13em;text-transform:uppercase;color:var(--mush-text);margin-bottom:.7rem}
.post h3{font-size:1.4rem}
@media (hover:hover) and (pointer:fine){.post:hover .post__img img{transform:scale(1.06)}}
@media (max-width:900px){.posts{grid-template-columns:1fr 1fr}}@media (max-width:560px){.posts{grid-template-columns:1fr}}

/* ---------- utility: sticky book, toast ---------- */
.book-bar{position:fixed;left:.9rem;right:.9rem;bottom:.9rem;z-index:90;display:none;transform:translateY(140%);transition:transform .5s var(--ease-out)}
.book-bar.is-on{transform:none}
.book-bar .btn{width:100%;min-height:3.4rem;box-shadow:0 18px 36px -14px rgba(27,52,51,.6)}
@media (max-width:820px){.book-bar{display:block}}
.toast{position:fixed;left:50%;bottom:1.5rem;z-index:300;max-width:min(92vw,28rem);background:var(--ink);color:var(--ivory);padding:1rem 1.25rem;font-size:.92rem;transform:translate(-50%,24px);opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out),transform .4s var(--ease-out)}
.toast.is-on{opacity:1;transform:translate(-50%,0)}
.legal h2{font-size:1.7rem;margin:2.5rem 0 .8rem}
.pending{padding:1.5rem;border:1px dashed var(--mush);background:var(--paper);color:var(--ink-soft)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}
  .js [data-reveal]{opacity:1;transform:none;clip-path:none}
}

/* accordion gallery: collapsed panels carry a vertical label */
@media (min-width:901px){
  .ag__p:not(.is-active) .ag__label{left:50%;right:auto;transform:translateX(-50%);bottom:1.6rem}
  .ag__p:not(.is-active) .ag__label h3{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:clamp(1rem,1.25vw,1.25rem);margin:0;overflow:visible;text-overflow:clip}
  .ag__p.is-active .ag__label{left:1.4rem;right:1.4rem;transform:none}
}

@media (max-width:560px){
  .ledger__row{gap:.75rem;grid-template-columns:minmax(0,1fr) auto 1.1rem}
  .ledger__name{font-size:1.2rem}
}

@media (max-width:820px){
  .grid-2>*{grid-column:1/-1!important}
  .ag__p:not(.is-active) .ag__label{top:50%;bottom:auto;transform:translateY(-50%)}
  .ag__p:not(.is-active) .ag__label p,.ag__p:not(.is-active) .ag__label .link{display:none}
  .ag__p:not(.is-active) .ag__label h3{margin:0}
  .ag__p.is-active .ag__label{bottom:1.2rem}
}
.se__overlay .link{color:var(--ivory);border-color:rgba(244,239,233,.55)}

/* ---------- treatment areas guide ---------- */
.agrid{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:1rem;padding-top:2rem}
.area{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out),border-color .3s}
.area--wide{grid-column:span 2}
.area__img{display:block;height:var(--ah,12rem);overflow:hidden;background:#F8F2EA}
.area__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}
.area__meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.85rem 1.1rem 1rem;border-top:1px solid var(--line)}
.area__name{font:400 1.12rem/1.2 var(--display);color:var(--ink)}
.area__price{font:600 .92rem/1 var(--body);color:var(--green)}
.area:active{transform:scale(.98)}
.area:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media (hover:hover) and (pointer:fine){
  .area:hover{transform:translateY(-5px);box-shadow:0 26px 40px -26px rgba(41,75,74,.45);border-color:var(--sage)}
  .area:hover .area__img img{transform:scale(1.06)}
}
@media (max-width:900px){.agrid{--cols:3!important}.area--wide{grid-column:span 2}.agrid[style*="--cols:3"] .area--wide{grid-column:auto}}
@media (max-width:640px){.agrid{--cols:2!important;gap:.7rem}.area--wide{grid-column:span 2}.area__img{height:9rem}.area__meta{padding:.7rem .85rem .8rem}.area__name{font-size:1rem}}

/* ---------- icon kit (vector, traced from Flow sheets) ---------- */
.ic{width:1.5rem;height:1.5rem;flex:none;fill:currentColor;color:inherit;overflow:visible}
.ic--md{width:2.3rem;height:2.3rem;color:var(--mush-ink);margin-bottom:.8rem;display:block}
.ic--lg{width:3.4rem;height:3.4rem;color:var(--green);margin-bottom:1.3rem;display:block;transition:transform .5s var(--ease-out),color .3s}
.info-strip div .ic--md{transition:transform .5s var(--ease-out),color .3s}
.steps li,.trio>div{transition:background-color .4s}
@media (hover:hover) and (pointer:fine){
  .steps li:hover .ic--lg,.trio>div:hover .ic--lg{transform:translateY(-4px) rotate(-6deg);color:var(--mush-ink)}
  .info-strip div:hover .ic--md{transform:translateY(-3px);color:var(--green)}
}

/* ---------- perks (icon list) ---------- */
.perks{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.perk{display:grid;grid-template-columns:4.6rem 1fr;gap:1.5rem;align-items:center;padding:1.5rem 0;border-bottom:1px solid var(--line);position:relative;transition:padding .45s var(--ease-out)}
.perk__ic{width:4.6rem;height:4.6rem;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--green);background:var(--paper);transition:background-color .4s var(--ease-out),color .4s,transform .5s var(--ease-out),border-color .4s}
.perk__ic .ic{width:2.5rem;height:2.5rem}
.perk__t{font:400 clamp(1.25rem,1.9vw,1.6rem)/1.2 var(--display);margin:0 0 .3rem}
.perk p{margin:0;color:var(--ink-soft);font-size:.98rem;max-width:52ch}
@media (hover:hover) and (pointer:fine){
  .perk:hover{padding-left:.8rem}
  .perk:hover .perk__ic{background:var(--green);color:var(--ivory);border-color:var(--green);transform:rotate(-8deg) scale(1.06)}
}
@media (max-width:560px){.perk{grid-template-columns:3.4rem 1fr;gap:1rem}.perk__ic{width:3.4rem;height:3.4rem}.perk__ic .ic{width:2rem;height:2rem}}

/* ---------- studio reel: auto-scrolling gallery, 6 columns, moves left to right ---------- */
.reel{--cols:6;padding-block:clamp(3rem,6vw,5.5rem);overflow:hidden}
.reel__head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2.2rem}
.reel__head .h2{margin:0}
.reel__pause{display:inline-flex;align-items:center;gap:.6rem;min-height:2.75rem;padding:.55rem 1.1rem;border:1px solid var(--ink);border-radius:999px;font:600 .72rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);transition:background-color .3s,color .3s,transform .2s var(--ease-out)}
.reel__pause:active{transform:scale(.97)}
.reel__pause-ic{width:.7rem;height:.8rem;border-inline:3px solid currentColor;box-sizing:border-box}
.reel__pause[aria-pressed="true"] .reel__pause-ic{border:0;border-left:.7rem solid currentColor;border-block:.4rem solid transparent;width:0;height:0}
@media (hover:hover) and (pointer:fine){.reel__pause:hover{background:var(--green);color:var(--ivory);border-color:var(--green)}}
.reel__view{overflow:hidden;padding-bottom:2.6rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.reel__view:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.reel__track{display:flex;width:max-content;animation:reel 90s linear infinite;will-change:transform}
.reel__clone{display:contents}
@keyframes reel{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}
.reel__item{position:relative;flex:0 0 calc(100vw / var(--cols) - 1rem);margin:0 .5rem;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:var(--stone);transition:transform .6s var(--ease-out)}
.reel__item:nth-child(even){transform:translateY(2.6rem)}
.reel__item img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)}
.reel__item::after{content:"";position:absolute;inset:0;background:rgba(41,75,74,.0);transition:background-color .5s var(--ease-out)}
.reel__spark{position:absolute;inset:0;display:grid;place-items:center;color:var(--ivory);z-index:2;opacity:0;transform:scale(.8) rotate(-20deg);transition:opacity .4s var(--ease-out),transform .6s var(--ease-out);pointer-events:none}
.reel__spark .ic{width:3rem;height:3rem}
@media (hover:hover) and (pointer:fine){
  .reel__view:hover .reel__track{animation-play-state:paused}
  .reel__item:hover img{transform:scale(1.07)}
  .reel__item:hover::after{background:rgba(41,75,74,.38)}
  .reel__item:hover .reel__spark{opacity:1;transform:none}
}
.reel.is-paused .reel__track,.reel.is-hold .reel__track{animation-play-state:paused}
@media (max-width:1100px){.reel{--cols:4}}
@media (max-width:700px){.reel{--cols:2.4}.reel__head{flex-direction:column;align-items:flex-start}}
@media (prefers-reduced-motion:reduce){
  .reel__track{animation:none;width:auto}.reel__clone,.reel__pause{display:none}
  .reel__view{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
  .reel__item{flex-basis:calc(100vw / var(--cols) - 1rem)}
}

/* ---------- icons applied across the site ---------- */
.ic--nav{width:1.45rem;height:1.45rem;color:var(--mush-ink);flex:none}
.nav__panel a{display:flex;align-items:center;gap:.85rem}
@media (hover:hover) and (pointer:fine){.nav__panel a:hover .ic--nav{color:var(--green)}}
.ic--btn{width:1.3rem;height:1.3rem;margin-right:.55rem;margin-left:-.1rem}
.btn{align-items:center}
.ic--foot{width:1.5rem;height:1.5rem;color:var(--mush);margin-right:.55rem;vertical-align:-.35em}
.site-footer h4{display:flex;align-items:center}
.ic--inl{width:1.25rem;height:1.25rem;color:var(--mush);margin-right:.6rem;vertical-align:-.3em}
.foot__ic{display:inline-flex;align-items:center}
.fact{flex-direction:row;align-items:center;gap:.8rem}
.fact>div{display:flex;flex-direction:column;gap:.15rem}
.ic--fact{width:2rem;height:2rem;color:var(--green)}
.ic--ag{display:block;width:2.2rem;height:2.2rem;color:var(--ivory);margin:0 auto .9rem;transition:margin .4s}
.ag__p.is-active .ic--ag{margin:0 0 .9rem}
.ic--row{width:1.8rem;height:1.8rem;color:var(--mush-ink);flex:none;transition:transform .4s var(--ease-out),color .3s}
.ledger__name,.prow__name{display:flex;align-items:center;gap:.9rem}
.tab{display:inline-flex;align-items:center;gap:.5rem}
.ic--tab{width:1.4rem;height:1.4rem;flex:none}
.ic--tag{width:1rem;height:1rem;margin-right:.4rem;vertical-align:-.15em}
.ic--dt{width:1.15rem;height:1.15rem;margin-right:.55rem;vertical-align:-.25em;color:var(--mush-ink)}
.pkg .ic--md{margin-bottom:.6rem}
.mini{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid var(--ink)}
.mini li{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);font:400 1.15rem/1.3 var(--display)}
@media (hover:hover) and (pointer:fine){
  .ledger__row:hover .ic--row,.prow__btn:hover .ic--row,.mini li:hover .ic--row{transform:scale(1.15) rotate(-6deg);color:var(--green)}
}

/* ---------- perks: sticky heading + active-row tracking ---------- */
.perks-sec .grid-2{align-items:start}
.perks__head{position:sticky;top:calc(var(--header-h) + 2rem);align-self:start}
.perks__stage{display:flex;align-items:center;gap:1.6rem;margin-top:2.4rem}
.perks__disc{position:relative;width:8.5rem;height:8.5rem;border-radius:50%;background:var(--green);color:var(--ivory);flex:none;overflow:hidden}
.perks__ic{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transform:translateY(18px) scale(.85) rotate(-8deg);transition:opacity .45s var(--ease-out),transform .6s var(--ease-out)}
.perks__ic .ic{width:4.6rem;height:4.6rem}
.perks__ic.is-on{opacity:1;transform:none}
.perks__count{font:400 1.1rem/1 var(--display);color:var(--mush-text)}
.perks__count b{font:400 2.4rem/1 var(--display);color:var(--green);margin-right:.2rem}
.perk{min-height:34vh;align-content:center;padding:clamp(1.8rem,4.4vw,3.2rem) 0;opacity:.55;transition:opacity .5s var(--ease-out),padding .45s var(--ease-out)}
.perk.is-active{opacity:1}
.perk.is-active .perk__ic{background:var(--green);color:var(--ivory);border-color:var(--green)}
@media (max-width:900px){
  .perks__head{position:static;grid-column:1/-1!important}.perks__stage{display:none}
  .perks{grid-column:1/-1!important}.perk{opacity:1;padding-block:1.5rem}
}
@media (prefers-reduced-motion:reduce){.perk{opacity:1}.perks__head{position:static}}

/* ---------- rotating text badge ---------- */
.badge{position:absolute;z-index:3;width:clamp(7.5rem,11vw,10rem);aspect-ratio:1;color:var(--green);filter:drop-shadow(0 18px 28px rgba(41,75,74,.28));transition:transform .6s var(--ease-out)}
.badge svg{display:block;width:100%;height:100%;overflow:visible}
.badge__disc{fill:var(--paper);stroke:var(--line);stroke-width:1}
.badge text{font:600 11.5px var(--body);letter-spacing:.06em;fill:var(--green)}
.badge__ring{transform-box:view-box;transform-origin:100px 100px;animation:badgeSpin 26s linear infinite}
.badge__core{fill:var(--green)}
.badge__spark{color:var(--ivory);fill:var(--ivory);transform-box:view-box;transform-origin:100px 100px;animation:badgeSpin 26s linear infinite reverse}
@keyframes badgeSpin{to{transform:rotate(360deg)}}
.badge--hero{left:-3.4rem;top:7%}
.badge--phero{left:-2.4rem;bottom:8%}
.phero__mwrap{position:relative}
@media (hover:hover) and (pointer:fine){.badge:hover{transform:scale(1.07)}.badge:hover .badge__ring{animation-duration:9s}}
@media (max-width:900px){.badge--hero{left:auto;right:.75rem;top:.75rem;width:6.4rem}.badge--phero{left:auto;right:.75rem;bottom:auto;top:.75rem;width:6.4rem}.phero__mwrap{order:-1}}
@media (prefers-reduced-motion:reduce){.badge__ring,.badge__spark{animation:none}}

/* ---------- spark pattern (subtle) ---------- */
.hero,.phero,.cta{position:relative;isolation:isolate}
.hero::before,.phero::before,.cta::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url("../img/pattern-spark.svg") 0 0/96px 96px repeat;opacity:.55;animation:patDrift 90s linear infinite}
.hero::before{-webkit-mask-image:radial-gradient(ellipse 70% 85% at 78% 45%,#000 0,rgba(0,0,0,.55) 45%,transparent 78%);mask-image:radial-gradient(ellipse 70% 85% at 78% 45%,#000 0,rgba(0,0,0,.55) 45%,transparent 78%)}
.phero::before{-webkit-mask-image:radial-gradient(ellipse 65% 90% at 80% 50%,#000 0,rgba(0,0,0,.5) 45%,transparent 80%);mask-image:radial-gradient(ellipse 65% 90% at 80% 50%,#000 0,rgba(0,0,0,.5) 45%,transparent 80%)}
.phero--text::before{-webkit-mask-image:linear-gradient(90deg,transparent 25%,#000);mask-image:linear-gradient(90deg,transparent 25%,#000)}
.cta::before{background-image:url("../img/pattern-spark-dark.svg");opacity:.6;-webkit-mask-image:radial-gradient(ellipse 80% 100% at 50% 50%,#000 0,transparent 85%);mask-image:radial-gradient(ellipse 80% 100% at 50% 50%,#000 0,transparent 85%)}
@keyframes patDrift{to{background-position:96px 96px}}
@media (prefers-reduced-motion:reduce){.hero::before,.phero::before,.cta::before{animation:none}}

/* hero video swaps in over the still once it is playing */
.px>.vwrap{position:relative;width:100%;height:118%;will-change:transform}
.vwrap img,.vwrap video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vwrap video{opacity:0;transition:opacity 1s var(--ease-out)}
.vwrap video.is-playing{opacity:1}

/* hero cards sit in a band above the arch (top right) so they never cover the photo/video */
@media (min-width:901px){
  .hero__media{padding-top:5.6rem;box-sizing:border-box}
  .fact--b{top:.2rem;right:-1rem;left:auto;bottom:auto}
  .fact--a{top:3.4rem;right:5.5rem;left:auto;bottom:auto}
  .badge--hero{top:calc(5.6rem + 8%)}
}
@media (max-width:900px){
  .hero__media{padding-top:4.6rem;box-sizing:border-box;aspect-ratio:1/1.02}
  .fact{padding:.55rem .85rem;gap:.6rem}.fact b{font-size:.95rem}.fact span{font-size:.6rem}.ic--fact{width:1.6rem;height:1.6rem}
  .fact--b{top:0;right:.5rem;left:auto;bottom:auto}
  .fact--a{top:2.9rem;left:.5rem;right:auto;bottom:auto}
  .badge--hero{top:5.4rem;right:.75rem}
}
@media (max-width:900px){.hero::before,.phero::before,.cta::before{opacity:.3;background-size:72px 72px}@keyframes patDrift{to{background-position:72px 72px}}}

/* =====================================================================
   Oct 16 revisions — Laser Hair Removal (.lx) and Prices & Packages (.pp)
   ===================================================================== */
[hidden]{display:none!important}
.lx-s{padding-block:clamp(4.5rem,9vw,8.5rem)}
.lx-s--stone{background:var(--stone)}
.lx-green{background:var(--green)}
.lx-hero{padding-block:clamp(2rem,4vw,3.5rem) clamp(3.5rem,7vw,6.5rem)}
.lx-hero__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.lx-hero__img{aspect-ratio:4/5;border-radius:2px;overflow:hidden}
.lx-hero__img .px,.lx-hero__img img{height:100%}
.lx-hero__img img{width:100%;object-fit:cover}
.lx-tag,.pp-tag{font:italic 400 clamp(1.35rem,2.3vw,1.9rem)/1.25 var(--display);color:var(--mush-ink);margin-top:1.3rem}
.lx-hero .lede{margin-top:1.2rem}.lx-hero .btn-row{margin-top:2.2rem}
.lx-sub{font:600 .78rem/1.5 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mush-text);margin-top:1.1rem;max-width:60ch}
.lx-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.lx-split--img{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.lx-fig-wrap{aspect-ratio:4/5;overflow:hidden}
.lx-fig-wrap img{width:100%;height:100%;object-fit:cover}
.lx-points{border-top:1px solid var(--ink)}
.lx-points li{padding:1.15rem 0;border-bottom:1px solid var(--line);font:400 clamp(1.2rem,1.8vw,1.5rem)/1.3 var(--display)}
.lx-list{margin:1.6rem 0;border-top:1px solid var(--line)}
.lx-list li{padding:.8rem 0;border-bottom:1px solid var(--line);color:var(--ink-soft)}
.lx-lead{font:400 1.25rem/1.4 var(--display);margin-bottom:.4rem}
.lx-wave{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.lx-range{font:400 clamp(3.4rem,9vw,7.5rem)/1 var(--display);color:var(--green);letter-spacing:-.03em;display:flex;align-items:baseline;gap:.5rem;justify-content:flex-end;white-space:nowrap}
.lx-range small{font:600 .9rem/1 var(--body);letter-spacing:.16em;color:var(--mush-ink);text-transform:uppercase}
.lx-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);margin-top:clamp(2.5rem,5vw,4rem);padding-top:2rem;border-top:1px solid var(--ink)}
.lx-cols h3{margin-bottom:.8rem}.lx-cols p{color:var(--ink-soft);font-size:.98rem}
.lx-close{margin-top:2.5rem;font:italic 400 1.25rem/1.45 var(--display);color:var(--green);max-width:46ch}
.lx-center{max-width:880px;text-align:center}
.lx-center .prose{margin:1.8rem auto 0;color:rgba(244,239,233,.84)}
.lx-center .h1{color:var(--ivory)}
.lx-pull{font:italic 400 clamp(1.4rem,2.6vw,2.1rem)/1.3 var(--display);color:var(--mush-ink)}
.on-green .lx-pull{color:var(--mush);margin:2rem auto 0}
.lx-head{margin-bottom:clamp(2rem,4vw,3.5rem);max-width:60ch}
.lx-head .lede{margin-top:1.2rem}
.lx-shade{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2rem,5vw,5rem);align-items:end;margin-bottom:clamp(2rem,4vw,3.5rem)}
.lx-gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem}
.lx-fig{margin:0;aspect-ratio:3/4;overflow:hidden;background:var(--stone)}
.lx-fig img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.lx-fig:hover img{transform:scale(1.05)}}
.lx-fine{margin-top:1.4rem;font-size:.86rem;color:var(--mush-text);max-width:62ch}
.lx-u{text-decoration:underline;text-underline-offset:3px}
.lx-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.lx-steps li{padding:1.8rem 1.6rem 1rem 0;margin-right:1.6rem;border-right:1px solid var(--line)}
.lx-steps li:last-child{border-right:0;margin-right:0}
.lx-steps__n{display:block;font:400 2.6rem/1 var(--display);color:var(--mush-ink);margin-bottom:1.1rem}
.lx-steps h3{margin-bottom:.7rem}.lx-steps p{color:var(--ink-soft);font-size:.96rem}
.lx-slot{aspect-ratio:4/5;background:var(--stone);display:flex;align-items:center;justify-content:center;text-align:center;padding:1rem;font:600 .72rem/1.6 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mush-text);border:1px dashed var(--mush)}
.lx-agrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;padding-top:2rem}
.lx-area{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);overflow:hidden;transition:border-color .3s,transform .5s var(--ease-out)}
.lx-area__img{display:block;aspect-ratio:1/1;overflow:hidden;background:#F8F2EA}
.lx-area__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}
.lx-area__name{padding:.85rem 1.1rem 1rem;border-top:1px solid var(--line);font:400 1.1rem/1.2 var(--display)}
.lx-area:active{transform:scale(.98)}
@media (hover:hover) and (pointer:fine){.lx-area:hover{border-color:var(--mush)}.lx-area:hover img{transform:scale(1.05)}}
.lx-areas-cta{margin-top:2.5rem}
.lx-final{text-align:center}
.lx-final .h1{color:var(--ivory)}.lx-final .lx-sub{color:var(--sage);margin-inline:auto;font-size:.85rem}
.lx-final .btn-row{justify-content:center;margin-top:2.2rem}
.lx-call{margin-top:2rem}.lx-call a{text-decoration:underline;text-underline-offset:3px}
.lx-addr{font-style:normal;margin-top:1.6rem;color:rgba(244,239,233,.8);font-size:.95rem}
.lx-disc{margin-top:2rem;font-size:.82rem;color:rgba(244,239,233,.62);max-width:56ch;margin-inline:auto}
@media (max-width:900px){
  .lx-hero__grid,.lx-split,.lx-split--img,.lx-wave,.lx-shade{grid-template-columns:1fr}
  .lx-hero__img{order:-1;aspect-ratio:5/4}.lx-fig-wrap{aspect-ratio:5/4}
  .lx-range{justify-content:flex-start}
  .lx-cols{grid-template-columns:1fr}
  .lx-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lx-steps{grid-template-columns:1fr 1fr}.lx-steps li:nth-child(2){border-right:0;margin-right:0}
  .lx-agrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){.lx-steps{grid-template-columns:1fr}.lx-steps li{border-right:0;margin-right:0;border-bottom:1px solid var(--line)}}

/* ---- Prices & Packages: type, colour, lines only. No images, icons or pattern. ---- */
.pp .phero::before,.pp .cta::before,.pp .kicker::before{display:none}
.pp-hero{padding-bottom:clamp(2rem,4vw,3.25rem)}
.pp-hero .h1{max-width:20ch}.pp-hero .lede{margin-top:1.1rem}.pp-hero .btn-row{margin-top:1.8rem}
.pp-tools{padding-bottom:1rem}
.pp-cats{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}
.pp-cats a{font:600 .78rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--green);padding:.55rem 0;border-bottom:1px solid transparent;transition:border-color .25s}
@media (hover:hover){.pp-cats a:hover{border-color:var(--mush)}}
.pp-tools__row{display:flex;flex-wrap:wrap;gap:1.4rem 2.5rem;align-items:flex-end;justify-content:space-between;margin-top:1.4rem}
.pp-search{flex:1 1 20rem;max-width:30rem}
.pp-search label,.pp-plan legend{display:block;font:600 .72rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mush-text);margin-bottom:.6rem;padding:0}
.pp-search input{width:100%;min-height:3rem;padding:.7rem .2rem;background:transparent;border:0;border-bottom:1px solid var(--ink);border-radius:0;font:400 1rem/1.3 var(--body);color:var(--ink)}
.pp-search input::placeholder{color:var(--mush-text);opacity:.8}
.pp-search input:focus{outline:none;border-bottom-width:2px}
.pp-search input:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.pp-plan{border:0;padding:0;margin:0;min-width:0}
.pp-plan{display:flex;flex-wrap:wrap}
.pp-plan legend{width:100%}
.pp-plan label{position:relative;cursor:pointer}
.pp-plan input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.pp-plan span{display:block;padding:.8rem 1.15rem;border:1px solid var(--ink);margin-left:-1px;font:600 .76rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--green);transition:background-color .25s,color .25s}
.pp-plan label:first-of-type span{margin-left:0}
.pp-plan input:checked+span{background:var(--green);color:var(--ivory);border-color:var(--green)}
.pp-plan input:focus-visible+span{outline:2px solid var(--green);outline-offset:3px}
.pp-status{margin-top:1rem;font-size:.88rem;color:var(--mush-text);min-height:1.4em}
.pp-list{padding-block:1rem clamp(3rem,6vw,5rem)}
.pp-head{display:flex;justify-content:space-between;padding:.9rem .25rem;border-bottom:1px solid var(--ink);font:600 .72rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mush-text)}
.pp-cat{padding-top:clamp(2rem,4vw,3rem)}
.pp-cat__h{font:400 clamp(1.7rem,3vw,2.3rem)/1.1 var(--display);margin-bottom:.4rem;color:var(--green)}
.tx{border-bottom:1px solid var(--line)}
.tx__h{margin:0;font:inherit;letter-spacing:0}
.tx__btn{display:grid;grid-template-columns:minmax(0,1fr) auto 1.4rem;align-items:center;gap:1.2rem;width:100%;text-align:left;padding:1.35rem .25rem;transition:background-color .3s,padding .4s var(--ease-out)}
.tx__name{font:400 clamp(1.15rem,1.7vw,1.4rem)/1.25 var(--display);color:var(--ink)}
.tx__price{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}
.tx__amt{font:500 1.2rem/1 var(--body);color:var(--green);white-space:nowrap}
.tx__save{font:600 .72rem/1.2 var(--body);letter-spacing:.06em;color:var(--mush-text);white-space:nowrap}
.tx__pm{position:relative;width:.95rem;height:.95rem;justify-self:end}
.tx__pm::before,.tx__pm::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:var(--green);transition:transform .4s var(--ease-out)}
.tx__pm::after{transform:rotate(90deg)}
.tx.is-open .tx__pm::after{transform:rotate(0)}
.tx__body{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .5s var(--ease-out),visibility 0s .5s}
.tx.is-open .tx__body{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .5s var(--ease-out),visibility 0s 0s}
html:not(.js) .tx__body{grid-template-rows:1fr;visibility:visible}
.tx__in{overflow:hidden}
.tx__desc{padding:.1rem 3rem .4rem .25rem;max-width:70ch;color:var(--ink-soft);font-size:.98rem}
.tx__desc p+p{margin-top:.7em}
.tx__plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;padding:1.1rem .25rem 1.6rem}
.tx__plan{border:1px solid var(--line);padding:1rem 1.1rem;background:var(--paper)}
.tx__plan.is-sel{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.tx__plan h4{font:600 .7rem/1.3 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mush-text);margin-bottom:.7rem}
.tx__big{font:500 1.5rem/1 var(--body);color:var(--green)}
.tx__plan dl{margin:0}
.tx__plan dl div{display:flex;justify-content:space-between;gap:.8rem;padding:.3rem 0;font-size:.86rem;color:var(--ink-soft)}
.tx__plan dt{font-weight:400}.tx__plan dd{margin:0;white-space:nowrap}
.tx__plan .tx__strong{font-weight:600;color:var(--green)}
@media (hover:hover) and (pointer:fine){.tx__btn:hover{background:var(--sage-soft);padding-inline:1rem}}
.pp-empty{padding:2.5rem 0;color:var(--ink-soft)}.pp-empty a,.pp-tel,.pp-addr a{text-decoration:underline;text-underline-offset:3px}
.pp-note{margin-top:clamp(2.5rem,5vw,4rem);padding:clamp(1.6rem,3vw,2.4rem);border:1px solid var(--line);border-top:2px solid var(--mush);background:var(--paper);max-width:62rem}
.pp-note p{margin-top:.9rem;color:var(--ink-soft)}.pp-note .pp-note__fine{font-size:.88rem;color:var(--mush-text)}
.pp-incl{padding-block:clamp(4rem,8vw,7rem)}
.pp-incl .h1{max-width:20ch;color:var(--ivory)}
.pp-incl__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);margin-top:clamp(2rem,4vw,3.5rem);padding-top:2rem;border-top:1px solid rgba(156,138,124,.55)}
.pp-incl__lead{font:400 clamp(1.3rem,2vw,1.7rem)/1.35 var(--display)}
.pp-incl__em{margin-top:1.4rem;font:italic 400 clamp(1.3rem,2vw,1.7rem)/1.35 var(--display);color:var(--mush)}
.pp-incl__close{font:italic 400 1.3rem/1.4 var(--display);color:var(--mush);margin-top:1.6rem!important}
.pp-pk{padding-block:clamp(4rem,8vw,7rem)}
.pp-pk__head{max-width:46rem}.pp-pk__head .lede{margin-top:1rem}
.pp-pk__tiers{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin-top:clamp(2rem,4vw,3rem)}
.pp-pk__tier{padding:clamp(1.6rem,3vw,2.6rem) 0;text-align:left}
.pp-pk__tier+.pp-pk__tier{padding-left:clamp(1.5rem,4vw,3rem);border-left:1px solid var(--line)}
.pp-pk__n{font:600 .78rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--mush-text)}
.pp-pk__pct{font:400 clamp(2.6rem,6vw,4.6rem)/1.05 var(--display);color:var(--green);margin:.7rem 0 1rem}
.pp-pk__copy{margin-top:1.8rem;font:400 1.25rem/1.45 var(--display)}
.pp-pk__fine{margin-top:1rem;font-size:.9rem;color:var(--ink-soft);max-width:66ch}
.pp-pending{margin-top:1.2rem;display:inline-block;padding:.55rem .9rem;border:1px dashed var(--mush);font-size:.82rem;color:var(--mush-text)}
.pp-quote{padding-block:clamp(3.5rem,6vw,5.5rem);background:var(--stone);text-align:center}
.pp-quote .lede{margin:1rem auto 0}.pp-quote .btn-row{justify-content:center;margin-top:1.8rem}
.pp-info{padding-block:clamp(3rem,6vw,5rem)}
.pp-d{border-bottom:1px solid var(--line)}.pp-d:first-of-type{border-top:1px solid var(--ink)}
.pp-d summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:1.35rem .25rem}
.pp-d summary::-webkit-details-marker{display:none}
.pp-d summary h3{font-size:clamp(1.2rem,1.8vw,1.45rem)}
.pp-d summary::after{content:"+";font:300 1.6rem/1 var(--body);color:var(--green)}
.pp-d[open] summary::after{content:"–"}
.pp-d__in{padding:0 .25rem 1.6rem;color:var(--ink-soft);max-width:68ch}
.pp-d__in p+p{margin-top:.8em}.pp-d__in li{padding:.4rem 0 .4rem 1.1rem;position:relative}
.pp-d__in li::before{content:"";position:absolute;left:0;top:1.05rem;width:.4rem;height:1px;background:var(--mush)}
.pp-links{margin-top:2.2rem;font-size:.92rem;color:var(--mush-text)}.pp-links a{text-decoration:underline;text-underline-offset:3px;color:var(--green)}
.pp-final{text-align:center}
.pp-final .h1{max-width:18ch;margin-inline:auto;color:var(--ivory)}
.pp-final .btn-row{justify-content:center;margin-top:2.2rem}
.pp-addr{font-style:normal;margin-top:2.4rem;font-size:.95rem;color:rgba(244,239,233,.8)}
@media (max-width:760px){
  .tx__plans{grid-template-columns:1fr}.tx__desc{padding-right:.5rem}
  .tx__btn{gap:.8rem}.pp-incl__grid{grid-template-columns:1fr}
  .pp-pk__tiers{grid-template-columns:1fr}.pp-pk__tier+.pp-pk__tier{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .pp-plan{width:100%}.pp-plan label{flex:1}.pp-plan span{text-align:center;padding-inline:.4rem}
}
@media (prefers-reduced-motion:reduce){.tx__body,.tx__btn,.tx__pm::before,.tx__pm::after{transition:none}}

/* ---- Oct 17: quiet-luxury pass — no decorative pattern, no decorative kicker mark ---- */
/* spark pattern + kicker mark restored (client asked for the isotype details back); Prices page keeps them off via .pp */
.lx-hero{position:relative;isolation:isolate}
.lx-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url("../img/pattern-spark.svg") 0 0/96px 96px repeat;opacity:.55;animation:patDrift 90s linear infinite;-webkit-mask-image:radial-gradient(ellipse 65% 90% at 80% 50%,#000 0,rgba(0,0,0,.5) 45%,transparent 80%);mask-image:radial-gradient(ellipse 65% 90% at 80% 50%,#000 0,rgba(0,0,0,.5) 45%,transparent 80%)}
.lx-hero--text::before{-webkit-mask-image:linear-gradient(90deg,transparent 25%,#000);mask-image:linear-gradient(90deg,transparent 25%,#000)}
@media (prefers-reduced-motion:reduce){.lx-hero::before{animation:none}}
@media (max-width:900px){.lx-hero::before{opacity:.3;background-size:72px 72px}}
/* arched image frames (rounded top) */
.lx-hero__img,.lx-fig-wrap,.lx-cat__img,.lx-portrait,.hm-cat__img{border-radius:999px 999px 2px 2px}
.lx-mwrap{position:relative}
.lx-mwrap .lx-hero__img{border-radius:999px 999px 2px 2px}
.hm-badge{left:auto;top:auto;right:clamp(1.5rem,7vw,7rem);bottom:12%}
@media (max-width:900px){.hm-badge{right:.9rem;bottom:1rem;width:6.4rem}}

/* ---- footer (Oct 17) ---- */
.foot__brand address{font-style:normal;color:rgba(244,239,233,.82);font-size:.95rem;line-height:1.65}
.foot__contact{margin-top:1rem}.foot__contact a{color:rgba(244,239,233,.9);font-size:.95rem}
.foot__contact li+li{margin-top:.3rem}
.foot__hours{margin:0}.foot__hours div{margin-bottom:.7rem}.foot__hours dt{font-size:.82rem;color:var(--sage)}.foot__hours dd{margin:0;font-size:.95rem;color:rgba(244,239,233,.88)}
.social{display:flex;gap:.9rem;margin-top:1.5rem}
.social a{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid rgba(244,239,233,.3);border-radius:50%;color:var(--ivory);transition:background-color .3s,color .3s,border-color .3s}
.social svg{width:1.15rem;height:1.15rem}
@media (hover:hover) and (pointer:fine){.social a:hover{background:var(--ivory);color:var(--green);border-color:var(--ivory)}}

/* =====================================================================
   Oct 17 — home + editorial templates (women, men, skin, lash, about, FAQ)
   ===================================================================== */
.ph{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;height:100%;min-height:12rem;padding:1rem;background:linear-gradient(160deg,#E7DDD1,#D9CBBB);font:600 .68rem/1.6 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--mush-text)}
.frame>img,.lx-fig-wrap>img,.lx-cat__img>img{width:100%;height:100%;object-fit:cover}
.lx-hero__img{position:relative}.lx-hero__img>img,.lx-hero__img>.ph{position:absolute;inset:0}
.lx-narrow{max-width:820px}
.lx-hero--text{padding-bottom:clamp(2.5rem,5vw,4rem)}
.lx-lede2{margin-top:1.6rem;font-size:clamp(1.1rem,1.4vw,1.3rem);line-height:1.65}
.lx-links{padding-block:clamp(1.8rem,3vw,2.6rem);background:var(--ivory);border-top:1px solid var(--line)}
.lx-links p,.lx-links__p{font-size:.92rem;color:var(--mush-text)}.lx-links a,.lx-links__p a{text-decoration:underline;text-underline-offset:3px;color:var(--green)}
.lx-links__p{margin-top:3rem}
.lx-split--top{align-items:start}
.lx-portrait{aspect-ratio:4/5;overflow:hidden}.lx-portrait .ph{position:absolute;inset:0}
.lx-meta{font:600 .85rem/1.3 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mush-ink);margin-top:.9rem}
.lx-price{font:400 clamp(2.4rem,4.5vw,3.4rem)/1 var(--display);color:var(--green);margin:.9rem 0 1.2rem}
.lx-cats{display:grid;gap:clamp(3rem,6vw,5rem)}
.lx-cat{display:grid;gap:clamp(1.5rem,4vw,4rem);padding-top:clamp(1.8rem,3vw,2.6rem);border-top:1px solid var(--ink);scroll-margin-top:calc(var(--header-h) + 24px)}
.lx-cat--img{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}
.lx-cat--img:nth-child(even){grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.lx-cat--img:nth-child(even) .lx-cat__txt{order:2}
.lx-cat__txt{max-width:62ch}.lx-cat__txt .h2{margin-bottom:1.2rem}
.lx-cat__img{margin:0;aspect-ratio:4/5;overflow:hidden;position:relative}.lx-cat__img .ph{position:absolute;inset:0}
.lx-opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);margin-top:1.4rem;border-top:1px solid var(--ink);padding-top:1.8rem}
.lx-opt .h3{margin-bottom:.2rem}.lx-opt .prose{margin-top:1rem;font-size:.97rem}
.lx-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);margin-top:clamp(3rem,6vw,5rem);padding-top:2.2rem;border-top:1px solid var(--line)}
.lx-lashes{display:grid;gap:clamp(3rem,6vw,5rem)}
.lx-lash{display:grid;gap:clamp(1.5rem,4vw,4rem);padding-top:2rem;border-top:1px solid var(--ink);scroll-margin-top:calc(var(--header-h) + 24px)}
.lx-lash--img{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}
.lx-lash--img:nth-child(even){grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.lx-lash--img:nth-child(even)>div{order:2}
.lx-lash .lx-fig-wrap{position:relative}.lx-lash .ph,.lx-fig-wrap .ph{position:absolute;inset:0}
.lx-links__p{text-align:left}
.hours--plain{margin-top:.8rem;border-top:1px solid var(--line)}
/* home */
.hm-hero{position:relative;isolation:isolate;min-height:min(86vh,760px);display:flex;align-items:center;overflow:hidden}
.hm-hero__bg{position:absolute;inset:0;z-index:-2}
.hm-hero__bg img,.hm-hero__bg .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:75% 30%}
.hm-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(244,239,233,.94) 0,rgba(244,239,233,.82) 38%,rgba(244,239,233,0) 72%)}
.hm-hero__in{padding-block:clamp(3rem,8vw,6rem)}
.hm-hero__txt{max-width:36rem}
.hm-hero .lede{margin-top:1.6rem}.hm-hero .btn-row{margin-top:2.2rem}
.hm-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.hm-ben{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);margin-top:clamp(2.5rem,5vw,4rem);padding-top:2rem;border-top:1px solid var(--ink)}
.hm-ben h3{margin-bottom:.7rem}.hm-ben p{color:var(--ink-soft);font-size:.97rem}
.hm-cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.8rem,2vw,1.6rem)}
.hm-cat{display:block}
.hm-cat__img{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;margin-bottom:1.1rem}
.hm-cat__img img,.hm-cat__img .ph{position:absolute;inset:0;transition:transform 1.1s var(--ease-out)}
.hm-cat__name{display:block;font:400 clamp(1.25rem,1.8vw,1.55rem)/1.2 var(--display);color:var(--ink)}
.hm-cat__txt{display:block;margin-top:.5rem;font-size:.92rem;color:var(--ink-soft);line-height:1.55}
@media (hover:hover) and (pointer:fine){.hm-cat:hover .hm-cat__img img,.hm-cat:hover .hm-cat__img .ph{transform:scale(1.04)}.hm-cat:hover .hm-cat__name{color:var(--green)}}
.hm-loc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.hm-loc__info address{font-style:normal;line-height:1.7}.hm-loc__info address span{color:var(--mush-text)}
.hm-loc__info p{margin-top:.9rem}.hm-loc__info a{text-decoration:underline;text-underline-offset:3px}
.hm-loc__h{font:600 .72rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mush-text);margin-top:2rem}
/* faq */
.faqx{margin-top:clamp(2.5rem,5vw,4rem)}
.faqx__h{font:400 clamp(1.7rem,3vw,2.3rem)/1.1 var(--display);color:var(--green);margin-bottom:.6rem}
.faqx__q{margin:0;font:inherit;letter-spacing:0}
.faqx .prow__name{font:400 clamp(1.05rem,1.5vw,1.25rem)/1.35 var(--display)}
.faqx .prow__btn{grid-template-columns:minmax(0,1fr) 1.4rem;padding-block:1.3rem}
.faqx__a{max-width:68ch}.faqx__a p{padding:.15rem 3rem .9rem .25rem!important}
.faqx__a ul{padding:0 3rem .9rem 1.3rem;color:var(--ink-soft);font-size:.97rem}.faqx__a li{list-style:disc;padding:.25rem 0}
.faqx__a a{text-decoration:underline;text-underline-offset:3px;color:var(--green)}
.faqx .prow__icon::before,.faqx .prow__icon::after{background:var(--green)}
@media (max-width:900px){
  .lx-cat--img,.lx-cat--img:nth-child(even),.lx-lash--img,.lx-lash--img:nth-child(even),.lx-opts,.lx-two,.hm-intro,.hm-loc{grid-template-columns:1fr}
  .lx-cat--img:nth-child(even) .lx-cat__txt,.lx-lash--img:nth-child(even)>div{order:0}
  .lx-cat__img{aspect-ratio:5/4}
  .hm-cats{grid-template-columns:repeat(2,minmax(0,1fr))}.hm-ben{grid-template-columns:1fr 1fr}
  .hm-hero::after{background:linear-gradient(180deg,rgba(244,239,233,.55) 0,rgba(244,239,233,.92) 70%)}
  .hm-hero{min-height:0;align-items:flex-end;padding-top:46vw}
  .faqx__a p,.faqx__a ul{padding-right:.5rem!important}
}
@media (max-width:520px){.hm-ben{grid-template-columns:1fr}}
@media (max-width:900px){.lx-mwrap{order:-1}.lx-mwrap .lx-hero__img{order:0;aspect-ratio:5/4;border-radius:999px 999px 2px 2px}}
.lede p+p{margin-top:.9em}

/* =====================================================================
   Oct 17 (3): bold emphasis, mobile read-more, floating hero chip, accordions, parallax
   ===================================================================== */
.prose strong,.lede strong,.lx-cat__txt strong,.faqx__a strong,.catacc strong,.pp-note strong,.pp-d__in strong{font-weight:600;color:var(--ink)}
.on-green strong{color:var(--ivory)}
/* parallax on arched/split images: image is 118% tall inside a clipped frame */
.lx-hero__img.px>img,.lx-fig-wrap.px>img{position:relative;inset:auto;width:100%;height:118%;object-fit:cover}
.lx-hero__img.px,.lx-fig-wrap.px{overflow:hidden}
/* floating hero chip */
.hero-chip{position:absolute;z-index:3;right:-1.4rem;top:58%;max-width:14rem;padding:.85rem 1.1rem;background:var(--paper);border:1px solid var(--line);border-left:2px solid var(--mush);box-shadow:0 22px 40px -22px rgba(27,52,51,.5);display:flex;flex-direction:column;gap:.15rem;animation:chipFloat 6s ease-in-out infinite}
.hero-chip b{font:400 1.1rem/1.25 var(--display);color:var(--green)}
.hero-chip span{font:600 .68rem/1.4 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mush-text)}
@keyframes chipFloat{50%{transform:translateY(-9px)}}
@media (prefers-reduced-motion:reduce){.hero-chip{animation:none}}
/* mobile read-more */
.fold__btn{display:none;margin-top:.9rem;font:600 .78rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--green);padding:.4rem 0;border-bottom:1px solid var(--mush)}
@media (max-width:760px){
  .foldable .fold__btn{display:inline-flex}
  .fold-1:not(.is-open)>p:nth-of-type(n+2),.fold-2:not(.is-open)>p:nth-of-type(n+3),.fold-3:not(.is-open)>p:nth-of-type(n+4){display:none}
  .hero-chip{right:auto;left:.7rem;top:auto;bottom:.8rem;max-width:11.5rem;padding:.65rem .85rem}
  .hero-chip b{font-size:.98rem}
}
/* category / option accordions */
.catacc{border-top:1px solid var(--ink)}
.catacc__h{margin:0;font:inherit;letter-spacing:0}
.catacc .prow__btn{padding-block:1.5rem}
.catacc .prow__name{font:400 clamp(1.35rem,2.4vw,2rem)/1.2 var(--display);color:var(--ink)}
.catacc .prow__price{font:600 .85rem/1.2 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--mush-ink)}
.catacc__in{display:grid;gap:clamp(1.5rem,4vw,3.5rem)}
.catacc__in>*{margin:.4rem .25rem 2.2rem}
.catacc__in--img{grid-template-columns:minmax(0,1fr) minmax(0,.5fr);align-items:start}
.catacc .prow__inner .prose{max-width:62ch}
.catacc .prow__inner p{padding:0;max-width:none;font-size:1rem}
.catacc .prose p+p{margin-top:.9em}
.catacc__img{margin:0;aspect-ratio:4/5;border-radius:999px 999px 2px 2px;overflow:hidden;position:relative;max-width:20rem}
.catacc__img img{width:100%;height:100%;object-fit:cover}
.prow.is-open>.catacc__h .prow__name,.prow.is-open .prow__btn .prow__name{color:var(--green)}
@media (max-width:760px){.catacc__in--img{grid-template-columns:1fr}.catacc__img{max-width:15rem}.catacc .prow__btn{padding-block:1.2rem}}
/* home accordion gallery sits on stone, keep clear of the arches rule */
.ag__p{border-radius:999px 999px 2px 2px}
@media (max-width:900px){.ag__p{border-radius:2px}}

/* =====================================================================
   Oct 17 (4): contrast, hero framing, sticky price submenu, bg parallax, hero video
   ===================================================================== */
/* accordion gallery: legible link + stronger scrim */
.ag__p::after{background:linear-gradient(180deg,rgba(27,52,51,0) 30%,rgba(27,52,51,.92))}
.ag__label .link,.ag__label .link svg{color:var(--ivory)}
.ag__label .link{border-color:rgba(244,239,233,.55);text-shadow:0 1px 10px rgba(27,52,51,.6)}
.ag__label h3,.ag__label p{text-shadow:0 1px 12px rgba(27,52,51,.55)}
.ag__label p{color:var(--ivory)}
/* hero image framing: subject stays inside the arch */
.lx-hero__img img{object-position:var(--ox,50%) 38%}
/* sticky price submenu */
.pp-cats--sticky{position:sticky;top:var(--header-h);z-index:45;background:rgba(244,239,233,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:0}
.pp-cats--sticky .wrap{display:flex;gap:.2rem 1.8rem;overflow-x:auto;scrollbar-width:none;padding-block:.15rem}
.pp-cats--sticky .wrap::-webkit-scrollbar{display:none}
.pp-cats--sticky a{flex:none;padding:1rem 0;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .25s,border-color .25s}
.pp-cats--sticky a.is-active{border-color:var(--green);color:var(--green)}
.pp-cat{scroll-margin-top:2rem}
.pp-tools{padding-top:1.6rem}
@media (max-width:760px){.pp-cats--sticky .wrap{gap:.2rem 1.3rem}.pp-cats--sticky a{font-size:.72rem}}
/* background photo + tinted overlay + parallax inside multi-section pages */
.has-bg{position:relative;isolation:isolate;overflow:hidden}
.has-bg>.wrap{position:relative;z-index:2}
.bgpx{position:absolute;inset:0;z-index:0;pointer-events:none}
.bgpx__img{position:absolute;inset:0;overflow:hidden}
.bgpx__img>img{width:100%;height:122%;object-fit:cover;filter:saturate(.7) contrast(1.02)}
.bgpx__ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,52,51,.86),rgba(41,75,74,.8))}
.has-bg.cta::before{z-index:1}
/* reel: bare header (button only) */
.reel__head--bare{justify-content:flex-end;margin-bottom:1.2rem}
/* hero video */
.hm-hero__clips{position:absolute;inset:0;z-index:0}
.hm-hero__clips video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:75% 30%;opacity:0;transition:opacity 1.4s ease}
.hm-hero__clips video.is-on{opacity:1}
@media (prefers-reduced-motion:reduce){.hm-hero__clips{display:none}}

/* ---- star (isotype) bullets on every list ---- */
.lx-list li,.lx-points li,.pp-d__in li,.faqx__a li,.prose ul li,.catacc .prose ul li{position:relative;list-style:none;padding-left:1.8rem}
.lx-list li::before,.lx-points li::before,.pp-d__in li::before,.faqx__a li::before,.prose ul li::before{content:"";position:absolute;left:0;width:.95rem;height:.95rem;background:var(--mush);-webkit-mask:var(--spark) center/contain no-repeat;mask:var(--spark) center/contain no-repeat;height:.95rem;border:0}
.lx-list li::before{top:calc(.8rem + .32em)}
.lx-points li::before{top:calc(1.15rem + .3em);width:1.05rem;height:1.05rem}
.pp-d__in li::before{top:calc(.4rem + .42em)}
.faqx__a li::before,.prose ul li::before{top:calc(.25rem + .4em)}
.on-green .lx-list li::before,.on-green .prose ul li::before{background:var(--mush)}
.faqx__a ul{padding-left:0;padding-right:3rem}.faqx__a li{padding-block:.3rem}
.lx-list li,.pp-d__in li{color:var(--ink-soft)}
.catacc__img img{object-position:var(--ox,50%) 40%}
.catacc__cta{margin-top:1.6rem}

/* ---- Oct 17 (5): green sticky submenu; footer separated from the closing CTA ---- */
.pp-cats--sticky{background:var(--green);border-bottom:1px solid rgba(244,239,233,.14);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 14px 24px -20px rgba(27,52,51,.7)}
.pp-cats--sticky a{color:rgba(244,239,233,.78)}
.pp-cats--sticky a.is-active{color:var(--ivory);border-color:var(--mush)}
@media (hover:hover){.pp-cats--sticky a:hover{color:var(--ivory);border-color:rgba(156,138,124,.7)}}
.pp .pp-final::before{display:block}
.site-footer{background:var(--green-deep);border-top:1px solid rgba(156,138,124,.35)}

/* ---- nav hover: isotype star glows softly behind the item, centered; disappears on mouse-out ---- */
@media (min-width:1081px){
  .nav__link,.nav__panel a{isolation:isolate}
  .nav__link::before,.nav__panel a::before{content:"";position:absolute;left:50%;top:50%;z-index:-1;width:2.9rem;height:2.9rem;background:var(--mush);opacity:0;pointer-events:none;-webkit-mask:var(--spark) center/contain no-repeat;mask:var(--spark) center/contain no-repeat;transform:translate(-50%,-50%) scale(.55) rotate(-35deg);transition:opacity .35s var(--ease-out),transform .6s var(--ease-out)}
  .nav__panel a{position:relative}
  .nav__panel a::before{width:2.4rem;height:2.4rem}
}
@media (min-width:1081px) and (hover:hover) and (pointer:fine){
  .nav__link:hover::before,.nav__item:hover>.nav__link::before,.nav__link:focus-visible::before,.nav__panel a:hover::before,.nav__panel a:focus-visible::before{opacity:.28;transform:translate(-50%,-50%) scale(1) rotate(0)}
}

/* ---- collage (left column of long sections) ---- */
.collage{position:sticky;top:calc(var(--header-h) + 2rem);align-self:start;aspect-ratio:1/1.12;width:100%;max-width:34rem;justify-self:center}
.collage figure{position:absolute;margin:0;overflow:hidden;background:var(--stone);box-shadow:0 30px 50px -34px rgba(27,52,51,.55)}
.collage img,.collage .ph{width:100%;height:100%;object-fit:cover;object-position:var(--ox,50%) 40%}
.collage__a{left:0;top:0;width:66%;height:64%;border-radius:999px 999px 2px 2px}
.collage__b{right:0;top:12%;width:38%;height:34%;border-radius:999px 999px 2px 2px;z-index:2;border:6px solid var(--stone)}
.collage__c{left:6%;bottom:0;width:40%;height:34%;border-radius:2px 2px 999px 999px;z-index:2;border:6px solid var(--stone)}
.collage__d{right:4%;bottom:6%;width:46%;height:42%;border-radius:999px 999px 2px 2px}
.collage__c img{object-position:30% 55%}
@media (max-width:900px){.collage{position:relative;top:auto;max-width:26rem;aspect-ratio:1/1}}

/* ---- mobile menu: isotype star as bullet on submenu items ---- */
@media (max-width:1080px){
  .nav__panel a{position:relative;padding-left:1.7rem}
  .nav__panel a::before{content:"";position:absolute;left:0;top:50%;width:.95rem;height:.95rem;background:var(--mush);-webkit-mask:var(--spark) center/contain no-repeat;mask:var(--spark) center/contain no-repeat;transform:translateY(-50%)}
}

/* =====================================================================
   The LIV Journal (blog index + article template)
   ===================================================================== */
.jr-hero{padding-bottom:clamp(2.5rem,5vw,4rem)}
.jr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2.5rem,5vw,4.5rem) clamp(1.5rem,3vw,2.8rem)}
.jr-card{display:flex;flex-direction:column}
.jr-card__img{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--stone);margin-bottom:1.4rem}
.jr-card__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)}
.jr-card__date,.jr-card__cat{display:block;font:600 .72rem/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mush-text);margin-bottom:.7rem}
.jr-card__title{font:400 clamp(1.4rem,1.9vw,1.75rem)/1.22 var(--display);letter-spacing:-.01em;margin-bottom:.8rem}
.jr-card__title a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease-out)}
.jr-card__ex{color:var(--ink-soft);font-size:.97rem;margin-bottom:1.2rem}
.jr-card__more{margin-top:auto;align-self:flex-start}
@media (hover:hover) and (pointer:fine){.jr-card:hover .jr-card__img img{transform:scale(1.04)}.jr-card__title a:hover{background-size:100% 1px}}
@media (max-width:1000px){.jr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.jr-grid{grid-template-columns:1fr}}
.jr-pager{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;align-items:center;justify-content:center;margin-top:clamp(3rem,6vw,5rem);padding-top:2rem;border-top:1px solid var(--line);font:600 .8rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase}
.jr-pager a{padding:.5rem .3rem;border-bottom:1px solid transparent;color:var(--ink-soft)}
.jr-pager a[aria-current]{color:var(--green);border-color:var(--green)}
/* article */
.jr-head{padding-top:clamp(2rem,4vw,3.5rem)}
.jr-head .h1{max-width:20ch;font-size:clamp(2.3rem,4.8vw,4rem)}
.jr-dek{font:italic 400 clamp(1.2rem,2vw,1.55rem)/1.45 var(--display);color:var(--mush-ink);margin-top:1.4rem;max-width:40ch}
.jr-by{margin-top:1.6rem;font:600 .74rem/1.4 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mush-text)}
.jr-hero-img{margin:clamp(2rem,4vw,3.2rem) auto 0;max-width:1080px;padding-inline:var(--pad);aspect-ratio:21/9}
.jr-hero-img img{width:100%;height:100%;object-fit:cover}
.jr-wrap{max-width:calc(44rem + 2 * var(--pad));margin-inline:auto;padding:clamp(2.5rem,5vw,4rem) var(--pad) clamp(3rem,6vw,5rem)}
.jr-body{max-width:none;color:var(--ink);font-size:clamp(1.05rem,1.2vw,1.15rem);line-height:1.85}
.jr-body p{margin:0 0 1.35em}
.jr-body h2{font-size:clamp(1.7rem,2.7vw,2.25rem);margin:2.6em 0 .7em}
.jr-body h3{font-size:clamp(1.25rem,1.8vw,1.5rem);margin:2em 0 .5em;color:var(--green)}
.jr-body h2+p,.jr-body h3+p{margin-top:0}
.jr-body a{text-decoration:underline;text-decoration-color:var(--mush);text-underline-offset:3px;color:var(--green)}
.jr-body ul,.jr-body ol{margin:0 0 1.5em;padding:0}
.jr-body ul li{padding-block:.35rem}
.jr-body ol{list-style:decimal;padding-left:1.4rem}.jr-body ol li{padding:.3rem 0 .3rem .3rem}
.jr-body blockquote{margin:2em 0;padding-left:1.4rem;border-left:2px solid var(--mush);font:italic 400 1.3rem/1.5 var(--display);color:var(--green)}
.jr-body strong{font-weight:600}
.jr-fig{margin:2.2rem 0}.jr-fig img{width:100%;height:auto}.jr-fig figcaption{margin-top:.7rem;font-size:.85rem;color:var(--mush-text)}
.jr-body p.jr-btn{margin:2.4rem 0 3rem}
.jr-body p.jr-btn a.btn{text-decoration:none;color:var(--ivory)}
.jr-body hr{border:0;border-top:1px solid var(--line);margin:3rem 0}
/* references */
.jr-body h2#references-further-reading{font-size:clamp(1.4rem,2vw,1.75rem);padding-top:2rem;border-top:1px solid var(--ink);margin-top:3rem}
.jr-refs{font-size:.95rem;line-height:1.65;color:var(--ink-soft)}
.jr-refs li{padding:.7rem 0 .7rem .3rem}
.jr-refs p{margin:0 0 .35em}
.jr-refs a{word-break:break-all;font-size:.88rem;color:var(--mush-text)}
.jr-body>p:last-child{margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.88rem;line-height:1.65;color:var(--mush-text)}
.jr-foot{margin-top:2.5rem}
.jr-back{font:600 .78rem/1.2 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--green);border-bottom:1px solid var(--mush);padding-bottom:.3rem}
.jr-related .h2{margin-bottom:2rem}

/* =====================================================================
   Contact page (Oct 18)
   ===================================================================== */
.ct-hero{padding-bottom:clamp(2rem,4vw,3rem)}
.ct-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2.5rem,7vw,7rem);align-items:start}
.ct-lede{margin:1.2rem 0 0;color:var(--ink-soft);max-width:44ch}
.ct-list{margin:clamp(2rem,4vw,3rem) 0 0;border-top:1px solid var(--ink)}
.ct-list>div{padding:1.5rem 0;border-bottom:1px solid var(--line)}
.ct-list dt{font:600 .72rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--mush-text);margin-bottom:.7rem}
.ct-list dd{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.4rem}
.ct-big{font:400 clamp(1.5rem,2.4vw,2.1rem)/1.2 var(--display);color:var(--green);text-decoration:underline;text-decoration-color:var(--mush);text-underline-offset:5px;word-break:break-word}
.ct-sms{font:600 .75rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mush-text);border-bottom:1px solid var(--mush)}
.ct-form{background:transparent;padding:0}
.ct-form .h2{margin-bottom:0}
.ct-form form{margin-top:1.8rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1.4rem}
.ct-notice{margin:.3rem 0 1.2rem;font-size:.9rem;color:var(--mush-text)}
.field--check{margin-bottom:1.6rem}
.check{display:flex;gap:.8rem;align-items:flex-start;cursor:pointer;font-size:.95rem;color:var(--ink-soft);line-height:1.5}
.check input{appearance:none;-webkit-appearance:none;flex:none;width:1.25rem;height:1.25rem;margin-top:.15rem;border:1px solid var(--ink);background:var(--paper);display:grid;place-items:center;cursor:pointer;transition:background-color .2s}
.check input::after{content:"";width:.7rem;height:.7rem;background:var(--ivory);-webkit-mask:var(--spark) center/contain no-repeat;mask:var(--spark) center/contain no-repeat;opacity:0;transform:scale(.4);transition:opacity .2s,transform .3s var(--ease-out)}
.check input:checked{background:var(--green);border-color:var(--green)}.check input:checked::after{opacity:1;transform:none}
.check input:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.check a{text-decoration:underline;text-underline-offset:3px;color:var(--green)}
.form-fail{margin-top:1.2rem;padding:1rem 1.2rem;border:1px solid var(--err);color:var(--err);font-size:.95rem}.form-fail a{text-decoration:underline}
.ct-form .form-ok p{font:400 clamp(1.3rem,2vw,1.7rem)/1.4 var(--display);color:var(--green);max-width:32ch}
.foot__dir{display:inline-block;margin-top:.9rem;font:600 .74rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--ivory);border-bottom:1px solid var(--mush);padding-bottom:.3rem}
@media (max-width:900px){.ct-grid{grid-template-columns:1fr}}
@media (max-width:520px){.field-row{grid-template-columns:1fr}}
.ct-form{border:0}
.jr-card--noimg{border-top:1px solid var(--ink);padding-top:1.6rem}
.ct-hero .lx-narrow{max-width:none}

/* ---- Oct 18 client feedback (mobile review) ---- */
.ct-copy{font:600 .75rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mush-text);border-bottom:1px solid var(--mush);padding:.3rem 0}
/* privacy checkbox: box and sentence on one line, sentence in normal case */
.field.field--check label.check{display:flex;align-items:flex-start;gap:.8rem;text-transform:none;letter-spacing:0;font:400 .95rem/1.5 var(--body);color:var(--ink-soft);margin:0}
.field.field--check label.check span{display:block;flex:1}
.field.field--check label.check a{text-transform:none;letter-spacing:0}
/* space between a section heading and its first paragraph */
.lx-narrow .h1+.prose,.lx-narrow .h1+.foldable{margin-top:1.5rem}
.lx-narrow>.h1+*{margin-top:1.5rem}
/* the sticky Book Now bar was covering expand buttons near the bottom of phones: compact pill instead of a full-width bar */
@media (max-width:820px){
  .book-bar{left:auto;right:.9rem;bottom:.9rem}
  .book-bar .btn{width:auto;min-height:2.9rem;padding:.8rem 1.4rem;font-size:.74rem}
}
.field.field--check input[type=checkbox]{width:1.25rem;height:1.25rem;min-height:0;padding:0;flex:none;margin-top:.15rem}
#treatments.lx-s{padding-block:clamp(1.6rem,3vw,2.4rem)}
