@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Montserrat:wght@300;400;500;600;700&display=swap');

:root{
  --bg:            #FAF6EF;
  --bg-alt:        #F2E9D8;
  --surface:       #FFFFFF;
  --ink:           #2B2318;
  --ink-soft:      #6E6153;
  --gold:          #B8935B;
  --gold-dark:     #8C6B3B;
  --gold-light:    #E7D3AC;
  --border:        #E6DAC2;
  --frame-radius:  2.5rem;
}

html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Montserrat',sans-serif;
  -webkit-font-smoothing:antialiased;
}
.font-display{font-family:'Cormorant Garamond',serif;}

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

/* Divider ornament */
.ornament{display:flex;align-items:center;gap:.75rem;}
.ornament::before,.ornament::after{content:'';height:1px;width:2.5rem;background:var(--gold);}
.ornament-center{justify-content:center;}

/* Reveal on scroll (never used above-the-fold) */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:.1s;}
.reveal-delay-2{transition-delay:.2s;}
.reveal-delay-3{transition-delay:.3s;}
.reveal-delay-4{transition-delay:.4s;}

/* Hero cutout: pre-cut transparent PNG, no mask needed for the silhouette itself */
.hero-cutout img{
  filter: drop-shadow(0 25px 45px rgba(43,35,24,.14));
}
/* Soft blur panel behind the hero text only, so the flowing hair stays
   legible-friendly under the headline without blurring the whole photo. */
.hero-text-blur{
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  background: rgba(250,246,239,.6);
  border-radius: var(--frame-radius);
  border: 1px solid rgba(184,147,91,.22);
}

/* Glass text panel for cards where a photo sits flush above text —
   same frosted-glass language as .hero-text-blur, minus its own radius/border
   since the outer card already owns the rounded frame via overflow-hidden. */
.card-glass{
  background: rgba(255,255,255,.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

/* Consistent rounded corners for all photo/video frames site-wide, same radius as the hero text panel */
.img-round{
  border-radius: var(--frame-radius);
}

/* Golden twinkling sparkles over the hero headline */
@keyframes twinkle{
  0%, 100%{ opacity:0; transform:scale(.3) rotate(0deg); }
  50%{ opacity:1; transform:scale(1) rotate(20deg); }
}
.sparkle{
  position:absolute;
  color:var(--gold);
  pointer-events:none;
  animation:twinkle 3s ease-in-out infinite;
}
.sparkle-1{ top:-10%; left:6%; width:16px; height:16px; animation-delay:.2s; animation-duration:2.6s; }
.sparkle-2{ top:8%; left:98%; width:11px; height:11px; animation-delay:1.5s; animation-duration:3.4s; color:var(--gold-dark); }
.sparkle-3{ top:60%; left:-3%; width:13px; height:13px; animation-delay:2.3s; animation-duration:2.8s; }
.sparkle-4{ top:88%; left:63%; width:9px; height:9px; animation-delay:.9s; animation-duration:3.8s; color:var(--gold-dark); }
.sparkle-5{ top:-14%; left:52%; width:12px; height:12px; animation-delay:3.1s; animation-duration:2.4s; }
@media (prefers-reduced-motion: reduce){
  .sparkle{ animation:none; opacity:.5; }
}

/* Hero gradient + floating gold blobs (no photo) */
.hero-gradient{
  background:
    radial-gradient(circle at 15% 20%, rgba(184,147,91,.22), transparent 55%),
    radial-gradient(circle at 88% 12%, rgba(231,211,172,.65), transparent 50%),
    radial-gradient(circle at 78% 88%, rgba(184,147,91,.16), transparent 55%),
    linear-gradient(160deg, var(--bg) 0%, var(--bg-alt) 55%, var(--bg) 100%);
}
.hero-blob{
  position:absolute;
  border-radius:9999px;
  filter:blur(70px);
  pointer-events:none;
  will-change:transform;
  animation:blobFloat 24s ease-in-out infinite alternate;
}
.hero-blob-1{width:30vw;height:30vw;max-width:460px;max-height:460px;min-width:260px;min-height:260px;background:radial-gradient(circle,var(--gold-light),transparent 70%);top:-10%;left:-8%;opacity:.6;animation-duration:26s;}
.hero-blob-2{width:24vw;height:24vw;max-width:380px;max-height:380px;min-width:220px;min-height:220px;background:radial-gradient(circle,var(--gold),transparent 70%);bottom:-14%;right:-6%;opacity:.32;animation-duration:20s;animation-delay:-6s;}
.hero-blob-3{width:18vw;height:18vw;max-width:280px;max-height:280px;min-width:160px;min-height:160px;background:radial-gradient(circle,var(--gold-light),transparent 70%);top:38%;right:14%;opacity:.4;animation-duration:18s;animation-delay:-10s;}
@keyframes blobFloat{
  0%{transform:translate(0,0) scale(1);}
  50%{transform:translate(4%,-6%) scale(1.08);}
  100%{transform:translate(-3%,4%) scale(0.95);}
}
@media (prefers-reduced-motion: reduce){
  .hero-blob{animation:none;}
}

/* Hero entrance (plays on load, not scroll-gated) */
@keyframes heroIn{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
.hero-in{animation:heroIn .9s ease both;}
.hero-in-1{animation-delay:.05s;}
.hero-in-2{animation-delay:.2s;}
.hero-in-3{animation-delay:.35s;}
.hero-in-4{animation-delay:.5s;}

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

/* Nav link underline */
.nav-link{position:relative;}
.nav-link::after{content:'';position:absolute;left:0;bottom:-4px;width:0;height:1px;background:var(--gold-dark);transition:width .3s ease;}
.nav-link:hover::after,.nav-link.active::after{width:100%;}

/* Buttons */
.btn-primary{
  background:var(--ink);color:var(--bg);
  transition:background .3s ease, color .3s ease, transform .3s ease;
}
.btn-primary:hover{background:var(--gold-dark);color:#fff;}
.btn-ghost{
  border:1.5px solid var(--gold-dark);color:var(--ink);background:transparent;
  transition:background .35s ease, color .35s ease, border-color .35s ease, transform .25s ease, box-shadow .35s ease;
}
.btn-ghost:hover{background:var(--gold-dark);color:#fff;border-color:var(--gold-dark);transform:translateY(-2px);box-shadow:0 10px 24px rgba(140,107,59,.28);}

/* Cards */
.card-hover{transition:transform .4s ease, box-shadow .4s ease;}
.card-hover:hover{transform:translateY(-6px);box-shadow:0 24px 48px -20px rgba(43,35,24,.25);}

.img-zoom{overflow:hidden;}
.img-zoom img{transition:transform .7s ease;}
.img-zoom:hover img{transform:scale(1.08);}

/* Gold text gradient for accents */
.text-gold-shimmer{
  background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-dark));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* Accordion */
.accordion-content{max-height:0;overflow:hidden;transition:max-height .45s ease;}
.accordion-item.open .accordion-content{max-height:400px;}
.accordion-item.open .accordion-icon{transform:rotate(45deg);}
.accordion-icon{transition:transform .3s ease;}

/* Testimonial dots */
.dot{width:8px;height:8px;border-radius:9999px;background:var(--border);transition:background .3s,width .3s;}
.dot.active{background:var(--gold-dark);width:22px;border-radius:9999px;}

/* Lightbox */
#lightbox{transition:opacity .3s ease;}

/* Mobile menu */
#mobile-menu{transition:max-height .4s ease, opacity .3s ease;}

/* Custom checkbox / radio for booking form */
.choice-card input:checked + label{border-color:var(--gold-dark);background:var(--gold-light);}

/* Marquee for gallery / logos */
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.marquee-track{animation:marquee 34s linear infinite;}

/* Scrollbar (subtle) */
::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--gold-light);border-radius:8px;}

.no-scrollbar::-webkit-scrollbar{display:none;}
.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none;}

/* Focus states */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--gold-dark);outline-offset:3px;
}

/* Before/after slider */
.ba-slider{position:relative;overflow:hidden;cursor:ew-resize;user-select:none;touch-action:none;border-radius:var(--frame-radius);}
.ba-slider .after-layer{position:absolute;inset:0;overflow:hidden;width:50%;}
.ba-slider .after-layer img{position:absolute;inset:0;height:100%;width:var(--ba-w,200%);max-width:none;object-fit:cover;}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;transform:translateX(-1px);}
.ba-handle .grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:9999px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(0,0,0,.25);}
