/* ═══════════════════════════════════════════════════
   Classic Old-Money — centered, symmetrical, ceremonial.
   Baskerville/Big Caslon serif throughout, thin hairline borders
   with decorative corner brackets, wide-letterspaced small-caps
   eyebrows, short gold divider rules between every section.
   Palette tokens (--gold-flat, --c-bg, --c-s1..4, --md-sys-color-*)
   are injected per-generation by src/paletteEngine.js — this file
   only defines how those tokens are USED, never hard-codes hex.
   ═══════════════════════════════════════════════════ */

:root {
  --font-display: Baskerville, 'Big Caslon', Georgia, serif;
  --font-body:    Baskerville, 'Big Caslon', Georgia, serif;
  --font-ui:      Baskerville, 'Big Caslon', Georgia, serif;

  --section-padding: 120px 0;
  --container-max:   1160px;

  --c-bg: #10201A;
  --c-s1: #142620;
  --c-s2: #182C25;
  --c-s3: #1D332A;
  --c-s4: #223A30;
  --gold-flat: #B29553;
  --hairline: rgba(255,255,255,0.14);

  --ease: all 0.2s ease;
}

/* ── Reset & Base ─────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { scroll-behavior: smooth; }
body  {
  font-family: var(--font-body);
  background: var(--c-bg);
  color: var(--text-body);
  line-height: 1.75;
  overflow-x: hidden;
  text-align: center;
}
img   { display: block; width: 100%; height: 100%; object-fit: cover; }
a     { color: inherit; text-decoration: none; }
ul    { list-style: none; }

.cq0rp_container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 24px;
}
.cq0rp_section { padding: var(--section-padding); border-top: 1px solid var(--hairline); }

/* ── The signature framing device: hairline border + decorative
   corner brackets. Applied to Hero, Testimonials, Contact. ── */
.cq0rp_frame {
  position: relative;
  border: 1px solid color-mix(in srgb, var(--gold-flat) 35%, transparent);
  padding: clamp(40px, 6vw, 72px) clamp(24px, 4vw, 48px);
}
.cq0rp_frame::before,
.cq0rp_frame::after {
  content: '';
  position: absolute;
  width: 30px;
  height: 30px;
  border: 1px solid var(--gold-flat);
}
.cq0rp_frame::before { top: -8px; left: -8px; border-right: none; border-bottom: none; }
.cq0rp_frame::after  { bottom: -8px; right: -8px; border-left: none; border-top: none; }

/* ── Divider rule — short, centered, gold ─────────── */
.cq0rp_rule {
  width: 84px;
  height: 1px;
  background: var(--gold-flat);
  margin: 28px auto;
}

/* ── Buttons ──────────────────────────────────────── */
.cq0rp_btn-filled,
.cq0rp_btn-outlined,
.cq0rp_btn-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 30px;
  border-radius: 0;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  line-height: 1;
  transition: var(--ease);
  border: 1px solid var(--gold-flat);
}
.cq0rp_btn-filled {
  background: var(--gold-flat);
  color: var(--md-sys-color-on-primary, #161311);
}
.cq0rp_btn-filled:hover { opacity: 0.86; }
.cq0rp_btn-filled:active { opacity: 0.72; }

.cq0rp_btn-outlined {
  background: transparent;
  color: var(--text-heading);
}
.cq0rp_btn-outlined:hover { background: color-mix(in srgb, var(--gold-flat) 12%, transparent); }

.cq0rp_btn-text {
  background: transparent;
  border-color: transparent;
  color: var(--gold-flat);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.cq0rp_btn-text:hover { opacity: 0.75; }

.cq0rp_card-elevated {
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  overflow: hidden;
}

/* ── Typography helpers ───────────────────────────── */
.cq0rp_section-eyebrow {
  display: block;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold-flat);
  margin-bottom: 6px;
}
.cq0rp_section-title {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.01em;
  color: var(--text-heading);
}
.cq0rp_section-title.cq0rp_light { color: var(--text-heading); }
.cq0rp_section-subtitle {
  font-family: var(--font-ui);
  font-style: italic;
  font-size: 1rem;
  color: var(--text-secondary);
  max-width: 560px;
  margin: 0 auto;
  opacity: 0.85;
}
.cq0rp_section-body {
  font-size: 1.05rem;
  font-style: italic;
  color: var(--text-secondary);
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.9;
  opacity: 0.9;
}
.cq0rp_section-header {
  margin-bottom: 56px;
}

[data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
[data-reveal].revealed { opacity: 1; transform: none; }

/* ═══════════════════════════════════════ NAVIGATION */
.cq0rp_nav-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  padding: 26px 0;
  transition: var(--ease);
  border-bottom: 1px solid transparent;
}
.cq0rp_nav-header.scrolled {
  background: color-mix(in srgb, var(--c-bg) 96%, transparent);
  border-bottom: 1px solid var(--hairline);
  padding: 16px 0;
}
.cq0rp_nav-inner { display: flex; align-items: center; gap: 40px; }
.cq0rp_nav-logo {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--text-heading);
  white-space: nowrap;
  flex-shrink: 0;
}
.cq0rp_nav-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 32px; row-gap: 6px; margin-left: auto; }
.cq0rp_nav-links a {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-secondary);
  transition: var(--ease);
  padding: 4px 0;
  white-space: nowrap;
  border-bottom: 1px solid transparent;
}
.cq0rp_nav-links a:hover { color: var(--gold-flat); border-bottom-color: var(--gold-flat); }

.cq0rp_nav-burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.cq0rp_nav-burger span { display: block; width: 22px; height: 1px; background: var(--gold-flat); transition: var(--ease); }
.cq0rp_nav-burger.active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.cq0rp_nav-burger.active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.cq0rp_nav-burger.active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ═══════════════════════════════════════════ HERO */
.cq0rp_hero {
  position: relative;
  height: 100vh;
  min-height: 680px;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Symmetrical radial vignette — darker at the edges, keeping the
   centered frame legible without a directional scrim. */
.cq0rp_hero-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at center,
    color-mix(in srgb, var(--c-bg) 40%, transparent) 0%,
    color-mix(in srgb, var(--c-bg) 70%, transparent) 55%,
    color-mix(in srgb, var(--c-bg) 92%, transparent) 100%
  );
}
.cq0rp_hero-content {
  position: relative;
  z-index: 2;
  max-width: 680px;
  padding: 0 24px;
  animation: fadeIn 0.9s ease both;
}
.cq0rp_hero-content .cq0rp_frame { background: color-mix(in srgb, var(--c-bg) 55%, transparent); }
@keyframes fadeIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.cq0rp_hero-eyebrow {
  display: block;
  font-family: var(--font-ui);
  font-size: 12px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold-flat);
  margin-bottom: 14px;
}
.cq0rp_hero-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.6vw, 3.4rem);
  font-weight: 400;
  line-height: 1.15;
  color: var(--text-heading);
}
/* Sits over the hero photo — --text-secondary (a soft ink/bg blend, meant
   for flat page backgrounds) reads poorly here; --text-heading is plain
   ink, meaningfully darker on a light palette / lighter on a dark palette. */
.cq0rp_hero-subtitle {
  font-family: var(--font-ui);
  font-style: italic;
  font-size: clamp(0.95rem, 1.6vw, 1.05rem);
  color: var(--text-heading);
  max-width: 480px;
  margin: 0 auto;
  line-height: 1.7;
}
.cq0rp_hero-actions { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
.cq0rp_hero-scroll {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  color: var(--text-secondary);
  transition: var(--ease);
}
.cq0rp_hero-scroll:hover { color: var(--gold-flat); }
.cq0rp_scroll-arrow { display: block; font-size: 20px; animation: bounceY 2s ease-in-out infinite; }
@keyframes bounceY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(8px); } }

/* ══════════════════════════════════ HIGHLIGHTS STRIP */
.cq0rp_highlights-strip {
  background: var(--c-bg);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  padding: 64px 0;
}
.cq0rp_highlights-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.cq0rp_highlight-item { display: flex; flex-direction: column; gap: 10px; align-items: center; }
.cq0rp_highlight-icon { display: none; }
.cq0rp_highlight-title {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--text-heading);
}
.cq0rp_highlight-desc {
  font-family: var(--font-ui);
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.7;
  opacity: 0.85;
}

/* ═══════════════════════════════════════════ ABOUT */
.cq0rp_about-section { background: var(--c-bg); }
.cq0rp_about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  text-align: left;
}
.cq0rp_about-stats {
  display: flex;
  gap: 36px;
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--hairline);
}
.cq0rp_stat-number {
  display: block;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 400;
  color: var(--gold-flat);
}
.cq0rp_stat-label {
  display: block;
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-top: 6px;
}
.cq0rp_about-image-group { position: relative; }
.cq0rp_about-image {
  border: 1px solid var(--hairline);
  overflow: hidden;
  aspect-ratio: 4/5;
  filter: grayscale(0.15) contrast(1.05);
}
.cq0rp_about-image-inset {
  position: absolute;
  right: -10%;
  bottom: -10%;
  width: 50%;
  aspect-ratio: 4/3;
  border: 5px solid var(--c-bg);
  overflow: hidden;
  box-shadow: 0 16px 32px rgba(0,0,0,0.35);
  filter: grayscale(0.15) contrast(1.05);
}

/* ═══════════════════════════════════════════ ROOMS */
.cq0rp_rooms-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
}
.cq0rp_room-card { overflow: hidden; display: flex; flex-direction: column; background: var(--c-bg); }
.cq0rp_room-card:hover { background: var(--c-s1); }
.cq0rp_featured-card { background: var(--c-s1); }
.cq0rp_room-image-wrap { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.cq0rp_room-image-wrap img { filter: grayscale(0.15) contrast(1.05); }
.cq0rp_room-feature-badge {
  position: absolute;
  bottom: 14px;
  left: 14px;
  background: color-mix(in srgb, var(--c-bg) 82%, transparent);
  border: 1px solid var(--hairline);
  color: var(--text-heading);
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 5px 10px;
}
.cq0rp_room-popular-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  background: var(--gold-flat);
  color: var(--md-sys-color-on-primary, #161311);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 5px 10px;
}
.cq0rp_room-body { padding: 30px; flex: 1; display: flex; flex-direction: column; }
.cq0rp_room-stars { display: none; }
.cq0rp_room-name {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--text-heading);
  margin-bottom: 10px;
}
.cq0rp_room-desc {
  font-family: var(--font-ui);
  font-style: italic;
  font-size: 0.92rem;
  color: var(--text-secondary);
  line-height: 1.75;
  flex: 1;
  margin-bottom: 22px;
  opacity: 0.88;
}
.cq0rp_room-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--hairline);
}
.cq0rp_room-price {
  font-family: var(--font-display);
  font-size: 1.15rem;
  color: var(--gold-flat);
  letter-spacing: 0.04em;
}
.cq0rp_room-price small {
  font-family: var(--font-ui);
  font-size: 0.65rem;
  color: var(--text-secondary);
}

/* ═══════════════════════════════════════════ CASINO */
.cq0rp_casino-section { border-top: 1px solid var(--hairline); }
.cq0rp_casino-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  text-align: left;
}
.cq0rp_casino-image-group { position: relative; }
.cq0rp_casino-image {
  border: 1px solid var(--hairline);
  overflow: hidden;
  aspect-ratio: 4/5;
  filter: grayscale(0.15) contrast(1.05);
}
.cq0rp_casino-desc {
  font-family: var(--font-ui);
  font-style: italic;
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.85;
  margin-bottom: 40px;
  opacity: 0.9;
}
.cq0rp_casino-features {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 32px;
  margin-bottom: 44px;
}
.cq0rp_casino-feature {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--text-heading);
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.cq0rp_cf-icon { display: none; }

/* ═══════════════════════════════════════════ DINING */
.cq0rp_dining-section { background: var(--c-bg); }
.cq0rp_dining-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  text-align: left;
}
.cq0rp_dining-image-group { position: relative; }
.cq0rp_dining-image {
  border: 1px solid var(--hairline);
  overflow: hidden;
  aspect-ratio: 4/5;
  filter: grayscale(0.15) contrast(1.05);
}
.cq0rp_dining-image-inset {
  position: absolute;
  left: -10%;
  bottom: -10%;
  width: 50%;
  aspect-ratio: 4/3;
  border: 5px solid var(--c-bg);
  overflow: hidden;
  box-shadow: 0 16px 32px rgba(0,0,0,0.35);
  filter: grayscale(0.15) contrast(1.05);
}

/* ═══════════════════════════════════════ AMENITIES */
.cq0rp_amenities-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 56px;
  align-items: center;
  text-align: left;
}
.cq0rp_amenities-image {
  aspect-ratio: 3/4;
  border: 1px solid var(--hairline);
  overflow: hidden;
  filter: grayscale(0.15) contrast(1.05);
}
.cq0rp_amenities-list li {
  padding: 16px 0;
  border-bottom: 1px solid var(--hairline);
  font-family: var(--font-ui);
  font-style: italic;
  font-size: 1rem;
  color: var(--text-secondary);
  opacity: 0.9;
}
.cq0rp_amenities-list li:first-child { border-top: 1px solid var(--hairline); }

/* ══════════════════════════════════ TESTIMONIALS */
.cq0rp_testimonials-section { background: var(--c-bg); }
.cq0rp_testimonial-card.cq0rp_frame { padding: 32px 26px; height: 100%; display: flex; flex-direction: column; gap: 16px; }
.cq0rp_testimonial-stars { display: none; }
.cq0rp_testimonial-text {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-style: italic;
  color: var(--text-heading);
  line-height: 1.65;
  flex: 1;
}
.cq0rp_testimonial-author { display: flex; flex-direction: column; gap: 3px; }
.cq0rp_testimonial-name { font-family: var(--font-ui); font-weight: 600; color: var(--gold-flat); font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; }
.cq0rp_testimonial-location { font-family: var(--font-ui); font-size: 0.78rem; color: var(--text-secondary); opacity: 0.8; }

.cq0rp_testimonials-swiper { padding-bottom: 48px !important; }
.swiper-pagination-bullet { background: var(--hairline); opacity: 1; border-radius: 0; width: 6px; height: 6px; }
.swiper-pagination-bullet-active { background: var(--gold-flat); }

/* ═══════════════════════════════ INTERLUDE (full-bleed visual break) */
.cq0rp_interlude-section { border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); padding: 0; }
.cq0rp_interlude-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--hairline); max-width: none; padding: 0; }
.cq0rp_interlude-item { aspect-ratio: 4/3; overflow: hidden; }
.cq0rp_interlude-item img { filter: grayscale(0.2) contrast(1.05); transition: transform 0.6s ease; }
.cq0rp_interlude-item:hover img { transform: scale(1.04); }

/* ═══════════════════════════════ MORE SERVICES */
.cq0rp_more-services-section { background: var(--c-bg); }
.cq0rp_more-services-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }

/* ═══════════════════════════════════════════ CONTACT */
.cq0rp_contact-section { background: var(--c-bg); }
.cq0rp_contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; text-align: left; }
.cq0rp_contact-info.cq0rp_frame { text-align: center; }
.cq0rp_contact-details { display: flex; flex-direction: column; gap: 20px; margin: 28px 0; align-items: center; }
.cq0rp_contact-item { display: flex; align-items: center; gap: 14px; color: var(--text-secondary); font-size: 0.95rem; }
.cq0rp_contact-icon { display: none; }
.cq0rp_contact-item a:hover { color: var(--gold-flat); }
.cq0rp_contact-actions { display: flex; gap: 12px; align-items: center; justify-content: center; flex-wrap: wrap; }

.cq0rp_hotel-map {
  aspect-ratio: 4/5;
  border: 1px solid var(--hairline);
  overflow: hidden;
  isolation: isolate;
  filter: grayscale(0.2);
}
.cq0rp_map-pin {
  width: 40px; height: 40px;
  background: var(--gold-flat);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--md-sys-color-on-primary, #161311); font-size: 18px;
  border: 2px solid color-mix(in srgb, var(--c-bg) 60%, white);
}
.leaflet-popup-content-wrapper { background: var(--c-s2) !important; border: 1px solid var(--hairline) !important; border-radius: 0 !important; box-shadow: none !important; color: var(--text-body) !important; }
.leaflet-popup-content-wrapper strong { color: var(--gold-flat); }
.leaflet-popup-content-wrapper span { font-size: 12px; color: var(--text-secondary); }
.leaflet-popup-tip-container .leaflet-popup-tip { background: var(--c-s2) !important; }
.leaflet-popup-close-button { color: var(--text-secondary) !important; }
.leaflet-popup-close-button:hover { color: var(--gold-flat) !important; }
.leaflet-bar a { background: var(--c-s2) !important; color: var(--gold-flat) !important; border-color: var(--hairline) !important; }
.leaflet-bar a:hover { background: var(--c-s3) !important; }
.leaflet-control-attribution { background: color-mix(in srgb, var(--c-bg) 75%, transparent) !important; color: var(--text-secondary) !important; font-size: 10px !important; }
.leaflet-control-attribution a { color: var(--text-secondary) !important; }

/* ═══════════════════════════════════════════ FOOTER */
.cq0rp_footer { background: var(--c-bg); border-top: 1px solid var(--hairline); text-align: left; }
.cq0rp_footer-inner { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; padding: 72px 24px; max-width: var(--container-max); margin: 0 auto; }
.cq0rp_footer-logo { display: block; font-family: var(--font-display); font-size: 1.3rem; color: var(--text-heading); margin-bottom: 14px; }
.cq0rp_footer-brand p { font-family: var(--font-ui); font-size: 0.85rem; color: var(--text-secondary); line-height: 1.7; max-width: 240px; opacity: 0.85; }
.cq0rp_footer-links h4 { font-family: var(--font-ui); font-size: 10px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-flat); margin-bottom: 20px; }
.cq0rp_footer-links ul { display: flex; flex-direction: column; gap: 12px; }
.cq0rp_footer-links a { font-family: var(--font-ui); font-size: 13px; color: var(--text-secondary); transition: var(--ease); opacity: 0.85; }
.cq0rp_footer-links a:hover { color: var(--gold-flat); opacity: 1; }
.cq0rp_footer-bottom {
  border-top: 1px solid var(--hairline);
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 22px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  text-align: center;
}
.cq0rp_footer-bottom p { font-family: var(--font-ui); font-size: 12px; color: var(--text-secondary); }
.cq0rp_gambling-notice { font-size: 11px !important; }

/* ══════════════════════════════════ COOKIE BANNER */
.cq0rp_cookie-banner {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 999;
  background: var(--c-s1);
  border-top: 1px solid var(--hairline);
  padding: 18px 0;
  transition: transform 0.3s ease, opacity 0.3s ease;
  text-align: left;
}
.cq0rp_cookie-banner.hidden { transform: translateY(110%); opacity: 0; pointer-events: none; }
.cq0rp_cookie-banner-inner { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.cq0rp_cookie-banner-text { flex: 1; font-family: var(--font-ui); font-size: 13px; color: var(--text-secondary); line-height: 1.6; min-width: 240px; }
.cq0rp_cookie-banner-text strong { color: var(--text-heading); }
.cq0rp_cookie-banner-text a { color: var(--gold-flat); text-decoration: underline; text-underline-offset: 3px; }
.cq0rp_cookie-banner-actions { display: flex; gap: 12px; flex-shrink: 0; }
.cq0rp_cookie-btn-accept, .cq0rp_cookie-btn-reject {
  padding: 10px 22px;
  border: 1px solid var(--gold-flat);
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: var(--ease);
}
.cq0rp_cookie-btn-accept { background: var(--gold-flat); color: var(--md-sys-color-on-primary, #161311); }
.cq0rp_cookie-btn-accept:hover { opacity: 0.86; }
.cq0rp_cookie-btn-reject { background: transparent; color: var(--text-heading); }
.cq0rp_cookie-btn-reject:hover { background: color-mix(in srgb, var(--gold-flat) 12%, transparent); }

/* ═══════════════════════════════ LEGAL / COMPLIANCE PAGES */
.cq0rp_legal-page { padding: 140px 0 100px; min-height: 80vh; text-align: left; }
.cq0rp_legal-header { margin-bottom: 48px; border-bottom: 1px solid var(--hairline); padding-bottom: 28px; text-align: center; }
.cq0rp_legal-header h1 { font-family: var(--font-display); font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 400; color: var(--text-heading); margin-bottom: 8px; }
.cq0rp_legal-meta { font-family: var(--font-ui); font-size: 13px; color: var(--text-secondary); }
.cq0rp_legal-notice {
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  border-left: 2px solid var(--gold-flat);
  padding: 22px 26px;
  margin-bottom: 44px;
  font-size: 0.95rem;
  font-style: italic;
  color: var(--text-secondary);
  line-height: 1.8;
}
.cq0rp_legal-notice--warning { border-left-color: #C0524A; }
.cq0rp_legal-notice--warning strong { color: #D68880; }
.cq0rp_legal-warning {
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  border-left: 2px solid #C0524A;
  padding: 22px 26px;
  margin: 16px 0 24px;
  font-size: 0.95rem;
  color: #D68880;
  line-height: 1.7;
}
.cq0rp_legal-section { margin-bottom: 48px; }
.cq0rp_legal-section h2 {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 400;
  color: var(--text-heading);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--hairline);
}
.cq0rp_legal-section h3 { font-family: var(--font-ui); font-size: 1rem; font-weight: 600; color: var(--text-heading); margin: 24px 0 12px; }
.cq0rp_legal-section p { font-size: 1rem; color: var(--text-secondary); line-height: 1.9; margin-bottom: 18px; }
.cq0rp_legal-section a { color: var(--gold-flat); text-decoration: underline; text-underline-offset: 3px; }
.cq0rp_legal-section a:hover { opacity: 0.8; }
.cq0rp_legal-section ul, .cq0rp_legal-section ol { margin: 12px 0 20px 24px; display: flex; flex-direction: column; gap: 10px; }
.cq0rp_legal-section ul { list-style: disc; }
.cq0rp_legal-section ol { list-style: decimal; }
.cq0rp_legal-section li { font-size: 1rem; color: var(--text-secondary); line-height: 1.8; }
.cq0rp_legal-section ul ul { margin-top: 8px; list-style: circle; }
.cq0rp_legal-box { background: var(--c-s1); border: 1px solid var(--hairline); padding: 22px 26px; margin: 16px 0 24px; font-size: 0.92rem; color: var(--text-secondary); line-height: 1.85; }
.cq0rp_table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; box-shadow: inset -12px 0 8px -8px rgba(0,0,0,0.18); }
.cq0rp_legal-table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 16px 0 24px; font-size: 0.875rem; background: var(--c-s2); border: 1px solid var(--hairline); }
.cq0rp_legal-table thead th { padding: 12px 16px; text-align: left; font-family: var(--font-ui); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-flat); background: var(--c-s2); border-bottom: 1px solid var(--hairline); border-right: 1px solid var(--hairline); }
.cq0rp_legal-table thead th:last-child { border-right: none; }
.cq0rp_legal-table tbody tr:nth-child(even) { background: var(--c-s2); }
.cq0rp_legal-table tbody td { padding: 12px 16px; color: var(--text-secondary); vertical-align: top; line-height: 1.6; border-bottom: 1px solid var(--hairline); border-right: 1px solid var(--hairline); }
.cq0rp_legal-table tbody td:last-child { border-right: none; }
.cq0rp_legal-table tbody tr:last-child td { border-bottom: none; }
.cq0rp_helplines-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--hairline); border: 1px solid var(--hairline); margin: 24px 0; }
.cq0rp_helpline-card { background: var(--c-bg); padding: 26px 22px; }
.cq0rp_helpline-card h3 { font-family: var(--font-display); font-size: 1.05rem; font-weight: 400; color: var(--text-heading); margin: 0 0 10px; }
.cq0rp_helpline-card p { font-family: var(--font-ui); font-size: 0.85rem; margin-bottom: 4px; color: var(--text-secondary); }
.cq0rp_helpline-card strong { color: var(--gold-flat); }
.cq0rp_helpline-card a { font-size: 0.85rem; color: var(--gold-flat); text-decoration: underline; }
.cq0rp_footer-legal-id { font-size: 0.75rem !important; color: var(--text-secondary) !important; margin-top: 8px !important; }

/* ═══════════════════════════════════ BOOKING MODAL */
.cq0rp_bm { position: fixed; inset: 0; z-index: 500; display: flex; align-items: center; justify-content: center; padding: 16px; }
.cq0rp_bm[hidden] { display: none; }
.cq0rp_bm-overlay { position: absolute; inset: 0; background: color-mix(in srgb, black 82%, transparent); opacity: 0; transition: opacity 0.28s ease; }
.cq0rp_bm.open .cq0rp_bm-overlay { opacity: 1; }
.cq0rp_bm-dialog {
  position: relative; z-index: 1;
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  padding: 44px 40px;
  width: 100%; max-width: 460px;
  max-height: 92vh; overflow-y: auto;
  opacity: 0; transform: translateY(16px);
  transition: opacity 0.28s ease, transform 0.28s ease;
  text-align: center;
}
.cq0rp_bm.open .cq0rp_bm-dialog { opacity: 1; transform: none; }
.cq0rp_bm-close { position: absolute; top: 16px; right: 18px; background: none; border: none; color: var(--text-secondary); font-size: 16px; cursor: pointer; padding: 6px; line-height: 1; transition: color 0.2s; }
.cq0rp_bm-close:hover { color: var(--gold-flat); }
.cq0rp_bm-header { margin-bottom: 24px; }
.cq0rp_bm-header h2 { font-family: var(--font-display); font-weight: 400; font-size: 1.6rem; color: var(--text-heading); margin-bottom: 6px; }
.cq0rp_bm-subtitle { font-family: var(--font-ui); font-style: italic; font-size: 0.85rem; color: var(--text-secondary); opacity: 0.85; }
.cq0rp_bm-room-tag { display: inline-block; background: transparent; border: 1px solid var(--gold-flat); color: var(--gold-flat); font-family: var(--font-ui); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; padding: 5px 12px; margin-bottom: 18px; }
.cq0rp_bm-room-tag[hidden] { display: none; }
.cq0rp_bm-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; text-align: left; }
.cq0rp_bm-field label { font-family: var(--font-ui); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-secondary); }
.cq0rp_bm-field input, .cq0rp_bm-field select {
  background: var(--c-bg);
  border: 1px solid var(--hairline);
  padding: 12px 14px;
  font-family: var(--font-ui); font-size: 0.9rem;
  color: var(--text-body); outline: none;
  transition: border-color 0.2s;
  -webkit-appearance: none; appearance: none;
}
.cq0rp_bm-field input::placeholder { color: var(--text-secondary); opacity: 0.6; }
.cq0rp_bm-field input:focus, .cq0rp_bm-field select:focus { border-color: var(--gold-flat); }
.cq0rp_bm-field input.error { border-color: #C0524A; }
.cq0rp_bm-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cq0rp_bm-submit {
  width: 100%; padding: 14px; margin-top: 8px;
  background: var(--gold-flat); color: var(--md-sys-color-on-primary, #161311);
  border: none;
  font-family: var(--font-ui); font-size: 12px;
  font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  cursor: pointer; transition: opacity 0.2s;
}
.cq0rp_bm-submit:hover { opacity: 0.86; }
.cq0rp_bm-submit:active { opacity: 0.72; }
.cq0rp_bm-submit:disabled { opacity: 0.5; cursor: not-allowed; }
.cq0rp_bm-success { text-align: center; padding: 16px 0; }
.cq0rp_bm-success-icon { width: 56px; height: 56px; border-radius: 50%; background: transparent; border: 1px solid var(--gold-flat); color: var(--gold-flat); font-size: 24px; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; }
.cq0rp_bm-success h3 { font-family: var(--font-display); font-weight: 400; font-size: 1.3rem; color: var(--text-heading); margin-bottom: 10px; }
.cq0rp_bm-success p { font-family: var(--font-ui); font-size: 0.9rem; color: var(--text-secondary); line-height: 1.7; margin-bottom: 26px; }
.cq0rp_bm-close-btn {
  background: none; border: 1px solid var(--gold-flat);
  color: var(--text-heading);
  padding: 10px 30px;
  font-family: var(--font-ui); font-size: 12px; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  cursor: pointer; transition: var(--ease);
}
.cq0rp_bm-close-btn:hover { background: color-mix(in srgb, var(--gold-flat) 12%, transparent); }

/* ═══════════════════════════════════ SERVICE PAGES */
.cq0rp_service-page { padding-top: 88px; text-align: left; }
.cq0rp_service-hero { position: relative; height: 420px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.cq0rp_service-hero-overlay { position: absolute; inset: 0; background: radial-gradient(ellipse at center, color-mix(in srgb, var(--c-bg) 40%, transparent) 0%, color-mix(in srgb, var(--c-bg) 90%, transparent) 100%); }
.cq0rp_service-hero-content { position: relative; z-index: 1; text-align: center; }
.cq0rp_service-hero-content h1 { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 400; color: var(--text-heading); margin-top: 10px; }
.cq0rp_service-body { padding: 72px 24px 110px; max-width: var(--container-max); margin: 0 auto; }
.cq0rp_service-intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; margin-bottom: 56px; }
.cq0rp_service-intro { font-size: 1.05rem; font-style: italic; color: var(--text-secondary); line-height: 1.9; opacity: 0.9; }
.cq0rp_service-intro-image { aspect-ratio: 4/3; border: 1px solid var(--hairline); overflow: hidden; filter: grayscale(0.15) contrast(1.05); }
.cq0rp_service-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--hairline); border: 1px solid var(--hairline); margin-bottom: 60px; }
.cq0rp_service-feature-card { background: var(--c-bg); padding: 28px 24px; text-align: center; transition: var(--ease); }
.cq0rp_service-feature-card:hover { background: var(--c-s1); }
.cq0rp_service-feature-icon { display: none; }
.cq0rp_service-feature-card h3 { font-family: var(--font-display); font-weight: 400; font-size: 1.05rem; color: var(--text-heading); margin-bottom: 10px; }
.cq0rp_service-feature-card p { font-family: var(--font-ui); font-style: italic; font-size: 0.875rem; color: var(--text-secondary); line-height: 1.7; opacity: 0.85; }
.cq0rp_service-cta-block { text-align: center; padding-top: 16px; }
.cq0rp_service-cta-btn {
  display: inline-block;
  padding: 15px 40px;
  background: var(--gold-flat); color: var(--md-sys-color-on-primary, #161311);
  border: none;
  font-family: var(--font-ui); font-size: 12px;
  font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer; transition: opacity 0.2s;
}
.cq0rp_service-cta-btn:hover { opacity: 0.86; }
.cq0rp_service-cta-btn:active { opacity: 0.72; }

@media (max-width: 768px) {
  .cq0rp_service-features    { grid-template-columns: 1fr 1fr; }
  .cq0rp_service-intro-grid   { grid-template-columns: 1fr; gap: 28px; }
  .cq0rp_bm-row               { grid-template-columns: 1fr; }
  .cq0rp_bm-dialog            { padding: 30px 22px; }
}
@media (max-width: 480px) {
  .cq0rp_service-features { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════ RESPONSIVE */
@media (max-width: 1024px) {
  .cq0rp_about-grid, .cq0rp_dining-grid, .cq0rp_casino-grid, .cq0rp_amenities-layout, .cq0rp_contact-grid { grid-template-columns: 1fr; gap: 44px; }
  .cq0rp_about-image-group    { order: -1; }
  .cq0rp_amenities-image      { order: -1; aspect-ratio: 16/9; }
  .cq0rp_rooms-grid           { grid-template-columns: 1fr 1fr; }
  .cq0rp_footer-inner         { grid-template-columns: 1fr 1fr; }
  .cq0rp_highlights-grid      { gap: 24px; }
  .cq0rp_interlude-grid       { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  :root { --section-padding: 72px 0; }
  .cq0rp_hero { background-attachment: scroll; }

  .cq0rp_nav-inner    { position: relative; justify-content: space-between; gap: 0; }
  .cq0rp_nav-burger   { display: flex; order: 0; flex-shrink: 0; }
  .cq0rp_nav-logo     { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 1rem; }
  /* .cq0rp_nav-header is `position: fixed`, so it's the containing block for this
     absolutely-positioned menu — `top: 100%` docks it flush against the
     header's actual rendered height instead of a hardcoded px guess. */
  .cq0rp_nav-links {
    display: none;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--c-bg);
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 0;
    padding: 20px 0;
    border-bottom: 1px solid var(--hairline);
    z-index: 199;
  }
  .cq0rp_nav-links.open { display: flex; }
  .cq0rp_nav-links li   { width: 100%; text-align: center; }
  .cq0rp_nav-links a    { display: block; padding: 14px; border-bottom: 1px solid var(--hairline); }
  .cq0rp_nav-cta        { display: none; }

  .cq0rp_highlights-grid { grid-template-columns: 1fr; gap: 24px; }
  .cq0rp_rooms-grid      { grid-template-columns: 1fr; }
  .cq0rp_footer-inner    { grid-template-columns: 1fr 1fr; gap: 32px; }
  .cq0rp_footer-bottom   { flex-direction: column; text-align: center; }
  .cq0rp_casino-features { gap: 20px; }
  .cq0rp_about-stats     { gap: 20px; justify-content: center; }

  .cq0rp_about-image-inset,
  .cq0rp_dining-image-inset {
    position: static;
    width: 60%;
    margin: -36px auto 0;
    box-shadow: 0 12px 26px rgba(0,0,0,0.3);
  }
  .cq0rp_interlude-grid { grid-template-columns: 1fr 1fr; }
}

/* This 768px block (tablet: 2-col helplines) must stay BEFORE the 480px
   block below — both queries are active simultaneously on phones narrower
   than 480px, and with equal specificity the one later in the file wins.
   If this were last, its "1fr 1fr" would silently override the 480px
   block's "1fr" on every phone, not just tablets. */
@media (max-width: 768px) {
  .cq0rp_helplines-grid  { grid-template-columns: 1fr 1fr; }
  .cq0rp_legal-page      { padding: 110px 0 64px; }
}

@media (max-width: 480px) {
  .cq0rp_footer-inner    { grid-template-columns: 1fr; }
  .cq0rp_about-stats     { flex-direction: column; gap: 16px; }
  .cq0rp_cookie-banner-inner { flex-direction: column; align-items: stretch; }
  .cq0rp_cookie-banner-actions { justify-content: stretch; }
  .cq0rp_cookie-btn-accept, .cq0rp_cookie-btn-reject { width: 100%; text-align: center; padding: 12px; }
  .cq0rp_helplines-grid  { grid-template-columns: 1fr; }
  .cq0rp_legal-table     { font-size: 0.8rem; min-width: 520px; }
  .cq0rp_interlude-grid  { grid-template-columns: 1fr; }
}

/* 2026-08 policy layout + contrast audit */
body {
  /* Higher-contrast secondary copy on the dark burgundy palette. */
  --text-secondary: color-mix(in srgb, #EDE2D3 80%, #241417 20%);
  /* Dark text on the bronze CTA background passes contrast more reliably than ivory. */
  --md-sys-color-on-primary: #161311;
}

/* Remove inherited opacity reductions that weakened otherwise valid text colours. */
.cq0rp_highlight-desc,
.cq0rp_service-intro,
.cq0rp_service-feature-card p,
.cq0rp_footer-brand p,
.cq0rp_footer-links a,
.cq0rp_bm-subtitle {
  opacity: 1;
}

/* Policy files use plain <section> and <table> elements, so style them directly.
   The entire policy document stays in a single vertical reading column on desktop and mobile. */
.cq0rp_legal-page > .cq0rp_container {
  width: min(100% - 40px, 920px);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.cq0rp_legal-page section {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 0 42px;
  color: var(--text-body);
}

.cq0rp_legal-page section > * {
  max-width: 100%;
}

.cq0rp_legal-page section h1,
.cq0rp_legal-page section h2,
.cq0rp_legal-page section h3 {
  color: var(--text-heading);
  overflow-wrap: anywhere;
}

.cq0rp_legal-page section h1 {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  margin: 0 0 18px;
}

.cq0rp_legal-page section h2 {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.2vw, 1.65rem);
  font-weight: 400;
  margin: 30px 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--hairline);
}

.cq0rp_legal-page section h3 {
  font-family: var(--font-ui);
  font-size: 1rem;
  font-weight: 600;
  margin: 22px 0 10px;
}

.cq0rp_legal-page section p,
.cq0rp_legal-page section li,
.cq0rp_legal-page section dd,
.cq0rp_legal-page section dt {
  color: var(--text-secondary);
  line-height: 1.82;
  opacity: 1;
  overflow-wrap: anywhere;
}

.cq0rp_legal-page section p { margin: 0 0 16px; }
.cq0rp_legal-page section ul,
.cq0rp_legal-page section ol {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin: 12px 0 20px 24px;
  padding: 0;
}
.cq0rp_legal-page section a {
  color: var(--accent2);
  text-decoration: underline;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.cq0rp_legal-page table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  display: table;
  margin: 18px 0 26px;
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  color: var(--text-body);
}
.cq0rp_legal-page th,
.cq0rp_legal-page td {
  padding: 12px 14px;
  border: 1px solid var(--hairline);
  color: var(--text-secondary);
  line-height: 1.55;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}
.cq0rp_legal-page th {
  color: var(--text-heading);
  background: var(--c-s2);
  font-weight: 600;
}

@media (max-width: 768px) {
  .cq0rp_legal-page > .cq0rp_container {
    width: min(100% - 28px, 920px);
  }
  .cq0rp_legal-page section {
    margin-bottom: 34px;
  }
  .cq0rp_legal-page section h2 {
    margin-top: 24px;
  }
  /* Keep each table inside the same one-column flow without pushing the page wider. */
  .cq0rp_legal-page table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    min-width: 0;
  }
}

@media (max-width: 480px) {
  .cq0rp_legal-page > .cq0rp_container {
    width: min(100% - 22px, 920px);
  }
  .cq0rp_legal-page section p,
  .cq0rp_legal-page section li,
  .cq0rp_legal-page section dd,
  .cq0rp_legal-page section dt {
    font-size: 0.95rem;
    line-height: 1.72;
  }
  /* Override the older fixed 520px legal-table rule where that class is present. */
  .cq0rp_legal-page .cq0rp_legal-table {
    min-width: 0;
  }
}
