/* ════════════════════════════════════════════════════════════
   SWANNY AESTHETIC — ENHANCEMENT LAYER
   Additive, progressive-enhancement only. Removing this file
   and its <link>/<script> restores the site exactly.
   ════════════════════════════════════════════════════════════ */

/* ── 12 · FOCUS SYSTEM ──────────────────────────────────────── */
:root{ --lx-gold:#F0C060; --lx-dgold:#C89020; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
[tabindex]:focus-visible,
[onclick]:focus-visible{
  outline:2px solid var(--lx-gold);
  outline-offset:3px;
  border-radius:1px;
}
a:focus:not(:focus-visible),
button:focus:not(:focus-visible){ outline:none; }

/* ── 01 · LINE-MASK REVEAL ──────────────────────────────────── */
.lx-mask{ overflow:hidden; padding-bottom:.06em; }
.lx-mask > .lx-mask-in{
  display:block;
  transform:translateY(115%);
  opacity:0;
  transition:transform .85s cubic-bezier(.19,1,.22,1),
             opacity .85s cubic-bezier(.19,1,.22,1);
  will-change:transform;
}
.lx-mask.lx-in > .lx-mask-in{ transform:translateY(0); opacity:1; }

/* ── 01 · SCROLL PROGRESS RAIL ──────────────────────────────── */
#lx-rail{
  position:fixed; top:0; left:0; height:2px; width:0%;
  background:linear-gradient(90deg,var(--lx-dgold),var(--lx-gold));
  z-index:120; pointer-events:none;
  box-shadow:0 0 12px rgba(240,192,96,.5);
  transition:width .12s linear;
}
#lx-where{
  position:fixed; left:48px; bottom:26px; z-index:118;
  font-family:'Barlow Condensed',sans-serif; font-size:10px;
  font-weight:700; letter-spacing:4px; text-transform:uppercase;
  color:var(--lx-gold); pointer-events:none;
  display:flex; align-items:center; gap:10px;
  opacity:0; transform:translateY(6px);
  transition:opacity .4s ease, transform .4s ease;
}
#lx-where.show{ opacity:.85; transform:translateY(0); }
#lx-where::before{ content:''; width:18px; height:1px; background:var(--lx-dgold); display:block; }

/* ── 01 · PAGE CURTAIN TRANSITION ───────────────────────────── */
#lx-curtain{
  position:fixed; inset:0; z-index:9998; pointer-events:none;
  background:#040404;
  transform:translateY(-101%);   /* RESTING = off-screen. Page is never trapped. */
  display:flex; align-items:center; justify-content:center;
}
#lx-curtain::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--lx-gold);
}
#lx-curtain .lx-monogram{
  font-family:'Cormorant Garamond',serif; font-weight:700;
  font-size:30px; letter-spacing:8px; color:var(--lx-gold);
  opacity:1; transition:opacity .3s ease;
}
/* leaving the page: JS drops the curtain down to cover */
#lx-curtain[data-state="cover"]{ transform:translateY(0); transition:transform .42s cubic-bezier(.76,0,.24,1); }
/* arriving after an internal click: snap to cover (no transition) then reveal up */
#lx-curtain[data-state="cover-instant"]{ transform:translateY(0); transition:none; }
#lx-curtain[data-state="reveal"]{ transform:translateY(-101%); transition:transform .6s cubic-bezier(.76,0,.24,1); }

/* ── 02 · TILT + GLOSS ──────────────────────────────────────── */
.lx-tilt{
  transform-style:preserve-3d;
  transition:transform .18s cubic-bezier(.22,1,.36,1);
  will-change:transform;
}
.lx-tilt::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(420px circle at var(--lx-mx,50%) var(--lx-my,0%),
            rgba(240,192,96,.10), transparent 42%);
  opacity:0; transition:opacity .3s ease; z-index:3;
}
.lx-tilt.lx-glow::after{ opacity:1; }

/* ── 03 · INTERACTIVE V-TAPER MAP ───────────────────────────── */
#lx-vtaper .lx-vrow{
  cursor:pointer; width:100%; font-family:inherit;
  display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  padding:11px 16px; background:transparent;
  border:1px solid transparent; border-left:2px solid var(--lx-dgold);
  transition:background .25s ease, border-color .25s ease;
}
#lx-vtaper .lx-vrow:hover,
#lx-vtaper .lx-vrow.on{ background:rgba(240,192,96,.05); border-left-color:var(--lx-gold); }
#lx-vtaper .lx-vname{
  font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:700;
  color:#777; transition:color .25s ease;
}
#lx-vtaper .lx-vrow:hover .lx-vname,
#lx-vtaper .lx-vrow.on .lx-vname{ color:#F5F5F5; }
#lx-vtaper .lx-vrole{
  font-family:'Barlow Condensed',sans-serif; font-size:9px; letter-spacing:2px;
  text-transform:uppercase; color:#555; transition:color .25s ease; white-space:nowrap;
}
#lx-vtaper .lx-vrow:hover .lx-vrole,
#lx-vtaper .lx-vrow.on .lx-vrole{ color:var(--lx-dgold); }

/* ── plan toggle (coaching monthly/annual) ──────────────────── */
.sc-plan-toggle{ display:flex; border:1px solid #2a2207; overflow:hidden; }
.sc-plan-opt{
  flex:1; padding:11px 6px; background:transparent; border:none; cursor:pointer;
  font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase; color:#777;
  border-right:1px solid #2a2207; transition:background .2s,color .2s;
}
.sc-plan-opt:last-child{ border-right:none; }
.sc-plan-opt:hover{ color:#cfcfcf; background:rgba(240,192,96,0.05); }
.sc-plan-opt.active{ background:rgba(240,192,96,0.12); color:#F0C060; }
.sc-plan-save{
  font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:700;
  letter-spacing:2px; text-transform:uppercase; color:#040404;
  background:#F0C060; padding:4px 10px;
}

/* ── cookie consent banner ──────────────────────────────────── */
#lx-consent{
  position:fixed; left:0; right:0; bottom:0; z-index:9990;
  background:rgba(8,8,8,0.97); border-top:1px solid rgba(200,144,32,0.3);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  transform:translateY(100%); transition:transform .35s cubic-bezier(.22,1,.36,1);
}
#lx-consent.show{ transform:translateY(0); }
#lx-consent .lx-consent-in{
  max-width:1100px; margin:0 auto; padding:16px 24px;
  display:flex; align-items:center; gap:20px; flex-wrap:wrap; justify-content:center;
}
#lx-consent .lx-consent-txt{
  flex:1 1 360px; font-family:'Barlow',sans-serif; font-size:13px;
  color:#AAAAAA; line-height:1.6;
}
#lx-consent .lx-consent-txt a{ color:#F0C060; text-decoration:underline; }
#lx-consent .lx-consent-btns{ display:flex; gap:10px; flex:none; }
#lx-consent button{
  font-family:'Barlow Condensed',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:2px; text-transform:uppercase; padding:11px 22px; cursor:pointer;
  border:1px solid #2a2207; transition:background .2s,color .2s;
}
#lx-consent .lx-consent-no{ background:transparent; color:#888; }
#lx-consent .lx-consent-no:hover{ color:#F5F5F5; border-color:#555; }
#lx-consent .lx-consent-yes{ background:#F0C060; color:#040404; border-color:#F0C060; }
#lx-consent .lx-consent-yes:hover{ background:#C89020; border-color:#C89020; }
@media (max-width:600px){
  #lx-consent .lx-consent-in{ padding:14px 18px; gap:12px; }
  #lx-consent .lx-consent-btns{ width:100%; }
  #lx-consent .lx-consent-btns button{ flex:1; }
}
@media (prefers-reduced-motion: reduce){
  #lx-consent{ transition:none; }
}
.lx-vnode{
  fill:#2a2207; stroke:#666; stroke-width:1;
  transition:fill .3s cubic-bezier(.22,1,.36,1), r .3s cubic-bezier(.22,1,.36,1),
             stroke .3s ease;
}
.lx-vnode[data-on]{ fill:var(--lx-gold); stroke:var(--lx-gold); filter:drop-shadow(0 0 6px rgba(240,192,96,.7)); }

/* ── REDUCED MOTION ─────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  .lx-mask > .lx-mask-in{ transform:none !important; opacity:1 !important; transition:none !important; }
  #lx-rail{ transition:none; }
  #lx-curtain{ display:none !important; }
  .lx-tilt{ transform:none !important; transition:none; }
  .lx-tilt::after{ display:none; }
}

/* hide desktop-only chrome on touch / small screens */
@media (max-width:760px){
  #lx-where{ display:none; }
}

/* ── thankyou.html · gold check draws on instead of just popping ── */
.ty-check svg path{
  stroke-dasharray:30; stroke-dashoffset:30;
  animation:lx-draw .55s .42s cubic-bezier(.65,0,.35,1) forwards;
}
@keyframes lx-draw{ to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion: reduce){
  .ty-check svg path{ stroke-dashoffset:0; animation:none; }
}

/* ── PERSISTENT NAV CTA PAIR — Book a Call + Join SCULPTD, site-wide ── */
.nav-cta-pair{ display:inline-flex; align-items:center; gap:10px; }
.nav-cta-pair .nav-cta-book,
.nav-cta-pair .nav-cta-join{
  display:inline-flex; align-items:center; gap:6px;
  font-family:'Barlow Condensed',sans-serif; font-size:12px!important; font-weight:700;
  letter-spacing:2px!important; text-transform:uppercase; text-decoration:none;
  padding:9px 16px!important; border-radius:2px; line-height:1; white-space:nowrap;
  transition:background .2s, color .2s, transform .2s, box-shadow .25s; opacity:1!important;
}
.nav-cta-pair .nav-cta-book::after,
.nav-cta-pair .nav-cta-join::after{ content:none!important; display:none!important; }
.nav-cta-pair .nav-cta-book{ background:#F0C060; color:#0a0a0a!important; border:1.5px solid #F0C060; }
.nav-cta-pair .nav-cta-book:hover{ background:#C89020; border-color:#C89020; color:#0a0a0a!important; transform:translateY(-1px); box-shadow:0 6px 20px rgba(240,192,96,.3); }
.nav-cta-pair .nav-cta-join{ background:transparent; color:#999!important; border:1px solid rgba(255,255,255,0.12); }
.nav-cta-pair .nav-cta-join:hover{ color:#F0C060!important; border-color:rgba(240,192,96,0.4); transform:translateY(-1px); }
@media (max-width:600px){
  .nav-cta-pair{ gap:7px; }
  .nav-cta-pair .nav-cta-book,
  .nav-cta-pair .nav-cta-join{ font-size:10px!important; padding:7px 11px!important; letter-spacing:1px!important; }
}
/* CTA links appended into the mobile slide-out menu */
.mobile-nav .nav-m-book, .mobile-nav .nav-m-join{
  display:block; text-align:center; border-radius:2px; padding:14px 0!important;
  border-bottom:none!important; margin-top:8px; letter-spacing:2px;
}
.mobile-nav .nav-m-book{ background:#F0C060!important; color:#0a0a0a!important; }
.mobile-nav .nav-m-join{ border:1px solid rgba(255,255,255,0.14)!important; color:#999!important; }
