/* =========================================================
   SANDY VALVAL PHOTOGRAPHY STUDIO
   Palette: black / charcoal / bordeaux / gold / cream
   ========================================================= */

:root{
  --black:#0c0a0d;
  --charcoal:#171216;
  --charcoal-2:#1e181c;
  --bordeaux:#4a1524;
  --bordeaux-light:#6e2334;
  --gold:#c69a54;
  --gold-light:#e9cd94;
  --gold-dim:#8a6f3f;
  --cream:#f4ead9;
  --cream-dim:rgba(244,234,217,.68);
  --cream-faint:rgba(244,234,217,.4);
  --line:rgba(198,154,84,.25);

  --serif:'Playfair Display', serif;
  --script:'Parisienne', cursive;
  --sans:'Jost', sans-serif;

  --container:1240px;
  --ease:cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--black);
  color:var(--cream);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit;}
input,select,textarea{font-family:inherit;}

::selection{background:var(--gold);color:var(--black);}

/* subtle grain overlay for texture */
.grain{
  position:fixed;inset:0;z-index:9999;pointer-events:none;
  opacity:.035;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.section-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 clamp(20px,5vw,60px);
}

/* ---------- Typography helpers ---------- */
.eyebrow{
  font-family:var(--sans);
  letter-spacing:.35em;
  text-transform:uppercase;
  font-size:.72rem;
  color:var(--gold-light);
}
.kicker{
  font-family:var(--sans);
  letter-spacing:.3em;
  text-transform:uppercase;
  font-size:.72rem;
  margin:0 0 14px;
  color:var(--cream-dim);
}
.kicker.gold{color:var(--gold);}
.h2{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(2rem,4.2vw,3.1rem);
  line-height:1.15;
  margin:0 0 20px;
  letter-spacing:-.01em;
}
.sub{
  max-width:640px;
  color:var(--cream-dim);
  font-size:1.05rem;
  font-weight:300;
}
.center{text-align:center;margin-left:auto;margin-right:auto;}
.script{font-family:var(--script); font-weight:400;}

.text-link{
  display:inline-block;
  color:var(--gold-light);
  font-size:.95rem;
  letter-spacing:.02em;
  border-bottom:1px solid var(--gold-dim);
  padding-bottom:2px;
  transition:color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.text-link:hover{color:var(--gold); border-color:var(--gold); transform:translateX(4px);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  justify-content:center;
  padding:15px 34px;
  font-size:.82rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  border-radius:2px;
  border:1px solid transparent;
  transition:all .45s var(--ease);
  position:relative;
  overflow:hidden;
}
.btn-lg{padding:18px 40px;font-size:.85rem;}
.btn-icon{width:18px;height:18px;fill:currentColor;}

.btn-gold{
  background:linear-gradient(135deg, var(--gold-light), var(--gold) 55%, var(--gold-dim));
  color:var(--black);
  box-shadow:0 8px 24px -8px rgba(198,154,84,.55);
}
.btn-gold:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 32px -10px rgba(198,154,84,.7);
  filter:brightness(1.06);
}

.btn-ghost{
  border-color:rgba(244,234,217,.4);
  color:var(--cream);
  backdrop-filter:blur(4px);
}
.btn-ghost:hover{
  border-color:var(--gold-light);
  color:var(--gold-light);
  background:rgba(198,154,84,.08);
}

.btn-outline{
  border-color:var(--gold-dim);
  color:var(--gold-light);
}
.btn-outline:hover{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--black);
}

.center-btn{display:table;margin:26px auto 0;}

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:22px 0;
  transition:background .5s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
.nav.scrolled{
  padding:12px 0;
  box-shadow:0 1px 0 var(--line);
}
.nav.scrolled::before{
  content:'';
  position:absolute; inset:0; z-index:-1;
  background:rgba(12,10,13,.85);
  backdrop-filter:blur(14px) saturate(140%);
}
.nav-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 clamp(20px,5vw,60px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.nav-logo img{height:34px;width:auto;transition:height .4s var(--ease);}
.nav.scrolled .nav-logo img{height:28px;}

.nav-links{
  display:flex;
  gap:clamp(14px,2vw,30px);
  font-size:.8rem;
  letter-spacing:.06em;
}
.nav-links a{
  position:relative;
  padding:4px 0;
  color:var(--cream-dim);
  transition:color .3s;
  white-space:nowrap;
}
.nav-links a::after{
  content:'';
  position:absolute;left:0;bottom:0;
  width:0;height:1px;
  background:var(--gold);
  transition:width .35s var(--ease);
}
.nav-links a:hover{color:var(--cream);}
.nav-links a:hover::after{width:100%;}

.nav-actions{display:flex;align-items:center;gap:18px;}
.lang-switch{display:flex;align-items:center;gap:6px;font-size:.75rem;letter-spacing:.1em;}
.lang-btn{color:var(--cream-faint);padding:2px 4px;transition:color .3s;}
.lang-btn.active{color:var(--gold-light);}
.lang-sep{color:var(--cream-faint);}
.nav-book{padding:11px 22px;font-size:.72rem;}

.burger{display:none;flex-direction:column;gap:5px;width:26px;position:relative;z-index:1001;}
.burger span{display:block;height:1px;background:var(--cream);width:100%;transition:transform .3s,opacity .3s;}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media img{
  width:100%;height:100%;object-fit:cover;object-position:52% 30%;
  transform:scale(1.08);
  animation:heroZoom 18s ease-out forwards;
}
@keyframes heroZoom{to{transform:scale(1);}}
.hero-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(12,10,13,.55) 0%, rgba(12,10,13,.35) 35%, rgba(12,10,13,.85) 82%, var(--black) 100%),
    linear-gradient(90deg, rgba(12,10,13,.55) 0%, rgba(12,10,13,.05) 40%, rgba(12,10,13,.05) 60%, rgba(12,10,13,.55) 100%);
}

.hero-ticker{
  position:relative;z-index:2;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:rgba(12,10,13,.4);
  backdrop-filter:blur(2px);
  overflow:hidden;
  white-space:nowrap;
  padding:10px 0;
}
.ticker-track{display:inline-flex; animation:ticker 32s linear infinite;}
.ticker-track span{
  font-family:var(--serif);
  font-style:italic;
  font-size:.95rem;
  letter-spacing:.08em;
  color:var(--gold-light);
  padding-right:0;
}
@keyframes ticker{from{transform:translateX(0);}to{transform:translateX(-50%);}}

.hero-content{
  position:relative;z-index:2;
  max-width:var(--container);
  margin:0 auto;
  padding:70px clamp(20px,5vw,60px) 60px;
  width:100%;
}
.eyebrow{margin-bottom:18px;}
.hero-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(2.6rem,7vw,5.4rem);
  line-height:1.05;
  margin:0 0 22px;
  max-width:16ch;
}
.hero-title em{
  display:block;
  font-family:var(--script);
  font-style:normal;
  font-weight:400;
  color:var(--gold-light);
  font-size:1.5em;
  line-height:1.1;
  margin-top:4px;
}
.hero-sub{
  max-width:520px;
  font-size:1.08rem;
  color:var(--cream-dim);
  margin-bottom:34px;
}
.hero-actions{display:flex;gap:18px;flex-wrap:wrap;}

.scroll-cue{
  position:absolute; z-index:2; right:clamp(20px,5vw,60px); bottom:26px;
  display:flex; flex-direction:column-reverse; align-items:center; gap:10px;
  color:var(--cream-faint); font-size:.68rem; letter-spacing:.25em; text-transform:uppercase;
}
.scroll-cue span{
  width:1px;height:46px;
  background:linear-gradient(var(--gold),transparent);
  position:relative;
  overflow:hidden;
}
.scroll-cue span::after{
  content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;
  background:var(--gold-light);
  animation:scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{top:-100%;} 60%{top:100%;} 100%{top:100%;}
}

/* =========================================================
   REVEAL ANIMATIONS
   ========================================================= */
.reveal, .reveal-left, .reveal-right{
  opacity:0;
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal{transform:translateY(34px);}
.reveal-left{transform:translateX(-40px);}
.reveal-right{transform:translateX(40px);}
.reveal.in, .reveal-left.in, .reveal-right.in{
  opacity:1; transform:translate(0,0);
}
/* stagger children inside common grids */
.values-grid .value-card:nth-child(1){transition-delay:.02s;}
.values-grid .value-card:nth-child(2){transition-delay:.09s;}
.values-grid .value-card:nth-child(3){transition-delay:.16s;}
.values-grid .value-card:nth-child(4){transition-delay:.23s;}
.values-grid .value-card:nth-child(5){transition-delay:.3s;}
.exp-grid .exp-card:nth-child(1){transition-delay:0s;}
.exp-grid .exp-card:nth-child(2){transition-delay:.04s;}
.exp-grid .exp-card:nth-child(3){transition-delay:.08s;}
.exp-grid .exp-card:nth-child(4){transition-delay:.12s;}
.exp-grid .exp-card:nth-child(5){transition-delay:.16s;}
.exp-grid .exp-card:nth-child(6){transition-delay:.2s;}
.exp-grid .exp-card:nth-child(7){transition-delay:.24s;}
.exp-grid .exp-card:nth-child(8){transition-delay:.28s;}
.exp-grid .exp-card:nth-child(9){transition-delay:.32s;}
.exp-grid .exp-card:nth-child(10){transition-delay:.36s;}
.price-grid .price-card:nth-child(1){transition-delay:0s;}
.price-grid .price-card:nth-child(2){transition-delay:.1s;}
.price-grid .price-card:nth-child(3){transition-delay:.2s;}

@media (prefers-reduced-motion: reduce){
  .reveal,.reveal-left,.reveal-right{opacity:1!important;transform:none!important;transition:none!important;}
  .hero-media img{animation:none;transform:none;}
  .ticker-track{animation:none;}
}

/* =========================================================
   SECTION BASE RHYTHM
   ========================================================= */
section{padding:clamp(70px,11vw,140px) 0;position:relative;}
.about{background:var(--charcoal);}
.values{background:var(--black);}
.experiences{background:var(--charcoal);}
.portfolio{background:var(--black);}
.pricing{background:var(--charcoal);}
.process{background:var(--black);}
.prepare{background:var(--charcoal);}
.testimonials{background:var(--black);}
.studio{background:var(--charcoal);}
.faq{background:var(--black);}
.book{background:linear-gradient(180deg, var(--black) 0%, var(--bordeaux) 22%, var(--bordeaux) 45%, var(--black) 78%);}
.contact{background:var(--black);}

/* =========================================================
   ABOUT
   ========================================================= */
.about-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(30px,6vw,90px);
  align-items:center;
}
.about-media{position:relative;}
.about-media img{
  width:100%; aspect-ratio:4/5; object-fit:cover; object-position:top center;
  filter:saturate(.92) contrast(1.04);
}
.about-frame{
  position:absolute; inset:18px -18px -18px 18px;
  border:1px solid var(--gold-dim);
  z-index:-1;
}
.lead{font-size:1.08rem;color:var(--cream);}
.pull-quote{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size:1.25rem;
  color:var(--gold-light);
  border-left:2px solid var(--gold);
  padding-left:22px;
  margin:30px 0;
  line-height:1.5;
}
.philosophy{
  position:relative;
  margin:38px 0 34px;
  padding:26px 30px;
  background:rgba(198,154,84,.06);
  border:1px solid var(--line);
}
.quote-mark{
  font-family:var(--serif);
  color:var(--gold);
  font-size:2.4rem;
  line-height:0;
  position:absolute;
  top:22px;left:16px;
}
.quote-mark--end{position:static;display:none;}
.script-line{
  font-family:var(--script);
  font-size:1.7rem;
  color:var(--cream);
  padding-left:24px;
  line-height:1.3;
}

/* =========================================================
   VALUE PROPS
   ========================================================= */
.values-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1px;
  background:var(--line);
  margin-top:56px;
  border:1px solid var(--line);
}
.value-card{
  background:var(--black);
  padding:38px 26px;
  text-align:center;
  transition:background .4s var(--ease), transform .4s var(--ease);
}
.value-card:hover{background:var(--charcoal-2); transform:translateY(-6px);}
.value-card .icon{
  width:40px;height:40px;
  fill:none; stroke:var(--gold); stroke-width:1.4;
  margin:0 auto 18px;
}
.value-card h3{
  font-family:var(--serif); font-weight:500; font-size:1.02rem;
  margin:0 0 10px; color:var(--cream);
}
.value-card p{font-size:.85rem; color:var(--cream-dim); margin:0;}

/* =========================================================
   EXPERIENCES GRID
   ========================================================= */
.exp-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
  margin-top:56px;
}
.exp-card{
  position:relative;
  display:flex; flex-direction:column; justify-content:space-between;
  min-height:180px;
  padding:24px;
  background:var(--black);
  border:1px solid var(--line);
  overflow:hidden;
  transition:border-color .4s var(--ease), transform .4s var(--ease);
}
.exp-card::before{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(198,154,84,.14), transparent 60%);
  opacity:0; transition:opacity .4s var(--ease);
}
.exp-card:hover{border-color:var(--gold); transform:translateY(-5px);}
.exp-card:hover::before{opacity:1;}
.exp-num{
  font-family:var(--serif); font-style:italic; color:var(--gold-dim); font-size:.85rem;
}
.exp-card h3{
  font-family:var(--serif); font-weight:500; font-size:1.15rem; margin:0; color:var(--cream);
}
.exp-tag{
  font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-light); margin-top:8px; display:block;
}
.exp-card--feature{
  background:linear-gradient(155deg, var(--bordeaux) 0%, var(--charcoal-2) 75%);
  border-color:var(--bordeaux-light);
}
.exp-card--feature:hover{border-color:var(--gold-light);}

/* =========================================================
   FEATURE BANNER (BOUDOIR)
   ========================================================= */
.feature-banner{
  display:grid;
  grid-template-columns:1fr 1fr;
  background:var(--black);
  min-height:640px;
}
.feature-media{position:relative;overflow:hidden;}
.feature-media img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform 1.2s var(--ease);}
.feature-banner:hover .feature-media img{transform:scale(1.04);}
.feature-media video.feature-video{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform 1.2s var(--ease);background:var(--charcoal-2);}
.feature-banner:hover .feature-media video.feature-video{transform:scale(1.04);}
.feature-copy{
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(40px,6vw,90px);
  background:linear-gradient(160deg, var(--bordeaux) 0%, var(--black) 90%);
}
.feature-list{margin:22px 0 34px;}
.feature-list li{
  position:relative; padding-left:26px; margin-bottom:12px; color:var(--cream-dim); font-size:.95rem;
}
.feature-list li::before{
  content:'✦'; position:absolute; left:0; top:0; color:var(--gold);
}

/* =========================================================
   PORTFOLIO
   ========================================================= */
.portfolio-filter{
  display:flex; gap:10px; justify-content:center; margin:36px 0 40px; flex-wrap:wrap;
}
.pf-btn{
  padding:9px 22px; border:1px solid var(--line); font-size:.72rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--cream-dim); transition:all .3s var(--ease);
}
.pf-btn:hover{color:var(--gold-light); border-color:var(--gold-dim);}
.pf-btn.active{background:var(--gold); color:var(--black); border-color:var(--gold);}

.portfolio-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:280px;
  grid-auto-flow:dense;
  gap:16px;
}
.pf-item{
  position:relative; margin:0; overflow:hidden; background:var(--charcoal-2);
  transition:opacity .4s, transform .4s;
}
.pf-item.pf-hidden{display:none;}
.pf-tall{grid-row:span 2;}
.portfolio-grid--equal{grid-auto-rows:560px;}
.portfolio-grid--equal .pf-tall{grid-row:span 1;}
.pf-item img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;transition:transform .8s var(--ease), filter .5s;filter:saturate(.9);}
.pf-item:hover img{transform:scale(1.08);filter:saturate(1.05);}
.pf-item figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:20px;
  font-family:var(--serif); font-style:italic; font-size:1rem;
  color:var(--cream);
  background:linear-gradient(0deg, rgba(12,10,13,.85), transparent);
  transform:translateY(8px); opacity:0; transition:all .4s var(--ease);
}
.pf-item:hover figcaption{transform:translateY(0); opacity:1;}
.portfolio-note{margin-top:44px; color:var(--cream-faint); font-size:.88rem;}

/* =========================================================
   PRICING
   ========================================================= */
.price-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
  margin-top:56px;
  align-items:stretch;
}
.price-card{
  position:relative;
  background:var(--black);
  border:1px solid var(--line);
  padding:44px 34px 38px;
  display:flex; flex-direction:column;
  transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.price-card:hover{transform:translateY(-8px); border-color:var(--gold-dim);}
.price-card h3{font-family:var(--serif); font-weight:500; font-size:1.3rem; margin:0 0 10px; color:var(--cream);}
.price-tag{font-family:var(--serif); font-size:2.6rem; color:var(--gold-light); margin:0 0 6px;}
.price-meta{font-size:.82rem; color:var(--cream-faint); margin:0 0 26px; text-transform:uppercase; letter-spacing:.06em;}
.price-card ul{margin:0 0 22px; flex-grow:1;}
.price-card li{
  position:relative; padding-left:22px; margin-bottom:11px; font-size:.9rem; color:var(--cream-dim);
}
.price-card li::before{content:'—'; position:absolute; left:0; color:var(--gold-dim);}
.price-fit{font-size:.78rem; color:var(--gold-light); font-style:italic; margin-bottom:22px;}
.price-card .btn{width:100%;}

.price-card--popular{
  background:linear-gradient(165deg, var(--charcoal-2), var(--black));
  border-color:var(--gold);
  transform:scale(1.03);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.6);
}
.price-card--popular:hover{transform:scale(1.03) translateY(-8px);}
.ribbon{
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:linear-gradient(135deg, var(--gold-light), var(--gold));
  color:var(--black);
  font-size:.68rem; letter-spacing:.15em; text-transform:uppercase;
  padding:7px 18px;
  white-space:nowrap;
}

.price-sub{margin-top:44px;}
.price-sub-card{
  border:1px solid var(--line); padding:30px 34px; max-width:720px; margin:0 auto;
  background:var(--black);
}
.price-sub-card h4{font-family:var(--serif); font-weight:500; margin:0 0 18px; color:var(--gold-light); font-size:1.05rem;}
.price-sub-row{
  display:flex; justify-content:space-between; gap:20px;
  padding:12px 0; border-top:1px solid var(--line); font-size:.9rem; color:var(--cream-dim);
}
.price-sub-row:first-of-type{border-top:none;}
.price-sub-row strong{color:var(--gold-light); font-family:var(--serif); font-size:1.1rem; white-space:nowrap;}

.addons{margin-top:60px;}
.addons h4{font-family:var(--serif); font-weight:500; font-size:1.1rem; color:var(--cream); margin-bottom:28px;}
.addons-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);
}
.addons-grid div{
  background:var(--black); padding:18px 20px; display:flex; flex-direction:column; gap:6px;
}
.addons-grid span{font-size:.78rem; color:var(--cream-dim);}
.addons-grid strong{font-family:var(--serif); color:var(--gold-light); font-size:1.05rem;}

/* =========================================================
   PROCESS
   ========================================================= */
.process-list{margin-top:56px; max-width:820px; margin-left:auto; margin-right:auto;}
.process-step{
  display:grid; grid-template-columns:80px 1fr; gap:28px;
  padding:26px 0; border-top:1px solid var(--line);
  align-items:baseline;
}
.process-step:last-child{border-bottom:1px solid var(--line);}
.process-num{font-family:var(--serif); font-style:italic; font-size:1.6rem; color:var(--gold-dim);}
.process-step h3{font-family:var(--serif); font-weight:500; font-size:1.15rem; margin:0 0 8px; color:var(--cream);}
.process-step p{margin:0; color:var(--cream-dim); font-size:.92rem; max-width:60ch;}

/* =========================================================
   PREPARE
   ========================================================= */
.prepare-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:26px; margin-top:56px;
}
.prepare-card{
  padding:32px 26px; border:1px solid var(--line); text-align:center;
  transition:transform .4s var(--ease), background .4s;
}
.prepare-card:hover{transform:translateY(-6px); background:rgba(198,154,84,.05);}
.prepare-icon{color:var(--gold); font-size:1.4rem; display:block; margin-bottom:16px;}
.prepare-card h3{font-family:var(--serif); font-weight:500; font-size:1.05rem; margin:0 0 10px; color:var(--cream);}
.prepare-card p{font-size:.85rem; color:var(--cream-dim); margin:0;}

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.testi-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:56px;
}
.testi-card{
  margin:0; padding:34px 30px; border:1px solid var(--line); position:relative;
  background:var(--charcoal);
}
.testi-card::before{
  content:'“'; font-family:var(--serif); font-size:3rem; color:var(--gold-dim); line-height:0;
  display:block; margin-bottom:14px;
}
.testi-card p{font-family:var(--serif); font-style:italic; font-size:1rem; color:var(--cream); margin:0 0 20px; line-height:1.55;}
.testi-card cite{font-style:normal; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light);}

/* =========================================================
   STUDIO
   ========================================================= */
.studio-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,6vw,80px); align-items:center;
}
.studio-list{margin:28px 0 26px;}
.studio-list li{
  display:flex; flex-direction:column; gap:2px;
  padding:16px 0; border-top:1px solid var(--line); font-size:.92rem;
}
.studio-list li:last-child{border-bottom:1px solid var(--line);}
.studio-list strong{font-family:var(--serif); color:var(--gold-light); font-weight:500; font-size:.95rem;}
.studio-list span{color:var(--cream-dim);}
.studio-map{border:1px solid var(--line); aspect-ratio:1/1;}
.studio-map iframe{width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.1);}

/* =========================================================
   FAQ
   ========================================================= */
.faq-list{max-width:820px; margin:56px auto 0;}
.faq-item{border-top:1px solid var(--line);}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  padding:24px 4px; text-align:left;
  font-family:var(--serif); font-size:1.05rem; color:var(--cream);
}
.faq-plus{color:var(--gold); font-size:1.3rem; font-weight:300; transition:transform .35s var(--ease); flex-shrink:0; margin-left:20px;}
.faq-item.open .faq-plus{transform:rotate(45deg);}
.faq-a{
  max-height:0; overflow:hidden; transition:max-height .5s var(--ease), padding .5s var(--ease);
  padding:0 4px;
}
.faq-item.open .faq-a{max-height:220px; padding-bottom:22px;}
.faq-a p{margin:0; color:var(--cream-dim); font-size:.92rem; max-width:65ch;}

/* =========================================================
   BOOK / RESERVAR
   ========================================================= */
.book-inner{text-align:center;}
.book .sub{margin-left:auto;margin-right:auto;}
.book-actions{
  display:flex; gap:20px; justify-content:center; flex-wrap:wrap; margin:40px 0 60px;
}

.quote-form{
  max-width:760px; margin:0 auto; text-align:left;
  background:rgba(12,10,13,.5);
  border:1px solid var(--line);
  padding:clamp(26px,4vw,50px);
  backdrop-filter:blur(6px);
}
.qf-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-bottom:22px;}
.qf-field{display:flex; flex-direction:column; gap:8px;}
.qf-full{grid-column:1/-1;}
.qf-field label{font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold-light);}
.qf-field input, .qf-field select, .qf-field textarea{
  background:transparent; border:none; border-bottom:1px solid var(--line);
  color:var(--cream); padding:10px 2px; font-size:.95rem; font-weight:300;
  transition:border-color .3s;
}
.qf-field select option{background:var(--charcoal); color:var(--cream);}
.qf-field input:focus, .qf-field select:focus, .qf-field textarea:focus{
  outline:none; border-color:var(--gold);
}
.quote-form .qf-full{margin-bottom:26px;}
.quote-form textarea{resize:vertical; border:1px solid var(--line); padding:12px;}
.qf-note{font-size:.75rem; color:var(--cream-faint); margin:16px 0 0;}

/* =========================================================
   CONTACT
   ========================================================= */
.contact-grid{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(30px,6vw,80px); align-items:start;
}
.contact-list{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.contact-item{
  background:var(--black); padding:26px 24px; display:flex; flex-direction:column; gap:6px;
  transition:background .3s;
}
.contact-item:not(.contact-item--static):hover{background:var(--charcoal-2);}
.contact-item:not(.contact-item--static):hover .ci-value{color:var(--gold-light);}
.ci-label{font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold-dim);}
.ci-value{font-size:.95rem; color:var(--cream); transition:color .3s; word-break:break-word;}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{background:var(--black); border-top:1px solid var(--line); padding-top:70px;}
.footer-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px;
}
.footer-logo{height:30px; margin-bottom:16px; opacity:.9;}
.footer-tag{color:var(--gold-dim); font-size:1.1rem;}
.footer-col h5{
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin:0 0 18px;
}
.footer-col a, .footer-col p{
  display:block; color:var(--cream-dim); font-size:.86rem; margin-bottom:12px; transition:color .3s;
}
.footer-col a:hover{color:var(--gold-light);}
.footer-bottom{
  border-top:1px solid var(--line); padding:26px clamp(20px,5vw,60px);
  text-align:center; font-size:.78rem; color:var(--cream-faint);
}

/* =========================================================
   WHATSAPP FLOAT
   ========================================================= */
.whatsapp-float{
  position:fixed; bottom:26px; right:26px; z-index:900;
  width:56px; height:56px; border-radius:50%;
  background:linear-gradient(135deg, var(--gold-light), var(--gold));
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px -6px rgba(198,154,84,.6);
  animation:floatPulse 3.2s ease-in-out infinite;
  transition:transform .3s var(--ease);
}
.whatsapp-float:hover{transform:scale(1.08);}
.whatsapp-float svg{width:26px;height:26px;fill:var(--black);}
@keyframes floatPulse{
  0%,100%{box-shadow:0 10px 26px -6px rgba(198,154,84,.6);}
  50%{box-shadow:0 10px 34px -4px rgba(198,154,84,.9);}
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .values-grid{grid-template-columns:repeat(3,1fr);}
  .exp-grid{grid-template-columns:repeat(3,1fr);}
  .price-grid{grid-template-columns:1fr; max-width:460px; margin-left:auto; margin-right:auto;}
  .price-card--popular{transform:none;}
  .price-card--popular:hover{transform:translateY(-8px);}
  .addons-grid{grid-template-columns:repeat(2,1fr);}
  .testi-grid{grid-template-columns:1fr;}
  .prepare-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:860px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .about-grid, .studio-grid, .contact-grid{grid-template-columns:1fr;}
  .about-media{order:-1;}
  .feature-banner{grid-template-columns:1fr; min-height:auto;}
  .feature-media{height:420px;}
  .portfolio-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:220px;}
  .portfolio-grid--equal{grid-auto-rows:320px;}
  .pf-tall{grid-row:span 1;}
  .values-grid{grid-template-columns:repeat(2,1fr);}
  .exp-grid{grid-template-columns:repeat(2,1fr);}
  .qf-grid{grid-template-columns:1fr;}
  .contact-list{grid-template-columns:1fr;}
  .lang-switch{display:none;}
}

@media (max-width:600px){
  .prepare-grid{grid-template-columns:1fr;}
  .addons-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr; gap:30px;}
  .hero-title{max-width:none;}
  .book-actions{flex-direction:column;}
  .book-actions .btn{width:100%;}
  .values-grid{grid-template-columns:1fr;}
  .exp-grid{grid-template-columns:1fr;}
  .session-cards{grid-template-columns:repeat(2,1fr);}
  .footer-grid--wide{grid-template-columns:1fr;}
}

/* ---------------- SMALL PHONES ---------------- */
@media (max-width:480px){
  .nav-inner{gap:10px;}
  .nav-book{padding:9px 16px; font-size:.68rem;}
  .btn{padding:13px 22px; font-size:.76rem;}
  .btn-lg{padding:15px 26px; font-size:.8rem;}
  .page-hero-content{padding-top:118px;}
  .price-card{padding:32px 22px 28px;}
  .price-tag{font-size:2.2rem;}
  .testi-card{padding:26px 22px;}
  .journal-card{padding:28px 20px;}
  .info-card{padding:24px 20px;}
  .price-sub-card{padding:24px 22px;}
  .quote-form{padding:22px;}
  .exp-card{padding:20px; min-height:150px;}
  .session-cards{grid-template-columns:1fr 1fr; gap:8px;}
  .session-card{padding:16px 10px;}
  .bs-step{min-width:58px;}
  .bs-label{font-size:.58rem;}
  .contact-item{padding:20px 18px;}
  .about-frame{display:none;}
}

/* Mobile nav overlay */
@media (max-width:860px){
  .nav-links.open{
    display:flex; flex-direction:column;
    position:fixed; inset:0; top:0;
    background:var(--black);
    padding:110px 40px 40px;
    gap:22px; font-size:1.3rem;
    z-index:998;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:calc(40px + env(safe-area-inset-bottom, 0px));
  }
  .burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .burger.open span:nth-child(2){opacity:0;}
  .burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

  /* Language switch: hidden in the compact top bar (no room next to the
     Reservar button + burger) but restored inside the full-screen mobile
     menu, so phone visitors can still change language. */
  .lang-switch-mobile{
    display:flex; align-items:center; gap:10px; font-size:.85rem; letter-spacing:.1em;
    padding-bottom:18px; margin-bottom:4px; border-bottom:1px solid var(--line);
  }
}
@media (min-width:861px){
  .lang-switch-mobile{display:none;}
}

/* =========================================================
   MULTI-PAGE ADDITIONS: dropdown nav, page hero, wide footer
   ========================================================= */
.nav-drop{position:relative;}
.nav-drop-btn{
  display:flex; align-items:center; gap:5px;
  color:var(--cream-dim); font-size:.8rem; letter-spacing:.06em;
  font-family:var(--sans); padding:4px 0; transition:color .3s;
}
.nav-drop-btn:hover{color:var(--cream);}
.caret{font-size:.7rem; transition:transform .3s var(--ease); color:var(--gold-dim);}
.nav-drop:hover .caret, .nav-drop.open .caret{transform:rotate(180deg);}
.nav-drop-menu{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(4px);
  padding-top:18px; margin-top:0;
  min-width:220px;
  opacity:0; pointer-events:none; transition:opacity .25s var(--ease), transform .25s var(--ease);
  z-index:50;
}
.nav-drop-menu-inner{
  background:var(--charcoal-2); border:1px solid var(--line);
  padding:10px; display:flex; flex-direction:column; gap:2px;
  box-shadow:0 20px 40px -12px rgba(0,0,0,.6);
}
.nav-drop:hover .nav-drop-menu, .nav-drop.open .nav-drop-menu{
  opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.nav-drop-menu a{
  display:block; padding:10px 14px; font-size:.82rem; color:var(--cream-dim); white-space:nowrap;
  transition:background .25s, color .25s;
}
.nav-drop-menu a:hover{background:rgba(198,154,84,.1); color:var(--gold-light);}
.nav-links a.active{color:var(--gold-light);}
.nav-links a.active::after{width:100%;}

/* ---------------- PAGE HERO (interior pages) ---------------- */
.page-hero{
  position:relative; min-height:46vh; display:flex; align-items:flex-end;
  overflow:hidden;
}
.page-hero-media{position:absolute;inset:0;z-index:0;}
.page-hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;filter:saturate(.85);}
.page-hero-veil{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(12,10,13,.35) 0%, rgba(12,10,13,.4) 30%, rgba(12,10,13,.62) 55%, rgba(12,10,13,.85) 78%, var(--black) 100%),
    radial-gradient(120% 90% at 50% 15%, transparent 40%, rgba(12,10,13,.3) 100%);
}
.page-hero-content{
  position:relative; z-index:1; max-width:var(--container); margin:0 auto; width:100%;
  padding:140px clamp(20px,5vw,60px) 70px;
}
.h1{
  font-family:var(--serif); font-weight:500; font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.1; margin:14px 0 0; max-width:18ch;
}
.page-hero-sub{margin-top:18px; max-width:600px; color:var(--cream-dim); font-size:1.05rem;}

/* ---------------- WIDE FOOTER (sitemap) ---------------- */
.footer-grid--wide{grid-template-columns:1.3fr 1fr 1fr 1fr 1fr; gap:30px;}
.footer-social{margin-top:14px; font-size:.82rem;}
.footer-social a{display:inline; color:var(--gold-dim); margin:0;}
.footer-social a:hover{color:var(--gold-light);}

/* ---------------- BREADCRUMB / INTRO TEXT BLOCKS ---------------- */
.intro-block{max-width:760px; margin:0 auto; text-align:center; padding-bottom:10px;}
.two-col{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,6vw,80px); align-items:start;
}
.simple-list{margin-top:10px;}
.simple-list li{
  position:relative; padding-left:22px; margin-bottom:12px; color:var(--cream-dim); font-size:.95rem;
}
.simple-list li::before{content:'✦'; position:absolute; left:0; color:var(--gold);}

/* ---------------- CARD GRID (generic reusable) ---------------- */
.info-card{
  border:1px solid var(--line); padding:30px 28px; background:var(--black);
  transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.info-card:hover{transform:translateY(-5px); border-color:var(--gold-dim);}
.info-card h3{font-family:var(--serif); font-weight:500; font-size:1.1rem; margin:0 0 10px; color:var(--cream);}
.info-card p{font-size:.88rem; color:var(--cream-dim); margin:0;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}

/* ---------------- FAQ CATEGORY TABS ---------------- */
.faq-cat-nav{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:36px 0 10px;}
.faq-category{margin-top:50px;}
.faq-category h3{font-family:var(--serif); font-weight:500; color:var(--gold-light); font-size:1.2rem; margin-bottom:6px;}

/* ---------------- LEGAL PAGE ---------------- */
.legal-layout{display:grid; grid-template-columns:260px 1fr; gap:60px; align-items:start;}
.legal-nav{position:sticky; top:110px; display:flex; flex-direction:column; gap:4px;}
.legal-nav a{
  padding:10px 14px; font-size:.83rem; color:var(--cream-dim); border-left:2px solid transparent;
  transition:all .3s;
}
.legal-nav a:hover{color:var(--gold-light); border-color:var(--gold-dim);}
.legal-section{padding-bottom:52px; margin-bottom:52px; border-bottom:1px solid var(--line);}
.legal-section:last-child{border-bottom:none;}
.legal-section h2{font-family:var(--serif); font-weight:500; font-size:1.5rem; color:var(--cream); margin:0 0 18px;}
.legal-section h4{font-family:var(--serif); font-weight:500; color:var(--gold-light); font-size:1.02rem; margin:22px 0 8px;}
.legal-section p, .legal-section li{color:var(--cream-dim); font-size:.92rem; line-height:1.7;}
.legal-section ul{margin:10px 0 10px 4px;}
.legal-section li{position:relative; padding-left:20px; margin-bottom:8px;}
.legal-section li::before{content:'—'; position:absolute; left:0; color:var(--gold-dim);}

/* ---------------- JOURNAL ---------------- */
.journal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:50px;}
.journal-card{
  border:1px solid var(--line); padding:36px 30px; text-align:center; background:var(--charcoal);
  transition:transform .4s var(--ease);
}
.journal-card:hover{transform:translateY(-6px);}
.journal-card .jc-icon{color:var(--gold); font-size:1.5rem; display:block; margin-bottom:16px;}
.journal-card h3{font-family:var(--serif); font-weight:500; font-size:1.1rem; margin:0 0 10px; color:var(--cream);}
.journal-card p{font-size:.85rem; color:var(--cream-dim); margin:0;}
.journal-badge{
  display:inline-block; font-size:.66rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--gold-dim); border:1px solid var(--line); padding:5px 12px; margin-top:16px;
}

/* ---------------- Simple page CTA band ---------------- */
.cta-band{
  text-align:center; padding:70px clamp(20px,5vw,60px);
  background:linear-gradient(180deg, var(--black) 0%, var(--bordeaux) 20%, var(--bordeaux) 55%, var(--black) 100%);
  margin-top:0;
}
.cta-band h2{margin-bottom:20px;}
.cta-band .btn{margin:0 8px;}

/* ---------------- Home page compact sections ---------------- */
.home-exp-teaser{display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-top:50px;}
.mini-card{
  padding:20px; border:1px solid var(--line); text-align:center; transition:all .35s var(--ease);
}
.mini-card:hover{border-color:var(--gold); transform:translateY(-4px);}
.mini-card span{font-family:var(--serif); font-size:.95rem; color:var(--cream);}

@media (max-width:1080px){
  .footer-grid--wide{grid-template-columns:1fr 1fr 1fr;}
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .home-exp-teaser{grid-template-columns:repeat(3,1fr);}
  .legal-layout{grid-template-columns:1fr;}
  .legal-nav{position:static; flex-direction:row; flex-wrap:wrap; margin-bottom:20px;}
}
@media (max-width:860px){
  .nav-drop-menu{position:static; transform:none; opacity:1; pointer-events:auto; padding-top:0; display:none;}
  .nav-drop-menu-inner{box-shadow:none; border:none; background:transparent; padding-left:14px;}
  /* Only the dropdown that was tapped opens (accordion), instead of both submenus
     auto-expanding whenever the burger menu is open — that was pushing content
     far below the screen with no way to scroll to it. */
  .nav-drop.open .nav-drop-menu{display:flex; flex-direction:column; transform:none; left:0;}
  .nav-links.open .nav-drop-btn{font-size:1.1rem;}
  .nav-drop{width:100%;}
  .nav-drop-btn{width:100%; justify-content:space-between;}
  .two-col{grid-template-columns:1fr;}
  .footer-grid--wide{grid-template-columns:1fr 1fr;}
  .journal-grid{grid-template-columns:1fr;}
  .home-exp-teaser{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:600px){
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr;}
  .footer-grid--wide{grid-template-columns:1fr;}
  .home-exp-teaser{grid-template-columns:1fr 1fr;}
}

/* =========================================================
   BOOK NOW — professional stepper flow
   ========================================================= */
.book-stepper{
  display:flex; align-items:center; justify-content:center; gap:10px;
  max-width:640px; margin:44px auto 10px; flex-wrap:wrap;
}
.bs-step{display:flex; flex-direction:column; align-items:center; gap:8px; min-width:70px;}
.bs-num{
  width:34px; height:34px; border-radius:50%; border:1px solid var(--gold-dim);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); color:var(--gold-light); font-size:.95rem;
}
.bs-label{font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--cream-faint); text-align:center;}
.bs-line{flex:1; min-width:24px; height:1px; background:var(--line); margin-top:-20px;}

.book-step-title{
  font-family:var(--serif); font-weight:500; font-size:1.15rem; color:var(--gold-light);
  margin:38px 0 20px; padding-top:28px; border-top:1px solid var(--line);
}
.quote-form > .book-step-title:first-of-type{padding-top:0; border-top:none; margin-top:0;}

.session-cards{
  display:grid; grid-template-columns:repeat(5,1fr); gap:12px;
}
.session-card{
  position:relative;
  display:flex; flex-direction:column; gap:6px; align-items:center; text-align:center;
  padding:22px 14px; border:1px solid var(--line); background:var(--black);
  transition:all .3s var(--ease); cursor:pointer;
}
.session-card:hover{border-color:var(--gold-dim); transform:translateY(-3px);}
.session-card.selected{border-color:var(--gold); background:rgba(198,154,84,.08); box-shadow:0 0 0 1px var(--gold) inset;}
.sc-badge{
  position:absolute; top:-11px; left:50%; transform:translateX(-50%);
  background:var(--gold); color:var(--black); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase;
  padding:3px 10px; white-space:nowrap;
}
.sc-name{font-family:var(--serif); font-size:.95rem; color:var(--cream);}
.sc-price{font-family:var(--serif); font-size:1.2rem; color:var(--gold-light);}
.sc-meta{font-size:.7rem; color:var(--cream-faint);}

.calendar-embed{
  margin-top:22px; border:1px solid var(--line); background:rgba(198,154,84,.04);
}
.calendar-embed-head{
  display:flex; gap:16px; align-items:flex-start; padding:22px 24px 16px;
}
.cal-icon{width:26px;height:26px;fill:none;stroke:var(--gold);stroke-width:1.5;flex-shrink:0;margin-top:2px;}
.calendar-embed-head h4{font-family:var(--serif); font-weight:500; font-size:1rem; color:var(--cream); margin:0 0 6px;}
.calendar-embed-head p{font-size:.85rem; color:var(--cream-dim); margin:0;}
.calendar-embed-placeholder{
  margin:0 24px 22px; padding:34px; text-align:center; border:1px dashed var(--line);
  color:var(--cream-faint); font-size:.85rem; letter-spacing:.04em;
}
.calendar-embed-widget{
  margin:0 24px 22px; padding:24px; text-align:center; border:1px solid var(--line);
  background:rgba(0,0,0,.12); display:flex; align-items:center; justify-content:center;
  min-height:60px;
}
.cal-picker{margin:0 24px 8px; padding:20px; border:1px solid var(--line); background:rgba(0,0,0,.12);}
.cal-picker-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.cal-month-label{font-family:var(--serif); font-size:1rem; color:var(--cream); text-transform:capitalize;}
.cal-nav{
  background:none; border:1px solid var(--line); color:var(--gold); width:32px; height:32px;
  font-size:1.2rem; line-height:1; cursor:pointer; border-radius:2px; transition:.2s;
}
.cal-nav:hover:not(:disabled){background:rgba(198,154,84,.12);}
.cal-nav:disabled{opacity:.3; cursor:not-allowed;}
.cal-weekdays{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:6px;}
.cal-weekdays span{text-align:center; font-size:.7rem; letter-spacing:.06em; color:var(--cream-faint); text-transform:uppercase;}
.cal-days{display:grid; grid-template-columns:repeat(7,1fr); gap:4px;}
.cal-day{
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.02); border:1px solid transparent; color:var(--cream-dim);
  font-size:.85rem; cursor:pointer; border-radius:2px; transition:.15s;
}
.cal-day:hover:not(.cal-day--off){border-color:var(--gold); color:var(--cream);}
.cal-day--off{color:var(--cream-faint); opacity:.25; cursor:default;}
.cal-day--full{color:#c97a7a; opacity:.5; cursor:default; text-decoration:line-through;}
.cal-day--selected{background:var(--gold); color:var(--black); border-color:var(--gold); font-weight:600;}
.cal-times{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;}
.cal-time-btn{
  padding:8px 14px; border:1px solid var(--line); background:rgba(255,255,255,.02); color:var(--cream-dim);
  font-size:.8rem; cursor:pointer; border-radius:2px; transition:.15s;
}
.cal-time-btn:hover:not(:disabled){border-color:var(--gold); color:var(--cream);}
.cal-time-btn:disabled{opacity:.3; text-decoration:line-through; cursor:not-allowed;}
.cal-time-btn--selected{background:var(--gold); color:var(--black); border-color:var(--gold); font-weight:600;}
.cal-link-box{
  margin-top:18px; padding:22px 24px; border:1px solid var(--line); background:rgba(198,154,84,.04);
}
.cal-link-box h4{font-family:var(--serif); font-weight:500; font-size:1rem; color:var(--cream); margin:0 0 8px;}
.cal-link-btns{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:14px;}
.cal-link-btns .btn{flex:1; min-width:200px; justify-content:center;}
.zelle-box{
  margin-top:26px; padding:24px 26px; border:1px solid var(--line); background:rgba(198,154,84,.04);
}
.zelle-box h4{font-family:var(--serif); font-weight:500; font-size:1.05rem; color:var(--cream); margin:0 0 8px;}
.zelle-box > p{font-size:.88rem; color:var(--cream-dim); margin:0 0 14px;}
.zelle-detail{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:10px;
  padding:14px 18px; background:var(--charcoal-2); border:1px solid var(--line); margin-bottom:14px;
}
.zelle-label{font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold-light);}
.zelle-value{font-family:var(--serif); font-size:1.05rem; color:var(--cream);}

@media (max-width:1080px){
  .session-cards{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:600px){
  .session-cards{grid-template-columns:repeat(2,1fr);}
  .book-stepper{gap:4px;}
  .bs-label{font-size:.6rem;}
  .bs-line{display:none;}
}

/* =========================================================
   SPECIAL PROJECTS
   ========================================================= */
.special-projects{background:var(--charcoal);}
.project-list{margin-top:56px; display:flex; flex-direction:column; gap:70px;}
.project-row{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px); align-items:center;
}
.project-row--reverse .project-media{order:2;}
.project-media{aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line);}
.project-media img{width:100%;height:100%;object-fit:cover;object-position:50% 20%; transition:transform .8s var(--ease);}
.project-media video{width:100%;height:100%;object-fit:cover; transition:transform .8s var(--ease); background:var(--charcoal-2);}
.project-row:hover .project-media video{transform:scale(1.05);}
.project-row:hover .project-media img{transform:scale(1.05);}
.project-tag{
  display:inline-block; font-size:.68rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--gold); border:1px solid var(--gold-dim); padding:5px 14px; margin-bottom:16px;
}
.project-copy h3{font-family:var(--serif); font-weight:500; font-size:1.6rem; color:var(--cream); margin:0 0 14px;}
.project-copy p{color:var(--cream-dim); font-size:.95rem; max-width:52ch;}

@media (max-width:860px){
  .project-row, .project-row--reverse{grid-template-columns:1fr;}
  .project-row--reverse .project-media{order:0;}
}

/* =========================================================
   TRUST STATS STRIP
   ========================================================= */
.stats-strip{
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin-top:70px;
}
.stat-item{
  padding:30px 20px; text-align:center; border-left:1px solid var(--line);
}
.stat-item:first-child{border-left:none;}
.stat-num{
  display:block; font-family:var(--serif); font-style:italic; font-size:2.1rem; color:var(--gold-light); margin-bottom:6px;
}
.stat-label{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--cream-faint);}

/* =========================================================
   SPOTLIGHT QUOTE
   ========================================================= */
.spotlight-quote{
  max-width:840px; margin:90px auto 0; text-align:center; position:relative;
}
.spotlight-quote .quote-mark-lg{
  font-family:var(--serif); font-size:5rem; color:var(--gold-dim); line-height:0; display:block; margin-bottom:10px;
}
.spotlight-quote p{
  font-family:var(--serif); font-style:italic; font-size:clamp(1.2rem,2.4vw,1.6rem); color:var(--cream); line-height:1.6; margin:0 0 22px;
}
.spotlight-quote cite{
  font-style:normal; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-light);
}

/* =========================================================
   REAL CLIENT REVIEWS
   ========================================================= */
.real-testi-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:50px;
}
.real-testi-card{
  padding:36px 34px; border:1px solid var(--line); background:var(--charcoal);
  display:flex; flex-direction:column; gap:16px;
  transition:transform .4s var(--ease), border-color .4s var(--ease);
}
.real-testi-card:hover{transform:translateY(-6px); border-color:var(--gold-dim);}
.real-testi-head{display:flex; align-items:center; gap:14px;}
.real-testi-avatar{
  width:46px; height:46px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(155deg, var(--bordeaux), var(--charcoal-2));
  border:1px solid var(--gold-dim);
  font-family:var(--serif); font-style:italic; font-size:1rem; color:var(--gold-light);
}
.real-testi-meta{display:flex; flex-direction:column;}
.real-testi-name{font-family:var(--serif); font-weight:500; font-size:1rem; color:var(--cream);}
.real-testi-tag{font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cream-faint); margin-top:2px;}
.star-row{display:flex; gap:3px;}
.star-row svg{width:13px; height:13px; fill:var(--gold);}
.real-testi-card p{
  font-family:var(--serif); font-style:italic; font-size:.96rem; color:var(--cream-dim); line-height:1.6; margin:0;
}

/* =========================================================
   VIDEO TESTIMONIAL — vertical reel style
   ========================================================= */
.video-spotlight{
  display:grid; grid-template-columns:300px 1fr; gap:clamp(30px,6vw,70px); align-items:center;
  margin-top:90px;
}
.reel-frame{
  position:relative; width:100%; aspect-ratio:9/16; overflow:hidden;
  border:1px solid var(--line); background:var(--charcoal-2);
  box-shadow:0 30px 60px -25px rgba(0,0,0,.7);
}
.reel-frame video{width:100%; height:100%; object-fit:cover; display:block;}
.video-copy{max-width:480px;}
.video-copy p.sub-lead{margin:14px 0 0; font-size:.92rem; color:var(--cream-dim);}
@media (max-width:900px){
  .stats-strip{grid-template-columns:repeat(2,1fr);}
  .stat-item:nth-child(3){border-left:none;}
  .real-testi-grid{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .video-spotlight{grid-template-columns:1fr; justify-items:center; text-align:center;}
  .reel-frame{max-width:280px;}
}

/* =========================================================
   QUOTE READ-MORE (details/summary, no JS needed)
   ========================================================= */
details.quote-toggle{margin:0;}
details.quote-toggle summary{
  list-style:none; cursor:pointer; font-family:var(--serif); font-style:italic;
  font-size:.96rem; color:var(--cream); line-height:1.55; margin:0;
}
details.quote-toggle summary::-webkit-details-marker{display:none;}
details.quote-toggle .toggle-label{
  display:inline-block; margin-left:6px; font-family:var(--sans); font-style:normal;
  font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-light);
  border-bottom:1px solid var(--gold-dim); white-space:nowrap;
}
details.quote-toggle[open] summary .toggle-label{display:none;}
details.quote-toggle .quote-rest{
  font-family:var(--serif); font-style:italic; font-size:.96rem; color:var(--cream-dim);
  line-height:1.55; margin:10px 0 0;
}
details.quote-toggle .quote-close{
  display:none; margin-top:10px; font-family:var(--sans); font-style:normal;
  font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-light);
  border-bottom:1px solid var(--gold-dim); cursor:pointer; background:none;
}
details.quote-toggle[open] .quote-close{display:inline-block;}
.spotlight-quote details.quote-toggle summary{font-size:clamp(1.1rem,2.2vw,1.4rem); text-align:center;}
.spotlight-quote details.quote-toggle .quote-rest{font-size:clamp(1.1rem,2.2vw,1.4rem); text-align:center; max-width:840px; margin:10px auto 0;}

/* =========================================================
   POLICY ACCEPTANCE & FLOATING MODAL (reservar.html)
   ========================================================= */
.policy-acceptance-box {
  background: var(--charcoal-2);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 22px 24px;
  margin: 22px 0 26px;
  transition: border-color .3s var(--ease), background-color .3s var(--ease), box-shadow .3s var(--ease);
}
.policy-acceptance-box.accepted {
  border-color: rgba(198, 154, 84, 0.6);
  background: rgba(30, 24, 28, 0.9);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.policy-acceptance-box.has-error {
  border-color: #d9534f;
  animation: svvShakeBox .35s ease;
}
@keyframes svvShakeBox {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-6px); }
  75% { transform: translateX(6px); }
}

.policy-checkbox-line {
  display: flex;
  align-items: flex-start;
}
.policy-custom-check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  position: relative;
  user-select: none;
  font-size: 0.98rem;
  line-height: 1.5;
  color: var(--cream);
}
.policy-custom-check input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 22px;
  width: 22px;
  z-index: 1;
}
.policy-checkmark {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  margin-top: 2px;
  background: var(--charcoal);
  border: 1.5px solid var(--gold-dim);
  border-radius: 5px;
  transition: all .2s var(--ease);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.policy-custom-check:hover .policy-checkmark {
  border-color: var(--gold-light);
}
.policy-custom-check input[type="checkbox"]:focus + .policy-checkmark {
  box-shadow: 0 0 0 3px rgba(198, 154, 84, 0.25);
}
.policy-custom-check input[type="checkbox"]:checked + .policy-checkmark {
  background: var(--gold);
  border-color: var(--gold);
}
.policy-custom-check input[type="checkbox"]:checked + .policy-checkmark::after {
  content: "";
  display: block;
  width: 6px;
  height: 11px;
  border: solid var(--black);
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
  margin-bottom: 2px;
}

.policy-label-content {
  color: var(--cream);
  font-weight: 400;
}
.policy-modal-link-btn {
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
  font-size: inherit;
  color: var(--gold-light);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  font-weight: 500;
  transition: color .2s var(--ease);
}
.policy-modal-link-btn:hover {
  color: #fff;
}
.policy-star {
  color: var(--gold-light);
  font-weight: 700;
  margin-left: 3px;
}

.policy-summary-caption {
  margin: 10px 0 14px 34px;
  font-size: 0.84rem;
  color: var(--cream-dim);
  line-height: 1.55;
}
.policy-actions-row {
  margin-left: 34px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.policy-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  color: var(--gold-light);
  background: rgba(198, 154, 84, 0.12);
  border: 1px solid rgba(198, 154, 84, 0.3);
  padding: 4px 12px;
  border-radius: 20px;
}
.policy-error-msg {
  margin-top: 12px;
  margin-left: 34px;
  color: #ff8585;
  font-size: 0.88rem;
  font-weight: 400;
}

/* Floating Modal Overlay */
.policy-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(12, 10, 13, 0.82);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .3s var(--ease), visibility .3s var(--ease);
}
.policy-modal-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.policy-modal-card {
  background: var(--charcoal);
  border: 1px solid rgba(198, 154, 84, 0.35);
  border-radius: 14px;
  max-width: 780px;
  width: 100%;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(198, 154, 84, 0.15);
  transform: translateY(20px) scale(.98);
  transition: transform .3s var(--ease);
  overflow: hidden;
}
.policy-modal-overlay.is-open .policy-modal-card {
  transform: translateY(0) scale(1);
}

.policy-modal-header {
  padding: 24px 28px 18px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  position: relative;
}
.policy-modal-title {
  font-family: var(--serif);
  font-size: 1.55rem;
  color: var(--cream);
  margin: 2px 0 4px;
  line-height: 1.25;
}
.policy-modal-sub {
  margin: 0;
  font-size: 0.88rem;
  color: var(--cream-dim);
}
.policy-modal-close {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(198, 154, 84, 0.2);
  color: var(--cream);
  font-size: 1.8rem;
  line-height: 1;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .2s var(--ease);
  flex-shrink: 0;
}
.policy-modal-close:hover {
  background: var(--gold);
  color: var(--black);
  border-color: var(--gold);
  transform: rotate(90deg);
}

.policy-modal-body {
  padding: 22px 28px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.policy-modal-body::-webkit-scrollbar {
  width: 6px;
}
.policy-modal-body::-webkit-scrollbar-track {
  background: var(--charcoal-2);
}
.policy-modal-body::-webkit-scrollbar-thumb {
  background: var(--gold-dim);
  border-radius: 3px;
}

/* Notice Banner - NO UNEDITED PHOTOS */
.policy-notice-banner {
  background: linear-gradient(135deg, rgba(74, 21, 36, 0.5) 0%, rgba(30, 24, 28, 0.8) 100%);
  border: 1px solid rgba(198, 154, 84, 0.4);
  border-left: 4px solid var(--gold);
  border-radius: 8px;
  padding: 16px 20px;
  margin-bottom: 22px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.pnb-icon {
  flex-shrink: 0;
  margin-top: 2px;
}
.pnb-icon svg {
  width: 22px;
  height: 22px;
  stroke: var(--gold-light);
  fill: none;
  stroke-width: 2;
}
.pnb-title {
  margin: 0 0 6px;
  font-size: 0.98rem;
  color: var(--gold-light);
  font-weight: 600;
  letter-spacing: .02em;
}
.pnb-text p {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--cream);
}

/* Policies Grid */
.policy-sections-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (max-width: 680px) {
  .policy-sections-list {
    grid-template-columns: 1fr;
  }
}
.policy-item-card {
  background: var(--charcoal-2);
  border: 1px solid rgba(198, 154, 84, 0.16);
  border-radius: 8px;
  padding: 14px 16px;
  transition: border-color .2s var(--ease);
}
.policy-item-card:hover {
  border-color: rgba(198, 154, 84, 0.35);
}
.pic-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.pic-num {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--gold);
  background: rgba(198, 154, 84, 0.12);
  padding: 2px 7px;
  border-radius: 4px;
  border: 1px solid rgba(198, 154, 84, 0.25);
}
.pic-header h4 {
  margin: 0;
  font-size: 0.92rem;
  color: var(--cream);
  font-weight: 500;
}
.policy-item-card p {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--cream-dim);
}

.policy-modal-footer {
  padding: 16px 28px;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  background: var(--charcoal);
}

@media (max-width: 600px) {
  .policy-modal-card {
    max-height: 94vh;
  }
  .policy-modal-header {
    padding: 18px 20px 14px;
  }
  .policy-modal-body {
    padding: 16px 20px;
  }
  .policy-modal-footer {
    padding: 14px 20px;
    flex-direction: column-reverse;
  }
  .policy-modal-footer .btn {
    width: 100%;
    justify-content: center;
  }
  .policy-summary-caption,
  .policy-actions-row,
  .policy-error-msg {
    margin-left: 0;
  }
}
