/* =====================================================================
   MICHIE Beauty Bar v2 — cinematic, dark-warm, image-led
   ===================================================================== */
:root{
  /* palette (MICHIE heritage espresso + bronze, warmed toward caramel/mocha) */
  --espresso:#1F1A16;--cocoa:#2A211B;--umber:#3B2D23;--mocha:#6B523E;--mocha-2:#5A4433;
  --caramel:#9A7350;--taupe:#8C7A67;--bronze:#B98D53;--bronze-hi:#D4AC74;
  --cream:#F6F1EA;--cream-2:#ECE4D9;--cream-3:#E0D5C7;
  /* contextual tokens — dark surfaces are the default */
  --bg:var(--espresso);
  --paper:var(--espresso);--paper-2:#2E2620;--paper-3:#3C322A;
  --ink:var(--cream);--ink-2:#CDBFAE;
  --line:rgba(246,241,234,.16);--line-strong:rgba(246,241,234,.38);
  --bronze-ink:var(--bronze-hi);--on-bronze:var(--espresso);
  --focus:var(--bronze-hi);--danger:#EBA092;--ok:#9CC7A5;
  --scrim:rgba(12,9,7,.72);
  --serif:"Cormorant Garamond","Cormorant","Noto Serif","Times New Roman",Georgia,serif;
  --sans:"Montserrat","Helvetica Neue","Segoe UI",Arial,system-ui,sans-serif;
  --t-hero:clamp(3rem,1.2rem + 7.4vw,8.75rem);
  --t-giant:clamp(2.6rem,.9rem + 8.6vw,9.5rem);
  --t-d1:clamp(2.4rem,1.4rem + 4vw,5.25rem);
  --t-d2:clamp(2rem,1.3rem + 2.6vw,3.75rem);
  --t-h3:clamp(1.45rem,1.2rem + .9vw,2rem);
  --t-lead:clamp(1.45rem,1.05rem + 1.6vw,2.5rem);
  --t-body:clamp(.98rem,.95rem + .15vw,1.0625rem);
  --t-price:clamp(1.3rem,1.15rem + .5vw,1.6rem);
  --section:clamp(5.5rem,3rem + 9vw,12rem);
  --gutter:clamp(16px,5vw,72px);
  --gap:clamp(16px,2vw,32px);
  --r-arch:999px 999px 0 0;--r-pill:999px;--r-soft:3px;--r-card:clamp(14px,2vw,28px);
  --ease-out:cubic-bezier(.22,1,.36,1);--ease-silk:cubic-bezier(.65,0,.35,1);--ease-expo:cubic-bezier(.16,1,.3,1);
  --d-1:160ms;--d-2:320ms;--d-3:700ms;--d-4:1200ms;
  --hdr-h:64px;
  color-scheme:dark;
}
@media (min-width:1024px){:root{--hdr-h:84px}}
/* calm light surfaces (booking card, aftercare, modals, chat) */
.light{
  --paper:var(--cream);--paper-2:#EDE5DA;--paper-3:#E1D6C8;
  --ink:#1F1A16;--ink-2:#5E534B;
  --line:rgba(31,26,22,.14);--line-strong:rgba(31,26,22,.34);
  --bronze-ink:#7A5529;--focus:#7A5529;--danger:#9B2C2C;--ok:#3F6B4A;--on-bronze:#1F1A16;
  color:var(--ink);color-scheme:light;
}
.on-mocha{--ink-2:#EADFD2;--line:rgba(246,241,234,.22);--paper-2:rgba(246,241,234,.08)}

/* ============ BASE ============ */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;scroll-padding-top:88px;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--t-body);font-weight:400;line-height:1.65;overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-bottom:72px}
@media (min-width:1024px){body{padding-bottom:0}}
::selection{background:var(--bronze);color:var(--espresso)}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3,h4{font-weight:inherit;text-wrap:balance}
p{text-wrap:pretty}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-80px;z-index:3000;background:var(--cream);color:var(--espresso);padding:12px 20px;text-decoration:none;font-weight:500;transition:top var(--d-2)}
.skip:focus{top:16px}
.tnum{font-feature-settings:"tnum" 1}
.wrap{max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
.sec{padding-block:var(--section);position:relative}
.muted{color:var(--ink-2)}

/* type */
.t-hero{font:300 var(--t-hero)/.98 var(--serif);letter-spacing:-.02em}
.t-giant{font:200 var(--t-giant)/.94 var(--sans);text-transform:uppercase;letter-spacing:-.005em}
.hd,.svc__intro{container-type:inline-size}
@supports (width:1cqi){.t-giant{font-size:min(var(--t-giant),14.6cqi)}}
.t-d1{font:300 var(--t-d1)/1.02 var(--serif);letter-spacing:-.015em}
.t-d2{font:300 var(--t-d2)/1.05 var(--serif);letter-spacing:-.01em}
.t-h3{font:400 var(--t-h3)/1.15 var(--serif)}
.t-lead{font:300 var(--t-lead)/1.24 var(--serif);letter-spacing:-.005em}
.t-label{font:500 .72rem/1.35 var(--sans);letter-spacing:.2em;text-transform:uppercase}
.t-quote{font:italic 300 clamp(1.7rem,1.1rem + 2.6vw,3.4rem)/1.18 var(--serif);letter-spacing:-.01em}
.kicker{display:flex;align-items:center;gap:14px;color:var(--bronze-ink);margin-bottom:clamp(20px,3vw,36px)}
.kicker::before{content:"";width:36px;height:1px;background:currentColor;flex:none}
.on-mocha .kicker,.on-mocha .t-label{color:#F1DDBF}

/* split helpers (built by JS) */
.w-mask{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.16em;margin-bottom:-.16em}
.w-mask>span{display:inline-block;will-change:transform}
.split .l{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.split .l>span{display:block;transform:translateY(105%);transition:transform 900ms var(--ease-expo);transition-delay:calc(var(--i)*70ms)}
.split.is-in .l>span{transform:none}

/* ============ ICONS ============ */
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic--sm{width:14px;height:14px}
.ic--lg{width:24px;height:24px}

/* ============ BUTTONS ============ */
.btn{--bg:var(--ink);--fg:var(--paper);--bd:var(--bg);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 30px;border-radius:2px;background:var(--bg);color:var(--fg);border:1px solid var(--bd);font:500 12.5px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color var(--d-2),color var(--d-2),border-color var(--d-2),scale var(--d-1),translate 600ms var(--ease-expo);-webkit-tap-highlight-color:transparent}
.btn:hover{--bg:var(--bronze);--fg:var(--espresso);--bd:var(--bronze)}
.btn:active{scale:.98}
.btn--ghost{--bg:transparent;--fg:var(--ink);--bd:var(--line-strong)}
.btn--ghost:hover{--bg:transparent;--fg:var(--ink);--bd:var(--bronze)}
.btn--cream{--bg:var(--cream);--fg:var(--espresso);--bd:var(--cream)}
.btn--cream:hover{--bg:var(--bronze);--fg:var(--espresso);--bd:var(--bronze)}
.btn--block{width:100%}
.btn[disabled]{opacity:.4;cursor:not-allowed}
.btn[disabled]:hover{--bg:var(--ink);--fg:var(--paper);--bd:var(--ink)}
.btn--ghost[disabled]:hover{--bg:transparent;--fg:var(--ink);--bd:var(--line-strong)}
.btn .ic{width:18px;height:18px}
.spin{width:16px;height:16px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.link{color:inherit;text-decoration:none;cursor:pointer;background-image:linear-gradient(var(--bronze),var(--bronze)),linear-gradient(var(--line-strong),var(--line-strong));background-size:0 1px,100% 1px;background-position:0 100%,0 100%;background-repeat:no-repeat;padding-bottom:2px;transition:background-size var(--d-2) var(--ease-out)}
.link:hover{background-size:100% 1px,100% 1px}
button.link{background-color:transparent;border:0;padding:0 0 2px;font:inherit;min-height:44px}
.linkbtn{display:inline-flex;align-items:center;min-height:44px}
.iconbtn{width:44px;height:44px;display:inline-grid;place-items:center;border-radius:50%;background:transparent;border:0;cursor:pointer;color:inherit;transition:background-color var(--d-1)}
.iconbtn:hover{background:color-mix(in srgb,currentColor 9%,transparent)}
.arrow-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:inherit}
.arrow-link i{display:block;width:34px;height:1px;background:currentColor;position:relative;transition:width var(--d-2) var(--ease-out)}
.arrow-link i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.arrow-link:hover i{width:48px}

/* tabs / chips */
.tabs{position:relative;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1*var(--gutter));padding-inline:var(--gutter);padding-block:4px}
.tabs::-webkit-scrollbar{display:none}
@media (min-width:768px){.tabs{margin-inline:0;padding-inline:0;flex-wrap:wrap}}
.tab{flex:none;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:transparent;color:var(--ink);font:500 13px/1 var(--sans);letter-spacing:.04em;cursor:pointer;transition:background-color var(--d-2),color var(--d-2),border-color var(--d-2);position:relative}
.tab::before{content:"";position:absolute;inset:-2px 0}
.tab .ic{width:17px;height:17px}
.tab:hover{border-color:var(--bronze)}
.tab[aria-pressed="true"],.tab[aria-selected="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tab .cnt{opacity:.62;font-feature-settings:"tnum" 1}
.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-pill);font-size:12.5px;line-height:1;white-space:nowrap}
.dot{width:6px;height:6px;border-radius:50%;background:var(--bronze);flex:none}

/* status pill */
.status{display:inline-flex;align-items:center;gap:10px;min-height:34px;padding:6px 14px;border:1px solid rgba(246,241,234,.38);border-radius:var(--r-pill);font:400 12.5px/1.3 var(--sans);color:inherit;white-space:nowrap}
.status__dot{width:7px;height:7px;border-radius:50%;background:#B9AC9C;flex:none}
.status.is-open .status__dot{background:#9CC7A5;animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* skeleton */
.sk{background:var(--paper-2);position:relative;overflow:hidden;border-radius:2px}
.sk::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--paper-3),transparent);transform:translateX(-100%);animation:shimmer 1.4s ease-in-out infinite}
@keyframes shimmer{to{transform:translateX(100%)}}
.sk-row{display:grid;grid-template-columns:60% 1fr 15% 10%;gap:16px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.sk-row .sk{height:14px}
.sk-row .sk:nth-child(2){visibility:hidden}

/* wordmark & monogram */
.wm{display:inline-flex;flex-direction:column;align-items:center;gap:5px;text-decoration:none;color:inherit;font:400 19px/1 var(--serif);letter-spacing:.42em;padding-block:8px;min-height:44px;justify-content:center}
.wm span{margin-right:-.42em}
.wm::after{content:"";height:1px;background:var(--bronze);width:34px;transition:width var(--d-3) var(--ease-out)}
.wm:hover::after{width:100%}
.mono{fill:none;stroke:var(--bronze);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}

/* media frames */
.ph{position:relative;overflow:hidden;background:var(--umber)}
.ph>img{width:100%;height:100%;object-fit:cover}
.arch{border-radius:var(--r-arch)}

/* ============ GRAIN + VIGNETTE + PROGRESS ============ */
.fx-grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:2147483000;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .95 0 0 0 0 .88 0 0 0 1.1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}17%{transform:translate(-4%,3%)}33%{transform:translate(3%,-5%)}50%{transform:translate(-6%,-2%)}67%{transform:translate(5%,4%)}83%{transform:translate(-2%,6%)}100%{transform:translate(0,0)}}
.fx-vig{position:fixed;inset:0;pointer-events:none;z-index:2147482999;background:radial-gradient(130% 100% at 50% 45%,transparent 62%,rgba(18,11,6,.22) 100%)}
.fx-prog{position:fixed;left:0;top:0;right:0;height:2px;z-index:70;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--bronze),var(--bronze-hi))}
@media (prefers-contrast:more){.fx-grain,.fx-vig{display:none}}

/* ============ LOADER (CSS-driven, gated by html.intro) ============ */
.loader{display:none}
html.intro .loader{display:block;position:fixed;inset:0;z-index:5000;cursor:pointer}
.loader__half{position:absolute;left:0;right:0;height:50.5%;background:var(--caramel);transition:transform 800ms var(--ease-silk)}
.loader__half--t{top:0}
.loader__half--b{bottom:0}
.loader__c{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:26px;color:var(--cream);transition:opacity 380ms,transform 800ms var(--ease-silk)}
.loader__curve{width:min(180px,44vw);height:auto;overflow:visible}
.loader__curve path{fill:none;stroke:var(--cream);stroke-width:1.3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1000ms var(--ease-silk) 120ms forwards}
.loader__curve path.lash{stroke-width:1;opacity:.9;animation-duration:420ms}
.loader__curve path.lash:nth-of-type(2){animation-delay:640ms}.loader__curve path.lash:nth-of-type(3){animation-delay:690ms}.loader__curve path.lash:nth-of-type(4){animation-delay:740ms}.loader__curve path.lash:nth-of-type(5){animation-delay:790ms}.loader__curve path.lash:nth-of-type(6){animation-delay:840ms}.loader__curve path.lash:nth-of-type(7){animation-delay:890ms}
@keyframes draw{to{stroke-dashoffset:0}}
.loader__word{display:flex;gap:.5em;font:400 clamp(26px,5vw,40px)/1 var(--serif);letter-spacing:.06em;overflow:hidden;padding:.1em .2em}
.loader__word span{display:inline-block;transform:translateY(110%);animation:rise 820ms var(--ease-expo) forwards;animation-delay:calc(420ms + var(--i)*75ms)}
@keyframes rise{to{transform:none}}
.loader__sub{font:500 10.5px/1 var(--sans);letter-spacing:.42em;text-transform:uppercase;opacity:0;animation:fadein 600ms ease 1000ms forwards;margin-right:-.42em}
@keyframes fadein{to{opacity:.8}}
.loader__bar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:rgba(246,241,234,.85);transform-origin:0 50%;transform:scaleX(0);animation:bar 1700ms cubic-bezier(.5,0,.2,1) forwards}
@keyframes bar{to{transform:scaleX(1)}}
html.intro-out .loader__half--t{transform:translateY(-101%)}
html.intro-out .loader__half--b{transform:translateY(101%)}
html.intro-out .loader__c{opacity:0;transform:translateY(-6vh)}
html.intro-out .loader__bar{opacity:0;transition:opacity 200ms}
html.intro-out .loader{pointer-events:none}

/* ============ HEADER ============ */
.hdr{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--hdr-h);color:var(--cream);transition:transform 520ms var(--ease-out),background-color var(--d-2),border-color var(--d-2);border-bottom:1px solid transparent}
.hdr__in{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}
.hdr.is-scrolled{background:rgba(26,20,16,.62);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:rgba(246,241,234,.1)}
.hdr.is-hidden{transform:translateY(-102%)}
.hdr.menu-open{background:transparent;border-bottom-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.hdr__l{justify-self:start;display:flex;align-items:center;gap:16px}
.hdr__r{justify-self:end;display:flex;align-items:center;gap:20px}
.hdr .status{display:none}
@media (min-width:1024px){.hdr .status{display:inline-flex}.hdr.is-scrolled .status{border-color:rgba(246,241,234,.24)}}
.menu-btn{display:inline-flex;align-items:center;gap:14px;min-height:44px;padding:0 6px 0 0;background:none;border:0;cursor:pointer;font:500 11.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:inherit}
.mb-ic{position:relative;width:26px;height:9px}
.mb-ic::before,.mb-ic::after{content:"";position:absolute;left:0;height:1px;background:currentColor;transition:transform var(--d-2) var(--ease-silk),top var(--d-2) var(--ease-silk),width var(--d-2) var(--ease-out)}
.mb-ic::before{top:0;width:26px}.mb-ic::after{top:8px;width:18px}
.menu-btn:hover .mb-ic::after{width:26px}
.menu-btn[aria-expanded="true"] .mb-ic::before{top:4px;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .mb-ic::after{top:4px;width:26px;transform:rotate(-45deg)}
.hdr__book{font:500 11.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;gap:10px;color:inherit}
.hdr__book .dot{width:5px;height:5px}
.hdr__book .sm{display:inline}.hdr__book .lg{display:none}
@media (min-width:600px){.hdr__book .sm{display:none}.hdr__book .lg{display:inline}}
@media (max-width:420px){.menu-btn [data-menu-label]{display:none}}

/* ============ MENU ============ */
.menu{position:fixed;inset:0;z-index:55;background:var(--espresso);color:var(--cream);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path 520ms var(--ease-silk),visibility 0s 520ms;overflow-y:auto;overscroll-behavior:contain}
.menu.is-open{clip-path:inset(0);visibility:visible;transition:clip-path 760ms var(--ease-silk),visibility 0s}
.menu__bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(80% 60% at 85% 20%,rgba(185,141,83,.16),transparent 60%),radial-gradient(60% 50% at 0% 100%,rgba(107,82,62,.4),transparent 70%)}
.menu__in{position:relative;min-height:100%;padding-top:calc(var(--hdr-h) + 20px);padding-bottom:40px;display:grid;gap:40px;align-content:start}
.menu__list li{border-bottom:1px solid rgba(246,241,234,.12);overflow:hidden}
.menu__list a{display:flex;align-items:baseline;gap:18px;min-height:56px;padding:12px 0;text-decoration:none;color:inherit;transform:translateY(105%);transition:transform 380ms var(--ease-out),opacity var(--d-2)}
.menu.is-open .menu__list a{transform:none;transition:transform 900ms var(--ease-expo) calc(220ms + var(--i)*65ms),opacity var(--d-2)}
.menu__list .t-label{color:var(--bronze);min-width:2.4em}
.menu__list .nm{font:300 clamp(1.9rem,1.2rem + 3.2vw,4rem)/1.05 var(--serif);letter-spacing:-.01em;display:inline-block;transition:transform 500ms var(--ease-out),font-style 0s}
.menu__side{display:grid;gap:28px;opacity:0;transform:translateY(20px);transition:opacity 300ms,transform 300ms}
.menu.is-open .menu__side{opacity:1;transform:none;transition:opacity 700ms ease 600ms,transform 900ms var(--ease-expo) 600ms}
.menu__info{display:grid;gap:20px}
.menu__info dt{color:#B9AC9C;margin-bottom:4px}
.menu__info dd{font-size:16px}
.menu__img{display:none}
@media (min-width:1024px){
  .menu__in{grid-template-columns:7fr 1fr 4fr;min-height:100vh;align-content:center;padding-bottom:48px}
  .menu__list{grid-column:1}
  .menu__side{grid-column:3;align-self:center}
  .menu__img{display:block;position:relative;width:min(100%,300px,38vh);aspect-ratio:3/4;overflow:hidden;border-radius:var(--r-arch);background:var(--umber)}
  .menu__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.12);transition:opacity 600ms ease,transform 1200ms var(--ease-expo)}
  .menu__img img.is-on{opacity:1;transform:none}
}
@media (min-width:1024px) and (pointer:fine){
  .menu__list:has(a:hover) a,.menu__list:has(a:focus-visible) a{opacity:.38}
  .menu__list:has(a:hover) a:hover,.menu__list:has(a:focus-visible) a:focus-visible{opacity:1}
  .menu__list a:hover .nm,.menu__list a:focus-visible .nm{transform:translateX(22px);font-style:italic}
}

/* ============ HERO ============ */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;background:var(--mocha);color:var(--cream)}
.hero__stage{position:relative;height:100%;overflow:hidden}
.hero__media{position:absolute;inset:0;overflow:hidden;will-change:transform;background:var(--umber)}
.hero__kb{position:absolute;inset:-2%;animation:kb 24s ease-in-out infinite alternate}
.hero__kb img{width:100%;height:100%;object-fit:cover;object-position:55% 58%}
@keyframes kb{from{transform:scale(1.04) translate(0,0)}to{transform:scale(1.13) translate(-1.5%,-1%)}}
.hero__tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,16,11,.58) 0%,rgba(24,16,11,.14) 34%,rgba(24,16,11,.06) 56%,rgba(31,22,16,.6) 100%)}
.hero__warm{position:absolute;inset:0;opacity:0;background:linear-gradient(180deg,rgba(58,40,27,.25) 0%,rgba(74,52,36,.66) 52%,rgba(52,37,27,.94) 100%)}
.hero__copy{position:absolute;left:0;right:0;top:calc(var(--hdr-h) + clamp(16px,5vh,64px));text-align:center;padding-inline:var(--gutter);will-change:transform,filter,opacity}
.hero__t .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.06em}
.hero__t .ln>span{display:block}
/* soft warm scrim that sits only behind the copy block, so the lead never fights the lashes */
.hero__copy::before{content:"";position:absolute;z-index:-1;left:50%;top:-14%;width:min(1180px,108vw);height:142%;transform:translateX(-50%);pointer-events:none;background:radial-gradient(closest-side at 50% 58%,rgba(24,15,9,.64) 0%,rgba(24,15,9,.5) 45%,rgba(24,15,9,.2) 76%,transparent 100%)}
.hero__lead{max-width:40ch;margin:clamp(14px,2.6vh,28px) auto 0;font-size:clamp(.95rem,.86rem + .32vw,1.12rem);line-height:1.6;font-weight:400;letter-spacing:.01em;color:#F6F1EA;text-shadow:0 1px 2px rgba(18,11,6,.55),0 0 22px rgba(18,11,6,.5)}
html.js-hero .hero__t .ln>span{transform:translateY(108%)}
html.js-hero .hero__lead{opacity:0;transform:translateY(16px)}
html.js-hero.is-ready .hero__t .ln>span{transform:none;transition:transform 1300ms var(--ease-expo)}
html.js-hero.is-ready .hero__t .ln:nth-child(2)>span{transition-delay:120ms}
html.js-hero.is-ready .hero__lead{opacity:1;transform:none;transition:opacity 900ms ease 500ms,transform 1100ms var(--ease-expo) 500ms}
.hero__foot{position:absolute;left:0;right:0;bottom:clamp(18px,4vh,36px);display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;padding-inline:var(--gutter)}
.hero__foot>:first-child{justify-self:start}
.hero__foot>:last-child{justify-self:end;text-align:right}
.hero__cue{display:grid;justify-items:center;gap:12px;color:rgba(246,241,234,.86);white-space:nowrap}
.hero__cue i{display:block;width:1px;height:42px;background:rgba(246,241,234,.25);position:relative;overflow:hidden}
.hero__cue i::after{content:"";position:absolute;left:0;top:0;width:1px;height:100%;background:var(--cream);animation:cue 2.2s var(--ease-silk) infinite}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
.hero__tag{color:rgba(246,241,234,.86)}
@media (min-width:1024px){.hero__foot .status{visibility:hidden}}
@media (max-width:767px){.hero__tag{display:none}.hero__foot{grid-template-columns:1fr auto}.hero__foot .hero__cue{justify-self:end}.hero__cue>span{display:none}}
.hero__quote{display:none;position:absolute;left:0;right:0;bottom:clamp(72px,16vh,170px);text-align:center;padding-inline:var(--gutter);color:var(--cream)}
.motion .hero__quote{display:block}
.hero__quote blockquote{max-width:22ch;margin-inline:auto}
.hero__quote .t-label{display:block;margin-top:22px;color:rgba(246,241,234,.8);letter-spacing:.5em;margin-right:-.5em}
.hero__arch-cap{display:none;position:absolute;left:0;right:0;bottom:clamp(20px,5vh,48px);text-align:center;color:var(--cream)}
.motion .hero__arch-cap{display:block;opacity:0}

/* ============ COLLAGE / STATEMENT ============ */
.collage{background:var(--mocha);overflow:hidden;position:relative;padding-block:clamp(96px,16vh,200px) var(--section)}
.collage__stage{position:relative;min-height:clamp(560px,110vh,1100px);display:grid;place-items:center}
/* the statement always sits ABOVE the drifting photos; on desktop the photos live in the outer bands so letters stay whole */
.collage__t{position:relative;z-index:4;text-align:center;font:200 clamp(3.1rem,15.5vw,12.5rem)/.9 var(--sans);text-transform:uppercase;letter-spacing:-.01em;color:var(--cream);text-shadow:0 2px 30px rgba(40,26,16,.35)}
.collage__t span{display:block}
.collage__t .it{font:italic 300 1.02em/.9 var(--serif);text-transform:none;letter-spacing:-.02em;color:#F1DDBF}
.cimg{position:absolute;z-index:1;width:var(--w,20vw);rotate:var(--r,0deg);box-shadow:0 30px 60px -20px rgba(20,12,6,.55)}
.cimg .ph{aspect-ratio:3/4}
@media (min-width:768px){
  .collage__stage{min-height:clamp(620px,104vh,1080px);margin-inline:calc(50% - 50vw)}   /* full-bleed: photos ride the real viewport edges at any width */
  .collage__t{font-size:clamp(3.4rem,10.4vw,10.5rem);line-height:.92}
  .cimg--1{--w:clamp(120px,15vw,220px);--r:-6deg;left:2.5%;top:3%}
  .cimg--2{--w:clamp(104px,12.5vw,190px);--r:5deg;right:3.5%;top:7%}
  .cimg--3{--w:clamp(110px,13vw,200px);--r:3deg;left:6%;bottom:2%}
  .cimg--4{--w:clamp(116px,14vw,210px);--r:-4deg;right:2%;bottom:6%}
  .cimg--5{--w:clamp(76px,8vw,128px);--r:8deg;right:12%;top:42%}
}
@media (max-width:767px){
  .collage__stage{min-height:auto;padding-block:46vw 52vw}
  .cimg--1{--w:34vw;left:-2%;top:0}
  .cimg--2{--w:30vw;right:-1%;top:4vw}
  .cimg--3{display:none}
  .cimg--4{--w:36vw;right:4%;bottom:0}
  .cimg--5{--w:28vw;left:8%;top:auto;bottom:6vw}
}
.about{position:relative;z-index:2;display:grid;gap:28px;margin-top:clamp(72px,10vw,160px)}
.about .t-lead{max-width:30ch}
.about__sub{color:var(--ink-2);max-width:46ch}
@media (min-width:1024px){
  .about{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:end}
  .about .kicker{grid-column:1/4;align-self:start;margin-top:.9em}
  .about__lead{grid-column:4/12}
  .about .t-lead{max-width:none}
  .about__sub{grid-column:4/9}
}

/* ============ MARQUEE ============ */
.marquee{background:var(--espresso);padding-block:clamp(28px,5vw,64px);overflow:hidden;display:grid;gap:clamp(4px,1vw,14px);border-block:1px solid rgba(246,241,234,.08)}
.mq-row{display:flex;width:max-content;will-change:transform}
.mq-set{display:flex;align-items:center;flex:none}
.mq-set span{white-space:nowrap;padding-inline:clamp(14px,2vw,32px)}
.mq-row--a span{font:italic 300 clamp(2.6rem,1.4rem + 5.5vw,7.5rem)/1.05 var(--serif);color:var(--cream)}
.mq-row--b span{font:200 clamp(1.8rem,1rem + 3.6vw,5rem)/1.1 var(--sans);text-transform:uppercase;color:transparent;-webkit-text-stroke:1px rgba(212,172,116,.75)}
.mq-set svg{width:clamp(10px,1.2vw,18px);height:auto;fill:var(--bronze);flex:none}
@supports not (-webkit-text-stroke:1px red){.mq-row--b span{color:var(--bronze)}}
html:not(.mq-js) .mq-row--a{animation:mq 60s linear infinite}
html:not(.mq-js) .mq-row--b{animation:mq 70s linear infinite reverse}
@keyframes mq{to{transform:translateX(-50%)}}

/* ============ SERVICES (horizontal chapters) ============ */
.svc{background:var(--espresso);position:relative}
.svc__pin{position:relative}
.svc__track{display:block}
.svc__intro{padding:var(--section) var(--gutter) clamp(48px,8vw,96px);max-width:1440px;margin-inline:auto}
.svc__intro .t-giant{margin-bottom:clamp(24px,3vw,40px)}
.svc__intro p{color:var(--ink-2);max-width:44ch}
.svc__toc{margin-top:clamp(32px,4vw,56px);border-top:1px solid var(--line);max-width:560px}
.svc__toc a{display:grid;grid-template-columns:3em 1fr auto;align-items:baseline;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;min-height:56px;transition:padding var(--d-2) var(--ease-out),color var(--d-2)}
.svc__toc a:hover{padding-left:10px;color:var(--bronze-hi)}
.svc__toc .t-label{color:var(--bronze)}
.svc__toc .nm{font:400 1.45rem/1.2 var(--serif)}
.svc__toc .fr{font-size:.85rem;color:var(--ink-2);white-space:nowrap}
.svc__cta{margin-top:36px;display:flex;flex-wrap:wrap;gap:12px}
.chapter{position:relative;--pbg:var(--cocoa);background:var(--pbg)}
.chapter:nth-child(2){--pbg:var(--umber)}
.chapter:nth-child(3){--pbg:#4A382B}
.ch__img{position:sticky;top:0;height:72vh;height:72svh;overflow:hidden;background:var(--umber)}
.ch__img img{width:100%;height:100%;object-fit:cover;will-change:transform}
.ch__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,14,10,.18),transparent 30%,rgba(20,14,10,.5))}
.ch__img .ch__cap{position:absolute;left:var(--gutter);bottom:calc(16vh + 18px);z-index:2;color:var(--cream)}
/* neutral texture panel (used when a category has no real photo yet, e.g. pedicure) */
.ch__img--tex{display:grid;place-items:center;color:#F1DDBF;background:radial-gradient(90% 70% at 28% 22%,rgba(212,172,116,.34),transparent 60%),radial-gradient(80% 60% at 85% 100%,rgba(31,26,22,.55),transparent 70%),linear-gradient(160deg,#8C6A4B 0%,#5E4634 55%,#3B2D23 100%)}
.ch__img--tex::after{background:linear-gradient(180deg,rgba(20,14,10,.12),transparent 40%,rgba(20,14,10,.35))}
.tex__arcs{position:absolute;inset:0;width:100%;height:100%;opacity:.32;will-change:transform}
.tex__ic{position:relative;z-index:1;display:grid;place-items:center;width:clamp(96px,11vw,150px);aspect-ratio:3/4;border:1px solid rgba(241,221,191,.55);border-radius:var(--r-arch);margin-bottom:12vh}
.tex__ic .ic{width:46%;height:auto;stroke-width:.9}
.tex__word{position:absolute;z-index:1;left:0;right:0;bottom:calc(16vh + 64px);text-align:center;font:200 clamp(2.2rem,1.2rem + 3.4vw,4.4rem)/1 var(--sans);text-transform:uppercase;letter-spacing:.18em;margin-right:-.18em;color:rgba(246,241,234,.86)}
.svc.is-h .tex__word{bottom:clamp(64px,12vh,120px)}
.svc.is-h .tex__ic{margin-bottom:0}
.ch__body{position:relative;z-index:2;background:var(--pbg);margin-top:-16vh;border-radius:var(--r-card) var(--r-card) 0 0;padding:clamp(32px,5vw,56px) var(--gutter) clamp(56px,8vw,96px)}
.ch__head{display:flex;align-items:flex-end;gap:18px;margin-bottom:18px}
.ch__num{font:200 clamp(3.6rem,2rem + 6vw,8.5rem)/.8 var(--sans);color:transparent;-webkit-text-stroke:1px var(--bronze);letter-spacing:-.03em}
.ch__title{font:300 var(--t-d2)/1.02 var(--serif)}
.ch__desc{color:var(--ink-2);max-width:52ch;margin-bottom:28px}
.prices{border-top:1px solid var(--line)}
.price{display:grid;grid-template-columns:minmax(0,1fr) auto 46px;grid-template-areas:"n p b" "d p b";column-gap:14px;row-gap:2px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);position:relative}
.price::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--bronze);transform:scaleX(0);transform-origin:left;transition:transform 600ms var(--ease-out)}
@media (pointer:fine){.price:hover::after{transform:scaleX(1)}}
.price__n{grid-area:n;font:500 15.5px/1.35 var(--sans)}
.price__d{grid-area:d;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}
.price__lead{display:none}
.price__p{grid-area:p;font:400 var(--t-price)/1.2 var(--serif);font-feature-settings:"lnum" 1,"pnum" 1;text-align:right;white-space:nowrap}
.price .add{grid-area:b;justify-self:end}
@media (min-width:768px){
  .price{grid-template-columns:auto minmax(24px,1fr) auto 46px;grid-template-areas:"n l p b" "d d . b"}
  .price__lead{display:block;grid-area:l;align-self:end;border-bottom:1px dotted var(--line-strong);margin-bottom:.5em}
  .price__p{align-self:end}
}
.add{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;position:relative;transition:background-color var(--d-2),color var(--d-2),border-color var(--d-2),scale var(--d-1)}
.add .ic{grid-area:1/1;transition:transform var(--d-2) var(--ease-out),opacity var(--d-2)}
.add .i-check{opacity:0;transform:rotate(-90deg)}
.add:hover{border-color:var(--bronze)}
.add:active{scale:.9}
.add.is-on{background:var(--cream);color:var(--espresso);border-color:var(--cream)}
.add.is-on .i-plus{opacity:0;transform:rotate(90deg)}
.add.is-on .i-check{opacity:1;transform:none}
.svc-note{color:var(--ink-2);font-size:.82rem;margin-top:22px}
/* horizontal mode (JS adds .is-h on ≥1024px when motion is allowed) */
.svc.is-h .svc__pin{height:100vh;overflow:hidden}
.svc.is-h .svc__track{display:flex;flex-wrap:nowrap;height:100%;width:max-content;will-change:transform}
.svc.is-h .svc__intro{flex:none;width:min(62vw,880px);height:100%;margin:0;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--hdr-h) + 24px) 5vw 48px var(--gutter)}
.svc.is-h .chapter{flex:none;width:100vw;height:100%;display:grid;grid-template-columns:44% 1fr}
.svc.is-h .ch__img{position:relative;top:auto;height:100%}
.svc.is-h .ch__img .ch__cap{bottom:32px}
.svc.is-h .ch__body{margin:0;border-radius:0;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--hdr-h) + 8px) clamp(40px,6vw,110px) 72px clamp(40px,5vw,90px);overflow:hidden}
.svc.is-h .ch__desc{margin-bottom:20px}
.svc.is-h .price{padding:clamp(6px,1.1vh,12px) 0;grid-template-columns:auto auto minmax(24px,1fr) auto 46px;grid-template-areas:"n d l p b";column-gap:14px}
.svc.is-h .price__d{margin-left:4px}
.svc.is-h .price__p{font-size:clamp(1.2rem,2.4vh,1.5rem)}
.svc.is-h .ch__num{font-size:clamp(3rem,10vh,7rem)}
.svc.is-h .ch__title{font-size:clamp(2rem,5.4vh,3.5rem)}
.svc.is-h .ch__head{margin-bottom:10px}
.svc.is-h .ch__img .ch__cap{top:calc(var(--hdr-h) + 18px);bottom:auto}
.svc.is-h .svc__intro .t-giant{font-size:min(var(--t-giant),13cqi)}
.svc__bar{display:none}
.svc.is-h .svc__bar{display:flex;position:absolute;left:var(--gutter);right:calc(var(--gutter) + 84px);bottom:22px;z-index:5;align-items:center;gap:18px;color:var(--ink-2);pointer-events:none}
.svc__bar .tr{flex:1;height:1px;background:rgba(246,241,234,.18);position:relative;overflow:hidden}
.svc__bar .tr i{position:absolute;inset:0;background:var(--bronze);transform-origin:0 50%;transform:scaleX(0)}
.svc__bar .tnum{font-size:12px;letter-spacing:.2em}
/* floating price-row preview (desktop) */
.pv{position:fixed;left:0;top:0;z-index:58;width:220px;aspect-ratio:3/4;pointer-events:none;overflow:hidden;border-radius:2px;opacity:0;scale:.6;transition:opacity 260ms ease,scale 500ms var(--ease-expo);box-shadow:0 30px 60px -18px rgba(0,0,0,.6)}
.pv.is-on{opacity:1;scale:1}
.pv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 260ms}
.pv img.is-on{opacity:1}

/* ============ ARTISTS ============ */
.artists-sec{background:var(--espresso)}
.sec-head{display:grid;gap:20px;margin-bottom:clamp(40px,6vw,88px)}
.sec-head p{color:var(--ink-2);max-width:44ch}
@media (min-width:1024px){.sec-head{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:end}.sec-head .hd{grid-column:1/9}.sec-head p{grid-column:9/13}}
.artists{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:72vw;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1*var(--gutter));padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);scrollbar-width:none;padding-bottom:8px}
.artists::-webkit-scrollbar{display:none}
@media (min-width:768px){.artists{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-columns:auto;overflow:visible;margin-inline:0;padding-inline:0;gap:56px var(--gap)}}
@media (min-width:1024px){.artists{grid-template-columns:repeat(4,minmax(0,1fr))}}
.art{position:relative;scroll-snap-align:start;display:flex;flex-direction:column;gap:10px;min-width:0}
.art__frame{position:relative;aspect-ratio:3/4.1;border-radius:var(--r-arch);overflow:hidden;margin-bottom:14px;background:radial-gradient(120% 80% at 50% 0%,#4B3A2D 0%,#2E241D 60%,#261E18 100%);isolation:isolate}
.art__frame::before{content:"";position:absolute;inset:10px;border:1px solid rgba(185,141,83,.6);border-radius:var(--r-arch);z-index:3;pointer-events:none;transition:inset 700ms var(--ease-expo)}
.art__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.art__ini{position:absolute;inset:0;display:grid;place-items:center;font:300 clamp(6rem,4rem + 6vw,9rem)/1 var(--serif);color:var(--bronze-hi);transition:transform 900ms var(--ease-expo),opacity 500ms}
.art__ini::after{content:attr(data-n);position:absolute;bottom:18%;font:500 10px/1 var(--sans);letter-spacing:.4em;text-transform:uppercase;color:rgba(246,241,234,.5)}
.art__svc{display:grid;gap:6px;margin-top:4px}
.art__svc li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-2);line-height:1.35}
.art__svc li .dot{background:var(--bronze)}
.art__svc li .dot.o{background:transparent;border:1px solid var(--bronze)}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .art__svc{position:absolute;left:0;right:0;top:0;z-index:2;aspect-ratio:3/4.1;margin:0;align-content:end;padding:0 12% 18%;background:linear-gradient(180deg,transparent 20%,rgba(31,26,22,.92) 75%);border-radius:var(--r-arch);opacity:0;transform:translateY(14px);transition:opacity 500ms ease,transform 700ms var(--ease-expo);pointer-events:none}
  .art__svc li{color:var(--cream)}
  .art:hover .art__svc,.art:focus-within .art__svc{opacity:1;transform:none}
  .art:hover .art__ini,.art:focus-within .art__ini{transform:translateY(-14%) scale(.82);opacity:.35}
  .art:hover .art__frame::before{inset:16px}
}
.art__name{font:300 2rem/1.1 var(--serif)}
.art__role{color:var(--ink-2);font-size:.9rem}
.art__lv{display:flex;gap:5px;margin-left:auto}
.art__row{display:flex;align-items:baseline;gap:12px}
.art__actions{margin-top:auto;padding-top:14px}
.art__actions .btn{width:100%;padding-inline:14px;letter-spacing:.1em}
.art__soon{color:var(--ink-2);font-size:.85rem;padding-top:8px}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:40px;color:var(--ink-2);font-size:.85rem}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend .dot.o{background:transparent;border:1px solid var(--bronze)}

/* ============ GALLERY ============ */
.gal-sec{background:var(--cocoa)}
.gal-tabs{margin-bottom:32px}
.masonry{columns:2;column-gap:10px}
.masonry>*{break-inside:avoid;margin-bottom:10px}
@media (min-width:768px){.masonry{columns:3;column-gap:14px}.masonry>*{margin-bottom:14px}}
@media (min-width:1280px){.masonry{columns:4;column-gap:18px}.masonry>*{margin-bottom:18px}.masonry.is-few{columns:3;max-width:1100px}}
.gi{display:block;width:100%;padding:0;border:0;background:var(--umber);cursor:pointer;overflow:hidden;position:relative;aspect-ratio:4/5;transform-style:preserve-3d;transition:transform 600ms var(--ease-out)}
.gi.is-loaded{aspect-ratio:var(--ar)}
.gi img{width:100%;height:100%;object-fit:cover;transition:transform 1100ms var(--ease-expo),opacity 400ms,filter 600ms}
.gi img:not(.ok){opacity:0}
.gi::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(20,14,10,.45));opacity:0;transition:opacity var(--d-2)}
@media (pointer:fine){.gi:hover img{transform:scale(1.08)}.gi:hover::after{opacity:1}}
.gi.unmask{clip-path:inset(100% 0 0 0)}
.gi.unmask.is-in{clip-path:inset(0);transition:clip-path 1100ms var(--ease-expo),transform 600ms var(--ease-out)}
.gi-fail{display:grid;place-items:center;align-content:center;gap:10px;aspect-ratio:4/5;background:var(--umber);color:var(--bronze);text-align:center;padding:16px}
.gi-fail .ic{width:32px;height:32px}
.gi-fail span{font-size:12px;color:var(--ink-2)}
.gal-more{margin-top:40px}

/* ============ GROW MOMENT (why / first visit) ============ */
.grow{position:relative;background:var(--mocha)}
.grow__stage{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;overflow:hidden;padding:calc(var(--hdr-h) + 24px) var(--gutter) 40px}
.grow__frame{position:absolute;inset:0;overflow:hidden;transform-origin:50% 50%;will-change:transform}
.grow__frame img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.grow__frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,20,14,.25),rgba(30,20,14,.45))}
.glass{position:relative;z-index:2;width:min(560px,100%);padding:clamp(28px,4vw,52px);text-align:center;color:var(--cream);background:rgba(120,98,78,.44);-webkit-backdrop-filter:blur(22px) saturate(1.15);backdrop-filter:blur(22px) saturate(1.15);border:1px solid rgba(246,241,234,.2);box-shadow:0 40px 80px -30px rgba(0,0,0,.45)}
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){.glass{background:rgba(110,88,68,.92)}}
.glass .t-label{color:#F4E3C9;letter-spacing:.42em;margin-right:-.42em}
.glass h2{font:200 clamp(1.7rem,1rem + 2.6vw,2.9rem)/1.12 var(--sans);text-transform:uppercase;margin:18px 0 18px}
.glass p{color:rgba(246,241,234,.92);max-width:42ch;margin:0 auto 28px;font-size:.98rem}
.fv-sec{background:var(--mocha);padding-top:clamp(72px,10vw,140px)}
.why__grid{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line);margin-bottom:clamp(72px,10vw,140px)}
.why__item{padding:30px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:28px 1fr;gap:6px 18px;align-content:start}
.why__item .ic{width:24px;height:24px;color:#F1DDBF;grid-row:1/3}
.why__item h3{font:400 1.5rem/1.2 var(--serif)}
.why__item p{color:var(--ink-2);max-width:40ch;font-size:.95rem}
@media (min-width:768px){.why__grid{grid-template-columns:repeat(2,1fr);column-gap:var(--gap)}}
@media (min-width:1200px){.why__grid{grid-template-columns:repeat(4,1fr)}.why__item{grid-template-columns:1fr;padding:36px 28px 36px 0}.why__item .ic{grid-row:auto;margin-bottom:10px}}
.fv-wrap{display:grid;gap:48px}
@media (min-width:1024px){.fv-wrap{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}.fv-wrap .hd{grid-column:1/6;position:sticky;top:120px;align-self:start}.fv-wrap .fv-r{grid-column:7/13}}
.fv{position:relative;display:grid;gap:34px;padding-left:30px}
.fv__line{position:absolute;left:0;top:8px;bottom:8px;width:1px;background:rgba(241,221,191,.7);transform-origin:top}
.fv li{display:grid;gap:8px;position:relative}
.fv li::before{content:"";position:absolute;left:-34px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--mocha);border:1px solid #F1DDBF}
.fv .t-label{color:#F1DDBF}
.fv h3{font:400 1.6rem/1.15 var(--serif)}
.fv p{color:var(--ink-2)}
.tip{display:flex;gap:12px;align-items:flex-start;margin-top:48px;color:var(--ink-2);font-size:.88rem;max-width:70ch;padding-top:22px;border-top:1px solid var(--line)}
.tip .ic{color:#F1DDBF;margin-top:1px}

/* ============ BOOKING ============ */
.bk-sec{background:var(--espresso);overflow:hidden;overflow:clip}   /* clip, not hidden: hidden would make this a scroll container and break the sticky mobile Next/Back bar */
.bk-sec::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 40% at 80% 0%,rgba(185,141,83,.14),transparent 70%),radial-gradient(50% 40% at 0% 100%,rgba(107,82,62,.35),transparent 70%);pointer-events:none}
.bk-head{position:relative;display:grid;gap:18px;margin-bottom:clamp(36px,5vw,72px)}
.bk-head p{color:var(--ink-2);max-width:44ch}
@media (min-width:1024px){.bk-head{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:end}.bk-head .hd{grid-column:1/9}.bk-head p{grid-column:9/13}}
.bk-card{position:relative;background:var(--paper);border-radius:var(--r-card);padding:clamp(22px,4vw,64px) clamp(16px,4vw,64px);box-shadow:0 60px 120px -50px rgba(0,0,0,.7)}
@media (max-width:767px){.bk-card{margin-inline:calc(-1*var(--gutter) + 8px)}}
.bk{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
@media (min-width:1024px){
  .bk{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
  .bk__panel{grid-column:1/8}
  .bk__aside{grid-column:9/13;position:sticky;top:110px;align-self:start;padding-left:clamp(0px,2vw,32px);border-left:1px solid var(--line)}
}
.bk__aside{display:none}
@media (min-width:1024px){.bk__aside{display:block}}
.demo-note{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border:1px solid var(--bronze);border-radius:var(--r-soft);color:var(--bronze-ink);font-size:.85rem;margin-bottom:28px}
.demo-note .ic{margin-top:1px}
.prog{margin-bottom:36px}
.prog__list{display:none}
.prog__mob{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.prog__mob .t-label{color:var(--ink-2)}
.prog__mob b{font:500 14px var(--sans)}
@media (min-width:768px){.prog__mob{display:none}.prog__list{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}}
.prog__list li>*{font:inherit;letter-spacing:inherit;text-transform:inherit;display:inline-flex;align-items:center;min-height:44px;background:none;border:0;padding:0;color:var(--ink-2);text-align:left}
.prog__list li>button{cursor:pointer;color:var(--ink);text-decoration:underline;text-decoration-color:var(--bronze);text-underline-offset:4px}
.prog__list li[aria-current="step"]>*{color:var(--ink)}
.prog__track{height:1px;background:var(--line);position:relative}
.prog__fill{position:absolute;inset:0 auto 0 0;background:var(--bronze);width:100%;transform-origin:0 50%;transform:scaleX(var(--p,.2));transition:transform 900ms var(--ease-expo)}
.prog__dot{position:absolute;top:-3px;left:0;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--bronze);transform:translateX(0);transition:left 900ms var(--ease-expo)}
.switcher{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 6px 6px 16px;background:var(--paper-2);border-radius:var(--r-soft);margin-bottom:28px;font-size:.92rem}
.switcher__t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.switcher__t b{font-weight:500}
.switcher__nav{display:flex;flex:none}
.switcher__nav .iconbtn[disabled]{opacity:.3;cursor:default}
.steps{position:relative;min-height:240px}
.step{animation:stepIn 620ms var(--ease-expo)}
.step.is-back{animation-name:stepInBack}
@keyframes stepIn{from{opacity:0;transform:translateX(28px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes stepInBack{from{opacity:0;transform:translateX(-28px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
.step__h{font:300 clamp(1.9rem,1.4rem + 1.6vw,2.9rem)/1.08 var(--serif);letter-spacing:-.01em;margin-bottom:10px;outline:none}
.step__h:focus-visible{outline:2px solid var(--focus);outline-offset:6px}
.step__sub{color:var(--ink-2);margin-bottom:24px}
.note{color:var(--ink-2);font-size:.9rem;margin:-4px 0 16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.checks{border-top:1px solid var(--line)}
.ckrow{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 12px 14px 14px;border-bottom:1px solid var(--line);border-left:2px solid transparent;cursor:pointer;transition:border-color var(--d-2),background-color var(--d-1)}
.ckrow:hover{background:color-mix(in srgb,var(--paper-2) 60%,transparent)}
.ckrow.is-on{border-left-color:var(--bronze)}
.ckrow input{appearance:none;-webkit-appearance:none;width:24px;height:24px;margin:0;border:1px solid var(--line-strong);border-radius:var(--r-soft);display:grid;place-items:center;cursor:pointer;background:transparent;transition:background-color var(--d-1),border-color var(--d-1)}
.ckrow input:checked{background:var(--ink);border-color:var(--ink)}
.ckrow input::after{content:"";width:10px;height:6px;border-left:1.5px solid var(--paper);border-bottom:1.5px solid var(--paper);transform:translateY(-1px) rotate(-45deg) scale(0);transition:transform var(--d-1)}
.ckrow input:checked::after{transform:translateY(-1px) rotate(-45deg) scale(1)}
.ckrow__n{font-weight:500;line-height:1.35;font-size:15px}
.ckrow__d{display:block;color:var(--ink-2);font-size:.84rem;font-weight:400}
.ckrow__p{font:500 1.3rem/1 var(--serif);font-feature-settings:"lnum" 1;white-space:nowrap}
.ck-tabs{margin-bottom:16px}
.helper{color:var(--ink-2);font-size:.85rem;margin-top:12px}
.staffs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.scard{display:grid;grid-template-columns:56px minmax(0,1fr) 24px;gap:14px;align-items:center;padding:14px;border:1.5px solid var(--line);border-radius:var(--r-soft);background:transparent;text-align:left;cursor:pointer;transition:border-color var(--d-1),background-color var(--d-1),transform var(--d-2) var(--ease-out);min-height:88px}
.scard:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.scard[aria-checked="true"]{border-color:var(--ink);background:var(--paper-2)}
.scard__th{width:56px;height:70px;border-radius:var(--r-arch);background:var(--paper-3);display:grid;place-items:center;overflow:hidden;font:300 2rem/1 var(--serif);color:var(--bronze-ink)}
.scard__th img{width:100%;height:100%;object-fit:cover}
.scard__th .ic{width:24px;height:24px;color:var(--bronze)}
.scard__n{font-weight:500;display:block}
.scard__s{display:block;color:var(--ink-2);font-size:.84rem;line-height:1.4;margin-top:2px}
.scard .chip{margin-top:8px;height:24px;font-size:12px;padding:0 10px}
.scard__ck{width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center;color:var(--paper)}
.scard__ck .ic{width:14px;height:14px;opacity:0}
.scard[aria-checked="true"] .scard__ck{background:var(--ink);border-color:var(--ink);animation:pop 420ms var(--ease-out)}
.scard[aria-checked="true"] .scard__ck .ic{opacity:1}
.dates-wrap{position:relative}
.dates{position:relative;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-inline:-4px;padding:4px;scroll-padding-inline:4px}
.dates::-webkit-scrollbar{display:none}
@media (max-width:1023px){.dates{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}}
.date{flex:none;width:64px;height:78px;border-radius:var(--r-soft);background:var(--paper-2);display:grid;align-content:center;justify-items:center;gap:3px;cursor:pointer;position:relative;transition:background-color var(--d-1),color var(--d-1),transform var(--d-2) var(--ease-out);user-select:none}
.date:hover{background:var(--paper-3);transform:translateY(-2px)}
.date small{font-size:11.5px;line-height:1;color:var(--ink-2)}
.date b{font:500 28px/1 var(--serif);font-feature-settings:"lnum" 1}
.date[aria-selected="true"]{background:var(--ink);color:var(--paper)}
.date[aria-selected="true"] small{color:var(--paper);opacity:.75}
.date__mo{position:absolute;top:-1px;left:0;right:0;text-align:center;font-size:10px;line-height:1;color:var(--bronze-ink);transform:translateY(-120%)}
.dates.has-mo{padding-top:20px}
.dates-nav{display:none}
@media (min-width:1024px){.dates-nav{display:flex;gap:4px;justify-content:flex-end;margin-bottom:8px}.dates-nav .iconbtn{border:1px solid var(--line)}}
.slot-g{margin-bottom:24px}
.slot-g .t-label{color:var(--ink-2);display:block;margin-bottom:10px}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.slot{height:48px;border-radius:var(--r-soft);border:0;background:var(--paper-2);color:var(--ink);font:500 15px/1 var(--sans);font-feature-settings:"tnum" 1;cursor:pointer;transition:background-color var(--d-1),color var(--d-1)}
.slot:hover{background:var(--paper-3)}
.slot[aria-pressed="true"]{background:var(--ink);color:var(--paper);animation:pop 460ms var(--ease-out)}
.slot:disabled{background:transparent;color:color-mix(in srgb,var(--ink-2) 55%,transparent);text-decoration:line-through;cursor:not-allowed}
.slots .sk{height:48px;border-radius:var(--r-soft)}
.slots-in .slot{animation:slotIn 520ms var(--ease-expo) both;animation-delay:calc(var(--k,0)*18ms)}
.slots-in .slot[aria-pressed="true"]{animation:pop 460ms var(--ease-out)}
@keyframes slotIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.12)}70%{transform:scale(.97)}100%{transform:scale(1)}}
.empty{padding:32px 0;display:grid;gap:12px;justify-items:start}
.empty p{color:var(--ink-2)}
.assigned{margin-top:8px;color:var(--ink-2);font-size:.9rem}
.assigned b{color:var(--ink);font-weight:500}
.field{display:grid;gap:8px;margin-bottom:22px}
.field label,.flabel{font:500 13.5px/1.3 var(--sans)}
.field .opt{color:var(--ink-2);font-weight:400}
.input{position:relative;display:flex;align-items:center;background:var(--paper-2);border-radius:var(--r-soft) var(--r-soft) 0 0}
.input::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line-strong);transition:height var(--d-1),background-color var(--d-1)}
.input:focus-within::after{height:2px;background:var(--bronze)}
.input.is-err::after{background:var(--danger)}
.input input,.input select,.input textarea{flex:1;min-width:0;height:56px;border:0;background:transparent;padding:0 16px;font:400 16px/1.4 var(--sans);color:var(--ink);outline:none;border-radius:inherit}
.input textarea{height:auto;padding:14px 16px;resize:vertical;min-height:112px}
.input select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:44px}
.input .sel-ic{position:absolute;right:14px;pointer-events:none;color:var(--ink-2)}
.input__pre{padding-left:16px;color:var(--ink-2);font-feature-settings:"tnum" 1}
.input__pre+input{padding-left:10px}
.input:has(:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.err{display:flex;align-items:center;gap:6px;color:var(--danger);font-size:.85rem}
.err .ic{width:16px;height:16px}
.sum{display:grid;gap:0}
.sum__t{font:400 var(--t-h3)/1.15 var(--serif);margin-bottom:16px}
.sum__list{border-top:1px solid var(--line)}
.sum__it{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;gap:4px 12px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line);animation:stepIn 500ms var(--ease-expo)}
.sum__it b{font-weight:500;display:block;line-height:1.35}
.sum__it small{display:block;color:var(--ink-2);font-size:.84rem;margin-top:3px}
.sum__it .pr{font-feature-settings:"tnum" 1;white-space:nowrap;padding-top:1px}
.sum__it .iconbtn{margin-top:-10px}
.sum__it .iconbtn .ic{width:16px;height:16px}
.sum__tot{display:flex;justify-content:space-between;align-items:baseline;padding-top:18px;gap:12px}
.sum__tot strong{font:600 1.2rem/1 var(--sans);font-feature-settings:"tnum" 1}
.sum__dur{color:var(--ink-2);font-size:.88rem;margin-top:6px}
.sum__note{color:var(--ink-2);font-size:.82rem;margin-top:14px}
.sum__empty{color:var(--ink-2);padding:18px 0;border-top:1px solid var(--line)}
.bk-mob-sum{margin-bottom:28px}
@media (min-width:1024px){.bk-mob-sum{display:none}}
.bk-nav{position:sticky;bottom:0;z-index:5;display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:32px;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.bk-nav.solo{grid-template-columns:1fr}
.bk-nav .btn{width:100%;padding-inline:14px;letter-spacing:.1em}
@media (min-width:1024px){.bk-nav{position:static;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-top:0;padding:0;display:flex;justify-content:flex-start}.bk-nav .btn{width:auto;padding-inline:30px}.bk-nav.solo .btn{min-width:240px}}
.bk-nav__mini{grid-column:1/-1;display:flex;justify-content:space-between;font-size:.84rem;color:var(--ink-2)}
.bk-nav__mini b{color:var(--ink);font-weight:600;font-feature-settings:"tnum" 1}
@media (min-width:1024px){.bk-nav__mini{display:none}}
.banner{display:grid;gap:6px;padding:14px 16px;border-left:2px solid var(--danger);background:color-mix(in srgb,var(--danger) 6%,transparent);margin-top:24px;font-size:.95rem}
.banner b{font-weight:500;color:var(--danger)}
.banner .link{justify-self:start}
.success{display:grid;gap:20px;justify-items:start;padding-top:8px}
.success svg{width:64px;height:64px}
.success .m,.success .ln{stroke-dasharray:100;stroke-dashoffset:100;animation:draw2 700ms var(--ease-silk) forwards}
.success .ln{animation-delay:400ms}
@keyframes draw2{to{stroke-dashoffset:0}}
.success__list{width:100%;border-top:1px solid var(--line)}
.success__list li{padding:14px 0;border-bottom:1px solid var(--line)}
.success__list small{display:block;color:var(--ink-2)}
.success__acts{display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.cartpill{position:fixed;left:24px;bottom:24px;z-index:40;display:none;align-items:center;gap:20px;padding:8px 8px 8px 24px;background:rgba(31,26,22,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(246,241,234,.16);color:var(--cream);border-radius:var(--r-pill);transform:translateY(calc(100% + 32px));visibility:hidden;transition:transform var(--d-2) var(--ease-out),visibility 0s var(--d-2);font-size:14px}
@media (min-width:1024px){.cartpill{display:flex}}
.cartpill.is-on{transform:none;visibility:visible;transition:transform 600ms var(--ease-expo)}
.cartpill b{font-weight:600;font-feature-settings:"tnum" 1}
.cartpill .btn{min-height:44px;padding:0 20px;border-radius:var(--r-pill)}

/* ============ AFTERCARE (calm light) ============ */
.after{background:var(--cream)}
.after .tab{border-color:var(--line-strong)}
.tips{display:grid;gap:0;margin-top:40px;border-top:1px solid var(--line)}
@media (min-width:1024px){.tips{grid-template-columns:1fr 1fr;column-gap:var(--gap)}}
.tips li{display:grid;grid-template-columns:6px minmax(0,1fr);gap:18px;padding:24px 0;border-bottom:1px solid var(--line)}
.tips li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bronze);margin-top:.6em}
.tips h3{font:500 1.35rem/1.25 var(--serif);margin-bottom:6px}
.tips p{color:var(--ink-2);font-size:.95rem}
.after__foot{margin-top:40px;display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;color:var(--ink-2)}
.tabpanel:focus-visible{outline-offset:8px}
.tabpanel.is-in .tips li{animation:stepIn 700ms var(--ease-expo) both;animation-delay:calc(var(--k,0)*60ms)}

/* ============ FEEDBACK BAND ============ */
.band{background:#86623F;color:var(--cream);padding-block:clamp(56px,7vw,104px)}
.band{--ink-2:#FBF3E8;--line-strong:rgba(246,241,234,.6)}
.band__in{display:grid;gap:24px;align-items:end}
.band__in p{max-width:46ch}
@media (min-width:1024px){.band__in{grid-template-columns:7fr 5fr;column-gap:var(--gap)}}
.band__r{display:grid;gap:24px;justify-items:start}

/* ============ FAQ (blurred photo backdrop) ============ */
.faq-sec{background:var(--mocha-2);overflow:hidden;isolation:isolate}
.faq-bg{position:absolute;inset:-8%;z-index:-1;pointer-events:none}
.faq-bg img{width:100%;height:100%;object-fit:cover;filter:blur(28px) saturate(.9);opacity:.42;transform:scale(1.1)}
.faq-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(90,68,51,.55),rgba(90,68,51,.82))}
.faq{display:grid;gap:40px}
@media (min-width:1024px){.faq{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}.faq__h{grid-column:1/5;position:sticky;top:130px;align-self:start}.faq__list{grid-column:6/13}}
.faq__h .t-d1{font-weight:400}
.faq__h p{color:var(--ink-2);margin:22px 0 28px;max-width:30ch}
.faq__list{border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line)}
.qa h3 button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;background:none;border:0;text-align:left;cursor:pointer;font:500 13.5px/1.5 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);min-height:44px;transition:color var(--d-2)}
.qa h3 button:hover{color:#F1DDBF}
.qa h3 button .ic{transition:transform 600ms var(--ease-expo);color:#F1DDBF}
.qa h3 button[aria-expanded="true"] .ic{transform:rotate(135deg)}
.qa__p{display:grid;grid-template-rows:0fr;transition:grid-template-rows 650ms var(--ease-expo),visibility 0s 650ms;visibility:hidden}
.qa__p.is-open{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows 650ms var(--ease-expo),visibility 0s}
.qa__p>div{overflow:hidden}
.qa__p p{padding-bottom:26px;color:var(--ink-2);max-width:62ch;opacity:0;transform:translateY(-6px);transition:opacity 400ms,transform 600ms var(--ease-expo)}
.qa__p.is-open p{opacity:1;transform:none;transition-delay:120ms}
.qa__p a{color:inherit}

/* ============ VISIT ============ */
.visit-sec{background:var(--espresso)}
.visit{display:grid;gap:48px}
@media (min-width:1024px){.visit{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}.visit__c{grid-column:1/7}.visit__m{grid-column:8/13}}
.visit__addr{margin-top:32px;max-width:30ch}
.visit__addr2{color:var(--ink-2);margin-top:10px}
.visit dl{display:grid;gap:22px;margin-top:40px}
.visit dt{color:var(--ink-2);margin-bottom:6px}
.visit dd{font:500 17px/1.4 var(--sans);display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.visit__acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
.map{position:relative;aspect-ratio:4/3;border-radius:var(--r-arch);background:var(--umber);overflow:hidden;display:grid;place-items:center;height:100%;max-width:100%}   /* max-width: on desktop height:100% + aspect-ratio made the arch wider than its column (cut off at the right edge) */
@media (min-width:1024px){.map{aspect-ratio:3/4;min-height:0}}
.map>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;filter:grayscale(.3)}
.map__btn{position:relative;display:grid;justify-items:center;gap:14px;background:none;border:0;color:var(--cream);cursor:pointer;padding:24px;min-height:44px;text-align:center}
.map__btn .ic{width:32px;height:32px;color:var(--bronze-hi)}
.map__btn span{border-bottom:1px solid var(--bronze);padding-bottom:2px;font-weight:500}
.map__note{position:relative;display:grid;justify-items:center;gap:12px;color:var(--cream);text-align:center;padding:24px}
.map__note .ic{width:32px;height:32px;color:var(--bronze-hi)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(246,241,234,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(246,241,234,.06) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}

/* ============ CLOSING ============ */
/* bookend to the hero: the hero ends in an arch, the page closes in one. Full-bleed soft-focus backdrop, sharp photo in the arch,
   caption on a calm dark field (never on busy detail) */
.closing{position:relative;min-height:100vh;min-height:100svh;overflow:hidden;color:var(--cream);display:grid;place-items:center;text-align:center;background:var(--umber);padding-block:calc(var(--hdr-h) + 24px) 56px;isolation:isolate}
.closing__img{position:absolute;inset:-6%;z-index:-2;will-change:transform}
.closing__img img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;filter:blur(34px) saturate(.85) brightness(.82);transform:scale(1.08)}
.closing::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 60% at 50% 46%,rgba(42,30,22,.38),rgba(26,19,14,.8) 100%),linear-gradient(180deg,rgba(26,19,14,.1) 50%,rgba(26,19,14,.55))}
.closing__c{position:relative;display:grid;justify-items:center;gap:clamp(16px,2.6vh,24px);padding-inline:var(--gutter)}
.closing__arch{position:relative;width:auto;height:min(54vh,520px);height:min(54svh,520px);aspect-ratio:3/4;border-radius:var(--r-arch);overflow:hidden;background:var(--umber);margin-bottom:clamp(6px,2vh,18px);box-shadow:0 50px 90px -40px rgba(0,0,0,.7)}
.closing__arch img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;will-change:transform}
.closing__arch::after{content:"";position:absolute;inset:9px;border:1px solid rgba(241,221,191,.55);border-radius:var(--r-arch);pointer-events:none}
.closing__c .t-label{color:#F1DDBF;letter-spacing:.42em;margin-right:-.42em}
.closing__c p{font:italic 300 clamp(1.5rem,1.05rem + 1.4vw,2.35rem)/1.25 var(--serif);max-width:24ch;color:#FBF6EF}
@media (max-width:767px){.closing__arch{height:auto;width:min(66vw,320px)}}

/* ============ FOOTER ============ */
.ftr{background:var(--espresso);padding-top:clamp(64px,8vw,120px)}
.ftr__cols{display:grid;grid-template-columns:1fr 1fr;gap:40px var(--gap);font-size:14px}
@media (min-width:1024px){.ftr__cols{grid-template-columns:repeat(4,1fr)}}
.ftr__cols h2{font:500 11px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-bottom:14px}
.ftr__cols li{min-height:32px;display:flex;align-items:center}
.ftr__cols a,.ftr__cols button.link{min-height:32px;display:inline-flex;align-items:center}
.ftr__acts{display:grid;gap:4px;align-content:start;justify-items:start}
.ftr__big{margin-top:clamp(56px,8vw,120px);border-top:1px solid rgba(185,141,83,.5);overflow:hidden;text-align:center}
.ftr__big span{display:block;font:200 21vw/.86 var(--sans);letter-spacing:.04em;margin-right:-.04em;color:rgba(246,241,234,.08);padding-top:.1em;white-space:nowrap}
@media (min-width:1440px){.ftr__big span{font-size:300px}}
.ftr__bot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;padding-block:20px 28px;font-size:13px;color:var(--ink-2);border-top:1px solid var(--line)}
.ftr__bot a{color:var(--ink-2);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.ftr__bot a:hover{text-decoration:underline;text-underline-offset:3px}
.ftr__bot button{background:none;border:0;color:var(--ink-2);cursor:pointer;min-height:44px;font-size:13px;padding:0}
.ftr__bot button:hover{color:var(--ink)}
@media (min-width:1024px){.ftr__bot{padding-right:96px}}
@media (max-width:599px){.ftr__bot{display:grid;grid-template-columns:1fr auto;gap:0 16px}.ftr__bot>span{grid-column:1/-1;padding-top:8px}}

/* ============ SECTION COUNTER (desktop) ============ */
.counter{position:fixed;right:22px;top:50%;z-index:45;display:none;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);font:500 10.5px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:rgba(246,241,234,.72);mix-blend-mode:difference;pointer-events:none;transition:opacity var(--d-2)}
.counter b{font-weight:500;color:var(--bronze-hi)}
@media (min-width:1280px){.counter{display:block}}
.counter.is-off{opacity:0}

/* ============ MODALS ============ */
.modal{position:fixed;inset:0;z-index:300;display:grid;align-items:end;visibility:hidden;transition:visibility 0s 420ms}
.modal.is-open{visibility:visible;transition:none}
.modal__scrim{position:absolute;inset:0;background:var(--scrim);opacity:0;transition:opacity 420ms;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.modal.is-open .modal__scrim{opacity:1}
.modal__box{position:relative;background:var(--paper);color:var(--ink);border-radius:20px 20px 0 0;max-height:92vh;overflow-y:auto;overscroll-behavior:contain;padding:12px 20px calc(28px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform 520ms var(--ease-expo);width:100%}
.modal.is-open .modal__box{transform:none}
.modal__handle{width:36px;height:4px;border-radius:2px;background:var(--line-strong);margin:0 auto 16px}
.modal__x{position:absolute;right:10px;top:10px}
.modal__t{font:400 var(--t-h3)/1.15 var(--serif);margin:8px 48px 8px 0}
.modal__sub{color:var(--ink-2);margin-bottom:28px}
.modal__acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
@media (min-width:768px){
  .modal{align-items:center;justify-items:center;padding:24px}
  .modal__box{width:min(560px,100%);border-radius:6px;padding:40px 40px 36px;transform:scale(.96) translateY(12px);opacity:0;transition:transform 520ms var(--ease-expo),opacity 420ms}
  .modal.is-open .modal__box{transform:none;opacity:1}
  .modal__handle{display:none}
  .modal__x{right:16px;top:16px}
}
.stars{display:flex;gap:4px}
.stars input{position:absolute;opacity:0;width:1px;height:1px}
.stars label{width:44px;height:44px;display:grid;place-items:center;cursor:pointer;border-radius:50%}
.stars label .ic{width:28px;height:28px;color:var(--ink-2);transition:transform var(--d-2) var(--ease-out)}
.stars label.is-on .ic{fill:var(--bronze);color:var(--bronze);transform:scale(1.08)}
.stars input:focus-visible+label{outline:2px solid var(--focus)}
.seg{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line-strong);border-radius:var(--r-soft);overflow:hidden}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg label{height:44px;display:grid;place-items:center;cursor:pointer;font:500 15px/1 var(--sans);font-feature-settings:"tnum" 1;border-left:1px solid var(--line);transition:background-color var(--d-1),color var(--d-1)}
.seg label:first-of-type{border-left:0}
.seg label:hover{background:var(--paper-2)}
.seg input:checked+label{background:var(--ink);color:var(--paper)}
.seg input:focus-visible+label{outline:2px solid var(--focus);outline-offset:-3px}
.seg__cap{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-2);margin-top:6px}
fieldset{border:0;margin:0 0 22px;padding:0;min-width:0}
legend{padding:0;margin-bottom:8px;font:500 13.5px/1.3 var(--sans)}

/* lightbox */
.lb{position:fixed;inset:0;z-index:320;background:rgba(18,13,10,.96);color:var(--cream);display:grid;place-items:center;visibility:hidden;opacity:0;transition:opacity 360ms,visibility 0s 360ms;touch-action:pan-y}
.lb.is-open{visibility:visible;opacity:1;transition:opacity 360ms}
.lb__img{max-height:86vh;max-width:92vw;object-fit:contain;transform-origin:0 0}
.lb__cap{position:absolute;left:var(--gutter);bottom:20px;font-size:.85rem;display:flex;gap:16px}
.lb__cap span:last-child{color:#B9AC9C;font-feature-settings:"tnum" 1}
.lb__x{position:absolute;top:12px;right:12px}
.lb__nav{position:absolute;top:50%;translate:0 -50%;width:56px;height:56px;border-radius:50%;border:1px solid rgba(246,241,234,.4);background:transparent;color:var(--cream);display:none;place-items:center;cursor:pointer;transition:border-color var(--d-1)}
.lb__nav:hover{border-color:var(--bronze)}
.lb__prev{left:24px}.lb__next{right:24px}
@media (hover:hover) and (pointer:fine){.lb__nav{display:grid}}

/* chat */
.chat-l{position:fixed;right:24px;bottom:24px;z-index:45;width:58px;height:58px;border-radius:50%;background:var(--cream);color:var(--espresso);border:1px solid rgba(31,26,22,.14);box-shadow:0 14px 34px -10px rgba(0,0,0,.45);display:none;place-items:center;cursor:pointer;opacity:0;visibility:hidden;translate:0 12px;transition:background-color var(--d-1),opacity var(--d-2),translate var(--d-2) var(--ease-out),visibility 0s var(--d-2)}
.chat-l.is-on{opacity:1;visibility:visible;translate:none;transition:background-color var(--d-1),opacity var(--d-2),translate var(--d-2) var(--ease-out)}
.chat-l:hover{background:var(--bronze)}
.chat-l .ic{width:24px;height:24px}
.chat-l__tip{position:absolute;right:calc(100% + 12px);top:50%;translate:0 -50%;white-space:nowrap;background:var(--cream);color:var(--espresso);font-size:13px;padding:8px 14px;border-radius:var(--r-pill);opacity:0;pointer-events:none;transition:opacity var(--d-1)}
.chat-l:hover .chat-l__tip,.chat-l:focus-visible .chat-l__tip{opacity:1}
@media (min-width:1024px){.chat-l{display:grid}}
.chat{position:fixed;inset:0;z-index:310;background:var(--paper);display:flex;flex-direction:column;visibility:hidden;opacity:0;transform:translateY(24px);transition:opacity 420ms var(--ease-out),transform 520ms var(--ease-expo),visibility 0s 420ms}
.chat.is-open{visibility:visible;opacity:1;transform:none;transition:opacity 420ms var(--ease-out),transform 520ms var(--ease-expo)}
@media (min-width:1024px){.chat{inset:auto 24px 96px auto;width:380px;height:560px;max-height:calc(100vh - 120px);border-radius:10px;border:1px solid var(--line-strong);overflow:hidden;box-shadow:0 40px 80px -30px rgba(0,0,0,.55)}}
.chat__h{display:flex;align-items:center;gap:12px;padding:12px 8px 12px 16px;padding-top:calc(12px + env(safe-area-inset-top));border-bottom:1px solid var(--line)}
@media (min-width:1024px){.chat__h{padding-top:12px}}
.chat__h svg.mono{width:24px;height:24px}
.chat__h b{font:500 20px/1.1 var(--serif);display:block}
.chat__h small{font-size:12px;color:var(--ink-2)}
.chat__h .iconbtn{margin-left:auto}
.chat__msgs{flex:1;overflow-y:auto;padding:20px 16px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.bub{max-width:82%;padding:10px 14px;font-size:14.5px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;border-radius:16px}
.bub--a{align-self:flex-start;background:var(--paper-2);border-radius:var(--r-soft) 16px 16px 16px}
.bub--u{align-self:flex-end;background:var(--ink);color:var(--paper);border-radius:16px var(--r-soft) 16px 16px}
.bub a{color:inherit;text-underline-offset:3px}
.typing{display:flex;gap:5px;padding:14px 16px}
.typing i{width:5px;height:5px;border-radius:50%;background:var(--ink-2);animation:tdot 1.2s infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
@keyframes tdot{0%,100%{opacity:.25}40%{opacity:1}}
.chat__sugg{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 12px}
.chat__sugg .tab{height:36px;font-size:12.5px;padding:0 14px;font-weight:400;letter-spacing:0}
.chat__f{border-top:1px solid var(--line);padding:10px 12px calc(8px + env(safe-area-inset-bottom))}
.chat__row{display:flex;align-items:flex-end;gap:8px;background:var(--paper-2);border-radius:22px;padding:4px 4px 4px 16px}
.chat__row textarea{flex:1;border:0;background:transparent;resize:none;font:400 16px/1.45 var(--sans);color:var(--ink);padding:8px 0;max-height:calc(1.45em*4 + 16px);outline:none}
.chat__row:has(textarea:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.chat__send{width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--paper);border:0;display:grid;place-items:center;cursor:pointer;flex:none}
.chat__send .ic{width:18px;height:18px}
.chat__send:disabled{opacity:.4}
.chat__note{font-size:11px;color:var(--ink-2);margin-top:8px;padding-inline:4px}

/* toast */
.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));z-index:400;translate:-50% 0;width:max-content;background:var(--cream);color:var(--espresso);padding:12px 20px;border-radius:var(--r-pill);font-size:13.5px;max-width:calc(100vw - 32px);opacity:0;transform:translateY(12px);transition:opacity var(--d-2),transform var(--d-2) var(--ease-out);pointer-events:none;text-align:center;box-shadow:0 20px 40px -18px rgba(0,0,0,.6)}
.toast.is-on{opacity:1;transform:none}
.toast.is-high{bottom:auto;top:calc(var(--hdr-h) + 12px)}
@media (min-width:1024px){.toast,.toast.is-high{top:auto;bottom:32px}}

/* mobile bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:center;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));min-height:calc(64px + env(safe-area-inset-bottom));background:rgba(31,26,22,.82);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid rgba(246,241,234,.12);transform:translateY(105%);transition:transform 520ms var(--ease-expo)}
.mbar.is-on{transform:none}
.mbar .iconbtn{width:48px;height:48px;border:1px solid rgba(246,241,234,.2);flex:none}
.mbar .btn{flex:1;min-height:48px;padding:0 14px;font-feature-settings:"tnum" 1;letter-spacing:.1em}
@media (min-width:1024px){.mbar{display:none}}

/* ============ CUSTOM CURSOR (fine pointers only, enabled by JS) ============ */
.cur{display:none}
html.has-cursor .cur{display:block;position:fixed;left:0;top:0;z-index:2147483001;pointer-events:none;transition:opacity 300ms}
.cur__dot{position:fixed;left:0;top:0;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--bronze-hi)}
.cur__ring{position:fixed;left:0;top:0;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;border:1px solid rgba(212,172,116,.75);display:grid;place-items:center;transition:width 420ms var(--ease-expo),height 420ms var(--ease-expo),margin 420ms var(--ease-expo),background-color 300ms,border-color 300ms}
.cur__ring span{font:500 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--espresso);opacity:0;transition:opacity 200ms}
.cur.is-link .cur__ring{width:54px;height:54px;margin:-27px 0 0 -27px;border-color:var(--bronze-hi)}
.cur.is-label .cur__ring{width:92px;height:92px;margin:-46px 0 0 -46px;background:rgba(212,172,116,.92);border-color:transparent}
.cur.is-label .cur__ring span{opacity:1}
.cur.is-label .cur__dot,.cur.is-hide,.cur.is-idle{opacity:0}
.cur.is-down .cur__ring{scale:.85}
html.has-cursor,html.has-cursor a,html.has-cursor button,html.has-cursor label,html.has-cursor [role="option"]{cursor:none}
html.has-cursor :is(input,textarea,select){cursor:auto}

/* ============ MOBILE / TOUCH PERFORMANCE ============
   Large backdrop-filters and the animated full-screen grain are the most expensive layers on phones:
   swap them for near-opaque fills (same look at a glance, far cheaper to composite while scrolling). */
@media (max-width:1023px),(pointer:coarse){
  .fx-grain{display:none}
  .hdr.is-scrolled{background:rgba(26,20,16,.94);-webkit-backdrop-filter:none;backdrop-filter:none}
  .mbar{background:rgba(31,26,22,.97);-webkit-backdrop-filter:none;backdrop-filter:none}
  .glass{background:rgba(104,82,63,.9);-webkit-backdrop-filter:none;backdrop-filter:none}
  .bk-nav{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}
  .modal__scrim{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(12,9,7,.8)}
  .faq-bg img{filter:blur(18px) saturate(.9)}
  .closing__img img{filter:blur(22px) saturate(.85) brightness(.8)}
  .hero__copy::before{width:140vw;height:150%}
}

/* ============ PHONE ERGONOMICS (≤767px): readable type, ≥44px targets, thumb-zone booking ============ */
@media (max-width:767px){
  :root{--t-body:1rem}
  .t-label{font-size:.75rem;letter-spacing:.16em}
  .hdr__book,.menu-btn{font-size:12px}
  .menu-btn{min-width:44px;justify-content:flex-start}
  .hero__lead{font-size:1rem}
  .tab{height:44px;font-size:14px}
  .tab::before{inset:0}
  .status{font-size:13.5px;min-height:36px}
  .btn{font-size:13px;min-height:52px}
  .price{padding:16px 0}
  .price__n{font-size:16px}
  .price__d,.ckrow__d,.scard__s,.sum__it small,.art__role,.helper,.svc-note,.art__soon,.why__item p,.tip,.glass p,.fv p,.tips p,.chat__note,.muted{font-size:14.5px}
  .why__item p,.glass p,.fv p,.tips p{font-size:1rem}
  .ckrow{padding:16px 10px 16px 12px;min-height:64px}
  .ckrow__n{font-size:16px}
  .art__svc li{font-size:14.5px}
  .svc__toc .fr{font-size:14px}
  .qa h3 button{font-size:14px;letter-spacing:.06em;padding:22px 0;min-height:64px}
  .ftr__cols{font-size:15px}
  .ftr__cols h2{font-size:12px}
  .ftr__cols li,.ftr__cols a,.ftr__cols button.link{min-height:44px}
  .visit dd a.link,.menu__info dd a.link{display:inline-flex;align-items:center;min-height:44px}
  .ftr__bot,.ftr__bot button{font-size:14px}
  /* booking: big, thumb-friendly controls */
  .date{width:68px;height:82px}
  .date small{font-size:12.5px}
  .slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .slot{height:54px;font-size:16px}
  .bk-nav{padding-top:12px;box-shadow:0 -12px 24px -16px rgba(0,0,0,.35)}
  .bk-nav .btn{min-height:54px}
  .bk-nav__mini{font-size:14px}
  .scard{min-height:92px}
  .dates-hint.dates-hint{display:flex}
}
.dates-hint{display:none;align-items:center;justify-content:flex-end;gap:8px;font-size:12.5px;color:var(--ink-2);margin:-2px 0 8px}
.dates-hint i{display:block;width:22px;height:1px;background:currentColor;position:relative}
.dates-hint i::after{content:"";position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;transition-delay:0ms!important}
  .lb,.modal__scrim,.toast,.chat,.menu__img img,.menu{transition-duration:200ms!important}
  .hero__kb{animation:none}
  .fx-grain{animation:none}
  .split .l>span{transform:none}
  .gi.unmask{clip-path:none}
  .menu__list a{transform:none}
  .menu__side{opacity:1;transform:none}
  html:not(.motion) .mq-row--a,html:not(.mq-js) .mq-row--b{animation:none}
  .status.is-open .status__dot{animation:none}
  .sk::after{display:none}
  .typing i{animation:none;opacity:.6}
  .qa__p p{opacity:1;transform:none}
}

html.intro:not(.intro-out){overflow:hidden}

/* ===== project integration (michie-salon) ===== */
/* hero photo is resolved at runtime (admin hero_image -> bundled lash photo); never show alt text / a broken icon meanwhile */
#heroImg:not([src]){visibility:hidden}
/* styled fallback when no hero photo can load */
.hero__kb{background:radial-gradient(120% 90% at 70% 30%,#9B764E 0%,#7A6047 38%,#2a211b 78%,#1F1A16 100%)}
.hero-nophoto .hero__kb::after{content:"M";position:absolute;inset:0;display:grid;place-items:center;font-family:"Cormorant Garamond",serif;font-weight:300;font-size:min(70vw,60vh);line-height:1;color:rgba(246,241,234,.07)}
