/* ===== Nouveau Med Spa — Minimalist Luxury Theme ===== */
:root{
  --cream:#f8f5f0;
  --ivory:#fffdf9;
  --charcoal:#262422;
  --taupe:#6e6760;
  --gold:#b89b6b;
  --gold-dark:#8f7949;
  --line:#e6e0d6;
  --maxw:1180px;
  --serif:'Playfair Display', Georgia, serif;
  --sans:'Inter', 'Helvetica Neue', Arial, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--charcoal);
  background:var(--ivory);
  line-height:1.7;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--gold-dark);outline-offset:3px;
}
.container{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;letter-spacing:.3px;margin:0 0 18px;color:var(--charcoal);}
h1{font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.15;}
h2{font-size:clamp(1.8rem,3.4vw,2.5rem);}
h3{font-size:1.3rem;}
p{margin:0 0 16px;color:var(--taupe);}
.section{padding:90px 0;}
.section--tight{padding:60px 0;}
.section--cream{background:var(--cream);}

/* Subtle luxury divider ornament between sections */
.section--cream,.cta-band{position:relative;}
.section--cream::before,.cta-band::before{
  content:''; position:absolute; top:0; left:50%; transform:translate(-50%,-50%) rotate(45deg);
  width:9px; height:9px; background:var(--gold); z-index:2;
}
.section--cream::after,.cta-band::after{
  content:''; position:absolute; top:0; left:50%; transform:translate(-50%,-50%);
  width:140px; height:1px; z-index:1;
  background:linear-gradient(90deg,transparent,var(--gold) 50%,transparent);
}
.eyebrow{
  display:inline-block;
  font-size:.78rem;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--gold-dark);
  margin-bottom:14px;
  font-weight:600;
}
.center{text-align:center;}
.lead{font-size:1.15rem;max-width:680px;}
.center .lead{margin:0 auto 36px;}

/* Buttons */
.btn{
  display:inline-block;
  position:relative;
  overflow:hidden;
  padding:15px 34px;
  border:1px solid var(--charcoal);
  font-size:.85rem;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:600;
  transition:all .25s ease, transform .25s ease, box-shadow .25s ease;
  cursor:pointer;
}
.btn:hover{transform:translateY(-2px);}
.btn-dark{background:var(--charcoal);color:var(--ivory);border-color:var(--charcoal);}
.btn-dark:hover{background:var(--gold-dark);border-color:var(--gold-dark);box-shadow:0 12px 26px rgba(38,36,34,.22);}
.btn-outline{background:transparent;color:var(--charcoal);}
.btn-outline:hover{background:var(--charcoal);color:var(--ivory);}
.btn-gold{background:var(--gold);color:var(--ivory);border-color:var(--gold);}
.btn-gold:hover{background:var(--gold-dark);border-color:var(--gold-dark);box-shadow:0 12px 26px rgba(196,154,86,.35);}
.btn-ripple{
  position:absolute;border-radius:50%;
  background:rgba(255,255,255,.45);
  transform:scale(0);
  pointer-events:none;
  animation:btnRipple .55s ease-out forwards;
}
@keyframes btnRipple{to{transform:scale(1);opacity:0;}}

/* Skip link (accessibility) */
.skip-link{
  position:absolute;left:-999px;top:auto;
  background:var(--charcoal);color:var(--ivory);
  padding:12px 20px;z-index:200;
  font-size:.85rem;letter-spacing:1px;
}
.skip-link:focus{left:12px;top:12px;}

/* Scroll progress bar */
#scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0%;
  background:linear-gradient(90deg,var(--gold-dark),var(--gold));
  z-index:300;transition:width .1s linear;
}

/* Back to top */
#back-to-top{
  position:fixed;right:24px;bottom:24px;
  width:46px;height:46px;border-radius:50%;
  background:var(--charcoal);color:var(--ivory);
  border:none;cursor:pointer;font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .3s ease, transform .3s ease, visibility .3s ease, background .25s ease;
  z-index:90;
}
#back-to-top.show{opacity:1;visibility:visible;transform:translateY(0);}
#back-to-top:hover{background:var(--gold-dark);}

@media(prefers-reduced-motion: reduce){
  *{animation-duration:.001s !important;animation-delay:0s !important;transition-duration:.001s !important;scroll-behavior:auto !important;}
}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,253,249,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s ease, padding .25s ease;
}
.site-header.scrolled{box-shadow:0 6px 24px rgba(38,36,34,.08);}
.site-header.scrolled .nav{padding:12px 28px;}
.site-header.scrolled .logo{font-size:1.3rem;}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 28px;max-width:var(--maxw);margin:0 auto;
  transition:padding .25s ease;
}
.logo{
  font-family:var(--serif);
  font-size:1.6rem;
  letter-spacing:3px;
  font-weight:600;
  transition:font-size .25s ease;
}
.logo span{color:var(--gold-dark);}
.nav-links{display:flex;gap:34px;align-items:center;}
.nav-links a{
  font-size:.82rem;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--charcoal);position:relative;padding-bottom:4px;
}
.nav-links a.active,.nav-links a:hover{color:var(--gold-dark);}
.nav-cta{margin-left:10px;}
.nav-toggle{display:none;background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--charcoal);}
.lang-switch{
  border:1px solid var(--line);
  border-radius:20px;
  padding:5px 13px !important;
  font-size:.72rem !important;
  letter-spacing:1px !important;
}
.lang-switch:hover{border-color:var(--gold-dark);color:var(--gold-dark);}

@media(max-width:900px){
  .nav-links{
    position:fixed;top:73px;left:0;right:0;
    background:var(--ivory);
    flex-direction:column;
    gap:0;
    border-bottom:1px solid var(--line);
    max-height:0;overflow:hidden;
    transition:max-height .3s ease;
  }
  .nav-links.open{max-height:420px;}
  .nav-links a{padding:16px 28px;width:100%;border-top:1px solid var(--line);}
  .nav-cta{margin:16px 28px;}
  .nav-toggle{display:block;}
  .lang-switch{margin:0 28px 16px;display:inline-block;width:auto !important;border-top:none !important;}
}

/* Hero */
.hero{
  position:relative;
  min-height:88vh;
  display:flex;align-items:center;
  overflow:hidden;
  background:#262422;
  color:var(--ivory);
}
.hero-video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  z-index:0;
}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(38,36,34,.55),rgba(38,36,34,.68));
  z-index:1;
}
.hero .container{position:relative;z-index:2;max-width:760px;}
.hero .eyebrow{color:var(--gold);}
.hero h1{color:var(--ivory);}
.hero p{color:#ece7dd;}
.hero-actions{display:flex;gap:16px;margin-top:28px;flex-wrap:wrap;}
.hero .btn-outline{border-color:var(--ivory);color:var(--ivory);}
.hero .btn-outline:hover{background:var(--ivory);color:var(--charcoal);}

@keyframes heroFadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.hero .eyebrow{animation:heroFadeUp .8s ease both;}
.hero h1{animation:heroFadeUp .9s ease .12s both;}
.hero p{animation:heroFadeUp .9s ease .24s both;}
.hero-actions{animation:heroFadeUp .9s ease .36s both;}

/* Scroll-reveal (sitewide) */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}

.page-hero{
  padding:150px 0 70px;
  background:var(--cream);
  text-align:center;
}
.page-hero .eyebrow{display:block;}

/* Grid helpers */
.grid{display:grid;gap:36px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-5{grid-template-columns:repeat(5,1fr);}
@media(max-width:900px){.grid-3,.grid-4,.grid-5{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr;}}

/* Service / treatment card */
.card{background:var(--ivory);border:1px solid var(--line);overflow:hidden;transition:transform .3s ease, box-shadow .3s ease;}
.card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(38,36,34,.12);}
.card-img{height:220px;overflow:hidden;position:relative;}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.card-img::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 0 0 0 rgba(38,36,34,0);
  transition:box-shadow .5s ease;
}
.card:hover .card-img img{transform:scale(1.09);}
.card:hover .card-img::after{box-shadow:inset 0 0 50px rgba(38,36,34,.18);}
.card-body{padding:26px 26px 28px;}
.card-body h3{margin-bottom:8px;}
.price-tag{color:var(--gold-dark);font-weight:600;letter-spacing:1px;font-size:.95rem;margin-bottom:10px;display:block;}

/* About split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
@media(max-width:850px){.split{grid-template-columns:1fr;gap:36px;}}
.split img{border-radius:2px;}

/* Stats */
.stats{display:flex;justify-content:center;gap:70px;flex-wrap:wrap;text-align:center;margin-top:40px;}
.stat h3{font-size:2.4rem;color:var(--gold-dark);margin-bottom:4px;}
.stat span{font-size:.8rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--taupe);}

/* Team */
.team-card{text-align:center;}
.team-card .card-img{height:280px;}
.team-card h3{margin-bottom:2px;}
.team-card .role{color:var(--gold-dark);font-size:.82rem;letter-spacing:1.5px;text-transform:uppercase;}

/* FAQ */
.faq-item{border-bottom:1px solid var(--line);padding:22px 0;}
.faq-item summary{cursor:pointer;font-family:var(--serif);font-size:1.1rem;list-style:none;display:flex;justify-content:space-between;align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';font-size:1.4rem;color:var(--gold-dark);transition:transform .2s;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{margin-top:14px;}

/* Locations */
.location-card{display:grid;grid-template-columns:1fr 1.2fr;border:1px solid var(--line);background:var(--ivory);overflow:hidden;margin-bottom:30px;}
.location-card .loc-img{height:100%;min-height:260px;overflow:hidden;}
.location-card .loc-img img{width:100%;height:100%;object-fit:cover;}
.location-card .loc-body{padding:38px;}
.location-card .loc-body ul{list-style:none;padding:0;margin:0 0 20px;}
.location-card .loc-body li{margin-bottom:8px;color:var(--taupe);}
.location-card .loc-body li b{color:var(--charcoal);}
@media(max-width:760px){.location-card{grid-template-columns:1fr;}.location-card .loc-img{min-height:200px;}}

/* Reviews */
.loc-reviews{margin:22px 0;display:flex;flex-direction:column;gap:14px;}
.loc-review{background:var(--cream);border-left:3px solid var(--gold);padding:14px 18px;}
.loc-review .stars{color:var(--gold-dark);font-size:.85rem;letter-spacing:1px;margin-bottom:6px;display:block;}
.loc-review p{margin:0 0 6px;color:var(--charcoal);font-size:.92rem;font-style:italic;}
.loc-review span.reviewer{font-size:.78rem;letter-spacing:.5px;text-transform:uppercase;color:var(--taupe);}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
@media(max-width:850px){.contact-grid{grid-template-columns:1fr;}}
.form-row{margin-bottom:20px;}
.form-row label{display:block;font-size:.78rem;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px;color:var(--taupe);}
.form-row input,.form-row textarea,.form-row select{
  width:100%;padding:13px 14px;border:1px solid var(--line);background:var(--cream);
  font-family:var(--sans);font-size:.95rem;color:var(--charcoal);
}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:1px solid var(--gold);background:var(--ivory);}
.info-list{list-style:none;padding:0;margin:0;}
.info-list li{padding:16px 0;border-bottom:1px solid var(--line);}
.info-list b{display:block;font-family:var(--serif);font-size:1.05rem;margin-bottom:4px;}

/* CTA band */
.cta-band{
  background:var(--charcoal);color:var(--ivory);text-align:center;padding:80px 0;
}
.cta-band h2{color:var(--ivory);}
.cta-band p{color:#cfc9c0;}

/* Footer */
.site-footer{background:var(--charcoal);color:#cfc9c0;padding:70px 0 28px;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:40px;}
@media(max-width:850px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:550px){.footer-grid{grid-template-columns:1fr;}}
.site-footer h4{color:var(--ivory);font-size:.85rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:18px;font-family:var(--sans);font-weight:600;}
.site-footer .logo{color:var(--ivory);margin-bottom:14px;display:inline-block;}
.site-footer a{color:#cfc9c0;}
.site-footer a:hover{color:var(--gold);}
.footer-links li{margin-bottom:10px;list-style:none;}
.footer-links{padding:0;margin:0;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:50px;padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  font-size:.8rem;color:#9b958c;
}
.social-row{display:flex;gap:14px;margin-top:16px;}
.social-row a{
  width:36px;height:36px;border:1px solid rgba(255,255,255,.25);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:.85rem;
}
.social-row a:hover{border-color:var(--gold);color:var(--gold);}

.badge-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:30px;}
.badge{border:1px solid var(--line);padding:10px 18px;font-size:.78rem;letter-spacing:1px;text-transform:uppercase;color:var(--taupe);}

/* ===== Chat Widget ===== */
.chat-bubble{
  position:fixed; bottom:26px; right:26px; z-index:999;
  width:60px; height:60px; border-radius:50%;
  background:var(--charcoal); color:var(--ivory);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 8px 24px rgba(0,0,0,.25);
  font-size:26px; transition:transform .2s ease, background .2s ease;
  border:none;
}
.chat-bubble:hover{transform:scale(1.06); background:var(--gold-dark);}
.chat-bubble .chat-badge{
  position:absolute; top:-4px; right:-4px;
  width:18px; height:18px; border-radius:50%;
  background:var(--gold); color:var(--charcoal);
  font-size:11px; font-weight:600; display:flex;
  align-items:center; justify-content:center;
  font-family:var(--sans);
}
.chat-window{
  position:fixed; bottom:100px; right:26px; z-index:999;
  width:340px; max-height:480px;
  background:var(--ivory); border:1px solid var(--line);
  border-radius:16px; box-shadow:0 18px 50px rgba(0,0,0,.22);
  display:flex; flex-direction:column; overflow:hidden;
  opacity:0; transform:translateY(16px) scale(.98);
  pointer-events:none; transition:opacity .22s ease, transform .22s ease;
}
.chat-window.open{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
.chat-header{
  background:var(--charcoal); color:var(--ivory);
  padding:16px 18px; display:flex; align-items:center; justify-content:space-between;
}
.chat-header h4{margin:0; color:var(--ivory); font-size:1.05rem;}
.chat-header span.chat-sub{display:block; font-size:.74rem; color:var(--gold); letter-spacing:.5px; margin-top:2px;}
.chat-agent{display:flex; align-items:center; gap:10px;}
.chat-avatar{
  position:relative; width:38px; height:38px; border-radius:50%; flex-shrink:0;
  background:var(--gold); color:var(--charcoal); font-family:var(--sans);
  font-weight:600; font-size:1rem; display:flex; align-items:center; justify-content:center;
}
.chat-online-dot{
  position:absolute; bottom:-2px; right:-2px; width:10px; height:10px;
  border-radius:50%; background:#3bc46d; border:2px solid var(--charcoal);
}
.chat-msg.typing{display:flex; align-items:center; gap:4px; padding:13px 16px;}
.chat-msg.typing span{
  width:6px; height:6px; border-radius:50%; background:var(--taupe);
  display:inline-block; animation:chatTypingDot 1.2s infinite ease-in-out;
}
.chat-msg.typing span:nth-child(2){animation-delay:.2s;}
.chat-msg.typing span:nth-child(3){animation-delay:.4s;}
@keyframes chatTypingDot{
  0%,60%,100%{transform:translateY(0); opacity:.4;}
  30%{transform:translateY(-4px); opacity:1;}
}
.chat-close{
  background:none; border:none; color:var(--ivory);
  font-size:20px; cursor:pointer; line-height:1; padding:0 4px;
}
.chat-messages{
  flex:1; padding:16px; overflow-y:auto;
  display:flex; flex-direction:column; gap:10px;
  background:var(--cream);
}
.chat-msg{
  max-width:80%; padding:10px 14px; border-radius:14px;
  font-size:.88rem; line-height:1.45;
}
.chat-msg.bot{
  background:var(--ivory); border:1px solid var(--line);
  align-self:flex-start; border-bottom-left-radius:4px;
}
.chat-msg.user{
  background:var(--charcoal); color:var(--ivory);
  align-self:flex-end; border-bottom-right-radius:4px;
}
.chat-quick-replies{
  display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 12px; background:var(--cream);
}
.chat-quick-replies button{
  font-family:var(--sans); font-size:.76rem; padding:7px 12px;
  border-radius:999px; border:1px solid var(--gold-dark);
  background:var(--ivory); color:var(--charcoal); cursor:pointer;
  transition:background .15s ease;
}
.chat-quick-replies button:hover{background:var(--gold); color:var(--charcoal);}
.chat-input-row{
  display:flex; gap:8px; padding:12px; border-top:1px solid var(--line); background:var(--ivory);
}
.chat-input-row input{
  flex:1; border:1px solid var(--line); border-radius:999px;
  padding:9px 14px; font-family:var(--sans); font-size:.88rem; outline:none;
}
.chat-input-row input:focus{border-color:var(--gold-dark);}
.chat-input-row button{
  background:var(--charcoal); color:var(--ivory); border:none;
  border-radius:999px; width:38px; height:38px; cursor:pointer;
  font-size:16px; flex-shrink:0;
}
.chat-input-row button:hover{background:var(--gold-dark);}
@media(max-width:480px){
  .chat-window{width:calc(100vw - 32px); right:16px; bottom:88px;}
  .chat-bubble{right:16px; bottom:16px;}
}

/* ===== Entry Offer Popup ===== */
.offer-overlay{
  position:fixed; inset:0; z-index:1100;
  background:rgba(38,36,34,.55);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  opacity:0; pointer-events:none;
  transition:opacity .25s ease;
}
.offer-overlay.open{opacity:1; pointer-events:auto;}
.offer-modal{
  position:relative;
  background:var(--ivory);
  border-radius:18px;
  max-width:440px; width:100%;
  padding:42px 36px 34px;
  text-align:center;
  box-shadow:0 30px 70px rgba(0,0,0,.3);
  transform:translateY(14px) scale(.97);
  transition:transform .25s ease;
}
.offer-overlay.open .offer-modal{transform:translateY(0) scale(1);}
.offer-modal h3{font-size:1.6rem; margin-bottom:12px;}
.offer-modal p{margin-bottom:24px;}
.offer-close{
  position:absolute; top:14px; right:14px;
  background:none; border:none; font-size:22px; line-height:1;
  color:var(--taupe); cursor:pointer; padding:4px 8px;
}
.offer-close:hover{color:var(--charcoal);}
.offer-claim{display:block; margin-bottom:22px;}
.offer-form{border-top:1px solid var(--line); padding-top:22px;}
.offer-email-label{
  display:block; font-size:.78rem; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--taupe); margin-bottom:10px;
}
.offer-form-row{display:flex; flex-direction:column; gap:10px;}
.offer-form-row input{
  width:100%; border:1px solid var(--line); border-radius:999px;
  padding:12px 16px; font-family:var(--sans); font-size:.9rem; outline:none;
}
.offer-form-row input:focus{border-color:var(--gold-dark);}
.offer-form-row .btn{width:100%; text-align:center; padding:12px 20px; font-size:.78rem; white-space:nowrap;}
.offer-thanks{font-size:1.1rem; color:var(--charcoal); margin:10px 0 4px;}
@media(max-width:480px){
  .offer-modal{padding:34px 22px 28px;}
}

/* ===== Sticky Mobile Book-Now Bar ===== */
.mobile-book-bar{
  display:none;
  position:fixed; left:0; right:0; bottom:0; z-index:950;
  background:var(--ivory); border-top:1px solid var(--line);
  box-shadow:0 -8px 24px rgba(0,0,0,.1);
  padding:12px 16px; align-items:center; justify-content:space-between; gap:12px;
}
.mobile-book-bar .mobile-book-sub{font-size:.78rem; color:var(--taupe); line-height:1.3;}
.mobile-book-bar .btn{padding:11px 20px; font-size:.74rem; white-space:nowrap;}
@media(max-width:760px){
  .mobile-book-bar{display:flex;}
  body{padding-bottom:70px;}
}

/* ===== Floating quick-call button (mobile) ===== */
.quick-call-btn{
  display:none;
  position:fixed; right:14px; bottom:88px; z-index:960;
  width:50px; height:50px; border-radius:50%;
  background:var(--gold-dark); color:var(--ivory);
  align-items:center; justify-content:center;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  font-size:21px; text-decoration:none; border:none;
  transition:transform .2s ease, background .2s ease;
}
.quick-call-btn:hover{background:var(--charcoal); transform:scale(1.06);}
@media(max-width:760px){
  .quick-call-btn{display:flex;}
}

/* ===== Real Results Gallery (illustrative placeholders) ===== */
.results-gallery{margin-top:36px;}
.results-pair{position:relative; border:1px solid var(--line); overflow:hidden; background:var(--ivory);}
.results-pair .results-label{
  position:absolute; top:10px; left:10px; z-index:3;
  background:rgba(38,36,34,.85); color:var(--ivory);
  font-size:.68rem; letter-spacing:1px; text-transform:uppercase;
  padding:5px 10px; border-radius:3px;
}

/* Interactive before/after drag slider */
.ba-slider{position:relative; height:260px; overflow:hidden; background:var(--cream); user-select:none; touch-action:pan-y;}
.ba-slider .ba-before{position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; display:block; z-index:1;}
.ba-after-clip{position:absolute; top:0; left:0; height:100%; width:50%; overflow:hidden; z-index:2;}
.ba-after-clip .ba-after{position:absolute; top:0; left:0; height:100%; object-fit:cover; display:block; max-width:none;}
.ba-tag{
  position:absolute; bottom:10px; z-index:3;
  background:rgba(38,36,34,.78); color:var(--ivory);
  font-size:.66rem; letter-spacing:1px; text-transform:uppercase;
  padding:4px 9px; border-radius:3px; pointer-events:none;
}
.ba-tag.ba-tag-before{left:10px;}
.ba-tag.ba-tag-after{right:10px;}
.ba-handle{
  position:absolute; top:0; bottom:0; left:50%; z-index:4;
  width:3px; background:var(--gold); margin-left:-1.5px;
  pointer-events:none;
}
.ba-handle-grip{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:38px; height:38px; border-radius:50%;
  background:var(--ivory); border:2px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-size:.85rem; color:var(--gold-dark); box-shadow:0 4px 14px rgba(0,0,0,.25);
}
.ba-range{
  position:absolute; inset:0; width:100%; height:100%; z-index:5;
  margin:0; opacity:0; cursor:ew-resize;
  -webkit-appearance:none; appearance:none; background:transparent;
}
.ba-range::-webkit-slider-thumb{-webkit-appearance:none; width:38px; height:260px; background:transparent; cursor:ew-resize;}
.ba-range::-moz-range-thumb{width:38px; height:260px; background:transparent; border:none; cursor:ew-resize;}
@media(max-width:600px){.ba-slider{height:220px;} .ba-range::-webkit-slider-thumb{height:220px;} .ba-range::-moz-range-thumb{height:220px;}}
.ba-privacy-bar{
  position:absolute; left:0; right:0; top:4%; height:20%;
  background:rgba(20,18,16,.88); z-index:3;
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.35); font-size:.55rem; letter-spacing:3px;
  text-transform:uppercase; pointer-events:none;
}
.results-disclaimer{
  text-align:center; font-size:.8rem; color:var(--taupe);
  border:1px dashed var(--line); padding:14px 18px; margin-top:24px; border-radius:6px;
}

/* ===== Testimonials ===== */
.testimonial-card{background:var(--cream); border-left:3px solid var(--gold); padding:26px 26px 22px;}
.testimonial-card .stars{color:var(--gold-dark); font-size:.85rem; letter-spacing:1px; display:block; margin-bottom:10px;}
.testimonial-card p{color:var(--charcoal); font-style:italic; margin-bottom:14px;}
.testimonial-card .reviewer{font-size:.78rem; letter-spacing:.5px; text-transform:uppercase; color:var(--taupe);}

/* ===== Legal pages ===== */
.legal-content h2{margin-top:40px;}
.legal-content p,.legal-content li{color:var(--taupe);}
.legal-content{max-width:820px;}

/* ===== Blog ===== */
.blog-card .card-body .blog-meta{font-size:.75rem; letter-spacing:1px; text-transform:uppercase; color:var(--gold-dark); margin-bottom:8px; display:block;}

/* ===== Stat strip (Opportunities / trust sections) ===== */
.stat-row{display:flex; gap:0; flex-wrap:wrap; justify-content:center; margin-top:40px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.stat-row .stat{flex:1 1 200px; text-align:center; padding:28px 18px; border-right:1px solid var(--line);}
.stat-row .stat:last-child{border-right:none;}
.stat-row .stat .stat-num{display:block; font-family:var(--serif); font-size:2.1rem; color:var(--gold-dark); margin-bottom:4px;}
.stat-row .stat .stat-label{font-size:.78rem; letter-spacing:.5px; text-transform:uppercase; color:var(--taupe);}
@media(max-width:700px){.stat-row .stat{flex:1 1 45%; border-right:none; border-bottom:1px solid var(--line);}}

/* ===== Numbered process steps ===== */
.process-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:26px; margin-top:40px;}
.process-step{text-align:center; padding:0 8px;}
.process-step .step-num{
  width:52px; height:52px; line-height:52px; border-radius:50%; margin:0 auto 18px;
  background:var(--charcoal); color:var(--ivory); font-family:var(--serif); font-size:1.2rem;
}
.process-step h3{font-size:1.05rem; margin-bottom:8px;}
.process-step p{font-size:.92rem; color:var(--taupe);}
@media(max-width:900px){.process-steps{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.process-steps{grid-template-columns:1fr;}}

/* ===== Differentiator list (icon-style cards) ===== */
.diff-card{background:var(--ivory); border:1px solid var(--line); padding:26px 24px; height:100%;}
.diff-card .diff-mark{color:var(--gold-dark); font-family:var(--serif); font-size:1.4rem; display:block; margin-bottom:10px;}
.diff-card h3{font-size:1.02rem; margin-bottom:8px;}
.diff-card p{font-size:.92rem; color:var(--taupe);}

/* ===== Luxury page-load fade & transition ===== */
body{opacity:1;animation:pageFadeIn .6s ease;transition:opacity .32s ease;}
@keyframes pageFadeIn{from{opacity:0;}to{opacity:1;}}
body.page-leaving{opacity:0;}

/* ===== Custom luxury cursor (desktop, fine-pointer only) =====
   Single gold ring, positioned directly under the pointer (no follow-lag,
   no hide-on-mouseleave) so it stays reliably visible across the page. */
@media(min-width:901px) and (pointer:fine){
  body.lux-cursor-active, body.lux-cursor-active a, body.lux-cursor-active button{cursor:none;}
}
.lux-cursor-ring{
  position:fixed; top:0; left:0; width:26px; height:26px; border-radius:50%;
  border:1.5px solid var(--gold-dark); pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%); transition:width .15s ease,height .15s ease,border-color .15s ease,opacity .15s ease;
  opacity:0; will-change:left,top;
}
.lux-cursor-ring.show{opacity:.9;}
.lux-cursor-ring.hover{width:42px; height:42px; border-color:var(--charcoal); opacity:.6;}
@media(max-width:900px),(pointer:coarse),(prefers-reduced-motion: reduce){
  .lux-cursor-ring{display:none !important;}
}

/* ===== Hero / page-hero parallax helper ===== */
.hero-video,.page-hero-bg{will-change:transform;}

/* ===== Treatment Finder Quiz ===== */
.quiz-card{max-width:640px; margin:0 auto; text-align:center;}
.quiz-card .quiz-intro p,.quiz-card .quiz-step p{margin:0 auto 28px;}
.quiz-progress{display:block; font-size:.75rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold-dark); margin-bottom:10px;}
.quiz-options{display:flex; flex-direction:column; gap:12px; margin-top:24px;}
.quiz-options button{
  font-family:var(--sans); font-size:.95rem; text-align:left;
  padding:16px 20px; border:1px solid var(--line); background:var(--ivory);
  cursor:pointer; border-radius:8px; transition:border-color .2s ease, background .2s ease, transform .2s ease;
}
.quiz-options button:hover{border-color:var(--gold-dark); background:var(--cream); transform:translateX(4px);}
.quiz-result .btn{margin-top:6px;}
.quiz-restart{
  display:block; margin:18px auto 0; background:none; border:none;
  font-family:var(--sans); font-size:.8rem; letter-spacing:1px; text-transform:uppercase;
  color:var(--taupe); cursor:pointer; text-decoration:underline;
}
.quiz-restart:hover{color:var(--charcoal);}

/* ===== PRICE MENU ===== */
.price-menu-wrap{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:48px;
}
@media(max-width:768px){.price-menu-wrap{grid-template-columns:1fr;gap:32px;}}
.price-menu-card{
  background:var(--ivory); border:1px solid var(--line);
  border-radius:16px; overflow:hidden;
  box-shadow:0 4px 24px rgba(0,0,0,.06);
}
.price-menu-header{
  background:var(--charcoal); color:#fff;
  padding:28px 32px; text-align:center;
}
.price-menu-header .eyebrow{color:var(--gold); display:block; margin-bottom:8px;}
.price-menu-header h3{
  font-family:var(--serif); font-size:1.55rem;
  color:#fff; margin:0; font-weight:500;
}
.price-menu-list{padding:8px 32px 28px; list-style:none; margin:0;}
.price-menu-list li{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:12px; padding:13px 0; border-bottom:1px dashed var(--line);
  font-size:.95rem; color:var(--charcoal);
}
.price-menu-list li:last-child{border-bottom:none;}
.price-menu-item-name{flex:1; font-weight:500;}
.price-menu-item-dots{
  flex:1; border-bottom:1px dotted #c8b99a;
  min-width:24px; heigh