@font-face{font-family:Lora;src:url('/assets/fonts/lora.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:Onest;src:url('/assets/fonts/onest.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

/* ============================================================
   TOKENS — Candlelit Rose
   ============================================================ */
:root{
  --c-base:#170F11;
  --c-base-2:#1E1417;
  --c-surface:#271A1E;
  --c-surface-2:#332328;
  --c-line:rgba(212,160,168,.16);
  --c-line-strong:rgba(201,162,94,.34);
  --c-rose:#D4A0A8;
  --c-rose-deep:#A76B77;
  --c-mauve:#8E6A72;
  --c-gold:#C9A25E;
  --c-gold-soft:#E3C892;
  --c-crimson:#EF9CA8;
  --c-cream:#F4EAE5;
  --c-dim:rgba(244,234,229,.76);
  --c-dimmer:rgba(244,234,229,.66);

  --f-display:"Lora",Georgia,"Times New Roman",serif;
  --f-body:"Onest",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  --s-1:.5rem; --s-2:.875rem; --s-3:1.25rem; --s-4:2rem;
  --s-5:3rem; --s-6:4.5rem; --s-7:7rem;

  --t-xs:clamp(.72rem,.7rem + .1vw,.78rem);
  --t-sm:clamp(.86rem,.83rem + .15vw,.94rem);
  --t-base:clamp(1rem,.96rem + .2vw,1.08rem);
  --t-lg:clamp(1.15rem,1.05rem + .45vw,1.4rem);
  --t-xl:clamp(1.5rem,1.25rem + 1.1vw,2.1rem);
  --t-2xl:clamp(2rem,1.5rem + 2.2vw,3.4rem);
  --t-3xl:clamp(2.6rem,1.8rem + 3.6vw,5rem);

  --ease:cubic-bezier(.22,.61,.36,1);
  --nav-h:64px;
  --app-height:100svh;
  --wrap:min(1080px,100% - 2rem);
}
@media (min-width:768px){ :root{ --nav-h:78px; --wrap:min(1060px,100% - 4rem); } }

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{
  -webkit-text-size-adjust:100%;
  overscroll-behavior:none;
  scroll-behavior:auto;
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }

body{
  background:var(--c-base);
  color:var(--c-cream);
  font-family:var(--f-body);
  font-size:var(--t-base);
  font-weight:300;
  line-height:1.65;
  overscroll-behavior:none;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.is-locked{overflow:hidden}

/* Scroll-stability: clip on the wrapper, never on html/body */
#root{overflow-x:clip;position:relative;isolation:isolate}

img,video{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}

:focus-visible{
  outline:2px solid var(--c-gold);
  outline-offset:3px;
  border-radius:2px;
}

.skip{
  position:absolute;left:var(--s-3);top:-100px;z-index:200;
  background:var(--c-gold);color:var(--c-base);
  padding:.7rem 1.1rem;border-radius:2px;font-weight:500;
  transition:top .2s var(--ease);
}
.skip:focus{top:var(--s-3)}

.sr{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.wrap{width:var(--wrap);margin-inline:auto}

/* ============================================================
   TYPE PRIMITIVES
   ============================================================ */
.eyebrow{
  font-family:var(--f-body);
  font-size:var(--t-xs);
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--c-gold);
  display:inline-flex;align-items:center;justify-content:center;gap:.75rem;
}
.eyebrow::before,.eyebrow::after{
  content:"";width:1.5rem;height:1px;
  background:var(--c-gold);opacity:.6;flex:none;
}
.eyebrow--center{justify-content:center}

h1,h2,h3,h4{
  font-family:var(--f-display);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.015em;
}
.h2{font-size:var(--t-2xl);letter-spacing:-.02em}
.h3{font-size:var(--t-xl)}
.lead{
  font-size:var(--t-lg);
  color:var(--c-dim);
  font-weight:300;
  line-height:1.55;
  max-width:46ch;
}
.muted{color:var(--c-dim)}
em,.em{font-style:italic;color:var(--c-rose)}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  min-height:52px;padding:.9rem 1.7rem;
  font-size:var(--t-sm);font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;
  border-radius:999px;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.btn--gold{background:var(--c-gold);color:#20140C;box-shadow:0 4px 16px rgba(201,162,94,.2)}
.btn--gold:hover{background:var(--c-gold-soft);transform:translateY(-1px)}
.btn--ghost{
  border:1px solid var(--c-line-strong);
  background:rgba(23,15,17,.68);
  color:var(--c-cream);
}
.btn--ghost:hover{border-color:var(--c-gold);color:var(--c-gold);background:rgba(36,23,27,.82);transform:translateY(-1px)}
.btn--block{width:100%}
.btn[disabled]{opacity:.32;pointer-events:none}

.link-arrow{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:var(--t-sm);letter-spacing:.03em;
  color:var(--c-gold);font-weight:500;
  border-bottom:1px solid transparent;padding-bottom:2px;
  transition:border-color .3s var(--ease),gap .3s var(--ease);
}
.link-arrow:hover{border-color:var(--c-gold);gap:.85rem}

/* ============================================================
   HEADER
   ============================================================ */
.hdr{
  position:fixed;inset:0 0 auto;z-index:90;
  min-height:calc(var(--nav-h) + env(safe-area-inset-top));
  display:flex;align-items:center;padding-top:env(safe-area-inset-top);
  background:linear-gradient(#170F11ed,#170F11c9);border-bottom:1px solid var(--c-line);
  transition:background .25s ease;
}
.hdr.is-stuck{background:var(--c-base)}
.hdr__in{width:min(1280px,100% - 2rem);min-height:var(--nav-h);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.mark{display:inline-flex;align-items:center;flex:none;color:var(--c-cream);white-space:nowrap}
.hdr .mark__lockup{width:164px;height:auto}
.hdr__actions{display:flex;align-items:center;gap:1rem;flex:none}
.nav{display:none}
.lang{display:flex;align-items:center;padding:3px;border:1px solid var(--c-line);border-radius:999px;flex:none}
.lang a{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:.35rem .5rem;border-radius:999px;font-size:.7rem;font-weight:500;letter-spacing:.06em;color:var(--c-dimmer);transition:color .2s,background .2s}
.lang a.is-active{color:var(--c-gold-soft);background:var(--c-surface-2)}
.lang a:hover{color:var(--c-cream)}
.hdr .btn{display:none;min-height:44px;padding:.65rem 1.2rem;font-size:.8rem;letter-spacing:0;text-transform:none;white-space:nowrap}
.burger{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--c-line-strong);border-radius:50%;flex:none}
.burger i{display:block;width:18px;height:1px;background:var(--c-cream);position:relative;transition:background .2s}
.burger i::before,.burger i::after{content:'';position:absolute;left:0;width:18px;height:1px;background:var(--c-cream);transition:transform .25s var(--ease)}
.burger i::before{top:-5px}.burger i::after{top:5px}
.burger[aria-expanded=true] i{background:transparent}
.burger[aria-expanded=true] i::before{transform:translateY(5px) rotate(45deg)}
.burger[aria-expanded=true] i::after{transform:translateY(-5px) rotate(-45deg)}
@media(min-width:768px){.hdr__in{width:min(1280px,100% - 3rem)}.hdr .btn{display:inline-flex}.hdr__actions{gap:1.25rem}}
@media(min-width:1200px){
  .nav{display:flex;align-items:center;justify-content:center;gap:1.25rem;margin-inline:auto}
  .nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;font-size:.84rem;font-weight:400;letter-spacing:0;color:var(--c-dim);transition:color .2s}
  .nav a::after{content:'';position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--c-gold);transform:scaleX(0);transition:transform .25s var(--ease)}
  .nav a:hover,.nav a.is-active{color:var(--c-gold-soft)}
  .nav a:hover::after,.nav a.is-active::after{transform:scaleX(1)}
  .burger{display:none}
}
@media(max-width:389px){.hdr .mark__lockup{width:142px}.hdr__in{gap:.5rem}.hdr__actions{gap:.4rem}.lang a{min-width:30px;padding-inline:.3rem}}
.drawer{position:fixed;inset:0;z-index:85;display:flex;align-items:flex-start;justify-content:flex-end;padding:calc(var(--nav-h) + env(safe-area-inset-top) + .65rem) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom));background:#0A0607b8;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility 0s .2s}
.drawer.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s}
.drawer__panel{width:min(25rem,100%);max-height:calc(100dvh - var(--nav-h) - env(safe-area-inset-top) - 1.65rem);overflow-y:auto;overscroll-behavior:contain;background:var(--c-base-2);border:1px solid var(--c-line-strong);border-radius:16px;padding:1rem 1.25rem;transform:translateY(-8px);transition:transform .25s var(--ease)}
.drawer.is-open .drawer__panel{transform:none}
.drawer__title{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--c-gold);padding:.25rem 0 .7rem}
.drawer nav{display:grid;grid-template-columns:minmax(0,1fr)}
.drawer nav a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:46px;border-bottom:1px solid var(--c-line);font-size:.95rem;font-weight:400;color:var(--c-cream)}
.drawer nav a::after{content:'↗';color:var(--c-gold);font-size:.9rem}
.drawer nav a:hover{color:var(--c-gold-soft)}
.drawer__foot{display:grid;gap:.5rem;margin-top:1rem}.drawer__foot .btn{min-height:44px;padding:.65rem .8rem;font-size:.8rem;text-transform:none;letter-spacing:0}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  min-height:var(--app-height,100svh);
  display:flex;align-items:center;justify-content:center;
  padding:calc(var(--nav-h) + 1.25rem) 1rem 2rem;
  padding-bottom:calc(2rem + env(safe-area-inset-bottom));
  overflow:hidden;
  text-align:center;
}
.hero__media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__media video,.hero__media img{
  width:100%;height:100%;object-fit:cover;
}
.hero__scrim{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(ellipse 90% 70% at 50% 50%,rgba(158,36,55,.16),transparent 75%),
    linear-gradient(to top,rgba(23,15,17,.92) 0%,rgba(23,15,17,.62) 50%,rgba(23,15,17,.8) 100%);
}
.hero__in{
  width:var(--wrap);
  max-width:840px;
  margin-inline:auto;
  position:relative;
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
.hero__sub{max-width:43ch;color:var(--c-dim);font-size:var(--t-base);line-height:1.6;margin:0 0 1.75rem;text-wrap:pretty}
.hero h1{
  font-size:var(--t-3xl);
  margin:0 auto 1.25rem;
  max-width:18ch;
  text-align:center;
}
/* The mask that makes the line-reveal work clips at the line box, which cuts
   Cyrillic descenders (р, у, д, ф). Pad the clip box and pull it back with a
   matching negative margin so the mask still starts flush. */
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.28em;margin-bottom:-.28em}
.hero h1 .ln>span{display:block;text-align:center}
.hero__cta{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  justify-content:center;
  align-items:center;
  width:100%;
  max-width:540px;
  margin-inline:auto;
}
.hero__cta .btn{
  flex:0 0 auto;
  min-width:min(100%,190px);
}
@media (max-width:440px){
  .hero__cta{flex-direction:column;gap:.65rem;max-width:280px}
  .hero__cta .btn{width:100%;min-height:50px}
}

/* ============================================================
   TRUST STRIP
   ============================================================ */
.trust{
  border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);
  background:var(--c-base-2);
  padding:1.15rem 1.25rem;
}
@media (min-width:768px){ .trust{padding:1.35rem 2.5rem} }
.trust ul{
  width:100%;max-width:1060px;margin-inline:auto;
  list-style:none;display:grid;grid-template-columns:1fr 1fr;
}
@media (min-width:900px){ .trust ul{grid-template-columns:repeat(4,1fr)} }
.trust li{
  padding:var(--s-3) var(--s-2);
  display:flex;flex-direction:column;gap:.35rem;align-items:center;text-align:center;justify-content:center;
  border-right:1px solid var(--c-line);
  border-bottom:1px solid var(--c-line);
}
.trust li:nth-child(2n){border-right:0}
@media (min-width:900px){
  .trust li{border-bottom:0;padding:var(--s-4) var(--s-3)}
  .trust li:nth-child(2n){border-right:1px solid var(--c-line)}
  .trust li:last-child{border-right:0}
}
.trust b{
  font-family:var(--f-display);font-size:var(--t-lg);font-weight:400;
  color:var(--c-cream);line-height:1.2;
}
.trust small{font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--c-gold)}

/* ============================================================
   SECTION SHELL
   ============================================================ */
.sec{padding:var(--s-6) 0;position:relative}
@media (min-width:768px){ .sec{padding:var(--s-7) 0} }
.sec--tint{background:var(--c-base-2)}
.sec__head{
  margin-bottom:var(--s-5);
  max-width:58ch;
  margin-inline:auto;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.sec__head .h2{margin:var(--s-2) auto;text-align:center}
.sec__head .lead{margin-inline:auto;text-align:center}
.sec__head--center{margin-inline:auto;text-align:center}
.sec__head--center .lead{margin-inline:auto}

/* ============================================================
   SERVICES
   ============================================================ */
/* Treatment cards keep the price and its booking action together. */
.svc{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;width:var(--wrap);max-width:1080px;margin-inline:auto}
@media(min-width:768px){.svc{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}}
.svc__item{min-width:0;position:relative;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;border:1px solid var(--c-line-strong);border-radius:22px;background:linear-gradient(145deg,var(--c-surface),var(--c-base-2) 72%)}
@media(min-width:1024px){.svc__item{padding:2rem;gap:1.2rem}}
.svc__top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.svc__num{font-size:.75rem;letter-spacing:.14em;color:var(--c-gold)}
.svc__range{font-size:.72rem;line-height:1.3;letter-spacing:.04em;color:var(--c-dim);border:1px solid var(--c-line);padding:.4rem .65rem;border-radius:999px}
.svc__item h3{font-size:clamp(1.65rem,1.3rem + .9vw,2.05rem);line-height:1.18;max-width:25ch}
.svc__item>p{font-size:var(--t-sm);line-height:1.7;color:var(--c-dim);max-width:48ch;margin-bottom:.5rem}
.svc__choose{margin-top:auto;display:grid;gap:.7rem}
.svc__label{font-size:.72rem;color:var(--c-dimmer);letter-spacing:.02em}
.svc__options{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:.55rem}
.svc__option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-width:0;min-height:84px;padding:.65rem .35rem;border:1px solid var(--c-line-strong);border-radius:12px;background:var(--c-base);transition:border-color .2s,background .2s,color .2s}
.svc__option>span{font-size:.82rem;color:var(--c-dim);white-space:nowrap}
.svc__option b{font-family:var(--f-display);font-size:1.55rem;font-weight:400;color:var(--c-cream);line-height:1.25}
.svc__option:hover{border-color:var(--c-gold)}
.svc__option[aria-pressed=true]{background:#C9A25E14;border-color:var(--c-gold)}
.svc__option[aria-pressed=true]>span,.svc__option[aria-pressed=true] b{color:var(--c-gold-soft)}
.svc__option[aria-pressed=true]::after{content:'✓';position:absolute;top:.2rem;right:.4rem;font-size:.65rem;color:var(--c-gold)}
.svc__book{width:100%;justify-content:space-between;min-height:58px;padding:.95rem 1.25rem;text-transform:none;letter-spacing:0;font-size:.95rem;border-radius:12px;box-shadow:none}
.svc__book>span:last-child{font-size:1.2rem}
.svc__preference{max-width:1080px;margin:1.5rem auto 0;padding:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;border:1px solid var(--c-line);border-radius:18px;background:var(--c-base-2)}
.svc__preference h3{font-size:1.3rem;margin-bottom:.5rem}.svc__preference p{color:var(--c-dim);font-size:var(--t-sm);max-width:50ch}
.svc__preference .check{flex:none;margin:0;min-height:48px;align-items:center}
.svc__note{max-width:1080px;margin-top:1rem;color:var(--c-dimmer);font-size:.78rem;text-align:center}
@media(max-width:767px){.svc__preference{align-items:flex-start;flex-direction:column;gap:1rem}.svc__item{padding:1.25rem}.svc__note{text-align:left}}

/* Premium feature */
.feat{
  display:grid;gap:0;
  border:1px solid var(--c-line-strong);
  background:linear-gradient(140deg,var(--c-surface),var(--c-base-2) 62%);
  overflow:hidden;
  max-width:1040px;margin-inline:auto;
  border-radius:4px;
}
@media (min-width:900px){ .feat{grid-template-columns:1.05fr .95fr;align-items:stretch} }
.feat__media{position:relative;min-height:280px;overflow:hidden}
.feat__media img{width:100%;height:100%;object-fit:cover}
.feat__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to right,transparent 55%,rgba(39,26,30,.75));
}
@media (max-width:899px){
  .feat__media{min-height:220px}
  .feat__media::after{background:linear-gradient(to bottom,transparent 45%,rgba(39,26,30,.9))}
}
.feat__body{padding:var(--s-4) var(--s-3)}
@media (min-width:768px){ .feat__body{padding:var(--s-5)} }
.feat__body h3{font-size:var(--t-2xl);margin:var(--s-2) 0 var(--s-3)}
.feat__list{list-style:none;display:flex;flex-direction:column;gap:.9rem;margin:var(--s-3) 0 var(--s-4)}
.feat__list li{
  display:flex;gap:.9rem;align-items:flex-start;
  font-size:var(--t-sm);color:var(--c-dim);
  padding-bottom:.9rem;border-bottom:1px solid var(--c-line);
}
.feat__list li::before{
  content:"";flex:none;width:6px;height:6px;margin-top:.55rem;
  border:1px solid var(--c-gold);transform:rotate(45deg);
}
.feat__price{
  display:flex;align-items:baseline;gap:.8rem;
  font-family:var(--f-display);
}
.feat__price b{font-size:var(--t-2xl);font-weight:400;color:var(--c-gold)}
.feat__price span{font-family:var(--f-body);font-size:var(--t-sm);color:var(--c-dim);letter-spacing:.12em;text-transform:uppercase}

/* ============================================================
   QUIZ
   ============================================================ */
.quiz{
  border:1px solid var(--c-line);background:var(--c-base);
  padding:var(--s-4) var(--s-3);
  max-width:780px;margin-inline:auto;
}
@media (min-width:768px){ .quiz{padding:var(--s-5)} }
.quiz__bar{height:2px;background:var(--c-line);margin-bottom:var(--s-4);overflow:hidden}
.quiz__bar i{
  display:block;height:100%;width:100%;background:var(--c-gold);
  transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--ease);
}
.quiz__step{display:none}
.quiz__step.is-on{display:block}
.quiz__count{font-size:var(--t-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--c-gold);margin-bottom:var(--s-2);text-align:center}
.quiz__q{font-family:var(--f-display);font-size:var(--t-xl);margin-bottom:var(--s-3);max-width:28ch;margin-inline:auto;text-align:center}
.quiz__opts{display:grid;gap:.6rem}
@media (min-width:700px){ .quiz__opts{grid-template-columns:1fr 1fr} }
.opt{
  text-align:left;padding:1rem 1.15rem;min-height:56px;
  border:1px solid var(--c-line);color:var(--c-dim);
  font-size:var(--t-sm);line-height:1.4;
  touch-action:pan-y;-webkit-user-select:none;user-select:none;
  transition:border-color .3s var(--ease),color .3s var(--ease),background .3s var(--ease);
}
.opt:focus-visible{border-color:var(--c-gold);color:var(--c-cream);background:var(--c-surface)}
@media (hover:hover) and (pointer:fine){
  .opt:hover{border-color:var(--c-gold);color:var(--c-cream);background:var(--c-surface)}
}
.quiz__result{display:none;text-align:center}
.quiz__result.is-on{display:block}
.quiz__result h3{font-size:var(--t-2xl);color:var(--c-gold);margin:var(--s-2) 0}
.quiz__result p{color:var(--c-dim);max-width:44ch;margin:0 auto var(--s-4)}
.quiz__actions{display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:center}
.quiz__back{
  margin-top:var(--s-3);font-size:var(--t-xs);letter-spacing:.14em;
  text-transform:uppercase;color:var(--c-dimmer);
}
.quiz__back:hover{color:var(--c-gold)}

/* ============================================================
   ABOUT / STUDIO
   ============================================================ */
.about{display:grid;gap:var(--s-4);align-items:center;max-width:1040px;margin-inline:auto}
@media (min-width:900px){ .about{grid-template-columns:1.1fr .9fr;gap:var(--s-6)} }
.about__media{position:relative}
.about__media>img{width:100%;aspect-ratio:16/9;object-fit:cover}
@media (min-width:900px){ .about__media>img{aspect-ratio:4/3} }
.about__body p{color:var(--c-dim);margin-bottom:var(--s-3);max-width:48ch}
.about__title{margin:var(--s-2) 0 var(--s-3)}
.sig{
  font-family:var(--f-display);font-style:italic;
  font-size:var(--t-lg);color:var(--c-rose);margin-top:var(--s-3);
}
.sig small{
  display:block;font-family:var(--f-body);font-style:normal;
  font-size:var(--t-xs);letter-spacing:.2em;text-transform:uppercase;
  color:var(--c-dimmer);margin-top:.35rem;
}

.gal{display:grid;gap:1rem;grid-template-columns:1fr 1fr;max-width:1060px;margin-inline:auto}
@media (min-width:900px){ .gal{grid-template-columns:repeat(4,1fr);gap:1.25rem} }
.gal figure{overflow:hidden;position:relative}
.gal img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4}

/* ============================================================
   JOURNAL
   ============================================================ */
.journal{display:grid;gap:1rem;max-width:1060px;margin-inline:auto}
@media (min-width:760px){ .journal{grid-template-columns:repeat(3,1fr);gap:1.25rem} }
.journal__card{
  border:1px solid var(--c-line);background:var(--c-base);
  display:flex;flex-direction:column;min-width:0;
  transition:border-color .4s var(--ease),transform .4s var(--ease);
}
.journal__card:hover{border-color:var(--c-line-strong);transform:translateY(-4px)}
.journal__card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.journal__body{padding:var(--s-3);display:flex;flex-direction:column;gap:.65rem;flex:1}
.journal__meta{font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--c-gold)}
.journal__card h3{font-size:var(--t-lg);line-height:1.25;color:var(--c-cream)}
.journal__card p{font-size:var(--t-sm);color:var(--c-dim);flex:1}
.journal__card .link-arrow{align-self:flex-start;margin-top:var(--s-2)}

/* ============================================================
   FAQ
   ============================================================ */
.faq{border-top:1px solid var(--c-line);max-width:820px;margin-inline:auto;padding-top:.75rem}
.faq__item{border-bottom:1px solid var(--c-line)}
.faq__q{
  width:100%;text-align:left;display:flex;align-items:flex-start;gap:1rem;
  padding:var(--s-3) 0;font-family:var(--f-display);font-size:var(--t-lg);
  color:var(--c-cream);transition:color .3s var(--ease);
}
.faq__q:hover{color:var(--c-gold)}
.faq__q i{
  flex:none;width:14px;height:14px;margin-top:.55rem;position:relative;
}
.faq__q i::before,.faq__q i::after{
  content:"";position:absolute;background:var(--c-gold);
  transition:transform .4s var(--ease),opacity .3s var(--ease);
}
.faq__q i::before{left:0;top:6px;width:14px;height:1px}
.faq__q i::after{left:6px;top:0;width:1px;height:14px}
.faq__q[aria-expanded="true"] i::after{transform:rotate(90deg);opacity:0}
.faq__a{overflow:hidden;height:0}
.faq__a>div{padding:0 0 var(--s-3) calc(14px + 1rem);color:var(--c-dim);max-width:60ch;font-size:var(--t-sm)}

/* ============================================================
   CONTACT
   ============================================================ */
.ct{display:grid;gap:var(--s-4);max-width:960px;margin-inline:auto}
@media (min-width:900px){ .ct{grid-template-columns:.85fr 1.15fr;gap:var(--s-5)} }
.ct__rows{display:flex;flex-direction:column}
.ct__row{
  padding:var(--s-3) 0;border-bottom:1px solid var(--c-line);
  display:flex;flex-direction:column;gap:.25rem;
}
.ct__row:first-child{border-top:1px solid var(--c-line)}
.ct__row small{font-size:var(--t-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--c-gold)}
.ct__row b,.ct__row a{font-family:var(--f-display);font-size:var(--t-lg);font-weight:400;color:var(--c-cream)}
.ct__row a:hover{color:var(--c-gold)}
.ct__chan{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:var(--s-3)}
.chip{
  display:inline-flex;align-items:center;gap:.5rem;min-height:46px;
  padding:.6rem 1.1rem;border:1px solid var(--c-line);border-radius:999px;
  font-size:var(--t-sm);letter-spacing:.04em;
  transition:border-color .3s var(--ease),color .3s var(--ease);
}
.chip:hover{border-color:var(--c-gold);color:var(--c-gold)}
.chip svg{width:17px;height:17px;flex:none}

.map{
  position:relative;min-height:320px;height:100%;
  border:1px solid var(--c-line);overflow:hidden;background:var(--c-surface);
}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.7) contrast(1.05)}
.map__note{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  background:linear-gradient(transparent,rgba(23,15,17,.94) 42%);
  padding:var(--s-4) var(--s-3) var(--s-3);
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);justify-content:space-between;
}
.map__note b{font-family:var(--f-display);font-size:var(--t-base);font-weight:400}

/* ============================================================
   FOOTER
   ============================================================ */
.ftr{border-top:1px solid var(--c-line);background:var(--c-base-2);padding:var(--s-5) 0 var(--s-3)}
.ftr__grid{display:grid;gap:var(--s-4);max-width:1060px;margin-inline:auto}
@media (min-width:768px){ .ftr__grid{grid-template-columns:1.4fr 1fr 1fr} }
.ftr h3{
  font-family:var(--f-body);font-size:var(--t-xs);font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--c-gold);margin-bottom:var(--s-2);
}
.ftr ul{list-style:none;display:flex;flex-direction:column;gap:.55rem}
.ftr ul a,.ftr li{font-size:var(--t-sm);color:var(--c-dim);transition:color .3s var(--ease)}
.ftr ul a:hover{color:var(--c-cream)}
.ftr__legal{
  margin-top:var(--s-5);padding-top:var(--s-3);border-top:1px solid var(--c-line);
  display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:space-between;
  font-size:var(--t-xs);color:var(--c-dimmer);letter-spacing:.02em;
  max-width:1060px;margin-inline:auto;
}
.ftr__mark{margin:0 0 var(--s-2)}
.ftr__blurb{font-size:var(--t-sm);max-width:34ch}
.send__note--left{text-align:left;margin-top:var(--s-2)}
.ftr__legal a:hover{color:var(--c-gold)}

/* ============================================================
   BOOKING MODAL
   ============================================================ */
.modal{
  position:fixed;inset:0;z-index:120;
  display:flex;align-items:flex-end;justify-content:center;
  visibility:hidden;
}
@media (min-width:768px){ .modal{align-items:center;padding:var(--s-4)} }
.modal.is-open{visibility:visible}
.modal__scrim{
  position:absolute;inset:0;background:rgba(12,7,8,.82);
  opacity:0;transition:opacity .4s var(--ease);
}
.modal.is-open .modal__scrim{opacity:1}
.modal__panel{
  position:relative;width:100%;max-width:720px;border-radius:22px 22px 0 0;
  max-height:min(92svh,880px);
  background:var(--c-base-2);border:1px solid var(--c-line-strong);
  display:flex;flex-direction:column;
  transform:translateY(3%);opacity:0;
  transition:transform .45s var(--ease),opacity .35s var(--ease);
  overflow:hidden;
}
.modal.is-open .modal__panel{transform:none;opacity:1}

.modal__head{
  padding:var(--s-3);border-bottom:1px solid var(--c-line);
  display:flex;align-items:center;gap:var(--s-2);flex:none;
}
.modal__head h2{font-size:1.25rem;line-height:1.35;flex:1}
.modal__close{
  border:1px solid var(--c-line);border-radius:50%;flex:none;
  width:44px;height:44px;display:grid;place-items:center;
  color:var(--c-dim);font-size:1.4rem;line-height:1;
  transition:color .3s var(--ease);
}
.modal__close:hover{color:var(--c-gold)}

.modal__hint{font-size:.75rem;color:var(--c-dimmer);line-height:1.5;margin:.9rem var(--s-3) 1rem}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;list-style:none;padding:0 var(--s-3) 1rem;flex:none}
.steps li{min-width:0;display:flex;flex-direction:column;gap:.45rem;color:var(--c-dimmer);font-size:.68rem;line-height:1.4}
.steps i{display:block;width:100%;height:3px;border-radius:99px;background:var(--c-line);transition:background .2s}
.steps i.is-done{background:var(--c-gold)}
.steps li[aria-current=step]{color:var(--c-gold-soft)}
.booking-selection{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;margin:0 var(--s-3) 1.25rem;border:1px solid var(--c-line-strong);background:var(--c-surface);border-radius:12px;flex:none}
.booking-selection p{font-size:.82rem;line-height:1.5;color:var(--c-cream)}
.booking-selection button{font-size:.75rem;min-height:44px;flex:none}
.booking-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:0 1rem}
@media(min-width:480px){.booking-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.modal__panel{border-radius:22px}}

.modal__body{
  padding:0 var(--s-3) var(--s-3);
  overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;
  overscroll-behavior:contain;
}
.modal__foot{
  padding:var(--s-3);border-top:1px solid var(--c-line);
  display:flex;gap:var(--s-2);flex:none;
  padding-bottom:calc(var(--s-3) + env(safe-area-inset-bottom));
}
.modal__foot .btn{flex:1;min-height:54px;text-transform:none;letter-spacing:0;border-radius:12px}
.modal__foot .btn--ghost{flex:0 0 auto;padding-inline:1.2rem}

.bstep{display:none}
.bstep.is-on{display:block}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.bstep__t{font-family:var(--f-display);font-size:1.65rem;line-height:1.25;font-weight:400;color:var(--c-cream);margin-bottom:1.25rem;outline:none}

.pick{display:grid;gap:.7rem}
.pick button{
  text-align:left;padding:1rem 1.1rem;min-height:78px;border-radius:12px;
  border:1px solid var(--c-line);
  display:flex;align-items:center;gap:.9rem;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.pick button:hover{border-color:var(--c-line-strong);background:var(--c-surface)}
.pick button.is-sel{border-color:var(--c-gold);background:var(--c-surface)}
.pick b{font-weight:400;font-family:var(--f-display);font-size:var(--t-base);flex:1}
.pick small{display:block;font-size:var(--t-xs);color:var(--c-dimmer);letter-spacing:.1em;text-transform:uppercase;margin-top:.15rem}
.pick span{font-family:var(--f-display);color:var(--c-gold);white-space:nowrap}

.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:var(--s-2)}
.field label{font-size:.82rem;letter-spacing:0;text-transform:none;color:var(--c-dim)}
.field input,.field textarea{
  background:var(--c-base);border:1px solid var(--c-line);
  padding:.85rem 1rem;min-height:54px;font-size:1rem;border-radius:10px;
  transition:border-color .3s var(--ease);
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--c-gold)}
.field textarea{resize:vertical;min-height:88px}
.field.is-bad input{border-color:var(--c-crimson)}
.field em{font-style:normal;font-size:var(--t-xs);color:var(--c-crimson);display:none}
.field.is-bad em{display:block}

.summary{border:1px solid var(--c-line);padding:var(--s-3);margin-bottom:var(--s-3)}
.summary dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;font-size:var(--t-sm)}
.summary dt{color:var(--c-dimmer);letter-spacing:.08em;text-transform:uppercase;font-size:var(--t-xs);padding-top:.2rem}
.summary dd{text-align:right;font-family:var(--f-display)}
.summary dd.gold{color:var(--c-gold)}
.send{display:grid;gap:.6rem}
.send .btn{width:100%}
.btn--wa{background:#1FA855;color:#06210F}
.btn--wa:hover{background:#25c765}
.btn--viber{background:#5B48D6;color:#fff}
.btn--viber:hover{background:#4C3AC0}
.send__note{font-size:var(--t-xs);color:var(--c-dimmer);text-align:center;margin-top:.3rem;line-height:1.5}

/* Hidden state must not rely on transform alone: translateY(140%) of the
   pill's own height never cleared its `bottom` offset, leaving a sliver of
   the gold border visible above the fold at all times. */
.toast{
  position:fixed;left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom));
  transform:translate(-50%,140%);z-index:200;
  background:var(--c-surface);color:var(--c-cream);
  border:1px solid var(--c-line-strong);
  padding:.85rem 1.4rem;border-radius:999px;
  font-size:var(--t-sm);font-weight:500;
  max-width:calc(100vw - 2rem);text-align:center;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:transform .45s var(--ease),opacity .3s var(--ease),visibility 0s .45s;
}
.toast.is-on{
  transform:translate(-50%,0);
  opacity:1;visibility:visible;
  transition:transform .45s var(--ease),opacity .3s var(--ease),visibility 0s;
}

/* ============================================================
   REVEAL + REDUCED MOTION
   ============================================================ */
.rv{opacity:1;transform:none}
.no-motion .rv{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;transition-delay:0s!important;animation-delay:0s!important;
  }
  .rv{opacity:1!important;transform:none!important}
}

/* i18n visibility */
[data-en]{display:none}
html[lang="en"] [data-bg]{display:none}
html[lang="en"] [data-en]{display:initial}

[hidden]{display:none!important}
.mark__lockup{width:174px;height:auto;display:block}
.ftr__mark .mark__lockup{width:225px}
.hero__poster{display:block;width:100%;height:100%}.hero__poster img{width:100%;height:100%;object-fit:cover}
.hero__media video{position:absolute;inset:0}.hero__media{background:#170F11}
.hero{padding-bottom:2.5rem}.hero__cta .btn{min-width:0}
.booking-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.booking-flow article{padding:1.6rem 0;border-top:1px solid var(--c-line-strong)}
.booking-flow article>span{font-family:var(--f-display);color:var(--c-gold);font-size:2.25rem;line-height:1;display:block;margin-bottom:1.5rem}
.booking-flow h3{font-size:1.35rem;line-height:1.25;margin-bottom:.8rem}.booking-flow p,.booking-flow__note{color:var(--c-dim);font-size:var(--t-sm)}
.booking-flow__note{padding-top:1.5rem;border-top:1px solid var(--c-line)}
@media(max-width:767px){.booking-flow{grid-template-columns:minmax(0,1fr);gap:0}.booking-flow article{padding:1.5rem 0}.booking-flow article>span{font-size:1.6rem;margin-bottom:.75rem}}
.arrival-note{border-left:2px solid var(--c-gold);padding:.3rem 0 .3rem 1rem;margin:1rem 0 1.5rem;font-size:var(--t-sm);color:var(--c-dim)}
.map{background:var(--c-surface);min-height:420px;overflow:hidden}
.map iframe{filter:none;pointer-events:none}
.map.is-interactive iframe{pointer-events:auto}
.map__guard{position:absolute;inset:0;z-index:1;display:grid;place-items:center;width:100%;background:transparent;cursor:pointer;padding:1rem 1rem 5rem}
.map__guard span{max-width:100%;background:var(--c-base-2);color:var(--c-cream);border:1px solid var(--c-gold);border-radius:999px;padding:.85rem 1.25rem;font-size:var(--t-sm);line-height:1.4;box-shadow:0 4px 20px #170F1130}
.map__guard:focus-visible{outline-offset:-6px}
.map__note{background:var(--c-base-2);padding:1rem;min-height:64px}.map__note .link-arrow{font-size:.75rem}
.field select{appearance:auto;border:1px solid var(--c-line);background:var(--c-base);border-radius:10px;padding:.85rem 1rem;min-height:54px;color:var(--c-cream);font:inherit}
.field select:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px}.field input{min-width:0;width:100%;color-scheme:dark}
.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px}
.send__note--left{text-align:left;margin-bottom:1rem}.check{display:flex;align-items:flex-start;gap:.75rem;font-size:var(--t-sm);line-height:1.55;margin:1.2rem 0;cursor:pointer}.check input{flex:none;margin-top:.25rem;accent-color:var(--c-gold);width:20px;height:20px}
.summary dl{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.summary dd{overflow-wrap:anywhere;min-width:0}.summary dt{overflow-wrap:break-word}.payment{margin-top:1.5rem;border-top:1px solid var(--c-line-strong);padding-top:1rem;font-size:var(--t-sm);color:var(--c-dim)}
.payment summary{color:var(--c-gold);cursor:pointer;padding:.6rem 0;min-height:44px;font-family:var(--f-display);font-size:1.1rem}.payment p{margin:1rem 0}.payment__amount{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-block:1px solid var(--c-line)}.payment__amount b{font-family:var(--f-display);font-size:1.8rem;color:var(--c-gold)}
.payment__reference{margin:1.25rem 0;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.payment__reference b{color:var(--c-cream);letter-spacing:.04em;overflow-wrap:anywhere}.payment__qr{display:block;width:180px;height:180px;margin:1.5rem auto;border:8px solid white;background:white}.payment__disclaimer{border-left:2px solid var(--c-gold);padding-left:1rem;color:var(--c-cream)}
.privacy-note{border-top:1px solid var(--c-line);padding:1.5rem 0;color:var(--c-dimmer);font-size:.78rem}.privacy-note h3{font-family:var(--f-body);font-size:.85rem;margin-bottom:.6rem}.privacy-note p{max-width:95ch;margin-bottom:.4rem}
.modal__panel{max-height:min(94svh,920px)}.modal__body{min-height:0}.modal__panel h2:focus{outline:none}.modal__foot .btn{font-size:.8rem}
.faq__q{min-height:56px}.chip{min-height:44px}.btn--viber{background:#5B48D6;color:#fff}.btn--wa{background:#1FA855;color:#06210F}
@media(max-width:390px){.modal__body,.modal__head{padding-inline:1rem}.modal__foot{padding-inline:1rem}.pick button{padding:.85rem}.pick b{font-size:1rem}.summary{padding:1rem}.summary dl{column-gap:.6rem}.modal__foot .btn{padding-inline:.9rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rv{transform:none!important;opacity:1!important}}

.send .btn{min-height:54px;text-transform:none;letter-spacing:0;border-radius:12px}.summary{border-radius:14px}.summary dd.gold{font-size:1.5rem}.modal .check input{accent-color:var(--c-gold)}
