/* Per-tier listing card layouts. All tokens scoped under .card so they
   don't touch the global theme. Markup is produced by assets/tier-card.js. */

.card.t-budget, .card.t-entry, .card.t-lux, .card.t-ultra {
  --c-ink:#1a1916;
  --c-ink-2:#3a352f;
  --c-muted:#7c756c;
  --c-muted-2:#9a938a;
  --c-line: rgba(26,25,22,.10);

  --c-sage:#2f8a63;
  --c-blue:#3a66a8;
  --c-gold:#9a7b4f;
  --c-cream:#faf6ee;
  --c-dark:#16140f;
  --c-dark-gold:#cbab74;
  --c-dark-accent:#a39378;
  --c-dark-cream:#efe8da;
  --c-dark-muted:#9c9384;

  --c-serif:"Marcellus", Georgia, serif;
  --c-sans:"Manrope", "Inter", system-ui, sans-serif;
  --c-grotesk:"Archivo", system-ui, sans-serif;

  display: block;
  width: 100%;
  position: relative;
  overflow: hidden;
  background: #fff;
  text-decoration: none;
  color: var(--c-ink);
  border: 0;
  cursor: pointer;
  transition: transform .35s var(--ease, cubic-bezier(.22,1,.36,1)),
              box-shadow .35s var(--ease, cubic-bezier(.22,1,.36,1));
}
.card.t-budget:hover, .card.t-entry:hover, .card.t-lux:hover, .card.t-ultra:hover {
  transform: translateY(-3px);
}

/* Shared internals */
.card.t-budget .media, .card.t-entry .media, .card.t-lux .media, .card.t-ultra .media { position: relative; overflow: hidden; }
.card.t-budget .ph,    .card.t-entry .ph,    .card.t-lux .ph,    .card.t-ultra .ph    { display: block; width: 100%; height: 188px; object-fit: cover; }

/* In-card photo carousel rail */
.card .media__rail {
  display: flex;
  width: 100%;
  transition: transform .35s cubic-bezier(.22, 1, .36, 1);
  will-change: transform;
}
.card .media__rail > .ph { flex: 0 0 100%; width: 100%; }

/* Prev / next arrows on the image */
.card .media-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  color: #1a1916;
  border: 0; padding: 0;
  display: grid; place-items: center;
  cursor: pointer;
  font-size: 20px; line-height: 1; font-weight: 500;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);
  opacity: 0;
  z-index: 3;
  transition: opacity .2s, transform .2s, background .2s;
}
.card:hover .media-arrow { opacity: 1; }
.card .media-arrow:hover { transform: translateY(-50%) scale(1.08); background: #fff; }
.card .media-arrow:active { transform: translateY(-50%) scale(.95); }
.card .media-arrow--prev { left: 12px; }
.card .media-arrow--next { right: 12px; }
.card.t-lux .media-arrow--prev { left: 18px; }     /* the cream media padding shifts arrows in */
.card.t-lux .media-arrow--next { right: 18px; }
@media (hover: none) { .card .media-arrow { opacity: 1; } }   /* touch devices: always visible */

/* Dot indicators */
.card .media__dots {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  display: flex;
  gap: 5px;
  z-index: 3;
  pointer-events: none;
}
.card.t-lux .media__dots { bottom: 18px; }
.card .media__dots .dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
  transition: background .2s, transform .2s;
}
.card .media__dots .dot.is-on { background: #fff; transform: scale(1.45); }

.card .heart {
  position: absolute; top: 13px; right: 13px;
  width: 34px; height: 34px;
  border: 0; padding: 0; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer;
  -webkit-appearance: none; appearance: none;
  background: transparent;
  transition: transform .22s cubic-bezier(.34,1.56,.64,1);
  z-index: 2;
}
.card .heart:hover { transform: scale(1.12); }
.card .heart:active { transform: scale(.96); }
.card .heart svg {
  width: 19px; height: 19px;
  fill: none; stroke: #fff; stroke-width: 1.7; stroke-linejoin: round;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.28)) drop-shadow(0 0 6px rgba(0,0,0,.22));
}
.card .heart.is-on svg { fill: #fff; stroke: #fff; }

.card .badge {
  position: absolute; top: 13px; left: 13px;
  display: flex; align-items: center; gap: 9px;
  padding: 6px 11px 6px 9px;
  border-radius: 100px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 2;
}
.card .badge .label {
  font-family: var(--c-grotesk);
  font-size: 10.5px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  white-space: nowrap;
}
.card .pips { display: flex; align-items: center; gap: 3px; }
.card .pips i { width: 4px; height: 10px; border-radius: 2px; display: block; }

.card .name { margin: 0; }
.card .rating {
  display: flex; align-items: center; gap: 5px;
  font-family: var(--c-grotesk);
  font-size: 13px; font-weight: 600;
  white-space: nowrap;
}
.card .rating svg { width: 14px; height: 14px; }
.card .rating .rev { font-weight: 500; }

.card .loc {
  display: flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: 500;
  font-family: var(--c-sans);
}
.card .loc svg { width: 13px; height: 13px; }

.card .toprow {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px;
}
.card .specs { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.card .spec  {
  display: flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: 500; white-space: nowrap;
  flex: 0 0 auto; font-family: var(--c-sans);
}
.card .spec svg { width: 15px; height: 15px; flex: 0 0 auto; }

.card .hair { height: 1px; border: 0; margin: 0; }

.card .priceRow {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 10px;
}
.card .price { font-family: var(--c-sans); }
.card .price small { font-weight: 500; }
.card .price .total {
  display: block;
  font-size: 11.5px;
  color: var(--c-muted);
  font-weight: 500;
  margin-top: 2px;
}

/* ─────────────────────────────────────────────────────────────────────
   TIER 1 — BUDGET  (light · sans · sage · pill "View")
   ───────────────────────────────────────────────────────────────────── */
.card.t-budget {
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(26,25,22,.04), 0 14px 30px -22px rgba(26,25,22,.28);
}
.card.t-budget .badge { background: rgba(255,255,255,.92); box-shadow: 0 3px 10px rgba(0,0,0,.1); }
.card.t-budget .badge .label { color: var(--c-sage); }
.card.t-budget .pips i { background: rgba(47,138,99,.24); }
.card.t-budget .pips i.on { background: var(--c-sage); }
.card.t-budget .body { padding: 15px 16px 16px; }
.card.t-budget .toprow { margin-bottom: 4px; }
.card.t-budget .name { font-family: var(--c-serif); font-size: 21px; font-weight: 400; line-height: 1.1; letter-spacing: -.005em; }
.card.t-budget .rating { color: var(--c-ink); }
.card.t-budget .rating svg { color: var(--c-sage); }
.card.t-budget .rating .rev { color: var(--c-muted-2); }
.card.t-budget .loc { color: var(--c-muted); margin-bottom: 14px; }
.card.t-budget .loc svg { color: var(--c-sage); }
.card.t-budget .specs { color: var(--c-ink-2); margin-bottom: 14px; }
.card.t-budget .spec svg { color: var(--c-muted); }
.card.t-budget .hair { display: none; }
.card.t-budget .priceRow { align-items: center; }
.card.t-budget .price { font-size: 19px; font-weight: 800; letter-spacing: -.02em; color: var(--c-ink); }
.card.t-budget .price small { font-size: 12px; color: var(--c-muted); font-weight: 500; }
.card.t-budget .view {
  flex: 0 0 auto; white-space: nowrap;
  border: 1.5px solid var(--c-sage);
  background: transparent;
  color: var(--c-sage);
  font-family: var(--c-sans);
  font-size: 12.5px; font-weight: 700;
  padding: 9px 16px; border-radius: 100px;
  transition: background .2s, color .2s;
}
.card.t-budget:hover .view { background: var(--c-sage); color: #fff; }

/* ─────────────────────────────────────────────────────────────────────
   TIER 2 — ENTRY LUXURY  (light · serif name · blue accent)
   ───────────────────────────────────────────────────────────────────── */
.card.t-entry {
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(26,25,22,.05), 0 16px 34px -22px rgba(26,25,22,.3);
}
.card.t-entry .badge { background: rgba(255,255,255,.93); box-shadow: 0 3px 10px rgba(0,0,0,.1); }
.card.t-entry .badge .label { color: var(--c-blue); }
.card.t-entry .pips i { background: rgba(58,102,168,.24); }
.card.t-entry .pips i.on { background: var(--c-blue); }
.card.t-entry .body { padding: 17px 18px 18px; }
.card.t-entry .toprow { margin-bottom: 6px; }
.card.t-entry .name { font-family: var(--c-serif); font-size: 22px; font-weight: 400; line-height: 1.1; letter-spacing: -.005em; }
.card.t-entry .rating { color: var(--c-ink); padding-top: 3px; }
.card.t-entry .rating svg { color: var(--c-blue); }
.card.t-entry .rating .rev { color: var(--c-muted-2); }
.card.t-entry .loc { color: var(--c-muted); margin-bottom: 16px; }
.card.t-entry .loc svg { color: var(--c-blue); }
.card.t-entry .hair { background: var(--c-line); }
.card.t-entry .specs { color: var(--c-ink-2); padding: 14px 0; }
.card.t-entry .spec svg { color: var(--c-muted); }
.card.t-entry .priceRow { padding-top: 14px; }
.card.t-entry .price { font-size: 20px; font-weight: 700; letter-spacing: -.02em; color: var(--c-ink); }
.card.t-entry .price small { font-size: 12px; color: var(--c-muted); font-weight: 500; }
.card.t-entry .view {
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent; border: 0;
  font-family: var(--c-grotesk);
  font-size: 13px; font-weight: 600; color: var(--c-blue);
  padding: 0;
}
.card.t-entry .view svg { width: 15px; height: 15px; transition: transform .2s; }
.card.t-entry:hover .view svg { transform: translateX(4px); }

/* ─────────────────────────────────────────────────────────────────────
   TIER 3 — LUXURY  (warm cream · serif · gold hairlines · padded media)
   ───────────────────────────────────────────────────────────────────── */
.card.t-lux {
  border-radius: 18px;
  background: var(--c-cream);
  box-shadow: 0 1px 2px rgba(26,25,22,.06), 0 20px 40px -22px rgba(26,25,22,.34);
}
.card.t-lux .media {
  padding: 11px 11px 0;
  /* overflow:hidden alone clips at the padding edge, letting the next slide
     leak into the cream inset. Clip to the actual image rectangle so the
     carousel rail is hidden outside the visible image bounds. */
  clip-path: inset(11px 11px 0 11px round 11px);
}
.card.t-lux .ph { height: 178px; border-radius: 11px; }
.card.t-lux .heart { top: 22px; right: 22px; }
.card.t-lux .badge {
  top: 22px; left: 22px;
  background: rgba(250,246,238,.92);
  box-shadow: 0 4px 12px rgba(0,0,0,.14);
}
.card.t-lux .badge .label { color: var(--c-gold); }
.card.t-lux .pips i { background: rgba(154,123,79,.25); }
.card.t-lux .pips i.on { background: var(--c-gold); }
.card.t-lux .body { padding: 17px 19px 19px; }
.card.t-lux .toprow { margin-bottom: 7px; }
.card.t-lux .name { font-family: var(--c-serif); font-size: 24px; font-weight: 400; line-height: 1.08; letter-spacing: -.005em; }
.card.t-lux .rating { color: var(--c-ink); padding-top: 4px; }
.card.t-lux .rating svg { color: var(--c-gold); }
.card.t-lux .rating .rev { color: var(--c-muted-2); }
.card.t-lux .loc { color: var(--c-muted); margin-bottom: 16px; }
.card.t-lux .loc svg { color: var(--c-gold); }
.card.t-lux .hair { background: rgba(154,123,79,.28); }
.card.t-lux .specs { color: var(--c-ink-2); padding: 15px 0; }
.card.t-lux .spec svg { color: var(--c-gold); opacity: .8; }
.card.t-lux .priceRow { padding-top: 15px; }
.card.t-lux .price {
  font-family: var(--c-serif);
  font-size: 24px; font-weight: 400;
  color: var(--c-ink);
  letter-spacing: -.005em;
}
.card.t-lux .price small { font-family: var(--c-sans); font-size: 12px; color: var(--c-muted); font-weight: 500; }
.card.t-lux .view {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--c-grotesk);
  font-size: 13px; font-weight: 600;
  color: var(--c-gold);
}
.card.t-lux .view svg { width: 15px; height: 15px; transition: transform .2s; }
.card.t-lux:hover .view svg { transform: translateX(4px); }

/* ─────────────────────────────────────────────────────────────────────
   TIER 4 — ULTRA LUXURY  (dark charcoal · gold · serif)
   ───────────────────────────────────────────────────────────────────── */
.card.t-ultra {
  border-radius: 18px;
  background: var(--c-dark);
  box-shadow: 0 1px 2px rgba(0,0,0,.3), 0 26px 50px -22px rgba(0,0,0,.62);
  color: var(--c-dark-cream);
}
.card.t-ultra .scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(22,20,15,0) 52%, rgba(22,20,15,.5) 100%);
  pointer-events: none;
}
.card.t-ultra .badge {
  background: rgba(22,20,15,.46);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(163,147,120,.55);
}
.card.t-ultra .badge .label { color: var(--c-dark-accent); }
.card.t-ultra .pips i { background: rgba(163,147,120,.36); }
.card.t-ultra .pips i.on { background: var(--c-dark-accent); }
.card.t-ultra .body { padding: 18px 19px 19px; color: var(--c-dark-cream); }
.card.t-ultra .toprow { margin-bottom: 7px; }
.card.t-ultra .name {
  font-family: var(--c-serif);
  font-size: 24px; font-weight: 400; line-height: 1.08;
  color: var(--c-dark-cream); letter-spacing: .002em;
}
.card.t-ultra .rating { color: var(--c-dark-cream); padding-top: 4px; }
.card.t-ultra .rating svg { color: var(--c-dark-gold); }
.card.t-ultra .rating .rev { color: var(--c-dark-muted); }
.card.t-ultra .loc { color: var(--c-dark-muted); margin-bottom: 16px; }
.card.t-ultra .loc svg { color: var(--c-dark-accent); }
.card.t-ultra .hair { background: rgba(239,232,218,.14); }
.card.t-ultra .specs { color: var(--c-dark-cream); padding: 15px 0; }
.card.t-ultra .spec svg { color: var(--c-dark-muted); }
.card.t-ultra .priceRow { padding-top: 15px; }
.card.t-ultra .price { font-family: var(--c-serif); font-size: 24px; font-weight: 400; color: var(--c-dark-accent); }
.card.t-ultra .price small { font-family: var(--c-sans); font-size: 11.5px; color: var(--c-dark-muted); font-weight: 500; }
.card.t-ultra .price .total { color: var(--c-dark-muted); }
.card.t-ultra .view {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--c-grotesk);
  font-size: 13px; font-weight: 600;
  color: var(--c-dark-cream);
}
.card.t-ultra .view svg { width: 15px; height: 15px; transition: transform .2s; }
.card.t-ultra:hover .view svg { transform: translateX(4px); }

/* The old corner tier-badge.css pill is redundant once the card has a tier
   layout (the in-media .badge above carries the tier). Hide it when present
   inside a tiered card to avoid two stacked badges. */
.card.t-budget .tier-badge, .card.t-entry .tier-badge,
.card.t-lux    .tier-badge, .card.t-ultra .tier-badge { display: none; }

/* ─────────────────────────────────────────────────────────────────────
   Ultra Luxury LANDING PAGE — full dark theme.
   villa.js adds body.theme-ultra on villas whose tier === ultra_luxury.
   We re-define the site's design tokens so any component using them
   (sections, booking widget, info cards, lists, bullets, dividers) flips
   together. Targeted overrides handle the few spots with hardcoded ink.
   ───────────────────────────────────────────────────────────────────── */
/* Belt + braces — also paint <html> behind the body so no cream shows
   through if body doesn't fill the viewport. */
html:has(body.theme-ultra) { background: #000000; }

body.theme-ultra {
  --bg:        #000000;
  --bg-2:      #050402;
  --surface:   #0c0a06;
  --card:      #0c0a06;
  --tint:      #16120a;
  --ink:       #e9dfc4;
  --ink-2:     #c8bfa6;
  --muted:     #8c8273;
  --line:      rgba(212,175,55,.16);
  --line-2:    rgba(212,175,55,.30);
  --gold:      #d4af37;
  --gold-deep: #a98421;
  --shadow-1:  0 1px 2px rgba(0,0,0,0.6);
  --shadow-2:  0 8px 30px -12px rgba(0,0,0,0.85);
  --shadow-3:  0 30px 60px -25px rgba(0,0,0,0.9);
  background: var(--bg);
  color: var(--ink);
  /* Letterspacing tightening for a more editorial feel on dark */
  letter-spacing: 0.005em;
}

body.theme-ultra h1,
body.theme-ultra h2,
body.theme-ultra h3,
body.theme-ultra h4 { color: var(--ink); }

body.theme-ultra a:not(.card):not(.btn):not(.search-cta) { color: inherit; }

/* Crumbs + read-more inside the intro */
body.theme-ultra .crumbs a,
body.theme-ultra .crumbs__current { color: var(--muted); }
body.theme-ultra .lc-readmore { color: var(--gold); }

/* Booking widget form fields */
body.theme-ultra .lc-book__dates,
body.theme-ultra .lc-book__guests { background: transparent; }
body.theme-ultra .lc-book__dates input,
body.theme-ultra .lc-book__guests select { color: var(--ink); background: transparent; }
body.theme-ultra .lc-book__dates input::placeholder { color: var(--muted); }

/* Themed date picker — inputs and popup over dark */
body.theme-ultra .fp-input { color: var(--ink); }
body.theme-ultra .fp-input::placeholder { color: var(--muted); }
body.theme-ultra .flatpickr-calendar {
  background: var(--surface);
  border-color: var(--line);
  color: var(--ink);
}
body.theme-ultra .flatpickr-day { color: var(--ink-2); }
body.theme-ultra .flatpickr-day:hover { background: var(--tint); border-color: var(--tint); }
body.theme-ultra .flatpickr-day.flatpickr-disabled,
body.theme-ultra .flatpickr-day.prevMonthDay,
body.theme-ultra .flatpickr-day.nextMonthDay { color: var(--line-2); }
body.theme-ultra span.flatpickr-weekday { color: var(--muted); }
body.theme-ultra .flatpickr-current-month input.cur-year { color: var(--ink); }

/* Native scrollbar nicety on dark */
body.theme-ultra ::-webkit-scrollbar-thumb { background: rgba(239,232,218,.18); }

/* Inline tier chip inside the intro adapts cleanly */
body.theme-ultra .tier-chip-inline { background: var(--card); border-color: var(--line-2); color: var(--ink); }
body.theme-ultra .tier-chip-inline--luxury,
body.theme-ultra .tier-chip-inline--ultra_luxury { color: var(--gold); }

/* ─────────────────────────────────────────────────────────────────────
   Homepage tier carousels.
   The collection container (#grid) now stacks one carousel per tier
   instead of mixing categories. Each rail scrolls horizontally with
   prev/next arrow controls.
   ───────────────────────────────────────────────────────────────────── */
.tier-stack { display: block; }
.tier-stack .grid__loading { padding: 4rem 0; text-align: center; color: var(--muted); font-size: .95rem; }

.tier-group { margin-top: 0; }
.tier-group + .tier-group { margin-top: 3rem; }

.tier-group__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.25rem;
}
.tier-group__title {
  font-family: var(--display, "DM Sans", system-ui, sans-serif);
  font-size: 1.55rem;
  letter-spacing: -.01em;
  margin: 0;
  color: var(--ink);
}
.tier-group__sub {
  margin: 4px 0 0;
  font-size: 0.85rem;
  color: var(--muted);
}
.tier-group__nav { display: inline-flex; gap: 8px; flex-shrink: 0; }
.tg-arrow {
  width: 40px; height: 40px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink);
  font-size: 22px;
  line-height: 1;
  display: grid; place-items: center;
  cursor: pointer;
  padding: 0;
  transition: background .2s, border-color .2s, opacity .2s, transform .2s;
}
.tg-arrow:hover:not(:disabled) { background: var(--tint); border-color: var(--line-2); transform: translateY(-1px); }
.tg-arrow:active:not(:disabled) { transform: translateY(0); }
.tg-arrow:disabled { opacity: .28; cursor: not-allowed; }

.tier-group__rail {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 4px 0 14px;
  scrollbar-width: none;            /* Firefox */
  -ms-overflow-style: none;          /* legacy IE/Edge */
}
.tier-group__rail::-webkit-scrollbar { display: none; }
.tier-group__rail > .card {
  flex: 0 0 280px;
  scroll-snap-align: start;
}
@media (max-width: 600px) {
  .tier-group__rail > .card { flex: 0 0 78vw; }
  .tg-arrow { width: 36px; height: 36px; font-size: 20px; }
}

/* ─────────────────────────────────────────────────────────────────────
   ULTRA LUXURY — premium refinements (quiet luxury, editorial feel).
   These layer on top of the body.theme-ultra token swap above to push
   the landing page beyond "dark theme" into a distinct premium tier.
   ───────────────────────────────────────────────────────────────────── */

/* Typography — section headings become italic-serif statements */
body.theme-ultra .lc-sec__head h2,
body.theme-ultra .lc-sec h2 {
  font-family: var(--accent);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  letter-spacing: -0.005em;
  color: var(--ink);
}
body.theme-ultra .lc-sec__num {
  color: var(--gold);
  font-family: var(--accent);
  font-style: italic;
  letter-spacing: 0.05em;
}
body.theme-ultra .lc-sec__head {
  border-bottom: 1px solid var(--line);
  padding-bottom: 0.9rem;
  margin-bottom: 2rem;
}

/* More generous breathing room between sections */
body.theme-ultra .lc-sec       { margin-top: 4.5rem; }
body.theme-ultra .lc-features  { margin-top: 3.5rem; gap: 2rem; }
body.theme-ultra .lc-gtk       { margin-top: 4rem; gap: 2.5rem; }

/* Description — soft sans, generous leading */
body.theme-ultra .lc-desc { font-size: 1.02rem; line-height: 1.85; color: var(--ink-2); }
body.theme-ultra .lc-desc p { margin: 0 0 1.1rem; }

/* Hairline gold divider between identity bar and content */
body.theme-ultra .lc-identity { border-bottom-color: var(--line-2); padding-bottom: 1.75rem; }

/* Feature blocks: gold thin icons, gold label */
body.theme-ultra .lc-feature__icon { color: var(--gold); }
body.theme-ultra .lc-feature__label { color: var(--ink); font-weight: 600; letter-spacing: 0.05em; }
body.theme-ultra .lc-feature__sub   { color: var(--muted); }

/* Know-to-go info cards — dark panels with gold-deep label */
body.theme-ultra .lc-gtk__item {
  background: var(--surface);
  border-color: var(--line);
}
body.theme-ultra .lc-gtk__item h5 {
  color: var(--gold);
  font-family: var(--sans);
  letter-spacing: 0.22em;
}
body.theme-ultra .lc-gtk__item strong { color: var(--ink); }
body.theme-ultra .lc-rules li { color: var(--ink-2); }
body.theme-ultra .lc-rules li::before { background: var(--gold); }
body.theme-ultra .lc-rules li + li { border-top-color: var(--line); }

/* Rooms scroller: dark cards, gold accents */
body.theme-ultra .lc-room {
  background: var(--surface);
  border: 1px solid var(--line);
  color: var(--ink);
}
body.theme-ultra .lc-room h4 { color: var(--ink); }
body.theme-ultra .lc-room p  { color: var(--ink-2); }
body.theme-ultra .lc-room__cap { color: var(--gold); }
body.theme-ultra .lc-room__icons { color: var(--gold-deep); }

/* Booking widget — premium dark card with gold border + gold CTA */
body.theme-ultra .lc-book {
  background: var(--surface);
  border: 1px solid var(--line-2);
  box-shadow: 0 30px 60px -25px rgba(0,0,0,0.9), inset 0 0 0 1px rgba(212,175,55,0.05);
}
body.theme-ultra .lc-book__from   { color: var(--muted); letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.7rem; }
body.theme-ultra .lc-book__price  { color: var(--ink); }
body.theme-ultra .lc-book__period { color: var(--muted); }
body.theme-ultra .lc-book__dates  { border-color: var(--line); }
body.theme-ultra .lc-book__dates label { color: var(--gold); }
body.theme-ultra .lc-book__dates label + label { border-left: 1px solid var(--line); }
body.theme-ultra .lc-book__guests select {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px 12px;
}
body.theme-ultra .lc-book .btn--primary,
body.theme-ultra .lc-book .btn-primary,
body.theme-ultra .btn--primary {
  background: var(--gold);
  color: #15110c;
  border-color: var(--gold);
  font-weight: 600;
}
body.theme-ultra .lc-book .btn--primary:hover,
body.theme-ultra .btn--primary:hover { background: var(--gold-deep); border-color: var(--gold-deep); color: #15110c; }

/* Tier chip in the intro becomes a refined gold pill */
body.theme-ultra .tier-chip-inline,
body.theme-ultra .tier-chip-inline--ultra_luxury {
  background: transparent;
  border: 1px solid var(--gold);
  color: var(--gold);
  letter-spacing: 0.22em;
}

/* Read-more link in gold */
body.theme-ultra .lc-readmore { color: var(--gold); border-bottom: 1px solid var(--line); }
body.theme-ultra .lc-readmore:hover { color: var(--ink); border-bottom-color: var(--gold); }

/* Inline links inside body copy get a gold underline */
body.theme-ultra .lc-desc a { color: var(--gold); text-decoration-color: var(--line-2); }
body.theme-ultra .lc-desc a:hover { text-decoration-color: var(--gold); }

/* Footer + nav contrast on the pure-black body */
body.theme-ultra .foot { background: #050402; border-top: 1px solid var(--line); color: var(--ink-2); }
body.theme-ultra .foot a { color: var(--ink-2); }
body.theme-ultra .foot a:hover { color: var(--gold); }
