/*
 * Design "Noir Luxe": a private members' club at night.
 *
 * One dark theme for the whole page (no light sections), gold as the only accent,
 * Bodoni Moda for display and Jost for text, square corners, and one signature: a thin
 * gold frame inset in every full-bleed photo hero, with section labels set as small
 * gold italics instead of spaced capitals.
 *
 * Every rule is scoped to html[data-design="noir-luxe"]. Colour, type and surface rules
 * apply at every width; layout changes sit inside @media (min-width:721px) so the phone
 * rules (mobile.css) keep their behaviour. See src/designs/README.md.
 *
 * Contrast (WCAG AA, checked): text #ECE6DA on #100F0E 15.6:1; body #BDB6AA 9.6:1;
 * muted #9D968A 6.6:1; gold #C9A45C 8.4:1 on base, 7.9:1 on panels; base text on gold
 * buttons 8.4:1.
 */

/* ---------- tokens ---------- */
html[data-design="noir-luxe"]{
  --nl-base:#100F0E;
  --nl-raise:#191816;
  --nl-deep:#0A0908;
  --nl-gold:#C9A45C;
  --nl-gold-deep:#A9863F;
  --nl-hair:rgba(201,164,92,.28);

  --paper:var(--nl-base);
  --paper-2:#151412;
  --white:var(--nl-raise);
  --ink:#ECE6DA;
  --ink-soft:#D8D1C4;
  --text:#BDB6AA;
  --muted:#9D968A;
  --line:rgba(236,230,218,.12);
  --sand:var(--nl-gold);
  --sand-deep:var(--nl-gold-deep);
  --sand-text:var(--nl-gold);
  --sand-tint:#1F1D1A;

  --f-display:"Bodoni Moda", "Didot", Georgia, serif;
  --f-body:"Jost", system-ui, -apple-system, "Segoe UI", sans-serif;

  --radius:0px;
  --radius-lg:0px;
  --radius-btn:0px;
  --shadow:none;
  --shadow-soft:none;
  color-scheme:dark;
}
/* Every hotel wears the house gold here (their own colours are tuned for light pages and
   several fail as text on near-black). Beats the .theme-<hotel> block from BrandTokens. */
html[data-design="noir-luxe"] body,
html[data-design="noir-luxe"] body[class]{
  --accent:var(--nl-gold);
  --accent-strong:var(--nl-gold);
  --accent-text:var(--nl-gold);
  --on-accent:var(--nl-base);
  --accent-tint:rgba(201,164,92,.12);
  background:var(--nl-base);
  color:var(--text);
  font-weight:300;
}

/* ---------- type ---------- */
html[data-design="noir-luxe"] h1,
html[data-design="noir-luxe"] h2,
html[data-design="noir-luxe"] h3{font-family:var(--f-display);font-weight:400;letter-spacing:-.005em;color:var(--ink)}
html[data-design="noir-luxe"] h1{line-height:1.06}
html[data-design="noir-luxe"] strong,html[data-design="noir-luxe"] b{font-weight:500}
html[data-design="noir-luxe"] ::selection{background:var(--nl-gold);color:var(--nl-base)}
/* Signature, part two: labels as gold italics, not spaced capitals. */
html[data-design="noir-luxe"] .eyebrow{
  font-family:var(--f-display);font-style:italic;font-weight:400;text-transform:none;
  letter-spacing:.01em;font-size:1rem;color:var(--nl-gold)
}
html[data-design="noir-luxe"] .eyebrow::before{width:22px;background:var(--nl-gold)}
html[data-design="noir-luxe"] .hero__eyebrow,
html[data-design="noir-luxe"] .p-hero .eyebrow{font-family:var(--f-body);font-style:normal;text-transform:uppercase;letter-spacing:.32em;font-size:.75rem;font-weight:500}
html[data-design="noir-luxe"] a{text-decoration-color:var(--nl-hair)}
html[data-design="noir-luxe"] :focus-visible{outline:2px solid var(--nl-gold);outline-offset:3px}

/* ---------- shape: square everywhere ----------
   One corner rule for the page: chips, tags, badges, thumbnails and panels are all square.
   Only things that are round on purpose (icon discs, swipe arrows, dots, map pins, the
   calendar's day cells) keep their circles. */
/* "body *" on purpose: the bundled base styles can land after this file, so a tie in
   specificity would go to them (seen on the room gallery's rounded thumbnails). */
html[data-design="noir-luxe"] body *{border-radius:0}
html[data-design="noir-luxe"] body :is(.fact__ic,.perk__ic,.facility__ic,.aw-ring,.rail-arrow,.edge-arrow,.hero__dot,.thing-pin__dot,.photo-pin,.photo-pin__img,.leaflet-marker-icon,.cal__day,.stepper button){border-radius:50%}

/* ---------- buttons: square, spaced capitals ---------- */
html[data-design="noir-luxe"] .btn{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:500;border-radius:0}
html[data-design="noir-luxe"] .btn--primary,
html[data-design="noir-luxe"] .btn--accent{background:var(--nl-gold);border-color:var(--nl-gold);color:var(--nl-base)}
html[data-design="noir-luxe"] .btn--primary:hover,
html[data-design="noir-luxe"] .btn--accent:hover{background:#D9B771;border-color:#D9B771;color:var(--nl-base);filter:none}
html[data-design="noir-luxe"] .btn--outline,
html[data-design="noir-luxe"] .btn--accent-outline,
html[data-design="noir-luxe"] .btn--light{background:transparent;color:var(--ink);border-color:var(--nl-hair)}
html[data-design="noir-luxe"] .btn--outline:hover,
html[data-design="noir-luxe"] .btn--accent-outline:hover,
html[data-design="noir-luxe"] .btn--light:hover{border-color:var(--nl-gold);background:rgba(201,164,92,.08);color:var(--ink)}
/* .btn--dark is "ink background, white text" in the base: with light ink it would vanish. */
html[data-design="noir-luxe"] .btn--dark,
html[data-design="noir-luxe"] .cta .btn--dark{background:transparent;color:var(--ink);border-color:var(--nl-gold)}
html[data-design="noir-luxe"] .btn--dark:hover{background:var(--nl-gold);color:var(--nl-base)}

/* ---------- dark bands that used --ink as their background ---------- */
html[data-design="noir-luxe"] :is(.section--ink,.aw-band,.footstrip,.site-footer,.p-topbar,.p-facts,.p-fact,.g-cta,.p-pagehead,.hero,.p-hero){background-color:var(--nl-deep)}
html[data-design="noir-luxe"] :is(.offer__badge,.recog__badge,.bookmodal__badge,.offer-badge--dark,.thing-pin__dot){background:var(--nl-gold);color:var(--nl-base)}
html[data-design="noir-luxe"] :is(.chip[aria-pressed="true"],.faq-filter button[aria-pressed="true"],.cal__done){background:var(--nl-gold);color:var(--nl-base);border-color:var(--nl-gold)}
html[data-design="noir-luxe"] .cal__done:hover{background:#D9B771}
html[data-design="noir-luxe"] .skip{background:var(--nl-gold);color:var(--nl-base)}
html[data-design="noir-luxe"] .rail-dots button[aria-current="true"]::before{background:var(--nl-gold)}
html[data-design="noir-luxe"] .site-footer{border-top:1px solid var(--nl-hair)}
/* The closing call to action was a sand block: here it stays dark, framed in gold. */
html[data-design="noir-luxe"] .cta{background:var(--nl-deep);border-block:1px solid var(--nl-hair)}
html[data-design="noir-luxe"] .cta h2{color:var(--ink)}
html[data-design="noir-luxe"] .cta p{color:var(--text)}

/* ---------- panels that were hard-coded white ---------- */
html[data-design="noir-luxe"] :is(.pop,.cal,.cal__nav,.dx-facts,.dx-where,.ex-card,.hero__card,.mapcard,.map-expand,.map-lightbox__close,.photo-pin__label,
  .find-resort__menu,.bookmodal__close,.things-map-expand,.p-submenu,.facts,.perk__ic,.dine-slider__nav,.rail-arrow,.edge-arrow,.stepper button,.card__flag,.rcard__tag,
  .lang-menu__list,.mega,.nav-drawer,.booking__card,.offer,.router__card,.loc,.compare__card,.stat,.card,.rcard,.room,.facility,.offer-row,.dine,.award-badge,.faq details,.leadcap__box){
  background-color:var(--nl-raise);color:var(--text);border-color:var(--line)
}
html[data-design="noir-luxe"] :is(.datefield[aria-expanded="true"],.guests-trigger[aria-expanded="true"],.field select:focus,.field input:focus,.promo-pop__row input:focus,.age-row select:focus,.cform input,.cform textarea,.cform select,.leadcap__form input[type=email]){
  background-color:#211F1C;color:var(--ink)
}
html[data-design="noir-luxe"] :is(.field select,.field input,.datefield,.guests-trigger,.cform input,.cform textarea,.cform select){background-color:#211F1C;color:var(--ink);border-color:var(--line)}
html[data-design="noir-luxe"] :is(input,select,textarea)::placeholder{color:var(--muted)}
html[data-design="noir-luxe"] .card__flag{color:var(--ink)}
/* Gold labels carry dark text (white on gold is 2.3:1). */
html[data-design="noir-luxe"] body :is(.offer-badge,.rtile__tag,.dine__badge,.compare__badge,.offer-cta,.rc-badge,.dine-slider__badge){background:var(--nl-gold);color:var(--nl-base)}
/* Per-hotel cards set their colour on the card itself (style="--rc:..."); here every
   hotel wears the house gold, which reads 7.9:1 as text on the dark panels. */
html[data-design="noir-luxe"] body :is(.offer-row,.rcard){--rc:var(--nl-gold)!important}
html[data-design="noir-luxe"] .card__tag{background:var(--nl-gold);color:var(--nl-base)}
html[data-design="noir-luxe"] .rail-arrow,html[data-design="noir-luxe"] .edge-arrow{color:var(--ink);border:1px solid var(--nl-hair)}

/* ---------- headers: dark glass instead of white glass ---------- */
html[data-design="noir-luxe"] .site-header,
html[data-design="noir-luxe"] .p-mainnav,
html[data-design="noir-luxe"] .p-header{background:rgba(16,15,14,.92);border-bottom:1px solid var(--nl-hair);color:var(--ink)}
html[data-design="noir-luxe"] .site-header.is-transparent,
html[data-design="noir-luxe"] #siteHeader.is-transparent .p-mainnav{background:transparent;border-bottom-color:transparent}
html[data-design="noir-luxe"] :is(.nav-links a,.nav-links button,.p-nav-links a,.p-nav-links button,.nav-toggle,.p-burger){color:var(--ink)}
html[data-design="noir-luxe"] .brand,html[data-design="noir-luxe"] .p-mainnav__brand{color:var(--ink)}
html[data-design="noir-luxe"] .lang-menu__btn{background:transparent;color:var(--ink);border-color:var(--nl-hair)}
html[data-design="noir-luxe"] .logo-text{font-family:var(--f-display);letter-spacing:.02em}

/* ---------- the bottom "Check Availability" bar on phones ---------- */
html[data-design="noir-luxe"] .mbar{background:var(--nl-raise);border-top:1px solid var(--nl-hair);color:var(--ink)}

/* ---------- the comparison table and booking pop-up ---------- */
html[data-design="noir-luxe"] .compare__card--direct{border-color:var(--nl-gold)}
html[data-design="noir-luxe"] .bookmodal__body,html[data-design="noir-luxe"] #chBookModal [class*="__body"]{background:var(--nl-raise);color:var(--text)}

/* ---------- signature: the gold frame inside full-bleed photo heroes ---------- */
html[data-design="noir-luxe"] :is(.hero,.p-hero,.p-pagehead){position:relative}
/* The frame starts below the fixed header (group: one bar; hotel pages: two), so it never
   crosses the menu. Phones skip it: their hero is short and the header fills its top. */
html[data-design="noir-luxe"] :is(.hero,.p-hero,.p-pagehead)::after{
  content:"";position:absolute;inset:96px clamp(14px,1.6vw,22px) clamp(14px,1.6vw,22px);
  border:1px solid rgba(201,164,92,.55);pointer-events:none;z-index:1
}
html[data-design="noir-luxe"] body[data-resort] :is(.p-hero,.p-pagehead)::after{top:150px}
@media (max-width:720px){
  html[data-design="noir-luxe"] :is(.hero,.p-hero,.p-pagehead)::after{display:none}
}
/* Photos sit a little darker and warmer, so white type and the gold frame read. */
html[data-design="noir-luxe"] :is(.hero__slide img,.p-hero img,.p-pagehead__img){filter:saturate(.85) brightness(.78)}

/* ---------- computer and tablet layout (phones keep mobile.css) ---------- */
@media (min-width:721px){
  html[data-design="noir-luxe"] .section__head{margin-inline:auto;text-align:center}
  html[data-design="noir-luxe"] .section__head .eyebrow{justify-content:center}
  html[data-design="noir-luxe"] .section__head .eyebrow::before{display:none}
  html[data-design="noir-luxe"] .section__head h2{font-size:clamp(2.2rem,4.2vw,3.4rem)}
  html[data-design="noir-luxe"] .section__head h2::after{content:"";display:block;width:56px;height:1px;background:var(--nl-gold);margin:1.4rem auto 0}
  /* Two lines at most on a laptop: the size and the measure are set together. */
  html[data-design="noir-luxe"] :is(.hero,.p-hero) h1{font-size:clamp(2.4rem,3.7vw,3.4rem);font-weight:400;max-width:23ch}
  /* Cards lose lift and shadow; a hairline gold edge appears on hover instead. */
  html[data-design="noir-luxe"] :is(.card,.rcard,.room,.offer){transition:border-color .4s var(--ease)}
  html[data-design="noir-luxe"] :is(.card,.rcard,.room,.offer):hover{transform:none;border-color:var(--nl-hair)}
  html[data-design="noir-luxe"] .card__media{aspect-ratio:4/3}
  html[data-design="noir-luxe"] .card:hover .card__media img{transform:scale(1.03)}
  html[data-design="noir-luxe"] .section{padding-block:clamp(72px,8vw,120px)}
}

/* =====================================================================
   HOMEPAGE LAYOUT (src/designs/noir-luxe/GroupHome.astro)
   Phones first (base rules), then tablet (721+) and computer (1025+).
   ===================================================================== */

/* Hero: a full-screen photograph, a centred headline (centred from 721px). */
html[data-design="noir-luxe"] .nl-hero .hero__overlay{
  background:linear-gradient(180deg,rgba(10,9,8,.55) 0%,rgba(10,9,8,.15) 32%,rgba(10,9,8,.25) 62%,rgba(10,9,8,.9) 100%)
}
/* Computers and tablets: a soft dark pool behind the centred words, so bright
   photographs (white walls, snow, beach) never wash the headline out. */
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-hero .hero__overlay{
    background:
      radial-gradient(ellipse 62% 46% at 50% 50%,rgba(10,9,8,.62) 0%,rgba(10,9,8,.38) 55%,rgba(10,9,8,0) 100%),
      linear-gradient(180deg,rgba(10,9,8,.6) 0%,rgba(10,9,8,.22) 30%,rgba(10,9,8,.3) 62%,rgba(10,9,8,.92) 100%)
  }
  html[data-design="noir-luxe"] .nl-hero h1,html[data-design="noir-luxe"] .nl-hero__trust,html[data-design="noir-luxe"] .nl-hero__links a{text-shadow:0 2px 24px rgba(0,0,0,.45)}
}
/* Phones: the words sit lower over the photograph, so the shade deepens from the middle down. */
@media (max-width:720px){
  html[data-design="noir-luxe"] .nl-hero .hero__overlay{background:linear-gradient(180deg,rgba(10,9,8,.66) 0%,rgba(10,9,8,.72) 30%,rgba(10,9,8,.74) 60%,rgba(10,9,8,.92) 100%)}
  html[data-design="noir-luxe"] .nl-hero h1{text-shadow:0 2px 18px rgba(0,0,0,.5)}
}
html[data-design="noir-luxe"] .nl-rule{display:block;width:56px;height:1px;background:var(--nl-gold);margin:1.2rem 0 1rem}
html[data-design="noir-luxe"] .nl-hero__trust{display:flex;flex-wrap:wrap;gap:.35rem 1.4rem;margin:0;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:rgba(236,230,218,.9)}
html[data-design="noir-luxe"] .nl-hero__trust svg{display:none}
html[data-design="noir-luxe"] .nl-hero__links{display:none}
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-hero{min-height:min(100svh,980px);display:flex;align-items:center}
  html[data-design="noir-luxe"] .nl-hero .hero__inner{min-height:0;width:100%;align-items:center;text-align:center;justify-content:center;padding:150px var(--gutter) 190px}
  html[data-design="noir-luxe"] .nl-hero h1{margin-inline:auto;font-size:clamp(2.6rem,4.4vw,4.4rem);line-height:1.06;max-width:18ch}
  html[data-design="noir-luxe"] .nl-hero .hero__dots{margin-top:2.6rem}
  html[data-design="noir-luxe"] .nl-hero .hero__eyebrow{margin-inline:auto}
  html[data-design="noir-luxe"] .nl-rule{margin:1.8rem auto 1.4rem}
  html[data-design="noir-luxe"] .nl-hero__trust{justify-content:center}
  html[data-design="noir-luxe"] .nl-hero__links{display:flex;justify-content:center;gap:2.2rem;flex-wrap:wrap;margin-top:2.2rem}
  html[data-design="noir-luxe"] .nl-hero__links a{display:inline-flex;align-items:center;gap:.5rem;min-height:36px;font-family:var(--f-display);font-style:italic;font-size:1.1rem;color:var(--ink);border-bottom:1px solid var(--nl-hair);text-decoration:none}
  html[data-design="noir-luxe"] .nl-hero__links a:hover{border-bottom-color:var(--nl-gold);color:var(--nl-gold)}
  html[data-design="noir-luxe"] .nl-hero .hero__dots{justify-content:center}
}

/* Reservation bar: dark glass over the foot of the hero on computers. */
@media (min-width:1025px){
  html[data-design="noir-luxe"] .nl-booking{margin-top:-118px}
  html[data-design="noir-luxe"] .nl-booking .booking__card{background:rgba(16,15,14,.82);backdrop-filter:blur(12px);border:1px solid var(--nl-hair);padding:1.1rem 1.3rem .9rem}
  html[data-design="noir-luxe"] .nl-booking .booking__label{letter-spacing:.24em;font-weight:500}
}

/* Manifesto: one statement, then the story and the facts. */
html[data-design="noir-luxe"] .nl-manifesto{padding-block:clamp(72px,10vw,150px) clamp(40px,6vw,90px)}
html[data-design="noir-luxe"] .nl-manifesto__lead h2{font-style:italic;font-size:clamp(2.1rem,4.6vw,4rem);line-height:1.08;margin:.3rem 0 1.6rem;max-width:16ch}
html[data-design="noir-luxe"] .nl-manifesto__body p{font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.8;color:var(--text);max-width:52ch}
html[data-design="noir-luxe"] .nl-facts{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid var(--line)}
html[data-design="noir-luxe"] .nl-facts li{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:.95rem}
html[data-design="noir-luxe"] .nl-facts li::before{content:"";width:18px;height:1px;background:var(--nl-gold);flex:none}
@media (min-width:901px){
  html[data-design="noir-luxe"] .nl-manifesto__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(3rem,7vw,7rem);align-items:start}
  html[data-design="noir-luxe"] .nl-manifesto__body{padding-top:3.2rem}
}

/* The collection: tall portraits, the name set over the photograph. On phones
   .properties is the swipe row (mobile.css); the tile style carries over. */
html[data-design="noir-luxe"] .nl-tile{position:relative;background:var(--nl-deep);border:0;overflow:hidden;display:block}
html[data-design="noir-luxe"] .nl-tile__media{display:block;aspect-ratio:3/4;overflow:hidden}
html[data-design="noir-luxe"] .nl-tile__media img{width:100%;height:100%;object-fit:cover;filter:brightness(.72) saturate(.9);transition:transform .9s var(--ease),filter .6s var(--ease)}
html[data-design="noir-luxe"] .nl-tile__body{position:absolute;left:0;right:0;bottom:0;padding:clamp(1.1rem,2vw,1.6rem);padding-top:clamp(2.6rem,5vw,3.4rem);background:linear-gradient(180deg,rgba(10,9,8,0) 0%,rgba(10,9,8,.78) 22%,rgba(10,9,8,.9) 50%,rgba(10,9,8,.96) 100%)}
html[data-design="noir-luxe"] .nl-tile__place{margin:0 0 .4rem;font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--nl-gold);font-weight:500}
html[data-design="noir-luxe"] .nl-tile h3{margin:0;font-size:clamp(1.45rem,2vw,1.8rem);line-height:1.1}
html[data-design="noir-luxe"] .nl-tile h3 a{color:var(--ink);text-decoration:none}
html[data-design="noir-luxe"] .nl-tile h3 a::after{content:"";position:absolute;inset:0;z-index:0}
html[data-design="noir-luxe"] .nl-tile__desc{margin:.6rem 0 0;font-size:.88rem;line-height:1.55;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
html[data-design="noir-luxe"] .nl-tile__actions{position:relative;z-index:1;display:flex;gap:1.4rem;margin-top:1rem}
html[data-design="noir-luxe"] .nl-tile__actions a{display:inline-flex;align-items:center;min-height:36px;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--nl-hair)}
html[data-design="noir-luxe"] .nl-tile__actions a:hover{color:var(--nl-gold);border-bottom-color:var(--nl-gold)}
html[data-design="noir-luxe"] .nl-tile:hover .nl-tile__media img{transform:scale(1.04);filter:brightness(.82) saturate(1)}
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(.8rem,1.2vw,1.2rem);margin-top:2.6rem}
  html[data-design="noir-luxe"] .nl-tile__actions{flex-wrap:wrap;gap:.2rem 1.1rem}
  html[data-design="noir-luxe"] .nl-tile__actions a{white-space:nowrap;letter-spacing:.12em}
}
/* Tablets: a 6-column grid so any count sits balanced - 3 across, then
   the leftovers widen to fill the row (5 hotels = 3 + 2, 4 = 2 + 2). */
@media (min-width:721px) and (max-width:1180px){
  html[data-design="noir-luxe"] .nl-tiles{grid-template-columns:repeat(6,1fr)}
  html[data-design="noir-luxe"] .nl-tile{grid-column:span 2}
  html[data-design="noir-luxe"] .nl-tile:nth-child(3n+1):nth-last-child(2),
  html[data-design="noir-luxe"] .nl-tile:nth-child(3n+2):last-child{grid-column:span 3}
  html[data-design="noir-luxe"] .nl-tile:nth-child(3n+1):last-child{grid-column:1 / -1}
  html[data-design="noir-luxe"] .nl-tile__media{aspect-ratio:2/3}
  html[data-design="noir-luxe"] .nl-tile:is(:nth-child(3n+1):nth-last-child(2),:nth-child(3n+2):last-child,:nth-child(3n+1):last-child) .nl-tile__media{aspect-ratio:5/4}
  html[data-design="noir-luxe"] .nl-tile__desc{-webkit-line-clamp:2}
}
/* Computers: every hotel in one tall row (up to six). The short description
   rises in on hover or keyboard focus, so the photographs stay the subject. */
@media (min-width:1181px){
  html[data-design="noir-luxe"] .nl-tiles:has(> :nth-child(4)):not(:has(> :nth-child(7))){grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
  html[data-design="noir-luxe"] .nl-tile__media{aspect-ratio:9/16}
  html[data-design="noir-luxe"] .nl-tile__body{padding:3rem 1.2rem 1.1rem}
  html[data-design="noir-luxe"] .nl-tile h3{font-size:clamp(1.35rem,1.6vw,1.6rem)}
  html[data-design="noir-luxe"] .nl-tile__desc{max-height:0;margin-top:0;opacity:0;transition:max-height .5s var(--ease),opacity .4s var(--ease),margin .4s var(--ease)}
  html[data-design="noir-luxe"] .nl-tile:is(:hover,:focus-within) .nl-tile__desc{max-height:5em;margin-top:.6rem;opacity:1}
}

/* Concierge: guest types as a list, the matching hotel as one large picture. */
html[data-design="noir-luxe"] .nl-concierge{background:var(--nl-deep)}
html[data-design="noir-luxe"] .nl-concierge h2{font-size:clamp(1.9rem,3.6vw,3rem);margin:.3rem 0 1.4rem}
html[data-design="noir-luxe"] .nl-concierge .router__result{margin:1.6rem 0 0;padding:0;border:0}
/* Phones: the swipe row bleeds to the screen edge by this layout's own side margin
   (the base rule assumes Classic's card padding, which is wider). */
@media (max-width:720px){
  html[data-design="noir-luxe"] body #routerResult.nl-concierge__answer{margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scroll-padding-inline:var(--gutter)}
}
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-concierge__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
  html[data-design="noir-luxe"] .nl-concierge .router__result{margin:0}
  html[data-design="noir-luxe"] body .nl-concierge .chips{display:flex;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line)}
  html[data-design="noir-luxe"] body .nl-concierge .chip{justify-content:space-between;width:100%;min-height:64px;padding:.9rem 0;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;font-family:var(--f-display);font-weight:400;font-size:clamp(1.3rem,2vw,1.7rem);color:var(--muted);transform:none}
  html[data-design="noir-luxe"] body .nl-concierge .chip::after{content:"→";font-family:var(--f-body);font-size:1rem;color:var(--nl-gold);opacity:0;transition:opacity .3s var(--ease)}
  html[data-design="noir-luxe"] body .nl-concierge .chip:hover{color:var(--ink)}
  html[data-design="noir-luxe"] body .nl-concierge .chip[aria-pressed="true"]{background:none;color:var(--ink);border-color:var(--line)}
  html[data-design="noir-luxe"] body .nl-concierge .chip[aria-pressed="true"]::after{opacity:1}
  html[data-design="noir-luxe"] .nl-concierge .match.is-current{display:block;position:relative}
  html[data-design="noir-luxe"] .nl-concierge .match__thumb{width:100%;height:auto;aspect-ratio:4/3;border-radius:0}
  html[data-design="noir-luxe"] .nl-concierge .match__body{margin-top:1.4rem}
  html[data-design="noir-luxe"] .nl-concierge .match__body h3{font-size:clamp(1.6rem,2.4vw,2.2rem)}
  html[data-design="noir-luxe"] .nl-concierge .match__cta{flex-direction:row;align-items:center;gap:1.6rem;min-width:0;margin-top:1.4rem}
}

/* The carte: one row per offer, the discount as a gold numeral. */
/* !important: mobile.css shrinks every .offer__badge to .75rem on touch screens;
   here the badge is the headline numeral, not a small label. */
html[data-design="noir-luxe"] body .nl-carte__figure .offer__badge{position:static;display:inline-block;background:none;color:var(--nl-gold);padding:0;font-family:var(--f-display);font-size:clamp(1.9rem,3vw,2.6rem)!important;font-weight:400;letter-spacing:0;line-height:1;text-transform:none}
html[data-design="noir-luxe"] .nl-carte__row .beach{font-size:.75rem;letter-spacing:.22em}
html[data-design="noir-luxe"] .nl-carte__row h3{font-size:clamp(1.4rem,2vw,1.75rem);margin:.3rem 0 .4rem}
html[data-design="noir-luxe"] .nl-carte__row .offer__name{font-family:var(--f-display);font-style:italic;font-weight:400;font-size:1.05rem;color:var(--text)}
html[data-design="noir-luxe"] .nl-carte__figure{margin:.4rem 0 .2rem}
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-carte__list{display:block;margin-top:2.6rem;border-bottom:1px solid var(--line)}
  html[data-design="noir-luxe"] body .nl-carte__row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;grid-template-areas:"media figure book" "media text text";gap:.6rem 2rem;align-items:center;padding:1.8rem 0;background:none;border:0;border-top:1px solid var(--line);border-radius:0;transform:none}
  html[data-design="noir-luxe"] .nl-carte__row .offer__media{grid-area:media;margin:0;aspect-ratio:1/1}
  html[data-design="noir-luxe"] .nl-carte__figure{grid-area:figure;margin:0}
  html[data-design="noir-luxe"] .nl-carte__text{grid-area:text}
  html[data-design="noir-luxe"] .nl-carte__book{grid-area:book;justify-self:end}
  html[data-design="noir-luxe"] .nl-carte__row .offer__list{display:flex;flex-wrap:wrap;gap:.3rem 1.6rem;margin:.6rem 0 0}
  html[data-design="noir-luxe"] .nl-carte__row .offer__list li{margin:0}
  html[data-design="noir-luxe"] .nl-carte__row:hover .offer__media img{transform:scale(1.04)}
}
@media (min-width:1025px){
  html[data-design="noir-luxe"] body .nl-carte__row{grid-template-columns:170px 190px minmax(0,1fr) auto;grid-template-areas:"media figure text book";gap:2.6rem}
  html[data-design="noir-luxe"] .nl-carte__row .offer__media{aspect-ratio:4/5}
}

/* Map in night tones: the light map tiles inverted to dark. */
html[data-design="noir-luxe"] :is(#map,#mapStage) .leaflet-tile{filter:grayscale(1) invert(1) brightness(.78) contrast(1.05)}
html[data-design="noir-luxe"] :is(#map,#mapStage){background:var(--nl-deep)}

/* Guest scores as gold numerals in one ruled row. */
html[data-design="noir-luxe"] .nl-scores__row{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:2.4rem 0 0;padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
html[data-design="noir-luxe"] .nl-scores__row li{padding:1.8rem 1rem;text-align:center;border-left:1px solid var(--line)}
html[data-design="noir-luxe"] .nl-scores__row li:first-child{border-left:0}
html[data-design="noir-luxe"] .nl-scores__row b{display:block;font-family:var(--f-display);font-weight:400;font-size:clamp(2.6rem,4.4vw,3.8rem);line-height:1;color:var(--nl-gold)}
html[data-design="noir-luxe"] .nl-scores__row span{display:block;margin-top:.6rem;color:var(--ink);font-size:.95rem}
html[data-design="noir-luxe"] .nl-scores__row small{display:block;margin-top:.25rem;color:var(--muted);font-size:.8rem}
html[data-design="noir-luxe"] .nl-scores__award{margin:1.6rem auto 0;text-align:center;color:var(--text);font-size:.92rem}
html[data-design="noir-luxe"] .nl-scores__award strong{color:var(--ink);font-weight:500}

/* Questions: heading on the left, answers on the right (computers). */
html[data-design="noir-luxe"] .nl-faq{background:var(--nl-deep)}
html[data-design="noir-luxe"] body .nl-faq details{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0}
html[data-design="noir-luxe"] .nl-faq summary{padding:1.3rem 0;font-family:var(--f-display);font-weight:400;font-size:clamp(1.1rem,1.6vw,1.3rem)}
html[data-design="noir-luxe"] .nl-faq details > div{padding:0 0 1.3rem;color:var(--text)}
html[data-design="noir-luxe"] .nl-faq .faq__grid{gap:0;border-top:1px solid var(--line)}
@media (min-width:901px){
  html[data-design="noir-luxe"] .nl-faq__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(3rem,6vw,6rem);align-items:start}
  html[data-design="noir-luxe"] .nl-faq .section__head{text-align:left;margin:0;position:sticky;top:120px}
  html[data-design="noir-luxe"] .nl-faq .section__head .eyebrow{justify-content:flex-start}
  html[data-design="noir-luxe"] .nl-faq .section__head h2::after{margin-left:0}
  html[data-design="noir-luxe"] .nl-faq .faq__grid{max-width:none}
}

/* Closing: a photograph under one line and one button. */
html[data-design="noir-luxe"] .nl-close{position:relative;overflow:hidden;padding-block:clamp(110px,15vw,210px);border:0}
html[data-design="noir-luxe"] .nl-close__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.4) saturate(.8)}
html[data-design="noir-luxe"] .nl-close__inner{position:relative;z-index:1}
html[data-design="noir-luxe"] .nl-close h2{font-size:clamp(2.2rem,5vw,4.2rem);max-width:16ch}

/* =====================================================================
   HEADER: "Menu" at the left, the name centred, Book at the right, at every
   width from 721px; the menu opens as a full-screen dark page (design.json
   variant nav: "drawer"; drawer.js keeps it a drawer at every width).
   Phones keep their own bar (name left, Book and Menu right) and get the
   same full-screen menu.
   ===================================================================== */
html[data-design="noir-luxe"] :is(.p-burger,.nav-toggle){display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-width:44px;min-height:44px;background:none;border:0;color:var(--ink);cursor:pointer}
html[data-design="noir-luxe"] .p-burger__label{font-size:.75rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500}
html[data-design="noir-luxe"] :is(.p-burger,.nav-toggle):hover{color:var(--nl-gold)}
html[data-design="noir-luxe"] #siteHeader.is-transparent :is(.p-burger,.nav-toggle){color:#fff}
@media (max-width:720px){
  html[data-design="noir-luxe"] .p-burger__label{display:none}
}
@media (min-width:721px){
  /* Hotel pages: one bar. The group bar's contents (other hotels, the group site,
     Manage My Booking, language) live in the menu and the bar's right side. */
  html[data-design="noir-luxe"] body[data-resort] .p-topbar{display:none}
  html[data-design="noir-luxe"] body[data-resort] .p-mainnav__inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:1rem;height:88px}
  html[data-design="noir-luxe"] body[data-resort] .p-mainnav__brand{grid-column:2;grid-row:1;justify-self:center;text-align:center;white-space:nowrap}
  html[data-design="noir-luxe"] body[data-resort] .p-mainnav__logo-text{font-size:clamp(1.45rem,2vw,1.85rem);letter-spacing:.02em}
  html[data-design="noir-luxe"] body[data-resort] .p-mainnav__right{grid-column:3;grid-row:1;justify-self:end;gap:1rem}
  html[data-design="noir-luxe"] body[data-resort] .p-mainnav__lang{display:flex;align-items:center}
  html[data-design="noir-luxe"] body[data-resort] .p-burger{position:absolute;left:var(--gutter);top:50%;transform:translateY(-50%)}
  html[data-design="noir-luxe"] body[data-resort].no-hero-header #main{padding-top:88px}
  html[data-design="noir-luxe"] body[data-resort] :is(.p-hero,.p-pagehead)::after{top:104px}

  /* Group pages: the same arrangement. */
  html[data-design="noir-luxe"] .site-header--drawer .nav{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);height:88px}
  html[data-design="noir-luxe"] .site-header--drawer .brand{grid-column:2;grid-row:1;justify-self:center}
  html[data-design="noir-luxe"] .site-header--drawer .nav-inline{display:none}
  html[data-design="noir-luxe"] .site-header--drawer .nav-cta{grid-column:3;grid-row:1;justify-self:end}
  html[data-design="noir-luxe"] .site-header--drawer .nav-toggle{position:absolute;left:var(--gutter);top:50%;transform:translateY(-50%)}
  html[data-design="noir-luxe"] body[data-corp].no-hero-header #main{padding-top:88px}
}
/* On a dark page the header needs no glass: solid near-black once scrolled. */
html[data-design="noir-luxe"] body[data-resort] #siteHeader:not(.is-transparent) .p-mainnav,
html[data-design="noir-luxe"] .site-header--drawer:not(.is-transparent){background:rgba(10,9,8,.96);backdrop-filter:none;border-bottom:1px solid var(--nl-hair)}

/* ---------- the menu, full screen ---------- */
html[data-design="noir-luxe"] body #pMenu[data-drawer="always"],
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer{
  position:fixed;top:0;right:0;bottom:0;left:0;width:auto;height:100dvh;
  background:var(--nl-deep);color:var(--text);box-shadow:none;border:0;
  overflow-y:auto;overscroll-behavior:contain;transform:none;
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility 0s linear .35s;z-index:1200
}
html[data-design="noir-luxe"] body #pMenu[data-drawer="always"][data-open="true"],
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer[data-open="true"]{opacity:1;visibility:visible;transition:opacity .35s var(--ease),visibility 0s}
html[data-design="noir-luxe"] body:is(.drawer-open) .drawer-scrim{background:transparent}
/* The base hides the close button on wide screens (the menu is a row there); as a
   full page it must show at every width. */
html[data-design="noir-luxe"] body #pMenu[data-drawer] .drawer-close{display:inline-flex;align-items:center;justify-content:center}
html[data-design="noir-luxe"] :is(#pMenu,.nav-drawer) .drawer-close{position:absolute;top:1.4rem;right:var(--gutter);width:48px;height:48px;background:transparent;color:var(--ink);border:1px solid var(--nl-hair);border-radius:50%}
html[data-design="noir-luxe"] :is(#pMenu,.nav-drawer) .drawer-close:hover{border-color:var(--nl-gold);color:var(--nl-gold);background:transparent}

/* Hotel menu: numbered pages in the display face, sub-pages always open beneath. */
html[data-design="noir-luxe"] body #pMenu[data-drawer="always"]{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:0;padding:6rem var(--gutter) 3rem;counter-reset:nlnav}
html[data-design="noir-luxe"] #pMenu[data-drawer] li{border:0}
html[data-design="noir-luxe"] #pMenu[data-drawer] > li:not(.p-menu-extra,.p-menu-cta,.p-menu-contact){counter-increment:nlnav;border-bottom:1px solid var(--line)}
html[data-design="noir-luxe"] body #pMenu[data-drawer] > li:not(.p-menu-extra,.p-menu-cta,.p-menu-contact) > a{display:flex;align-items:baseline;gap:1.2rem;padding:1rem 0;font-family:var(--f-display);font-weight:400;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.1;letter-spacing:0;text-transform:none;color:var(--ink);white-space:normal}
html[data-design="noir-luxe"] body #pMenu[data-drawer] > li:not(.p-menu-extra,.p-menu-cta,.p-menu-contact) > a::before{content:counter(nlnav,decimal-leading-zero);display:inline-block;position:static;width:auto;height:auto;border:0;transform:none;opacity:1;font-family:var(--f-body);font-size:.75rem;letter-spacing:.1em;color:var(--nl-gold)}
html[data-design="noir-luxe"] body #pMenu[data-drawer] a::after{display:none}
html[data-design="noir-luxe"] body #pMenu[data-drawer] > li > a:is(:hover,[aria-current="page"]){color:var(--nl-gold)}
html[data-design="noir-luxe"] #pMenu[data-drawer] .p-sub-toggle{display:none}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-submenu{position:static;display:flex;flex-wrap:wrap;gap:0 1.6rem;max-height:none;overflow:visible;opacity:1;visibility:visible;transform:none;background:none;border:0;box-shadow:none;min-width:0;padding:0 0 .9rem 2.1rem;transition:none}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-submenu a{display:inline-flex;align-items:center;min-height:44px;padding:0;background:none;font-size:.95rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--text)}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-submenu a:hover{color:var(--nl-gold)}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .has-sub > a{padding-right:0}
/* The other hotels, the group site, Manage My Booking, Book and Call. */
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra{display:block}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra__head{padding:2rem 0 .6rem;font-family:var(--f-display);font-style:italic;font-size:1.05rem;font-weight:400;letter-spacing:.01em;text-transform:none;color:var(--nl-gold)}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra a{display:flex;align-items:center;gap:1rem;min-height:48px;padding:.55rem 0;font-size:.95rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink);border-bottom:1px solid var(--line)}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra a:hover{color:var(--nl-gold)}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra img{width:64px;height:44px;object-fit:cover;flex:none;filter:brightness(.85)}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra small{display:block;margin-top:.15rem;font-size:.8rem;color:var(--muted)}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-cta{display:block;padding:2rem 0 .6rem}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-cta a{display:flex;justify-content:center;align-items:center;min-height:52px}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-contact{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;padding:0}
html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-contact a{display:flex;justify-content:center;align-items:center;min-height:48px}
@media (min-width:1121px){
  /* The hotel's pages in two columns of large numbered links; below them the other
     hotels as a row of photographs, then the smaller links and Book. */
  html[data-design="noir-luxe"] body #pMenu[data-drawer="always"]{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(3rem,7vw,7rem);align-items:start;padding:7rem max(var(--gutter),calc((100vw - var(--maxw)) / 2 + var(--gutter))) 4rem}
  html[data-design="noir-luxe"] #pMenu[data-drawer] > :is(.p-menu-extra,.p-menu-cta,.p-menu-contact){grid-column:1 / -1}
  html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra:has(img){display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:1.4rem}
  html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra:has(img) .p-menu-extra__head{grid-column:1 / -1;padding:1rem 0 0}
  html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra:has(img) a{flex-direction:column;align-items:stretch;gap:.7rem;border:0;padding:0}
  html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra:has(img) img{width:100%;height:auto;aspect-ratio:3/2}
  html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra:has(img) span{font-family:var(--f-display);font-size:1.15rem}
  html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra:has(img) small{font-family:var(--f-body)}
  /* Group site and Manage My Booking side by side, Book and Call in one row. */
  html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-extra:not(:has(img)){grid-column:auto;margin-top:1.6rem}
  html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-cta{grid-column:1;padding-top:1.6rem}
  html[data-design="noir-luxe"] body #pMenu[data-drawer] .p-menu-contact{grid-column:2;padding-top:1.6rem}
}

/* Group menu: the pages large at the left, the hotels with photographs at the right. */
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer .wrap{max-width:var(--maxw);padding:6rem var(--gutter) 3rem}
html[data-design="noir-luxe"] .site-header--drawer .nav-drawer__list{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:0;padding:0;list-style:none}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__resorts{display:block}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__list li{border:0}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__head{padding:2rem 0 .6rem;font-family:var(--f-display);font-style:italic;font-size:1.05rem;font-weight:400;letter-spacing:.01em;text-transform:none;color:var(--nl-gold)}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__list > li:not(.nav-drawer__head):not(.nav-drawer__resorts) > a{display:block;padding:1rem 0;border-bottom:1px solid var(--line);font-family:var(--f-display);font-weight:400;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.1;color:var(--ink)}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__list > li > a:is(:hover,[aria-current="page"]){color:var(--nl-gold)}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__resort{display:flex;align-items:center;gap:1rem;min-height:56px;padding:.55rem 0;border-bottom:1px solid var(--line);color:var(--ink)}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__resort img{width:72px;height:50px;object-fit:cover;flex:none;border-radius:0;filter:brightness(.85)}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__resort span{font-family:var(--f-display);font-size:1.15rem}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__resort small{display:block;margin-top:.15rem;font-family:var(--f-body);font-size:.8rem;color:var(--muted)}
html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__actions{margin-top:2rem;padding:0}
@media (min-width:1121px){
  /* The hotels as a row of photographs, then the pages in two columns of large links. */
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer .wrap{padding-top:7rem}
  html[data-design="noir-luxe"] .site-header--drawer .nav-drawer__list{grid-template-columns:repeat(10,minmax(0,1fr));column-gap:1rem;align-items:start}
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__list > li{grid-column:span 5}
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__list > li.nav-drawer__head{grid-column:1 / -1}
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__list > li.nav-drawer__resorts:not(.nav-drawer__head){grid-column:span 2}
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__list > li.nav-drawer__head.nav-drawer__resorts{padding-top:0}
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__list > li:not(.nav-drawer__head):not(.nav-drawer__resorts){margin-right:clamp(1rem,3vw,3rem)}
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__resort{flex-direction:column;align-items:stretch;gap:.7rem;border:0;padding:0}
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__resort img{width:100%;height:auto;aspect-ratio:3/2}
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
  html[data-design="noir-luxe"] body .site-header--drawer .nav-drawer__actions > .btn{min-width:280px}
}

/* =====================================================================
   FOOTER: a centred sign-off - the name large, the pages and the
   reservation lines as centred rows, the sister hotels as tall photographs.
   ===================================================================== */
html[data-design="noir-luxe"] .site-footer{padding-block:clamp(72px,9vw,128px) 2rem;text-align:center;color:var(--text)}
html[data-design="noir-luxe"] body .site-footer .footer__grid{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:clamp(1.8rem,3vw,2.6rem)}
html[data-design="noir-luxe"] .site-footer .footer__grid > div{max-width:46rem}
html[data-design="noir-luxe"] .site-footer .footer__grid > div:first-child{max-width:none;width:100%}
html[data-design="noir-luxe"] body .site-footer .footer__logo-text{display:block;font-size:clamp(2.2rem,5.2vw,4.6rem);line-height:1.04;color:var(--ink);white-space:normal;text-wrap:balance;overflow-wrap:anywhere}
html[data-design="noir-luxe"] .site-footer .footer__logo{margin-inline:auto}
html[data-design="noir-luxe"] body .site-footer .footer__grid > div:first-child p{margin:1.1rem auto 0;max-width:44ch;font-family:var(--f-display);font-style:italic;font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.5;color:var(--text)}
html[data-design="noir-luxe"] .site-footer .footer__grid > div:first-child::after{content:"";display:block;width:56px;height:1px;background:var(--nl-gold);margin:2.2rem auto 0}
html[data-design="noir-luxe"] body .site-footer .footer__h{margin:0;font-family:var(--f-display);font-style:italic;font-weight:400;text-transform:none;letter-spacing:.01em;font-size:1.05rem;color:var(--nl-gold)}
html[data-design="noir-luxe"] body .site-footer .footer__grid ul{display:flex;flex-wrap:wrap;justify-content:center;gap:0 2rem;margin:.4rem 0 0;padding:0;list-style:none}
html[data-design="noir-luxe"] body .site-footer .footer__grid li{margin:0;padding:0}
html[data-design="noir-luxe"] body .site-footer .footer__grid li a{display:inline-flex;align-items:center;min-height:44px}
/* Page links in spaced capitals; reservation lines in the display face. */
html[data-design="noir-luxe"] body .site-footer .footer__grid > div:not(:first-child):not(:last-child) a{font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--ink)}
html[data-design="noir-luxe"] body .site-footer .footer__grid > div:last-child li{display:inline-flex;align-items:center;min-height:44px;font-family:var(--f-display);font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--ink)}
html[data-design="noir-luxe"] .site-footer a:hover{color:var(--nl-gold)}
/* Sister hotels: tall photographs side by side, the name over each. */
html[data-design="noir-luxe"] body .site-footer .footsib{display:flex;flex-wrap:wrap;gap:1px;padding:0;margin-top:clamp(3.2rem,6vw,5rem);background:var(--nl-hair);border:1px solid var(--nl-hair);text-align:left}
html[data-design="noir-luxe"] body .site-footer .footsib__lbl{flex:1 1 100%;margin:0;padding:1.1rem;background:var(--nl-deep);text-align:center;font-family:var(--f-display);font-style:italic;font-weight:400;font-size:1.05rem;letter-spacing:.01em;text-transform:none;color:var(--nl-gold)}
html[data-design="noir-luxe"] body .site-footer .footsib__row{position:relative;flex:1 1 40%;display:flex;flex-direction:column;justify-content:flex-end;gap:.35rem;aspect-ratio:4/5;min-height:0;margin:0;padding:1rem;border:0;overflow:hidden;background:var(--nl-deep)}
html[data-design="noir-luxe"] body .site-footer .footsib__thumb{position:absolute;inset:0;width:auto;height:auto;margin:0}
html[data-design="noir-luxe"] body .site-footer .footsib__thumb img{width:100%;height:100%;object-fit:cover;filter:brightness(.62) saturate(.85);transition:transform .9s var(--ease),filter .6s var(--ease)}
html[data-design="noir-luxe"] body .site-footer .footsib__row::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(180deg,rgba(10,9,8,0),rgba(10,9,8,.92));pointer-events:none}
html[data-design="noir-luxe"] body .site-footer .footsib__name{position:relative;z-index:1;text-align:left;font-family:var(--f-display);font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.15;color:var(--ink)}
html[data-design="noir-luxe"] body .site-footer .footsib__desc{position:relative;z-index:1;display:block;text-align:left;font-size:.75rem;letter-spacing:.06em;line-height:1.35;color:var(--ink)}
html[data-design="noir-luxe"] body .site-footer .footsib__arw{display:none}
html[data-design="noir-luxe"] body .site-footer .footsib__row:hover .footsib__thumb img{transform:scale(1.04);filter:brightness(.78) saturate(1)}
html[data-design="noir-luxe"] body .site-footer .footsib__row:hover .footsib__name{color:var(--nl-gold)}
@media (min-width:721px){
  html[data-design="noir-luxe"] body .site-footer .footsib__row{flex:1 1 180px;aspect-ratio:3/4}
}
/* Legal links and the copyright: one quiet centred block. */
html[data-design="noir-luxe"] body .site-footer .footer__legal-row{display:flex;flex-direction:column;align-items:center;gap:.6rem;margin-top:clamp(2.6rem,5vw,4rem);padding-top:1.6rem;border-top:1px solid var(--line)}
html[data-design="noir-luxe"] body .site-footer .footer__legal{display:flex;flex-wrap:wrap;justify-content:center;gap:0 1.8rem}
html[data-design="noir-luxe"] body .site-footer .footer__legal a{display:inline-flex;align-items:center;min-height:44px;font-size:.8rem;color:var(--muted)}
html[data-design="noir-luxe"] body .site-footer .footer__bottom{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 2rem;border:0;padding-top:.6rem;font-size:.8rem;color:var(--muted)}
html[data-design="noir-luxe"] body .site-footer .footer__social{justify-content:center}
html[data-design="noir-luxe"] body .site-footer .footer__note{text-align:center;margin-inline:auto}

/* The hotels strip above the footer: taller photographs, names in the display face. */
html[data-design="noir-luxe"] .footstrip{gap:1px;background:var(--nl-hair);border-top:1px solid var(--nl-hair)}
html[data-design="noir-luxe"] .footstrip a{aspect-ratio:4/3}
html[data-design="noir-luxe"] .footstrip img{filter:brightness(.7) saturate(.85)}
html[data-design="noir-luxe"] .footstrip a:hover img{filter:brightness(.85) saturate(1)}
html[data-design="noir-luxe"] .footstrip span{font-family:var(--f-display);font-weight:400;font-size:clamp(1rem,1.4vw,1.3rem);letter-spacing:.01em;left:clamp(12px,1.4vw,22px);bottom:clamp(10px,1.2vw,18px)}
@media (min-width:641px){
  html[data-design="noir-luxe"] .footstrip a{aspect-ratio:5/6}
}

/* ---------- FIRST SCREEN: the booking box always sits fully on the first screen.
   Computers: the bar overlaps the hero by 118px, card 200px + 16px gap -> hero = 100svh - 98px.
   Tablets: base overlap 58px -> --fold-room (home.css). ---------- */
@media (min-width:1025px){
  html[data-design="noir-luxe"] body .nl-hero{min-height:min(980px,calc(100svh - 98px))}
  html[data-design="noir-luxe"] body .nl-hero .hero__inner{padding-top:110px;padding-bottom:150px}
  html[data-design="noir-luxe"] body .nl-phero .hero__inner{min-height:min(940px,calc(100svh - 98px));padding-top:120px;padding-bottom:150px}
}
@media (min-width:721px) and (max-width:1024px){
  html[data-design="noir-luxe"] body .nl-hero{min-height:calc(100svh - var(--fold-room))}
  html[data-design="noir-luxe"] body .nl-hero .hero__inner{padding-top:110px;padding-bottom:90px}
  html[data-design="noir-luxe"] body .nl-phero .hero__inner{min-height:calc(100svh - var(--fold-room));padding-top:120px;padding-bottom:90px}
}

/* =====================================================================
   HOTEL PAGE LAYOUT (src/designs/noir-luxe/HotelHome.astro)
   Phones first; rooms, restaurants and photos swipe there ([data-rail]).
   ===================================================================== */

/* Shared pieces */
html[data-design="noir-luxe"] .nl-prose p{color:var(--text);line-height:1.8;font-size:clamp(1rem,1.3vw,1.12rem)}
html[data-design="noir-luxe"] .nl-prose p + p{margin-top:1rem}
html[data-design="noir-luxe"] .nl-textlink{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--nl-hair)}
html[data-design="noir-luxe"] .nl-textlink:hover{color:var(--nl-gold);border-bottom-color:var(--nl-gold)}
html[data-design="noir-luxe"] .nl-split-head{margin-bottom:clamp(2rem,4vw,3.4rem)}
html[data-design="noir-luxe"] .nl-split-head h2{font-size:clamp(2rem,4vw,3.4rem);margin:.3rem 0 1rem}
@media (min-width:901px){
  html[data-design="noir-luxe"] .nl-split-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.5rem,6vw,6rem);align-items:end}
  html[data-design="noir-luxe"] .nl-split-head h2{margin-bottom:0}
}

/* Hero: the name at the foot of the photograph, the next steps at the right. */
html[data-design="noir-luxe"] .nl-phero .hero__overlay{background:linear-gradient(180deg,rgba(10,9,8,.6) 0%,rgba(10,9,8,.2) 30%,rgba(10,9,8,.45) 62%,rgba(10,9,8,.94) 100%)}
html[data-design="noir-luxe"] .nl-phero__links{display:none}
@media (max-width:720px){
  html[data-design="noir-luxe"] body .nl-phero .hero__overlay{background:linear-gradient(180deg,rgba(10,9,8,.72) 0%,rgba(10,9,8,.8) 35%,rgba(10,9,8,.84) 70%,rgba(10,9,8,.95) 100%)}
  html[data-design="noir-luxe"] .nl-phero h1{text-shadow:0 2px 18px rgba(0,0,0,.5)}
}
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-phero .hero__inner{min-height:min(100svh,940px);padding:190px var(--gutter) 200px;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:3rem}
  html[data-design="noir-luxe"] .nl-phero .nl-hero__trust{justify-content:flex-start}
  /* Shade pooled at the lower left, under the name, for bright photographs. */
  html[data-design="noir-luxe"] .nl-phero .hero__overlay{background:
    radial-gradient(ellipse 70% 60% at 18% 78%,rgba(10,9,8,.7) 0%,rgba(10,9,8,.35) 55%,rgba(10,9,8,0) 100%),
    linear-gradient(180deg,rgba(10,9,8,.6) 0%,rgba(10,9,8,.2) 30%,rgba(10,9,8,.45) 62%,rgba(10,9,8,.94) 100%)}
  html[data-design="noir-luxe"] .nl-phero__links{text-shadow:0 1px 14px rgba(0,0,0,.6)}
  html[data-design="noir-luxe"] .nl-phero__main{max-width:min(760px,62%)}
  html[data-design="noir-luxe"] body .nl-phero h1{font-size:clamp(2.8rem,5.2vw,5rem);line-height:1.02;max-width:14ch;text-shadow:0 2px 30px rgba(0,0,0,.4)}
  html[data-design="noir-luxe"] .nl-phero .nl-rule{margin:1.6rem 0 1.2rem}
  html[data-design="noir-luxe"] .nl-phero__links{display:flex;flex-direction:column;gap:0;width:min(300px,30%);border-top:1px solid var(--nl-hair)}
  html[data-design="noir-luxe"] .nl-phero__links a{display:block;padding:1rem 0;border-bottom:1px solid var(--nl-hair);text-decoration:none;color:var(--ink)}
  html[data-design="noir-luxe"] .nl-phero__links small{display:block;font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--nl-gold)}
  html[data-design="noir-luxe"] .nl-phero__links span{display:block;margin-top:.35rem;font-family:var(--f-display);font-style:italic;font-size:1.08rem;line-height:1.35}
  html[data-design="noir-luxe"] .nl-phero__links a:hover span{color:var(--nl-gold)}
}
@media (min-width:721px) and (max-width:1024px){
  html[data-design="noir-luxe"] .nl-phero .hero__inner{flex-direction:column;align-items:flex-start;justify-content:flex-end;padding-bottom:110px}
  html[data-design="noir-luxe"] .nl-phero__main{max-width:none}
  html[data-design="noir-luxe"] .nl-phero__links{width:100%;flex-direction:row;gap:2rem}
  html[data-design="noir-luxe"] .nl-phero__links a{flex:1}
}

/* The facts as numerals in one ruled row. */
html[data-design="noir-luxe"] .nl-figures{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);margin:clamp(2.6rem,5vw,4rem) 0 0;padding:0;border-top:1px solid var(--line)}
html[data-design="noir-luxe"] .nl-figures li{padding:1.4rem .6rem 1.3rem;border-bottom:1px solid var(--line);text-align:center}
html[data-design="noir-luxe"] .nl-figures li:nth-child(odd){border-right:1px solid var(--line)}
html[data-design="noir-luxe"] .nl-figures b{display:block;font-family:var(--f-display);font-weight:400;font-size:clamp(2rem,3.6vw,3rem);line-height:1;color:var(--nl-gold)}
html[data-design="noir-luxe"] .nl-figures span{display:block;margin-top:.5rem;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-figures{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
  html[data-design="noir-luxe"] .nl-figures li{border-right:1px solid var(--line)}
  html[data-design="noir-luxe"] .nl-figures li:last-child{border-right:0}
}

/* Story: statement left, prose and highlights right. */
html[data-design="noir-luxe"] .nl-story h2{font-style:italic;font-size:clamp(2rem,4.2vw,3.6rem);line-height:1.1;margin:.3rem 0 1.4rem;max-width:16ch}
@media (min-width:901px){
  html[data-design="noir-luxe"] .nl-story__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(3rem,7vw,7rem);align-items:start}
  html[data-design="noir-luxe"] .nl-story__body{padding-top:2.6rem}
}

/* Rooms: a staggered folio of tall portraits (phones: a swipe row). */
html[data-design="noir-luxe"] .nl-rooms{background:var(--nl-deep)}
html[data-design="noir-luxe"] .nl-folio__item{display:block;color:var(--text);text-decoration:none}
html[data-design="noir-luxe"] .nl-folio__media{display:block;aspect-ratio:4/5;overflow:hidden;background:var(--nl-raise)}
html[data-design="noir-luxe"] .nl-folio__media img{width:100%;height:100%;object-fit:cover;filter:brightness(.86) saturate(.92);transition:transform 1s var(--ease),filter .6s var(--ease)}
html[data-design="noir-luxe"] .nl-folio__body{display:grid;grid-template-columns:auto 1fr;column-gap:1.1rem;align-items:baseline;padding-top:1.3rem}
html[data-design="noir-luxe"] .nl-folio__no{grid-row:1 / span 4;font-family:var(--f-display);font-size:1.6rem;line-height:1;color:var(--nl-gold)}
html[data-design="noir-luxe"] .nl-folio__tag{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--nl-gold);font-weight:500}
html[data-design="noir-luxe"] .nl-folio__item h3{margin:.3rem 0 .5rem;font-size:clamp(1.45rem,2.2vw,2rem);line-height:1.15}
html[data-design="noir-luxe"] .nl-folio__desc{display:block;font-size:.95rem;line-height:1.65;color:var(--text)}
html[data-design="noir-luxe"] .nl-folio__link{display:inline-flex;gap:.5rem;align-items:center;min-height:44px;margin-top:.6rem;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--ink);border-bottom:1px solid var(--nl-hair);justify-self:start}
html[data-design="noir-luxe"] .nl-folio__item:hover .nl-folio__media img{transform:scale(1.035);filter:brightness(.95) saturate(1)}
html[data-design="noir-luxe"] .nl-folio__item:hover .nl-folio__link{color:var(--nl-gold);border-bottom-color:var(--nl-gold)}
html[data-design="noir-luxe"] .nl-folio__item.is-nomedia .nl-folio__media{aspect-ratio:auto;height:0}
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-folio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.5rem,5vw,5rem) clamp(1.6rem,4vw,4.5rem)}
  /* The stagger: the right-hand column starts lower, like facing pages. */
  html[data-design="noir-luxe"] .nl-folio__item:nth-child(even){margin-top:clamp(4rem,9vw,9rem)}
  html[data-design="noir-luxe"] .nl-folio__item:nth-child(even):last-child{margin-top:clamp(4rem,9vw,9rem)}
  /* An odd last room spans the page as a wide plate. */
  html[data-design="noir-luxe"] .nl-folio__item:nth-child(odd):last-child{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:end}
  html[data-design="noir-luxe"] .nl-folio__item:nth-child(odd):last-child .nl-folio__media{aspect-ratio:16/10}
}

/* The house: facilities as a numbered, ruled index. */
html[data-design="noir-luxe"] .nl-house h2{font-size:clamp(2rem,4vw,3.2rem);margin:.3rem 0 1rem}
html[data-design="noir-luxe"] .nl-house__head .nl-textlink{margin-top:1.2rem}
html[data-design="noir-luxe"] .nl-index{list-style:none;margin:2.2rem 0 0;padding:0;border-top:1px solid var(--line)}
html[data-design="noir-luxe"] .nl-index li{display:grid;grid-template-columns:2.6rem 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--line)}
html[data-design="noir-luxe"] .nl-index__no{font-family:var(--f-display);font-size:1.1rem;color:var(--nl-gold);padding-top:.15rem}
html[data-design="noir-luxe"] .nl-index h3{font-size:clamp(1.2rem,1.7vw,1.4rem);margin:0}
html[data-design="noir-luxe"] .nl-index p{margin:.35rem 0 0;font-size:.93rem;line-height:1.6;color:var(--text)}
@media (min-width:901px){
  html[data-design="noir-luxe"] .nl-house__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);gap:clamp(3rem,6vw,6rem);align-items:start}
  html[data-design="noir-luxe"] .nl-house__head{position:sticky;top:150px}
  html[data-design="noir-luxe"] .nl-index{margin-top:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,4vw,3.5rem);border-top:0}
  html[data-design="noir-luxe"] .nl-index li:nth-child(-n+2){border-top:1px solid var(--line)}
}

/* The table: each restaurant a wide split, alternating (phones: a swipe row). */
html[data-design="noir-luxe"] .nl-table{background:var(--nl-deep)}
html[data-design="noir-luxe"] .nl-dish{background:var(--nl-raise);border:1px solid var(--line)}
html[data-design="noir-luxe"] .nl-dish__media{aspect-ratio:4/3;overflow:hidden;background:var(--nl-base)}
html[data-design="noir-luxe"] .nl-dish__media img{width:100%;height:100%;object-fit:cover;filter:brightness(.88) saturate(.92)}
html[data-design="noir-luxe"] .nl-dish__body{padding:1.4rem 1.3rem 1.2rem}
html[data-design="noir-luxe"] .nl-dish__kind{margin:0;font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--nl-gold);font-weight:500}
html[data-design="noir-luxe"] .nl-dish h3{margin:.4rem 0 .3rem;font-size:clamp(1.6rem,2.6vw,2.4rem)}
html[data-design="noir-luxe"] .nl-dish__hours{margin:0;font-family:var(--f-display);font-style:italic;color:var(--muted)}
html[data-design="noir-luxe"] .nl-dish__lead{margin:1rem 0 0;line-height:1.75;color:var(--text)}
html[data-design="noir-luxe"] .nl-dish__tags{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem 1.4rem;margin:1rem 0 .6rem;padding:0}
html[data-design="noir-luxe"] .nl-dish__tags li{font-size:.88rem;color:var(--ink);display:flex;align-items:center;gap:.6rem}
html[data-design="noir-luxe"] .nl-dish__tags li::before{content:"";width:12px;height:1px;background:var(--nl-gold)}
html[data-design="noir-luxe"] .nl-dish__note{margin:.6rem 0 0;font-size:.85rem;color:var(--muted)}
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-table__list{display:grid;gap:clamp(2rem,4vw,3.5rem);margin-top:2.6rem}
  html[data-design="noir-luxe"] .nl-dish{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);background:none;border:0}
  html[data-design="noir-luxe"] .nl-dish__media{aspect-ratio:3/2}
  html[data-design="noir-luxe"] .nl-dish__body{align-self:center;padding:2rem 0 2rem clamp(2rem,5vw,5rem)}
  html[data-design="noir-luxe"] .nl-dish:nth-child(even) .nl-dish__media{order:2}
  html[data-design="noir-luxe"] .nl-dish:nth-child(even) .nl-dish__body{padding:2rem clamp(2rem,5vw,5rem) 2rem 0}
}

/* Gallery: an asymmetric mosaic (phones: a swipe row). */
html[data-design="noir-luxe"] .nl-mosaic a{display:block;overflow:hidden;background:var(--nl-raise)}
html[data-design="noir-luxe"] .nl-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
html[data-design="noir-luxe"] .nl-mosaic a:hover img{transform:scale(1.04)}
html[data-design="noir-luxe"] .nl-gallery__all{margin:1.4rem 0 0;text-align:center}
@media (max-width:720px){
  html[data-design="noir-luxe"] .nl-mosaic > a{height:260px}
}
@media (min-width:721px){
  html[data-design="noir-luxe"] .nl-mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(110px,11vw,170px);gap:clamp(.6rem,1vw,1rem)}
  html[data-design="noir-luxe"] .nl-mosaic__1{grid-column:1 / span 7;grid-row:span 3}
  html[data-design="noir-luxe"] .nl-mosaic__2{grid-column:8 / span 5;grid-row:span 2}
  html[data-design="noir-luxe"] .nl-mosaic__3{grid-column:8 / span 5;grid-row:span 3}
  html[data-design="noir-luxe"] .nl-mosaic__4{grid-column:1 / span 4;grid-row:span 2}
  html[data-design="noir-luxe"] .nl-mosaic__5{grid-column:5 / span 3;grid-row:span 2}
  /* Fewer photos: the first one fills the width, the rest share the row. */
  html[data-design="noir-luxe"] .nl-mosaic:not(:has(.nl-mosaic__5)){grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;grid-auto-rows:clamp(220px,26vw,420px)}
  html[data-design="noir-luxe"] .nl-mosaic:not(:has(.nl-mosaic__5)) > a{grid-column:auto;grid-row:auto}
  html[data-design="noir-luxe"] .nl-gallery__all{text-align:right;margin-top:1.6rem}
}

/* Location: the map wide in night tones, the address card laid over it. */
html[data-design="noir-luxe"] .nl-where__stage{position:relative;margin-top:2.4rem}
/* position + z-index 0: the map's own layers (z-index 400+) stay inside it, so the
   address card laid over it is not hidden underneath. */
html[data-design="noir-luxe"] .nl-where__map{position:relative;z-index:0;height:340px;border-block:1px solid var(--line)}
html[data-design="noir-luxe"] .nl-where__map #resort-map{width:100%;height:100%;background:var(--nl-deep)}
html[data-design="noir-luxe"] #resort-map .leaflet-tile{filter:grayscale(1) invert(1) brightness(.78) contrast(1.05)}
html[data-design="noir-luxe"] .nl-where__card{background:var(--nl-raise);border:1px solid var(--nl-hair);padding:1.6rem 1.4rem;margin-top:1.4rem}
html[data-design="noir-luxe"] .nl-where__card h3{font-size:1.7rem;margin:0 0 .8rem}
html[data-design="noir-luxe"] .nl-where__card address{font-style:normal;color:var(--ink);line-height:1.7}
html[data-design="noir-luxe"] .nl-where__label{margin:1.2rem 0 .3rem;font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--nl-gold);font-weight:500}
html[data-design="noir-luxe"] .nl-where__contact{list-style:none;margin:0;padding:0}
html[data-design="noir-luxe"] .nl-where__contact a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;border-bottom:1px solid transparent}
html[data-design="noir-luxe"] .nl-where__contact a:hover{border-bottom-color:var(--nl-gold)}
html[data-design="noir-luxe"] .nl-where__go{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;margin-top:1.2rem}
@media (min-width:901px){
  html[data-design="noir-luxe"] .nl-where__map{height:clamp(480px,48vw,620px)}
  html[data-design="noir-luxe"] .nl-where__wrap{position:absolute;inset:0;z-index:1;pointer-events:none;display:flex;align-items:center}
  html[data-design="noir-luxe"] .nl-where__card{pointer-events:auto;width:min(400px,40%);margin:0;background:rgba(16,15,14,.92);backdrop-filter:blur(10px)}
}

/* Closing on hotel pages: the note under the button. */
html[data-design="noir-luxe"] .nl-close__note{margin-top:1.2rem;font-size:.85rem;color:var(--text)}
html[data-design="noir-luxe"] .nl-close .eyebrow{justify-content:center}

/* =====================================================================
   INNER PAGES (every page with a .p-pagehead: rooms, offers, dining,
   attractions, contact, FAQ, the group pages...). Noir Luxe's own versions
   of the shared blocks. "Inner page" = a section that follows .p-pagehead.
   ===================================================================== */

/* ---------- page hero: tall photograph, the title very large at the lower left,
   the lede beside it behind a gold rule (Classic: a short centred band) ---------- */
html[data-design="noir-luxe"] body .p-pagehead__img{opacity:1;z-index:0}
html[data-design="noir-luxe"] .p-pagehead::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(10,9,8,.6) 0%,rgba(10,9,8,.25) 32%,rgba(10,9,8,.55) 66%,rgba(10,9,8,.95) 100%)}
html[data-design="noir-luxe"] body .p-pagehead__inner{z-index:2;text-align:left;padding-inline:var(--gutter)}
html[data-design="noir-luxe"] body .p-pagehead .eyebrow{justify-content:flex-start;font-family:var(--f-body);font-style:normal;text-transform:uppercase;letter-spacing:.3em;font-size:.75rem;font-weight:500;color:var(--nl-gold)}
html[data-design="noir-luxe"] body .p-pagehead .eyebrow::before{background:var(--nl-gold)}
html[data-design="noir-luxe"] body .p-pagehead h1{font-size:clamp(2.5rem,7vw,6rem);line-height:1;letter-spacing:-.01em;max-width:15ch;text-shadow:0 2px 30px rgba(0,0,0,.35)}
html[data-design="noir-luxe"] body .p-pagehead__inner > p:not(.eyebrow){margin-inline:0;font-family:var(--f-display);font-style:italic;font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.5;color:rgba(236,230,218,.94)}
@media (min-width:721px){
  html[data-design="noir-luxe"] body .p-pagehead:has(.p-pagehead__img){min-height:min(78svh,760px);display:flex;align-items:flex-end}
  html[data-design="noir-luxe"] body .p-pagehead__inner{width:100%;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);column-gap:clamp(2rem,6vw,6rem);align-items:end;padding:170px var(--gutter) clamp(64px,8vw,104px)}
  html[data-design="noir-luxe"] body .p-pagehead__inner > :is(.eyebrow,h1){grid-column:1}
  html[data-design="noir-luxe"] body .p-pagehead__inner > p:not(.eyebrow){grid-column:2;grid-row:2;margin:0 0 .5rem;padding-left:1.4rem;border-left:1px solid var(--nl-gold);max-width:36ch}
}

/* ---------- breadcrumb: spaced capitals ---------- */
html[data-design="noir-luxe"] .p-crumbs{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:clamp(2rem,4vw,3.2rem)}
html[data-design="noir-luxe"] .p-crumbs a{color:var(--nl-gold);font-weight:500;display:inline-flex;align-items:center;min-height:44px}

/* ---------- section headings: title at the left, intro at the right ---------- */
@media (min-width:901px){
  html[data-design="noir-luxe"] .p-pagehead ~ .section .section__head:not(.center){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(2.5rem,6vw,6rem);max-width:none;margin-inline:0;text-align:left;padding-bottom:clamp(1.6rem,3vw,2.4rem);margin-bottom:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line)}
  html[data-design="noir-luxe"] .p-pagehead ~ .section .section__head:not(.center) > :is(.eyebrow,h2){grid-column:1}
  html[data-design="noir-luxe"] .p-pagehead ~ .section .section__head:not(.center) > :not(.eyebrow):not(h2):last-child{grid-column:2;grid-row:1 / span 2;align-self:end}
  html[data-design="noir-luxe"] .p-pagehead ~ .section .section__head:not(.center) .eyebrow{justify-content:flex-start}
  html[data-design="noir-luxe"] .p-pagehead ~ .section .section__head:not(.center) h2{margin-bottom:0}
  html[data-design="noir-luxe"] .p-pagehead ~ .section .section__head:not(.center) h2::after{display:none}
  html[data-design="noir-luxe"] .p-pagehead ~ .section .section__head:not(.center) :is(p,div){font-size:1.05rem;line-height:1.75}
  /* Beside a map (attractions) the heading stays one column. */
  html[data-design="noir-luxe"] .p-pagehead ~ .section .things-top .section__head:not(.center){display:block;border:0;padding:0;margin:0}
  html[data-design="noir-luxe"] .p-pagehead ~ .section .things-top .section__head:not(.center) > :not(.eyebrow):not(h2):last-child{margin-top:1.2rem}
}
@media (min-width:721px){
  html[data-design="noir-luxe"] .things-top .section__head{text-align:left;margin:0}
  html[data-design="noir-luxe"] .things-top .section__head .eyebrow{justify-content:flex-start}
  html[data-design="noir-luxe"] .things-top .section__head h2::after{margin-left:0}
}

/* ---------- overview: an italic statement beside a numbered list of facts ---------- */
html[data-design="noir-luxe"] .p-overview__grid h2{font-style:italic;font-size:clamp(2rem,4vw,3.4rem);line-height:1.1}
html[data-design="noir-luxe"] .p-overview__grid p{color:var(--text)}
html[data-design="noir-luxe"] body .p-keyfacts{padding:0;background:none;border:0;border-top:1px solid var(--nl-hair);counter-reset:nlkf}
html[data-design="noir-luxe"] body .p-keyfacts li{counter-increment:nlkf;display:grid;grid-template-columns:2.4rem 1fr;gap:1rem;align-items:baseline;padding:1.1rem 0;border-bottom:1px solid var(--line);font-family:var(--f-display);font-size:clamp(1.05rem,1.4vw,1.22rem);line-height:1.45;color:var(--ink)}
html[data-design="noir-luxe"] body .p-keyfacts li:last-child{border-bottom:1px solid var(--line)}
html[data-design="noir-luxe"] body .p-keyfacts li::before{content:counter(nlkf,decimal-leading-zero);font-family:var(--f-body);font-size:.75rem;letter-spacing:.1em;color:var(--nl-gold)}
html[data-design="noir-luxe"] body .p-keyfacts svg{display:none}

/* ---------- facilities and contact methods: a numbered, ruled index ---------- */
html[data-design="noir-luxe"] body .facilities{display:grid;grid-template-columns:minmax(0,1fr);gap:0;border-top:1px solid var(--line);counter-reset:nlfac}
html[data-design="noir-luxe"] body .facility{counter-increment:nlfac;display:grid;grid-template-columns:2.6rem minmax(0,1fr);column-gap:1rem;align-content:start;padding:1.4rem 0;background:none;border:0;border-bottom:1px solid var(--line);box-shadow:none;transform:none}
html[data-design="noir-luxe"] body .facility::before{content:counter(nlfac,decimal-leading-zero);grid-row:1 / span 6;font-family:var(--f-display);font-size:1.1rem;line-height:1.5;color:var(--nl-gold)}
html[data-design="noir-luxe"] body .facility > *{grid-column:2}
html[data-design="noir-luxe"] body .facility__ic{display:none}
html[data-design="noir-luxe"] body .facility h3{margin:0;font-family:var(--f-display);font-weight:400;font-size:clamp(1.2rem,1.7vw,1.45rem);color:var(--ink)}
html[data-design="noir-luxe"] body .facility p{margin-top:.4rem;font-size:.95rem;line-height:1.6;color:var(--text)}
html[data-design="noir-luxe"] body .facility:hover{transform:none;box-shadow:none}
@media (min-width:721px){
  html[data-design="noir-luxe"] body .facilities{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,5vw,5rem)}
}

/* ---------- offers: an editorial spread per offer, alternating sides ---------- */
html[data-design="noir-luxe"] body .offer-row{background:none;border:0;border-top:1px solid var(--nl-hair);border-bottom:1px solid var(--nl-hair);border-radius:0;box-shadow:none}
html[data-design="noir-luxe"] body .offer-media{border-right:0;background:var(--nl-raise)}
html[data-design="noir-luxe"] body .offer-body h3{font-weight:400;line-height:1.08}
html[data-design="noir-luxe"] body .offer-body > p{color:var(--text)}
html[data-design="noir-luxe"] body .offer-inc span{color:var(--ink)}
html[data-design="noir-luxe"] body .offer-foot{border-top-color:var(--line)}
@media (min-width:721px){
  html[data-design="noir-luxe"] body .offer-row{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:clamp(2rem,5vw,5rem);padding:clamp(1.6rem,3vw,2.4rem) 0;overflow:visible}
  html[data-design="noir-luxe"] body .offer-row + .offer-row{border-top:0}
  html[data-design="noir-luxe"] body .offer-row:nth-child(even of .offer-row){grid-template-areas:"body media" "band band";grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
  html[data-design="noir-luxe"] body .offer-media{aspect-ratio:5/4}
  html[data-design="noir-luxe"] body .offer-body{padding:0;justify-content:center}
  html[data-design="noir-luxe"] body .offer-body h3{font-size:clamp(2rem,3.4vw,3rem);margin:.2rem 0 .9rem}
  html[data-design="noir-luxe"] body .offer-body > p{font-size:1.08rem;line-height:1.75}
}

/* ---------- "with every booking": a ruled row under Roman numerals ---------- */
html[data-design="noir-luxe"] body .perks-ribbon{background:none;border:0;border-top:1px solid var(--nl-hair);border-bottom:1px solid var(--nl-hair);border-radius:0;padding:clamp(1.8rem,3vw,2.6rem) 0}
html[data-design="noir-luxe"] body .perks-ribbon__head{font-family:var(--f-display);font-style:italic;font-size:1.15rem;letter-spacing:.01em;text-transform:none;color:var(--nl-gold)}
html[data-design="noir-luxe"] body .perks-ribbon__grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;counter-reset:nlperk}
html[data-design="noir-luxe"] body .perk{counter-increment:nlperk;padding:.4rem 1.2rem}
html[data-design="noir-luxe"] body .perk + .perk{border-left:1px solid var(--line)}
html[data-design="noir-luxe"] body .perk::before{content:counter(nlperk,upper-roman);display:block;margin-bottom:.8rem;font-family:var(--f-display);font-size:clamp(2rem,3vw,2.6rem);line-height:1;color:var(--nl-gold)}
html[data-design="noir-luxe"] body .perk__ic{display:none}
html[data-design="noir-luxe"] body .perk b{font-family:var(--f-display);font-weight:400;font-size:1.25rem;color:var(--ink)}
html[data-design="noir-luxe"] body .perk span{font-size:.85rem;color:var(--text)}
@media (max-width:720px){
  html[data-design="noir-luxe"] body .perk + .perk{border-left:0;border-top:1px solid var(--line);padding-top:1.2rem;margin-top:.8rem}
}

/* ---------- room tiles: numbered portraits, the name beneath (computers/tablets);
   phones keep their swipe row with the name over the photograph ---------- */
html[data-design="noir-luxe"] body .rtile__tag{border-radius:0;letter-spacing:.18em}
@media (min-width:721px){
  html[data-design="noir-luxe"] body .roombento{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-auto-rows:auto;gap:clamp(1.4rem,3vw,2.6rem);align-items:start;counter-reset:nlroom}
  html[data-design="noir-luxe"] body .rtile{counter-increment:nlroom;grid-column:auto;grid-row:auto;display:flex;flex-direction:column;min-height:0;overflow:visible;background:none;box-shadow:none;color:var(--text)}
  html[data-design="noir-luxe"] body .roombento > .rtile:nth-child(even){margin-top:clamp(2.4rem,5vw,4.5rem)}
  html[data-design="noir-luxe"] body .rtile img{position:relative;inset:auto;height:auto;aspect-ratio:4/5;filter:brightness(.88) saturate(.92)}
  html[data-design="noir-luxe"] body .rtile:hover img{transform:none;filter:brightness(1) saturate(1)}
  html[data-design="noir-luxe"] body .rtile__scrim{display:none}
  html[data-design="noir-luxe"] body .rtile__body{position:static;padding:1.2rem 0 0}
  html[data-design="noir-luxe"] body .rtile h3{color:var(--ink);font-size:clamp(1.5rem,2.2vw,2rem);font-weight:400}
  html[data-design="noir-luxe"] body .rtile h3::before{content:counter(nlroom,decimal-leading-zero);display:block;margin-bottom:.5rem;font-family:var(--f-body);font-size:.75rem;letter-spacing:.14em;color:var(--nl-gold)}
  html[data-design="noir-luxe"] body .rtile__tag{order:3;margin:.6rem 0 0;background:none;padding:0;color:var(--nl-gold);font-size:.75rem}
  html[data-design="noir-luxe"] body .rtile__desc{max-height:none;opacity:1;margin:.5rem 0 0;color:var(--text);font-size:.95rem}
  html[data-design="noir-luxe"] body .rtile__link{order:4;color:var(--ink);font-weight:500;letter-spacing:.16em;min-height:44px;margin-top:.4rem;border-bottom:1px solid var(--nl-hair)}
  html[data-design="noir-luxe"] body .rtile:hover .rtile__link{color:var(--nl-gold);border-bottom-color:var(--nl-gold)}
  html[data-design="noir-luxe"] body .rtile--nomedia{background:none}
  html[data-design="noir-luxe"] body .rtile--nomedia::before{position:static;display:block;height:1px;background:var(--nl-gold)}
}

/* ---------- the dark booking panel: a gold-framed split, words left, button right ---------- */
@media (min-width:901px){
  html[data-design="noir-luxe"] .p-pagehead ~ .section--ink > .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:clamp(2.5rem,6vw,6rem);align-items:end;width:calc(100% - 2 * var(--gutter));padding:clamp(3rem,5vw,4.5rem);border:1px solid var(--nl-hair);outline:1px solid var(--nl-hair);outline-offset:-10px}
  html[data-design="noir-luxe"] .p-pagehead ~ .section--ink .section__head{text-align:left!important;margin:0!important;max-width:44rem}
  html[data-design="noir-luxe"] .p-pagehead ~ .section--ink .section__head .eyebrow{justify-content:flex-start!important}
  html[data-design="noir-luxe"] .p-pagehead ~ .section--ink .section__head h2{font-style:italic;font-size:clamp(2.2rem,4vw,3.4rem)}
  html[data-design="noir-luxe"] .p-pagehead ~ .section--ink .section__head h2::after{margin-left:0}
  html[data-design="noir-luxe"] .p-pagehead ~ .section--ink > .wrap > div:last-child{text-align:right!important;padding-bottom:.4rem}
}

/* ---------- attractions: a large-type list; the distance as a gold italic ---------- */
html[data-design="noir-luxe"] body .attr-list{border-top:1px solid var(--nl-hair)}
html[data-design="noir-luxe"] body .attr-row{border-top:1px solid var(--line);padding:1.4rem 0}
html[data-design="noir-luxe"] body .attr-row:first-child{border-top:0}
html[data-design="noir-luxe"] body .attr-idx{color:var(--nl-gold);font-size:1.15rem}
html[data-design="noir-luxe"] body .attr-thumb{background:var(--nl-raise)}
html[data-design="noir-luxe"] body .attr-thumb:not(:has(img)){display:none}
html[data-design="noir-luxe"] body .attr-main h3{font-weight:400;color:var(--ink)}
html[data-design="noir-luxe"] body .attr-main p{color:var(--text)}
html[data-design="noir-luxe"] body .attr-dist{font-family:var(--f-display);font-style:italic;color:var(--nl-gold)}
html[data-design="noir-luxe"] body .attr-dist svg{display:none}
@media (min-width:721px){
  html[data-design="noir-luxe"] body .attr-row{gap:clamp(1.2rem,3vw,2.6rem);padding:clamp(1.6rem,3vw,2.4rem) 0}
  html[data-design="noir-luxe"] body .attr-idx{width:3rem;font-size:clamp(1.6rem,2.4vw,2.2rem);line-height:1;padding-top:0}
  html[data-design="noir-luxe"] body .attr-thumb{width:clamp(160px,18vw,240px);height:auto;aspect-ratio:3/2}
  html[data-design="noir-luxe"] body .attr-main h3{font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.1}
  html[data-design="noir-luxe"] body .attr-main p{font-size:1rem;line-height:1.65;margin-top:.5rem;max-width:56ch}
  html[data-design="noir-luxe"] body .attr-dist{font-size:1.15rem}
}
/* ---------- questions (hotel and group FAQ pages): open ruled rows in the
   display face, no boxes; the closing strip framed in gold ---------- */
html[data-design="noir-luxe"] body .faqx__cat > h2{font-style:italic;font-size:clamp(1.5rem,2.6vw,2.1rem);color:var(--nl-gold);margin-bottom:.4rem}
html[data-design="noir-luxe"] body .faqx__item{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}
html[data-design="noir-luxe"] body .faqx__cat > h2 + * .faqx__item:first-child,
html[data-design="noir-luxe"] body .faqx__cat > h2 + .faqx__item{border-top:1px solid var(--nl-hair)}
html[data-design="noir-luxe"] body .faqx__item summary{padding:1.3rem 0;background:none;font-family:var(--f-display);font-weight:400;font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.35;color:var(--ink)}
html[data-design="noir-luxe"] body .faqx__item summary:hover{color:var(--nl-gold)}
html[data-design="noir-luxe"] body .faqx__item > :not(summary){padding:0 0 1.4rem;color:var(--text);line-height:1.75}
html[data-design="noir-luxe"] body .faq-band{background:none;border:0;padding-block:clamp(3rem,6vw,5rem)}
html[data-design="noir-luxe"] body .faq-band h2{font-style:italic;font-size:clamp(2rem,3.6vw,3rem)}
html[data-design="noir-luxe"] body .faq-band p{color:var(--text)}
@media (min-width:721px){
  html[data-design="noir-luxe"] body .faq-band > .wrap{width:calc(100% - 2 * var(--gutter));padding:clamp(2.6rem,5vw,4rem);border:1px solid var(--nl-hair);outline:1px solid var(--nl-hair);outline-offset:-10px}
}

/* ---------- photo galleries: an uneven mosaic repeating every six photographs -
   two large side by side, three smaller, then one wide plate ---------- */
@media (min-width:721px){
  html[data-design="noir-luxe"] body .gallery{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(100px,10vw,160px);grid-auto-flow:row dense;gap:clamp(.6rem,1vw,1rem)}
  html[data-design="noir-luxe"] body .gallery > a{grid-column:span 4;grid-row:span 2}
  html[data-design="noir-luxe"] body .gallery > a:nth-child(6n+1){grid-column:span 7;grid-row:span 3}
  html[data-design="noir-luxe"] body .gallery > a:nth-child(6n+2){grid-column:span 5;grid-row:span 3}
  html[data-design="noir-luxe"] body .gallery > a:nth-child(6n){grid-column:1 / -1;grid-row:span 3}
  /* A short last run fills its row rather than leaving a hole. */
  html[data-design="noir-luxe"] body .gallery > a:nth-child(6n+3):last-child{grid-column:1 / -1}
  html[data-design="noir-luxe"] body .gallery > a:nth-child(6n+4):last-child{grid-column:span 8}
  html[data-design="noir-luxe"] body .gallery > a:nth-child(6n+1):last-child{grid-column:1 / -1}
  html[data-design="noir-luxe"] body .gallery img{filter:brightness(.9) saturate(.92)}
}
html[data-design="noir-luxe"] body .gallery a{background:var(--nl-raise);box-shadow:none}

/* ---------- experience and offer facts (duration, price, where): ruled rows, no box ---------- */
html[data-design="noir-luxe"] body :is(.dx-facts,.dx-where){background:none;border:0;border-top:1px solid var(--nl-hair);border-radius:0}
html[data-design="noir-luxe"] body :is(.dx-facts,.dx-where) > *{border-color:var(--line)}

/* ---------- address and contact panels (contact, map pages): no box, a gold rule ---------- */
html[data-design="noir-luxe"] body .p-location__card{background:none;border:0;border-left:1px solid var(--nl-gold);border-radius:0;box-shadow:none;padding:.4rem 0 .4rem clamp(1.4rem,3vw,2.4rem)}
html[data-design="noir-luxe"] body .p-location__card h2,
html[data-design="noir-luxe"] body .p-location__card h3{font-size:clamp(1.7rem,3vw,2.5rem);font-weight:400;font-style:italic}
html[data-design="noir-luxe"] body .p-location__card :is(p,li){color:var(--text)}
html[data-design="noir-luxe"] body .p-location__card b,
html[data-design="noir-luxe"] body .p-location__card strong{display:block;margin-top:1.4rem;font-family:var(--f-body);font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--nl-gold)}

/* The attractions map in night tones too. */
html[data-design="noir-luxe"] :is(#things-map,#thingsStage) .leaflet-tile{filter:grayscale(1) invert(1) brightness(.78) contrast(1.05)}
html[data-design="noir-luxe"] :is(#things-map,#thingsStage){background:var(--nl-deep)}

@media (prefers-reduced-motion:reduce){
  html[data-design="noir-luxe"] *{transition:none!important}
}
