/* ============================================
   SI GLAM GLOW — Main Stylesheet v1.0.0
   ============================================ */
*{margin:0;padding:0;box-sizing:border-box}
/* Responsive image base.
   Deliberately the lowest possible specificity (one type selector) so every
   existing .foo img{width:..;height:..} rule below still wins. Its job is to
   make the intrinsic width/height attributes now present on every <img> safe:
   the attributes give the browser an aspect ratio so it can reserve the right
   box before the bytes land (this is what removes the layout shift), while
   max-width/height:auto keep the RENDERED size driven by CSS and the container
   rather than by the attribute values. Without this rule, an <img width="1200">
   with no class rule would lay out 1200px wide and overflow. */
img{max-width:100%;height:auto}
:root{
  --cream:#F9F5F0;--cream2:#F2EBE0;--warm:#E8D9C4;
  --gold:#B8955A;--gold-light:#D4B483;
  --dark:#1C1812;--mid:#5C4E3A;--text:#3A3028;
  --serif:'Cormorant Garamond',serif;--sans:'Jost',sans-serif;
}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--text);font-family:var(--sans);font-weight:300;overflow-x:hidden}

.topbar{background:var(--dark);color:rgba(255,255,255,.7);font-size:12px;letter-spacing:.12em;padding:10px 60px;display:flex;justify-content:space-between;align-items:center}
.topbar a{color:rgba(255,255,255,.7);text-decoration:none;transition:color .2s}.topbar a:hover{color:var(--gold-light)}
.topbar-promo{color:var(--gold-light)}.topbar-right{display:flex;gap:28px}

nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(249,245,240,.97);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--warm);padding:0 60px;display:flex;align-items:center;justify-content:space-between;height:80px;transition:box-shadow .3s}
nav.scrolled{box-shadow:0 4px 32px rgba(28,24,18,.08)}
.nav-logo,.custom-logo{height:72px;width:auto;display:block;max-width:200px;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.28)) drop-shadow(0 3px 8px rgba(0,0,0,.14))}
.nav-links{display:flex;gap:36px;list-style:none;align-items:center}
.nav-links a{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mid);text-decoration:none;font-weight:400;transition:color .2s;position:relative;padding-bottom:4px}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--gold);transition:width .3s}
.nav-links a:hover{color:var(--gold)}.nav-links a:hover::after{width:100%}
.nav-cta{background:var(--dark);color:white;padding:13px 28px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;border:none;cursor:pointer;transition:background .3s;font-family:var(--sans);text-decoration:none;display:inline-block;margin-left:-90px}
.nav-cta:hover{background:var(--gold)}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none}
.hamburger span{display:block;width:24px;height:1px;background:var(--dark);transition:all .3s}

.mobile-menu{display:none;position:fixed;inset:0;background:var(--cream);z-index:200;flex-direction:column;align-items:center;justify-content:center;gap:28px}
.mobile-menu.open{display:flex}
.mobile-menu a{font-family:var(--serif);font-size:34px;font-weight:300;color:var(--dark);text-decoration:none;letter-spacing:.05em;transition:color .2s}
.mobile-menu a:hover{color:var(--gold)}
.mobile-book{font-family:var(--sans)!important;font-size:13px!important;letter-spacing:.18em;background:var(--dark);color:white!important;padding:16px 36px!important;text-transform:uppercase;margin-top:8px}
.mobile-close{position:absolute;top:28px;right:32px;font-size:28px;cursor:pointer;background:none;border:none;color:var(--dark);line-height:1}

.hero{height:100vh;min-height:640px;position:relative;display:flex;align-items:center;overflow:hidden;background:linear-gradient(135deg,#F0E8D8 0%,#E8D9C4 50%,#DCC9AA 100%)}
.hero-bg-text{position:absolute;right:-20px;top:50%;transform:translateY(-50%);font-family:var(--serif);font-size:clamp(120px,18vw,260px);font-weight:300;color:rgba(180,150,100,.07);line-height:1;user-select:none;letter-spacing:-.02em;pointer-events:none;animation:fadeIn 1.5s ease forwards}
.hero-content{position:relative;z-index:2;padding:0 60px;max-width:640px}
.hero-tag{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:28px;display:flex;align-items:center;gap:14px;opacity:0;animation:slideUp .8s ease .2s forwards}
.hero-tag::before{content:'';display:block;width:40px;height:1px;background:var(--gold)}
.hero h1{font-family:var(--serif);font-size:clamp(48px,6.5vw,88px);font-weight:300;line-height:1.05;color:var(--dark);margin-bottom:28px;opacity:0;animation:slideUp .8s ease .4s forwards}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero-sub{font-size:15px;line-height:1.85;color:var(--mid);max-width:420px;margin-bottom:48px;opacity:0;animation:slideUp .8s ease .6s forwards}
.hero-btns{display:flex;gap:20px;align-items:center;flex-wrap:wrap;opacity:0;animation:slideUp .8s ease .8s forwards}
.hero-image{position:absolute;right:0;top:0;width:48%;height:100%;overflow:hidden;opacity:0;animation:fadeIn 1.2s ease .5s forwards}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.hero-image::before{content:'';position:absolute;left:0;top:0;bottom:0;width:140px;background:linear-gradient(to right,#EDE4D6 0%,transparent 100%);z-index:1}
.hero-scroll{position:absolute;bottom:40px;left:60px;display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--mid);opacity:0;animation:fadeIn 1s ease 1.2s forwards}
.hero-scroll-line{width:1px;height:60px;background:var(--gold);animation:scrollPulse 2s ease-in-out infinite}
.hero-badges{position:absolute;bottom:40px;right:60px;display:flex;gap:16px;opacity:0;animation:fadeIn 1s ease 1.4s forwards}
.hero-badge{background:rgba(255,255,255,.85);backdrop-filter:blur(4px);padding:14px 20px;border:1px solid var(--warm);text-align:center;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--mid)}
.hero-badge strong{display:block;font-family:var(--serif);font-size:24px;font-weight:300;color:var(--dark);letter-spacing:0;line-height:1;margin-bottom:4px}

.btn-primary{background:var(--dark);color:white;padding:17px 38px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;border:none;cursor:pointer;font-family:var(--sans);transition:all .3s;text-decoration:none;display:inline-block}
.btn-primary:hover{background:var(--gold);transform:translateY(-1px)}
.btn-ghost{color:var(--dark);font-size:11px;letter-spacing:.2em;text-transform:uppercase;border:none;background:none;cursor:pointer;font-family:var(--sans);display:inline-flex;align-items:center;gap:10px;border-bottom:1px solid currentColor;padding-bottom:3px;transition:color .2s;text-decoration:none}
.btn-ghost:hover{color:var(--gold)}
.btn-gold{background:var(--gold);color:white;padding:17px 40px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;border:none;cursor:pointer;font-family:var(--sans);transition:all .3s;display:inline-block;text-decoration:none}
.btn-gold:hover{background:var(--gold-light);transform:translateY(-1px)}
.btn-outline-light{background:transparent;color:white;padding:17px 38px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;border:1px solid rgba(255,255,255,.25);cursor:pointer;font-family:var(--sans);transition:all .3s;text-decoration:none;display:inline-block}
.btn-outline-light:hover{border-color:var(--gold);color:var(--gold-light)}
.text-link{display:inline-flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dark);margin-top:16px;border-bottom:1px solid var(--dark);padding-bottom:3px;transition:color .3s,border-color .3s;text-decoration:none}
.text-link:hover{color:var(--gold);border-color:var(--gold)}

.marquee-wrap{background:var(--dark);overflow:hidden;padding:18px 0;white-space:nowrap;border-top:1px solid rgba(255,255,255,.12)}
.marquee-track{display:inline-flex;animation:marquee 55s linear infinite}
.marquee-item{font-family:var(--serif);font-size:15px;font-weight:300;color:rgba(255,255,255,.45);margin:0 36px;letter-spacing:.1em;font-style:italic}
.marquee-dot{color:var(--gold);margin:0 4px}

.section-label{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:20px}
.section-header{text-align:center;margin-bottom:72px;display:flex;flex-direction:column;align-items:center}
.section-header .section-label{justify-content:center}
.section-header .section-label::before{display:none}
.section-header h2{font-family:var(--serif);font-size:clamp(36px,4vw,56px);font-weight:300;color:var(--dark);margin-top:16px}
.section-header h2 em{font-style:italic}
.credentials{display:flex;gap:12px;align-items:center;margin-top:40px;padding-top:40px;border-top:1px solid var(--warm);flex-wrap:wrap}
.cred-badge{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--mid);border:1px solid var(--warm);padding:8px 14px}

.about{padding:130px 60px;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.about h2{font-family:var(--serif);font-size:clamp(36px,4vw,56px);font-weight:300;line-height:1.1;color:var(--dark);margin-bottom:32px;margin-top:16px}
.about h2 em{font-style:italic}
.about p{font-size:14px;line-height:1.95;color:var(--mid);margin-bottom:18px}
.about-image{position:relative}
.about-image img{width:100%;height:520px;object-fit:cover;object-position:top center;display:block}
.about-img-badge{position:absolute;bottom:-28px;left:-28px;background:white;border:1px solid var(--warm);padding:32px 36px;text-align:center;box-shadow:0 8px 40px rgba(28,24,18,.1)}
.about-img-badge .num{font-family:var(--serif);font-size:56px;font-weight:300;color:var(--gold);line-height:1}
.about-img-badge .txt{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--mid);margin-top:6px}

.services{padding:100px 60px;background:var(--cream2)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
.service-card{background:var(--cream);padding:52px 40px;position:relative;overflow:hidden;cursor:pointer;transition:transform .3s;text-decoration:none;display:block;color:inherit}
.service-card::before{content:'';position:absolute;inset:0;background:white;opacity:0;transition:opacity .4s;pointer-events:none}
.service-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.25,.46,.45,.94)}
.service-card:hover::before{opacity:1}.service-card:hover::after{transform:scaleX(1)}.service-card:hover{transform:translateY(-2px)}
.service-card>*{position:relative;z-index:1}
.service-img{width:100%;height:200px;object-fit:cover;margin-bottom:28px;display:block}
.service-num{font-family:var(--serif);font-size:48px;font-weight:300;color:rgba(184,149,90,.18);line-height:1;margin-bottom:20px}
.service-card h3{font-family:var(--serif);font-size:24px;font-weight:400;color:var(--dark);margin-bottom:12px}
.service-card p{font-size:13px;line-height:1.85;color:var(--mid)}
.service-arrow{display:inline-flex;align-items:center;gap:8px;margin-top:24px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:400;transition:gap .3s}
.service-card:hover .service-arrow{gap:14px}

.ba-section{padding:130px 60px;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.ba-heading{font-family:var(--serif);font-size:clamp(36px,4vw,56px);font-weight:300;color:var(--dark);line-height:1.1;margin-bottom:32px;margin-top:16px}
.ba-heading em{font-style:italic}
.ba-text{font-size:14px;line-height:1.95;color:var(--mid);margin-bottom:16px}
.ba-images{position:relative;height:520px}
.ba-wrap{position:relative;width:100%;height:100%;overflow:hidden;cursor:col-resize;user-select:none;-webkit-user-select:none}
.ba-before,.ba-after{position:absolute;inset:0}
.ba-before img,.ba-after img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.ba-after{clip-path:inset(0 50% 0 0)}
.ba-label{position:absolute;bottom:20px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;background:rgba(255,255,255,.92);color:var(--dark);padding:8px 16px;z-index:2;pointer-events:none}
.ba-label-b{left:20px}.ba-label-a{right:20px}
.ba-divider-line{position:absolute;top:0;bottom:0;left:50%;width:2px;background:white;z-index:3;transform:translateX(-50%)}
.ba-divider-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:white;display:flex;align-items:center;justify-content:center;z-index:4;font-size:18px;box-shadow:0 4px 20px rgba(0,0,0,.2);color:var(--dark);pointer-events:none}

.stats{background:var(--dark);padding:90px 60px;display:grid;grid-template-columns:repeat(4,1fr)}
.stat-item{text-align:center;padding:0 20px;border-right:1px solid rgba(255,255,255,.1)}
.stat-item:last-child{border:none}
.stat-num{font-family:var(--serif);font-size:clamp(48px,5.5vw,76px);font-weight:300;color:var(--gold-light);line-height:1}
.stat-label{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:14px;line-height:1.6}

.testimonials{padding:130px 60px;background:var(--cream)}
.testimonials-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px;margin-top:72px}
.tcard{background:white;padding:52px 44px;border:1px solid var(--warm);position:relative;transition:box-shadow .3s,transform .3s}
.tcard:hover{box-shadow:0 12px 48px rgba(28,24,18,.08);transform:translateY(-3px)}
.tcard::before{content:'\201C';font-family:var(--serif);font-size:96px;color:var(--gold);opacity:.2;position:absolute;top:16px;left:36px;line-height:1;pointer-events:none}
.tcard p{font-family:var(--serif);font-size:18px;font-style:italic;line-height:1.7;color:var(--dark);padding-top:44px}
.tcard-meta{margin-top:36px;display:flex;align-items:center;gap:18px;padding-top:28px;border-top:1px solid var(--warm)}
.tcard-avatar{width:52px;height:52px;border-radius:50%;background:var(--warm);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:16px;color:var(--mid);flex-shrink:0}
.tcard-name{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dark);margin-bottom:4px}
.tcard-service{font-size:12px;color:var(--gold)}
.stars{color:var(--gold);font-size:13px;letter-spacing:3px;margin-bottom:10px}

.highlight{display:grid;grid-template-columns:1fr 1fr;min-height:580px}
.highlight-img{overflow:hidden}
.highlight-img img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .8s cubic-bezier(.25,.46,.45,.94)}
.highlight:hover .highlight-img img{transform:scale(1.03)}
.highlight-content{background:var(--dark);padding:90px 70px;display:flex;flex-direction:column;justify-content:center}
.highlight-content h2{font-family:var(--serif);font-size:clamp(30px,3.5vw,50px);font-weight:300;color:white;line-height:1.1;margin-bottom:28px;margin-top:16px}
.highlight-content h2 em{font-style:italic;color:var(--gold-light)}
.highlight-content p{font-size:14px;line-height:1.9;color:rgba(255,255,255,.5);margin-bottom:32px}
.hl-list{list-style:none;margin-bottom:48px}
.hl-list li{font-size:13px;color:rgba(255,255,255,.6);padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:12px}
.hl-list li::before{content:'\2736';color:var(--gold);font-size:9px;flex-shrink:0}

.cta-banner{background:linear-gradient(135deg,var(--dark) 0%,#2C2218 100%);padding:100px 60px;text-align:center;position:relative;overflow:hidden}
.cta-banner > *{position:relative;z-index:1}
.cta-banner h2{font-family:var(--serif);font-size:clamp(34px,5vw,64px);font-weight:300;color:white;margin-bottom:24px;position:relative}
.cta-banner h2 em{color:var(--gold-light);font-style:italic}
.cta-banner p{font-size:15px;color:rgba(255,255,255,.80);margin-bottom:40px;position:relative;max-width:500px;margin-left:auto;margin-right:auto;line-height:1.8}
.cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative}
.cta-banner .btn-gold{border-radius:40px;padding:18px 38px;transition:background .3s,transform .25s,box-shadow .3s}
.cta-banner .btn-gold:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(184,149,90,.35)}
.cta-reassurance{font-family:var(--sans);font-size:7.5px;letter-spacing:.03em;text-transform:uppercase;color:rgba(255,255,255,.40);margin-top:14px;position:relative;display:inline-block;white-space:nowrap;max-width:none;}

/* ── INSTAGRAM STRIP — Cabana style ── */
.insta-strip{padding:80px 0 0;background:var(--cream);overflow:hidden}

/* Header: "Follow On [photos] Instagram" */
.insta-strip-header{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:48px;flex-wrap:wrap}
.insta-strip-follow{font-family:var(--serif);font-size:clamp(22px,2.8vw,36px);font-weight:300;font-style:italic;color:var(--dark);letter-spacing:.01em}
.insta-strip-handle{font-family:var(--serif);font-size:clamp(22px,2.8vw,36px);font-weight:300;font-style:italic;color:var(--dark);text-decoration:none;letter-spacing:.01em;transition:color .25s}
.insta-strip-handle:hover{color:var(--gold)}

/* Two stacked/fanned polaroid thumbnails */
.insta-strip-photos{position:relative;width:72px;height:56px;flex-shrink:0}
.insta-strip-polaroid{position:absolute;width:48px;height:48px;object-fit:cover;border-radius:6px;border:3px solid white;box-shadow:0 4px 16px rgba(28,24,18,.18)}
.insta-strip-polaroid--a{top:4px;left:0;transform:rotate(-8deg);z-index:1}
.insta-strip-polaroid--b{top:0;left:22px;transform:rotate(6deg);z-index:2}

/* Auto-scrolling track */
.insta-strip-track-wrap{overflow:hidden;width:100%}
.insta-strip-track{display:flex;gap:12px;width:max-content;animation:instaScroll 38s linear infinite;padding:0 6px 32px}
.insta-strip-track:hover{animation-play-state:paused}

.insta-strip-item{flex-shrink:0;width:260px;height:260px;border-radius:16px;overflow:hidden;display:block;cursor:pointer;position:relative}
.insta-strip-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.25,.46,.45,.94)}
.insta-strip-item:hover img{transform:scale(1.06)}
/* Subtle Instagram icon overlay on hover */
.insta-strip-item::after{content:'';position:absolute;inset:0;background:rgba(28,24,18,.32);opacity:0;transition:opacity .3s;border-radius:16px}
.insta-strip-item:hover::after{opacity:1}

@keyframes instaScroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* Responsive */
@media(max-width:960px){
  .insta-strip-item{width:200px;height:200px}
  .insta-strip{padding:60px 0 0}
}
@media(max-width:540px){
  .insta-strip-item{width:160px;height:160px}
  .insta-strip-header{gap:10px}
}

footer{background:var(--dark);color:rgba(255,255,255,.6);padding:90px 60px 50px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;align-items:start}
.footer-logo-link{display:block;margin-bottom:24px}
.footer-logo-img{height:48px;width:auto;filter:brightness(0) invert(1);opacity:.75}
.footer-brand p{font-size:13px;line-height:1.9;color:rgba(255,255,255,.35);max-width:260px;margin-bottom:28px}
.footer-social{display:flex;gap:14px}
.footer-social a{width:38px;height:38px;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.4);text-decoration:none;transition:all .3s}
.footer-social a:hover{border-color:var(--gold);color:var(--gold-light)}
.footer-col h4{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-light);margin-bottom:24px}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:12px}
.footer-col a{font-size:13px;color:rgba(255,255,255,.45);text-decoration:none;transition:color .2s}
.footer-col a:hover{color:var(--gold-light)}
.footer-addr{font-size:13px;color:rgba(255,255,255,.3);line-height:1.8;display:block}
.footer-book{font-size:10px!important;padding:13px 24px!important}
.footer-bottom{background:var(--dark);border-top:1px solid rgba(255,255,255,.07);padding:24px 60px;display:flex;justify-content:space-between;align-items:center}
.footer-bottom span{font-size:11px;color:rgba(255,255,255,.22);letter-spacing:.06em}
.footer-legal{display:flex;gap:20px}
.footer-legal a{color:rgba(255,255,255,.22);text-decoration:none;font-size:11px;transition:color .2s}
.footer-legal a:hover{color:var(--gold-light)}

/* ============================================================
   CABANA-EXACT REVEAL SYSTEM
   Source decoded from script_main.PxXaQYnT.mjs:
     global.enter.mask = { angle:270, type:"wipe", width:"100%" }
     transition = { duration:.4, ease:[.27,0,.51,1] }
   angle:270 = top-to-bottom curtain reveal
   CSS: clip-path inset(0 0 100% 0) → inset(0 0 0% 0)
   No translateY. No opacity fade. Pure clip unmask.
   ============================================================ */
.reveal,.reveal-left,.reveal-right{
  clip-path:inset(0 0 100% 0);
  transition:clip-path .4s cubic-bezier(.27,0,.51,1)}
.reveal.visible,.reveal-left.visible,.reveal-right.visible{
  clip-path:inset(0 0 0% 0)}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}

/* ── SCROLL STANZA — same wipe per line, staggered ── */
.scroll-stanza{text-align:center}
.scroll-stanza-line-mask{display:block;overflow:visible}
.scroll-stanza-line{
  display:block;
  font-family:var(--serif);
  font-size:clamp(36px,5.5vw,80px);
  font-weight:300;
  font-style:italic;
  line-height:1.2;
  color:var(--dark);
  clip-path:inset(0 0 100% 0);
  transition:clip-path .4s cubic-bezier(.27,0,.51,1)}
.scroll-stanza-line.visible{clip-path:inset(0 0 0% 0)}
.scroll-stanza-line:nth-child(1){transition-delay:0s}
.scroll-stanza-line:nth-child(2){transition-delay:.15s}
.scroll-stanza-line:nth-child(3){transition-delay:.30s}
.scroll-stanza-line:nth-child(4){transition-delay:.45s}
.scroll-stanza-line em{font-style:italic;color:var(--gold)}
.scroll-stanza--light .scroll-stanza-line{color:rgba(255,255,255,.9)}

@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes scrollPulse{0%,100%{transform:scaleY(1);opacity:1}50%{transform:scaleY(.4);opacity:.4}}

@media(max-width:960px){
  .topbar{padding:10px 24px}.topbar-right{display:none}
  nav{padding:0 24px;height:110px;justify-content:flex-start;border-bottom:none;align-items:flex-start;padding-top:16px}.nav-links,.nav-cta{display:none}.hamburger{display:flex;order:-1}
  /* hamburger left, logo truly centered on the viewport (not just the leftover space), right intentionally blank */
  #mainNav>a:first-child{position:absolute;left:50%;top:53px;transform:translate(-50%,-50%);margin:0}
  #mainNav .nav-logo,#mainNav .custom-logo{height:105px !important;max-width:150px !important}
  .season-banner{margin-top:109px !important}
  .hero-content{padding:0 24px;max-width:100%}.hero-image{opacity:.22;z-index:0}
  .hero-scroll{left:24px;bottom:24px}.hero-badges{display:none}
  .about,.ba-section{grid-template-columns:1fr;gap:56px;padding:80px 24px}
  .about-image{order:-1}.about-img-badge{bottom:-16px;left:-12px;padding:20px 24px}.about-img-badge .num{font-size:40px}
  .services{padding:80px 24px}.services-grid{grid-template-columns:1fr 1fr;gap:3px}
  .stats{grid-template-columns:repeat(3,1fr);padding:40px 16px}
  .stat-item{padding:32px 16px;border-right:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
  .stat-item:nth-child(2){border-right:none}.stat-item:nth-child(3),.stat-item:nth-child(4){border-bottom:none}
  .testimonials{padding:80px 24px}.testimonials-grid{grid-template-columns:1fr}
  .highlight{grid-template-columns:1fr}.highlight-img{height:320px}.highlight-content{padding:60px 24px}
  .cta-banner{padding:48px 24px 28px}
  .cta-reassurance{white-space:nowrap;text-transform:none;font-size:11px;letter-spacing:.02em;line-height:1.8;max-width:none;color:rgba(255,255,255,.15)}
  footer{grid-template-columns:1fr 1fr;gap:40px;padding:60px 24px 40px}
  .footer-bottom{padding:20px 24px;flex-direction:column;gap:10px;text-align:center}
  .section-label{justify-content:center;text-align:center;}
}
@media(max-width:540px){
  .services-grid{grid-template-columns:1fr}
  footer{grid-template-columns:1fr}.hero h1{font-size:clamp(40px,11vw,64px)}
  .cta-row{flex-direction:column;align-items:center}
}

/* ============================================================
   ANIMATION UPGRADES v2.0 — Matching Aesthetica reference
   ============================================================ */

/* Perspective for 3D card tilts */
.services-grid,.testimonials-grid{perspective:1200px}
.service-card,.tcard{transform-style:preserve-3d;will-change:transform}

/* Nav link underline draw */
.nav-links a::after{transition:width .35s cubic-bezier(.25,.46,.45,.94)}

/* Hero image parallax layer */
.hero-image{will-change:transform}

/* Section label line draw — base state */
.section-label{display:flex;align-items:center;gap:14px;overflow:hidden}
.section-label::before{content:'';display:block;width:0;height:1px;background:var(--gold);
  transition:width .8s cubic-bezier(.25,.46,.45,.94);flex-shrink:0}
.visible>.section-label::before,.section-label.visible::before{width:40px}

/* Split heading styles injected by main.js */

/* Image wipe-in — Cabana top-down clip-path */
.img-wipe img{clip-path:inset(0 0 100% 0);
  transition:clip-path .6s cubic-bezier(.27,0,.51,1)}
.img-wipe.visible img{clip-path:inset(0 0 0% 0)}
.about-img-badge{z-index:3;position:absolute}

/* Service card gold border sweep — upgrade */
.service-card::after{transition:transform .6s cubic-bezier(.16,1,.3,1)}

/* Testimonial card subtle glow on hover */
.tcard{transition:box-shadow .4s ease,transform .15s ease}
.tcard:hover{box-shadow:0 20px 60px rgba(184,149,90,.12),0 4px 20px rgba(28,24,18,.06)}

/* Stat numbers — golden shimmer on reveal */
@keyframes goldShimmer{
  0%{color:rgba(212,180,131,.3)}
  100%{color:var(--gold-light)}
}
.stat-item.visible .stat-num{animation:goldShimmer .8s ease forwards}

/* Marquee — pause on hover */
.marquee-wrap:hover .marquee-track{animation-play-state:paused}

/* Button press effect */
.btn-primary:active,.btn-gold:active{transform:translateY(1px) scale(.98)}

/* Footer book button */
.footer-book{font-size:10px!important;padding:13px 24px!important}

/* ============================================================
   INNER PAGES — Shared styles
   ============================================================ */

/* Page banner (hero for inner pages) */
.page-banner{background:linear-gradient(135deg,#F0E8D8 0%,#E8D9C4 60%,#DCC9AA 100%);
  padding:140px 60px 100px;position:relative;overflow:hidden;text-align:center}
.page-banner-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:var(--serif);font-size:clamp(80px,14vw,200px);font-weight:300;
  color:rgba(180,150,100,.07);letter-spacing:.08em;white-space:nowrap;
  pointer-events:none;user-select:none}
.page-banner-content{position:relative;z-index:1}
.page-banner-eyebrow{display:inline-block;font-family:var(--sans);font-size:11px;
  letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.page-banner-content h1{font-family:var(--serif);font-size:clamp(40px,6vw,72px);
  font-weight:300;color:var(--dark);margin-top:16px;margin-bottom:20px}
.page-banner-content p{font-size:15px;color:var(--mid);max-width:520px;margin:0 auto;line-height:1.8}
@media(max-width:768px){
  .page-banner-eyebrow{display:none}
}

/* Animated about banner — Ethos-style word-by-word reveal */
.page-banner--animated{padding:160px 60px 120px}
.page-banner--animated .page-banner-bg{animation:pbaFadeIn 1.4s ease forwards}
.pba-label{
  justify-content:center;opacity:0;
  animation:pbaSlideUp .6s cubic-bezier(.22,.61,.36,1) .1s forwards}
.pba-heading{
  font-family:var(--serif);font-size:clamp(44px,6.5vw,84px);
  font-weight:300;color:var(--dark);margin:20px 0 0;
  line-height:1.1;display:flex;flex-wrap:wrap;justify-content:center;gap:.25em}
.pba-word{
  display:inline-block;
  opacity:0;transform:translateY(28px);
  animation:pbaWordUp .65s cubic-bezier(.22,.61,.36,1) forwards;
  animation-delay:calc(var(--i) * 0.09s + 0.2s)}
.pba-sub{
  font-size:16px;color:var(--mid);max-width:480px;margin:24px auto 0;
  line-height:1.8;opacity:0;
  animation:pbaSlideUp .7s cubic-bezier(.22,.61,.36,1) .72s forwards}

@keyframes pbaWordUp{
  to{opacity:1;transform:translateY(0)}}
@keyframes pbaSlideUp{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}}
@keyframes pbaFadeIn{
  from{opacity:0} to{opacity:1}}

/* Breadcrumb */
.breadcrumb{padding:18px 60px;background:var(--cream2);border-bottom:1px solid var(--warm);
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mid)}
.breadcrumb a{color:var(--gold);text-decoration:none;transition:opacity .2s}
.breadcrumb a:hover{opacity:.7}
.breadcrumb span[aria-hidden]{margin:0 8px;color:var(--warm)}

/* Page content wrapper */
.page-content{max-width:900px;margin:0 auto;padding:100px 60px}
.page-content h2{font-family:var(--serif);font-size:clamp(28px,3.5vw,44px);font-weight:300;
  color:var(--dark);margin-bottom:20px;margin-top:60px}
.page-content h2:first-child{margin-top:0}
.page-content h2 em{font-style:italic;color:var(--gold)}
.page-content h3{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--dark);
  margin-bottom:12px;margin-top:40px}
.page-content p{font-size:15px;line-height:1.9;color:var(--mid);margin-bottom:20px}
.page-content ul,.page-content ol{margin:20px 0 20px 0;padding:0}
.page-content li{font-size:15px;line-height:1.85;color:var(--mid);
  padding:8px 0 8px 24px;border-bottom:1px solid var(--warm);position:relative}
.page-content li::before{content:'✦';position:absolute;left:0;color:var(--gold);font-size:9px;top:12px}
.page-content ol li::before{content:none}
.page-content ol{counter-reset:olist}
.page-content ol li{counter-increment:olist;padding-left:32px}
.page-content ol li::after{content:counter(olist)'.';position:absolute;left:0;
  color:var(--gold);font-size:11px;font-weight:500;top:10px}
.page-content a{color:var(--gold);text-decoration:underline;text-decoration-color:rgba(184,149,90,.3)}
.page-content a:hover{text-decoration-color:var(--gold)}
.page-content .last-updated{font-size:12px;color:rgba(92,78,58,.5);
  letter-spacing:.1em;text-transform:uppercase;margin-bottom:48px;
  padding-bottom:32px;border-bottom:1px solid var(--warm)}

/* Services page grid */
.services-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;
  padding:80px 60px;background:var(--cream2)}
.service-page-card{background:var(--cream);padding:48px 36px;position:relative;
  overflow:hidden;text-decoration:none;display:block;color:inherit;transition:transform .3s}
.service-page-card::before{content:'';position:absolute;inset:0;background:white;
  opacity:0;transition:opacity .4s;pointer-events:none}
.service-page-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .5s cubic-bezier(.25,.46,.45,.94)}
.service-page-card:hover::before{opacity:1}
.service-page-card:hover::after{transform:scaleX(1)}
.service-page-card:hover{transform:translateY(-2px)}
.service-page-card>*{position:relative;z-index:1}
.service-page-card img{width:100%;height:180px;object-fit:cover;margin-bottom:24px;display:block}
.service-page-card .svc-num{font-family:var(--serif);font-size:44px;font-weight:300;
  color:rgba(184,149,90,.18);line-height:1;margin-bottom:16px}
.service-page-card h3{font-family:var(--serif);font-size:22px;font-weight:400;
  color:var(--dark);margin-bottom:10px}
.service-page-card p{font-size:13px;line-height:1.8;color:var(--mid)}
.service-page-card .svc-arrow{display:inline-flex;align-items:center;gap:8px;margin-top:20px;
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  transition:gap .3s}
.service-page-card:hover .svc-arrow{gap:14px}

/* ============================================================
   ABOUT PAGE — v2.8.1 full redesign
   ============================================================ */

/* 1. PRACTITIONER HERO */
.about-practitioner{padding:100px 60px;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;background:var(--cream)}
.about-practitioner-img{position:relative}
.about-practitioner-img img{width:100%;height:460px;object-fit:cover;object-position:top center;display:block}
.about-pract-badge{position:absolute;bottom:-24px;right:-24px;background:var(--dark);padding:28px 32px;text-align:center;border:1px solid rgba(255,255,255,.1)}
.about-pract-badge-num{display:block;font-family:var(--serif);font-size:48px;font-weight:300;color:var(--gold);line-height:1}
.about-pract-badge-txt{display:block;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:6px}
.about-practitioner-text h2{font-family:var(--serif);font-size:clamp(32px,4vw,52px);font-weight:300;color:var(--dark);margin:16px 0 6px;line-height:1.15}
.about-practitioner-text h2 em{font-style:italic;color:var(--gold);display:block;font-size:.75em}
.about-pract-lead{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--mid);margin-bottom:28px;padding-bottom:28px;border-bottom:1px solid var(--warm)}
.about-practitioner-text p{font-size:14px;line-height:1.9;color:var(--mid);margin-bottom:16px}
.about-pract-creds{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px;padding-top:32px;border-top:1px solid var(--warm)}
.about-pract-creds span{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--mid);border:1px solid var(--warm);padding:8px 14px;background:white}

/* 2. STATS STRIP */
.about-stats-strip{background:var(--dark);padding:64px 60px}
.about-stats-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.08);max-width:1100px;margin:0 auto}
.about-stat{background:var(--dark);text-align:center;padding:48px 24px}
.about-stat-num{font-family:var(--serif);font-size:clamp(48px,5vw,72px);font-weight:300;color:var(--gold);line-height:1;margin-bottom:12px}
.about-stat-label{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.45)}

/* 3. STORY */
.about-story{padding:100px 60px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;background:var(--cream2)}
.about-story-text h2{font-family:var(--serif);font-size:clamp(32px,4vw,52px);font-weight:300;color:var(--dark);margin:16px 0 28px;line-height:1.2}
.about-story-text h2 em{font-style:italic;color:var(--gold)}
.about-story-text p{font-size:14px;line-height:1.9;color:var(--mid);margin-bottom:16px}
.about-mission-box{background:var(--dark);padding:52px 48px;position:sticky;top:100px}
.about-mission-quote{font-family:var(--serif);font-size:clamp(18px,2vw,24px);font-weight:300;color:white;line-height:1.7;font-style:italic;margin:20px 0 28px;position:relative;padding-left:0}
.about-mission-quote::before{content:'"';font-family:var(--serif);font-size:80px;color:var(--gold);opacity:.3;position:absolute;top:-20px;left:-8px;line-height:1;pointer-events:none}
.about-mission-cite{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:block}

/* 4. THE PARI APPROACH */
.about-approach{padding:100px 60px;background:var(--cream)}
.about-approach-inner{text-align:center;max-width:680px;margin:0 auto 72px}
.about-approach-inner h2{font-family:var(--serif);font-size:clamp(36px,4vw,56px);font-weight:300;color:var(--dark);margin:16px 0 20px}
.about-approach-inner h2 em{font-style:italic;color:var(--gold)}
.about-approach-lead{font-size:15px;line-height:1.8;color:var(--mid)}
.about-approach-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--warm)}
.approach-pillar{background:var(--cream);padding:48px 36px}
.approach-pillar-num{font-family:var(--serif);font-size:52px;font-weight:300;color:var(--gold);opacity:.35;line-height:1;margin-bottom:20px}
.approach-pillar h3{font-family:var(--serif);font-size:20px;font-weight:400;color:var(--dark);margin-bottom:14px}
.approach-pillar p{font-size:13px;line-height:1.85;color:var(--mid)}

/* 5. VALUES */
.about-page-values{background:var(--dark);padding:100px 60px}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:64px}
.values-grid--4{grid-template-columns:repeat(4,1fr)}
.value-card{
  text-align:center;padding:52px 32px 48px;
  border:1px solid rgba(255,255,255,.08);
  position:relative;overflow:hidden;
  cursor:default;
  transition:border-color .4s ease,box-shadow .4s ease,transform .4s cubic-bezier(.27,0,.51,1)}
/* Gold fill that sweeps up from bottom on hover */
.value-card::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(184,149,90,.12) 0%,rgba(184,149,90,.04) 100%);
  opacity:0;transition:opacity .4s ease}
.value-card:hover{
  border-color:rgba(184,149,90,.45);
  box-shadow:0 0 40px rgba(184,149,90,.12), inset 0 0 60px rgba(184,149,90,.04);
  transform:translateY(-4px)}
.value-card:hover::before{opacity:1}
/* Icon */
.value-card .val-icon{
  font-family:var(--serif);font-size:48px;color:var(--gold);
  margin-bottom:20px;line-height:1;
  display:inline-block;
  transition:transform .4s cubic-bezier(.27,0,.51,1),color .3s ease}
.value-card:hover .val-icon{
  transform:scale(1.18) translateY(-4px);
  color:var(--gold-light)}
/* Heading */
.value-card h3{
  font-family:var(--serif);font-size:22px;font-weight:400;color:white;
  margin-bottom:12px;
  transition:color .3s ease}
.value-card:hover h3{color:var(--gold-light)}
/* Body text — fades up slightly on hover */
.value-card p{
  font-size:13px;line-height:1.8;color:rgba(255,255,255,.5);
  transition:color .3s ease,transform .4s ease}
.value-card:hover p{color:rgba(255,255,255,.75);transform:translateY(-2px)}
/* Thin gold line that grows from center on hover */
.value-card::after{
  content:'';position:absolute;bottom:0;left:50%;
  width:0;height:2px;background:var(--gold);
  transform:translateX(-50%);
  transition:width .45s cubic-bezier(.27,0,.51,1)}
.value-card:hover::after{width:60%}

/* 6. WHY CHOOSE */
.about-why{padding:100px 60px;background:var(--cream2)}
.about-why-header{text-align:center;max-width:680px;margin:0 auto 64px}
.about-why-header h2{font-family:var(--serif);font-size:clamp(32px,4vw,52px);font-weight:300;color:var(--dark);margin-top:16px;line-height:1.2}
.about-why-header h2 em{font-style:italic;color:var(--gold)}
.about-why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:960px;margin:0 auto}
.about-why-card{background:white;border:1px solid var(--warm);padding:36px 32px;display:flex;gap:20px;align-items:flex-start;transition:border-color .3s,box-shadow .3s}
.about-why-card:hover{border-color:var(--gold);box-shadow:0 8px 32px rgba(184,149,90,.1)}
.about-why-icon{color:var(--gold);font-size:20px;flex-shrink:0;margin-top:2px}
.about-why-title{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--dark);margin-bottom:8px;font-weight:400}
.about-why-desc{font-size:13px;line-height:1.8;color:var(--mid);margin:0}

/* 7. CLINIC PHOTOS */
.about-clinic-photos{padding:100px 60px;background:var(--cream)}
.about-clinic-photos-header{text-align:center;max-width:680px;margin:0 auto 64px}
.about-clinic-photos-header h2{font-family:var(--serif);font-size:clamp(32px,4vw,52px);font-weight:300;color:var(--dark);margin:16px 0 20px}
.about-clinic-photos-header h2 em{font-style:italic;color:var(--gold)}
.about-clinic-photos-header p{font-size:15px;line-height:1.8;color:var(--mid)}

/* Scroll stanza section wrapper */
.about-scroll-stanza{padding:100px 60px;background:var(--cream);text-align:center}
.about-scroll-stanza .scroll-stanza{display:inline-block;text-align:center}
.about-clinic-row{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}
.about-clinic-photo{position:relative;overflow:hidden}
.about-clinic-photo img{width:100%;height:440px;object-fit:cover;object-position:center;display:block;transition:transform .7s cubic-bezier(.25,.46,.45,.94)}
.about-clinic-photo:hover img{transform:scale(1.04)}
.about-clinic-photo-label{position:absolute;bottom:0;left:0;right:0;padding:20px 24px;background:linear-gradient(to top,rgba(28,24,18,.75) 0%,transparent 100%);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.about-clinic-note{text-align:center;font-size:12px;color:var(--mid);margin-top:24px;font-style:italic;opacity:.6}

/* Gallery page */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:80px 60px}
.gallery-item{aspect-ratio:4/3;overflow:hidden;position:relative;cursor:pointer}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.25,.46,.45,.94)}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-overlay{position:absolute;inset:0;background:rgba(28,24,18,.35);opacity:0;
  transition:opacity .3s;display:flex;align-items:center;justify-content:center}
.gallery-item:hover .gallery-overlay{opacity:1}
.gallery-overlay span{font-family:var(--serif);font-size:14px;color:white;letter-spacing:.1em}

/* Contact page */
.contact-page{padding:100px 60px;display:grid;grid-template-columns:1fr 1fr;gap:100px}
.contact-info h2{font-family:var(--serif);font-size:clamp(32px,4vw,52px);font-weight:300;
  color:var(--dark);margin-bottom:32px;margin-top:16px}
.contact-info h2 em{font-style:italic}
.contact-detail{display:flex;align-items:flex-start;gap:16px;margin-bottom:32px;
  padding-bottom:32px;border-bottom:1px solid var(--warm)}
.contact-detail:last-child{border:none}
.contact-detail-icon{width:44px;height:44px;background:var(--cream2);border:1px solid var(--warm);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--gold)}
.contact-detail-text .label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin-bottom:6px}
.contact-detail-text a,.contact-detail-text p{font-size:15px;color:var(--dark);
  text-decoration:none;line-height:1.6}
.contact-form-wrap h2{font-family:var(--serif);font-size:clamp(28px,3vw,42px);font-weight:300;
  color:var(--dark);margin-bottom:32px;margin-top:16px}
.contact-form input,.contact-form textarea,.contact-form select{width:100%;
  background:white;border:1px solid var(--warm);padding:16px 20px;
  font-family:var(--sans);font-size:14px;color:var(--dark);font-weight:300;
  margin-bottom:16px;outline:none;transition:border-color .2s;appearance:none}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--gold)}
.contact-form textarea{height:140px;resize:vertical}
.contact-form input[type="submit"]{background:var(--dark);color:white;
  cursor:pointer;letter-spacing:.2em;text-transform:uppercase;font-size:11px;
  transition:background .3s;margin-top:8px}
.contact-form input[type="submit"]:hover{background:var(--gold)}

/* Team page */
.team-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;
  padding:80px 60px;background:var(--cream2)}

/* Specials page */
.specials-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;
  padding:80px 60px}
.special-card{background:white;border:1px solid var(--warm);padding:48px 40px;
  position:relative;overflow:hidden}
.special-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--gold)}
.special-card .badge{font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin-bottom:16px;display:block}
.special-card h3{font-family:var(--serif);font-size:28px;font-weight:400;color:var(--dark);margin-bottom:12px}
.special-card p{font-size:14px;line-height:1.8;color:var(--mid);margin-bottom:24px}
.special-card .price{font-family:var(--serif);font-size:40px;font-weight:300;color:var(--gold)}
.special-card .price span{font-family:var(--sans);font-size:13px;color:var(--mid)}

/* Blog page */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:80px 60px}
.blog-card{background:white;border:1px solid var(--warm);overflow:hidden;
  transition:box-shadow .3s,transform .3s;text-decoration:none;display:block;color:inherit}
.blog-card:hover{box-shadow:0 16px 48px rgba(28,24,18,.08);transform:translateY(-3px)}
.blog-card img{width:100%;height:220px;object-fit:cover;display:block}
.blog-card-body{padding:32px 28px}
.blog-card-body .meta{font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin-bottom:12px}
.blog-card-body h3{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--dark);
  margin-bottom:12px;line-height:1.3}
.blog-card-body p{font-size:13px;line-height:1.8;color:var(--mid)}
.blog-card-body .read-more{display:inline-flex;align-items:center;gap:8px;margin-top:20px;
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}

/* Inline CTA strip */
.inner-cta{background:var(--dark);padding:80px 60px;text-align:center;position:relative;overflow:hidden}
.inner-cta h2{font-family:var(--serif);font-size:clamp(28px,4vw,52px);font-weight:300;
  color:white;margin-bottom:20px;position:relative}
.inner-cta h2 em{color:var(--gold-light);font-style:italic}
.inner-cta p{font-size:15px;color:rgba(255,255,255,.5);margin-bottom:40px;
  max-width:480px;margin-left:auto;margin-right:auto;line-height:1.8;position:relative}
.inner-cta .cta-row{position:relative}
/* Separation border — keeps CTA visually distinct from footer */
.inner-cta--separated{border-top:1px solid rgba(255,255,255,.08)}

@media(max-width:960px){
  .page-banner{padding:120px 24px 80px}
  .breadcrumb{padding:14px 24px}
  .page-content{padding:60px 24px}
  .services-page-grid,.team-page-grid,.gallery-grid{grid-template-columns:1fr 1fr;padding:60px 24px}
  .contact-page{grid-template-columns:1fr;gap:48px;padding:60px 24px}
  .values-grid{grid-template-columns:1fr 1fr}
  .values-grid--4{grid-template-columns:1fr 1fr}
  .specials-grid,.blog-grid{grid-template-columns:1fr;padding:60px 24px}
  .inner-cta{padding:60px 24px}
  /* About page responsive */
  .about-practitioner{grid-template-columns:1fr;gap:48px;padding:60px 24px}
  .about-pract-badge{bottom:-16px;right:16px}
  .about-stats-inner{grid-template-columns:repeat(2,1fr)}
  .about-stats-strip{padding:48px 24px}
  /* Mobile: show only Clients Treated (1st) and Years Experience (3rd) */
  .about-stat:nth-child(2),
  .about-stat:nth-child(4){display:none}
  /* Make the 2 remaining stats each take half width */
  .about-stats-inner{grid-template-columns:1fr 1fr}
  .about-story{grid-template-columns:1fr;gap:48px;padding:60px 24px}
  .about-mission-box{position:static;padding:36px 28px}
  .about-approach{padding:60px 24px}
  .about-approach-pillars{grid-template-columns:1fr 1fr}
  .about-page-values{padding:60px 24px}
  .about-why{padding:60px 24px}
  .about-why-grid{grid-template-columns:1fr}
  .about-clinic-photos{padding:60px 24px}
  .about-clinic-row{grid-template-columns:1fr}
  .about-clinic-photo img{height:280px}
}
@media(max-width:540px){
  .services-page-grid,.team-page-grid,.gallery-grid{grid-template-columns:1fr}
  .values-grid,.values-grid--4{grid-template-columns:1fr;padding-left:24px;padding-right:24px}
  .about-stats-inner{grid-template-columns:repeat(2,1fr)}
  .about-approach-pillars{grid-template-columns:1fr}
  .about-why-grid{grid-template-columns:1fr}
}

/* ============================================================
   MOBILE STICKY BOTTOM BAR
   Fixed call + book bar at bottom of screen on mobile only
   Common mobile UX pattern for local service businesses
   ============================================================ */

.mobile-sticky-bar{
  display:none; /* hidden on desktop */
}

@media(max-width:960px){
  /* Push page content up so bar doesn't cover last section */
  body{
    padding-bottom:72px;
  }

  .mobile-sticky-bar{
    display:flex;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:999;
    height:64px;
    box-shadow:0 -4px 24px rgba(28,24,18,.15);
    /* Safe area for iPhone home indicator */
    padding-bottom:env(safe-area-inset-bottom,0px);
  }

  .mobile-sticky-bar a{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    text-decoration:none;
    font-family:var(--sans);
    font-size:12px;
    font-weight:400;
    letter-spacing:.18em;
    text-transform:uppercase;
    transition:opacity .2s;
    -webkit-tap-highlight-color:transparent;
  }

  .mobile-sticky-bar a:active{
    opacity:.8;
  }

  .mobile-sticky-call{
    background:var(--cream);
    color:var(--dark);
    border-top:1px solid var(--warm);
    border-right:1px solid var(--warm);
  }

  .mobile-sticky-call svg{
    color:var(--gold);
    flex-shrink:0;
  }

  .mobile-sticky-book{
    background:var(--dark);
    color:white;
    position:relative;
  }

  .mobile-sticky-book svg{
    color:var(--gold-light);
    flex-shrink:0;
  }

  /* Pulse animation on the book button to draw attention */
  .mobile-sticky-book::after{
    content:'';
    position:absolute;
    inset:0;
    background:var(--gold);
    opacity:0;
    pointer-events:none;
    animation:barPulse 3s ease-in-out 2s 3;
  }

  @keyframes barPulse{
    0%,100%{opacity:0}
    50%{opacity:.15}
  }
}

/* ============================================================
   ANIMATED MOBILE MENU — Trifecta-style category tabs
   Full-screen overlay with Services / About / Results / More
   ============================================================ */

/* Overlay */
.mm-overlay{
  position:fixed;
  inset:0;
  background:rgba(28,24,18,.5);
  z-index:190;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .35s ease, visibility .35s ease;
  /* backdrop-filter is deliberately NOT declared here — it belongs on .active
     only. See the note on .mm-overlay.active below. */
}
/* iOS Safari: a position:fixed, inset:0 element that declares backdrop-filter
   establishes a backdrop root and its own compositing layer even while it is
   opacity:0 / visibility:hidden. The layer is never actually torn down, so any
   repaint underneath it — here the homepage hero crossfading slide 1 to slide 2
   every 8 seconds — makes Safari re-composite and paint that stale blur over
   the WHOLE viewport. Symptoms were exactly that: the entire page goes blurry
   with the menu closed, a refresh clears it (fresh layer tree), and it returns
   about 8 seconds later on the next slide change. The fixed bottom CALL US /
   BOOK NOW bar stayed sharp because it sits above this overlay's z-index:190.
   Declaring the blur only while the overlay is genuinely open means no backdrop
   root exists when it is closed, which removes the bug. The blur now appears
   without transitioning, but the dark background still fades via opacity, so
   the open/close animation is unchanged to the eye. */
.mm-overlay.active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}

/* Main drawer — slides in from left */
.mm{
  position:fixed;
  top:0;
  left:0;
  bottom:0;
  width:min(88vw, 400px);
  background:var(--dark);
  z-index:200;
  display:flex;
  flex-direction:column;
  transform:translateX(-100%);
  transition:transform .42s cubic-bezier(.16,1,.3,1);
  overflow:hidden;
  will-change:transform;
}
.mm.open{
  transform:translateX(0);
}

/* Header row */
.mm-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 24px 16px;
  border-bottom:1px solid rgba(255,255,255,.08);
  flex-shrink:0;
}
.mm-logo img{
  height:36px;
  width:auto;
  filter:brightness(0) invert(1);
  opacity:.85;
}

/* Close button — X animation */
.mm-close{
  width:40px;
  height:40px;
  background:rgba(255,255,255,.06);
  border:none;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  position:relative;
  border-radius:50%;
  flex-shrink:0;
  transition:background .2s;
}
.mm-close:hover{
  background:rgba(255,255,255,.12);
}
.mm-close span{
  display:block;
  width:18px;
  height:1px;
  background:white;
  position:absolute;
  transition:transform .3s ease, opacity .2s;
}
.mm-close span:nth-child(1){ transform:rotate(45deg); }
.mm-close span:nth-child(2){ transform:rotate(-45deg); }

/* Category tabs — compact horizontal bar so treatments stay above the fold */
.mm-tabs{
  display:flex;
  flex-direction:row;
  align-items:stretch;
  padding:0 16px;
  border-bottom:1px solid rgba(255,255,255,.08);
  flex-shrink:0;
}
.mm-tab{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px 8px;
  background:none;
  border:none;
  cursor:pointer;
  font-family:var(--serif);
  font-size:17px;
  font-weight:300;
  color:rgba(255,255,255,.4);
  white-space:nowrap;
  transition:color .2s;
  position:relative;
  letter-spacing:.03em;
  -webkit-tap-highlight-color:transparent;
}
.mm-tab::before{
  content:'';
  position:absolute;
  left:50%;
  bottom:-1px;
  transform:translateX(-50%);
  width:0;
  height:2px;
  background:var(--gold);
  transition:width .3s cubic-bezier(.25,.46,.45,.94);
  border-radius:2px 2px 0 0;
}
.mm-tab.active{
  color:white;
}
.mm-tab.active::before{
  width:100%;
}
.mm-tab-label{
  font-style:italic;
}
.mm-tab-arrow{
  display:none;
}

/* Panels — stacked, only active one shown */
.mm-panel{
  display:none;
  flex:1;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.mm-panel.active{
  display:block;
  animation:panelIn .35s cubic-bezier(.25,.46,.45,.94) both;
}
@keyframes panelIn{
  from{ opacity:0; transform:translateX(16px); }
  to{   opacity:1; transform:translateX(0); }
}
.mm-panel-inner{
  padding:20px 24px 24px;
}

/* Service groups inside panels */
.mm-group{
  margin-bottom:28px;
}
.mm-group-label{
  font-size:10px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:12px;
  display:flex;
  align-items:center;
  gap:8px;
}
.mm-group-icon{
  font-size:7px;
}
.mm-link{
  display:block;
  font-family:var(--sans);
  font-size:14px;
  font-weight:300;
  letter-spacing:.06em;
  color:rgba(255,255,255,.65);
  text-decoration:none;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.05);
  transition:color .2s, padding-left .2s;
  -webkit-tap-highlight-color:transparent;
}
.mm-link:last-of-type{
  border-bottom:none;
}
.mm-link:hover, .mm-link:active{
  color:white;
  padding-left:6px;
}

/* CTA link inside panel */
.mm-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:20px;
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  text-decoration:none;
  border-bottom:1px solid rgba(184,149,90,.3);
  padding-bottom:2px;
  transition:color .2s, border-color .2s;
}
.mm-cta:hover{
  color:var(--gold-light);
  border-color:var(--gold-light);
}

/* Footer strip — call + book */
.mm-foot{
  display:flex;
  border-top:1px solid rgba(255,255,255,.08);
  flex-shrink:0;
  /* Safe area for iPhone home indicator */
  padding-bottom:env(safe-area-inset-bottom, 0px);
}
.mm-foot-call,
.mm-foot-book{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:18px 12px;
  font-family:var(--sans);
  font-size:11px;
  font-weight:400;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-decoration:none;
  transition:opacity .2s;
  -webkit-tap-highlight-color:transparent;
}
.mm-foot-call:active,
.mm-foot-book:active{
  opacity:.7;
}
.mm-foot-call{
  color:rgba(255,255,255,.7);
  border-right:1px solid rgba(255,255,255,.08);
}
.mm-foot-call svg{
  color:var(--gold);
  flex-shrink:0;
}
.mm-foot-book{
  background:var(--gold);
  color:white;
  font-weight:500;
}

/* ============================================================
   FEATURE 10 — GOOGLE REVIEWS WIDGET
   ============================================================ */
.reviews-bar{
  background:white;
  border-top:1px solid var(--warm);
  border-bottom:1px solid var(--warm);
  padding:28px 60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
}
.reviews-bar-brand{
  display:flex;
  align-items:center;
  gap:16px;
  flex-shrink:0;
}
.reviews-google-icon{
  width:40px;
  height:40px;
  flex-shrink:0;
}
.reviews-bar-score{
  font-family:var(--serif);
  font-size:38px;
  font-weight:300;
  color:var(--dark);
  line-height:1;
}
.reviews-bar-stars{ color:#F4B942; font-size:16px; letter-spacing:2px; margin:4px 0 2px; }
.reviews-bar-count{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--mid); }
.reviews-bar-divider{ width:1px; height:48px; background:var(--warm); flex-shrink:0; }
.reviews-carousel{ flex:1; overflow:hidden; position:relative; min-width:0; }
.reviews-track{
  display:flex;
  gap:24px;
  animation:reviewsScroll 30s linear infinite;
  width:max-content;
}
.reviews-track:hover{ animation-play-state:paused; }
@keyframes reviewsScroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
.review-chip{
  background:var(--cream);
  border:1px solid var(--warm);
  padding:14px 20px;
  min-width:260px;
  max-width:300px;
  flex-shrink:0;
}
.review-chip-stars{ color:#F4B942; font-size:12px; letter-spacing:2px; margin-bottom:8px; }
.review-chip-text{
  font-family:var(--serif);
  font-size:14px;
  font-style:italic;
  color:var(--dark);
  line-height:1.55;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.review-chip-author{
  font-size:10px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--gold);
  margin-top:8px;
}
.reviews-bar-cta{
  flex-shrink:0;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--dark);
  text-decoration:none;
  border-bottom:1px solid var(--dark);
  padding-bottom:2px;
  transition:color .2s, border-color .2s;
  white-space:nowrap;
}
.reviews-bar-cta:hover{ color:var(--gold); border-color:var(--gold); }
@media(max-width:960px){
  .reviews-bar{ padding:24px; }
  .reviews-bar-divider,.reviews-bar-cta{ display:none; }
}

/* ============================================================
   FEATURE 11 — RESULTS MAY VARY DISCLAIMER
   ============================================================ */
.rmv-disclaimer{
  background:var(--cream2);
  border-top:1px solid var(--warm);
  padding:20px 60px;
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.rmv-icon{
  color:var(--gold);
  font-size:14px;
  flex-shrink:0;
  margin-top:1px;
}
.rmv-text{
  font-size:11px;
  letter-spacing:.05em;
  color:var(--mid);
  line-height:1.7;
}
.rmv-text strong{ color:var(--dark); }
@media(max-width:960px){ .rmv-disclaimer{ padding:16px 24px; } }

/* Gallery image disclaimer badge */
.gallery-item .rmv-badge{
  position:absolute;
  bottom:8px;
  left:8px;
  background:rgba(28,24,18,.65);
  color:rgba(255,255,255,.7);
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:4px 8px;
  pointer-events:none;
  z-index:2;
  backdrop-filter:blur(4px);
}

/* ============================================================
   FEATURE — PRICE / DURATION BADGE (service pages)
   ============================================================ */
.svc-meta-bar{
  background:var(--dark);
  padding:18px 60px;
  display:flex;
  align-items:center;
  gap:48px;
  flex-wrap:wrap;
}
.svc-meta-item{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.svc-meta-label{
  font-size:9px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:rgba(255,255,255,.4);
}
.svc-meta-value{
  font-family:var(--serif);
  font-size:22px;
  font-weight:300;
  color:var(--gold-light);
  line-height:1;
}
.svc-meta-divider{
  width:1px;
  height:36px;
  background:rgba(255,255,255,.1);
}
.svc-meta-cta{
  margin-left:auto;
}
@media(max-width:960px){
  .svc-meta-bar{ padding:16px 24px; gap:28px; }
  .svc-meta-cta{ display:none; }
}

/* ============================================================
   FEATURE — FAQ ACCORDION
   ============================================================ */
.faq-section{
  padding:100px 60px;
  background:var(--cream);
}
.faq-section .section-header{ margin-bottom:56px; }
.faq-list{ max-width:800px; margin:0 auto; }
.faq-item{
  border-bottom:1px solid var(--warm);
  overflow:hidden;
}
.faq-item:first-child{ border-top:1px solid var(--warm); }
.faq-q{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:24px 0;
  cursor:pointer;
  background:none;
  border:none;
  width:100%;
  text-align:left;
  font-family:var(--serif);
  font-size:19px;
  font-weight:400;
  color:var(--dark);
  transition:color .2s;
  -webkit-tap-highlight-color:transparent;
}
.faq-q:hover{ color:var(--gold); }
.faq-icon{
  width:28px;
  height:28px;
  flex-shrink:0;
  border:1px solid var(--warm);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .25s, border-color .25s;
  position:relative;
}
.faq-icon::before,
.faq-icon::after{
  content:'';
  position:absolute;
  background:var(--gold);
  transition:transform .35s cubic-bezier(.25,.46,.45,.94), opacity .25s;
}
.faq-icon::before{ width:10px; height:1px; }
.faq-icon::after{  width:1px; height:10px; }
.faq-item.open .faq-icon{ background:var(--gold); border-color:var(--gold); }
.faq-item.open .faq-icon::before,
.faq-item.open .faq-icon::after{ background:white; }
.faq-item.open .faq-icon::after{ transform:rotate(90deg); opacity:0; }
.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .45s cubic-bezier(.25,.46,.45,.94), padding .35s ease;
  padding:0;
}
.faq-item.open .faq-a{
  max-height:2000px; /* safe upper bound — prevents clipping long answers */
  padding-bottom:24px;
}
.faq-a p{
  font-size:14px;
  line-height:1.9;
  color:var(--mid);
}
@media(max-width:960px){
  .faq-section{ padding:60px 24px; }
  .faq-q{ font-size:17px; }
}

/* ============================================================
   FEATURE 8 — VIDEO EMBED (service pages)
   ============================================================ */
.svc-video-section{
  padding:80px 60px;
  background:var(--dark);
}
.svc-video-wrap{
  max-width:900px;
  margin:0 auto;
}
.svc-video-header{
  text-align:center;
  margin-bottom:48px;
}
.svc-video-header h2{
  font-family:var(--serif);
  font-size:clamp(28px,3.5vw,46px);
  font-weight:300;
  color:white;
  margin-top:14px;
}
.svc-video-header h2 em{ font-style:italic; color:var(--gold-light); }
.video-container{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:var(--mid);
  overflow:hidden;
}
.video-container video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
/* YouTube / iframe embed */
.video-container iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:none;
}
/* Play button overlay for non-autoplay */
.video-play-btn{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  background:rgba(28,24,18,.35);
  transition:background .3s;
  border:none;
}
.video-play-btn:hover{ background:rgba(28,24,18,.2); }
.video-play-btn svg{
  width:72px;
  height:72px;
  color:white;
  filter:drop-shadow(0 4px 16px rgba(0,0,0,.4));
  transition:transform .3s;
}
.video-play-btn:hover svg{ transform:scale(1.1); }
@media(max-width:960px){
  .svc-video-section{ padding:60px 24px; }
}

/* ============================================================
   CLIENT COLOR THEME SWITCHER
   Remove this entire block once client picks a theme.
   Toggle off by setting: define('PMS_THEME_PICKER', false);
   in wp-config.php or functions.php
   ============================================================ */

/* ── 4 THEME VARIABLE SETS ── */

/* THEME 1: Trifecta — White / Black / Electric Blue */
body.pms-theme-trifecta {
  --cream:      #FFFFFF;
  --cream2:     #F7F7F7;
  --warm:       #E0E0E0;
  --gold:       #1A6DFF;
  --gold-light: #4D93FF;
  --dark:       #0A0A0A;
  --mid:        #555555;
  --text:       #1A1A1A;
}
body.pms-theme-trifecta .hero                    { background:linear-gradient(135deg,#F0F4FF,#E8EEFF,#DCE6FF) }
body.pms-theme-trifecta .hero-image::before      { background:linear-gradient(to right,#F0F4FF,transparent) }
body.pms-theme-trifecta .marquee-wrap            { background:#0A0A0A }
body.pms-theme-trifecta .stats                   { background:#0A0A0A }
body.pms-theme-trifecta .highlight-content       { background:#0A0A0A }
body.pms-theme-trifecta .cta-banner              { background:linear-gradient(135deg,#0A0A0A,#1A1A1A) }
body.pms-theme-trifecta footer                   { background:#0A0A0A }
body.pms-theme-trifecta .footer-bottom           { background:#0A0A0A }
body.pms-theme-trifecta .mm                      { background:#0A0A0A }
body.pms-theme-trifecta .mobile-sticky-call      { background:#F7F7F7; border-color:#E0E0E0 }
body.pms-theme-trifecta .mobile-sticky-book      { background:#0A0A0A }
body.pms-theme-trifecta .about                   { background:#FFFFFF }
body.pms-theme-trifecta .services                { background:#F7F7F7 }
body.pms-theme-trifecta .service-card            { background:#FFFFFF }
body.pms-theme-trifecta .testimonials            { background:#FFFFFF }
body.pms-theme-trifecta .tcard                   { background:#F7F7F7 }
body.pms-theme-trifecta .faq-section             { background:#FFFFFF }
body.pms-theme-trifecta .page-banner             { background:linear-gradient(135deg,#F0F4FF,#E8EEFF) }
body.pms-theme-trifecta .inner-cta               { background:#0A0A0A }
body.pms-theme-trifecta nav                      { background:rgba(255,255,255,.97) }
body.pms-theme-trifecta .topbar                  { background:#0A0A0A }

/* THEME 2: Current — Warm Cream / Charcoal / Antique Gold (default — no overrides needed) */
body.pms-theme-current {
  --cream:      #F9F5F0;
  --cream2:     #F2EBE0;
  --warm:       #E8D9C4;
  --gold:       #B8955A;
  --gold-light: #D4B483;
  --dark:       #1C1812;
  --mid:        #5C4E3A;
  --text:       #3A3028;
}

/* THEME 3: Blush Rose — Soft Rose / Deep Plum / Dusty Rose */
body.pms-theme-rose {
  --cream:      #FDF7F7;
  --cream2:     #F8EEEE;
  --warm:       #E8D0D0;
  --gold:       #B8697A;
  --gold-light: #D4909F;
  --dark:       #1E1214;
  --mid:        #6B4A50;
  --text:       #3D2428;
}
body.pms-theme-rose .hero                        { background:linear-gradient(135deg,#FDF0F0,#F5E2E4,#EDD0D3) }
body.pms-theme-rose .hero-image::before          { background:linear-gradient(to right,#FDF0F0,transparent) }
body.pms-theme-rose .marquee-wrap                { background:#1E1214 }
body.pms-theme-rose .stats                       { background:#1E1214 }
body.pms-theme-rose .highlight-content           { background:#1E1214 }
body.pms-theme-rose .cta-banner                  { background:linear-gradient(135deg,#1E1214,#2A1518) }
body.pms-theme-rose footer                       { background:#1E1214 }
body.pms-theme-rose .footer-bottom               { background:#1E1214 }
body.pms-theme-rose .mm                          { background:#1E1214 }
body.pms-theme-rose .mobile-sticky-call          { background:#FDF7F7; border-color:#E8D0D0 }
body.pms-theme-rose .mobile-sticky-book          { background:#1E1214 }
body.pms-theme-rose .about                       { background:#FDF7F7 }
body.pms-theme-rose .services                    { background:#F8EEEE }
body.pms-theme-rose .service-card                { background:#FDF7F7 }
body.pms-theme-rose .testimonials                { background:#FDF7F7 }
body.pms-theme-rose .tcard                       { background:#F8EEEE }
body.pms-theme-rose .faq-section                 { background:#FDF7F7 }
body.pms-theme-rose .page-banner                 { background:linear-gradient(135deg,#FDF0F0,#F5E2E4) }
body.pms-theme-rose .inner-cta                   { background:#1E1214 }
body.pms-theme-rose nav                          { background:rgba(253,247,247,.97) }
body.pms-theme-rose .topbar                      { background:#1E1214 }

/* THEME 4: Beige Nude — Warm Nude / Dark Taupe / Bronze */
body.pms-theme-nude {
  --cream:      #F5F0EB;
  --cream2:     #EDE6DC;
  --warm:       #D9CFC3;
  --gold:       #A08060;
  --gold-light: #C4A882;
  --dark:       #2C231A;
  --mid:        #6B5A48;
  --text:       #3D3028;
}
body.pms-theme-nude .hero                        { background:linear-gradient(135deg,#EDE6DC,#E4D8C8,#D8C8B0) }
body.pms-theme-nude .hero-image::before          { background:linear-gradient(to right,#EDE6DC,transparent) }
body.pms-theme-nude .marquee-wrap                { background:#2C231A }
body.pms-theme-nude .stats                       { background:#2C231A }
body.pms-theme-nude .highlight-content           { background:#2C231A }
body.pms-theme-nude .cta-banner                  { background:linear-gradient(135deg,#2C231A,#3A2E22) }
body.pms-theme-nude footer                       { background:#2C231A }
body.pms-theme-nude .footer-bottom               { background:#2C231A }
body.pms-theme-nude .mm                          { background:#2C231A }
body.pms-theme-nude .mobile-sticky-call          { background:#F5F0EB; border-color:#D9CFC3 }
body.pms-theme-nude .mobile-sticky-book          { background:#2C231A }
body.pms-theme-nude .about                       { background:#F5F0EB }
body.pms-theme-nude .services                    { background:#EDE6DC }
body.pms-theme-nude .service-card                { background:#F5F0EB }
body.pms-theme-nude .testimonials                { background:#F5F0EB }
body.pms-theme-nude .tcard                       { background:#EDE6DC }
body.pms-theme-nude .faq-section                 { background:#F5F0EB }
body.pms-theme-nude .page-banner                 { background:linear-gradient(135deg,#EDE6DC,#E4D8C8) }
body.pms-theme-nude .inner-cta                   { background:#2C231A }
body.pms-theme-nude nav                          { background:rgba(245,240,235,.97) }
body.pms-theme-nude .topbar                      { background:#2C231A }

/* ── THEME SWITCHER PANEL UI ── */
.pms-theme-picker {
  position:fixed;
  top:50%;
  right:0;
  transform:translateY(-50%);
  z-index:99999;
  background:white;
  border:1px solid #ddd;
  border-right:none;
  border-radius:14px 0 0 14px;
  padding:16px 10px 14px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  box-shadow:-4px 4px 32px rgba(0,0,0,.12);
  font-family:'Jost',sans-serif;
}
.pms-picker-label {
  font-size:7px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#aaa;
  writing-mode:vertical-rl;
  text-orientation:mixed;
  margin-bottom:2px;
}
.pms-theme-btn {
  width:38px;
  height:38px;
  border-radius:50%;
  border:2.5px solid transparent;
  cursor:pointer;
  background:none;
  padding:0;
  position:relative;
  transition:transform .2s, box-shadow .2s;
  flex-shrink:0;
  outline:none;
}
.pms-theme-btn:hover { transform:scale(1.12); }
.pms-theme-btn.pms-active {
  border-color:#222;
  box-shadow:0 0 0 2px white, 0 0 0 4px #222;
  transform:scale(1.12);
}
.pms-btn-swatch {
  width:100%;
  height:100%;
  border-radius:50%;
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  pointer-events:none;
}
.pms-btn-swatch span { display:block; }

/* Trifecta: white / black / blue / blue-light */
.pms-btn-trifecta span:nth-child(1) { background:#FFFFFF; outline:1px solid #eee; }
.pms-btn-trifecta span:nth-child(2) { background:#0A0A0A; }
.pms-btn-trifecta span:nth-child(3) { background:#1A6DFF; }
.pms-btn-trifecta span:nth-child(4) { background:#4D93FF; }

/* Current: cream / charcoal / gold / gold-light */
.pms-btn-current span:nth-child(1) { background:#F9F5F0; }
.pms-btn-current span:nth-child(2) { background:#1C1812; }
.pms-btn-current span:nth-child(3) { background:#B8955A; }
.pms-btn-current span:nth-child(4) { background:#D4B483; }

/* Rose: blush / plum / dusty rose / rose-light */
.pms-btn-rose span:nth-child(1) { background:#FDF7F7; }
.pms-btn-rose span:nth-child(2) { background:#1E1214; }
.pms-btn-rose span:nth-child(3) { background:#B8697A; }
.pms-btn-rose span:nth-child(4) { background:#D4909F; }

/* Nude: beige / taupe / bronze / bronze-light */
.pms-btn-nude span:nth-child(1) { background:#F5F0EB; }
.pms-btn-nude span:nth-child(2) { background:#2C231A; }
.pms-btn-nude span:nth-child(3) { background:#A08060; }
.pms-btn-nude span:nth-child(4) { background:#C4A882; }

/* Tooltip */
.pms-tooltip {
  position:absolute;
  right:calc(100% + 14px);
  top:50%;
  transform:translateY(-50%);
  background:#111;
  color:white;
  font-size:11px;
  letter-spacing:.05em;
  white-space:nowrap;
  padding:7px 11px;
  border-radius:6px;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s;
}
.pms-tooltip::after {
  content:'';
  position:absolute;
  left:100%; top:50%;
  transform:translateY(-50%);
  border:5px solid transparent;
  border-left-color:#111;
}
.pms-theme-btn:hover .pms-tooltip,
.pms-theme-btn:focus .pms-tooltip { opacity:1; }

/* ── COLOR REFERENCE BAR (bottom) ── */
.pms-color-bar {
  position:fixed;
  bottom:0;
  left:0; right:0;
  z-index:99998;
  background:white;
  border-top:1px solid #e8e8e8;
  padding:12px 32px;
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  box-shadow:0 -4px 24px rgba(0,0,0,.08);
  font-family:'Jost',sans-serif;
}
.pms-bar-name {
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#999;
  white-space:nowrap;
  flex-shrink:0;
}
.pms-bar-divider { width:1px; height:32px; background:#e8e8e8; flex-shrink:0; }
.pms-swatch-group {
  display:flex;
  align-items:center;
  gap:6px;
  flex-shrink:0;
}
.pms-swatch {
  width:26px; height:26px;
  border-radius:50%;
  border:1px solid rgba(0,0,0,.1);
  flex-shrink:0;
}
.pms-hex-btn {
  font-family:monospace;
  font-size:11px;
  color:#333;
  background:#f4f4f4;
  border:none;
  padding:4px 8px;
  border-radius:4px;
  cursor:pointer;
  transition:background .15s, color .15s;
  letter-spacing:.04em;
  white-space:nowrap;
}
.pms-hex-btn:hover { background:#e4e4e4; }
.pms-hex-btn.pms-copied {
  background:#222;
  color:white;
}
.pms-swatch-label {
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#aaa;
}
.pms-bar-dismiss {
  margin-left:auto;
  font-size:10px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#bbb;
  background:none;
  border:none;
  cursor:pointer;
  font-family:'Jost',sans-serif;
  transition:color .2s;
  flex-shrink:0;
  white-space:nowrap;
}
.pms-bar-dismiss:hover { color:#666; }

/* Push footer up so bar doesn't cover content */
body.pms-picker-active {
  padding-bottom:calc(72px + 70px);
}
@media(max-width:960px) {
  body.pms-picker-active { padding-bottom:calc(64px + 120px); }
  .pms-color-bar { padding:10px 16px; gap:10px; flex-wrap:wrap; }
  .pms-bar-name,.pms-bar-divider,.pms-swatch-label { display:none; }
  .pms-theme-picker { display:none !important; }
}

/* ============================================================
   SEASONAL THEMING SYSTEM
   CSS variables injected by PHP via wp_head.
   --season-* vars are set per season in functions.php.
   ============================================================ */

/* Season variables fall back to current theme values */
:root {
  --season-accent:     var(--gold);
  --season-accent2:    var(--gold-light);
  --season-bg-tint:    var(--cream);
  --season-bg2-tint:   var(--cream2);
  --season-dark-tint:  var(--dark);
  --season-hero-grad:  linear-gradient(135deg,#F0E8D8 0%,#E8D9C4 50%,#DCC9AA 100%);
}

/* Apply season tints to relevant sections */
.hero           { background: var(--season-hero-grad) !important; }
nav             { --gold: var(--season-accent); --gold-light: var(--season-accent2); }
.topbar-promo   { color: var(--season-accent2); }
.section-label  { color: var(--season-accent) !important; }
.section-label::before { background: var(--season-accent) !important; }
.marquee-dot    { color: var(--season-accent) !important; }
.hero-tag       { color: var(--season-accent) !important; }
.hero-tag::before { background: var(--season-accent) !important; }
.hero h1 em     { color: var(--season-accent) !important; }
.btn-primary:hover,
.nav-cta:hover  { background: var(--season-accent) !important; }
.btn-gold       { background: var(--season-accent) !important; }
.btn-gold:hover { background: var(--season-accent2) !important; }
.service-card::after,
.service-page-card::after { background: var(--season-accent) !important; }
.service-arrow,
.svc-arrow,
.text-link:hover { color: var(--season-accent) !important; }
.tcard::before  { color: var(--season-accent) !important; }
.tcard-svc,
.stars          { color: var(--season-accent) !important; }
.about-img-badge .num,
.stat-num       { color: var(--season-accent2) !important; }
.faq-item.open .faq-icon { background: var(--season-accent) !important; border-color: var(--season-accent) !important; }
.footer-col h4,
.footer-brand-name { color: var(--season-accent2) !important; }
.cta-banner h2 em { color: var(--season-accent2) !important; }
.mm-tab.active::before,
.mm-group-label,
.mm-cta         { color: var(--season-accent) !important; }
.mm-tab.active::before { background: var(--season-accent) !important; }
.pms-theme-picker .pms-active { border-color: var(--season-accent) !important; box-shadow: 0 0 0 2px white, 0 0 0 4px var(--season-accent) !important; }

/* ── SEASONAL ANNOUNCEMENT BANNER ── */
.season-banner {
  background: var(--season-dark-tint, var(--dark));
  padding: 12px 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  position: relative;
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: background .6s ease;
  margin-top: 80px; /* push below fixed nav on all screen sizes */
}
.season-banner-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  justify-content: center;
  flex-wrap: wrap;
}
.season-banner-icon {
  font-size: 16px;
  line-height: 1;
  flex-shrink: 0;
  color: var(--gold-light);
}
.season-banner-text {
  font-size: 12px;
  letter-spacing: .1em;
  color: rgba(255,255,255,.75);
  text-align: center;
}
.season-banner-cta {
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--season-accent2, var(--gold-light));
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.2);
  padding-bottom: 1px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color .2s, border-color .2s;
}
.season-banner-cta:hover { color: white; border-color: white; }
.season-banner-text--mob { display: none; text-decoration: none; }
.season-banner-close {
  background: none;
  border: none;
  color: rgba(255,255,255,.3);
  font-size: 14px;
  cursor: pointer;
  padding: 4px 8px;
  flex-shrink: 0;
  transition: color .2s;
  line-height: 1;
}
.season-banner-close:hover { color: rgba(255,255,255,.7); }
/* Collapsed rather than display:none — this is a layout fix, not cosmetics.
   The banner's own margin-top is the ONLY thing clearing the fixed nav
   (80px desktop / 109px !important under max-width:960px — see the margin-top
   in the .season-banner block above). display:none took the element out of
   flow, which removed that margin and let EVERY page's content slide up
   underneath the fixed logo header — on mobile the nav is 110px tall with a
   large centred logo, so section titles collided with it. Because the
   dismissal is remembered in sessionStorage, one dismissal broke every page
   for the rest of the visit.
   Keeping the element in flow with margin-top intact preserves the clearance;
   height/padding/border go to zero and visibility:hidden takes it out of the
   accessibility tree, so the bar itself is completely gone visually.
   margin-bottom restores a little of the breathing room the visible banner
   used to provide between the nav and the first heading. */
.season-banner.dismissed {
  height: 0;
  min-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  border: none;
  overflow: hidden;
  visibility: hidden;
  margin-bottom: 14px;
  /* margin-top deliberately NOT reset — it is the fixed-nav clearance. */
}

/* ── SEASONAL PROMO SECTION ── */
.season-promo {
  padding: 100px 60px;
  background: var(--season-dark-tint, var(--dark));
  transition: background .6s ease;
  position: relative;
  overflow: hidden;
}
.season-promo::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(255,255,255,.04) 0%, transparent 70%);
  pointer-events: none;
}
.season-promo-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.season-promo-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--season-accent, var(--gold));
  border: 1px solid rgba(255,255,255,.12);
  padding: 7px 16px;
  margin-bottom: 24px;
  transition: color .6s;
}
.season-promo-left h2 {
  font-family: var(--serif);
  font-size: clamp(30px,4vw,52px);
  font-weight: 300;
  color: white;
  line-height: 1.1;
  margin-bottom: 20px;
}
.season-promo-left p {
  font-size: 15px;
  line-height: 1.85;
  color: rgba(255,255,255,.55);
  margin-bottom: 36px;
}
/* Featured treatment card */
.season-featured-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  padding: 40px;
  margin-bottom: 32px;
  transition: background .3s;
}
.season-featured-card:hover { background: rgba(255,255,255,.08); }
.season-featured-label {
  font-size: 9px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--season-accent, var(--gold));
  margin-bottom: 12px;
  transition: color .6s;
}
.season-featured-name {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 300;
  color: white;
  margin-bottom: 12px;
  line-height: 1.2;
}
.season-featured-why {
  font-size: 13px;
  line-height: 1.8;
  color: rgba(255,255,255,.5);
  margin-bottom: 20px;
}
.season-featured-link {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--season-accent, var(--gold));
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.15);
  padding-bottom: 2px;
  transition: color .2s;
}
.season-featured-link:hover { color: white; border-color: white; }
/* Season indicator dots */
.season-indicator {
  text-align: center;
}
.season-indicator-label {
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.3);
  margin-bottom: 16px;
}
.season-dots {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
.season-dot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  padding: 12px 16px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 4px;
  transition: all .3s;
  min-width: 68px;
}
.season-dot:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.2);
}
.season-dot.active {
  background: rgba(255,255,255,.08);
  border-color: var(--season-accent, var(--gold));
}
.season-dot span { font-size: 22px; line-height: 1; }
.season-dot-label {
  font-size: 9px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
  transition: color .2s;
}
.season-dot.active .season-dot-label { color: var(--season-accent, var(--gold)); }

/* ── SEASON PICKER (in theme switcher panel) ── */
.pms-season-divider {
  width: 32px;
  height: 1px;
  background: #e0e0e0;
  margin: 4px 0;
}
.pms-season-picker-label {
  font-size: 7px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #aaa;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  margin-bottom: 2px;
  margin-top: 4px;
}
.pms-season-btn {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  border: 2px solid transparent;
  cursor: pointer;
  background: none;
  padding: 0;
  position: relative;
  transition: transform .2s, box-shadow .2s;
  flex-shrink: 0;
  font-size: 20px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  outline: none;
}
.pms-season-btn:hover { transform: scale(1.12); }
.pms-season-btn.pms-active {
  border-color: #222;
  box-shadow: 0 0 0 2px white, 0 0 0 4px #222;
  transform: scale(1.12);
}
.pms-season-btn .pms-tooltip { border-radius: 4px; }

/* Responsive */
@media(max-width:960px){
  .season-banner { padding: 12px 16px; }
  .season-banner-cta--desk { display: none; }
  .season-banner-text--desk { display: none; }
  .season-banner-text--mob { display: inline; }
  .season-promo { padding: 60px 24px; }
  .season-promo-content { grid-template-columns: 1fr; gap: 40px; }
}

/* ── SPECIALS PAGE SEASONAL ADDITIONS ── */
.specials-section{ padding:0 60px 80px; background:var(--cream); }
.specials-season-strip{
  background:var(--dark);
  padding:20px 60px;
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:background .6s;
}
.specials-season-strip-inner{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  max-width:1200px;margin:0 auto;
}
.specials-season-icon{ font-size:28px;flex-shrink:0; }
.specials-season-label{
  font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.4);margin-bottom:4px;
}
.specials-season-headline{
  font-family:var(--serif);font-size:20px;font-weight:300;color:white;
}
.specials-season-cta{
  margin-left:auto;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-light);text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:2px;
  white-space:nowrap;flex-shrink:0;transition:color .2s,border-color .2s;
}
.specials-season-cta:hover{ color:white;border-color:white; }

/* Hero/featured special card */
.special-card--hero{
  border-top:3px solid var(--gold);
  position:relative;
}
.special-card-ribbon{
  position:absolute;top:0;right:24px;
  background:var(--gold);color:white;
  font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  padding:4px 14px;transform:translateY(0);
}
@media(max-width:960px){
  .specials-season-strip,.specials-section{ padding-left:24px;padding-right:24px; }
  .specials-season-cta{ display:none; }
}

/* ============================================================
   HERO SLIDESHOW - FIXED
   ============================================================ */

/* Hide old single hero */
.hero { display: none !important; }

/* ── Slider shell ── */
.hero-slider {
  position: relative;
  width: 100%;
  height: calc(100vh - 80px); /* subtract nav height */
  min-height: 580px;
  max-height: 920px;
  overflow: hidden;
  background: #1C1812;
  display: block;
}

/* ── Each slide: stacked absolutely, crossfade ── */
.hero-slide {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s ease, visibility 1s ease;
  z-index: 1;
}
.hero-slide.active {
  opacity: 1;
  visibility: visible;
  z-index: 2;
}

/* ── Background image via CSS ── */
.hero-slide-bg {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-size: cover;
  background-position: 65% top;
  background-repeat: no-repeat;
  z-index: 0;
  transform: scale(1.05);
  transition: transform 7s ease;
}
.hero-slide.active .hero-slide-bg {
  transform: scale(1);
}

/* ── Gradient overlay ── */
.hero-slide-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 1;
  background: linear-gradient(
    to right,
    rgba(20,16,10,0.78) 0%,
    rgba(20,16,10,0.55) 40%,
    rgba(20,16,10,0.15) 65%,
    rgba(20,16,10,0.0) 100%
  );
}

/* ── Text content ── */
.hero-slide-content {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: 3;
  padding: 0 60px;
  width: 52%;
  max-width: 620px;
  /* Hidden until slide active */
  opacity: 0;
  transform: translateY(calc(-50% + 24px));
  transition: opacity .7s ease .5s, transform .7s ease .5s;
}
.hero-slide.active .hero-slide-content {
  opacity: 1;
  transform: translateY(-50%);
}

/* Tag line */
.hero-slider .hero-tag {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--gold-light, #D4B483);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.hero-slider .hero-tag::before {
  content: '';
  display: block;
  width: 32px;
  height: 1px;
  background: var(--gold, #B8955A);
  flex-shrink: 0;
}

/* Heading */
.hero-slider h1 {
  font-family: var(--serif, "Cormorant Garamond", serif);
  font-size: clamp(40px, 5.5vw, 80px);
  font-weight: 300;
  line-height: 1.05;
  color: #ffffff;
  margin-bottom: 20px;
}
.hero-slider h1 em {
  font-style: italic;
  color: var(--gold-light, #D4B483);
}

/* Subtext */
.hero-slider .hero-sub {
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255,255,255,.75);
  margin-bottom: 36px;
  max-width: 440px;
}

/* Buttons */
.hero-slider .hero-btns {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.hero-slider .btn-primary {
  background: var(--gold, #B8955A);
  color: white;
  padding: 15px 32px;
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-block;
  border: none;
  cursor: pointer;
  transition: background .25s, transform .2s;
  white-space: nowrap;
}
.hero-slider .btn-primary:hover {
  background: var(--gold-light, #D4B483);
  transform: translateY(-1px);
}
.hero-slider .btn-ghost {
  color: rgba(255,255,255,.8);
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.35);
  padding-bottom: 2px;
  transition: color .2s, border-color .2s;
  white-space: nowrap;
}
.hero-slider .btn-ghost:hover {
  color: white;
  border-color: white;
}

/* Trust badges */
.hero-trust-badges {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.hero-trust-badge {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.15);
  padding: 7px 14px;
}

/* ── Navigation ── */
.hero-slider-nav {
  position: absolute;
  bottom: 36px;
  left: 60px;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 16px;
}
.hero-nav-btn {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.06);
  color: white;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .22s;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  font-family: sans-serif;
}
.hero-nav-btn:hover {
  background: var(--gold, #B8955A);
  border-color: var(--gold, #B8955A);
}
.hero-dots {
  display: flex;
  gap: 8px;
  align-items: center;
}
.hero-dot {
  width: 24px;
  height: 2px;
  border: none;
  background: rgba(255,255,255,.28);
  cursor: pointer;
  transition: all .3s;
  padding: 0;
}
.hero-dot.active {
  background: var(--gold, #B8955A);
  width: 44px;
}

/* Scroll indicator */
.hero-slider .hero-scroll {
  position: absolute;
  bottom: 44px;
  right: 5%;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  font-family: var(--sans);
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
}
.hero-slider .hero-scroll-line {
  width: 1px;
  height: 52px;
  background: var(--gold, #B8955A);
  animation: scrollPulse 2s ease-in-out infinite;
}

/* Progress bar */
.hero-slider::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  height: 2px;
  background: var(--gold, #B8955A);
  z-index: 20;
  width: 0;
  transition: none;
}
.hero-slider.progress::before {
  animation: heroProgress 5s linear forwards;
}
@keyframes heroProgress {
  from { width: 0; }
  to   { width: 100%; }
}

/* ── MOBILE ── */
@media(max-width: 960px) {
  .hero-slider {
    height: 100svh;
    min-height: 580px;
    max-height: none;
  }
  .hero-slide-content {
    width: 100%;
    max-width: 100%;
    padding: 0 24px;
    top: auto;
    bottom: 100px;
    left: 0;
    transform: none !important;
    opacity: 0;
    transition: opacity .7s ease .5s;
  }
  .hero-slide.active .hero-slide-content {
    opacity: 1;
    transform: none !important;
  }
  .hero-slide-overlay {
    background: linear-gradient(
      to top,
      rgba(20,16,10,0.88) 0%,
      rgba(20,16,10,0.55) 45%,
      rgba(20,16,10,0.15) 100%
    );
  }
  .hero-slide-bg {
    background-position: center top;
  }
  .hero-slider h1 { font-size: clamp(34px, 8vw, 52px); }
  .hero-slider .hero-sub { font-size: 13px; color: rgba(255,255,255,.8); }
  .hero-slider .hero-btns { flex-direction: column; align-items: flex-start; gap: 12px; }
  .hero-slider .btn-primary,
  .hero-slider .btn-ghost { font-size: 10px; }
  .hero-trust-badges { display: none; }
  .hero-slider-nav { bottom: 16px; left: 24px; }
  .hero-slider .hero-scroll { display: none; }
}


/* ============================================================
   SEASONAL THEMING SYSTEM
   CSS variables injected by PHP via wp_head.
   --season-* vars are set per season in functions.php.
   ============================================================ */

/* Season variables fall back to current theme values */
:root {
  --season-accent:     var(--gold);
  --season-accent2:    var(--gold-light);
  --season-bg-tint:    var(--cream);
  --season-bg2-tint:   var(--cream2);
  --season-dark-tint:  var(--dark);
  --season-hero-grad:  linear-gradient(135deg,#F0E8D8 0%,#E8D9C4 50%,#DCC9AA 100%);
}

/* Apply season tints to relevant sections */
.hero           { background: var(--season-hero-grad) !important; }
nav             { --gold: var(--season-accent); --gold-light: var(--season-accent2); }
.topbar-promo   { color: var(--season-accent2); }
.section-label  { color: var(--season-accent) !important; }
.section-label::before { background: var(--season-accent) !important; }
.marquee-dot    { color: var(--season-accent) !important; }
.hero-tag       { color: var(--season-accent) !important; }
.hero-tag::before { background: var(--season-accent) !important; }
.hero h1 em     { color: var(--season-accent) !important; }
.btn-primary:hover,
.nav-cta:hover  { background: var(--season-accent) !important; }
.btn-gold       { background: var(--season-accent) !important; }
.btn-gold:hover { background: var(--season-accent2) !important; }
.service-card::after,
.service-page-card::after { background: var(--season-accent) !important; }
.service-arrow,
.svc-arrow,
.text-link:hover { color: var(--season-accent) !important; }
.tcard::before  { color: var(--season-accent) !important; }
.tcard-svc,
.stars          { color: var(--season-accent) !important; }
.about-img-badge .num,
.stat-num       { color: var(--season-accent2) !important; }
.faq-item.open .faq-icon { background: var(--season-accent) !important; border-color: var(--season-accent) !important; }
.footer-col h4,
.footer-brand-name { color: var(--season-accent2) !important; }
.cta-banner h2 em { color: var(--season-accent2) !important; }
.mm-tab.active::before,
.mm-group-label,
.mm-cta         { color: var(--season-accent) !important; }
.mm-tab.active::before { background: var(--season-accent) !important; }
.pms-theme-picker .pms-active { border-color: var(--season-accent) !important; box-shadow: 0 0 0 2px white, 0 0 0 4px var(--season-accent) !important; }

/* ── SEASONAL ANNOUNCEMENT BANNER ── */
.season-banner {
  background: var(--season-dark-tint, var(--dark));
  padding: 12px 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  position: relative;
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: background .6s ease;
  margin-top: 80px; /* push below fixed nav on all screen sizes */
}
.season-banner-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  justify-content: center;
  flex-wrap: wrap;
}
.season-banner-icon {
  font-size: 16px;
  line-height: 1;
  flex-shrink: 0;
  color: var(--gold-light);
}
.season-banner-text {
  font-size: 12px;
  letter-spacing: .1em;
  color: rgba(255,255,255,.75);
  text-align: center;
}
.season-banner-cta {
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--season-accent2, var(--gold-light));
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.2);
  padding-bottom: 1px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color .2s, border-color .2s;
}
.season-banner-cta:hover { color: white; border-color: white; }
.season-banner-text--mob { display: none; text-decoration: none; }
.season-banner-close {
  background: none;
  border: none;
  color: rgba(255,255,255,.3);
  font-size: 14px;
  cursor: pointer;
  padding: 4px 8px;
  flex-shrink: 0;
  transition: color .2s;
  line-height: 1;
}
.season-banner-close:hover { color: rgba(255,255,255,.7); }
/* Collapsed rather than display:none — this is a layout fix, not cosmetics.
   The banner's own margin-top is the ONLY thing clearing the fixed nav
   (80px desktop / 109px !important under max-width:960px — see the margin-top
   in the .season-banner block above). display:none took the element out of
   flow, which removed that margin and let EVERY page's content slide up
   underneath the fixed logo header — on mobile the nav is 110px tall with a
   large centred logo, so section titles collided with it. Because the
   dismissal is remembered in sessionStorage, one dismissal broke every page
   for the rest of the visit.
   Keeping the element in flow with margin-top intact preserves the clearance;
   height/padding/border go to zero and visibility:hidden takes it out of the
   accessibility tree, so the bar itself is completely gone visually.
   margin-bottom restores a little of the breathing room the visible banner
   used to provide between the nav and the first heading. */
.season-banner.dismissed {
  height: 0;
  min-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  border: none;
  overflow: hidden;
  visibility: hidden;
  margin-bottom: 14px;
  /* margin-top deliberately NOT reset — it is the fixed-nav clearance. */
}

/* ── SEASONAL PROMO SECTION ── */
.season-promo {
  padding: 100px 60px;
  background: var(--season-dark-tint, var(--dark));
  transition: background .6s ease;
  position: relative;
  overflow: hidden;
}
.season-promo::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(255,255,255,.04) 0%, transparent 70%);
  pointer-events: none;
}
.season-promo-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.season-promo-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--season-accent, var(--gold));
  border: 1px solid rgba(255,255,255,.12);
  padding: 7px 16px;
  margin-bottom: 24px;
  transition: color .6s;
}
.season-promo-left h2 {
  font-family: var(--serif);
  font-size: clamp(30px,4vw,52px);
  font-weight: 300;
  color: white;
  line-height: 1.1;
  margin-bottom: 20px;
}
.season-promo-left p {
  font-size: 15px;
  line-height: 1.85;
  color: rgba(255,255,255,.55);
  margin-bottom: 36px;
}
/* Featured treatment card */
.season-featured-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  padding: 40px;
  margin-bottom: 32px;
  transition: background .3s;
}
.season-featured-card:hover { background: rgba(255,255,255,.08); }
.season-featured-label {
  font-size: 9px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--season-accent, var(--gold));
  margin-bottom: 12px;
  transition: color .6s;
}
.season-featured-name {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 300;
  color: white;
  margin-bottom: 12px;
  line-height: 1.2;
}
.season-featured-why {
  font-size: 13px;
  line-height: 1.8;
  color: rgba(255,255,255,.5);
  margin-bottom: 20px;
}
.season-featured-link {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--season-accent, var(--gold));
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.15);
  padding-bottom: 2px;
  transition: color .2s;
}
.season-featured-link:hover { color: white; border-color: white; }
/* Season indicator dots */
.season-indicator {
  text-align: center;
}
.season-indicator-label {
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.3);
  margin-bottom: 16px;
}
.season-dots {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
.season-dot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  padding: 12px 16px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 4px;
  transition: all .3s;
  min-width: 68px;
}
.season-dot:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.2);
}
.season-dot.active {
  background: rgba(255,255,255,.08);
  border-color: var(--season-accent, var(--gold));
}
.season-dot span { font-size: 22px; line-height: 1; }
.season-dot-label {
  font-size: 9px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
  transition: color .2s;
}
.season-dot.active .season-dot-label { color: var(--season-accent, var(--gold)); }

/* ── SEASON PICKER (in theme switcher panel) ── */
.pms-season-divider {
  width: 32px;
  height: 1px;
  background: #e0e0e0;
  margin: 4px 0;
}
.pms-season-picker-label {
  font-size: 7px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #aaa;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  margin-bottom: 2px;
  margin-top: 4px;
}
.pms-season-btn {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  border: 2px solid transparent;
  cursor: pointer;
  background: none;
  padding: 0;
  position: relative;
  transition: transform .2s, box-shadow .2s;
  flex-shrink: 0;
  font-size: 20px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  outline: none;
}
.pms-season-btn:hover { transform: scale(1.12); }
.pms-season-btn.pms-active {
  border-color: #222;
  box-shadow: 0 0 0 2px white, 0 0 0 4px #222;
  transform: scale(1.12);
}
.pms-season-btn .pms-tooltip { border-radius: 4px; }

/* Responsive */
@media(max-width:960px){
  .season-banner { padding: 12px 16px; }
  .season-banner-cta--desk { display: none; }
  .season-banner-text--desk { display: none; }
  .season-banner-text--mob { display: inline; }
  .season-promo { padding: 60px 24px; }
  .season-promo-content { grid-template-columns: 1fr; gap: 40px; }
}

/* ── SPECIALS PAGE SEASONAL ADDITIONS ── */
.specials-section{ padding:0 60px 80px; background:var(--cream); }
.specials-season-strip{
  background:var(--dark);
  padding:20px 60px;
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:background .6s;
}
.specials-season-strip-inner{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  max-width:1200px;margin:0 auto;
}
.specials-season-icon{ font-size:28px;flex-shrink:0; }
.specials-season-label{
  font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.4);margin-bottom:4px;
}
.specials-season-headline{
  font-family:var(--serif);font-size:20px;font-weight:300;color:white;
}
.specials-season-cta{
  margin-left:auto;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-light);text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:2px;
  white-space:nowrap;flex-shrink:0;transition:color .2s,border-color .2s;
}
.specials-season-cta:hover{ color:white;border-color:white; }

/* Hero/featured special card */
.special-card--hero{
  border-top:3px solid var(--gold);
  position:relative;
}
.special-card-ribbon{
  position:absolute;top:0;right:24px;
  background:var(--gold);color:white;
  font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  padding:4px 14px;transform:translateY(0);
}
@media(max-width:960px){
  .specials-season-strip,.specials-section{ padding-left:24px;padding-right:24px; }
  .specials-season-cta{ display:none; }
}

/* ============================================================
   HERO SLIDESHOW
   Full-bleed images, text on gradient overlay, crossfade transition
   ============================================================ */

/* Remove old hero styles that conflict */
.hero { display: none !important; }

/* Slider container */
.hero-slider {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
  background: var(--dark);
}

/* Individual slide */
.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.2s cubic-bezier(.4,0,.2,1);
  pointer-events: none;
  z-index: 1;
}
.hero-slide.active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}

/* Background image - full bleed, object-fit cover */
.hero-slide-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  /* CSS background-image - browser handles sizing perfectly */
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  /* Subtle Ken Burns zoom on active slide */
  transform: scale(1.04);
  transition: transform 6s cubic-bezier(.25,.46,.45,.94);
  /* Preload hint for background images */
  will-change: transform;
}
.hero-slide.active .hero-slide-bg {
  transform: scale(1);
}

/* Gradient overlay - left-heavy, image shows fully on right */
.hero-slide-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    rgba(28,24,18,0.72) 0%,
    rgba(28,24,18,0.45) 45%,
    rgba(28,24,18,0.08) 70%,
    rgba(28,24,18,0.0) 100%
  );
}

/* On mobile - stronger overlay so text is readable */
@media(max-width:768px) {
  .hero-slide-overlay {
    background: linear-gradient(
      180deg,
      rgba(28,24,18,0.55) 0%,
      rgba(28,24,18,0.65) 60%,
      rgba(28,24,18,0.75) 100%
    );
  }
}

/* Slide text content */
.hero-slide-content {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  padding: 0 8% 0 6%;
  max-width: 680px;
  /* Animate in when slide becomes active */
  opacity: 0;
  transform: translateY(calc(-50% + 20px));
  transition: opacity .8s ease .4s, transform .8s ease .4s;
}
.hero-slide.active .hero-slide-content {
  opacity: 1;
  transform: translateY(-50%);
}

/* Hero tag line */
.hero-slider .hero-tag {
  font-size: 10px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--gold-light);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  opacity: .9;
}
.hero-slider .hero-tag::before {
  content: '';
  display: block;
  width: 32px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

/* Hero heading */
.hero-slider h1 {
  font-family: var(--serif);
  font-size: clamp(44px, 6.5vw, 86px);
  font-weight: 300;
  line-height: 1.05;
  color: white;
  margin-bottom: 24px;
}
.hero-slider h1 em {
  font-style: italic;
  color: var(--gold-light);
}

/* Hero subtext */
.hero-slider .hero-sub {
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255,255,255,.75);
  max-width: 480px;
  margin-bottom: 40px;
}

/* CTA buttons */
.hero-slider .hero-btns {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 36px;
}
.hero-slider .btn-primary {
  background: var(--gold);
  color: white;
  padding: 16px 36px;
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-block;
  transition: background .3s, transform .2s;
  border: none;
  cursor: pointer;
  font-family: var(--sans);
}
.hero-slider .btn-primary:hover {
  background: var(--gold-light);
  transform: translateY(-1px);
}
.hero-slider .btn-ghost {
  color: rgba(255,255,255,.85);
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.4);
  padding-bottom: 2px;
  transition: color .2s, border-color .2s;
  font-family: var(--sans);
}
.hero-slider .btn-ghost:hover {
  color: white;
  border-color: white;
}

/* Trust badges row */
.hero-trust-badges {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.hero-trust-badge {
  font-size: 10px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  border: 1px solid rgba(255,255,255,.18);
  padding: 8px 16px;
  background: rgba(255,255,255,.04);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* Navigation arrows */
.hero-slider-nav {
  position: absolute;
  bottom: 40px;
  left: 6%;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 20px;
}
.hero-nav-btn {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.3);
  background: rgba(255,255,255,.08);
  color: white;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .25s;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  font-family: var(--sans);
}
.hero-nav-btn:hover {
  background: var(--gold);
  border-color: var(--gold);
}

/* Dot indicators */
.hero-dots {
  display: flex;
  gap: 8px;
  align-items: center;
}
.hero-dot {
  width: 28px;
  height: 2px;
  border: none;
  background: rgba(255,255,255,.3);
  cursor: pointer;
  transition: background .3s, width .3s;
  padding: 0;
}
.hero-dot.active {
  background: var(--gold);
  width: 48px;
}

/* Scroll indicator */
.hero-slider .hero-scroll {
  position: absolute;
  bottom: 44px;
  right: 6%;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  writing-mode: vertical-rl;
}
.hero-slider .hero-scroll-line {
  width: 1px;
  height: 52px;
  background: var(--gold);
  animation: scrollPulse 2s ease-in-out infinite;
}

/* Progress bar at top */
.hero-slider::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: 2px;
  background: var(--gold);
  z-index: 20;
  width: 0%;
  transition: none;
}
.hero-slider.progress::after {
  animation: heroProgress 5s linear forwards;
}
@keyframes heroProgress {
  from { width: 0%; }
  to   { width: 100%; }
}

/* Mobile */
@media(max-width:768px) {
  .hero-slider {
    min-height: 100svh;
  }
  .hero-slide-content {
    padding: 0 24px;
    max-width: 100%;
    top: auto;
    bottom: 120px;
    transform: none;
  }
  .hero-slide.active .hero-slide-content {
    transform: none;
  }
  .hero-slider h1 { font-size: clamp(38px, 9vw, 58px); }
  .hero-slider .hero-sub { font-size: 14px; max-width: 100%; }
  .hero-slider .hero-btns { gap: 14px; }
  .hero-trust-badges { display: none; }
  .hero-slider-nav { bottom: 80px; }
  .hero-slider .hero-scroll { display: none; }
  .hero-slide-bg img { object-position: 65% top; }
}

/* Mobile hero image focus - show face not body */
@media(max-width:768px) {
  .hero-slider .hero-slide:nth-child(1) .hero-slide-bg {
    background-position: 70% top;
  }
  .hero-slider .hero-slide:nth-child(2) .hero-slide-bg {
    background-position: 60% top;
  }
}

/* =====================================================================
   SERVICE PAGE ENHANCEMENTS — v2 (Trifecta-inspired rich layout)
   ===================================================================== */

/* ── Banner tagline ── */
.svc-banner-tagline{
  font-family:var(--serif);font-size:clamp(15px,1.8vw,20px);
  font-weight:300;font-style:italic;color:rgba(92,78,58,.7);
  margin-top:12px;letter-spacing:.02em;
}

/* ── HERO SPLIT ── */
.svc-hero-split{
  display:grid;grid-template-columns:1fr 1fr;min-height:560px;
}
.svc-hero-img-wrap{
  position:relative;overflow:hidden;
}
.svc-hero-img{
  width:100%;height:100%;object-fit:cover;object-position:top;
  transition:transform 6s ease;display:block;
}
.svc-hero-img-wrap:hover .svc-hero-img{transform:scale(1.04);}
.svc-hero-img-badge{
  position:absolute;bottom:24px;left:24px;
  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  padding:8px 16px;display:flex;align-items:center;gap:8px;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mid);
}
.svc-badge-dot{color:var(--gold);font-size:14px;}
.svc-hero-text{
  background:var(--cream2);padding:80px 64px;
  display:flex;flex-direction:column;justify-content:center;
}
.svc-hero-h2{
  font-family:var(--serif);font-size:clamp(28px,3.2vw,44px);
  font-weight:300;color:var(--dark);margin:16px 0 24px;line-height:1.1;
}
.svc-hero-intro{
  font-size:15px;line-height:1.9;color:var(--mid);margin-bottom:20px;
}
.svc-hero-excerpt{font-size:14px;line-height:1.85;color:var(--mid);}
.svc-hero-excerpt p{margin:0 0 12px;}
.svc-hero-actions{
  display:flex;align-items:center;gap:24px;margin-top:32px;flex-wrap:wrap;
}
.svc-editor-content{padding-top:60px;padding-bottom:60px;}

/* ── BENEFITS GRID ── */
.svc-benefits-section{
  background:var(--dark);padding:100px 60px;
}
.svc-benefits-inner{max-width:1200px;margin:0 auto;}
.svc-benefits-header{text-align:center;margin-bottom:64px;}
.svc-benefits-header h2{
  font-family:var(--serif);font-size:clamp(28px,3.5vw,48px);
  font-weight:300;color:white;
}
.svc-benefits-header h2 em{color:var(--gold-light);font-style:italic;}
.svc-benefits-header .section-label{color:var(--gold);}
.svc-benefits-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
}
.svc-benefit-item{
  background:rgba(255,255,255,.04);padding:40px 36px;
  border:1px solid rgba(255,255,255,.07);
  transition:background .3s,transform .3s;
  animation-delay:var(--delay,0ms);
}
.svc-benefit-item:hover{background:rgba(255,255,255,.08);transform:translateY(-2px);}
.svc-benefit-icon{
  font-size:18px;color:var(--gold);margin-bottom:16px;line-height:1;
}
.svc-benefit-item p{
  font-size:14px;line-height:1.8;color:rgba(255,255,255,.65);margin:0;
}

/* ── HOW IT WORKS ── */
.svc-process-section{background:var(--cream);padding:100px 60px;}
.svc-process-inner{max-width:1100px;margin:0 auto;}
.svc-process-header{text-align:center;margin-bottom:72px;}
.svc-process-header h2{
  font-family:var(--serif);font-size:clamp(28px,3.5vw,48px);font-weight:300;color:var(--dark);
}
.svc-process-header h2 em{font-style:italic;color:var(--gold);}
.svc-process-steps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;
}
.svc-step{
  padding:40px 32px;position:relative;
  border-top:2px solid var(--warm);
  animation-delay:var(--delay,0ms);
}
.svc-step-num{
  font-family:var(--serif);font-size:52px;font-weight:300;
  color:rgba(184,149,90,.2);line-height:1;margin-bottom:16px;
}
.svc-step-content h3{
  font-family:var(--serif);font-size:18px;font-weight:400;color:var(--dark);
  margin-bottom:12px;
}
.svc-step-content p{font-size:13px;line-height:1.85;color:var(--mid);}
.svc-step-line{
  position:absolute;top:2px;right:0;
  width:1px;height:60px;background:var(--gold);opacity:.3;
}

/* ── BEFORE / AFTER ── */
.svc-ba-section{background:var(--cream2);padding:100px 60px;}
.svc-ba-inner{max-width:1200px;margin:0 auto;}
.svc-ba-header{text-align:center;margin-bottom:56px;}
.svc-ba-header h2{
  font-family:var(--serif);font-size:clamp(28px,3.5vw,48px);font-weight:300;color:var(--dark);
}
.svc-ba-header h2 em{font-style:italic;color:var(--gold);}
.svc-ba-note{font-size:13px;color:var(--mid);margin-top:12px;}
.svc-ba-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:32px;
}
.svc-ba-pair{
  display:grid;grid-template-columns:1fr 1fr;gap:4px;
  animation-delay:var(--delay,0ms);
}
.svc-ba-img-wrap{position:relative;overflow:hidden;}
.svc-ba-img-wrap img{
  width:100%;height:320px;object-fit:cover;display:block;
  transition:transform .5s ease;
}
.svc-ba-img-wrap:hover img{transform:scale(1.04);}
.svc-ba-label{
  position:absolute;top:12px;left:12px;z-index:2;
  background:var(--dark);color:white;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  padding:4px 10px;
}
.svc-ba-label--after{background:var(--gold);color:white;}
.svc-ba-disclaimer{
  text-align:center;font-size:12px;color:rgba(92,78,58,.5);
  margin-top:32px;font-style:italic;
}

/* ── PRACTITIONER TRUST ── */
.svc-trust-section{background:white;padding:100px 60px;}
.svc-trust-inner{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:400px 1fr;gap:80px;align-items:center;
}
.svc-trust-img-placeholder{
  width:100%;aspect-ratio:3/4;background:var(--cream);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.svc-trust-placeholder-text{
  text-align:center;padding:40px;
}
.svc-trust-placeholder-text span{
  display:block;font-family:var(--serif);font-size:24px;
  font-weight:300;color:var(--dark);margin-bottom:8px;line-height:1.3;
}
.svc-trust-placeholder-text em{
  display:block;font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold);font-style:normal;
  margin-bottom:16px;
}
.svc-trust-placeholder-text small{
  display:block;font-size:11px;color:var(--mid);line-height:1.6;
}
.svc-trust-text-col h2{
  font-family:var(--serif);font-size:clamp(28px,3vw,44px);
  font-weight:300;color:var(--dark);margin:16px 0 24px;
}
.svc-trust-text-col h2 em{font-style:italic;color:var(--gold);}
.svc-trust-text-col p{font-size:15px;line-height:1.9;color:var(--mid);margin-bottom:16px;}
.svc-trust-creds{margin-top:32px;display:flex;flex-direction:column;gap:10px;}
.svc-trust-cred{
  font-size:13px;color:var(--dark);display:flex;align-items:center;gap:10px;
}
.svc-cred-dot{color:var(--gold);font-size:10px;flex-shrink:0;}

/* ── RELATED SERVICES ── */
.svc-related-section{background:var(--cream2);padding:100px 60px;}
.svc-related-inner{max-width:1200px;margin:0 auto;}
.svc-related-header{text-align:center;margin-bottom:56px;}
.svc-related-header h2{
  font-family:var(--serif);font-size:clamp(28px,3.5vw,48px);font-weight:300;color:var(--dark);
}
.svc-related-header h2 em{font-style:italic;color:var(--gold);}
.svc-related-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
}
.svc-related-card{
  background:var(--cream);padding:48px 40px;text-decoration:none;
  color:inherit;display:block;position:relative;overflow:hidden;
  transition:transform .3s,background .3s;
  animation-delay:var(--delay,0ms);
}
.svc-related-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:2px;background:var(--gold);transform:scaleX(0);
  transform-origin:left;transition:transform .5s cubic-bezier(.25,.46,.45,.94);
}
.svc-related-card:hover::after{transform:scaleX(1);}
.svc-related-card:hover{transform:translateY(-2px);background:white;}
.svc-related-emoji{font-size:32px;margin-bottom:16px;line-height:1;}
.svc-related-tag{
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);margin-bottom:12px;
}
.svc-related-card h3{
  font-family:var(--serif);font-size:20px;font-weight:400;
  color:var(--dark);margin-bottom:20px;line-height:1.3;
}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .svc-process-steps{grid-template-columns:repeat(2,1fr);}
  .svc-step-line{display:none;}
  .svc-trust-inner{grid-template-columns:1fr 1fr;gap:48px;}
  .svc-benefits-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:960px){
  .svc-hero-split{grid-template-columns:1fr;}
  .svc-hero-img-wrap{height:360px;}
  .svc-hero-img{height:360px;}
  .svc-hero-text{padding:60px 40px;}
  .svc-benefits-section,.svc-process-section,.svc-ba-section,
  .svc-trust-section,.svc-related-section{padding:60px 24px;}
  .svc-trust-inner{grid-template-columns:1fr;gap:40px;}
  .svc-trust-img-placeholder{aspect-ratio:16/9;max-height:360px;}
  .svc-ba-grid{grid-template-columns:1fr;}
  .svc-related-grid{grid-template-columns:1fr;}
  .svc-process-steps{grid-template-columns:1fr;}
  .svc-benefits-grid{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .svc-hero-text{padding:48px 24px;}
  .svc-hero-actions{flex-direction:column;align-items:flex-start;gap:16px;}
  .svc-ba-pair{grid-template-columns:1fr;}
}

/* =====================================================================
   TREATMENTS SECTION — Face / Body photo tile grid (Trifecta-inspired)
   ===================================================================== */

.pms-treatments {
  background: var(--cream);
}

/* Section header */
.pms-treatments-header {
  text-align: center;
  padding: 80px 60px 48px;
}
.pms-treatments-header h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 56px);
  font-weight: 300;
  color: var(--dark);
}
.pms-treatments-header h2 em { font-style: italic; color: var(--gold); }

/* Category block */
.pms-category { padding: 0 0 4px; }
.pms-category--dark { background: var(--dark); }

/* Category label — big letter like Trifecta F / B */
.pms-category-label {
  padding: 40px 60px 28px;
  display: flex;
  align-items: baseline;
  gap: 0;
}
.pms-category--dark .pms-category-label { padding-top: 48px; }
.pms-cat-letter {
  font-family: var(--serif);
  font-size: clamp(60px, 8vw, 110px);
  font-weight: 300;
  line-height: 1;
  color: var(--dark);
  letter-spacing: -.02em;
}
.pms-category--dark .pms-cat-letter { color: white; }
.pms-cat-word {
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 300;
  color: var(--dark);
  letter-spacing: -.01em;
  margin-right: 12px;
}
.pms-category--dark .pms-cat-word { color: white; }
.pms-cat-sub {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 6px;
}

/* Photo tile grid */
.pms-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3px;
  padding: 0 3px 3px;
}

/* Individual tile */
.pms-tile {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  text-decoration: none;
  display: block;
  background-color: var(--dark);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  cursor: pointer;
  transition: background-size .8s cubic-bezier(.25,.46,.45,.94);
}
.pms-tile--lg { aspect-ratio: 4/3; }
.pms-tile:hover { background-size: 107%; }

/* Gradient overlay — darkens heavily on hover to make text legible */
.pms-tile-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(14,10,6,.92) 0%,
    rgba(14,10,6,.45) 45%,
    rgba(14,10,6,.10) 100%
  );
  transition: background .45s ease;
}
.pms-tile:hover .pms-tile-overlay {
  background: linear-gradient(
    to top,
    rgba(14,10,6,.97) 0%,
    rgba(14,10,6,.80) 50%,
    rgba(14,10,6,.50) 100%
  );
}

/* Text content — always pinned bottom, desc + cta hidden until hover */
.pms-tile-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 28px 24px;
  z-index: 2;
}

/* Sub-label (category tag) */
.pms-tile-sub {
  display: block;
  font-family: var(--sans);
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .35s ease .05s, transform .35s ease .05s;
}
.pms-tile:hover .pms-tile-sub {
  opacity: 1;
  transform: translateY(0);
}

/* Title — always visible */
.pms-tile-content h3 {
  font-family: var(--serif);
  font-size: clamp(16px, 1.5vw, 22px);
  font-weight: 300;
  color: white;
  margin: 0 0 0;
  line-height: 1.2;
  letter-spacing: .01em;
  transition: transform .4s ease, margin .4s ease;
}
.pms-tile:hover .pms-tile-content h3 {
  margin-bottom: 12px;
}

/* Description — hidden, slides up on hover */
.pms-tile-desc {
  font-family: var(--sans);
  font-size: 13px;
  line-height: 1.75;
  color: rgba(255,255,255,.75);
  margin: 0 0 16px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(10px);
  transition: max-height .45s ease, opacity .4s ease .08s, transform .4s ease .08s;
}
.pms-tile:hover .pms-tile-desc {
  max-height: 120px;
  opacity: 1;
  transform: translateY(0);
}

/* Learn More CTA */
.pms-tile-cta {
  display: inline-block;
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .35s ease .15s, transform .35s ease .15s;
}
.pms-tile:hover .pms-tile-cta {
  opacity: 1;
  transform: translateY(0);
}

/* Gold accent line — sweeps in from left on hover */
.pms-tile::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s cubic-bezier(.25,.46,.45,.94);
  z-index: 3;
}
.pms-tile:hover::after { transform: scaleX(1); }

/* Bottom CTA row */
.pms-treatments-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 64px 60px;
  background: var(--cream);
  flex-wrap: wrap;
}
.btn-outline {
  display: inline-block;
  padding: 14px 36px;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .25s, color .25s;
}
.btn-outline:hover { background: var(--gold); color: white; }

/* ── Responsive ── */
@media(max-width: 1100px) {
  .pms-grid { grid-template-columns: repeat(3, 1fr); }
}
@media(max-width: 768px) {
  .pms-grid { grid-template-columns: repeat(2, 1fr); gap: 2px; padding: 0 2px 2px; }
  .pms-category-label { padding: 32px 24px 20px; }
  .pms-treatments-header { padding: 60px 24px 36px; }
  .pms-treatments-cta { padding: 48px 24px; flex-direction: column; }
  .pms-tile-content { padding: 18px 16px; }
  .pms-tile-content h3 { font-size: 14px; }
}
@media(max-width: 480px) {
  .pms-grid { grid-template-columns: repeat(2, 1fr); }
  .pms-tile { aspect-ratio: 1/1; }
  .pms-tile--lg { aspect-ratio: 1/1; }
}

/* Hide theme/season picker everywhere — desktop client review only via localhost */
.pms-theme-picker,
.pms-color-bar,
.pms-season-btn,
.pms-season-divider,
.pms-season-picker-label,
.pms-picker-label,
.pms-swatch,
body.pms-picker-active .pms-theme-picker,
body.pms-picker-active .pms-color-bar {
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* Service tile image — mobile responsive refinements */
@media(max-width:768px){
  .pms-tile-bg {
    background-position: center center;
  }
  .pms-tile-content { padding:14px 14px 16px; }
  .pms-tile-content h3 { font-size:13px; letter-spacing:.02em; }
  .pms-tile-desc { display:none; } /* hide desc on mobile — too small */
  .pms-tile-cta { display:none; }
  .pms-tile-sub { font-size:8px; margin-bottom:5px; }
}
@media(max-width:480px){
  .pms-grid { grid-template-columns:repeat(2,1fr); gap:2px; }
  .pms-tile, .pms-tile--lg { aspect-ratio:4/3; }
  .pms-tile-content h3 { font-size:12px; }
}

/* ── Seasonal promo — background photo support ── */
.season-promo {
  position: relative;
  background-color: var(--dark);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.season-promo-bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(14,10,6,.95) 0%,
    rgba(14,10,6,.88) 40%,
    rgba(14,10,6,.65) 70%,
    rgba(14,10,6,.40) 100%
  );
  z-index: 0;
}
.season-promo-content {
  position: relative;
  z-index: 1;
}

/* ── Season promo — mobile only refinements ── */
@media(max-width:768px){
  /* Lighten overlay so background photo shows through more */
  .season-promo-bg-overlay {
    background: linear-gradient(
      to bottom,
      rgba(14,10,6,.70) 0%,
      rgba(14,10,6,.60) 50%,
      rgba(14,10,6,.75) 100%
    ) !important;
  }

  /* Tighten padding */
  .season-promo { padding: 40px 20px 36px; }
  .season-promo-content { gap: 20px; }

  /* Shorter badge */
  .season-promo-badge { padding: 5px 12px; font-size: 9px; margin-bottom: 10px; }

  /* Smaller headline */
  .season-promo-left h2 { font-size: clamp(22px, 7vw, 30px); margin-bottom: 10px; }

  /* Hide the long description on mobile — just show headline + button */
  .season-promo-left p { display: none; }

  /* Compact CTA */
  .season-promo-left .btn-primary { margin-top: 16px; padding: 12px 28px; font-size: 10px; }

  /* Hide the featured service card + season dots on mobile — too cluttered */
  .season-promo-right { display: none; }
}

/* ── Season promo — fix background image zoom on mobile ── */
@media(max-width:768px){
  .season-promo {
    background-size: 160% auto !important;
    background-position: center 20% !important;
  }
}

/* =====================================================================
   MEGA MENU — Desktop only (hidden on mobile via media query)
   ===================================================================== */

/* Trigger item */
.nav-has-mega { position: relative; }
.nav-mega-trigger { cursor: pointer; }
.nav-chevron {
  font-size: 12px; line-height: 1;
  transition: transform .25s ease;
  display: inline-block;
  vertical-align: middle;
  margin-left: 4px;
}
.nav-has-mega.mega-open .nav-chevron { transform: rotate(180deg); }

/* Mega panel — JS controlled via .mega-open class */
.nav-mega {
  position: absolute;
  top: 100%; /* flush to nav bottom — no gap */
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  width: 720px;
  background: var(--dark, #1C1812);
  border-top: 2px solid var(--gold, #B8955A);
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease, transform .22s ease;
  z-index: 999;
}
.nav-has-mega.mega-open .nav-mega {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

/* Inner grid — 3 columns */
.nav-mega-inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  padding: 36px 0 32px;
}

/* Column */
.nav-mega-col {
  padding: 0 32px;
  border-right: 1px solid rgba(255,255,255,.07);
}
.nav-mega-col:last-child { border-right: none; }

/* Category heading — big letter style */
.nav-mega-heading {
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-size: 22px;
  font-weight: 300;
  color: white;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.1);
  letter-spacing: .01em;
}
.nav-mega-letter {
  font-size: 32px;
  color: var(--gold, #B8955A);
  line-height: 1;
}

/* Service links */
.nav-mega-col ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.nav-mega-col ul li a {
  display: block;
  font-family: var(--sans, 'Jost', sans-serif);
  font-size: 12px;
  letter-spacing: .08em;
  color: rgba(255,255,255,.6);
  text-decoration: none;
  padding: 6px 0;
  transition: color .2s, padding-left .2s;
  border-bottom: none;
  text-transform: none;
}
.nav-mega-col ul li a:hover {
  color: var(--gold, #B8955A);
  padding-left: 6px;
}

/* CTA column */
.nav-mega-col--cta p {
  font-size: 12px;
  line-height: 1.7;
  color: rgba(255,255,255,.45);
  margin-bottom: 20px;
}
.nav-mega-cta-btn {
  display: block;
  background: var(--gold, #B8955A);
  color: white !important;
  font-family: var(--sans, 'Jost', sans-serif);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-align: center;
  padding: 12px 16px;
  text-decoration: none;
  margin-bottom: 12px;
  transition: background .25s;
}
.nav-mega-cta-btn:hover { background: var(--gold-light, #D4B483) !important; }
.nav-mega-all {
  display: block;
  font-family: var(--sans, 'Jost', sans-serif);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4) !important;
  text-decoration: none;
  text-align: center;
  transition: color .2s;
}
.nav-mega-all:hover { color: white !important; }

/* ── MOBILE — hide mega completely, keep simple link ── */
@media(max-width:960px){
  .nav-mega { display: none !important; }
  .nav-chevron { display: none; }
  .nav-mega-trigger { pointer-events: none; }
}

/* =====================================================================
   SHOP NOW SCROLLER — Skinney-style horizontal package cards
   ===================================================================== */
.shop-scroller {
  background: white;
  padding: 56px 0 64px;
  position: relative;
  overflow: hidden;
}

/* Header divider */
.shop-scroller-header {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 0 60px;
  margin-bottom: 36px;
}
.shop-scroller-line {
  flex: 1;
  height: 1px;
  background: rgba(0,0,0,.12);
}
.shop-scroller-label {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--mid);
  white-space: nowrap;
}

/* Track wrapper — enables horizontal scroll */
.shop-track-wrap {
  overflow-x: scroll;
  overflow-y: hidden;
  padding: 0 60px 16px;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}
.shop-track-wrap::-webkit-scrollbar { display: none; }
.shop-track-wrap:active { cursor: grabbing; }
.shop-track-wrap::-webkit-scrollbar { display: none; }

/* Track — flex row */
.shop-track {
  display: flex;
  gap: 20px;
  width: max-content;
  padding-bottom: 4px;
}

/* Individual card */
.shop-card {
  display: block;
  text-decoration: none;
  width: 240px;
  flex-shrink: 0;
  cursor: pointer;
  transition: transform .3s ease;
}
.shop-card:hover { transform: translateY(-3px); }

/* Image wrapper */
.shop-card-img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  background: var(--cream);
}
.shop-card-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform .5s ease;
}
.shop-card:hover .shop-card-img-wrap img { transform: scale(1.04); }

/* Badge */
.shop-card-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--gold);
  color: white;
  font-family: var(--sans);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 4px 10px;
}

/* Info below image */
.shop-card-info {
  padding: 14px 4px 0;
}
.shop-card-info h3 {
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 400;
  color: var(--dark);
  margin: 0 0 6px;
  letter-spacing: .02em;
}
.shop-card-price {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.shop-orig {
  font-family: var(--sans);
  font-size: 12px;
  color: rgba(0,0,0,.35);
  text-decoration: line-through;
}
.shop-now {
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 500;
  color: var(--gold);
}
.shop-card-arrow {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(0,0,0,.35);
  transition: color .2s;
}
.shop-card:hover .shop-card-arrow { color: var(--gold); }

/* Scroll arrows */
.shop-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-30%);
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,.15);
  background: white;
  color: var(--dark);
  font-size: 18px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, border-color .2s;
  z-index: 2;
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
}
.shop-arrow:hover { background: var(--gold); color: white; border-color: var(--gold); }
.shop-arrow--prev { left: 12px; }
.shop-arrow--next { right: 12px; }

/* Mobile */
@media(max-width:768px){
  .shop-scroller-header { padding: 0 20px; }
  .shop-track-wrap { padding: 0 20px 16px; overflow-x: scroll !important; }
  .shop-arrow { display: none; }
}
@media(max-width:560px){
  .specials-grid .shop-card { width: 100%; }
}

/* Shop card name subtitle */
.shop-card-info h3 small {
  display: block;
  font-size: 11px;
  font-weight: 300;
  color: rgba(0,0,0,.45);
  letter-spacing: .04em;
  margin-top: 2px;
}

/* ── Nav alignment fix — all items same baseline ── */
.nav-links { align-items: center; }
/* li stays a normal list-item so the trigger shares the same
   inline baseline as the sibling links (flex here lifted it) */
.nav-mega-trigger {
  display: inline;
  line-height: inherit;
  font-size: inherit;
  font-family: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  padding: 0;
  margin: 0;
  background: none;
  border: none;
}

/* ── Footer — mobile: hide only logo/bio/social brand block ── */
@media(max-width:768px){
  .footer-brand {
    display: none !important;
  }
  .footer-bottom {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    padding: 20px 24px 90px; /* 90px clears the mobile sticky bar */
  }
  .footer-bottom span {
    font-size: 11px;
  }
  .footer-legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
  }
  .footer-legal a {
    font-size: 11px;
  }
}

/* =====================================================================
   GLOWTOX-STYLE SERVICE PAGE — Kybella (page-kybella.php)
   ===================================================================== */

/* ── HERO ── */
.gt-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 92vh;
  background: var(--cream);
}
.gt-hero-text {
  padding: 120px 72px 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.gt-hero-tag {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 20px;
}
.gt-hero-h1 {
  font-family: var(--serif);
  font-size: clamp(52px, 7vw, 96px);
  font-weight: 300;
  color: var(--dark);
  line-height: .95;
  margin: 0 0 28px;
  letter-spacing: -.02em;
}
.gt-hero-sub {
  font-size: 16px;
  line-height: 1.8;
  color: var(--mid);
  max-width: 480px;
  margin-bottom: 36px;
}
.gt-hero-meta {
  display: flex;
  gap: 0;
  border: 1px solid rgba(0,0,0,.1);
  margin-bottom: 40px;
  width: fit-content;
}
.gt-meta-item {
  padding: 16px 24px;
  border-right: 1px solid rgba(0,0,0,.1);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.gt-meta-item:last-child { border-right: none; }
.gt-meta-label {
  font-family: var(--sans);
  font-size: 8px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(0,0,0,.4);
}
.gt-meta-val {
  font-family: var(--serif);
  font-size: 15px;
  font-weight: 400;
  color: var(--dark);
}
.gt-hero-ctas {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* Shared buttons */
.gt-btn-primary {
  display: inline-block;
  background: var(--dark);
  color: white;
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: 16px 40px;
  text-decoration: none;
  transition: background .25s, color .25s;
}
.gt-btn-primary:hover { background: var(--gold); color: white; }
.gt-btn-ghost {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--mid);
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.2);
  padding-bottom: 2px;
  transition: color .2s, border-color .2s;
}
.gt-btn-ghost:hover { color: var(--gold); border-color: var(--gold); }
.gt-btn-outline {
  display: inline-block;
  border: 1px solid white;
  color: white;
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: 16px 36px;
  text-decoration: none;
  transition: background .25s, color .25s;
}
.gt-btn-outline:hover { background: white; color: var(--dark); }

/* Hero image */
.gt-hero-img {
  position: relative;
  overflow: hidden;
}
.gt-hero-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 8s ease;
}
.gt-hero-img:hover img { transform: scale(1.03); }
.gt-hero-badge {
  position: absolute;
  bottom: 32px;
  left: -1px;
  background: var(--dark);
  color: var(--gold);
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: 10px 20px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── SECTION TAG (shared) ── */
.gt-section-tag {
  font-family: var(--sans);
  font-size: 9px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--gold);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.gt-section-tag::before {
  content: '';
  display: block;
  width: 28px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

/* ── INTRO ── */
.gt-intro {
  background: white;
  padding: 100px 72px;
}
.gt-intro-inner { max-width: 1100px; margin: 0 auto; }
.gt-intro-label {
  font-family: var(--sans);
  font-size: 9px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 20px;
}
.gt-intro-h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 54px);
  font-weight: 300;
  color: var(--dark);
  margin: 0 0 48px;
  line-height: 1.1;
}
.gt-intro-h2 em { font-style: italic; color: var(--gold); }
.gt-intro-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}
.gt-intro-cols p {
  font-size: 15px;
  line-height: 1.9;
  color: var(--mid);
  margin: 0;
}

/* ── FULL-WIDTH PHOTO ── */
.gt-full-photo {
  position: relative;
  height: 520px;
  overflow: hidden;
}
.gt-full-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
}
.gt-full-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(14,10,6,.85) 0%, rgba(14,10,6,.5) 60%, rgba(14,10,6,.2) 100%);
  display: flex;
  align-items: center;
  gap: 80px;
  padding: 0 80px;
}
.gt-full-photo-stat { color: white; }
.gt-stat-num {
  display: block;
  font-family: var(--serif);
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 300;
  color: var(--gold-light);
  line-height: 1;
  margin-bottom: 10px;
}
.gt-stat-label {
  display: block;
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.5;
  color: rgba(255,255,255,.7);
  max-width: 200px;
}

/* ── BENEFITS SPLIT ── */
.gt-benefits-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--cream);
  min-height: 640px;
}
.gt-benefits-text {
  padding: 100px 72px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.gt-benefits-text h2 {
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 46px);
  font-weight: 300;
  color: var(--dark);
  margin: 0 0 24px;
  line-height: 1.15;
}
.gt-benefits-text h2 em { font-style: italic; color: var(--gold); }
.gt-benefits-text > p {
  font-size: 15px;
  line-height: 1.85;
  color: var(--mid);
  margin-bottom: 36px;
}
.gt-benefits-list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.gt-benefit {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--mid);
  animation-delay: var(--delay, 0ms);
}
.gt-check {
  color: var(--gold);
  font-size: 12px;
  margin-top: 2px;
  flex-shrink: 0;
}
.gt-benefits-img {
  position: relative;
  overflow: hidden;
}
.gt-benefits-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 6s ease;
}
.gt-benefits-img:hover img { transform: scale(1.04); }

/* ── WHY CHOOSE ── */
.gt-why {
  background: var(--dark);
  padding: 100px 72px;
}
.gt-why-inner { max-width: 1200px; margin: 0 auto; }
.gt-why-h2 {
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 300;
  color: white;
  text-align: center;
  margin: 0 0 16px;
}
.gt-why-h2 em { font-style: italic; color: var(--gold-light); }
.gt-why-sub {
  font-size: 14px;
  line-height: 1.8;
  color: rgba(255,255,255,.5);
  text-align: center;
  max-width: 600px;
  margin: 0 auto 64px;
}
.gt-why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}
.gt-why-card {
  background: rgba(255,255,255,.04);
  padding: 44px 36px;
  border: 1px solid rgba(255,255,255,.06);
  transition: background .3s;
  animation-delay: var(--delay, 0ms);
}
.gt-why-card:hover { background: rgba(255,255,255,.08); }
.gt-why-icon {
  font-size: 22px;
  color: var(--gold);
  margin-bottom: 20px;
  line-height: 1;
}
.gt-why-card h3 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
  color: white;
  margin: 0 0 12px;
}
.gt-why-card p {
  font-size: 13px;
  line-height: 1.8;
  color: rgba(255,255,255,.5);
  margin: 0;
}

/* ── PROCESS ── */
.gt-process {
  background: white;
  padding: 100px 72px;
}
.gt-process-inner { max-width: 1100px; margin: 0 auto; }
.gt-process-inner h2 {
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 300;
  color: var(--dark);
  margin: 0 0 64px;
}
.gt-process-inner h2 em { font-style: italic; color: var(--gold); }
.gt-process-steps {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.gt-step {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 32px;
  padding: 36px 0;
  border-bottom: 1px solid var(--light, #EDE6DC);
  align-items: start;
  animation-delay: var(--delay, 0ms);
}
.gt-step:last-child { border-bottom: none; }
.gt-step-num {
  font-family: var(--serif);
  font-size: 44px;
  font-weight: 300;
  color: rgba(184,149,90,.25);
  line-height: 1;
  padding-top: 4px;
}
.gt-step-body h3 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
  color: var(--dark);
  margin: 0 0 10px;
}
.gt-step-body p {
  font-size: 14px;
  line-height: 1.85;
  color: var(--mid);
  margin: 0;
}

/* ── TESTIMONIALS ── */
.gt-reviews {
  background: var(--cream2);
  padding: 100px 72px;
}
.gt-reviews-inner { max-width: 1200px; margin: 0 auto; }
.gt-reviews-h2 {
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 300;
  color: var(--dark);
  margin: 0 0 56px;
  text-align: center;
}
.gt-reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.gt-review-card {
  background: white;
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  animation-delay: var(--delay, 0ms);
}
.gt-review-stars {
  color: var(--gold);
  font-size: 13px;
  letter-spacing: 2px;
}
.gt-review-text {
  font-family: var(--serif);
  font-size: 15px;
  font-style: italic;
  line-height: 1.8;
  color: var(--dark);
  margin: 0;
  flex: 1;
}
.gt-review-author {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid var(--cream2);
}
.gt-review-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--cream);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--sans);
  font-size: 11px;
  color: var(--mid);
  flex-shrink: 0;
}
.gt-review-name {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  color: var(--dark);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.gt-review-treat {
  font-family: var(--sans);
  font-size: 11px;
  color: var(--gold);
  margin-top: 2px;
}

/* ── FAQ ── */
.gt-faq {
  background: white;
  padding: 100px 72px;
}
.gt-faq-inner { max-width: 800px; margin: 0 auto; }
.gt-faq-inner h2 {
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 300;
  color: var(--dark);
  margin: 0 0 56px;
}
.gt-faq-inner h2 em { font-style: italic; color: var(--gold); }
.gt-faq-list { display: flex; flex-direction: column; }
.gt-faq-item { border-bottom: 1px solid var(--cream2); }
.gt-faq-q {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 24px 0;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--dark);
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  letter-spacing: .02em;
  transition: color .2s;
}
.gt-faq-q:hover { color: var(--gold); }
.gt-faq-icon {
  width: 28px; height: 28px;
  border: 1px solid rgba(0,0,0,.2);
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
  transition: background .2s, border-color .2s;
}
.gt-faq-icon::before,
.gt-faq-icon::after {
  content: '';
  position: absolute;
  background: var(--dark);
  transition: transform .3s ease, opacity .3s ease;
}
.gt-faq-icon::before { width: 10px; height: 1px; top: 50%; left: 50%; transform: translate(-50%,-50%); }
.gt-faq-icon::after  { width: 1px; height: 10px; top: 50%; left: 50%; transform: translate(-50%,-50%); }
.gt-faq-item.open .gt-faq-icon::after { transform: translate(-50%,-50%) rotate(90deg); opacity: 0; }
.gt-faq-item.open .gt-faq-icon { background: var(--gold); border-color: var(--gold); }
.gt-faq-item.open .gt-faq-icon::before { background: white; }
.gt-faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s ease;
}
.gt-faq-item.open .gt-faq-a { max-height: 300px; }
.gt-faq-a p {
  font-size: 14px;
  line-height: 1.85;
  color: var(--mid);
  padding-bottom: 24px;
  margin: 0;
}

/* ── RELATED ── */
.gt-related {
  background: var(--cream);
  padding: 100px 72px;
}
.gt-related-inner { max-width: 1200px; margin: 0 auto; }
.gt-related-inner h2 {
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 300;
  color: var(--dark);
  margin: 0 0 56px;
}
.gt-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.gt-related-card {
  text-decoration: none;
  color: inherit;
  display: block;
  transition: transform .3s;
}
.gt-related-card:hover { transform: translateY(-3px); }
.gt-related-img {
  aspect-ratio: 4/3;
  overflow: hidden;
  margin-bottom: 20px;
}
.gt-related-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform .5s ease;
}
.gt-related-card:hover .gt-related-img img { transform: scale(1.04); }
.gt-related-tag {
  font-family: var(--sans);
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 8px;
}
.gt-related-body h3 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
  color: var(--dark);
  margin: 0 0 8px;
}
.gt-related-body p {
  font-size: 13px;
  line-height: 1.7;
  color: var(--mid);
  margin: 0 0 14px;
}
.gt-related-arrow {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
}

/* ── BOOKING CTA ── */
.gt-book-cta {
  background: var(--dark);
  padding: 0;
  overflow: hidden;
}
.gt-book-cta-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 520px;
}
.gt-book-text {
  padding: 100px 72px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.gt-book-text h2 {
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 300;
  color: white;
  margin: 0 0 20px;
  line-height: 1.2;
}
.gt-book-text h2 em { font-style: italic; color: var(--gold-light); }
.gt-book-text p {
  font-size: 14px;
  line-height: 1.85;
  color: rgba(255,255,255,.55);
  margin: 0 0 36px;
}
.gt-book-cta-btns {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.gt-book-img {
  position: relative;
  overflow: hidden;
}
.gt-book-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  opacity: .6;
  transition: opacity .5s, transform 6s;
}
.gt-book-img:hover img { opacity: .75; transform: scale(1.03); }

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .gt-why-grid { grid-template-columns: repeat(2,1fr); }
  .gt-reviews-grid { grid-template-columns: repeat(2,1fr); }
  .gt-related-grid { grid-template-columns: repeat(2,1fr); }
}
@media(max-width:900px){
  .gt-hero { grid-template-columns: 1fr; min-height: auto; }
  .gt-hero-img { height: 60vw; }
  .gt-hero-text { padding: 80px 32px 60px; }
  .gt-intro { padding: 64px 32px; }
  .gt-intro-cols { grid-template-columns: 1fr; gap: 24px; }
  .gt-full-photo { height: 300px; }
  .gt-full-photo-overlay { flex-direction: column; gap: 24px; padding: 32px; align-items: flex-start; }
  .gt-benefits-split { grid-template-columns: 1fr; }
  .gt-benefits-text { padding: 64px 32px; }
  .gt-benefits-img { height: 60vw; }
  .gt-why { padding: 64px 32px; }
  .gt-why-grid { grid-template-columns: 1fr; }
  .gt-process { padding: 64px 32px; }
  .gt-reviews { padding: 64px 32px; }
  .gt-reviews-grid { grid-template-columns: 1fr; }
  .gt-faq { padding: 64px 32px; }
  .gt-related { padding: 64px 32px; }
  .gt-related-grid { grid-template-columns: 1fr; }
  .gt-book-cta-inner { grid-template-columns: 1fr; }
  .gt-book-img { height: 50vw; }
  .gt-book-text { padding: 64px 32px; }
  .gt-hero-meta { flex-wrap: wrap; }
}

/* ── Shop cards — custom banner images (contain, don't crop) ── */
.shop-card-img-wrap img {
  object-fit: cover;
  object-position: center top;
}

/* ============================================================
   HERO SLIDER — moved from front-page.php inline <style>
   ============================================================ */
#pmsHero{position:relative;width:100%;height:calc(100vh - 80px);min-height:560px;overflow:hidden;background:#1c1812}
#pmsHero .sl{position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;transition:opacity 1s ease;z-index:1}
#pmsHero .sl.on{opacity:1;z-index:2}
#pmsHero .sl-bg{position:absolute;top:0;left:0;right:0;bottom:0;background-size:cover;background-position:center top;background-repeat:no-repeat;transform:scale(1.05);transition:transform 7s ease;z-index:0}
#pmsHero .sl.on .sl-bg{transform:scale(1)}
#pmsHero .sl-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,rgba(20,16,10,.85) 0%,rgba(20,16,10,.6) 38%,rgba(20,16,10,.18) 62%,rgba(20,16,10,0) 100%)}
#pmsHero .sl-ct{position:absolute;top:0;bottom:0;left:0;z-index:3;padding:0 8%;width:55%;max-width:640px;display:flex;flex-direction:column;justify-content:center;opacity:0;transform:translateY(16px);transition:opacity .8s ease .5s,transform .8s ease .5s}
#pmsHero .sl.on .sl-ct{opacity:1;transform:translateY(0)}
#pmsHero .sl-tag{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#D4B483;margin-bottom:20px}
#pmsHero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,4.2vw,68px);font-weight:300;line-height:1.08;color:#ffffff;margin:0 0 28px;letter-spacing:-.01em;white-space:nowrap}
#pmsHero h1 em{font-style:italic;color:#D4B483;display:block;white-space:nowrap}
#pmsHero .sl-sub{font-family:'Jost',sans-serif;font-size:15px;line-height:1.8;color:rgba(255,255,255,.72);margin-bottom:36px;max-width:440px}
#pmsHero .sl-cta{display:inline-block;background:#B8955A;color:#fff;padding:15px 36px;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;border:none;cursor:pointer;transition:background .25s,transform .2s;margin-right:20px}
#pmsHero .sl-cta:hover{background:#D4B483;transform:translateY(-1px)}
#pmsHero .sl-cta2{display:inline-block;color:rgba(255,255,255,.78);font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px;transition:color .2s}
#pmsHero .sl-cta2:hover{color:#fff;border-color:#fff}
#pmsNav{position:absolute;bottom:36px;left:8%;z-index:10;display:flex;align-items:center;gap:12px}
.pms-dot{width:32px;height:2px;background:rgba(255,255,255,.22);border:none;cursor:pointer;padding:0;transition:all .35s}
.pms-dot.on{background:#B8955A;width:52px}
#pmsScrollHint{position:absolute;bottom:40px;right:6%;z-index:10;display:flex;flex-direction:column;align-items:center;gap:8px;font-family:'Jost',sans-serif;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.35)}
#pmsScrollLine{width:1px;height:44px;background:#B8955A;animation:scrollPulse 2s ease-in-out infinite}
@media(max-width:960px){
  #pmsHero{height:62svh;min-height:460px}
  #pmsHero .sl-bg{background-position:center 22%}
  #pmsHero .sl-bg::after{background:linear-gradient(to top,rgba(20,16,10,.92) 0%,rgba(20,16,10,.55) 45%,rgba(20,16,10,.12) 100%)}
  #pmsHero .sl-ct{width:100%;max-width:100%;padding:0 24px;justify-content:flex-end;padding-bottom:90px}
  #pmsHero h1{font-size:clamp(28px,7.5vw,46px);white-space:normal;color:rgba(255,255,255,.85);text-shadow:0 2px 18px rgba(0,0,0,.55),0 1px 4px rgba(0,0,0,.5)}
  #pmsHero h1 em{white-space:normal}
  #pmsHero .sl-sub{font-size:13px;max-width:100%;text-shadow:0 1px 10px rgba(0,0,0,.5)}
  #pmsHero .sl-cta{background:transparent;border:1px solid rgba(255,255,255,.65);border-radius:40px;color:#fff}
  #pmsHero .sl-cta:hover{background:rgba(255,255,255,.12);border-color:#fff}
  #pmsHero .sl-ct--light .sl-cta{border-color:rgba(28,24,18,.55);color:#1C1812}
  #pmsHero .sl-ct--light .sl-cta:hover{background:rgba(28,24,18,.08);border-color:#1C1812}
  #pmsNav{bottom:16px;left:24px}
  #pmsScrollHint{display:none}
}
@media(max-width:600px){
  #pmsHero h1{font-size:clamp(30px,7.5vw,48px);white-space:normal}
  #pmsHero h1 em{white-space:normal}
  #pmsHero .sl-ct{align-items:stretch;width:100%}
  #pmsHero .sl-sub,#pmsHero .sl-sub--dark{width:100%;max-width:100%;font-size:15px;line-height:1.7}
  #pmsHero p{width:100%;max-width:100%}
}

/* ============================================================
   TREATMENTS GRID — moved from front-page.php inline <style>
   ============================================================ */
.pms-treatments{background:var(--cream,#F9F5F0)}
.pms-treatments-header{text-align:center;padding:60px 60px 32px;display:flex;flex-direction:column;align-items:center}
.pms-treatments-header h2{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,4vw,56px);font-weight:300;color:var(--dark,#1C1812);margin:0}
.pms-treatments-header .section-label{justify-content:center}
.pms-treatments-header .section-label::before{display:none}
.pms-treatments-header h2 em{font-style:italic;color:var(--gold,#B8955A)}
.pms-category{padding:0 0 4px}
.pms-category--dark{background:var(--dark,#1C1812)}
.pms-category-label{padding:32px 60px 16px;display:flex;align-items:baseline;gap:0;flex-wrap:wrap}
.pms-cat-letter{font-family:'Cormorant Garamond',serif;font-size:clamp(44px,5.5vw,80px);font-weight:300;line-height:1;color:var(--dark,#1C1812);letter-spacing:-.02em}
.pms-category--dark .pms-cat-letter{color:#fff}
.pms-cat-word{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,2.8vw,38px);font-weight:300;color:var(--dark,#1C1812);letter-spacing:-.01em;margin-right:14px}
.pms-category--dark .pms-cat-word{color:#fff}
.pms-cat-sub{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold,#B8955A);margin-bottom:4px}
.pms-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:0 3px 3px}
.pms-tile{position:relative;aspect-ratio:16/7;overflow:hidden;text-decoration:none;display:block;background-color:#1C1812;background-size:cover;background-position:center top;background-repeat:no-repeat}
.pms-tile--lg{aspect-ratio:16/7}
.pms-tile-bg{position:absolute;inset:0;background-size:cover;background-position:center top;background-repeat:no-repeat;transition:transform .8s cubic-bezier(.25,.46,.45,.94);z-index:0}
.pms-tile:hover .pms-tile-bg{transform:scale(1.07)}
.pms-tile-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(14,10,6,.92) 0%,rgba(14,10,6,.4) 50%,rgba(14,10,6,.08) 100%);transition:background .45s ease}
.pms-tile:hover .pms-tile-overlay{background:linear-gradient(to top,rgba(14,10,6,.97) 0%,rgba(14,10,6,.82) 55%,rgba(14,10,6,.55) 100%)}
.pms-tile-content{position:absolute;bottom:0;left:0;right:0;padding:28px 24px;z-index:2}
.pms-tile-sub{display:block;font-family:'Jost',sans-serif;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:#B8955A;margin-bottom:8px;opacity:0;transform:translateY(6px);transition:opacity .3s ease .05s,transform .3s ease .05s}
.pms-tile:hover .pms-tile-sub{opacity:1;transform:translateY(0)}
.pms-tile-content h3{font-family:'Cormorant Garamond',serif;font-size:clamp(16px,1.5vw,22px);font-weight:300;color:#fff;margin:0;line-height:1.2;letter-spacing:.01em;transition:margin .4s ease}
.pms-tile:hover .pms-tile-content h3{margin-bottom:12px}
.pms-tile-desc{font-family:'Jost',sans-serif;font-size:13px;line-height:1.75;color:rgba(255,255,255,.75);margin:0 0 16px;max-height:0;overflow:hidden;opacity:0;transform:translateY(10px);transition:max-height .45s ease,opacity .4s ease .1s,transform .4s ease .1s}
.pms-tile:hover .pms-tile-desc{max-height:140px;opacity:1;transform:translateY(0)}
.pms-tile-cta{display:inline-block;font-family:'Jost',sans-serif;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#B8955A;opacity:0;transform:translateY(8px);transition:opacity .3s ease .18s,transform .3s ease .18s}
.pms-tile:hover .pms-tile-cta{opacity:1;transform:translateY(0)}
.pms-tile::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#B8955A;transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.25,.46,.45,.94);z-index:3}
.pms-tile:hover::after{transform:scaleX(1)}
.pms-treatments-cta{display:flex;align-items:center;justify-content:center;gap:24px;padding:64px 60px;background:var(--cream,#F9F5F0);flex-wrap:wrap}
.btn-outline{display:inline-block;padding:14px 36px;border:1px solid #B8955A;color:#B8955A;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;transition:background .25s,color .25s}
.btn-outline:hover{background:#B8955A;color:#fff}
@media(max-width:1100px){.pms-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){
  .pms-grid{grid-template-columns:repeat(2,1fr);gap:2px;padding:0 2px 2px}
  .pms-category-label{padding:32px 24px 16px}
  .pms-treatments-header{padding:60px 24px 36px}
  .pms-treatments-cta{padding:48px 24px;flex-direction:column}
  .pms-tile-content{padding:18px 16px}
  .pms-tile-content h3{font-size:14px}
  .pms-tile-desc{font-size:12px}
}
@media(max-width:480px){
  .pms-grid{grid-template-columns:repeat(2,1fr)}
  .pms-tile,.pms-tile--lg{aspect-ratio:16/9}
}

/* ── TRUSTINDEX REVIEW WIDGET — mobile spacing ──
   The widget carries ~35px of its own padding below the last review card
   (pagination area), which then stacks on top of the host section's 70px
   mobile padding-bottom plus the next section's padding-top — ~125px of
   dead space on a 812px screen. The widget's internal spacing is not ours
   to change, so we trim the section padding to compensate.

   Applies to every service page at once: all 13 wrap the widget in their own
   prefixed `.xx-section`, and those rules live in per-page inline <style>
   blocks that load AFTER this file. `section:has(.ti-widget)` is (0,1,1),
   which outranks a bare `.xx-section` (0,1,0), so it wins on specificity
   rather than source order — no !important needed. ── */
@media (max-width: 860px) {
  section:has(.ti-widget) { padding-bottom: 24px; }
}
