/* ═══════════════════════════════════════════════════
   Jazz Club Marquee — a smoky 1980s jazz-lounge atmosphere.
   Italic serif headlines with a warm glow text-shadow, deep
   deep-toned gradient cards with brass-tinted borders, a
   radial glow background that carries down the whole page.
   Palette tokens (--gold-flat "amber", --accent2 "brass",
   --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: Georgia, 'Big Caslon', 'Palatino Linotype', serif;
  --font-body:    -apple-system, BlinkMacSystemFont, sans-serif;
  --font-ui:      -apple-system, BlinkMacSystemFont, sans-serif;

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

  --c-bg: #160B14;
  --c-s1: #1C0F19;
  --c-s2: #22131E;
  --c-s3: #291825;
  --c-s4: #301C2C;
  --gold-flat: #E8A34D;
  --accent2: #C08A3E;
  --hairline: rgba(255,255,255,0.12);

  --glow1: color-mix(in srgb, var(--gold-flat) 32%, var(--c-bg) 68%);
  --glow2: color-mix(in srgb, var(--gold-flat) 14%, var(--c-bg) 86%);
  --deep-tone: color-mix(in srgb, var(--accent2) 55%, black 45%);
  --card-a: color-mix(in srgb, var(--deep-tone) 60%, black 40%);
  --card-b: color-mix(in srgb, var(--deep-tone) 30%, black 70%);
  /* Card gradients are always dark (deep-tone+black), regardless of light/dark
     color scheme — text placed on them must stay fixed-light, never the
     scheme-dependent --text-heading/--text-secondary (those flip dark in
     light mode, which would put dark text on a dark card). */
  --card-ink: color-mix(in srgb, white 92%, var(--deep-tone) 8%);
  --card-ink-secondary: color-mix(in srgb, white 68%, var(--deep-tone) 32%);

  --ease: all 0.2s ease;

  /* Material's on-background token is generated as the readable opposite of
     the active palette background. These aliases therefore work for both the
     light and dark palette variants used by the site. */
  --ink-strong: var(--md-sys-color-on-background, #F7F2F5);
  --ink-muted: color-mix(in srgb, var(--ink-strong) 78%, var(--c-bg) 22%);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { scroll-behavior: smooth; }
body  {
  /* Lock the rendered site to a genuinely accessible dark theme. Palette
     values declared on :root vary between builds; body-scoped tokens win for
     every visible component without relying on those generated text colors. */
  --c-bg: #160B14;
  --c-s1: #1C0F19;
  --c-s2: #22131E;
  --c-s3: #291825;
  --c-s4: #301C2C;
  --text-body: #F4EFF2;
  --text-heading: #FFFFFF;
  --text-secondary: #C9C1C6;
  --md-sys-color-on-background: #FFFFFF;
  --ink-strong: #FFFFFF;
  --ink-muted: #C9C1C6;
  --hairline: rgba(255,255,255,0.18);
  font-family: var(--font-body);
  background: radial-gradient(ellipse 1100px 600px at 50% -10%, var(--glow1) 0%, var(--glow2) 46%, var(--c-bg) 78%);
  color: var(--text-body);
  line-height: 1.75;
  overflow-x: hidden;
  text-align: center;
}

/* Keep supporting copy readable on light generated palettes. Components that
   intentionally sit on dark cards/photos receive fixed light ink below. */
.d2r8y_section-subtitle,
.d2r8y_section-body,
.d2r8y_highlight-desc,
.d2r8y_stat-label,
.d2r8y_amenities-list li,
.d2r8y_contact-item,
.d2r8y_footer-brand p,
.d2r8y_footer-links a,
.d2r8y_footer-bottom p,
.d2r8y_cookie-banner-text,
.d2r8y_service-intro { color: var(--text-body); }
img   { display: block; width: 100%; height: 100%; object-fit: cover; }
a     { color: inherit; text-decoration: none; }
ul    { list-style: none; }

.d2r8y_container { max-width: var(--container-max); margin: 0 auto; padding: 0 24px; }
.d2r8y_section { padding: var(--section-padding); position: relative; }
.d2r8y_section:nth-of-type(even) { background: radial-gradient(ellipse 900px 500px at 50% 0%, color-mix(in srgb, var(--gold-flat) 8%, transparent) 0%, transparent 70%); }

/* ── Plain rule divider ── */
.d2r8y_rule-deco { display: flex; align-items: center; justify-content: center; gap: 10px; width: fit-content; margin: 22px auto; }
.d2r8y_rule-deco span { width: 36px; height: 1px; background: linear-gradient(90deg, transparent, var(--accent2)); }
.d2r8y_rule-deco span:last-child { background: linear-gradient(90deg, var(--accent2), transparent); }

.d2r8y_btn-filled, .d2r8y_btn-outlined, .d2r8y_btn-text {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 13px 30px; border-radius: 3px;
  font-family: var(--font-ui); font-size: 12px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  cursor: pointer; text-decoration: none; white-space: nowrap; line-height: 1;
  transition: var(--ease); border: 1px solid var(--gold-flat);
}
.d2r8y_btn-filled { background: #78541C; border-color: #D8A94F; color: #fff; font-weight: 700; }
.d2r8y_btn-filled:hover { opacity: 0.85; }
.d2r8y_btn-outlined { background: transparent; color: var(--text-heading); }
.d2r8y_btn-outlined:hover { background: color-mix(in srgb, var(--gold-flat) 12%, transparent); }
.d2r8y_btn-text { background: transparent; border-color: transparent; color: var(--gold-flat); text-decoration: underline; text-underline-offset: 4px; }
.d2r8y_card-elevated { background: linear-gradient(165deg, var(--card-a), var(--card-b) 70%); border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); border-radius: 3px; }

.d2r8y_section-eyebrow { display: block; font-family: var(--font-ui); font-size: 11px; font-weight: 600; letter-spacing: 0.36em; text-transform: uppercase; color: color-mix(in srgb, var(--accent2) 55%, var(--text-heading) 45%); margin-bottom: 12px; }
.d2r8y_section-title {
  font-family: var(--font-display); font-style: italic; font-weight: 700;
  font-size: clamp(1.9rem, 4vw, 2.8rem); line-height: 1.1; color: var(--text-heading);
  text-shadow: 0 0 24px color-mix(in srgb, var(--gold-flat) 32%, transparent);
}
.d2r8y_section-title.d2r8y_light { color: var(--text-heading); }
.d2r8y_section-subtitle { font-family: var(--font-ui); font-size: 0.95rem; color: var(--text-secondary); max-width: 480px; margin: 0 auto; }
.d2r8y_section-body { font-size: 1rem; color: var(--text-secondary); max-width: 540px; margin: 0 auto; line-height: 1.85; }
.d2r8y_section-header { margin-bottom: 52px; }

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

/* ═══════════════════════════════════════ NAVIGATION */
.d2r8y_nav-header { position: fixed; top: 0; left: 0; right: 0; z-index: 200; padding: 24px 0; transition: var(--ease); }
.d2r8y_nav-header.scrolled { background: color-mix(in srgb, var(--c-bg) 90%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--hairline); padding: 15px 0; }
.d2r8y_nav-inner { display: flex; align-items: center; gap: 36px; }
.d2r8y_nav-logo { font-family: var(--font-display); font-style: italic; font-size: 1.2rem; color: var(--text-heading); white-space: nowrap; flex-shrink: 0; }
.d2r8y_nav-logo img { filter: brightness(0) invert(1); }
.d2r8y_nav-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 28px; row-gap: 6px; margin-left: auto; }
.d2r8y_nav-links a { font-family: var(--font-ui); font-size: 12px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-secondary); transition: var(--ease); white-space: nowrap; }
.d2r8y_nav-links a:hover { color: var(--gold-flat); }
.d2r8y_nav-burger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
.d2r8y_nav-burger span { display: block; width: 22px; height: 1px; background: var(--gold-flat); transition: var(--ease); }
.d2r8y_nav-burger.active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.d2r8y_nav-burger.active span:nth-child(2) { opacity: 0; }
.d2r8y_nav-burger.active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ═══════════════════════════════════════════ HERO */
.d2r8y_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; }
.d2r8y_hero-overlay { position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(10, 16, 14, 0.62) 0%, rgba(7, 12, 10, 0.82) 100%); }
.d2r8y_hero-content { position: relative; z-index: 2; max-width: 620px; padding: 0 24px; animation: fadeIn 1s ease both; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
/* Sits over the hero photo, unlike .d2r8y_section-eyebrow elsewhere on flat
   backgrounds — --accent2 is a mid-tone color that can visually disappear
   against a similarly-toned region of an arbitrary photo (confirmed directly
   across several random palette picks); --text-heading is plain ink,
   reliably darker/lighter than the surrounding scrim regardless of palette. */
.d2r8y_hero-eyebrow { display: block; font-family: var(--font-ui); font-size: 11px; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: #fff; margin-bottom: 10px; }
/* Same reasoning as .d2r8y_hero-eyebrow above — .d2r8y_section-eyebrow (shared class) is
   fine on flat section backgrounds elsewhere, but inside .d2r8y_service-hero-content
   it sits over the service page's photo, with the same risk. */
.d2r8y_service-hero-content .d2r8y_section-eyebrow { color: #fff; }
.d2r8y_hero-title {
  font-family: var(--font-display); font-style: italic; font-weight: 700;
  font-size: clamp(2rem, 5vw, 3.6rem); line-height: 1.1; color: #fff;
  text-shadow: 0 0 30px color-mix(in srgb, var(--gold-flat) 40%, transparent), 0 0 70px color-mix(in srgb, var(--deep-tone) 45%, transparent);
}
/* Sits over the hero photo — --text-heading (plain ink) instead of the
   softer --text-secondary blend, meaningfully darker on a light palette. */
.d2r8y_hero-subtitle { font-family: var(--font-ui); font-size: clamp(0.9rem, 1.4vw, 1rem); color: rgba(255,255,255,0.92); max-width: 440px; margin: 0 auto; line-height: 1.7; }
.d2r8y_hero-actions { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; margin-top: 28px; }
.d2r8y_hero-scroll { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); z-index: 2; color: var(--text-secondary); }
.d2r8y_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 */
.d2r8y_highlights-strip { background: transparent; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); padding: 64px 0; }
.d2r8y_highlights-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.d2r8y_highlight-item { border-top: 1px solid color-mix(in srgb, var(--accent2) 40%, transparent); padding-top: 18px; }
.d2r8y_highlight-icon { display: none; }
.d2r8y_highlight-title { font-family: var(--font-display); font-style: italic; font-size: 1.1rem; color: var(--gold-flat); margin-bottom: 8px; }
.d2r8y_highlight-desc { font-family: var(--font-ui); font-size: 0.87rem; color: var(--text-secondary); line-height: 1.6; }

/* ═══════════════════════════════════════════ ABOUT */
.d2r8y_about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; text-align: left; }
.d2r8y_about-stats { display: flex; gap: 32px; margin-top: 30px; }
.d2r8y_stat-number { display: block; font-family: var(--font-display); font-style: italic; font-size: 1.8rem; color: var(--gold-flat); }
.d2r8y_stat-label { display: block; font-family: var(--font-ui); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-secondary); margin-top: 4px; }
.d2r8y_about-image-group { position: relative; }
.d2r8y_about-image { border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); overflow: hidden; aspect-ratio: 4/5; }
.d2r8y_about-image-inset { position: absolute; right: -8%; bottom: -8%; width: 46%; aspect-ratio: 4/3; border: 5px solid var(--c-bg); overflow: hidden; box-shadow: 0 16px 32px rgba(0,0,0,0.4); }

/* ═══════════════════════════════════════════ ROOMS */
.d2r8y_rooms-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; text-align: left; }
.d2r8y_room-card { overflow: hidden; display: flex; flex-direction: column; }
.d2r8y_room-image-wrap { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.d2r8y_room-feature-badge { position: absolute; bottom: 12px; left: 12px; background: color-mix(in srgb, var(--c-bg) 78%, transparent); color: var(--text-heading); font-family: var(--font-ui); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; padding: 5px 12px; border-radius: 3px; }
.d2r8y_room-popular-badge { position: absolute; top: 12px; right: 12px; background: #78541C; color: #fff; font-family: var(--font-ui); font-size: 10px; font-weight: 700; padding: 5px 12px; border-radius: 3px; }
.d2r8y_room-body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.d2r8y_room-stars { display: none; }
.d2r8y_room-name { font-family: var(--font-display); font-style: italic; font-size: 1.2rem; color: var(--card-ink); margin-bottom: 10px; }
.d2r8y_room-desc { font-family: var(--font-ui); font-size: 0.88rem; color: var(--card-ink-secondary); line-height: 1.6; flex: 1; margin-bottom: 18px; }
.d2r8y_room-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 16px; border-top: 1px solid color-mix(in srgb, var(--accent2) 30%, transparent); }
.d2r8y_room-price { font-family: var(--font-ui); font-size: 0.9rem; color: var(--gold-flat); letter-spacing: 0.03em; }
.d2r8y_room-price small { font-size: 0.65rem; color: var(--card-ink-secondary); }

/* ═══════════════════════════════════════════ CASINO */
.d2r8y_casino-section { padding: 0; border-top: 1px solid var(--hairline); }
.d2r8y_casino-bg { position: relative; min-height: 540px; background-size: cover; background-position: center; background-attachment: fixed; display: flex; align-items: center; justify-content: center; }
.d2r8y_casino-overlay { position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(10, 16, 14, 0.66) 0%, rgba(7, 12, 10, 0.86) 100%); }
.d2r8y_casino-content { position: relative; z-index: 2; padding: 80px 24px; max-width: 620px; }
.d2r8y_casino-content .d2r8y_section-title,
.d2r8y_casino-content .d2r8y_section-eyebrow { color: #fff; text-shadow: 0 2px 20px rgba(0,0,0,0.5); }
.d2r8y_casino-desc { font-family: var(--font-ui); font-size: 0.98rem; color: rgba(255,255,255,0.92); line-height: 1.8; margin-bottom: 36px; }
.d2r8y_casino-features { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px; margin-bottom: 40px; }
.d2r8y_casino-feature { display: flex; flex-direction: column; gap: 6px; font-family: var(--font-ui); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; }
.d2r8y_cf-icon { display: none; }

/* ═══════════════════════════════════════════ DINING */
.d2r8y_dining-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; text-align: left; }
.d2r8y_dining-image-group { position: relative; }
.d2r8y_dining-image { border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); overflow: hidden; aspect-ratio: 4/5; }
.d2r8y_dining-image-inset { position: absolute; left: -8%; bottom: -8%; width: 46%; aspect-ratio: 4/3; border: 5px solid var(--c-bg); overflow: hidden; box-shadow: 0 16px 32px rgba(0,0,0,0.4); }

/* ═══════════════════════════════════════ AMENITIES */
.d2r8y_amenities-layout { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 48px; align-items: center; text-align: left; }
.d2r8y_amenities-image { aspect-ratio: 3/4; border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); overflow: hidden; }
.d2r8y_amenities-list li { padding: 15px 0; border-bottom: 1px solid var(--hairline); font-family: var(--font-ui); font-size: 0.95rem; color: var(--text-secondary); }
.d2r8y_amenities-list li:first-child { border-top: 1px solid var(--hairline); }

/* ══════════════════════════════════ TESTIMONIALS */
.d2r8y_testimonial-card { background: linear-gradient(165deg, var(--card-a), var(--card-b) 70%); border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); border-radius: 3px; padding: 28px; height: 100%; display: flex; flex-direction: column; gap: 16px; }
.d2r8y_testimonial-stars { display: none; }
.d2r8y_testimonial-text { font-family: var(--font-display); font-style: italic; font-size: 1.1rem; color: var(--card-ink); line-height: 1.6; flex: 1; }
.d2r8y_testimonial-author { display: flex; flex-direction: column; gap: 3px; }
.d2r8y_testimonial-name { font-family: var(--font-ui); font-weight: 600; color: var(--gold-flat); font-size: 0.85rem; }
.d2r8y_testimonial-location { font-family: var(--font-ui); font-size: 0.78rem; color: var(--card-ink-secondary); }
.d2r8y_testimonials-swiper { padding-bottom: 48px !important; }
.swiper-pagination-bullet { background: var(--hairline); opacity: 1; width: 6px; height: 6px; }
.swiper-pagination-bullet-active { background: var(--gold-flat); }

/* ═══════════════════════════════ INTERLUDE (full-bleed) */
.d2r8y_interlude-section { border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); padding: 40px 0; }
.d2r8y_interlude-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; max-width: var(--container-max); margin: 0 auto; padding: 0 24px; }
.d2r8y_interlude-item { overflow: hidden; border-radius: 3px; border: 1px solid color-mix(in srgb, var(--accent2) 30%, transparent); }
.d2r8y_interlude-tall,
.d2r8y_interlude-wide,
.d2r8y_interlude-square { aspect-ratio: 4/3; }
.d2r8y_interlude-item img { filter: sepia(0.2) saturate(1.1); }

/* ═══════════════════════════════ MORE SERVICES */
.d2r8y_more-services-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }

/* ═══════════════════════════════════════════ CONTACT */
.d2r8y_contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; text-align: left; }
.d2r8y_contact-details { display: flex; flex-direction: column; gap: 18px; margin: 26px 0; }
.d2r8y_contact-item { display: flex; align-items: center; gap: 14px; color: var(--text-secondary); font-size: 0.95rem; }
.d2r8y_contact-icon { display: none; }
.d2r8y_contact-item a:hover { color: var(--gold-flat); }
.d2r8y_contact-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.d2r8y_hotel-map { aspect-ratio: 4/5; border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); overflow: hidden; isolation: isolate; }
.d2r8y_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 var(--c-bg); }
.leaflet-popup-content-wrapper { background: var(--c-s2) !important; border: 1px solid var(--hairline) !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-bar a { background: var(--c-s2) !important; color: var(--gold-flat) !important; }
.leaflet-bar a:hover { background: var(--c-s3) !important; }
.leaflet-control-attribution { background: color-mix(in srgb, var(--c-bg) 70%, transparent) !important; color: var(--text-secondary) !important; font-size: 10px !important; }

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

/* ══════════════════════════════════ COOKIE BANNER */
.d2r8y_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; }
.d2r8y_cookie-banner.hidden { transform: translateY(110%); opacity: 0; pointer-events: none; }
.d2r8y_cookie-banner-inner { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.d2r8y_cookie-banner-text { flex: 1; font-family: var(--font-ui); font-size: 13px; color: var(--text-secondary); line-height: 1.6; min-width: 240px; }
.d2r8y_cookie-banner-text strong { color: var(--text-heading); }
.d2r8y_cookie-banner-text a { color: color-mix(in srgb, var(--gold-flat) 45%, var(--text-heading) 55%); font-weight: 600; text-decoration: underline; }
.d2r8y_cookie-banner-actions { display: flex; gap: 10px; flex-shrink: 0; }
.d2r8y_cookie-btn-accept, .d2r8y_cookie-btn-reject { padding: 10px 20px; border: 1px solid var(--gold-flat); border-radius: 3px; font-family: var(--font-ui); font-size: 12px; font-weight: 500; cursor: pointer; transition: var(--ease); }
.d2r8y_cookie-btn-accept { background: #78541C; border-color: #D8A94F; color: #fff; font-weight: 700; }
.d2r8y_cookie-btn-accept:hover { opacity: 0.85; }
.d2r8y_cookie-btn-reject { background: transparent; color: var(--text-heading); }

/* ═══════════════════════════════ LEGAL / COMPLIANCE PAGES */
.d2r8y_legal-page { padding: 140px 0 100px; min-height: 80vh; text-align: left; }
.d2r8y_legal-page section { margin-bottom: 44px; }
.d2r8y_legal-page section section { margin-top: 36px; }
.d2r8y_legal-page h2 { font-family: var(--font-display); font-style: italic; font-size: 1.3rem; line-height: 1.25; color: var(--text-heading); margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--hairline); }
.d2r8y_legal-page h3 { font-family: var(--font-ui); font-size: 1rem; font-weight: 700; color: var(--text-heading); margin: 22px 0 10px; }
.d2r8y_legal-page p, .d2r8y_legal-page li, .d2r8y_legal-page td { color: var(--text-body); }
.d2r8y_legal-page p { font-size: 0.95rem; line-height: 1.75; margin-bottom: 16px; }
.d2r8y_legal-page ul, .d2r8y_legal-page ol { margin: 12px 0 18px 22px; }
.d2r8y_legal-page ul { list-style: disc; }
.d2r8y_legal-page ol { list-style: decimal; }
.d2r8y_legal-page li { font-size: 0.95rem; line-height: 1.7; margin-bottom: 8px; }
.d2r8y_legal-page a { color: color-mix(in srgb, var(--gold-flat) 45%, var(--text-heading) 55%); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.d2r8y_legal-page table { width: 100%; border-collapse: collapse; margin: 16px 0 24px; font-size: 0.9rem; background: var(--c-s2); border: 1px solid var(--hairline); }
.d2r8y_legal-page th, .d2r8y_legal-page td { padding: 12px 14px; text-align: left; vertical-align: top; border: 1px solid var(--hairline); overflow-wrap: anywhere; }
.d2r8y_legal-page th { color: var(--text-heading); font-weight: 700; }
.d2r8y_legal-header { margin-bottom: 48px; border-bottom: 1px solid var(--hairline); padding-bottom: 28px; text-align: center; }
.d2r8y_legal-header h1 { font-family: var(--font-display); font-style: italic; font-size: clamp(1.8rem, 4vw, 2.8rem); color: var(--text-heading); margin-bottom: 8px; }
.d2r8y_legal-meta { font-family: var(--font-ui); font-size: 13px; color: var(--text-secondary); }
.d2r8y_legal-notice { background: var(--c-s1); border-left: 3px solid var(--gold-flat); padding: 20px 24px; margin-bottom: 40px; font-size: 0.95rem; color: var(--text-secondary); line-height: 1.7; }
.d2r8y_legal-notice--warning { border-left-color: #C0524A; }
.d2r8y_legal-notice--warning strong { color: #D68880; }
.d2r8y_legal-warning { background: var(--c-s1); border-left: 3px solid #C0524A; padding: 20px 24px; margin: 16px 0 24px; font-size: 0.95rem; color: #D68880; line-height: 1.6; }
.d2r8y_legal-section { margin-bottom: 44px; }
.d2r8y_legal-section h2 { font-family: var(--font-display); font-style: italic; font-size: 1.3rem; color: var(--text-heading); margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--hairline); }
.d2r8y_legal-section h3 { font-family: var(--font-ui); font-size: 1rem; font-weight: 600; color: var(--text-heading); margin: 22px 0 10px; }
.d2r8y_legal-section p { font-size: 0.95rem; color: var(--text-secondary); line-height: 1.75; margin-bottom: 16px; }
.d2r8y_legal-section a { color: var(--gold-flat); text-decoration: underline; }
.d2r8y_legal-section ul, .d2r8y_legal-section ol { margin: 12px 0 18px 22px; display: flex; flex-direction: column; gap: 8px; }
.d2r8y_legal-section ul { list-style: disc; }
.d2r8y_legal-section ol { list-style: decimal; }
.d2r8y_legal-section li { font-size: 0.95rem; color: var(--text-secondary); line-height: 1.7; }
.d2r8y_legal-box { background: var(--c-s1); padding: 20px 24px; margin: 16px 0 24px; font-size: 0.9rem; color: var(--text-secondary); line-height: 1.75; }
.d2r8y_table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; box-shadow: inset -12px 0 8px -8px rgba(0,0,0,0.18); }
.d2r8y_legal-table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 16px 0 24px; font-size: 0.85rem; background: var(--c-s2); border: 1px solid color-mix(in srgb, var(--accent2) 30%, transparent); border-radius: 3px; overflow: hidden; }
.d2r8y_legal-table thead th { padding: 10px 14px; text-align: left; font-family: var(--font-ui); font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--gold-flat); background: var(--c-s2); border-bottom: 1px solid var(--hairline); border-right: 1px solid var(--hairline); }
.d2r8y_legal-table thead th:last-child { border-right: none; }
.d2r8y_legal-table tbody tr:nth-child(even) { background: var(--c-s2); }
.d2r8y_legal-table tbody td { padding: 10px 14px; color: var(--text-secondary); vertical-align: top; border-bottom: 1px solid var(--hairline); border-right: 1px solid var(--hairline); }
.d2r8y_legal-table tbody td:last-child { border-right: none; }
.d2r8y_legal-table tbody tr:last-child td { border-bottom: none; }
.d2r8y_helplines-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 24px 0; }
.d2r8y_helpline-card { background: var(--c-s1); border: 1px solid color-mix(in srgb, var(--accent2) 30%, transparent); border-radius: 3px; padding: 22px 20px; }
.d2r8y_helpline-card h3 { font-family: var(--font-display); font-style: italic; font-size: 1.05rem; color: var(--text-heading); margin: 0 0 10px; }
.d2r8y_helpline-card p { font-family: var(--font-ui); font-size: 0.85rem; margin-bottom: 4px; color: var(--text-secondary); }
.d2r8y_helpline-card strong { color: var(--gold-flat); }
.d2r8y_helpline-card a { font-size: 0.85rem; color: var(--gold-flat); text-decoration: underline; }
.d2r8y_footer-legal-id { font-size: 0.75rem !important; color: var(--text-secondary) !important; margin-top: 8px !important; }

/* ═══════════════════════════════════ BOOKING MODAL */
.d2r8y_bm { position: fixed; inset: 0; z-index: 500; display: flex; align-items: center; justify-content: center; padding: 16px; }
.d2r8y_bm[hidden] { display: none; }
.d2r8y_bm-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.82); opacity: 0; transition: opacity 0.28s ease; }
.d2r8y_bm.open .d2r8y_bm-overlay { opacity: 1; }
.d2r8y_bm-dialog { position: relative; z-index: 1; background: linear-gradient(165deg, var(--card-a), var(--card-b) 70%); border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); border-radius: 4px; padding: 40px 36px; width: 100%; max-width: 440px; max-height: 92vh; overflow-y: auto; opacity: 0; transform: translateY(14px); transition: opacity 0.28s ease, transform 0.28s ease; text-align: center; }
.d2r8y_bm-dialog .d2r8y_bm-close,
.d2r8y_bm-dialog .d2r8y_bm-subtitle,
.d2r8y_bm-dialog .d2r8y_bm-field label,
.d2r8y_bm-dialog .d2r8y_bm-success p { color: var(--card-ink-secondary); }
.d2r8y_bm-dialog .d2r8y_bm-header h2,
.d2r8y_bm-dialog .d2r8y_bm-success h3,
.d2r8y_bm-dialog .d2r8y_bm-close-btn { color: var(--card-ink); }
.d2r8y_bm.open .d2r8y_bm-dialog { opacity: 1; transform: none; }
.d2r8y_bm-close { position: absolute; top: 16px; right: 18px; background: none; border: none; color: var(--text-secondary); font-size: 16px; cursor: pointer; padding: 6px; }
.d2r8y_bm-close:hover { color: var(--gold-flat); }
.d2r8y_bm-header { margin-bottom: 22px; }
.d2r8y_bm-header h2 { font-family: var(--font-display); font-style: italic; font-size: 1.5rem; color: var(--text-heading); margin-bottom: 6px; }
.d2r8y_bm-subtitle { font-family: var(--font-ui); font-size: 0.85rem; color: var(--text-secondary); }
.d2r8y_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; padding: 5px 12px; margin-bottom: 16px; border-radius: 3px; }
.d2r8y_bm-room-tag[hidden] { display: none; }
.d2r8y_bm-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; text-align: left; }
.d2r8y_bm-field label { font-family: var(--font-ui); font-size: 11px; font-weight: 600; color: var(--text-secondary); }
.d2r8y_bm-field input, .d2r8y_bm-field select { background: var(--c-bg); border: 1px solid var(--hairline); border-radius: 3px; padding: 12px 14px; font-family: var(--font-ui); font-size: 0.9rem; color: var(--text-body); outline: none; -webkit-appearance: none; appearance: none; }
.d2r8y_bm-field input:focus, .d2r8y_bm-field select:focus { border-color: var(--gold-flat); }
.d2r8y_bm-field input.error { border-color: #C0524A; }
.d2r8y_bm-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.d2r8y_bm-submit { width: 100%; padding: 14px; margin-top: 6px; background: #78541C; color: #fff; border: none; border-radius: 3px; font-family: var(--font-ui); font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; }
.d2r8y_bm-submit:hover { opacity: 0.85; }
.d2r8y_bm-submit:disabled { opacity: 0.5; cursor: not-allowed; }
.d2r8y_bm-success { text-align: center; padding: 16px 0; }
.d2r8y_bm-success-icon { width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--gold-flat); color: var(--gold-flat); font-size: 22px; display: flex; align-items: center; justify-content: center; margin: 0 auto 18px; }
.d2r8y_bm-success h3 { font-family: var(--font-display); font-style: italic; font-size: 1.2rem; color: var(--text-heading); margin-bottom: 10px; }
.d2r8y_bm-success p { font-family: var(--font-ui); font-size: 0.9rem; color: var(--text-secondary); line-height: 1.6; margin-bottom: 24px; }
.d2r8y_bm-close-btn { background: none; border: 1px solid var(--gold-flat); color: var(--text-heading); padding: 10px 30px; border-radius: 3px; font-family: var(--font-ui); font-size: 12px; font-weight: 500; cursor: pointer; }
.d2r8y_bm-close-btn:hover { background: color-mix(in srgb, var(--gold-flat) 12%, transparent); }

/* ═══════════════════════════════════ SERVICE PAGES */
.d2r8y_service-page { padding-top: 88px; text-align: left; }
.d2r8y_service-hero { position: relative; height: 400px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.d2r8y_service-hero-overlay { position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(10, 16, 14, 0.58) 0%, rgba(7, 12, 10, 0.84) 100%); }
.d2r8y_service-hero-content { position: relative; z-index: 1; text-align: center; }
.d2r8y_service-hero-content h1 { font-family: var(--font-display); font-style: italic; font-size: clamp(2rem, 5vw, 3.2rem); color: #fff; margin-top: 10px; }
.d2r8y_service-body { padding: 72px 24px 110px; max-width: var(--container-max); margin: 0 auto; }
.d2r8y_service-intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; margin-bottom: 56px; }
.d2r8y_service-intro { font-size: 1rem; color: var(--text-secondary); line-height: 1.85; }
.d2r8y_service-intro-image { aspect-ratio: 4/3; border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); overflow: hidden; }
.d2r8y_service-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 56px; }
.d2r8y_service-feature-card { background: linear-gradient(165deg, var(--card-a), var(--card-b) 70%); border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent); border-radius: 3px; padding: 26px 22px; text-align: center; }
.d2r8y_service-feature-icon { display: none; }
.d2r8y_service-feature-card h3 { font-family: var(--font-display); font-style: italic; font-size: 1.05rem; color: var(--gold-flat); margin-bottom: 10px; }
.d2r8y_service-feature-card p { font-family: var(--font-ui); font-size: 0.875rem; color: var(--card-ink-secondary); line-height: 1.65; }
.d2r8y_service-cta-block { text-align: center; padding-top: 16px; }
.d2r8y_service-cta-btn { display: inline-block; padding: 15px 40px; background: #78541C; color: #fff; border: 1px solid #D8A94F; border-radius: 3px; font-family: var(--font-ui); font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; }
.d2r8y_service-cta-btn:hover { opacity: 0.85; }

/* ═══════════════════════════════ PALETTE-SAFE CONTRAST
   Flat-page typography must follow on-background rather than the decorative
   accent/text tokens: some generated dark palettes intentionally make those
   tokens too close to the page surface. */
body { color: var(--ink-strong); }

.d2r8y_nav-header,
.d2r8y_nav-header.scrolled {
  background: color-mix(in srgb, var(--c-bg) 94%, transparent);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid color-mix(in srgb, var(--ink-strong) 20%, transparent);
}
.d2r8y_nav-links a,
.d2r8y_nav-logo { color: #fff !important; }
.d2r8y_nav-links a { font-weight: 650; }

.d2r8y_section-title,
.d2r8y_section-title.d2r8y_light,
.d2r8y_about-grid .d2r8y_section-title,
.d2r8y_dining-grid .d2r8y_section-title,
.d2r8y_amenities-layout .d2r8y_section-title,
.d2r8y_contact-grid .d2r8y_section-title,
.d2r8y_footer-logo { color: var(--ink-strong); }

.d2r8y_section-subtitle,
.d2r8y_section-body,
.d2r8y_highlight-desc,
.d2r8y_stat-label,
.d2r8y_amenities-list li,
.d2r8y_contact-item,
.d2r8y_footer-brand p,
.d2r8y_footer-links a,
.d2r8y_footer-bottom p,
.d2r8y_footer-legal-id,
.d2r8y_cookie-banner-text,
.d2r8y_service-intro { color: var(--ink-muted) !important; }

/* Explicit overrides for the visible flat-background elements highlighted in
   review. !important is intentional: palette-specific selectors are emitted
   later by some generated page variants. */
.d2r8y_nav-links a,
.d2r8y_section-subtitle,
.d2r8y_section-body,
.d2r8y_highlight-desc,
.d2r8y_amenities-list li,
.d2r8y_contact-item,
.d2r8y_footer-brand p,
.d2r8y_footer-links a,
.d2r8y_footer-bottom p { color: #C9C1C6 !important; }

.d2r8y_section-title,
.d2r8y_section-title.d2r8y_light,
.d2r8y_about-grid .d2r8y_section-title,
.d2r8y_dining-grid .d2r8y_section-title,
.d2r8y_amenities-layout .d2r8y_section-title,
.d2r8y_contact-grid .d2r8y_section-title,
.d2r8y_footer-logo,
.d2r8y_footer-links h4 { color: #FFFFFF !important; }

.d2r8y_btn-outlined,
.d2r8y_btn-text { color: #FFFFFF !important; }

.d2r8y_section-eyebrow,
.d2r8y_highlight-title,
.d2r8y_stat-number,
.d2r8y_footer-links h4 {
  color: color-mix(in srgb, var(--gold-flat) 52%, var(--ink-strong) 48%);
}

.d2r8y_btn-outlined,
.d2r8y_btn-text {
  color: var(--ink-strong);
  border-color: color-mix(in srgb, var(--gold-flat) 65%, var(--ink-strong) 35%);
  font-weight: 700;
}

/* Dark cards and photographic sections retain their dedicated light ink. */
.d2r8y_testimonial-card .d2r8y_testimonial-text,
.d2r8y_room-card .d2r8y_room-name { color: var(--card-ink); }
.d2r8y_testimonial-card .d2r8y_testimonial-location,
.d2r8y_room-card .d2r8y_room-desc,
.d2r8y_room-card .d2r8y_room-price small { color: var(--card-ink-secondary); }
.d2r8y_casino-content .d2r8y_section-title,
.d2r8y_casino-content .d2r8y_section-eyebrow { color: #fff; }

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

/* ═══════════════════════════════════ RESPONSIVE */
@media (max-width: 1024px) {
  .d2r8y_about-grid, .d2r8y_dining-grid, .d2r8y_amenities-layout, .d2r8y_contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .d2r8y_about-image-group, .d2r8y_amenities-image { order: -1; }
  .d2r8y_amenities-image { aspect-ratio: 16/9; }
  .d2r8y_rooms-grid { grid-template-columns: 1fr 1fr; }
  .d2r8y_footer-inner { grid-template-columns: 1fr 1fr; }
  .d2r8y_interlude-grid { grid-template-columns: 1fr 1fr; }
}

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

  .d2r8y_nav-inner    { position: relative; justify-content: space-between; gap: 0; }
  .d2r8y_nav-burger   { display: flex; order: 0; flex-shrink: 0; }
  .d2r8y_nav-logo     { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 1rem; }
  .d2r8y_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;
  }
  .d2r8y_nav-links.open { display: flex; }
  .d2r8y_nav-links li   { width: 100%; text-align: center; }
  .d2r8y_nav-links a    { display: block; padding: 14px; border-bottom: 1px solid var(--hairline); }
  .d2r8y_nav-cta        { display: none; }

  .d2r8y_rooms-grid      { grid-template-columns: 1fr; }
  .d2r8y_highlights-grid { grid-template-columns: 1fr; gap: 24px; }
  .d2r8y_footer-inner    { grid-template-columns: 1fr 1fr; gap: 28px; }
  .d2r8y_footer-bottom   { flex-direction: column; text-align: center; }
  .d2r8y_casino-features { gap: 20px; }
  .d2r8y_about-stats     { justify-content: center; flex-wrap: wrap; }

  .d2r8y_about-image-inset, .d2r8y_dining-image-inset { position: static; width: 60%; margin: -20px auto 0; }
  .d2r8y_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) {
  .d2r8y_helplines-grid  { grid-template-columns: 1fr 1fr; }
  .d2r8y_legal-page      { padding: 110px 0 64px; }
  .d2r8y_legal-page table,
  .d2r8y_legal-page thead,
  .d2r8y_legal-page tbody,
  .d2r8y_legal-page tr,
  .d2r8y_legal-page th,
  .d2r8y_legal-page td { display: block; width: 100%; min-width: 0; }
  .d2r8y_legal-page tr { padding: 12px 14px; border-bottom: 1px solid var(--hairline); }
  .d2r8y_legal-page tr:last-child { border-bottom: 0; }
  .d2r8y_legal-page th,
  .d2r8y_legal-page td { padding: 3px 0; border: 0; }
  .d2r8y_legal-page td:first-child,
  .d2r8y_legal-page th:first-child { color: var(--text-heading); font-weight: 700; }
  .d2r8y_table-scroll { overflow-x: visible; box-shadow: none; }
}

@media (max-width: 480px) {
  .d2r8y_footer-inner    { grid-template-columns: 1fr; }
  .d2r8y_cookie-banner-inner { flex-direction: column; align-items: stretch; }
  .d2r8y_cookie-banner-actions { justify-content: stretch; }
  .d2r8y_cookie-btn-accept, .d2r8y_cookie-btn-reject { width: 100%; text-align: center; padding: 12px; }
  .d2r8y_helplines-grid  { grid-template-columns: 1fr; }
  .d2r8y_legal-table     { font-size: 0.85rem; min-width: 0; }
  .d2r8y_interlude-grid  { grid-template-columns: 1fr; }
}
