/* ===== The Royal Castle — shared styles ===== */
:root{
  --gold:#C9A24B; --gold-light:#E7C873; --maroon:#6E1523; --maroon-deep:#4A0E18;
  --cream:#F5EFE2; --ink:#140C0A; --panel:#1E1512;
}
html{ -webkit-font-smoothing:antialiased; }
body{ background:var(--ink); color:var(--cream); font-family:Poppins, sans-serif; overflow-x:hidden; }

/* ---- Light / Dark surfaces ---- */
.surface{ background:var(--ink); }
html:not(.dark) body{ background:var(--ivory); color:#2a1a17; }
html:not(.dark) .surface{ background:var(--ivory); }
html:not(.dark) .panel-bg{ background:#fff; }
.panel-bg{ background:var(--panel); }

/* ---- Glassmorphism nav ---- */
.glass{
  background:rgba(20,12,10,0.55);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid rgba(201,162,75,0.22);
}
html:not(.dark) .glass{
  background:rgba(251,247,239,0.7);
  border-bottom:1px solid rgba(110,21,35,0.15);
}
.glass-card{
  background:rgba(30,21,18,0.55);
  backdrop-filter:blur(10px);
  border:1px solid rgba(201,162,75,0.18);
}
html:not(.dark) .glass-card{
  background:rgba(255,255,255,0.7);
  border:1px solid rgba(110,21,35,0.12);
}

/* ---- Gold text + rules ---- */
.text-goldgrad{
  background:linear-gradient(100deg,#E7C873 0%,#C9A24B 40%,#A67C2E 60%,#E7C873 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.rule-gold{ height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); }
.divider-orn{ display:flex; align-items:center; gap:1rem; color:var(--gold); }
.divider-orn::before,.divider-orn::after{ content:""; flex:1; height:1px; background:linear-gradient(90deg,transparent,rgba(201,162,75,.5)); }
.divider-orn::after{ background:linear-gradient(90deg,rgba(201,162,75,.5),transparent); }

/* ---- Parallax ---- */
.parallax{ background-attachment:fixed; background-position:center; background-size:cover; }
@media (max-width:768px){ .parallax{ background-attachment:scroll; } }

/* ---- Reveal on scroll ---- */
.reveal{ opacity:0; transform:translateY(38px); transition:opacity .9s cubic-bezier(.16,.84,.44,1), transform .9s cubic-bezier(.16,.84,.44,1); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.12s } .reveal[data-d="2"]{ transition-delay:.24s }
.reveal[data-d="3"]{ transition-delay:.36s } .reveal[data-d="4"]{ transition-delay:.48s }

/* ---- Buttons ---- */
.btn-gold{
  background:linear-gradient(100deg,#E7C873,#C9A24B 55%,#A67C2E);
  color:#2a0c11; font-weight:600; letter-spacing:.04em;
  box-shadow:0 10px 30px -10px rgba(201,162,75,.6);
  transition:transform .25s, box-shadow .25s, filter .25s;
}
.btn-gold:hover{ transform:translateY(-2px); filter:brightness(1.06); box-shadow:0 16px 40px -12px rgba(201,162,75,.8); }
.btn-ghost{ border:1px solid var(--gold); color:var(--gold); transition:background .25s,color .25s; }
.btn-ghost:hover{ background:var(--gold); color:#2a0c11; }

/* ---- Card hover ---- */
.lift{ transition:transform .4s cubic-bezier(.16,.84,.44,1), box-shadow .4s; }
.lift:hover{ transform:translateY(-8px); box-shadow:0 30px 60px -25px rgba(0,0,0,.7); }

/* ---- Media zoom ---- */
.media-zoom img{ transition:transform .8s cubic-bezier(.16,.84,.44,1); }
.media-zoom:hover img{ transform:scale(1.08); }

/* ---- Amenity tag ---- */
.amen-pill{ border:1px solid rgba(201,162,75,.28); transition:.3s; }
.amen-pill:hover{ background:var(--gold); color:#2a0c11; border-color:var(--gold); transform:translateY(-3px); }

/* ---- Lightbox ---- */
#lightbox{ background:rgba(10,6,5,.94); backdrop-filter:blur(6px); }
.no-scroll{ overflow:hidden; }

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

/* ---- Scrollbar ---- */
::-webkit-scrollbar{ width:10px } ::-webkit-scrollbar-thumb{ background:linear-gradient(var(--gold),var(--maroon)); border-radius:8px }
::-webkit-scrollbar-track{ background:var(--ink) }

::selection{ background:var(--gold); color:#2a0c11; }
.hero-vignette{ background:radial-gradient(120% 90% at 50% 30%, transparent 30%, rgba(20,12,10,.55) 78%, rgba(20,12,10,.95) 100%); }

/* ---- Interior page hero ---- */
.page-hero{ position:relative; overflow:hidden; }
.crumb a:hover{ color:var(--gold); }
