/* ═══════════════════════════════════════════════════
   Editorial Minimal — restrained, generous whitespace,
   hairline dividers instead of cards/shadows, serif body
   copy carrying the "considered magazine" feel throughout.
   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 {
  /* Typography — serif for reading copy everywhere, sans reserved for
     small UI chrome (nav, labels, buttons, eyebrows) as the one deliberate
     contrast in the system. */
  --font-display: Georgia, 'Iowan Old Style', 'Palatino Linotype', serif;
  --font-body:    Georgia, 'Iowan Old Style', 'Palatino Linotype', serif;
  --font-ui:      -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Layout — generous vertical rhythm is the signature of this template */
  --section-padding: 128px 0;
  --container-max:   1240px;

  /* Fallback defaults — always overridden per-build via PALETTE_STYLE injection */
  --c-bg: #1C1B18;
  --c-s1: #201F1B;
  --c-s2: #242320;
  --c-s3: #292824;
  --c-s4: #302E29;
  --gold-flat: #6FAE8E;
  --hairline: rgba(255,255,255,0.14);

  --ease: all 0.2s ease;
  --ease-transform: transform 0.3s ease;
}

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

.hemdw_btn-outlined {
  background: transparent;
  color: var(--text-heading);
  border: 1px solid var(--hairline);
}
.hemdw_btn-outlined:hover { border-color: var(--gold-flat); color: var(--gold-flat); }

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

/* ── Cards — hairline border, no shadow, sharp corners ───────────────── */
.hemdw_card-elevated {
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  border-radius: 3px;
  overflow: hidden;
}

/* ── 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;
}
img   { display: block; width: 100%; height: 100%; object-fit: cover; }
a     { color: inherit; text-decoration: none; }
ul    { list-style: none; }

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

/* ── Typography helpers ───────────────────────────── */
.hemdw_section-eyebrow {
  display: block;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-flat);
  margin-bottom: 14px;
}
.hemdw_section-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--text-heading);
  margin-bottom: 22px;
}
.hemdw_section-title.hemdw_light { color: var(--text-heading); }
.hemdw_section-subtitle {
  font-family: var(--font-ui);
  font-size: 0.95rem;
  color: var(--text-secondary);
  max-width: 560px;
  margin: 0 auto;
}
.hemdw_section-body {
  font-size: 1.05rem;
  color: var(--text-secondary);
  max-width: 560px;
  line-height: 1.9;
}
.hemdw_section-header {
  text-align: center;
  margin-bottom: 64px;
}

/* ── Scroll-reveal animations ─────────────────────── */
[data-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
[data-reveal].revealed {
  opacity: 1;
  transform: none;
}

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

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

/* ═══════════════════════════════════════════ HERO */
.hemdw_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;
  text-align: center;
}
/* Symmetrical vignette — darker toward the center where the text sits,
   fading out toward the edges so the photo still reads at the margins. */
.hemdw_hero-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at center,
    color-mix(in srgb, var(--c-bg) 78%, transparent) 0%,
    color-mix(in srgb, var(--c-bg) 55%, transparent) 45%,
    color-mix(in srgb, var(--c-bg) 82%, transparent) 100%
  );
}
.hemdw_hero-content {
  position: relative;
  z-index: 2;
  max-width: 640px;
  margin: 0 auto;
  padding: 0 24px;
  animation: fadeInUp 0.9s ease both;
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}
.hemdw_hero-eyebrow {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-flat);
  margin-bottom: 22px;
}
.hemdw_hero-title {
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 6vw, 4.6rem);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -0.01em;
  color: var(--text-heading);
  margin-bottom: 26px;
}
/* Sits over the hero photo — --text-heading (plain ink) instead of the
   softer --text-secondary blend, meaningfully darker on a light palette. */
.hemdw_hero-subtitle {
  font-family: var(--font-ui);
  font-size: clamp(0.95rem, 1.6vw, 1.05rem);
  color: var(--text-heading);
  max-width: 520px;
  margin: 0 0 44px;
  line-height: 1.75;
}
.hemdw_hero-actions { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
.hemdw_hero-scroll {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  color: var(--text-secondary);
  transition: var(--ease);
}
.hemdw_hero-scroll:hover { color: var(--gold-flat); }
.hemdw_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 */
.hemdw_highlights-strip {
  background: var(--c-bg);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  padding: 56px 0;
}
.hemdw_highlights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}
.hemdw_highlight-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 20px;
  border-top: 1px solid var(--hairline);
}
.hemdw_highlight-icon {
  display: none; /* editorial treatment omits decorative icons in favor of text hierarchy */
}
.hemdw_highlight-title {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 400;
  color: var(--text-heading);
}
.hemdw_highlight-desc {
  font-family: var(--font-ui);
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.7;
}

/* ═══════════════════════════════════════════ ABOUT */
.hemdw_about-section { background: var(--c-bg); }
.hemdw_about-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 80px;
  align-items: center;
}
.hemdw_about-stats {
  display: flex;
  gap: 40px;
  margin-top: 44px;
  padding-top: 32px;
  border-top: 1px solid var(--hairline);
}
.hemdw_stat-number {
  display: block;
  font-family: var(--font-display);
  font-size: 2.2rem;
  font-weight: 400;
  color: var(--gold-flat);
}
.hemdw_stat-label {
  display: block;
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-top: 6px;
}
.hemdw_about-image-group { position: relative; }
.hemdw_about-image {
  border: 1px solid var(--hairline);
  border-radius: 3px;
  overflow: hidden;
  aspect-ratio: 4/5;
}
.hemdw_about-image-inset {
  position: absolute;
  right: -10%;
  bottom: -12%;
  width: 52%;
  aspect-ratio: 4/3;
  border: 5px solid var(--c-bg);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 16px 32px rgba(0,0,0,0.3);
}

/* ═══════════════════════════════════════════ ROOMS */
.hemdw_rooms-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
}
.hemdw_room-card {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--c-bg);
  border-radius: 0;
}
.hemdw_room-card:hover { background: var(--c-s1); }
.hemdw_featured-card { background: var(--c-s1); }
.hemdw_room-image-wrap {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.hemdw_room-image-wrap img { transition: transform 0.6s ease; filter: grayscale(0.15); }
.hemdw_room-card:hover .hemdw_room-image-wrap img { transform: scale(1.03); }

.hemdw_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;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 2px;
}
.hemdw_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: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 2px;
}
.hemdw_room-body { padding: 28px; flex: 1; display: flex; flex-direction: column; }
.hemdw_room-stars { display: none; }
.hemdw_room-name {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--text-heading);
  margin-bottom: 12px;
}
.hemdw_room-desc {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.75;
  flex: 1;
  margin-bottom: 22px;
}
.hemdw_room-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--hairline);
}
.hemdw_room-price {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--text-heading);
}
.hemdw_room-price small {
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 400;
  color: var(--text-secondary);
}

/* ═══════════════════════════════════════════ CASINO */
.hemdw_casino-section { padding: 0; border-top: 1px solid var(--hairline); }
.hemdw_casino-bg {
  position: relative;
  min-height: 560px;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  display: flex;
  align-items: center;
}
.hemdw_casino-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, color-mix(in srgb, var(--c-bg) 97%, transparent) 0%, color-mix(in srgb, var(--c-bg) 72%, transparent) 100%);
}
.hemdw_casino-content {
  position: relative;
  z-index: 2;
  padding: 88px 24px;
  max-width: 640px;
}
.hemdw_casino-desc {
  font-size: 1.05rem;
  color: var(--text-secondary);
  line-height: 1.9;
  margin-bottom: 44px;
  max-width: 560px;
}
.hemdw_casino-features {
  display: flex;
  gap: 0;
  flex-wrap: wrap;
  margin-bottom: 48px;
  border-top: 1px solid var(--hairline);
  border-left: 1px solid var(--hairline);
}
.hemdw_casino-feature {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--text-heading);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 18px 22px;
  border-right: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  flex: 1;
  min-width: 140px;
}
.hemdw_cf-icon { display: none; }

/* ═══════════════════════════════════════════ DINING */
.hemdw_dining-section { background: var(--c-bg); }
.hemdw_dining-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 80px;
  align-items: center;
}
.hemdw_dining-image-group { position: relative; }
.hemdw_dining-image {
  border: 1px solid var(--hairline);
  border-radius: 3px;
  overflow: hidden;
  aspect-ratio: 4/5;
}
.hemdw_dining-image-inset {
  position: absolute;
  left: -10%;
  bottom: -12%;
  width: 52%;
  aspect-ratio: 4/3;
  border: 5px solid var(--c-bg);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 16px 32px rgba(0,0,0,0.3);
}

/* ═══════════════════════════════════════ AMENITIES */
.hemdw_amenities-layout {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 64px;
  align-items: center;
}
.hemdw_amenities-image {
  aspect-ratio: 3/4;
  border: 1px solid var(--hairline);
  border-radius: 3px;
  overflow: hidden;
}
.hemdw_amenities-list { margin-top: 32px; }
.hemdw_amenities-list li {
  list-style: none;
  padding: 18px 0;
  border-bottom: 1px solid var(--hairline);
  font-size: 1.05rem;
  color: var(--text-secondary);
  transition: var(--ease);
}
.hemdw_amenities-list li:first-child { border-top: 1px solid var(--hairline); }
.hemdw_amenities-list li:hover { color: var(--text-heading); }

/* ══════════════════════════════════ TESTIMONIALS */
.hemdw_testimonials-section { background: var(--c-bg); }

.hemdw_testimonial-card {
  background: transparent;
  border: none;
  padding: 8px 8px 36px;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.hemdw_testimonial-stars { display: none; }
.hemdw_testimonial-text {
  font-family: var(--font-display);
  font-size: 1.2rem;
  color: var(--text-heading);
  line-height: 1.6;
  font-style: italic;
  flex: 1;
}
.hemdw_testimonial-author {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-top: 18px;
  border-top: 1px solid var(--hairline);
}
.hemdw_testimonial-name {
  font-family: var(--font-ui);
  font-weight: 600;
  color: var(--text-heading);
  font-size: 0.9rem;
}
.hemdw_testimonial-location {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  color: var(--text-secondary);
  letter-spacing: 0.04em;
}

/* Swiper overrides */
.hemdw_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) */
.hemdw_interlude-section { border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.hemdw_interlude-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--hairline);
}
.hemdw_interlude-item   { overflow: hidden; }
.hemdw_interlude-tall,
.hemdw_interlude-wide,
.hemdw_interlude-square { aspect-ratio: 4/3; }
.hemdw_interlude-item img { transition: transform 0.6s ease; filter: grayscale(0.1); }
.hemdw_interlude-item:hover img { transform: scale(1.04); }

/* ═══════════════════════════════ MORE SERVICES (home teaser for services
   beyond the header's first 4 — see src/builder.js HEADER_SERVICE_LIMIT) */
.hemdw_more-services-section { background: var(--c-bg); }
.hemdw_more-services-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}

/* ═══════════════════════════════════════════ CONTACT */
.hemdw_contact-section { background: var(--c-bg); }
.hemdw_contact-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 80px;
  align-items: start;
}
.hemdw_contact-details { display: flex; flex-direction: column; gap: 22px; margin: 36px 0; }
.hemdw_contact-item    { display: flex; align-items: center; gap: 16px; color: var(--text-secondary); font-size: 0.95rem; }
.hemdw_contact-icon    { display: none; }
.hemdw_contact-item a:hover { color: var(--gold-flat); }
.hemdw_contact-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
/* Leaflet map — Leaflet's own CSS gives internal panes/controls z-index up to 1000
   (way above our fixed header's 200); without its own stacking context, that
   1000 gets compared directly against the header's 200 in the shared root context
   and wins, rendering the map's controls/popups on top of the header. `isolation:
   isolate` contains Leaflet's entire z-index range inside this box so it can never
   escape above anything outside it, regardless of how high Leaflet's internal
   values go. */
.hemdw_hotel-map {
  aspect-ratio: 4/5;
  border-radius: 3px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  isolation: isolate;
}

/* Custom pin */
.hemdw_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: 2px !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 */
.hemdw_footer { background: var(--c-bg); border-top: 1px solid var(--hairline); }
.hemdw_footer-inner {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  padding: 72px 24px;
  max-width: var(--container-max);
  margin: 0 auto;
}
.hemdw_footer-logo {
  display: block;
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-style: italic;
  font-weight: 400;
  color: var(--text-heading);
  margin-bottom: 16px;
}
.hemdw_footer-brand p  { font-family: var(--font-ui); font-size: 0.85rem; color: var(--text-secondary); line-height: 1.7; max-width: 240px; }
.hemdw_footer-links h4 {
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-flat);
  margin-bottom: 22px;
}
.hemdw_footer-links ul { display: flex; flex-direction: column; gap: 12px; }
.hemdw_footer-links a  { font-family: var(--font-ui); font-size: 13px; color: var(--text-secondary); transition: var(--ease); }
.hemdw_footer-links a:hover { color: var(--gold-flat); }
.hemdw_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;
}
.hemdw_footer-bottom p  { font-family: var(--font-ui); font-size: 12px; color: var(--text-secondary); }
.hemdw_gambling-notice  { font-size: 11px !important; }

/* ══════════════════════════════════ COOKIE BANNER */
.hemdw_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;
}
.hemdw_cookie-banner.hidden {
  transform: translateY(110%);
  opacity: 0;
  pointer-events: none;
}
.hemdw_cookie-banner-inner {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.hemdw_cookie-banner-text {
  flex: 1;
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.6;
  min-width: 240px;
}
.hemdw_cookie-banner-text strong { color: var(--text-heading); }
.hemdw_cookie-banner-text a { color: var(--gold-flat); text-decoration: underline; text-underline-offset: 3px; }
.hemdw_cookie-banner-actions {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
}
.hemdw_cookie-btn-accept,
.hemdw_cookie-btn-reject {
  padding: 10px 22px;
  border: 1px solid transparent;
  border-radius: 2px;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: var(--ease);
}
.hemdw_cookie-btn-accept {
  background: var(--gold-flat);
  color: var(--md-sys-color-on-primary, #161311);
}
.hemdw_cookie-btn-accept:hover { opacity: 0.86; }
.hemdw_cookie-btn-reject {
  background: transparent;
  color: var(--text-heading);
  border: 1px solid var(--hairline);
}
.hemdw_cookie-btn-reject:hover { border-color: var(--gold-flat); color: var(--gold-flat); }

/* ═══════════════════════════════ LEGAL / COMPLIANCE PAGES */
.hemdw_legal-page {
  padding: 140px 0 100px;
  min-height: 80vh;
}
.hemdw_legal-header {
  margin-bottom: 52px;
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 32px;
}
.hemdw_legal-header h1 {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 400;
  color: var(--text-heading);
  margin-bottom: 8px;
}
.hemdw_legal-meta {
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--text-secondary);
}
.hemdw_legal-notice {
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  border-left: 2px solid var(--gold-flat);
  border-radius: 0;
  padding: 22px 26px;
  margin-bottom: 48px;
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.8;
}
.hemdw_legal-notice--warning {
  border-left-color: #C0524A;
  background: var(--c-s1);
  border-color: var(--hairline);
}
.hemdw_legal-notice--warning strong { color: #D68880; }
.hemdw_legal-warning {
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  border-left: 2px solid #C0524A;
  border-radius: 0;
  padding: 22px 26px;
  margin: 16px 0 24px;
  font-size: 0.95rem;
  color: #D68880;
  line-height: 1.7;
}
.hemdw_legal-section {
  margin-bottom: 52px;
}
.hemdw_legal-section h2 {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--text-heading);
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--hairline);
}
.hemdw_legal-section h3 {
  font-family: var(--font-ui);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-heading);
  margin: 26px 0 12px;
}
.hemdw_legal-section p {
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.9;
  margin-bottom: 18px;
}
.hemdw_legal-section a { color: var(--gold-flat); text-decoration: underline; text-underline-offset: 3px; }
.hemdw_legal-section a:hover { opacity: 0.8; }
.hemdw_legal-section ul,
.hemdw_legal-section ol {
  margin: 12px 0 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.hemdw_legal-section ul { list-style: disc; }
.hemdw_legal-section ol { list-style: decimal; }
.hemdw_legal-section li { font-size: 1rem; color: var(--text-secondary); line-height: 1.8; }
.hemdw_legal-section ul ul { margin-top: 8px; list-style: circle; }

.hemdw_legal-box {
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  border-radius: 0;
  padding: 22px 26px;
  margin: 16px 0 24px;
  font-size: 0.92rem;
  color: var(--text-secondary);
  line-height: 1.85;
}

/* Legal table */
.hemdw_table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; box-shadow: inset -12px 0 8px -8px rgba(0,0,0,0.18); }
.hemdw_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);
}
.hemdw_legal-table thead tr { background: var(--c-s2); }
.hemdw_legal-table thead th {
  padding: 12px 16px;
  text-align: left;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold-flat);
  border-bottom: 1px solid var(--hairline);
  border-right: 1px solid var(--hairline);
}
.hemdw_legal-table thead th:last-child { border-right: none; }
.hemdw_legal-table tbody tr { border-bottom: 1px solid var(--hairline); }
.hemdw_legal-table tbody tr:last-child { border-bottom: none; }
.hemdw_legal-table tbody tr:nth-child(even) { background: var(--c-s2); }
.hemdw_legal-table tbody td {
  padding: 12px 16px;
  color: var(--text-secondary);
  vertical-align: top;
  line-height: 1.6;
  border-right: 1px solid var(--hairline);
}
.hemdw_legal-table tbody td:last-child { border-right: none; }

/* Responsible gambling helplines */
.hemdw_helplines-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
  margin: 24px 0;
}
.hemdw_helpline-card {
  background: var(--c-bg);
  border-radius: 0;
  padding: 26px 22px;
}
.hemdw_helpline-card h3 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--text-heading);
  margin: 0 0 10px;
}
.hemdw_helpline-card p { font-family: var(--font-ui); font-size: 0.85rem; margin-bottom: 4px; color: var(--text-secondary); }
.hemdw_helpline-card strong { color: var(--gold-flat); }
.hemdw_helpline-card a { font-size: 0.85rem; color: var(--gold-flat); text-decoration: underline; }

/* Footer legal id */
.hemdw_footer-legal-id {
  font-size: 0.75rem !important;
  color: var(--text-secondary) !important;
  margin-top: 8px !important;
}

/* ═══════════════════════════════════ BOOKING MODAL */
.hemdw_bm {
  position: fixed; inset: 0; z-index: 500;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
}
.hemdw_bm[hidden] { display: none; }

.hemdw_bm-overlay {
  position: absolute; inset: 0;
  background: color-mix(in srgb, black 82%, transparent);
  opacity: 0;
  transition: opacity 0.28s ease;
}
.hemdw_bm.open .hemdw_bm-overlay { opacity: 1; }

.hemdw_bm-dialog {
  position: relative; z-index: 1;
  background: var(--c-s1);
  border: 1px solid var(--hairline);
  border-radius: 3px;
  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;
}
.hemdw_bm.open .hemdw_bm-dialog { opacity: 1; transform: none; }

.hemdw_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;
}
.hemdw_bm-close:hover { color: var(--gold-flat); }

.hemdw_bm-header        { margin-bottom: 24px; }
.hemdw_bm-header h2     { font-family: var(--font-display); font-weight: 400; font-size: 1.7rem; color: var(--text-heading); margin-bottom: 6px; }
.hemdw_bm-subtitle      { font-family: var(--font-ui); font-size: 0.85rem; color: var(--text-secondary); }

.hemdw_bm-room-tag {
  display: inline-block;
  background: transparent;
  border: 1px solid var(--hairline);
  color: var(--gold-flat);
  font-family: var(--font-ui);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 5px 12px; border-radius: 2px;
  margin-bottom: 18px;
}
.hemdw_bm-room-tag[hidden] { display: none; }

.hemdw_bm-field         { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.hemdw_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); }
.hemdw_bm-field input,
.hemdw_bm-field select  {
  background: var(--c-bg);
  border: 1px solid var(--hairline);
  border-radius: 2px;
  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;
}
.hemdw_bm-field input::placeholder { color: var(--text-secondary); opacity: 0.6; }
.hemdw_bm-field input:focus,
.hemdw_bm-field select:focus  { border-color: var(--gold-flat); }
.hemdw_bm-field input.error   { border-color: #C0524A; }

.hemdw_bm-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.hemdw_bm-submit {
  width: 100%; padding: 14px; margin-top: 8px;
  background: var(--gold-flat); color: var(--md-sys-color-on-primary, #161311);
  border: none; border-radius: 2px;
  font-family: var(--font-ui); font-size: 12px;
  font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  cursor: pointer; transition: opacity 0.2s;
}
.hemdw_bm-submit:hover    { opacity: 0.86; }
.hemdw_bm-submit:active   { opacity: 0.72; }
.hemdw_bm-submit:disabled { opacity: 0.5; cursor: not-allowed; }

.hemdw_bm-success       { text-align: center; padding: 16px 0; }
.hemdw_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;
}
.hemdw_bm-success h3    { font-family: var(--font-display); font-weight: 400; font-size: 1.4rem; color: var(--text-heading); margin-bottom: 10px; }
.hemdw_bm-success p     { font-family: var(--font-ui); font-size: 0.9rem; color: var(--text-secondary); line-height: 1.7; margin-bottom: 26px; }
.hemdw_bm-close-btn {
  background: none; border: 1px solid var(--hairline);
  border-radius: 2px; color: var(--text-heading);
  padding: 10px 30px;
  font-family: var(--font-ui); font-size: 12px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  cursor: pointer; transition: var(--ease);
}
.hemdw_bm-close-btn:hover { border-color: var(--gold-flat); color: var(--gold-flat); }

/* ═══════════════════════════════════ SERVICE PAGES */
.hemdw_service-page { padding-top: 88px; }

.hemdw_service-hero {
  position: relative;
  height: 420px;
  background-size: cover; background-position: center;
  display: flex; align-items: flex-end;
}
/* .hemdw_service-hero-content h1 already uses the strong --text-heading color, so
   this scrim doesn't need to be near-opaque to keep it legible — 92% was
   covering most of the photo behind it. */
.hemdw_service-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, color-mix(in srgb, var(--c-bg) 55%, transparent) 0%, color-mix(in srgb, var(--c-bg) 15%, transparent) 100%);
}
.hemdw_service-hero-content {
  position: relative; z-index: 1;
  padding-bottom: 48px;
}
.hemdw_service-hero-content h1 {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  font-weight: 400; color: var(--text-heading);
  margin-top: 10px;
}

.hemdw_service-body     { padding: 72px 24px 110px; max-width: 1240px; margin: 0 auto; }
.hemdw_service-intro-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 56px;
  align-items: center;
  margin-bottom: 60px;
}
.hemdw_service-intro    { font-size: 1.1rem; color: var(--text-secondary); line-height: 1.9; }
.hemdw_service-intro-image {
  aspect-ratio: 4/3;
  border: 1px solid var(--hairline);
  border-radius: 3px;
  overflow: hidden;
}

.hemdw_service-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--hairline); border: 1px solid var(--hairline);
  margin-bottom: 64px;
}
.hemdw_service-feature-card {
  background: var(--c-bg);
  border-radius: 0; padding: 30px 26px;
  transition: var(--ease);
}
.hemdw_service-feature-card:hover {
  background: var(--c-s1);
}
.hemdw_service-feature-icon { display: none; }
.hemdw_service-feature-card h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 1.1rem; color: var(--text-heading); margin-bottom: 10px;
}
.hemdw_service-feature-card p { font-family: var(--font-ui); font-size: 0.875rem; color: var(--text-secondary); line-height: 1.7; }

.hemdw_service-cta-block { text-align: center; padding-top: 16px; }
.hemdw_service-cta-btn {
  display: inline-block;
  padding: 15px 42px;
  background: var(--gold-flat); color: var(--md-sys-color-on-primary, #161311);
  border: none; border-radius: 2px;
  font-family: var(--font-ui); font-size: 13px;
  font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  cursor: pointer; transition: opacity 0.2s;
}
.hemdw_service-cta-btn:hover  { opacity: 0.86; }
.hemdw_service-cta-btn:active { opacity: 0.72; }

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

/* ═══════════════════════════════════ RESPONSIVE */
@media (max-width: 1024px) {
  .hemdw_about-grid,
  .hemdw_dining-grid       { grid-template-columns: 1fr; gap: 48px; }
  .hemdw_about-image-group { order: -1; }
  .hemdw_rooms-grid        { grid-template-columns: 1fr 1fr; }
  .hemdw_footer-inner      { grid-template-columns: 1fr 1fr; }
  .hemdw_highlights-grid   { gap: 24px; }
  .hemdw_amenities-layout  { grid-template-columns: 1fr; gap: 40px; }
  .hemdw_amenities-image   { order: -1; aspect-ratio: 16/9; }
}

@media (max-width: 768px) {
  :root { --section-padding: 72px 0; }

  .hemdw_hero { background-attachment: scroll; align-items: center; }
  .hemdw_casino-bg { background-attachment: scroll; }

  /* Mobile nav: burger LEFT, logo CENTERED, CTA hidden */
  .hemdw_nav-inner    { position: relative; justify-content: space-between; gap: 0; }
  .hemdw_nav-burger   { display: flex; order: 0; flex-shrink: 0; }
  .hemdw_nav-logo     {
    position: absolute;
    left: 50%; top: 50%;
    transform: translate(-50%, -50%);
    font-size: 1rem;
  }
  /* .hemdw_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 (which changes between .scrolled and
     not), instead of a hardcoded px guess that drifts out of sync and leaves
     a gap. */
  .hemdw_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;
  }
  .hemdw_nav-links.open { display: flex; }
  .hemdw_nav-links li   { width: 100%; text-align: center; }
  .hemdw_nav-links a    { display: block; padding: 14px; border-bottom: 1px solid var(--hairline); }
  .hemdw_nav-cta        { display: none; }

  .hemdw_highlights-grid { grid-template-columns: 1fr; gap: 24px; }
  .hemdw_rooms-grid      { grid-template-columns: 1fr; }
  .hemdw_contact-grid    { grid-template-columns: 1fr; }
  .hemdw_footer-inner    { grid-template-columns: 1fr 1fr; gap: 32px; }
  .hemdw_footer-bottom   { flex-direction: column; text-align: center; }
  .hemdw_casino-features { gap: 0; }
  .hemdw_about-stats     { gap: 20px; }

  /* Absolute overlap insets risk overflowing the viewport on narrow screens —
     drop into normal flow instead, pulled up over the main image via negative
     margin (safe: no absolute positioning, nothing can spill off-screen). */
  .hemdw_about-image-inset,
  .hemdw_dining-image-inset {
    position: static;
    width: 60%;
    margin: -36px 0 0 auto;
    box-shadow: 0 12px 26px rgba(0,0,0,0.3);
  }

  .hemdw_interlude-grid    { grid-template-columns: 1fr 1fr; }
  .hemdw_interlude-tall,
  .hemdw_interlude-wide,
  .hemdw_interlude-square  { aspect-ratio: 4/3; }
}

/* 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) {
  .hemdw_helplines-grid  { grid-template-columns: 1fr 1fr; }
  .hemdw_legal-page      { padding: 110px 0 64px; }
}

@media (max-width: 480px) {
  .hemdw_footer-inner    { grid-template-columns: 1fr; }
  .hemdw_interlude-grid  { grid-template-columns: 1fr; }
  .hemdw_about-stats     { flex-direction: column; gap: 16px; }
  .hemdw_cookie-banner-inner { flex-direction: column; align-items: stretch; }
  .hemdw_cookie-banner-actions { justify-content: stretch; }
  .hemdw_cookie-btn-accept,
  .hemdw_cookie-btn-reject { width: 100%; text-align: center; padding: 12px; }
  .hemdw_helplines-grid  { grid-template-columns: 1fr; }
  .hemdw_legal-table     { font-size: 0.8rem; min-width: 520px; }
}
.hemdw_legal-page section, .hemdw_legal-page table {
  max-width: 100%;
  overflow-y: auto;
}
