/* ── Global ──────────────────────────────────────────────────────────────── */
html { scroll-behavior: smooth; overflow-x: hidden; }
body { overflow-x: hidden; }
h1,h2,h3,h4,h5,h6 { font-family: 'Playfair Display', serif; }

/* ── Utilities ───────────────────────────────────────────────────────────── */
.hide-scrollbar::-webkit-scrollbar { display:none; }
.hide-scrollbar { -ms-overflow-style:none; scrollbar-width:none; }

.luxury-gradient { background: linear-gradient(135deg,hsl(38,40%,45%) 0%,hsl(35,15%,25%) 100%); }

.glass-panel {
  background: rgba(253,250,244,.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.2);
  box-shadow: 0 4px 24px rgba(0,0,0,.08);
}

/* ── Scroll reveal ───────────────────────────────────────────────────────── */
[data-reveal] { opacity:1; transform:translateY(24px); transition:opacity .6s ease,transform .6s ease; }
[data-reveal].revealed { opacity:1; transform:none; }
[data-reveal="scale"] { transform:scale(.97); }
[data-reveal="scale"].revealed { transform:scale(1); }
[data-reveal="left"] { transform:translateX(-32px); }
[data-reveal="left"].revealed { transform:none; }
[data-reveal="right"] { transform:translateX(32px); }
[data-reveal="right"].revealed { transform:none; }
[data-delay="100"] { transition-delay:.1s; }
[data-delay="150"] { transition-delay:.15s; }
[data-delay="200"] { transition-delay:.2s; }
[data-delay="300"] { transition-delay:.3s; }
[data-delay="400"] { transition-delay:.4s; }
[data-delay="500"] { transition-delay:.5s; }
[data-delay="600"] { transition-delay:.6s; }

/* ── Announcement bar ────────────────────────────────────────────────────── */
.announce-text { transition: opacity .4s, transform .4s; }
.announce-out  { opacity:0; transform:translateY(-12px); }

/* ── Sticky bar ──────────────────────────────────────────────────────────── */
#sticky-bar { transform:translateY(-100%); transition:transform .25s ease; }
#sticky-bar.visible { transform:translateY(0); }

/* ── Mobile menu ─────────────────────────────────────────────────────────── */
#mobile-menu { display:none; }
#mobile-menu.open { display:block; }

/* ── Desktop sidebar ─────────────────────────────────────────────────────── */
.sidebar-btn { transition: transform .2s; }
.sidebar-btn:hover { transform: translateX(-8px); }
.sidebar-label { max-width:0; overflow:hidden; white-space:nowrap; opacity:0; transition: max-width .2s, opacity .2s; }
.sidebar-btn:hover .sidebar-label { max-width:160px; opacity:1; }

/* ── WhatsApp bubble pulse ───────────────────────────────────────────────── */
@keyframes wapulse { 0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.45)} 50%{box-shadow:0 0 0 14px rgba(37,211,102,0)} }
.wa-pulse { animation: wapulse 2s ease infinite; }

/* ── FAQ accordion ───────────────────────────────────────────────────────── */
.faq-body { max-height:0; overflow:hidden; transition:max-height .35s ease, padding .35s ease; }
.faq-body.open { max-height:500px; }
.faq-icon { transition: transform .3s; }
.faq-open .faq-icon { transform: rotate(45deg); }

/* ── Gallery ─────────────────────────────────────────────────────────────── */
#lightbox { display:none; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.92); align-items:center; justify-content:center; }
#lightbox.open { display:flex; }
#lightbox img { max-width:90vw; max-height:90vh; object-fit:contain; border-radius:8px; }
.gal-filter.active { background:hsl(38,40%,45%); color:hsl(40,33%,98%); border-color:hsl(38,40%,45%); }
.gal-item { transition: opacity .3s, transform .3s; }
.gal-item.hidden { display:none; }

/* ── Wizard steps ────────────────────────────────────────────────────────── */
.wiz-step { display:none; }
.wiz-step.active { display:block; }

/* ── Card hover ──────────────────────────────────────────────────────────── */
.hover-lift { transition: transform .2s, box-shadow .2s; }
.hover-lift:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.12); }

/* ── Reduce motion ───────────────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
  html { scroll-behavior:auto; }
}

/* ── Safe area (mobile bottom bar) ──────────────────────────────────────── */
#fab { padding-bottom: env(safe-area-inset-bottom,0); }
