/* =============================================================
   LUXURY ROOMS PAGE — PLANTATION BAY RESORT & SPA
   Direction: Colonial Plantation Luxury
   Fonts: Cormorant Garamond (display) · Raleway (body)
   Palette: Warm Ivory / Deep Forest Green / Aged Brass
   ============================================================= */

@font-face {
  font-family: 'AaMgScript';
  src: url('../AaMgScript-Regular.woff2') format('woff2'),
       url('../AaMgScript-Regular.woff') format('woff'),
       url('../AaMgScript-Regular.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* ─── CSS Variables ─────────────────────────────────────────── */
#allRoomsContainer {
  --lux-ivory:       #F8F3EB;
  --lux-ivory-dark:  #EDE8DC;
  --lux-deep-green:  #1A3628;
  --lux-sage:        #4A7060;
  --lux-gold:        #B8882E;
  --lux-gold-light:  rgba(184, 136, 46, 0.14);
  --lux-gold-border: rgba(184, 136, 46, 0.35);
  --lux-cream:       #FFFEF9;
  --lux-text:        #2A2016;
  --lux-text-muted:  #6B5B47;
  --lux-white:       #ffffff;
  --lux-shadow:      rgba(28, 54, 40, 0.12);
  /* Header submenu colors (matched live from header_v3) */
  --lux-subnav-green: #679966;
  --lux-subnav-teal:  #006666;
  --lux-subnav-hover: #199280; /* .pb-nav__drop-link:hover */
  /* Brass reads muddy on the submenu green (~1.8:1) — the panel uses
     this pale gold instead for numbers, rates, and category marks. */
  --lux-gold-pale:   #EFD9A7;
}

/* jQM's .ui-page-theme-a paints text-shadow: 0 1px 0 #f3f3f3 page-wide
   and it inherits into everything; reset it for the whole rooms scope
   (same fix the packages page carries). */
#allRoomsContainer { text-shadow: none; }

/* ─── Page Container ─────────────────────────────────────────── */
#allRoomsContainer.allRoomsContainer {
  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  font-family: 'Segoe UI', Arial, Helvetica, sans-serif;
  color: var(--lux-text);
}

/* ─── Content width constraint (bg stays full-bleed, content breathes) ── */
#allRoomsContainer h1.leoxTitle,
#allRoomsContainer .lux-room-nav {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

/* ─── Page Title ─────────────────────────────────────────────── */
#allRoomsContainer h1.leoxTitle {
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-weight: 300;
  font-size: clamp(2rem, 5vw, 3.8rem);
  letter-spacing: 0.18em;
  text-align: center;
  color: var(--lux-deep-green);
  padding: 2.25rem 3rem 0.5rem;
  margin: 0 auto 0.75rem;
  text-transform: uppercase;
  text-shadow: none;
  line-height: 1.2;
}

#allRoomsContainer h1.leoxTitle::after {
  content: '';
  display: block;
  width: 52px;
  height: 1px;
  background: var(--lux-gold);
  margin: 1rem auto 1.5rem;
}

/* ─── Lead line (replaces the script promise on this page) ───── */
#allRoomsContainer .lux-rooms-lead {
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.01em;
  color: var(--lux-text);
  max-width: 46rem;
  margin: 0 auto 2rem;
  padding: 0 2rem;
  text-align: center;
}

/* ─── Room Quick Navigation ──────────────────────────────────── */
.lux-room-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  justify-content: center;
  padding: 0 2rem 2.5rem;
  border-bottom: 1px solid var(--lux-gold-border);
  margin-bottom: 0;
}

.lux-room-nav a {
  font-family: 'Segoe UI', Arial, Helvetica, sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--lux-sage);
  text-decoration: none;
  text-shadow: none;
  padding: 0.5rem 1rem;
  border: 1px solid var(--lux-gold-border);
  border-radius: 2px;
  background: transparent;
  transition: all 0.25s ease;
  white-space: nowrap;
}

.lux-room-nav a:hover {
  background: var(--lux-deep-green);
  color: var(--lux-cream);
  border-color: var(--lux-deep-green);
  text-shadow: none;
}

.lux-room-nav a .lux-nav-num {
  color: var(--lux-gold);
  font-weight: 700;
  margin-right: 0.45em;
  letter-spacing: 0.05em;
}
/* Pill taglines, rates, and full room names appear only inside the
   open panel; the capsule bar keeps reading the short .lux-pill-name. */
.lux-nav-pills a .lux-pill-tagline,
.lux-nav-pills a .lux-pill-fullname,
.lux-nav-pills a .lux-pill-rate { display: none; }
.lux-room-nav a:hover .lux-nav-num,
.lux-room-nav a.lux-nav-active .lux-nav-num {
  color: var(--lux-cream);
}
.lux-room-nav a.lux-nav-active {
  background: var(--lux-deep-green);
  color: var(--lux-cream);
  border-color: var(--lux-deep-green);
}
.lux-room-nav a:focus-visible {
  outline: 2px solid var(--lux-deep-green);
  outline-offset: 2px;
}

/* ─── Collapse-on-stick nav index ────────────────────────────── */
.lux-nav-sentinel { height: 1px; }

/* The index is always collapsed to a compact capsule, anchored right;
     the full pill index appears only on click (owner decision 2026-07-15). */
  .lux-room-nav .lux-nav-pills { display: none; }
  .lux-room-nav .lux-nav-title {
    /* label sits immediately LEFT of the capsule (owner: near the
       option, not at the container's left edge) */
    margin-left: auto;
    align-self: center;
    font-family: 'Segoe UI', Arial, Helvetica, sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--lux-gold);
  }
  .lux-room-nav .lux-nav-bar {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: auto;
    background: var(--lux-cream);
    border: 1px solid var(--lux-gold-border);
    border-radius: 2px;
    cursor: pointer;
    font-family: 'Segoe UI', Arial, Helvetica, sans-serif;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--lux-deep-green);
    padding: 0.5rem 1rem;
    text-align: left;
    /* Legacy button styling bleeds a drop shadow + click-focus ring onto
       this element; keep only the keyboard focus-visible ring below.
       jQM also sets text-shadow directly on .ui-btn — reset it here. */
    box-shadow: none;
    text-shadow: none;
    -webkit-tap-highlight-color: transparent;
  }
  .lux-nav-bar:focus {
    outline: none;
    box-shadow: none;
  }
  .lux-nav-bar-num { color: var(--lux-gold); font-weight: 700; letter-spacing: 0.05em; }
  /* Position count removed from the capsule (owner decision 2026-07-15);
     the JS still maintains the text, only the display is off. */
  .lux-nav-bar-count { display: none; }
  .lux-nav-bar-chev { flex: 0 0 auto; transition: transform 0.2s ease; }
  .lux-room-nav.is-open .lux-nav-bar-chev { transform: rotate(180deg); }
  .lux-nav-bar:focus-visible { outline: 2px solid var(--lux-deep-green); outline-offset: 2px; }
  /* The open index matches the header submenu: same green, white items,
     and the submenu's teal marking the selected/hovered room. */
  .lux-room-nav.is-open .lux-nav-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 0;
    justify-content: center;
    align-items: flex-start;
    position: absolute;
    /* escape the nav's content rail so pitch lines can run long, but
       cap at what the two item columns actually need — on wide screens
       the panel floats centered instead of stretching edge to edge
       (html carries overflow-x: clip, so 100vw cannot cause h-scroll) */
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 100vw;
    max-width: 1200px; /* the UI content width */
    top: 100%;
    background: var(--lux-subnav-green);
    border-bottom: 2px solid var(--lux-gold);
    box-shadow: 0 18px 40px rgba(26, 54, 40, 0.35);
    /* generous bottom space: the end of the list should be seen resting
       for a moment, not vanish the instant it appears */
    padding: 1.5rem 2.5rem 3rem;
  }
  /* Only while PINNED does the list clamp to the viewport with its own
     scrollbar; in normal flow it runs full height so scrolling the page
     walks through it (owner behavior 2026-07-22). The clamp derives from
     the measured chrome clearance the nav script publishes, so the box
     bottom always sits just inside the fold. */
  .lux-room-nav.is-stuck.is-open .lux-nav-pills {
    max-height: calc(100vh - var(--lux-nav-clearance, 240px) - 8px);
    overflow-y: auto;
  }
  /* While the index still rides the page (not yet pinned) it must
     blanket everything beneath the row — otherwise the page peeks out
     below the list's end and is seen scrolling behind it (owner
     report from a real phone). Once pinned, the fold-clamp above
     takes over and the end-of-list close can still detect the bottom. */
  .lux-room-nav.is-open:not(.is-stuck) .lux-nav-pills {
    min-height: 100vh;
    min-height: 100dvh;
  }
  /* One column per category; they grow into the panel's full width so
     most pitch lines fit on one line and the list stays short. */
  .lux-room-nav.is-open .lux-pills-group {
    flex: 1 1 520px;
    min-width: 320px;
    max-width: 700px;
    padding: 0 1.5rem;
  }
  .lux-room-nav.is-open .lux-pills-group + .lux-pills-group {
    border-left: 1px solid rgba(255, 255, 255, 0.22);
  }
  .lux-room-nav.is-open .lux-nav-pills .lux-pills-caption {
    display: block;
    text-align: center;
    color: var(--lux-gold-pale);
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    margin: 0.35rem 0 1.1rem;
  }
  /* The category mark: the DS's short rule, in the panel's pale gold */
  .lux-room-nav.is-open .lux-nav-pills .lux-pills-caption::after {
    content: '';
    display: block;
    width: 28px;
    height: 1px;
    background: var(--lux-gold-pale);
    opacity: 0.65;
    margin: 0.5rem auto 0;
  }
  .lux-room-nav.is-open .lux-nav-pills a {
    /* list row: a light pastel card — number + name left, rate as a
       right-hand price column, tagline beneath */
    color: var(--lux-text);
    background: var(--lux-ivory);
    position: relative;
    display: block;
    width: auto;
    border: none;
    border-radius: 2px;
    white-space: normal;
    text-align: left;
    padding: 0.6rem 4.5rem 0.7rem 0.85rem;
    margin-bottom: 0.55rem;
    line-height: 1.5;
    transition: background 0.2s ease;
  }
  .lux-room-nav.is-open .lux-pills-group a:last-child {
    margin-bottom: 0;
  }
  /* Every room type wears its own light pastel (owner request) — all
     ~95% lightness so the ink palette stays legible on each. Keyed to
     the room anchor, not list position, so reordering can't shuffle
     the colors. Teal hover/current rules below still win (same
     specificity, later in the sheet). */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-wer"] { background: #E9F4F1; } /* pale lagoon    */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-lsr"] { background: #F7F0E2; } /* pale sand      */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-lvr"] { background: #EAF1F8; } /* pale sky       */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-psr"] { background: #F8F4DE; } /* pale butter    */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-fpx"] { background: #F9ECEC; } /* pale blush     */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-far"] { background: #FAEFE3; } /* pale peach     */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-obs"] { background: #ECF6E8; } /* pale mint      */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-tbs"] { background: #F1EEF8; } /* pale lilac     */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-spr"] { background: #EFF1EE; } /* pale mist      */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-qvr"] { background: #F8EFD9; } /* pale champagne */
  .lux-room-nav.is-open .lux-nav-pills a[href="#room-rbs"] { background: #EAF6F6; } /* pale water     */
  .lux-room-nav.is-open .lux-nav-pills a .lux-pill-name,
  .lux-room-nav.is-open .lux-nav-pills a .lux-pill-fullname {
    font-weight: 700;
  }
  .lux-room-nav.is-open .lux-nav-pills a .lux-pill-tagline {
    display: block;
    margin-top: 0.35rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    font-size: 0.78rem;
    line-height: 1.55;
    color: var(--lux-sage);
  }
  .lux-room-nav.is-open .lux-nav-pills a .lux-pill-rate {
    display: block;
    position: absolute;
    top: 0.72rem;
    right: 0.85rem;
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.06em;
    color: var(--lux-deep-green);
  }
  /* Click affordance: the DS arrow glyph, riding the row's right edge */
  .lux-room-nav.is-open .lux-nav-pills a::after {
    content: '\2192';
    position: absolute;
    right: 0.85rem;
    bottom: 0.6rem;
    font-size: 0.9rem;
    line-height: 1;
    color: var(--lux-gold);
    opacity: 0.85;
    transition: transform 0.2s ease;
  }
  .lux-room-nav.is-open .lux-nav-pills a:hover::after,
  .lux-room-nav.is-open .lux-nav-pills a.lux-nav-active::after {
    color: var(--lux-white);
    transform: translateX(3px);
  }
  /* Teal current/hover card flips its ink to white */
  .lux-room-nav.is-open .lux-nav-pills a:hover .lux-pill-fullname,
  .lux-room-nav.is-open .lux-nav-pills a.lux-nav-active .lux-pill-fullname,
  .lux-room-nav.is-open .lux-nav-pills a:hover .lux-pill-rate,
  .lux-room-nav.is-open .lux-nav-pills a.lux-nav-active .lux-pill-rate {
    color: var(--lux-white);
  }
  .lux-room-nav.is-open .lux-nav-pills a:hover .lux-pill-tagline,
  .lux-room-nav.is-open .lux-nav-pills a.lux-nav-active .lux-pill-tagline {
    color: rgba(255, 255, 255, 0.88);
  }
  .lux-room-nav.is-open .lux-nav-pills a:hover .lux-nav-num,
  .lux-room-nav.is-open .lux-nav-pills a.lux-nav-active .lux-nav-num {
    color: var(--lux-gold-pale);
  }
  .lux-room-nav.is-open .lux-nav-pills a .lux-nav-num {
    color: var(--lux-gold);
  }
  /* The panel shows the complete room name, as written in the details;
     the short label stays for the mobile row and the capsule bar. */
  .lux-room-nav.is-open .lux-nav-pills a .lux-pill-name { display: none; }
  .lux-room-nav.is-open .lux-nav-pills a .lux-pill-fullname {
    display: inline;
    font-size: 0.76rem;
    letter-spacing: 0.14em;
    color: var(--lux-deep-green);
  }
  /* Hover mirrors the header submenu's hover; the current room keeps
     the submenu's darker selected teal. */
  .lux-room-nav.is-open .lux-nav-pills a:hover {
    background: var(--lux-subnav-hover);
    color: var(--lux-white);
    border-color: var(--lux-subnav-hover);
  }
  .lux-room-nav.is-open .lux-nav-pills a.lux-nav-active {
    background: var(--lux-subnav-teal);
    color: var(--lux-white);
    border-color: var(--lux-subnav-teal);
  }
  .lux-room-nav.is-open .lux-nav-pills a:hover .lux-nav-num,
  .lux-room-nav.is-open .lux-nav-pills a.lux-nav-active .lux-nav-num {
    color: var(--lux-white);
  }
  .lux-room-nav.is-open .lux-nav-pills a:focus-visible {
    outline: 2px solid var(--lux-white);
    outline-offset: 2px;
  }
@media (max-width: 1099px) {
  /* Narrow desktop: single column — Conventional first, Specialty below,
     with clear air between the two categories */
  .lux-room-nav.is-open .lux-pills-group { flex-basis: 100%; }
  .lux-room-nav.is-open .lux-pills-group + .lux-pills-group {
    border-left: none;
    margin-top: 2rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .lux-nav-bar-chev { transition: none; }
  .lux-room-nav.is-open .lux-nav-pills a,
  .lux-room-nav.is-open .lux-nav-pills a::after { transition: none; }
  .lux-room-nav.is-open .lux-nav-pills a:hover::after { transform: none; }
}
@media (max-width: 899px) {
  /* Phones get the same capsule + category list as desktop (owner
     decision 2026-07-22) — the old horizontally scrollable pill row
     is retired. The gold label doesn't fit beside the capsule at
     phone widths, so it sits on its own line above it. */
  .lux-room-nav { padding: 0 16px 1rem; justify-content: flex-end; }
  /* Label right beside the capsule, one line when it fits; when the
     pair is too wide the label wraps above, staying right-aligned
     next to where the capsule sits. */
  .lux-room-nav .lux-nav-title {
    text-align: right;
    font-size: 0.72rem;
  }
  .lux-room-nav.is-open .lux-nav-pills { padding: 1rem 12px 2.5rem; }
  .lux-room-nav.is-open .lux-pills-group {
    min-width: 0;
    padding: 0 0.25rem;
    border-left: none;
  }
  .lux-room-nav.is-open .lux-nav-pills a { padding-right: 4rem; }
}

/* ─── Room Section (article wrapper) ────────────────────────── */
.roomSection {
  position: relative;
  width: 100%;
  padding: 0;
  margin: 0;
  background: var(--lux-ivory);
  border: none;
  border-radius: 0;
  overflow: visible;
  transition: none;
  transform: none;
  /* Clearance for the fixed header when scrolled-to via anchor nav */
  scroll-margin-top: var(--lux-nav-clearance, 115px);
}

@media (max-width: 767px) {
  .roomSection {
    /* Mobile: fixed header is taller (brandbar wraps + subnav bar) */
    scroll-margin-top: var(--lux-nav-clearance, 170px);
  }
}

.roomSection:hover {
  transform: none;
}

/* Scroll-reveal initial state */
.roomSection.lux-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.roomSection.lux-reveal.lux-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Generous vertical breathing room between rooms */
.roomSection + .roomSection {
  border-top: none;
  margin-top: 5rem;
}

/* Gold rule between sections */
.roomSection + .roomSection::before {
  content: '';
  display: block;
  width: 80px;
  height: 1px;
  background: var(--lux-gold-border);
  margin: 0 2rem 2.5rem;
}

/* Remove all per-room-type pastel background tints */
.roomType-WER, .roomType-LSR, .roomType-LVR,
.roomType-PSR, .roomType-SSR, .roomType-OBS,
.roomType-TBS, .roomType-SIR, .roomType-FAR,
.roomType-SPR, .roomType-QVR, .roomType-RBS {
  background: var(--lux-ivory);
}

/* Remove the old ::before gold gradient */
.roomSection::before {
  display: none;
}

/* ─── Room Number & Name Header ──────────────────────────────── */
.roomSection .roomTypeName {
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: clamp(1.35rem, 3.5vw, 2.2rem);
  letter-spacing: 0.2em;
  color: orange;
  text-align: left;
  /* Constrain header to same width as .room content */
  max-width: 1320px;
  margin: 0 auto;
  padding: 2.5rem 3rem 0.75rem;
  text-transform: uppercase;
  border: none;
  text-shadow: none;
  line-height: 1.2;
  display: flex;
  align-items: baseline;
  gap: 1.2rem;
  position: relative;
}

/* Room number (injected via JS) */
.roomSection .lux-room-number {
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-weight: 300;
  font-size: 0.75em;
  letter-spacing: 0.08em;
  color: var(--lux-gold);
  flex-shrink: 0;
}

/* Gold accent underline on room name */
.roomSection .roomTypeName::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 3rem;
  width: 36px;
  height: 1px;
  background: var(--lux-gold);
}

/* ─── Room deck (tagline as standfirst under the heading) ────── */
#allRoomsContainer .lux-room-deck {
  max-width: 1320px;
  margin: 0 auto 1.75rem;
  padding: 0 3rem;
}
#allRoomsContainer .lux-room-deck span {
  display: inline-block;
  max-width: 55ch;
  border-left: 3px solid var(--lux-gold);
  padding-left: 1rem;
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-size: clamp(1rem, 1.6vw, 1.15rem);
  font-weight: 400;
  font-style: normal;
  line-height: 1.6;
  color: var(--lux-sage);
  letter-spacing: 0.01em;
}
@media (max-width: 767px) {
  #allRoomsContainer .lux-room-deck { padding: 0 1.5rem; }
}

/* Uniform color for all room name variants */
.roomType-WER .roomTypeName, .roomType-LSR .roomTypeName,
.roomType-LVR .roomTypeName, .roomType-PSR .roomTypeName,
.roomType-SSR .roomTypeName, .roomType-OBS .roomTypeName,
.roomType-TBS .roomTypeName, .roomType-SIR .roomTypeName,
.roomType-FAR .roomTypeName, .roomType-SPR .roomTypeName,
.roomType-QVR .roomTypeName, .roomType-RBS .roomTypeName {
  color: orange;
}

/* ─── Room Body (.room) ──────────────────────────────────────── */
#allRoomsContainer .room {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0 3rem !important;
  margin: 0 auto !important;
  max-width: 1320px !important;
  background: transparent !important;
  border-radius: 0 !important;
  align-items: stretch !important;
  min-height: 0 !important;
}

@media (min-width: 900px) {
  #allRoomsContainer .room {
    flex-direction: row !important;
    align-items: stretch !important;
    min-height: 460px !important;
    padding: 0 !important;       /* images go edge-to-edge within the 1320px box */
  }
}

/* ─── Left: Image Panel (.roomDesc) ──────────────────────────── */
#allRoomsContainer .roomDesc {
  position: relative;
  overflow: hidden;
  background: var(--lux-deep-green);
  /* legacy sheets add a 5px side margin that overflowed once the jQM
     content gutter was removed */
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
}

@media (min-width: 900px) {
  #allRoomsContainer .roomDesc {
    flex: 0 0 60% !important;
    max-width: 60% !important;
    width: 60% !important;
    min-width: 0 !important;
  }
}

/* ─── Slideshows → static display ────────────────────────────── */

/* All slideshow wrappers */
#allRoomsContainer .WatersEdgeRooms-slideshow,
#allRoomsContainer .LagoonSideRooms-slideshow,
#allRoomsContainer .LagoonViewRooms-slideshow,
#allRoomsContainer .PoolsideRooms-slideshow,
#allRoomsContainer .SuperSaverRooms-slideshow,
#allRoomsContainer .OneBedroomRooms-slideshow,
#allRoomsContainer .TwoBedroomRooms-slideshow,
#allRoomsContainer .SpaRooms-slideshow,
#allRoomsContainer .FamilyRooms-slideshow,
#allRoomsContainer .SmokingRooms-slideshow,
#allRoomsContainer .QuantumVillaRooms-slideshow,
#allRoomsContainer .RiverboatRooms-slideshow {
  display: block !important;
  position: relative !important;
  overflow: visible !important;
  height: auto !important;
  margin: 0 !important;
}

/* All slideshow images — force visible */
#allRoomsContainer .WatersEdgeRooms-slideshow img,
#allRoomsContainer .LagoonSideRooms-slideshow img,
#allRoomsContainer .LagoonViewRooms-slideshow img,
#allRoomsContainer .PoolsideRooms-slideshow img,
#allRoomsContainer .SuperSaverRooms-slideshow img,
#allRoomsContainer .OneBedroomRooms-slideshow img,
#allRoomsContainer .TwoBedroomRooms-slideshow img,
#allRoomsContainer .SpaRooms-slideshow img,
#allRoomsContainer .FamilyRooms-slideshow img,
#allRoomsContainer .SmokingRooms-slideshow img,
#allRoomsContainer .QuantumVillaRooms-slideshow img,
#allRoomsContainer .RiverboatRooms-slideshow img {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  position: relative !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  border: none !important;
  margin: 0 !important;
  transition: transform 0.7s ease !important;
  max-width: 100% !important;
}

/* First image: hero, full-width */
#allRoomsContainer .WatersEdgeRooms-slideshow img:first-of-type,
#allRoomsContainer .LagoonSideRooms-slideshow img:first-of-type,
#allRoomsContainer .LagoonViewRooms-slideshow img:first-of-type,
#allRoomsContainer .PoolsideRooms-slideshow img:first-of-type,
#allRoomsContainer .SuperSaverRooms-slideshow img:first-of-type,
#allRoomsContainer .OneBedroomRooms-slideshow img:first-of-type,
#allRoomsContainer .TwoBedroomRooms-slideshow img:first-of-type,
#allRoomsContainer .SpaRooms-slideshow img:first-of-type,
#allRoomsContainer .FamilyRooms-slideshow img:first-of-type,
#allRoomsContainer .SmokingRooms-slideshow img:first-of-type,
#allRoomsContainer .QuantumVillaRooms-slideshow img:first-of-type,
#allRoomsContainer .RiverboatRooms-slideshow img:first-of-type {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

@media (min-width: 900px) {
  #allRoomsContainer .WatersEdgeRooms-slideshow img:first-of-type,
  #allRoomsContainer .LagoonSideRooms-slideshow img:first-of-type,
  #allRoomsContainer .LagoonViewRooms-slideshow img:first-of-type,
  #allRoomsContainer .PoolsideRooms-slideshow img:first-of-type,
  #allRoomsContainer .SuperSaverRooms-slideshow img:first-of-type,
  #allRoomsContainer .OneBedroomRooms-slideshow img:first-of-type,
  #allRoomsContainer .TwoBedroomRooms-slideshow img:first-of-type,
  #allRoomsContainer .SpaRooms-slideshow img:first-of-type,
  #allRoomsContainer .FamilyRooms-slideshow img:first-of-type,
  #allRoomsContainer .SmokingRooms-slideshow img:first-of-type,
  #allRoomsContainer .QuantumVillaRooms-slideshow img:first-of-type,
  #allRoomsContainer .RiverboatRooms-slideshow img:first-of-type {
    height: 100% !important;
    aspect-ratio: unset;
    min-height: 340px;
    object-fit: cover;
  }
}

/* Second image (floor plan): styled thumbnail */
#allRoomsContainer .WatersEdgeRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .LagoonSideRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .LagoonViewRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .PoolsideRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .SuperSaverRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .OneBedroomRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .TwoBedroomRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .SpaRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .FamilyRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .SmokingRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .QuantumVillaRooms-slideshow img:nth-of-type(2),
#allRoomsContainer .RiverboatRooms-slideshow img:nth-of-type(2) {
  width: auto !important;
  max-width: 220px !important;
  height: auto !important;
  aspect-ratio: unset !important;
  object-fit: initial;
  margin: 1.25rem auto !important;
  padding: 8px !important;
  background: var(--lux-cream) !important;
  border: 1px solid var(--lux-gold-border) !important;
  box-shadow: 0 4px 16px var(--lux-shadow) !important;
  display: block !important;
}

/* Hover on image panel — subtle zoom */
#allRoomsContainer .roomDesc:hover img:first-of-type {
  transform: scale(1.04);
}

/* Hide cycle artifacts */
#allRoomsContainer .cycle-pager,
#allRoomsContainer .cycle-caption {
  display: none !important;
}

#allRoomsContainer .cycle-slide {
  display: block !important;
  opacity: 1 !important;
  position: relative !important;
}

#allRoomsContainer .cycle-slideshow {
  overflow: visible !important;
}

/* ─── Room Tagline & Description (inside .roomDesc) ──────────── */
/* Left col bg is dark green → text must be light + no text-shadow */
#allRoomsContainer .roomDesc .leoxTitle1 {
  font-family: 'AaMgScript', cursive !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-size: clamp(1.1rem, 2.2vw, 1.35rem) !important;
  color: orange !important;
  line-height: 1.65 !important;
  padding: 1.8rem 2rem 0.7rem !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  border-left: 2px solid var(--lux-gold) !important;
  text-shadow: none !important;
  box-shadow: none !important;
  letter-spacing: 0.01em !important;
  max-width: 44ch;
}

#allRoomsContainer .roomDesc .iJustify {
  font-family: 'Segoe UI', Arial, Helvetica, sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(0.9375rem, 1.5vw, 1.0625rem) !important;
  color: rgba(255, 254, 249, 0.72) !important;
  line-height: 1.9 !important;
  padding: 0.6rem 2rem 2rem !important;
  margin: 0 !important;
  text-align: left !important;
  text-shadow: none !important;
  letter-spacing: 0.01em !important;
  max-width: 52ch;
}

/* ─── Right: Details Panel (.roomBedandPrice) ────────────────── */
#allRoomsContainer .roomBedandPrice {
  margin-left: 0 !important;
  margin-right: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: var(--lux-cream) !important;
  border-left: 1px solid var(--lux-gold-border);
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex-basis: auto !important;
}

@media (min-width: 900px) {
  #allRoomsContainer .roomBedandPrice {
    flex: 0 0 40% !important;
    max-width: 40% !important;
    width: 40% !important;
    min-width: 0 !important;
    overflow-y: auto;
  }
}

/* Override room-details.css 1200px rule that adds min-width: 650px */
@media (min-width: 1200px) {
  #allRoomsContainer .roomBedandPrice,
  #allRoomsContainer .room > .roomBedandPrice {
    flex-basis: 40% !important;
    min-width: 0 !important;
    max-width: 40% !important;
    width: 40% !important;
  }
}

/* Override room-details.css internal roomBedandPrice flex-direction:row at 1024px */
@media (min-width: 900px) {
  #allRoomsContainer .roomBedandPrice > .roomBed,
  #allRoomsContainer .roomBedandPrice > #roomBed {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  #allRoomsContainer .roomBedandPrice > .roomPrice {
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  #allRoomsContainer .roomBedandPrice > .roomAction,
  #allRoomsContainer .roomAction {
    flex: none !important;
    width: auto !important;
    min-width: 0 !important;
  }
}

/* ─── Bed Configuration Panel — editorial, no striped rows ──── */
#allRoomsContainer .roomBed,
#allRoomsContainer #roomBed {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--lux-gold-border);
  box-shadow: none;
  border-radius: 0;
  overflow: hidden;
  padding: 0.5rem 0;
}

#allRoomsContainer .roomBed ul[data-role="listview"],
#allRoomsContainer #roomBed ul[data-role="listview"] {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Category label — no background, just colour + spacing */
#allRoomsContainer .roomBed li[data-role="list-divider"],
#allRoomsContainer #roomBed li[data-role="list-divider"] {
  font-family: 'Segoe UI', Arial, Helvetica, sans-serif;
  font-weight: 700;
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--lux-gold);
  background: transparent;        /* ← no fill */
  padding: 1.6rem 2.5rem 0.35rem; /* big top gap = visual grouping */
  margin: 0;
  border: none;
}

/* Value row — generous leading, no background */
#allRoomsContainer .roomBed li:not([data-role="list-divider"]),
#allRoomsContainer #roomBed li:not([data-role="list-divider"]) {
  font-family: 'Segoe UI', Arial, Helvetica, sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--lux-text);
  padding: 0.2rem 2.5rem 1.4rem; /* tight top, generous bottom before next label */
  margin: 0;
  border: none;                   /* ← no row dividers */
  line-height: 1.7;
  background: transparent;
}

/* Hairline between full groups (after last value, before next label) */
#allRoomsContainer .roomBed li[data-role="list-divider"] + li:not([data-role="list-divider"]) + li[data-role="list-divider"],
#allRoomsContainer .roomBed li:not([data-role="list-divider"]) + li[data-role="list-divider"] {
  border-top: 1px solid rgba(184, 136, 46, 0.15);
}

#allRoomsContainer .roomBed li:not([data-role="list-divider"]):last-child,
#allRoomsContainer #roomBed li:not([data-role="list-divider"]):last-child {
  padding-bottom: 1rem;
}

/* ─── Pricing Panel ───────────────────────────────────────────── */
#allRoomsContainer .roomPrice {
  width: 100%;
  max-width: 100%;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

#allRoomsContainer .rates {
  width: 100%;
  max-width: 100%;
  padding: 0;
  border-top: 1px solid var(--lux-gold-border);
}

/* "Starting from" label above the rates */
#allRoomsContainer .rates::before {
  content: 'Starting From';
  display: block;
  font-family: 'Segoe UI', Arial, Helvetica, sans-serif;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--lux-gold);
  padding: 1.6rem 2.5rem 0.4rem;
}

#allRoomsContainer .rates .rateItem {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 0.65rem 2.5rem 0.65rem;
  border-bottom: none;
  transition: background 0.2s;
}

#allRoomsContainer .rates .rateItem:last-of-type {
  padding-bottom: 1rem;
}

#allRoomsContainer .rates .rateItem:hover {
  background: rgba(184, 136, 46, 0.06);
}

#allRoomsContainer .rates .rateLabel {
  font-family: 'Segoe UI', Arial, Helvetica, sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--lux-text-muted);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Rate note: room-details.css (shared with the per-room pages) scales it to
   13-15px, which reads LARGER than the 0.72rem label it sits under. */
#allRoomsContainer .rates .rateNote {
  font-size: 0.72rem;
}

#allRoomsContainer .rates .ratePrice {
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-weight: 600;
  font-size: 1.1rem;
  color: orange;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

#allRoomsContainer .rates .ratePrice::before {
  content: '$';
  font-size: 0.65em;
  font-weight: 400;
  vertical-align: super;
  margin-right: 1px;
}

/* ─── Room Action (Book Button Container) ────────────────────── */
#allRoomsContainer .roomAction {
  padding: 1.75rem 2.5rem 2.5rem !important;
  margin: 0 !important;
  background: rgba(192, 57, 43, 0.07) !important;
  border-top: 1px solid rgba(192, 57, 43, 0.18) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  display: flex !important;
  justify-content: stretch !important;
  align-items: stretch !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* ─── LUXURY BOOK NOW BUTTON ─────────────────────────────────── */

#allRoomsContainer .roomAction button.book-now-button,
#allRoomsContainer .roomAction button.book-now-button:link,
#allRoomsContainer .roomAction button.book-now-button:visited {
  /* Structure */
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  overflow: hidden !important;

  /* Box model — full width of its container */
  min-width: 0 !important;
  width: 100% !important;
  height: auto !important;
  padding: 1.1rem 2rem !important;
  margin: 0 !important;

  /* Visual */
  background: #C0392B !important;
  color: var(--lux-cream) !important;
  border: 1px solid rgba(255,255,255,0.25) !important;
  border-radius: 2px !important;
  box-shadow: 0 4px 24px rgba(28, 54, 40, 0.25) !important;
  text-shadow: none !important;
  outline: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;

  /* Typography */
  font-family: 'Segoe UI', Arial, Helvetica, sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  line-height: 1 !important;

  /* Transition */
  transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.25s ease !important;
}

#allRoomsContainer .roomAction button.book-now-button:hover {
  background: #96281B !important;
  color: var(--lux-cream) !important;
  border-color: rgba(255,255,255,0.3) !important;
  box-shadow: 0 8px 32px rgba(150, 40, 27, 0.45) !important;
  transform: translateY(-2px) !important;
  text-shadow: none !important;
  letter-spacing: 0.22em !important;
}

#allRoomsContainer .roomAction button.book-now-button:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 10px rgba(28, 54, 40, 0.3) !important;
}

/* Hide jQuery Mobile icon & old sparkle/wave markup */
#allRoomsContainer .roomAction button.book-now-button::before,
#allRoomsContainer .roomAction button.book-now-button::after {
  display: none !important;
  content: '' !important;
}

#allRoomsContainer .roomAction button.book-now-button .button-waves,
#allRoomsContainer .roomAction button.book-now-button .button-sparkles {
  display: none !important;
}

/* Show just the text content */
#allRoomsContainer .roomAction button.book-now-button .button-content {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  z-index: 2 !important;
  position: relative !important;
  pointer-events: none !important;
}

#allRoomsContainer .roomAction button.book-now-button .button-text {
  display: inline !important;
  white-space: nowrap !important;
}

/* Arrow after button text */
#allRoomsContainer .roomAction button.book-now-button .button-content::after {
  content: '→';
  font-size: 1em;
  line-height: 1;
  display: inline !important;
  transition: transform 0.25s ease;
}

#allRoomsContainer .roomAction button.book-now-button:hover .button-content::after {
  transform: translateX(4px);
}

/* ─── Q&A answers: normalize the legacy include typography ───── */
/* The FAQ bodies are legacy includes (whyAffordable.html etc.) whose
   .iJustify class justifies 14px text — off-standard for this page. */
#allRoomsContainer .lux-faq-a p,
#allRoomsContainer .lux-faq-a ol,
#allRoomsContainer .lux-faq-a li,
#allRoomsContainer .lux-faq-a .iJustify {
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  text-align: left;
  color: var(--lux-text);
  max-width: 72ch;
}
#allRoomsContainer .lux-faq-a ol { padding-left: 1.4rem; margin: 0 0 0.75rem; }
#allRoomsContainer .lux-faq-a li { margin: 0 0 0.5rem; }
/* The pricing answer's worked example lost its popup-era callout styling
   when the popups left this page — restore it as a quiet DS callout. */
#allRoomsContainer .lux-faq-a .pricing-callout {
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--lux-text);
  max-width: 72ch;
  background: var(--lux-cream);
  border-left: 3px solid var(--lux-gold);
  padding: 0.75rem 1rem;
  margin: 0.75rem 0;
}

/* Guard: never allow a horizontal pan on this page. clip (not hidden) —
   hidden would make html a scroll container and defeat position:sticky. */
html { overflow-x: clip; }
/* global.css sets body{overflow-x:hidden}. With html no longer `visible`,
   that hidden does NOT propagate to the viewport (spec) — Safari then
   makes BODY the scroll container and position:sticky pins to body
   instead of the screen (the room nav never pinned on real iPhones;
   Chrome is lenient, which hid this in desktop testing). clip keeps the
   h-pan guard without creating a scroll container. Older Safari (<16)
   ignores clip and keeps global.css's hidden — status quo there.
   (body.ui-mobile-viewport: jQM sets overflow-x:hidden at (0,1,1),
   which outranks a bare body selector.) */
body,
body.ui-mobile-viewport { overflow-x: clip; }

/* ─── Bottom Booking Widget ──────────────────────────────────── */
.bottom-booking-section {
  background: #f0f7f4;
  padding: 36px 20px 44px;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
  margin-top: 10px;
  border-top: 1px solid #d4e8e0;
  border-bottom: 1px solid #d4e8e0;
}

.bottom-booking-title {
  color: #2c2c2c;
  font-family: 'AaMgScript', 'AaMgScript-Regular', cursive !important;
  font-size: clamp(1.1rem, 1.8vw, 1.5rem) !important;
  letter-spacing: 0.02em;
  margin: 0 0 24px 0;
  font-weight: normal !important;
  text-transform: none !important;
}

.bottom-booking-widget {
  max-width: 900px;
  margin: 0 auto;
}

@media (max-width: 767px) {
  .bottom-booking-section {
    display: none;
  }
}

/* ─── leoxSudlanan (Why Affordable, etc.) ────────────────────── */
#allRoomsContainer .leoxSudlanan {
  max-width: 860px;
  margin: 3rem auto;
  padding: 2rem;
  border-top: 1px solid var(--lux-gold-border);
}

#allRoomsContainer .leoxSudlanan > * {
  margin-bottom: 1.5rem;
}

#allRoomsContainer .leoxSudlanan > *:last-child {
  margin-bottom: 0;
}

#allRoomsContainer .leoxSudlanan p,
#allRoomsContainer .leoxSudlanan .iJustify {
  font-family: 'Segoe UI', Arial, Helvetica, sans-serif !important;
  font-size: clamp(0.9375rem, 1.5vw, 1.0625rem) !important;
  line-height: 1.9 !important;
  color: var(--lux-text) !important;
  text-shadow: none !important;
  max-width: 60ch !important;
}

/* ─── Global image safety ─────────────────────────────────────── */
#allRoomsContainer img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ─── Responsive: mobile layout (< 900px) ────────────────────── */
@media (max-width: 899px) {
  #allRoomsContainer .roomBedandPrice {
    border-left: none;
    border-top: 1px solid var(--lux-gold-border);
  }

  #allRoomsContainer .roomAction {
    justify-content: center !important;
  }

  #allRoomsContainer .roomSection .roomTypeName {
    padding: 2rem 1.5rem 0.75rem;
    font-size: clamp(1.15rem, 4vw, 1.7rem);
    max-width: 100%;
  }

  #allRoomsContainer .roomSection .roomTypeName::after {
    left: 1.5rem;
  }

  #allRoomsContainer .roomDesc .leoxTitle1 {
    padding: 1.2rem 1.5rem 0.5rem !important;
  }

  #allRoomsContainer .roomDesc .iJustify {
    padding: 0.4rem 1.5rem 1.2rem !important;
  }

  #allRoomsContainer .roomBed li[data-role="list-divider"],
  #allRoomsContainer #roomBed li[data-role="list-divider"] {
    padding: 1.4rem 1.5rem 0.35rem;
  }

  #allRoomsContainer .roomBed li:not([data-role="list-divider"]),
  #allRoomsContainer #roomBed li:not([data-role="list-divider"]) {
    padding: 0.2rem 1.5rem 1.2rem;
    font-size: 0.9rem;
  }

  #allRoomsContainer .rates::before {
    padding: 1.4rem 1.5rem 0.4rem;
  }

  #allRoomsContainer .rates .rateItem {
    padding: 0.65rem 1.5rem;
  }

  .roomSection + .roomSection {
    margin-top: 3rem;
  }

  #allRoomsContainer .roomAction {
    padding: 1.4rem 1.5rem 2rem !important;
  }

  #allRoomsContainer h1.leoxTitle {
    padding: 2.5rem 1.5rem 0.5rem;
    font-size: clamp(1.7rem, 6vw, 2.8rem);
  }

  #allRoomsContainer .room {
    padding: 0 !important;
  }

  /* Floor plan: smaller on mobile */
  #allRoomsContainer .WatersEdgeRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .LagoonSideRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .LagoonViewRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .PoolsideRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .SuperSaverRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .OneBedroomRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .TwoBedroomRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .SpaRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .FamilyRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .SmokingRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .QuantumVillaRooms-slideshow img:nth-of-type(2),
  #allRoomsContainer .RiverboatRooms-slideshow img:nth-of-type(2) {
    max-width: 160px !important;
  }
}

/* ─── Quantum Villa: 3rd image (drone) — full-width below thumbnail ── */
#allRoomsContainer .QuantumVillaRooms-slideshow img:nth-of-type(3) {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  background: transparent !important;
}

@media (min-width: 900px) {
  #allRoomsContainer .QuantumVillaRooms-slideshow img:nth-of-type(3) {
    aspect-ratio: 16 / 9;
  }
}

/* ─── Utility: hide jQuery Mobile artefacts ──────────────────── */
#allRoomsContainer .ui-listview-filter,
#allRoomsContainer .ui-listview-filter-inset {
  display: none;
}
