/* ============================================================
   Nuvho Demo Hotel — page-local styles
   AUTO-GENERATED from the inline <style> blocks of every
   ui_kits/demohotel-dev/*.html page (run scripts/extract-pages-css.mjs).
   Loaded after shared.css so page-specific section layouts render
   identically to the static demohotel-dev kit. Do not hand-edit —
   edit the kit HTML and re-run the extractor.
   ============================================================ */


/* ============================================================
   Source: index.html
   ============================================================ */

/* ============================================================
   index.html — page-local styles
   Hero · floating booking bar (two skins) · marquee · rooms ·
   packages carousel · stats · ledger · quote · showcase ·
   location with maps
   ============================================================ */

/* ---------- Hero (dark, cinematic-style slideshow) ---------- */
.hero-wrap { position: relative; }
.hero {
  position: relative;
  height: 100vh;
  min-height: 580px;
  overflow: hidden;
  background: var(--nv-ink);
}
.hero-stage { position: absolute; inset: 0; }
.hero-frame {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 1.6s var(--nv-ease);
  background-size: cover;
  background-position: center;
  transform: scale(1.04);
}
.hero-frame.active { opacity: 1; transform: scale(1); transition: opacity 1.6s var(--nv-ease), transform 8s var(--nv-ease); }
.hero-frame::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(13,37,48,0.20) 0%, rgba(13,37,48,0.55) 60%, rgba(13,37,48,0.94) 100%),
    linear-gradient(90deg, rgba(13,37,48,0.55) 0%, rgba(13,37,48,0.10) 50%, rgba(13,37,48,0.10) 100%);
}

/* Centred content rail keeps text inside .wrap on every viewport */
.hero-rail {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.hero-rail .wrap { height: 100%; position: relative; }
.hero-rail > * { pointer-events: auto; }

.hero-content {
  position: absolute;
  bottom: 32vh;
  left: 48px; right: 48px;
  z-index: 2;
  max-width: 980px;
}
.hero-content .chap {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: rgba(255,255,255,0.65);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.hero-content .chap::after {
  content: ""; flex: 1; max-width: 180px; height: 1px;
  background: rgba(255,255,255,0.18);
}
.hero-content h1 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(48px, 7.4vw, 112px);
  line-height: 0.96;
  letter-spacing: -0.03em;
  color: var(--nv-white);
  margin-bottom: 28px;
  text-wrap: balance;
}
.hero-content h1 em {
  font-weight: 300; font-style: italic;
  color: var(--nv-light-teal);
  display: block;
}
.hero-content h1.hero-logo { margin: 0 0 32px; line-height: 1; }
.hero-content h1.hero-logo img {
  display: block;
  width: clamp(220px, 38vw, 520px);
  height: auto;
}
.hero-content .deck {
  font-size: 18px;
  color: rgba(255,255,255,0.78);
  max-width: 54ch;
  font-weight: 300;
  line-height: 1.7;
}

.hero-cap {
  position: absolute;
  bottom: 28vh;
  right: 48px;
  z-index: 2;
  text-align: right;
  display: flex; flex-direction: column; gap: 4px;
}
.hero-cap .lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: rgba(255,255,255,0.55);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.hero-cap .place {
  font-family: var(--nv-font-display);
  font-size: 14px; font-weight: 600;
  color: var(--nv-white);
}

.hero-pager {
  position: absolute;
  bottom: 28vh;
  left: 48px;
  z-index: 2;
  display: flex; gap: 8px;
}
.hero-pager button {
  width: 36px; height: 2px;
  background: rgba(255,255,255,0.18);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
.hero-pager button::after {
  content: "";
  position: absolute; inset: 0;
  background: var(--nv-white);
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.4s var(--nv-ease);
}
.hero-pager button.active::after {
  transform: scaleX(1);
  transition: transform 5.5s linear;
}
.hero-pager button.played::after { transform: scaleX(1); }

/* ---------- Floating booking bar with skin toggle ---------- */
.book-bar-shell {
  position: absolute;
  left: 0; right: 0;
  bottom: 10vh;
  z-index: 10;
  padding: 0 48px;
}
.book-bar-shell .skin-toggle {
  max-width: 1320px;
  margin: 0 auto 12px;
  display: flex;
  justify-content: center;
}
.skin-toggle .group {
  display: inline-flex;
  background: rgba(13,37,48,0.45);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--nv-radius-pill);
  padding: 4px;
  gap: 4px;
}
.skin-toggle .group span {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  padding: 8px 14px;
  align-self: center;
}
.skin-toggle button {
  font-family: var(--nv-font-display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
  padding: 8px 16px;
  border-radius: var(--nv-radius-pill);
  transition: background 220ms var(--nv-ease), color 220ms var(--nv-ease);
}
.skin-toggle button:hover { color: var(--nv-white); }
.skin-toggle button.active {
  background: var(--nv-white);
  color: var(--nv-dark-teal);
}

.book-bar {
  max-width: 1320px;
  margin: 0 auto;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.4);
  border-radius: 18px;
  box-shadow: 0 24px 80px -24px rgba(13,37,48,0.55);
  padding: 8px;
  display: grid;
  grid-template-columns: 1.2fr 1.2fr 1fr 1fr 1fr auto;
  gap: 0;
  align-items: stretch;
  transition: background 320ms var(--nv-ease), border-color 320ms var(--nv-ease);
}
.book-bar .field {
  position: relative;
  padding: 14px 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  border-radius: 12px;
  cursor: pointer;
  transition: background 200ms var(--nv-ease);
}
.book-bar .field:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0; top: 18%; bottom: 18%;
  width: 1px;
  background: var(--nv-border-soft);
  transition: background 320ms var(--nv-ease);
}
.book-bar .field:hover { background: var(--nv-bg-section); }
.book-bar .field:focus-within { background: var(--nv-bg-section); }
.book-bar .field .lbl {
  font-family: var(--nv-font-display);
  font-size: 9px; font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--nv-medium-blue);
  display: flex; align-items: center; gap: 6px;
}
.book-bar .field .lbl svg { width: 12px; height: 12px; }
.book-bar .field input,
.book-bar .field select,
.book-bar .field .v {
  font-family: var(--nv-font-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--nv-charcoal);
  border: none;
  outline: none;
  background: transparent;
  width: 100%;
  padding: 0;
  appearance: none;
}
.book-bar .field input[type="date"] { color-scheme: light; min-height: 22px; }
.book-bar .field select { cursor: pointer; }
.book-bar .submit {
  display: flex; align-items: stretch;
  padding: 4px;
}
.book-bar .submit button {
  background: var(--nv-dark-teal);
  color: var(--nv-white);
  font-family: var(--nv-font-display);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.04em;
  padding: 0 28px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: background 200ms var(--nv-ease);
  white-space: nowrap;
}
.book-bar .submit button:hover { background: #1a566a; }
.book-bar .submit button svg { width: 16px; height: 16px; }

/* Cinematic skin */
.book-bar.skin-cinematic {
  background: rgba(13,37,48,0.72);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-color: rgba(255,255,255,0.18);
  box-shadow: 0 24px 80px -24px rgba(0,0,0,0.6);
}
.book-bar.skin-cinematic .field:not(:last-child)::after { background: rgba(255,255,255,0.18); }
.book-bar.skin-cinematic .field:hover,
.book-bar.skin-cinematic .field:focus-within { background: rgba(255,255,255,0.06); }
.book-bar.skin-cinematic .field .lbl {
  font-family: 'JetBrains Mono', monospace;
  color: rgba(128,185,191,0.85);
  letter-spacing: 0.22em;
}
.book-bar.skin-cinematic .field input,
.book-bar.skin-cinematic .field select,
.book-bar.skin-cinematic .field .v {
  color: var(--nv-white);
}
.book-bar.skin-cinematic .field input[type="date"] { color-scheme: dark; }
.book-bar.skin-cinematic .field input::placeholder { color: rgba(255,255,255,0.4); }

/* ---------- Custom select component ---------- */
.cs-field { position: relative; }
.cs-trigger {
  font-family: var(--nv-font-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--nv-charcoal);
  background: transparent;
  border: none;
  padding: 0;
  text-align: left;
  width: 100%;
  cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px;
  min-height: 22px;
}
.cs-trigger::after {
  content: "";
  width: 7px; height: 7px;
  border-right: 1.5px solid var(--nv-medium-blue);
  border-bottom: 1.5px solid var(--nv-medium-blue);
  transform: rotate(45deg) translateY(-2px);
  transition: transform 220ms var(--nv-ease);
  flex-shrink: 0;
}
.cs-field.open .cs-trigger::after { transform: rotate(-135deg) translateY(2px); }
.cs-list {
  position: absolute;
  top: calc(100% + 10px);
  left: 8px; right: 8px;
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-lg);
  box-shadow: 0 24px 56px -24px rgba(40,104,127,0.25);
  list-style: none;
  padding: 6px;
  max-height: 280px;
  overflow-y: auto;
  z-index: 30;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 220ms var(--nv-ease), transform 220ms var(--nv-ease), visibility 220ms;
}
.cs-field.open .cs-list {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.cs-list li {
  padding: 10px 14px;
  border-radius: var(--nv-radius-sm);
  font-family: var(--nv-font-body);
  font-size: 14px;
  color: var(--nv-charcoal);
  cursor: pointer;
  transition: background 180ms var(--nv-ease);
}
.cs-list li:hover { background: var(--nv-bg-section); }
.cs-list li[aria-selected="true"] {
  background: var(--nv-dark-teal-08);
  color: var(--nv-dark-teal);
  font-weight: 600;
}

/* Cinematic skin custom select */
.book-bar.skin-cinematic .cs-trigger { color: var(--nv-white); }
.book-bar.skin-cinematic .cs-trigger::after {
  border-right-color: rgba(128,185,191,0.85);
  border-bottom-color: rgba(128,185,191,0.85);
}
.book-bar.skin-cinematic .cs-list {
  background: rgba(13,37,48,0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-color: rgba(255,255,255,0.18);
}
.book-bar.skin-cinematic .cs-list li { color: rgba(255,255,255,0.85); }
.book-bar.skin-cinematic .cs-list li:hover { background: rgba(255,255,255,0.08); }
.book-bar.skin-cinematic .cs-list li[aria-selected="true"] {
  background: rgba(128,185,191,0.18);
  color: var(--nv-light-teal);
}

/* ---------- Flatpickr theming (brand) ---------- */
.flatpickr-input { cursor: pointer !important; }
.flatpickr-calendar {
  font-family: var(--nv-font-body);
  border-radius: var(--nv-radius-lg);
  box-shadow: 0 24px 56px -24px rgba(40,104,127,0.30);
  border: 1px solid var(--nv-border-soft);
  width: 322px;
  padding: 8px;
  background: var(--nv-white);
}
.flatpickr-calendar.arrowTop:before, .flatpickr-calendar.arrowTop:after { border-bottom-color: var(--nv-white); }
.flatpickr-calendar.arrowBottom:before, .flatpickr-calendar.arrowBottom:after { border-top-color: var(--nv-white); }
.flatpickr-months { padding: 8px 6px 12px; }
.flatpickr-current-month {
  padding-top: 4px;
  font-size: 16px;
  color: var(--nv-dark-teal);
  font-family: var(--nv-font-display);
  font-weight: 700;
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
  color: var(--nv-dark-teal) !important;
  font-family: var(--nv-font-display);
  font-weight: 700;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
  background: var(--nv-bg-section) !important;
}
.flatpickr-prev-month, .flatpickr-next-month {
  fill: var(--nv-dark-teal) !important;
  padding: 8px !important;
  border-radius: 50%;
  transition: background 220ms var(--nv-ease);
}
.flatpickr-prev-month:hover, .flatpickr-next-month:hover {
  background: var(--nv-bg-section);
  fill: var(--nv-dark-teal) !important;
}
.flatpickr-prev-month svg, .flatpickr-next-month svg { fill: inherit; }
.flatpickr-weekdays { padding: 6px 0; }
span.flatpickr-weekday {
  color: var(--nv-medium-blue);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 500;
}
.flatpickr-day {
  color: var(--nv-charcoal);
  font-family: var(--nv-font-body);
  font-weight: 400;
  border-radius: var(--nv-radius-sm);
  border: 1px solid transparent;
  max-width: 40px;
  height: 38px;
  line-height: 36px;
}
.flatpickr-day:hover {
  background: var(--nv-bg-section);
  border-color: var(--nv-bg-section);
}
.flatpickr-day.today {
  border-color: var(--nv-medium-blue);
  background: transparent;
  color: var(--nv-dark-teal);
  font-weight: 600;
}
.flatpickr-day.today:hover {
  background: var(--nv-bg-section);
  border-color: var(--nv-medium-blue);
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.startRange:hover,
.flatpickr-day.selected.today {
  background: var(--nv-dark-teal);
  border-color: var(--nv-dark-teal);
  color: var(--nv-white);
}
.flatpickr-day.inRange,
.flatpickr-day.inRange:hover {
  background: var(--nv-dark-teal);
  border-color: var(--nv-dark-teal);
  color: var(--nv-white);
  box-shadow: -5px 0 0 var(--nv-dark-teal), 5px 0 0 var(--nv-dark-teal);
}
.flatpickr-day.endRange,
.flatpickr-day.endRange:hover,
.flatpickr-day.endRange.today {
  background: var(--nv-light-teal);
  border-color: var(--nv-light-teal);
  color: var(--nv-white);
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay { color: var(--nv-fg-5); }
.numInputWrapper:hover { background: var(--nv-bg-section); }
/* Two-month range view */
.flatpickr-calendar.multiMonth { width: 644px !important; }
.flatpickr-calendar.multiMonth .flatpickr-days { width: 100%; }

/* ---------- Marquee ---------- */
.marquee {
  margin-top: 8px;
  border-top: 0.5px solid var(--nv-hair-on-light);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  padding: 22px 0;
  overflow: hidden;
  background: var(--nv-bg-section);
}
.marquee-track {
  display: flex; gap: 64px;
  animation: scroll 50s linear infinite;
  white-space: nowrap;
  width: max-content;
}
.marquee span {
  font-family: var(--nv-font-display);
  font-size: 22px;
  font-weight: 400;
  color: var(--nv-fg-3);
  letter-spacing: -0.005em;
  display: inline-flex;
  align-items: center;
  gap: 64px;
}
.marquee span em {
  color: var(--nv-medium-blue);
  font-style: italic;
  font-weight: 300;
}
.marquee span::after {
  content: "✺";
  color: var(--nv-light-teal);
  font-style: normal;
  font-size: 14px;
}
@keyframes scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ---------- Section blocks ---------- */
.block {
  padding: 140px 48px;
  max-width: 1320px;
  margin: 0 auto;
}
.block-header {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-bottom: 64px;
  max-width: 760px;
}

/* ---------- Rooms grid ---------- */
.rooms-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-auto-rows: 320px;
  gap: 18px;
  margin-top: 56px;
}
.room {
  position: relative;
  overflow: hidden;
  border-radius: var(--nv-radius-xl);
  cursor: pointer;
  transition: transform 320ms var(--nv-ease), box-shadow 320ms var(--nv-ease);
  display: block;
  isolation: isolate;
}
.room.r-1 { grid-row: span 2; }
.room.r-2 { grid-column: 2; }
.room.r-3 { grid-column: 3; }
.room.r-4 { grid-column: 2 / span 2; }
.room img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--nv-ease), filter 800ms var(--nv-ease);
  filter: saturate(0.92) brightness(0.95);
}
.room::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(13,37,48,0) 30%, rgba(13,37,48,0.85) 100%);
  pointer-events: none;
}
.room:hover { transform: translateY(-3px); box-shadow: 0 24px 56px -28px rgba(13,37,48,0.4); }
.room:hover img { transform: scale(1.06); filter: saturate(1) brightness(1); }

.room-text {
  position: absolute;
  left: 28px; right: 28px; bottom: 28px;
  z-index: 2;
  display: flex; flex-direction: column; gap: 8px;
  color: var(--nv-white);
}
.room-text .num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.room-text h3 {
  font-family: var(--nv-font-display);
  font-size: 28px; font-weight: 700;
  color: var(--nv-white);
  letter-spacing: -0.015em;
  line-height: 1.05;
}
.room-text .meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  margin-top: 8px;
  padding-top: 14px;
  border-top: 0.5px solid rgba(255,255,255,0.18);
}
.room-text .meta .specs {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.room-text .meta .price {
  font-family: var(--nv-font-display);
  font-size: 18px; font-weight: 700;
  color: var(--nv-light-teal);
  letter-spacing: -0.015em;
}
.room-text .meta .price small {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  color: rgba(255,255,255,0.55);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 400;
}

.room-cta {
  position: absolute;
  top: 22px; right: 22px;
  z-index: 3;
  width: 38px; height: 38px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: rgba(255,255,255,0.95);
  color: var(--nv-dark-teal);
  transform: translateY(-4px);
  opacity: 0;
  transition: opacity 280ms var(--nv-ease), transform 280ms var(--nv-ease);
}
.room:hover .room-cta { opacity: 1; transform: translateY(0); }
.room-cta svg { width: 16px; height: 16px; }

/* ---------- Stats band ---------- */
.stats {
  background: var(--nv-bg-card);
  border-top: 0.5px solid var(--nv-hair-on-light);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
}
.stats-grid {
  max-width: 1320px;
  margin: 0 auto;
  padding: 64px 48px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.stat {
  display: flex; flex-direction: column; gap: 8px;
  padding-right: 32px;
  border-right: 0.5px solid var(--nv-hair-on-light);
}
.stat:last-child { border-right: none; }
.stat .num {
  font-family: var(--nv-font-display);
  font-size: 44px; font-weight: 700;
  color: var(--nv-dark-teal);
  letter-spacing: -0.025em;
  line-height: 1;
}
.stat .num small {
  font-size: 18px;
  color: var(--nv-medium-blue);
  font-weight: 600;
}
.stat .lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--nv-fg-4);
  margin-top: 8px;
}
.stat .desc {
  font-size: 13px;
  color: var(--nv-fg-3);
  line-height: 1.6;
  margin-top: 4px;
}

/* ---------- Ledger ---------- */
.ledger {
  background: var(--nv-bg-section);
  border-top: 0.5px solid var(--nv-hair-on-light);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  margin-top: 56px;
}
.ledger-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 32px 48px;
}
.led-row {
  display: grid;
  grid-template-columns: 80px 1fr 220px 220px;
  gap: 32px;
  padding: 36px 0;
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  align-items: center;
  transition: padding 280ms var(--nv-ease), background 280ms var(--nv-ease);
}
.led-row:last-child { border-bottom: none; }
.led-row:hover { padding-left: 14px; padding-right: 14px; background: rgba(40,104,127,0.04); }
.led-row .num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--nv-medium-blue);
  letter-spacing: 0.18em;
}
.led-row h4 {
  font-family: var(--nv-font-display);
  font-size: 26px;
  font-weight: 700;
  color: var(--nv-dark-teal);
  letter-spacing: -0.015em;
}
.led-row p {
  font-size: 14px;
  color: var(--nv-fg-3);
  font-weight: 300;
  line-height: 1.65;
  max-width: 56ch;
  margin-top: 6px;
}
.led-row .when {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--nv-fg-3);
  letter-spacing: 0.06em;
  line-height: 1.7;
}
.led-row .open {
  text-align: right;
  font-family: var(--nv-font-display);
  font-size: 13px;
  font-weight: 600;
  color: var(--nv-dark-teal);
  letter-spacing: 0.04em;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}
.led-row .open svg { width: 14px; height: 14px; transition: transform 220ms var(--nv-ease); }
.led-row:hover .open svg { transform: translateX(4px); }

/* ---------- Quote ---------- */
.quote-band {
  text-align: center;
  padding: 160px 48px;
  background: var(--nv-bg-page);
}
.quote-band .mark {
  font-family: var(--nv-font-display);
  font-size: 80px;
  line-height: 0.4;
  color: var(--nv-light-teal);
  margin-bottom: 24px;
}
.quote-band q {
  font-family: var(--nv-font-display);
  font-weight: 400;
  font-size: clamp(26px, 3.2vw, 44px);
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--nv-dark-teal);
  text-wrap: balance;
  max-width: 26ch;
  display: block;
  margin: 0 auto;
  quotes: none;
}
.quote-band q em { font-style: italic; color: var(--nv-medium-blue); font-weight: 300; }
.quote-band .attr {
  margin-top: 36px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--nv-fg-4);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* ---------- Showcase (parallax dark band) ---------- */
.showcase {
  padding: 160px 48px;
  background:
    linear-gradient(180deg, rgba(13,37,48,0.55) 0%, rgba(13,37,48,0.85) 100%),
    url('https://demohotel.nuvho.com/wp-content/uploads/2021/01/Demo-Hotel-Nuvho-Restaurant.jpg') center / cover fixed;
  text-align: center;
  color: var(--nv-white);
  position: relative;
}
.showcase .h-section { color: var(--nv-white); margin: 0 auto 24px; }
.showcase .h-section em { color: var(--nv-light-teal); }
.showcase .lede { color: rgba(255,255,255,0.78); margin: 0 auto; }
.showcase .actions {
  display: flex; gap: 14px; justify-content: center;
  margin-top: 48px;
  flex-wrap: wrap;
}

/* ---------- Location + Maps ---------- */
.location-grid {
  margin-top: 56px;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 56px;
  align-items: stretch;
}
.loc-list { display: flex; flex-direction: column; }
.loc-row {
  padding: 22px 0;
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: baseline;
}
.loc-row:last-child { border-bottom: none; }
.loc-row .place {
  font-family: var(--nv-font-display);
  font-size: 18px; font-weight: 600;
  color: var(--nv-dark-teal);
  letter-spacing: -0.005em;
}
.loc-row .kind {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--nv-fg-4);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-top: 6px;
}
.loc-row .dist {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  color: var(--nv-medium-blue);
  letter-spacing: 0.04em;
}
.loc-map {
  border-radius: var(--nv-radius-xl);
  overflow: hidden;
  border: 1px solid var(--nv-border-soft);
  min-height: 480px;
  background: var(--nv-bg-section);
}
.loc-map iframe {
  width: 100%;
  height: 100%;
  min-height: 480px;
  border: 0;
  display: block;
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .hero { height: calc(100vh - 280px); min-height: 520px; }
  .hero-content { left: 24px; right: 24px; bottom: 22vh; }
  .hero-content h1 { font-size: clamp(40px, 8.4vw, 76px); }
  .hero-cap { right: 24px; bottom: 24px; }
  .hero-pager { left: 24px; bottom: 24px; }
  .book-bar-shell { position: static; bottom: auto; padding: 24px 20px 0; }
  .book-bar {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: auto;
  }
  .book-bar .field:nth-child(odd)::after { display: none; }
  .book-bar .field { border-bottom: 0.5px solid var(--nv-border-soft); border-radius: 0; }
  .book-bar.skin-cinematic .field { border-bottom-color: rgba(255,255,255,0.18); }
  .book-bar .field:nth-last-child(2),
  .book-bar .field:nth-last-child(3) { border-bottom: none; }
  .book-bar .submit { grid-column: span 2; padding: 12px 4px; }
  .book-bar .submit button { width: 100%; padding: 16px; }
  .marquee { margin-top: 24px; }
  .block { padding: 80px 24px; }
  .rooms-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 280px;
  }
  .room.r-1 { grid-row: auto; grid-column: span 2; height: 360px; }
  .room.r-2, .room.r-3 { grid-column: auto; }
  .room.r-4 { grid-column: span 2; }
  .stats-grid { grid-template-columns: 1fr 1fr; gap: 24px; padding: 48px 24px; }
  .stat:nth-child(2) { border-right: none; }
  .led-row { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; }
  .led-row .num { color: var(--nv-medium-blue); }
  .led-row .open { text-align: left; justify-content: flex-start; }
  .ledger-inner { padding: 24px; }
  .quote-band { padding: 96px 24px; }
  .showcase { padding: 96px 24px; background-attachment: scroll; }
  .location-grid { grid-template-columns: 1fr; gap: 32px; }
  .loc-map { min-height: 320px; }
  .loc-map iframe { min-height: 320px; }
}
@media (max-width: 768px) {
  .hero-content h1 { font-size: clamp(34px, 9vw, 56px); }
  .hero-content .deck { font-size: 16px; line-height: 1.55; }
  .marquee span { font-size: 17px; gap: 36px; }
  .block { padding: 64px 20px; }
  .stats-grid { padding: 40px 20px; gap: 20px; }
  .stat .num { font-size: 36px; }
  .quote-band { padding: 72px 20px; }
  .showcase { padding: 72px 20px; }
  .showcase .actions .btn { width: 100%; justify-content: center; }
  .ledger-inner { padding: 16px; }
  .led-row h4 { font-size: 22px; }
}
@media (max-width: 600px) {
  .hero { height: auto; min-height: 520px; }
  .hero-content h1 { font-size: clamp(30px, 9.5vw, 44px); }
  .rooms-grid { grid-template-columns: 1fr; }
  .room.r-1, .room.r-4 { grid-column: auto; }
  .stats-grid { grid-template-columns: 1fr; }
  .stat { border-right: none; padding-right: 0; padding-bottom: 24px; border-bottom: 0.5px solid var(--nv-hair-on-light); }
  .stat:last-child { border-bottom: none; padding-bottom: 0; }
}


/* ============================================================
   Source: stay.html
   ============================================================ */
/* stay.html — page-local hero + brief description */
.stay-hero {
  position: relative;
  height: 70vh;
  min-height: 480px;
  overflow: hidden;
  background: var(--nv-ink);
}
.stay-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url('https://demohotel.nuvho.com/wp-content/uploads/2021/04/Nuvho-Demo-Luxury-Room.jpg');
  background-size: cover;
  background-position: center;
  filter: brightness(0.85);
}
.stay-hero::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(13,37,48,0.20) 0%, rgba(13,37,48,0.55) 60%, rgba(13,37,48,0.92) 100%);
}
.stay-hero-inner {
  position: relative;
  z-index: 2;
  height: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 48px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 64px;
}
.stay-hero h1 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(48px, 7vw, 96px);
  line-height: 0.98;
  letter-spacing: -0.03em;
  color: var(--nv-white);
  margin: 18px 0;
  text-wrap: balance;
}
.stay-hero h1 em { font-weight: 300; font-style: italic; color: var(--nv-light-teal); display: block; }
.stay-hero .deck {
  font-size: 18px;
  color: rgba(255,255,255,0.78);
  max-width: 56ch;
  font-weight: 300;
  line-height: 1.7;
}

/* Brief description below the SEO block */
.stay-intro {
  padding: 96px 48px 0;
  background: var(--nv-bg-page);
}
.stay-intro-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: 860px;
  align-items: center;
  text-align: center;
}
.stay-intro h2 { max-width: 22ch; }

/* Breadcrumb */
.crumb-band {
  background: var(--nv-bg-page);
  padding: 110px 48px 0;
}
.crumb {
  max-width: 1320px;
  margin: 0 auto;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--nv-fg-4);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.crumb a { color: var(--nv-medium-blue); }
.crumb a:hover { color: var(--nv-dark-teal); }
.crumb .sep { opacity: 0.5; }

@media (max-width: 1080px) {
  .stay-hero { height: 60vh; min-height: 420px; }
  .stay-hero-inner { padding: 0 24px 48px; }
  .stay-intro { padding: 64px 24px 0; }
  .crumb-band { padding: 96px 24px 0; }
}
@media (max-width: 480px) {
  .stay-hero { height: 56vh; min-height: 360px; }
  .stay-hero h1 { font-size: clamp(34px, 9vw, 56px); }
  .stay-intro { padding: 48px 16px 0; }
  .crumb-band { padding: 88px 16px 0; }
}


/* ============================================================
   Source: deals.html
   ============================================================ */

/* deals.html — page-local */
body { padding-top: 88px; }

.page-hero {
  background: var(--nv-bg-section);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  padding: 80px 48px 64px;
}
.page-hero-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 64px;
  align-items: end;
}
.page-hero h1 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(40px, 5.4vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--nv-dark-teal);
  margin-top: 18px;
  text-wrap: balance;
}
.page-hero h1 em { font-weight: 300; font-style: italic; color: var(--nv-medium-blue); }
.page-hero .lede { margin-top: 18px; }
.page-hero-img {
  aspect-ratio: 5 / 4;
  border-radius: var(--nv-radius-xl);
  overflow: hidden;
}
.page-hero-img img { width: 100%; height: 100%; object-fit: cover; }

.crumb {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--nv-fg-4);
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 8px;
}
.crumb a { color: var(--nv-medium-blue); }
.crumb a:hover { color: var(--nv-dark-teal); }
.crumb .sep { color: var(--nv-fg-5); }

/* Deals grid */
.deals {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.deal {
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-xl);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform 280ms var(--nv-ease), box-shadow 280ms var(--nv-ease), border-color 280ms var(--nv-ease);
}
.deal:hover { transform: translateY(-4px); border-color: var(--nv-dark-teal); box-shadow: var(--nv-shadow-md); }
.deal-photo {
  aspect-ratio: 4 / 3;
  position: relative;
  overflow: hidden;
}
.deal-photo img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--nv-ease);
}
.deal:hover .deal-photo img { transform: scale(1.05); }
.deal-tag {
  position: absolute;
  top: 14px; left: 14px;
  background: rgba(255,255,255,0.95);
  color: var(--nv-dark-teal);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: var(--nv-radius-pill);
}
.deal-body {
  padding: 28px;
  display: flex; flex-direction: column; gap: 14px;
  flex: 1;
}
.deal-body h3 {
  font-family: var(--nv-font-display);
  font-size: 24px;
  font-weight: 700;
  color: var(--nv-dark-teal);
  letter-spacing: -0.015em;
}
.deal-body p {
  font-size: 14px;
  color: var(--nv-fg-3);
  line-height: 1.65;
}
.deal-includes {
  list-style: none;
  display: flex; flex-direction: column; gap: 8px;
  margin-top: 4px;
  padding-top: 16px;
  border-top: 1px solid var(--nv-border-soft);
}
.deal-includes li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13px;
  color: var(--nv-fg-3);
  line-height: 1.5;
}
.deal-includes li svg {
  width: 14px; height: 14px;
  color: var(--nv-dark-teal);
  flex-shrink: 0; margin-top: 4px;
}
.deal-price {
  display: flex; align-items: baseline; gap: 8px;
  margin-top: 6px;
}
.deal-price .num {
  font-family: var(--nv-font-display);
  font-size: 32px;
  font-weight: 700;
  color: var(--nv-dark-teal);
  letter-spacing: -0.025em;
  line-height: 1;
}
.deal-price .from {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--nv-fg-4);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.deal-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--nv-fg-4);
  letter-spacing: 0.06em;
  margin-top: 4px;
}
.deal-cta { margin-top: auto; }

@media (max-width: 1080px) {
  body { padding-top: 70px; }
  .page-hero { padding: 64px 24px 48px; }
  .page-hero-inner { grid-template-columns: 1fr; gap: 32px; }
  .deals { padding: 64px 24px; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .deals { grid-template-columns: 1fr; }
}


/* ============================================================
   Source: eat.html
   ============================================================ */

body { padding-top: 0; }

/* Hero */
.eat-hero {
  position: relative;
  height: 70vh;
  min-height: 540px;
  background: var(--nv-ink) url('https://demohotel.nuvho.com/wp-content/uploads/2021/01/Demo-Hotel-Nuvho-Restaurant.jpg') center / cover;
  display: flex; align-items: end;
  overflow: hidden;
}
.eat-hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(13,37,48,0.30) 0%, rgba(13,37,48,0.85) 100%);
}
.eat-hero .wrap {
  position: relative;
  z-index: 2;
  padding-bottom: 80px;
  width: 100%;
}
.eat-hero h1 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(48px, 7vw, 104px);
  line-height: 0.96;
  letter-spacing: -0.03em;
  color: var(--nv-white);
  text-wrap: balance;
  margin-top: 24px;
  max-width: 16ch;
}
.eat-hero h1 em { font-weight: 300; font-style: italic; color: var(--nv-light-teal); display: block; }
.eat-hero p {
  margin-top: 24px;
  font-size: 18px;
  color: rgba(255,255,255,0.78);
  max-width: 56ch;
  font-weight: 300;
  line-height: 1.65;
}

/* Hours */
.hours {
  background: var(--nv-bg-section);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  padding: 64px 48px;
}
.hours-grid {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.hours-card {
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-xl);
  padding: 32px;
}
.hours-card h4 {
  font-family: var(--nv-font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--nv-dark-teal);
  letter-spacing: -0.015em;
}
.hours-card .when {
  margin-top: 14px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  letter-spacing: 0.04em;
  color: var(--nv-charcoal);
  line-height: 1.8;
}
.hours-card .last {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--nv-border-soft);
  font-size: 13px;
  color: var(--nv-fg-3);
}
.hours-card .closed {
  display: inline-block;
  margin-top: 12px;
  padding: 4px 10px;
  border-radius: var(--nv-radius-pill);
  background: var(--nv-coral-bg);
  color: var(--nv-coral-dark);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* Intro */
.intro {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 80px;
  align-items: start;
}
.intro h2 { margin-bottom: 24px; }
.intro .narrative p {
  font-size: 17px;
  line-height: 1.75;
  color: var(--nv-fg-3);
  margin-bottom: 18px;
  max-width: 56ch;
}
.intro .narrative p:first-of-type::first-letter {
  font-family: var(--nv-font-display);
  font-size: 56px;
  font-weight: 700;
  color: var(--nv-dark-teal);
  float: left;
  line-height: 0.9;
  padding-right: 12px;
  padding-top: 6px;
}
.intro .info {
  background: var(--nv-bg-card);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-lg);
  padding: 32px;
  position: sticky;
  top: 100px;
  box-shadow: var(--nv-shadow-sm);
}
.intro .info h4 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--nv-medium-blue);
  text-transform: uppercase;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--nv-border-soft);
}
.intro .info dl {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 14px 16px;
  margin-top: 18px;
  font-size: 14px;
}
.intro .info dt {
  color: var(--nv-fg-4);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.intro .info dd { color: var(--nv-charcoal); }
.intro .info dd a { color: var(--nv-dark-teal); }
.intro .info dd a:hover { color: var(--nv-medium-blue); }
.intro .info .ctas {
  margin-top: 24px;
  display: flex; flex-direction: column; gap: 10px;
}

/* Menu preview */
.menu-section {
  background: var(--nv-bg-section);
  border-top: 0.5px solid var(--nv-hair-on-light);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  padding: 96px 48px;
}
.menu-inner { max-width: 1320px; margin: 0 auto; }
.menu-head { margin-bottom: 56px; max-width: 760px; display: flex; flex-direction: column; gap: 18px; }
.menu-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.menu-card {
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-xl);
  padding: 32px;
  display: flex; flex-direction: column; gap: 18px;
  transition: transform 280ms var(--nv-ease), border-color 280ms var(--nv-ease), box-shadow 280ms var(--nv-ease);
}
.menu-card:hover { transform: translateY(-3px); border-color: var(--nv-dark-teal); box-shadow: var(--nv-shadow-md); }
.menu-card .menu-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--nv-medium-blue);
}
.menu-card h3 {
  font-family: var(--nv-font-display);
  font-size: 28px;
  font-weight: 700;
  color: var(--nv-dark-teal);
  letter-spacing: -0.02em;
}
.menu-card ul {
  list-style: none;
  display: flex; flex-direction: column; gap: 14px;
  border-top: 1px solid var(--nv-border-soft);
  padding-top: 20px;
}
.menu-card li {
  display: flex; flex-direction: column; gap: 4px;
  padding-bottom: 14px;
  border-bottom: 0.5px solid var(--nv-border-soft);
}
.menu-card li:last-child { padding-bottom: 0; border-bottom: none; }
.menu-card .dish {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
}
.menu-card .dish-name {
  font-family: var(--nv-font-display);
  font-size: 16px;
  font-weight: 600;
  color: var(--nv-charcoal);
}
.menu-card .dish-price {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  color: var(--nv-medium-blue);
}
.menu-card .dish-desc {
  font-size: 13px;
  color: var(--nv-fg-3);
  line-height: 1.55;
}
.menu-card .full-menu {
  margin-top: auto;
  padding-top: 12px;
  font-family: var(--nv-font-display);
  font-size: 12px;
  font-weight: 600;
  color: var(--nv-dark-teal);
  letter-spacing: 0.04em;
  display: inline-flex; align-items: center; gap: 6px;
}
.menu-card .full-menu svg { width: 14px; height: 14px; transition: transform 220ms var(--nv-ease); }
.menu-card:hover .full-menu svg { transform: translateX(4px); }

/* Chef narrative */
.chef {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 80px;
  align-items: center;
}
.chef-img {
  aspect-ratio: 4 / 5;
  border-radius: var(--nv-radius-xl);
  overflow: hidden;
}
.chef-img img { width: 100%; height: 100%; object-fit: cover; }
.chef-text h2 { margin-bottom: 24px; }
.chef-text p { font-size: 17px; line-height: 1.75; color: var(--nv-fg-3); margin-bottom: 18px; max-width: 56ch; }
.chef-meta {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--nv-border-soft);
  display: flex; gap: 36px; flex-wrap: wrap;
}
.chef-meta div .lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--nv-fg-4);
  margin-bottom: 4px;
}
.chef-meta div .val {
  font-family: var(--nv-font-display);
  font-size: 16px;
  font-weight: 600;
  color: var(--nv-dark-teal);
}

/* Reserve CTA */
.reserve-band {
  padding: 120px 48px;
  background: var(--nv-dark-teal);
  text-align: center;
  color: var(--nv-white);
}
.reserve-band h2 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-wrap: balance;
  max-width: 22ch;
  margin: 18px auto 0;
}
.reserve-band h2 em { font-weight: 300; font-style: italic; color: var(--nv-light-teal); }
.reserve-band p {
  margin: 18px auto 0;
  font-size: 16px;
  color: rgba(255,255,255,0.78);
  max-width: 52ch;
}
.reserve-band .actions {
  margin-top: 36px;
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
}

@media (max-width: 1080px) {
  .eat-hero { height: 60vh; min-height: 460px; }
  .eat-hero .wrap { padding-bottom: 56px; padding-top: 88px; }
  .eat-hero h1 { font-size: clamp(34px, 7.4vw, 60px); line-height: 1.05; max-width: 20ch; }
  .eat-hero p { font-size: 16px; margin-top: 18px; line-height: 1.55; }
  .hours { padding: 48px 20px; }
  .hours-grid { grid-template-columns: 1fr; gap: 14px; }
  .hours-card { padding: 24px; }
  .intro { padding: 64px 20px; grid-template-columns: 1fr; gap: 40px; }
  .intro .info { position: static; padding: 24px; }
  .menu-section, .chef { padding: 64px 20px; }
  .menu-grid { grid-template-columns: 1fr; }
  .menu-card { padding: 24px; }
  .chef { grid-template-columns: 1fr; gap: 32px; }
  .reserve-band { padding: 72px 20px; }
}
@media (max-width: 480px) {
  .eat-hero { min-height: 420px; }
  .eat-hero h1 { font-size: clamp(28px, 8vw, 40px); }
  .eat-hero p { font-size: 15px; }
  .reserve-band .actions .btn { width: 100%; justify-content: center; }
}


/* ============================================================
   Source: explore.html
   ============================================================ */

body { padding-top: 88px; }

.page-hero { padding: 64px 48px 32px; background: var(--nv-bg-section); }
.page-hero-inner { max-width: 1320px; margin: 0 auto; }
.page-hero h1 { font-family: var(--nv-font-display); font-weight: 700; font-size: clamp(40px, 5.4vw, 76px); line-height: 1.02; letter-spacing: -0.025em; color: var(--nv-dark-teal); margin-top: 18px; text-wrap: balance; }
.page-hero h1 em { font-weight: 300; font-style: italic; color: var(--nv-medium-blue); }
.page-hero .lede { margin-top: 18px; max-width: 60ch; }
.crumb { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.12em; color: var(--nv-fg-4); display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.crumb a { color: var(--nv-medium-blue); }
.crumb a:hover { color: var(--nv-dark-teal); }
.crumb .sep { color: var(--nv-fg-5); }

/* Map block */
.map-block {
  max-width: 1320px;
  margin: 0 auto;
  padding: 32px 48px 64px;
}
.map-frame {
  border-radius: var(--nv-radius-xl);
  overflow: hidden;
  border: 1px solid var(--nv-border-soft);
  background: var(--nv-bg-section);
  height: 560px;
}
.map-frame iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Categories */
.categories {
  background: var(--nv-bg-section);
  border-top: 0.5px solid var(--nv-hair-on-light);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  padding: 96px 48px;
}
.cat-inner { max-width: 1320px; margin: 0 auto; }
.cat-head { margin-bottom: 56px; max-width: 760px; display: flex; flex-direction: column; gap: 18px; }
.cat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.cat-card {
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-xl);
  padding: 36px;
}
.cat-card .icon {
  width: 52px; height: 52px;
  border-radius: var(--nv-radius-md);
  background: var(--nv-dark-teal-08);
  color: var(--nv-dark-teal);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 18px;
}
.cat-card .icon svg { width: 24px; height: 24px; }
.cat-card h3 { font-family: var(--nv-font-display); font-size: 24px; font-weight: 700; color: var(--nv-dark-teal); letter-spacing: -0.02em; margin-bottom: 18px; }
.cat-card ul { list-style: none; display: flex; flex-direction: column; gap: 0; }
.cat-card ul li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 0.5px solid var(--nv-border-soft);
}
.cat-card ul li:last-child { border-bottom: none; }
.cat-card .place { font-family: var(--nv-font-display); font-size: 16px; font-weight: 600; color: var(--nv-charcoal); }
.cat-card .kind { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--nv-fg-4); margin-top: 4px; }
.cat-card .dist { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--nv-medium-blue); }

/* Getting here */
.getting-here {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 80px;
  align-items: start;
}
.getting-here h2 { margin-bottom: 18px; }
.getting-here p { font-size: 16px; color: var(--nv-fg-3); line-height: 1.7; margin-bottom: 16px; }
.routes {
  display: flex; flex-direction: column; gap: 0;
}
.route {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 0.5px solid var(--nv-border-soft);
  align-items: start;
}
.route:last-child { border-bottom: none; }
.route .icon {
  width: 44px; height: 44px;
  border-radius: var(--nv-radius-md);
  background: var(--nv-dark-teal-08);
  color: var(--nv-dark-teal);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.route .icon svg { width: 20px; height: 20px; }
.route h4 { font-family: var(--nv-font-display); font-size: 18px; font-weight: 700; color: var(--nv-dark-teal); margin-bottom: 6px; }
.route p { font-size: 14px; color: var(--nv-fg-3); margin-bottom: 0; }

@media (max-width: 1080px) {
  body { padding-top: 70px; }
  .page-hero { padding: 48px 24px 24px; }
  .map-block { padding: 24px 24px 48px; }
  .map-frame { height: 360px; }
  .categories { padding: 64px 24px; }
  .cat-grid { grid-template-columns: 1fr; }
  .getting-here { padding: 64px 24px; grid-template-columns: 1fr; gap: 32px; }
}


/* ============================================================
   Source: tours.html
   ============================================================ */

body { padding-top: 88px; }

.page-hero { background: var(--nv-bg-section); border-bottom: 0.5px solid var(--nv-hair-on-light); padding: 80px 48px 64px; }
.page-hero-inner { max-width: 1320px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px; align-items: end; }
.page-hero h1 { font-family: var(--nv-font-display); font-weight: 700; font-size: clamp(40px, 5.4vw, 76px); line-height: 1.02; letter-spacing: -0.025em; color: var(--nv-dark-teal); margin-top: 18px; text-wrap: balance; }
.page-hero h1 em { font-weight: 300; font-style: italic; color: var(--nv-medium-blue); }
.page-hero .lede { margin-top: 18px; }
.page-hero-img { aspect-ratio: 5 / 4; border-radius: var(--nv-radius-xl); overflow: hidden; }
.page-hero-img img { width: 100%; height: 100%; object-fit: cover; }
.crumb { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.12em; color: var(--nv-fg-4); display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.crumb a { color: var(--nv-medium-blue); }
.crumb a:hover { color: var(--nv-dark-teal); }
.crumb .sep { color: var(--nv-fg-5); }

.tour-grid {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.tour-card {
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-xl);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform 280ms var(--nv-ease), border-color 280ms var(--nv-ease), box-shadow 280ms var(--nv-ease);
}
.tour-card:hover { transform: translateY(-4px); border-color: var(--nv-dark-teal); box-shadow: var(--nv-shadow-md); }
.tour-photo { aspect-ratio: 4 / 3; overflow: hidden; }
.tour-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--nv-ease); }
.tour-card:hover .tour-photo img { transform: scale(1.05); }
.tour-body { padding: 28px; display: flex; flex-direction: column; gap: 14px; flex: 1; }
.tour-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--nv-medium-blue); }
.tour-body h3 { font-family: var(--nv-font-display); font-size: 22px; font-weight: 700; color: var(--nv-dark-teal); letter-spacing: -0.015em; }
.tour-body p { font-size: 14px; color: var(--nv-fg-3); line-height: 1.65; flex: 1; }
.tour-meta {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px solid var(--nv-border-soft);
}
.tour-price { font-family: var(--nv-font-display); font-size: 18px; font-weight: 700; color: var(--nv-dark-teal); letter-spacing: -0.015em; }
.tour-price small { display: block; font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 400; color: var(--nv-fg-4); letter-spacing: 0.12em; text-transform: uppercase; }
.tour-duration { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--nv-fg-3); letter-spacing: 0.06em; }

.note {
  max-width: 1320px;
  margin: 0 auto 96px;
  padding: 40px 48px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: center;
  background: var(--nv-bg-section);
  border-radius: var(--nv-radius-xl);
}
.note-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--nv-dark-teal);
  color: var(--nv-white);
  display: inline-flex; align-items: center; justify-content: center;
}
.note-icon svg { width: 24px; height: 24px; }
.note h4 { font-family: var(--nv-font-display); font-size: 20px; font-weight: 700; color: var(--nv-dark-teal); margin-bottom: 4px; }
.note p { font-size: 14px; color: var(--nv-fg-3); line-height: 1.6; max-width: 56ch; }

@media (max-width: 1080px) {
  body { padding-top: 70px; }
  .page-hero { padding: 64px 24px 48px; }
  .page-hero-inner { grid-template-columns: 1fr; gap: 32px; }
  .tour-grid { padding: 64px 24px; grid-template-columns: 1fr; }
  .note { margin: 0 24px 64px; padding: 24px; grid-template-columns: 1fr; gap: 16px; text-align: center; }
}


/* ============================================================
   Source: weddings.html
   ============================================================ */
body { padding-top: 0; }

.wed-hero {
  position: relative;
  height: 70vh;
  min-height: 540px;
  background: var(--nv-ink) url('https://demohotel.nuvho.com/wp-content/uploads/2021/01/Demo-Hotel-Nuvho-Weddings-4.jpg') center / cover;
  display: flex; align-items: end;
  overflow: hidden;
}
.wed-hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(13,37,48,0.30) 0%, rgba(13,37,48,0.85) 100%);
}
.wed-hero .wrap { position: relative; z-index: 2; padding-bottom: 80px; width: 100%; }
.wed-hero h1 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(48px, 7vw, 104px);
  line-height: 0.96;
  letter-spacing: -0.03em;
  color: var(--nv-white);
  text-wrap: balance;
  margin-top: 24px;
  max-width: 16ch;
}
.wed-hero h1 em { font-weight: 300; font-style: italic; color: var(--nv-light-teal); display: block; }
.wed-hero p {
  margin-top: 24px;
  font-size: 18px;
  color: rgba(255,255,255,0.78);
  max-width: 56ch;
  font-weight: 300;
  line-height: 1.65;
}

/* Two-block options */
.options {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.option {
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-xl);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: border-color 280ms var(--nv-ease), box-shadow 280ms var(--nv-ease);
}
.option:hover { border-color: var(--nv-dark-teal); box-shadow: var(--nv-shadow-md); }
.option-photo {
  aspect-ratio: 16 / 9;
  position: relative;
  overflow: hidden;
}
.option-photo img { width: 100%; height: 100%; object-fit: cover; }
.option-body {
  padding: 40px;
  display: flex; flex-direction: column; gap: 18px;
  flex: 1;
}
.option-body .eyebrow { color: var(--nv-medium-blue); }
.option-body h2 {
  font-family: var(--nv-font-display);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--nv-dark-teal);
  text-wrap: balance;
}
.option-body p {
  font-size: 15px;
  color: var(--nv-fg-3);
  line-height: 1.7;
}
.option-cap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid var(--nv-border-soft);
}
.cap-cell { display: flex; flex-direction: column; gap: 4px; }
.cap-cell .lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--nv-fg-4);
}
.cap-cell .val {
  font-family: var(--nv-font-display);
  font-size: 26px;
  font-weight: 700;
  color: var(--nv-dark-teal);
  letter-spacing: -0.02em;
  line-height: 1;
}
.cap-cell .val small {
  font-size: 12px;
  color: var(--nv-medium-blue);
  font-weight: 600;
}
.option-includes {
  list-style: none;
  display: flex; flex-direction: column; gap: 10px;
  margin-top: 8px;
}
.option-includes li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 14px;
  color: var(--nv-fg-3);
}
.option-includes li svg { width: 14px; height: 14px; color: var(--nv-dark-teal); flex-shrink: 0; margin-top: 4px; }
.option-cta { margin-top: auto; padding-top: 8px; display: flex; gap: 10px; flex-wrap: wrap; }

/* Capacity table */
.capacity {
  background: var(--nv-bg-section);
  border-top: 0.5px solid var(--nv-hair-on-light);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  padding: 96px 48px;
}
.capacity-inner { max-width: 1320px; margin: 0 auto; }
.cap-head { margin-bottom: 56px; max-width: 760px; display: flex; flex-direction: column; gap: 18px; }

.cap-table {
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-xl);
  overflow: hidden;
}
.cap-table table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--nv-font-body);
}
.cap-table thead {
  background: var(--nv-bg-section);
}
.cap-table th {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--nv-medium-blue);
  font-weight: 500;
  text-align: left;
  padding: 18px 24px;
  border-bottom: 1px solid var(--nv-border-soft);
}
.cap-table td {
  padding: 18px 24px;
  border-bottom: 0.5px solid var(--nv-border-soft);
  font-size: 14px;
  color: var(--nv-charcoal);
}
.cap-table td:first-child {
  font-family: var(--nv-font-display);
  font-weight: 600;
  color: var(--nv-dark-teal);
}
.cap-table tbody tr:last-child td { border-bottom: none; }
.cap-table tbody tr:hover { background: var(--nv-bg-section); }

/* Gallery */
.wed-gallery {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
}
.wed-gallery-head { margin-bottom: 40px; max-width: 760px; display: flex; flex-direction: column; gap: 18px; }
.wed-gallery-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: 280px 280px;
  gap: 14px;
}
.wed-gallery-grid figure {
  overflow: hidden;
  border-radius: var(--nv-radius-xl);
  position: relative;
}
.wed-gallery-grid img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--nv-ease);
}
.wed-gallery-grid figure:hover img { transform: scale(1.04); }
.wed-gallery-grid figure:nth-child(1) { grid-row: span 2; }
.wed-gallery-grid figure:nth-child(4) { grid-column: span 2; }

/* Enquiry form */
.enquire {
  background: var(--nv-dark-teal);
  color: var(--nv-white);
  padding: 96px 48px;
}
.enquire-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 80px;
  align-items: start;
}
.enquire-text h2 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-top: 18px;
  text-wrap: balance;
}
.enquire-text h2 em { font-weight: 300; font-style: italic; color: var(--nv-light-teal); }
.enquire-text p {
  margin-top: 18px;
  color: rgba(255,255,255,0.78);
  max-width: 48ch;
  line-height: 1.7;
}
.enquire-text .meta {
  margin-top: 32px;
  display: flex; flex-direction: column; gap: 12px;
  font-size: 14px;
}
.enquire-text .meta a {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--nv-white);
  transition: color 220ms var(--nv-ease);
}
.enquire-text .meta a:hover { color: var(--nv-light-teal); }
.enquire-text .meta svg { width: 16px; height: 16px; color: var(--nv-light-teal); }

.enquire-form {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--nv-radius-xl);
  padding: 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.enquire-form .field { display: flex; flex-direction: column; gap: 6px; }
.enquire-form .field.full { grid-column: span 2; }
.enquire-form label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
}
.enquire-form input,
.enquire-form select,
.enquire-form textarea {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--nv-radius-sm);
  padding: 12px 14px;
  font-size: 15px;
  color: var(--nv-white);
  font-family: var(--nv-font-body);
  outline: none;
  transition: border-color 220ms var(--nv-ease), background 220ms var(--nv-ease);
}
.enquire-form input::placeholder,
.enquire-form textarea::placeholder { color: rgba(255,255,255,0.4); }
.enquire-form input:focus,
.enquire-form select:focus,
.enquire-form textarea:focus { border-color: var(--nv-light-teal); background: rgba(255,255,255,0.10); }
.enquire-form textarea { resize: vertical; min-height: 120px; }
.enquire-form button {
  grid-column: span 2;
  margin-top: 8px;
  background: var(--nv-white);
  color: var(--nv-dark-teal);
  font-family: var(--nv-font-display);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.04em;
  padding: 16px;
  border-radius: var(--nv-radius-pill);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  transition: background 220ms var(--nv-ease), transform 220ms var(--nv-ease);
}
.enquire-form button:hover { background: var(--nv-light-teal); transform: translateY(-1px); }
.enquire-form .confirm-msg {
  grid-column: span 2;
  text-align: center;
  color: var(--nv-light-teal);
  font-size: 14px;
  font-family: 'JetBrains Mono', monospace;
}

@media (max-width: 1080px) {
  .wed-hero { height: 60vh; min-height: 460px; }
  .wed-hero .wrap { padding-bottom: 56px; padding-top: 88px; }
  .wed-hero h1 { font-size: clamp(34px, 7.4vw, 60px); line-height: 1.05; max-width: 18ch; }
  .wed-hero p { font-size: 16px; margin-top: 18px; line-height: 1.55; }
  .options { padding: 64px 20px; grid-template-columns: 1fr; gap: 18px; }
  .option-body { padding: 28px; }
  .capacity, .wed-gallery, .enquire { padding: 64px 20px; }
  .cap-table { overflow-x: auto; }
  .cap-table table { min-width: 520px; }
  .cap-table th, .cap-table td { padding: 14px 16px; }
  .wed-gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 220px 220px; }
  .wed-gallery-grid figure:nth-child(1) { grid-row: auto; grid-column: span 2; }
  .wed-gallery-grid figure:nth-child(4) { grid-column: auto; }
  .enquire-inner { grid-template-columns: 1fr; gap: 40px; }
  .enquire-form { grid-template-columns: 1fr; padding: 24px; }
  .enquire-form .field.full { grid-column: auto; }
  .enquire-form button { grid-column: auto; }
  .enquire-form .confirm-msg { grid-column: auto; }
}
@media (max-width: 480px) {
  .wed-hero { min-height: 420px; }
  .wed-hero h1 { font-size: clamp(28px, 8vw, 40px); }
  .wed-hero p { font-size: 15px; }
  .wed-gallery-grid { grid-template-columns: 1fr; grid-template-rows: 200px 200px 200px 200px; }
  .wed-gallery-grid figure:nth-child(1) { grid-column: auto; }
  .option-body { padding: 22px; }
}


/* ============================================================
   Source: meet.html
   ============================================================ */

body { padding-top: 88px; }

.page-hero { background: var(--nv-bg-section); border-bottom: 0.5px solid var(--nv-hair-on-light); padding: 80px 48px 64px; }
.page-hero-inner { max-width: 1320px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px; align-items: end; }
.page-hero h1 { font-family: var(--nv-font-display); font-weight: 700; font-size: clamp(40px, 5.4vw, 76px); line-height: 1.02; letter-spacing: -0.025em; color: var(--nv-dark-teal); margin-top: 18px; text-wrap: balance; }
.page-hero h1 em { font-weight: 300; font-style: italic; color: var(--nv-medium-blue); }
.page-hero .lede { margin-top: 18px; }
.page-hero-img { aspect-ratio: 5 / 4; border-radius: var(--nv-radius-xl); overflow: hidden; }
.page-hero-img img { width: 100%; height: 100%; object-fit: cover; }
.crumb { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.12em; color: var(--nv-fg-4); display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.crumb a { color: var(--nv-medium-blue); }
.crumb a:hover { color: var(--nv-dark-teal); }
.crumb .sep { color: var(--nv-fg-5); }

.feature-grid {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.feature-card {
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-xl);
  padding: 36px;
  display: flex; flex-direction: column; gap: 16px;
  transition: transform 280ms var(--nv-ease), border-color 280ms var(--nv-ease), box-shadow 280ms var(--nv-ease);
}
.feature-card:hover { transform: translateY(-4px); border-color: var(--nv-dark-teal); box-shadow: var(--nv-shadow-md); }
.feature-card .icon {
  width: 52px; height: 52px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--nv-radius-md);
  background: var(--nv-dark-teal-08);
  color: var(--nv-dark-teal);
}
.feature-card .icon svg { width: 24px; height: 24px; }
.feature-card h3 { font-family: var(--nv-font-display); font-size: 22px; font-weight: 700; color: var(--nv-dark-teal); letter-spacing: -0.015em; }
.feature-card p { font-size: 14px; color: var(--nv-fg-3); line-height: 1.65; }
.feature-card .tag {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--nv-medium-blue);
  padding: 4px 10px;
  background: var(--nv-medium-blue-15);
  border-radius: var(--nv-radius-pill);
  margin-top: auto;
  align-self: flex-start;
}

.crossover {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 48px 96px;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 64px;
  align-items: center;
}
.crossover-img { aspect-ratio: 5 / 4; border-radius: var(--nv-radius-xl); overflow: hidden; }
.crossover-img img { width: 100%; height: 100%; object-fit: cover; }
.crossover h2 { margin-bottom: 18px; }
.crossover p { font-size: 16px; color: var(--nv-fg-3); line-height: 1.7; margin-bottom: 16px; }
.crossover .actions { margin-top: 24px; display: flex; gap: 12px; flex-wrap: wrap; }

@media (max-width: 1080px) {
  body { padding-top: 70px; }
  .page-hero { padding: 64px 24px 48px; }
  .page-hero-inner { grid-template-columns: 1fr; gap: 32px; }
  .feature-grid { padding: 64px 24px; grid-template-columns: 1fr; }
  .crossover { padding: 0 24px 64px; grid-template-columns: 1fr; gap: 32px; }
}


/* ============================================================
   Source: contact.html
   ============================================================ */
/* contact.html — page-local hero + intro */
.contact-hero {
  position: relative;
  height: 56vh;
  min-height: 420px;
  overflow: hidden;
  background: var(--nv-ink);
}
.contact-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url('https://demohotel.nuvho.com/wp-content/uploads/2021/01/Demo-Hotel-Nuvho-Restaurant.jpg');
  background-size: cover;
  background-position: center;
  filter: brightness(0.78);
}
.contact-hero::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(13,37,48,0.20) 0%, rgba(13,37,48,0.55) 60%, rgba(13,37,48,0.92) 100%);
}
.contact-hero-inner {
  position: relative;
  z-index: 2;
  height: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 48px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 56px;
}
.contact-hero h1 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(44px, 6vw, 84px);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--nv-white);
  margin: 16px 0;
  text-wrap: balance;
}
.contact-hero h1 em { font-weight: 300; font-style: italic; color: var(--nv-light-teal); display: block; }
.contact-hero .deck {
  font-size: 17px;
  color: rgba(255,255,255,0.78);
  max-width: 54ch;
  font-weight: 300;
  line-height: 1.7;
}

.contact-intro {
  padding: 96px 48px 16px;
  background: var(--nv-bg-page);
  text-align: center;
}
.contact-intro-inner {
  max-width: 760px;
  margin: 0 auto;
  display: flex; flex-direction: column; gap: 16px;
  align-items: center;
}
.contact-intro h2 { max-width: 22ch; }

.crumb-band {
  background: var(--nv-bg-page);
  padding: 110px 48px 0;
}
.crumb {
  max-width: 1320px;
  margin: 0 auto;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--nv-fg-4);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.crumb a { color: var(--nv-medium-blue); }
.crumb .sep { opacity: 0.5; }

@media (max-width: 1080px) {
  .contact-hero-inner { padding: 0 24px 40px; }
  .contact-intro { padding: 64px 24px 16px; }
  .crumb-band { padding: 96px 24px 0; }
}
@media (max-width: 480px) {
  .contact-hero h1 { font-size: clamp(32px, 9vw, 52px); }
  .contact-intro { padding: 48px 16px 8px; }
  .crumb-band { padding: 88px 16px 0; }
}


/* ============================================================
   Source: sitemap.html
   ============================================================ */
.sitemap-hero {
  padding: 160px 48px 40px;
  background: var(--nv-bg-section);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
}
.sitemap-hero-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex; flex-direction: column; gap: 14px;
}
.sitemap-hero h1 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(40px, 5vw, 64px);
  line-height: 1.04;
  letter-spacing: -0.025em;
  color: var(--nv-dark-teal);
}
.sitemap-hero p {
  font-size: 16px;
  color: var(--nv-fg-3);
  max-width: 60ch;
}
@media (max-width: 768px) {
  .sitemap-hero { padding: 120px 20px 32px; }
}


/* ============================================================
   Source: rooms/standard.html
   ============================================================ */

/* ============================================================
   rooms/standard.html — page-local
   Hero (room-specific) · floating booking bar · breadcrumb ·
   overview · gallery · amenities (19 cards) · floor plan ·
   rates · related rooms
   ============================================================ */

/* ---------- Hero ---------- */
.room-hero-wrap { position: relative; }
.room-hero {
  position: relative;
  height: 100vh;
  min-height: 580px;
  overflow: hidden;
  background: var(--nv-ink) url('https://demohotel.nuvho.com/wp-content/uploads/2021/04/Nuvho-Demo-Standard-Room.jpg') center / cover;
  display: flex; align-items: end;
}
.room-hero::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(13,37,48,0.12) 0%, rgba(13,37,48,0.42) 60%, rgba(13,37,48,0.65) 100%),
    linear-gradient(90deg, rgba(13,37,48,0.32) 0%, rgba(13,37,48,0.08) 60%, rgba(13,37,48,0.05) 100%);
}
.room-hero .wrap { position: relative; z-index: 2; padding-bottom: 30vh; width: 100%; }
.room-hero .room-no {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(128,185,191,0.9);
  display: inline-flex; align-items: center; gap: 14px;
  margin-bottom: 24px;
}
.room-hero .room-no::before {
  content: ""; width: 28px; height: 1px; background: var(--nv-light-teal);
}
.room-hero h1 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(40px, 5.2vw, 80px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--nv-white);
  text-wrap: balance;
  max-width: 22ch;
}
.room-hero h1 em { font-weight: 300; font-style: italic; color: var(--nv-light-teal); display: block; }
.room-hero p {
  margin-top: 22px;
  font-size: 17px;
  color: rgba(255,255,255,0.78);
  max-width: 54ch;
  font-weight: 300;
  line-height: 1.6;
}

/* ---------- Booking bar ---------- */
.book-bar-shell {
  position: absolute;
  left: 0; right: 0;
  bottom: 10vh;
  z-index: 10;
  padding: 0 48px;
}
.book-bar-shell .skin-toggle {
  max-width: 1320px;
  margin: 0 auto 12px;
  display: flex;
  justify-content: center;
}
.skin-toggle .group {
  display: inline-flex;
  background: rgba(13,37,48,0.45);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--nv-radius-pill);
  padding: 4px;
  gap: 4px;
}
.skin-toggle .group span {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  padding: 8px 14px;
  align-self: center;
}
.skin-toggle button {
  font-family: var(--nv-font-display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
  padding: 8px 16px;
  border-radius: var(--nv-radius-pill);
  transition: background 220ms var(--nv-ease), color 220ms var(--nv-ease);
}
.skin-toggle button:hover { color: var(--nv-white); }
.skin-toggle button.active { background: var(--nv-white); color: var(--nv-dark-teal); }

.book-bar {
  max-width: 1320px;
  margin: 0 auto;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.4);
  border-radius: 18px;
  box-shadow: 0 24px 80px -24px rgba(13,37,48,0.55);
  padding: 8px;
  display: grid;
  grid-template-columns: 1.2fr 1.2fr 1fr 1fr 1fr auto;
  align-items: stretch;
  transition: background 320ms var(--nv-ease), border-color 320ms var(--nv-ease);
}
.book-bar .field {
  position: relative;
  padding: 14px 22px;
  display: flex; flex-direction: column; justify-content: center;
  gap: 4px;
  border-radius: 12px;
  cursor: pointer;
  transition: background 200ms var(--nv-ease);
}
.book-bar .field:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0; top: 18%; bottom: 18%;
  width: 1px;
  background: var(--nv-border-soft);
  transition: background 320ms var(--nv-ease);
}
.book-bar .field:hover, .book-bar .field:focus-within { background: var(--nv-bg-section); }
.book-bar .field .lbl {
  font-family: var(--nv-font-display);
  font-size: 9px; font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--nv-medium-blue);
  display: flex; align-items: center; gap: 6px;
}
.book-bar .field .lbl svg { width: 12px; height: 12px; }
.book-bar .field input,
.book-bar .field .v {
  font-family: var(--nv-font-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--nv-charcoal);
  border: none; outline: none; background: transparent;
  width: 100%; padding: 0;
}
.book-bar .submit { display: flex; align-items: stretch; padding: 4px; }
.book-bar .submit button {
  background: var(--nv-dark-teal);
  color: var(--nv-white);
  font-family: var(--nv-font-display);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.04em;
  padding: 0 28px;
  border-radius: 12px;
  display: inline-flex; align-items: center; gap: 10px;
  transition: background 200ms var(--nv-ease);
  white-space: nowrap;
}
.book-bar .submit button:hover { background: #1a566a; }
.book-bar .submit button svg { width: 16px; height: 16px; }

/* Cinematic skin */
.book-bar.skin-cinematic {
  background: rgba(13,37,48,0.72);
  backdrop-filter: blur(20px);
  border-color: rgba(255,255,255,0.18);
  box-shadow: 0 24px 80px -24px rgba(0,0,0,0.6);
}
.book-bar.skin-cinematic .field:not(:last-child)::after { background: rgba(255,255,255,0.18); }
.book-bar.skin-cinematic .field:hover,
.book-bar.skin-cinematic .field:focus-within { background: rgba(255,255,255,0.06); }
.book-bar.skin-cinematic .field .lbl {
  font-family: 'JetBrains Mono', monospace;
  color: rgba(128,185,191,0.85);
  letter-spacing: 0.22em;
}
.book-bar.skin-cinematic .field input,
.book-bar.skin-cinematic .field .v { color: var(--nv-white); }

/* Custom select */
.cs-field { position: relative; }
.cs-trigger {
  font-family: var(--nv-font-body);
  font-size: 15px; font-weight: 500;
  color: var(--nv-charcoal);
  background: transparent;
  border: none; padding: 0;
  text-align: left;
  width: 100%;
  cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px;
  min-height: 22px;
}
.cs-trigger::after {
  content: "";
  width: 7px; height: 7px;
  border-right: 1.5px solid var(--nv-medium-blue);
  border-bottom: 1.5px solid var(--nv-medium-blue);
  transform: rotate(45deg) translateY(-2px);
  transition: transform 220ms var(--nv-ease);
  flex-shrink: 0;
}
.cs-field.open .cs-trigger::after { transform: rotate(-135deg) translateY(2px); }
.cs-list {
  position: absolute;
  top: calc(100% + 10px);
  left: 8px; right: 8px;
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-lg);
  box-shadow: 0 24px 56px -24px rgba(40,104,127,0.25);
  list-style: none;
  padding: 6px;
  max-height: 280px;
  overflow-y: auto;
  z-index: 30;
  opacity: 0; visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 220ms var(--nv-ease), transform 220ms var(--nv-ease), visibility 220ms;
}
.cs-field.open .cs-list { opacity: 1; visibility: visible; transform: translateY(0); }
.cs-list li {
  padding: 10px 14px;
  border-radius: var(--nv-radius-sm);
  font-family: var(--nv-font-body);
  font-size: 14px;
  color: var(--nv-charcoal);
  cursor: pointer;
  transition: background 180ms var(--nv-ease);
}
.cs-list li:hover { background: var(--nv-bg-section); }
.cs-list li[aria-selected="true"] { background: var(--nv-dark-teal-08); color: var(--nv-dark-teal); font-weight: 600; }

.book-bar.skin-cinematic .cs-trigger { color: var(--nv-white); }
.book-bar.skin-cinematic .cs-trigger::after { border-right-color: rgba(128,185,191,0.85); border-bottom-color: rgba(128,185,191,0.85); }
.book-bar.skin-cinematic .cs-list {
  background: rgba(13,37,48,0.96);
  backdrop-filter: blur(20px);
  border-color: rgba(255,255,255,0.18);
}
.book-bar.skin-cinematic .cs-list li { color: rgba(255,255,255,0.85); }
.book-bar.skin-cinematic .cs-list li:hover { background: rgba(255,255,255,0.08); }
.book-bar.skin-cinematic .cs-list li[aria-selected="true"] { background: rgba(128,185,191,0.18); color: var(--nv-light-teal); }

/* Flatpickr theme */
.flatpickr-input { cursor: pointer !important; }
.flatpickr-calendar {
  font-family: var(--nv-font-body);
  border-radius: var(--nv-radius-lg);
  box-shadow: 0 24px 56px -24px rgba(40,104,127,0.30);
  border: 1px solid var(--nv-border-soft);
  width: 322px; padding: 8px;
}
.flatpickr-current-month { padding-top: 4px; font-size: 16px; color: var(--nv-dark-teal); font-family: var(--nv-font-display); font-weight: 700; }
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year { color: var(--nv-dark-teal) !important; font-family: var(--nv-font-display); font-weight: 700; }
.flatpickr-prev-month, .flatpickr-next-month { fill: var(--nv-dark-teal) !important; padding: 8px !important; border-radius: 50%; transition: background 220ms var(--nv-ease); }
.flatpickr-prev-month:hover, .flatpickr-next-month:hover { background: var(--nv-bg-section); }
span.flatpickr-weekday { color: var(--nv-medium-blue); font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 500; }
.flatpickr-day { color: var(--nv-charcoal); border-radius: var(--nv-radius-sm); border: 1px solid transparent; max-width: 40px; height: 38px; line-height: 36px; }
.flatpickr-day:hover { background: var(--nv-bg-section); border-color: var(--nv-bg-section); }
.flatpickr-day.today { border-color: var(--nv-medium-blue); color: var(--nv-dark-teal); font-weight: 600; }
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.startRange, .flatpickr-day.startRange:hover { background: var(--nv-dark-teal); border-color: var(--nv-dark-teal); color: var(--nv-white); }
.flatpickr-day.inRange, .flatpickr-day.inRange:hover { background: var(--nv-dark-teal); border-color: var(--nv-dark-teal); color: var(--nv-white); box-shadow: -5px 0 0 var(--nv-dark-teal), 5px 0 0 var(--nv-dark-teal); }
.flatpickr-day.endRange, .flatpickr-day.endRange:hover, .flatpickr-day.endRange.today { background: var(--nv-light-teal); border-color: var(--nv-light-teal); color: var(--nv-white); }
.flatpickr-calendar.multiMonth { width: 644px !important; }
.flatpickr-calendar.multiMonth .flatpickr-days { width: 100%; }

/* ---------- Breadcrumb ---------- */
.crumb-band {
  margin-top: 116px;
  padding: 28px 48px 0;
}
.crumb {
  max-width: 1320px;
  margin: 0 auto;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--nv-fg-4);
  display: flex; align-items: center; gap: 10px;
}
.crumb a { color: var(--nv-medium-blue); transition: color 220ms var(--nv-ease); }
.crumb a:hover { color: var(--nv-dark-teal); }
.crumb .sep { color: var(--nv-fg-5); }

/* ---------- Overview ---------- */
.overview {
  max-width: 1320px;
  margin: 0 auto;
  padding: 64px 48px 96px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 80px;
  align-items: start;
}
.overview h2 {
  font-family: var(--nv-font-display);
  font-weight: 700;
  font-size: clamp(36px, 4.8vw, 62px);
  line-height: 1.06;
  letter-spacing: -0.025em;
  color: var(--nv-dark-teal);
  text-wrap: balance;
  margin-bottom: 24px;
}
.overview h2 em { font-weight: 300; font-style: italic; color: var(--nv-medium-blue); }
.overview .narrative .room-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--nv-medium-blue);
  text-transform: uppercase;
  margin-bottom: 18px;
  display: inline-block;
}
.overview .narrative p {
  font-size: 17px; line-height: 1.75;
  color: var(--nv-fg-3);
  margin-bottom: 18px; max-width: 56ch;
}
.overview .narrative p:first-of-type::first-letter {
  font-family: var(--nv-font-display);
  font-size: 56px; font-weight: 700;
  color: var(--nv-dark-teal);
  float: left; line-height: 0.9;
  padding-right: 12px; padding-top: 6px;
}
.spec-sheet {
  background: var(--nv-bg-card);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-lg);
  padding: 32px;
  position: sticky;
  top: 100px;
  box-shadow: var(--nv-shadow-sm);
}
.spec-sheet h4 {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em;
  color: var(--nv-medium-blue);
  text-transform: uppercase;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--nv-border-soft);
}
.spec-sheet dl {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 14px 16px;
  margin-top: 18px;
  font-size: 14px;
}
.spec-sheet dt { color: var(--nv-fg-4); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; }
.spec-sheet dd { color: var(--nv-charcoal); }
.spec-sheet .price-block {
  margin-top: 24px; padding-top: 22px;
  border-top: 1px solid var(--nv-border-soft);
  display: flex; align-items: baseline; gap: 8px;
}
.spec-sheet .price { font-family: var(--nv-font-display); font-size: 36px; font-weight: 700; color: var(--nv-dark-teal); letter-spacing: -0.02em; }
.spec-sheet .price-from { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--nv-fg-4); letter-spacing: 0.12em; text-transform: uppercase; }
.spec-sheet .reserve-cta { margin-top: 18px; width: 100%; }

/* ---------- Gallery (now lower in the page) ---------- */
.gallery-section {
  background: var(--nv-bg-section);
  border-top: 0.5px solid var(--nv-hair-on-light);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  padding: 96px 0;
}
.gallery-head {
  max-width: 1320px;
  margin: 0 auto 40px;
  padding: 0 48px;
  display: flex; flex-direction: column; gap: 18px;
  max-width: 760px;
}
.gallery {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 48px;
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 14px;
  height: 580px;
}
.gallery .gx-lead { grid-column: 1; }
.gallery .gx { position: relative; overflow: hidden; border-radius: var(--nv-radius-xl); cursor: zoom-in; background: var(--nv-bg-card); border: none; padding: 0; grid-row: span 1; }
.gallery .gx-lead { grid-row: span 2; }
.gallery .gx img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--nv-ease); }
.gallery .gx:hover img { transform: scale(1.04); }
.gallery .gx-more {
  position: absolute; right: 16px; bottom: 16px;
  background: rgba(255,255,255,0.95); color: var(--nv-dark-teal);
  font-family: var(--nv-font-display); font-weight: 600;
  font-size: 12px; letter-spacing: 0.04em;
  padding: 10px 16px;
  border-radius: var(--nv-radius-pill);
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid rgba(255,255,255,0.5);
}
.gallery .gx-more svg { width: 14px; height: 14px; }

/* ---------- Amenities (19 cards) ---------- */
.amenities {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
}
.amenities-head { margin-bottom: 56px; max-width: 760px; display: flex; flex-direction: column; gap: 18px; }
.amenities-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.amenity {
  background: var(--nv-white);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-lg);
  padding: 22px;
  display: flex; align-items: center; gap: 16px;
  transition: transform 220ms var(--nv-ease), border-color 220ms var(--nv-ease), box-shadow 220ms var(--nv-ease);
}
.amenity:hover { transform: translateY(-3px); border-color: var(--nv-border-teal); box-shadow: var(--nv-shadow-sm); }
.amenity .icon {
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--nv-radius-md);
  background: var(--nv-dark-teal-08);
  color: var(--nv-dark-teal);
  flex-shrink: 0;
}
.amenity .icon svg { width: 20px; height: 20px; }
.amenity .label {
  font-family: var(--nv-font-display);
  font-size: 14px;
  font-weight: 600;
  color: var(--nv-charcoal);
  letter-spacing: -0.005em;
  line-height: 1.3;
}

/* ---------- Floor plan ---------- */
.floor {
  background: var(--nv-bg-section);
  border-top: 0.5px solid var(--nv-hair-on-light);
  border-bottom: 0.5px solid var(--nv-hair-on-light);
  padding: 96px 48px;
}
.floor-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 64px;
  align-items: center;
}
.floor-svg {
  background: var(--nv-bg-card);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-lg);
  padding: 32px;
  aspect-ratio: 4 / 3;
  display: flex; align-items: center; justify-content: center;
}
.floor-svg svg { width: 100%; height: 100%; }
.floor h2 { margin-bottom: 18px; }
.floor ul { list-style: none; display: grid; gap: 14px; margin-top: 24px; }
.floor ul li { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; color: var(--nv-fg-3); line-height: 1.55; }
.floor ul li svg { width: 16px; height: 16px; color: var(--nv-dark-teal); flex-shrink: 0; margin-top: 4px; }

/* ---------- Rates ---------- */
.rates {
  max-width: 1320px;
  margin: 0 auto;
  padding: 96px 48px;
}
.rates .rates-head { margin-bottom: 48px; max-width: 760px; display: flex; flex-direction: column; gap: 18px; }
.rate-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.rate-card {
  background: var(--nv-bg-card);
  border: 1px solid var(--nv-border-soft);
  border-radius: var(--nv-radius-lg);
  padding: 32px;
  display: flex; flex-direction: column; gap: 18px;
  transition: border-color 220ms var(--nv-ease), transform 220ms var(--nv-ease), box-shadow 220ms var(--nv-ease);
  position: relative;
}
.rate-card:hover { border-color: var(--nv-dark-teal); transform: translateY(-3px); box-shadow: var(--nv-shadow-md); }
.rate-card.featured { border-color: var(--nv-dark-teal); background: linear-gradient(180deg, var(--nv-bg-card), var(--nv-bg-section)); }
.rate-card.featured::before {
  content: "Most chosen";
  position: absolute;
  top: -12px; left: 24px;
  background: var(--nv-dark-teal);
  color: var(--nv-white);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: var(--nv-radius-pill);
}
.rate-card h4 { font-family: var(--nv-font-display); font-size: 24px; font-weight: 700; color: var(--nv-dark-teal); letter-spacing: -0.015em; }
.rate-card .rate-price { display: flex; align-items: baseline; gap: 6px; }
.rate-card .rate-price .num { font-family: var(--nv-font-display); font-size: 40px; font-weight: 700; color: var(--nv-charcoal); letter-spacing: -0.025em; line-height: 1; }
.rate-card .rate-price .from { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--nv-fg-4); letter-spacing: 0.1em; text-transform: uppercase; }
.rate-card ul { list-style: none; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--nv-border-soft); padding-top: 20px; }
.rate-card ul li { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--nv-fg-3); line-height: 1.5; }
.rate-card ul li svg { width: 14px; height: 14px; color: var(--nv-dark-teal); flex-shrink: 0; margin-top: 4px; }
.rate-card ul li.muted { color: var(--nv-fg-5); }
.rate-card ul li.muted svg { color: var(--nv-fg-5); }
.rate-card .rate-cta { margin-top: auto; width: 100%; }

/* ---------- Related ---------- */
.related {
  background: var(--nv-bg-section);
  border-top: 0.5px solid var(--nv-hair-on-light);
  padding: 96px 48px;
}
.related-inner { max-width: 1320px; margin: 0 auto; }
.related-head { margin-bottom: 48px; max-width: 760px; display: flex; flex-direction: column; gap: 18px; }
.related-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.related-card { position: relative; display: block; height: 360px; border-radius: var(--nv-radius-xl); overflow: hidden; isolation: isolate; transition: transform 320ms var(--nv-ease), box-shadow 320ms var(--nv-ease); }
.related-card:hover { transform: translateY(-3px); box-shadow: 0 24px 56px -28px rgba(13,37,48,0.4); }
.related-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--nv-ease); }
.related-card:hover img { transform: scale(1.06); }
.related-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,37,48,0) 30%, rgba(13,37,48,0.85) 100%); }
.related-card .info { position: absolute; left: 28px; right: 28px; bottom: 28px; z-index: 2; color: var(--nv-white); }
.related-card .info .num { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: rgba(255,255,255,0.7); letter-spacing: 0.18em; text-transform: uppercase; }
.related-card .info h3 { font-family: var(--nv-font-display); font-size: 26px; font-weight: 700; margin-top: 6px; letter-spacing: -0.015em; }
.related-card .info .meta { display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px; padding-top: 12px; border-top: 0.5px solid rgba(255,255,255,0.18); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.7); }
.related-card .info .price { color: var(--nv-light-teal); font-family: var(--nv-font-display); font-size: 16px; font-weight: 700; letter-spacing: -0.01em; text-transform: none; }

/* ---------- Mobile sticky reserve ---------- */
.mobile-reserve { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: var(--nv-white); border-top: 1px solid var(--nv-border-soft); box-shadow: 0 -8px 24px rgba(13,37,48,0.08); padding: 12px 16px; align-items: center; gap: 12px; }
.mobile-reserve .name { font-family: var(--nv-font-display); font-size: 14px; font-weight: 700; color: var(--nv-dark-teal); flex: 1; line-height: 1.2; }
.mobile-reserve .name small { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--nv-fg-4); font-weight: 400; letter-spacing: 0.1em; text-transform: uppercase; margin-top: 2px; }

/* ---------- Lightbox ---------- */
.lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(13,37,48,0.95); display: none; align-items: center; justify-content: center; padding: 24px; }
.lightbox.open { display: flex; }
.lightbox-img { max-width: 92%; max-height: 88%; object-fit: contain; border-radius: var(--nv-radius-md); }
.lightbox-close, .lightbox-prev, .lightbox-next { position: absolute; width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.25); color: var(--nv-white); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background 220ms var(--nv-ease); }
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover { background: rgba(255,255,255,0.20); }
.lightbox-close { top: 24px; right: 24px; }
.lightbox-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 24px; top: 50%; transform: translateY(-50%); }
.lightbox-counter { position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); font-family: 'JetBrains Mono', monospace; font-size: 12px; color: rgba(255,255,255,0.7); letter-spacing: 0.18em; }
.lightbox svg { width: 18px; height: 18px; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .room-hero { height: auto; min-height: 520px; padding: 96px 0 56px; }
  .room-hero .wrap { padding-bottom: 0; padding-top: 0; }
  .room-hero h1 { font-size: clamp(34px, 7.8vw, 58px); line-height: 1.05; max-width: 20ch; }
  .room-hero p { font-size: 16px; margin-top: 18px; line-height: 1.55; }
  .book-bar-shell { position: static; bottom: auto; padding: 24px 20px 0; }
  .book-bar { grid-template-columns: 1fr 1fr; }
  .book-bar .field:nth-child(odd)::after { display: none; }
  .book-bar .field { border-bottom: 0.5px solid var(--nv-border-soft); border-radius: 0; }
  .book-bar.skin-cinematic .field { border-bottom-color: rgba(255,255,255,0.18); }
  .book-bar .field:nth-last-child(2), .book-bar .field:nth-last-child(3) { border-bottom: none; }
  .book-bar .submit { grid-column: span 2; padding: 12px 4px; }
  .book-bar .submit button { width: 100%; padding: 16px; }
  .crumb-band { margin-top: 32px; padding: 20px 20px 0; }
  .overview { padding: 48px 24px 64px; grid-template-columns: 1fr; gap: 40px; }
  .spec-sheet { position: static; }
  .gallery-section { padding: 64px 0; }
  .gallery-head, .gallery { padding-left: 24px; padding-right: 24px; }
  .gallery { height: auto; grid-template-columns: 1fr; grid-template-rows: 360px 240px; }
  .gallery .gx-lead { grid-row: auto; }
  .gallery .gx:nth-child(n+3) { display: none; }
  .amenities, .rates { padding: 64px 24px; }
  .amenities-grid { grid-template-columns: repeat(2, 1fr); }
  .floor { padding: 64px 24px; }
  .floor-inner { grid-template-columns: 1fr; gap: 32px; }
  .floor-svg { aspect-ratio: 16 / 10; }
  .rate-cards { grid-template-columns: 1fr; }
  .related { padding: 64px 24px; }
  .related-grid { grid-template-columns: 1fr; }
  .related-card { height: 300px; }
}
@media (max-width: 768px) {
  .mobile-reserve { display: flex; }
  body { padding-bottom: 80px; }
  .amenities-grid { grid-template-columns: 1fr; }
}
