/* PLANTATION BAY — DESIGN SYSTEM · dist/plantation-ds.css
   GENERATED FILE — do not hand-edit. Edit tokens/*.css or
   handoff/plantation-ds/plantation-ds.css then run ./build-dist.sh
   Load LAST in <head> on the website so its corrections win. */

/* ===== TOKENS ===== */
/* ============================================================
   Plantation Bay — Color System
   Direction: "Colonial Plantation Luxury"
   Warm ivory grounds · deep plantation greens · aged brass ·
   burgundy calls-to-action. Palette derived from the live
   rooms + packages redesign; kept intentionally close to the
   colours already in production.
   ============================================================ */

:root {
  /* ── Warm neutrals (backgrounds & cards) ─────────────────── */
  --pb-ivory:        #F8F3EB;  /* page ground (rooms) */
  --pb-cream:        #FAF8F4;  /* page ground (packages) */
  --pb-cream-card:   #FFFEF9;  /* room detail card fill */
  --pb-ivory-dark:   #EDE8DC;  /* muted ivory / dividers block */
  --pb-stone:        #F0ECE4;  /* image placeholder / inset fill */
  --pb-white:        #FFFFFF;

  /* ── Plantation greens ───────────────────────────────────── */
  --pb-forest:       #1A3628;  /* deepest — full-bleed room panels */
  --pb-deep:         #1E3C38;  /* package titles / deep headings */
  --pb-teal-deep:    #1E4A40;  /* "Seniors, Golf & Solo" group */
  --pb-teal:         #3D6B64;  /* section headings / links */
  --pb-sage:         #4A7060;  /* quiet UI labels */
  --pb-sage-mid:     #4A8A7E;  /* group mid-tone accents */

  /* ── Aged brass / gold (metallic accent) ─────────────────── */
  --pb-brass:        #B8882E;  /* rooms gold — rules, prices, eyebrows */
  --pb-gold:         #B8965A;  /* packages gold — bullets, hairlines */
  --pb-gold-light:   #D4B07A;  /* light brass — hover borders */

  /* ── Burgundy / crimson (calls-to-action) ────────────────── */
  --pb-crimson:      #C0392B;  /* primary Book button */
  --pb-crimson-dark: #96281B;  /* Book button hover */
  --pb-burgundy:     #5C2430;  /* "All-Inclusive Wellness" group */

  /* ── Slate (cool accent · group 3) ───────────────────────── */
  --pb-slate:        #2A3D5C;  /* "Graceful Aging & Spa" group */

  /* ── Ink & text ──────────────────────────────────────────── */
  --pb-ink:          #2A2016;  /* darkest warm text */
  --pb-text:         #2A2420;  /* body copy */
  --pb-muted:        #6B6259;  /* secondary copy */
  --pb-muted-warm:   #6B5B47;  /* captions on ivory */
  --pb-on-dark:      #FFFEF9;  /* text on forest panels */
  --pb-on-dark-soft: rgba(255, 254, 249, 0.72); /* body on forest */

  /* ── Hairlines & borders ─────────────────────────────────── */
  --pb-border-gold:        rgba(184, 150, 90, 0.18);
  --pb-border-gold-strong: rgba(184, 136, 46, 0.35);
  --pb-border-hairline:    rgba(184, 136, 46, 0.15);
  --pb-border-crimson:     rgba(192, 57, 43, 0.18);

  /* ── Rate-row tints ──────────────────────────────────────── */
  --pb-rate-nonpeak: #FCF8EF;  /* non-peak row */
  --pb-rate-peak:    #F1F7FB;  /* peak-period row (cool tint) */

  /* ── Collection accents (package groups) ─────────────────── */
  --pb-group-1:       #1E4A40;  /* Seniors, Golf & Solo */
  --pb-group-1-light: #E8F2F0;
  --pb-group-2:       #5C2430;  /* All-Inclusive Wellness */
  --pb-group-2-light: #F5EAEC;
  --pb-group-3:       #2A3D5C;  /* Graceful Aging & Spa */
  --pb-group-3-light: #EAECF4;
  --pb-group-1-tint:  #F4FAF9;  /* group 1 section ground */
  --pb-group-2-tint:  #FDF5F6;  /* group 2 section ground */
  --pb-group-3-tint:  #F4F6FB;  /* group 3 section ground */
  --pb-group-2-mid:   #A05060;  /* group 2 rule/dot mid-tone */
  --pb-group-3-mid:   #5A708A;  /* group 3 rule/dot mid-tone */

  /* ============================================================
     EXISTING SITE CHROME (header / footer) — preserve as-is
     A cooler, brighter legacy palette kept for the persistent
     navigation so redesigned pages drop in without reskinning
     the chrome.
     ============================================================ */
  --pb-brand-green:   #42971F;  /* green brush-script tagline */
  --pb-nav-bg:        #1E2D3D;  /* main nav bar (slate) */
  --pb-nav-selected:  #679966;  /* selected nav item */
  --pb-nav-hover:     #8ACD89;  /* nav hover */
  --pb-gold-solid:    #F2BB2C;  /* header gold top-border / mega rule */
  --pb-cta-red:       #C82020;  /* header "I'm Ready to Book!" */
  --pb-footer-menu:   #1D2C26;  /* footer nav strip */
  --pb-subnav:        #6E9C6B;  /* footer / mobile sub-nav */
  --pb-subnav-hover:  #0B7B6C;  /* sub-nav hover */
  --pb-copyright:     #004D4D;  /* copyright bar */
  --pb-legacy-teal:   #008080;  /* legacy teal (jQuery Mobile) */

  /* ── Semantic aliases ────────────────────────────────────── */
  --pb-surface-page:       var(--pb-ivory);
  --pb-surface-alt:        var(--pb-cream);
  --pb-surface-card:       var(--pb-cream-card);
  --pb-surface-dark:       var(--pb-forest);
  --pb-text-heading:       var(--pb-deep);
  --pb-text-body:          var(--pb-text);
  --pb-text-secondary:     var(--pb-muted);
  --pb-accent:             var(--pb-brass);
  --pb-accent-rule:        var(--pb-gold);
  --pb-cta:                var(--pb-crimson);
  --pb-cta-hover:          var(--pb-crimson-dark);
  --pb-link:               var(--pb-teal);
}
/* ============================================================
   Plantation Bay — Typography System
   ONE sans-serif family across every role. Hierarchy comes from
   weight, size, letter-spacing and colour — never from a second
   typeface. Stack: Segoe UI · Roboto · Helvetica · Arial.
   ============================================================ */

:root {
  /* ── Family (single sans voice — all roles map to it) ────── */
  --pb-font-sans:    'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --pb-font-display: var(--pb-font-sans);
  --pb-font-body:    var(--pb-font-sans);
  --pb-font-script:  var(--pb-font-sans);
  --pb-font-chrome:  var(--pb-font-sans);

  /* ── Fluid type scale (role-based) ───────────────────────── */
  --pb-text-hero:    clamp(2rem, 5vw, 3.8rem);        /* page hero title */
  --pb-text-h1:      clamp(1.6rem, 5vw, 2.5rem);      /* section main title */
  --pb-text-h2:      clamp(1.35rem, 3.5vw, 2.2rem);   /* room / group name */
  --pb-text-h3:      clamp(1.3rem, 3vw, 1.8rem);      /* package title */
  --pb-text-lead:    clamp(1.15rem, 2vw, 1.4rem);     /* italic subtitle */
  --pb-text-body:    clamp(0.9375rem, 1.5vw, 1.0625rem);
  --pb-text-price:   1.6rem;                          /* rate figure */
  --pb-text-eyebrow: 0.68rem;                         /* gold micro-labels */
  --pb-text-nav:     14px;                            /* main-nav links */
  --pb-text-fine:    0.8rem;                          /* fine print */

  /* ── Weights ─────────────────────────────────────────────── */
  --pb-weight-light:    300;
  --pb-weight-regular:  400;
  --pb-weight-medium:   500;
  --pb-weight-semibold: 600;
  --pb-weight-bold:     700;

  /* ── Letter-spacing ──────────────────────────────────────── */
  --pb-ls-display: 0.14em;   /* airy uppercase hero */
  --pb-ls-heading: 0.09em;   /* group / section titles */
  --pb-ls-eyebrow: 0.22em;   /* gold micro-labels */
  --pb-ls-nav:     0.05em;
  --pb-ls-body:    0.01em;

  /* ── Line-height ─────────────────────────────────────────── */
  --pb-lh-tight:   1.2;   /* @kind other */
  --pb-lh-snug:    1.4;   /* @kind other */
  --pb-lh-normal:  1.7;   /* @kind other */
  --pb-lh-relaxed: 1.9;   /* @kind other */

  /* ── Measure (max line length) ───────────────────────────── */
  --pb-measure:      68ch;
  --pb-measure-wide: 70ch;
}
/* ============================================================
   Plantation Bay — Spacing System
   8px base unit (from the site's global.css) extended with the
   larger section rhythms used by the redesigned landing pages.
   ============================================================ */

:root {
  /* ── Base scale (8px unit) ───────────────────────────────── */
  --pb-space-xs:   4px;
  --pb-space-sm:   8px;
  --pb-space-md:   12px;
  --pb-space-base: 16px;
  --pb-space-lg:   20px;
  --pb-space-xl:   24px;
  --pb-space-2xl:  32px;
  --pb-space-3xl:  40px;
  --pb-space-4xl:  48px;
  --pb-space-5xl:  64px;   /* card-to-card gap */
  --pb-space-6xl:  80px;   /* package group gap */

  /* ── Layout rails ────────────────────────────────────────── */
  --pb-container:       1200px;  /* header / footer chrome width */
  --pb-container-rooms: 1320px;  /* rooms content rail */
  --pb-container-pkg:   100%;    /* packages content rail (full width since 2026-07-23) */
  --pb-container-faq:   960px;   /* FAQ rail (rooms page keeps the old pkg width) */
  --pb-measure-col:     44ch;    /* single readable column */

  /* ── Gutters ─────────────────────────────────────────────── */
  --pb-gutter-mobile:  16px;
  --pb-gutter-desktop: 24px;
  --pb-pad-card:       36px 40px;  /* package card body padding */
  --pb-pad-panel:      2.5rem;     /* room detail panel padding */

  /* ── Fixed chrome offsets ────────────────────────────────── */
  --pb-header-h:        108px;  /* brandbar height (desktop) */
  --pb-header-total:    148px;  /* full fixed chrome height: brandbar + nav bar */
  --pb-scroll-offset:   115px;  /* anchor scroll clearance (desktop) */
  --pb-scroll-offset-m: 170px;  /* anchor scroll clearance (mobile) */

  /* ── Hit target ──────────────────────────────────────────── */
  --pb-tap-min: 44px;

  /* ── Decorative placeholder ─────────────────────────────── */
  --pb-placeholder-h: 180px;   /* imageless card media block */
  --pb-stripe: 10px;           /* placeholder stripe width */
}
/* ============================================================
   Plantation Bay — Effects System
   Radii, shadows, borders, motion. The redesign favours small
   radii (2–4px), soft warm-grey card shadows, thin brass
   hairlines, and gentle 0.25–0.7s eases. No heavy glows.
   ============================================================ */

:root {
  /* ── Corner radii (restrained) ───────────────────────────── */
  --pb-radius-sm:   2px;   /* buttons, tags */
  --pb-radius:      4px;   /* cards */
  --pb-radius-lg:   10px;  /* language dropdown (chrome) */
  --pb-radius-pill: 999px;

  /* ── Shadows ─────────────────────────────────────────────── */
  --pb-shadow-card:   0 2px 24px rgba(30, 30, 20, 0.07), 0 1px 4px rgba(30, 30, 20, 0.04);
  --pb-shadow-hover:  0 8px 40px rgba(30, 30, 20, 0.12), 0 2px 8px rgba(30, 30, 20, 0.06);
  --pb-shadow-image:  0 4px 16px rgba(28, 54, 40, 0.12);   /* floor-plan thumb */
  --pb-shadow-cta:    0 4px 24px rgba(192, 57, 43, 0.30);
  --pb-shadow-cta-hv: 0 8px 32px rgba(150, 40, 27, 0.45);
  --pb-shadow-chrome: 0 2px 18px rgba(0, 0, 0, 0.35);      /* fixed header */

  /* ── Border widths ───────────────────────────────────────── */
  --pb-hairline: 1px;
  --pb-rule:     2px;   /* accent underlines, gold top-rule */
  --pb-focus-offset: 2px;   /* focus-ring offset from the element edge */
  --pb-accent-bar: 3px;   /* package-card top accent bar */

  /* ── Decorative rules ────────────────────────────────────── */
  --pb-rule-len-sm:  36px;   /* under a heading */
  --pb-rule-len-md:  52px;   /* under hero title */
  --pb-rule-len-lg:  120px;  /* between package groups */

  /* ── Motion ──────────────────────────────────────────────── */
  --pb-ease:         cubic-bezier(0.16, 1, 0.3, 1);  /* @kind other */
  --pb-dur-fast:     0.2s;   /* @kind other */
  --pb-dur:          0.25s;  /* @kind other */
  --pb-dur-slow:     0.35s;  /* @kind other */
  --pb-dur-reveal:   0.7s;   /* @kind other */ /* scroll-reveal fade-up */
  --pb-reveal-shift: 28px;   /* scroll-reveal translate distance */
}

/* ===== GLOBAL BASE — one sans voice across the whole site ===== */
body, button, input, select, textarea,
.ui-body, .ui-content, [data-role="page"] {
  font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ===== ROOMS + PACKAGES (theme layer) ===== */
/* ============================================================================
   PLANTATION BAY — DESIGN SYSTEM THEME LAYER  (plantation-ds.css)
   ----------------------------------------------------------------------------
   A TOGGLE-ONLY override sheet. Load it LAST (after every existing stylesheet
   AND after the page's inline <style> block) and only when the DS theme flag
   is active — see README.md for the PHP snippet.

   It does NOT restyle the whole site. It corrects the specific places where
   the live Rooms / Packages pages diverge from the new design system:

     ROOMS  (#allRoomsContainer)
       • room names + rate prices are currently `orange`  → deep plantation green
       • room taglines + booking prompt use AaMgScript    → single sans family
     PACKAGES (.roomswithpackage / .pkgItem)
       • subtitle / intro / index-count are italic        → upright sans
       • hero + group titles weight/tracking              → DS scale

   One sans voice everywhere: Segoe UI · Roboto · Helvetica · Arial.
   Toggle the flag off and the page reverts to exactly its current look.
   ========================================================================== */

:root {
  --pbds-sans:    'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --pbds-deep:    #1E3C38;   /* headings / room names / prices */
  --pbds-forest:  #1A3628;   /* dark media panel (unchanged)   */
  --pbds-brass:   #B8882E;   /* rules, room number, eyebrows   */
  --pbds-cream:   #FFFEF9;   /* text on the forest panel       */
  --pbds-crimson: #C0392B;   /* booking prompt / CTA           */
}

/* ============================================================================
   CONTENT RAIL  —  site-wide standard (pbrs-page-layout, folded into the DS)
   ----------------------------------------------------------------------------
   Whole-page content caps at --pb-container (1200px) and centers on screen.
   Legacy pages get this from global.css via .ui-content; DS-treated pages
   free .ui-content for the full-bleed ivory canvas (max-width: none) and the
   article becomes the rail instead. Class-level specificity on purpose: any
   page-scoped rule (e.g. a wider rooms rail) overrides it.
   ========================================================================== */
.homeArticle {
  max-width: var(--pb-container, 1200px);
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================================
   ROOMS  —  ui_kits parity for english/rooms/all/
   ========================================================================== */

/* Room name header: orange → deep green, single sans, DS tracking ---------- */
#allRoomsContainer .roomSection .roomTypeName,
#allRoomsContainer [class*="roomType-"] .roomTypeName {
  font-family: var(--pbds-sans) !important;
  color: var(--pbds-deep) !important;
  letter-spacing: 0.09em !important;
  font-weight: 700 !important;
}

/* Room number badge + accent underline → brass ---------------------------- */
#allRoomsContainer .lux-room-number {
  font-family: var(--pbds-sans) !important;
  color: var(--pbds-brass) !important;
  font-weight: 700 !important;
}
#allRoomsContainer .roomSection .roomTypeName::after {
  background: var(--pbds-brass) !important;
  height: 2px !important;
  width: 40px !important;
}

/* Page title: bold, brass 2px underline ----------------------------------- */
#allRoomsContainer h1.leoxTitle {
  font-family: var(--pbds-sans) !important;
  font-weight: 700 !important;
  color: var(--pbds-deep) !important;
}
#allRoomsContainer h1.leoxTitle::after {
  background: var(--pbds-brass) !important;
  height: 2px !important;
}

/* Tagline: brush script → upright medium sans, cream on the green panel ---- */
#allRoomsContainer .roomDesc .leoxTitle1 {
  font-family: var(--pbds-sans) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  color: var(--pbds-cream) !important;
  border-left: 3px solid var(--pbds-brass) !important;
  letter-spacing: 0.005em !important;
}

/* Body copy on the panel — ensure single sans (belt & suspenders) ---------- */
#allRoomsContainer .roomDesc .iJustify {
  font-family: var(--pbds-sans) !important;
}

/* Hero frame + crossfade layer (injected by dist/rooms-gallery.js) -------- */
#allRoomsContainer .roomDesc .lux-hero-frame {
  position: relative;
  overflow: hidden; /* contains the legacy .roomDesc:hover img zoom */
  line-height: 0;
}
#allRoomsContainer .roomDesc .lux-hero-fade {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  pointer-events: none;
}

/* Resume-play button (injected by dist/rooms-gallery.js): appears at the
   hero's bottom-right once the visitor manually picks a photo (which stops
   the auto-advance); clicking it restarts the slideshow. ------------------ */
#allRoomsContainer .roomDesc .lux-hero-play {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  width: 40px;
  height: 40px;
  padding: 0 0 0 3px; /* optically center the triangle */
  border: 0;
  border-radius: 50%;
  background: rgba(255, 254, 249, 0.92); /* cream chip so the crimson reads */
  color: var(--pbds-crimson, #C0392B);   /* site action red, per CTA language */
  font-size: 14px;
  line-height: 40px;
  text-align: center;
  cursor: pointer;
  display: none;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}
#allRoomsContainer .roomDesc .lux-hero-play--on { display: block; }
#allRoomsContainer .roomDesc .lux-hero-play:hover,
#allRoomsContainer .roomDesc .lux-hero-play:focus-visible {
  background: var(--pbds-crimson, #C0392B);
  color: #fffef9;
  transform: scale(1.06);
}

/* Hero slide progress (injected by dist/rooms-gallery.js) ----------------- */
#allRoomsContainer .roomDesc .lux-hero-progress {
  position: relative; /* paints above the legacy hover-zoomed hero */
  z-index: 1;
  height: 3px;
  background: rgba(255, 254, 249, 0.18);
  overflow: hidden;
}
#allRoomsContainer .roomDesc .lux-hero-progress-fill {
  height: 100%;
  width: 0%;
  background: var(--pbds-brass, #d4a843);
}

/* Thumbnail strip (injected by dist/rooms-gallery.js) --------------------- */
#allRoomsContainer .roomDesc .lux-thumb-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(84px, 1fr));
  gap: 6px;
  padding: 6px;
}
#allRoomsContainer .roomDesc .lux-thumb {
  height: 68px;
  background-size: cover;
  background-position: center;
  border: 2px solid transparent;
  transition: border-color 0.2s ease, opacity 0.2s ease;
}
/* Clickable thumbnails with images */
#allRoomsContainer .roomDesc .lux-thumb:not(.lux-thumb--placeholder) {
  cursor: pointer;
}
#allRoomsContainer .roomDesc .lux-thumb:not(.lux-thumb--placeholder):hover {
  border-color: rgba(212, 168, 67, 0.6);
}
/* Active/selected thumbnail — golden border */
#allRoomsContainer .roomDesc .lux-thumb.lux-thumb--active {
  border-color: var(--pbds-brass, #d4a843);
}
#allRoomsContainer .roomDesc .lux-thumb--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--pbds-cream);
  opacity: 0.72;
  font-family: var(--pbds-sans);
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 4px;
  background-color: rgba(255, 254, 249, 0.04);
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(255, 254, 249, 0.10) 0 10px,
    rgba(255, 254, 249, 0.04) 10px 20px
  );
  cursor: default;
}
/* Room Layout thumbnail — contain-fit with cream background so floor plan is legible */
#allRoomsContainer .roomDesc .lux-thumb--layout {
  background-size: contain;
  background-repeat: no-repeat;
  background-color: var(--pbds-cream, #fffef9);
}
/* Hide the original floor-plan image — it now lives inside the thumb strip.
   Only targets the specific element tagged by rooms-gallery.js, NOT the hero
   when its src is swapped to show the layout on click. */
#allRoomsContainer .roomDesc img.lux-layout-hidden,
#allRoomsContainer .roomDesc img.lux-gallery-hidden {
  display: none !important;
}
@media (max-width: 899px) {
  /* Single swipable row on phones — the wrapped grid would stack 2-3 rows
     per room and push the room facts far below the fold. Mirrors the
     mobile room-nav treatment. */
  #allRoomsContainer .roomDesc .lux-thumb-strip {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  #allRoomsContainer .roomDesc .lux-thumb-strip::-webkit-scrollbar { display: none; }
  #allRoomsContainer .roomDesc .lux-thumb {
    flex: 0 0 auto;
    width: 96px;
    height: 60px;
  }
}

/* Rate figure: orange → deep green --------------------------------------- */
#allRoomsContainer .rates .ratePrice {
  font-family: var(--pbds-sans) !important;
  color: var(--pbds-deep) !important;
}

/* "Starting From" + rate labels keep single sans -------------------------- */
#allRoomsContainer .rates::before,
#allRoomsContainer .rates .rateLabel,
#allRoomsContainer .roomBed li {
  font-family: var(--pbds-sans) !important;
}

/* Booking prompt titles (top + bottom widgets): script → sans caps -------- */
.bottom-booking-title,
#allRoomsContainer .bottom-booking-title {
  font-family: var(--pbds-sans) !important;
  font-style: normal !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--pbds-crimson) !important;
  font-size: clamp(1.05rem, 1.6vw, 1.25rem) !important;
}

/* ============================================================================
   PACKAGES  —  ui_kits parity for english/rooms/package/
   Sheet is already sans; here we drop the remaining italics and match the
   DS heading weights.
   ========================================================================== */

/* Kill every leftover display italic ------------------------------------- */
.pkgSubtitle,
.packageIntro,
.no-package-text,
.pkg-index-count,
.content-wrapper .pkgBody p.pkgSubtitle {
  font-style: normal !important;
  font-family: var(--pbds-sans) !important;
}

/* Subtitle: upright medium weight (was italic 700) ----------------------- */
.pkgSubtitle {
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
}

/* Hero + group titles → DS weight / tracking ----------------------------- */
.packageMainTitle {
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
}
.pkg-group-title {
  letter-spacing: 0.09em !important;
}

/* Card titles + index labels stay on the single sans stack --------------- */
h2.pkgTitle,
.pkg-index-label,
.packageMainTitle,
.pkg-group-title {
  font-family: var(--pbds-sans) !important;
}

/* ============================================================
   TRUST LAYER — All Rooms page (branch DS-Rooms)
   Hero, sticky room nav, photo provenance, FAQ, privacy strip.
   Tokens only — no raw hex, no raw px (px allowed only inside
   token vars). Native <details> drives all disclosure UI.
   ============================================================ */

/* ── Hero ── */
#allRoomsContainer .lux-rooms-hero {
  text-align: center;
  padding: var(--pb-space-2xl) var(--pb-gutter-mobile) 0;
}
#allRoomsContainer .lux-rooms-title {
  font-family: var(--pb-font-display);
  /* Matches the packages hero treatment (light, tracked) so both
     landing pages carry one page-title voice. */
  font-size: var(--pb-text-h2);
  font-weight: var(--pb-weight-light);
  letter-spacing: var(--pb-ls-heading);
  text-transform: uppercase;
  color: var(--pb-deep);
  line-height: 1.12;
  margin: 0 0 var(--pb-space-md);
}
#allRoomsContainer .lux-rooms-rule {
  width: var(--pb-rule-len-md);
  height: var(--pb-rule);
  background: var(--pb-brass);
  margin: 0 auto var(--pb-space-lg);
}
#allRoomsContainer .lux-rooms-promise {
  font-family: var(--pb-font-script);
  font-size: var(--pb-text-lead);
  color: var(--pb-muted);
  margin: 0 0 var(--pb-space-xl);
}

/* jQM's .ui-content has overflow-x:hidden, which creates a clip container
   that defeats position:sticky. Release it on the rooms page only — the
   body still clips horizontal overflow, so nothing new can overflow. */
#all-rooms .ui-content {
  overflow: visible;
}

/* ── Sticky room jump-nav ── */
#allRoomsContainer .lux-room-nav {
  position: -webkit-sticky;
  position: sticky;
  top: var(--pb-header-total);
  z-index: 40;
  background: var(--pb-ivory);
  padding-top: var(--pb-space-sm);
  padding-bottom: var(--pb-space-sm);
  border-bottom: var(--pb-hairline) solid var(--pb-border-gold);
}

/* (The phone-only scrollable pill row retired 2026-07-22: phones now
   use the same capsule + category-list dropdown as desktop. The nav
   must NOT be a scroll container — that would clip the dropdown.) */

/* ── Photo provenance (Content-Credentials-style) ── */
#allRoomsContainer .lux-prov {
  position: relative;
  margin-top: var(--pb-space-sm);
  font-family: var(--pb-font-body);
}
#allRoomsContainer .lux-prov summary.lux-prov-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--pb-space-sm);
  cursor: pointer;
  list-style: none;
  font-size: var(--pb-text-eyebrow);
  font-weight: var(--pb-weight-bold);
  letter-spacing: var(--pb-ls-eyebrow);
  text-transform: uppercase;
  color: var(--pb-deep);
  border: var(--pb-hairline) solid var(--pb-border-gold-strong);
  border-radius: var(--pb-radius-sm);
  padding: var(--pb-space-xs) var(--pb-space-md);
  background: var(--pb-cream-card);
  min-height: var(--pb-tap-min);
}
#allRoomsContainer .lux-prov summary.lux-prov-badge::-webkit-details-marker { display: none; }
#allRoomsContainer .lux-prov summary.lux-prov-badge:hover {
  border-color: var(--pb-gold-light);
  color: var(--pb-deep);
}
#allRoomsContainer .lux-prov summary.lux-prov-badge:focus-visible {
  outline: var(--pb-rule) solid var(--pb-deep);
  outline-offset: var(--pb-focus-offset);
}
#allRoomsContainer .lux-prov svg { display: block; }
#allRoomsContainer .lux-prov-panel {
  margin-top: var(--pb-space-sm);
  padding: var(--pb-space-base) var(--pb-space-lg);
  background: var(--pb-cream-card);
  border: var(--pb-hairline) solid var(--pb-border-gold);
  border-radius: var(--pb-radius);
  box-shadow: var(--pb-shadow-card);
  max-width: var(--pb-measure-col);
}
#allRoomsContainer .lux-prov-line {
  margin: 0 0 var(--pb-space-xs);
  font-size: var(--pb-text-fine);
  color: var(--pb-text);
}
#allRoomsContainer .lux-prov-line > span {
  display: inline-block;
  min-width: 8em;
  font-size: var(--pb-text-eyebrow);
  font-weight: var(--pb-weight-bold);
  letter-spacing: var(--pb-ls-eyebrow);
  text-transform: uppercase;
  color: var(--pb-sage);
}

/* ── FAQ accordion ── */
#allRoomsContainer .lux-faq {
  max-width: var(--pb-container-faq, 960px);
  margin: var(--pb-space-5xl) auto 0;
  padding: 0 var(--pb-gutter-desktop);
}
#allRoomsContainer .lux-faq-title {
  font-family: var(--pb-font-display);
  font-size: var(--pb-text-h2);
  font-weight: var(--pb-weight-semibold);
  letter-spacing: var(--pb-ls-heading);
  text-transform: uppercase;
  text-align: center;
  color: var(--pb-deep);
  margin: 0 0 var(--pb-space-xl);
}
#allRoomsContainer .lux-faq-item {
  border-top: var(--pb-hairline) solid var(--pb-border-gold-strong);
}
#allRoomsContainer .lux-faq-item:last-of-type {
  border-bottom: var(--pb-hairline) solid var(--pb-border-gold-strong);
}
#allRoomsContainer .lux-faq-item summary.lux-faq-q {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--pb-space-base);
  padding: var(--pb-space-lg) var(--pb-space-sm);
  font-family: var(--pb-font-body);
  font-size: var(--pb-text-lead);
  font-weight: var(--pb-weight-medium);
  color: var(--pb-deep);
  min-height: var(--pb-tap-min);
}
#allRoomsContainer .lux-faq-item summary.lux-faq-q::-webkit-details-marker { display: none; }
#allRoomsContainer .lux-faq-item summary.lux-faq-q::after {
  content: "\2192"; /* → , rotates when open */
  color: var(--pb-brass);
  transition: transform var(--pb-dur, 0.25s) ease;
}
#allRoomsContainer .lux-faq-item[open] summary.lux-faq-q::after {
  transform: rotate(90deg);
}
#allRoomsContainer .lux-faq-item summary.lux-faq-q:focus-visible {
  outline: var(--pb-rule) solid var(--pb-deep);
  outline-offset: var(--pb-focus-offset);
}
#allRoomsContainer .lux-faq-a {
  padding: 0 var(--pb-space-sm) var(--pb-space-lg);
  color: var(--pb-text);
}

/* ── Privacy disclosure strip ── */
.lux-privacy {
  border-top: var(--pb-hairline) solid var(--pb-border-gold);
  background: var(--pb-ivory-dark);
  padding: var(--pb-space-lg) var(--pb-gutter-desktop);
  text-align: center;
}
.lux-privacy p {
  margin: 0 auto;
  max-width: var(--pb-measure-col);
  font-family: var(--pb-font-body);
  font-size: var(--pb-text-fine);
  letter-spacing: var(--pb-ls-body);
  color: var(--pb-muted);
}
