/* ==========================================================================
   QUARTERS INN — HOSPITALITY LAYER
   Inspired by boutique hotels (Belmond, Rosewood, Ace). Serif display
   typography, ivory/espresso/brass palette, ornamental flourishes.
   Extends styles.css without breaking SEO-visible classes.
   ========================================================================== */

/* ---------- TOKENS ---------- */
:root {
  /* Paper — warm ivory family */
  --ivory:#F6EFE2;        /* primary page background */
  --ivory-2:#FBF7EE;       /* surface / cards */
  --ivory-3:#EEE4D1;       /* alternate bands */
  --cream-border:#E2D7BE;
  --hairline:#D4C6A7;

  /* Ink — espresso / coffee */
  --ink-50:var(--ivory);
  --ink-75:var(--ivory-3);
  --ink-100:var(--cream-border);
  --ink-200:#C8BA9E;
  --ink-300:#9A8E74;
  --ink-400:#6E624E;
  --ink-500:#4A4030;
  --ink-600:#352D21;
  --ink-700:#2A2318;
  --ink-800:#1E180F;
  --ink-900:#14100A;

  /* Brass — warm gold accent (subtle, elegant) */
  --brass-50:#F7ECD3;
  --brass-100:#E8D3A4;
  --brass-200:#D4B572;
  --brass-300:#BC9B55;
  --brass-400:#A17A3A;     /* primary brass */
  --brass-500:#8B6628;
  --brass-600:#6D4F1D;
  --brass-700:#4E3813;

  /* Deep moss (secondary accent for contrast) */
  --moss-100:#D9DCC9;
  --moss-400:#5C6A4E;
  --moss-600:#3F4B36;

  /* Semantic */
  --ok:#4C8C5B;
  --gold:var(--brass-400);

  /* Elevation */
  --sh-xs:0 1px 2px rgba(30,24,15,.05);
  --sh-sm:0 6px 18px rgba(30,24,15,.07);
  --sh-md:0 20px 48px rgba(30,24,15,.1);
  --sh-lg:0 36px 80px rgba(30,24,15,.14);

  /* Radii — smaller, more editorial */
  --r-sm:4px; --r-md:6px; --r-lg:10px; --r-xl:14px; --r-pill:9999px;

  /* Motion */
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-strong:cubic-bezier(.2,0,0,1);
  --dur-fast:.18s; --dur:.35s; --dur-slow:.6s;

  /* Typography */
  --font-display:'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --fs-display:clamp(2.75rem,6.5vw,5.75rem);
  --fs-display-sm:clamp(2.1rem,4.5vw,3.4rem);
  --fs-h3:clamp(1.4rem,2vw,1.75rem);
  --fs-eyebrow:.7rem;
  --ls-display:-.012em;
  --ls-heading:-.005em;
  --ls-eyebrow:.22em;
  --ls-caps:.14em;

  /* Layout */
  --content:1180px;
  --content-wide:1320px;
}

/* ---------- GLOBAL ---------- */
:root { --nav-h:72px; }
html, body { background:var(--ivory); }
body {
  color:var(--ink-700);
  font-family:var(--font-body);
  font-size:16.5px;
  line-height:1.62;
  letter-spacing:.002em;
}

h1, h2, h3 {
  font-family:var(--font-display);
  color:var(--ink-900);
  font-weight:500;
  letter-spacing:var(--ls-heading);
}
h1 { line-height:1.04; }
h2 { line-height:1.08; }
h3 { line-height:1.2; }
h4 {
  font-family:var(--font-body);
  font-weight:600;
  color:var(--ink-900);
  letter-spacing:-.005em;
}

em { font-style:italic; }

/* Reduced motion */
@media (prefers-reduced-motion:reduce) {
  :root { --dur-fast:.01s; --dur:.01s; --dur-slow:.01s; }
  .ken-burns *, [data-parallax] { animation:none !important; transform:none !important; }
}

/* Focus */
:where(a,button,input,select,textarea,[tabindex]):focus-visible {
  outline:none; box-shadow:0 0 0 2px var(--brass-400); border-radius:3px;
}

.skip-link {
  position:absolute; left:-9999px; top:8px; z-index:5000;
  background:var(--ink-900); color:var(--ivory); padding:.6rem 1rem; border-radius:var(--r-sm);
  font-size:.75rem; font-weight:600; letter-spacing:var(--ls-caps); text-transform:uppercase;
}
.skip-link:focus { left:8px; }

/* Scroll progress */
.scroll-progress { position:fixed; top:0; left:0; right:0; height:1.5px; z-index:1500; pointer-events:none; }
.scroll-progress__bar { height:100%; width:0%; background:var(--brass-400); transition:width .1s linear; }

/* ---------- REVEAL ---------- */
[data-reveal] {
  opacity:0; transform:translateY(18px);
  transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);
}
[data-reveal="fade"] { transform:none; }
[data-reveal="scale"] { transform:scale(.985); }
[data-reveal="left"]  { transform:translateX(-24px); }
[data-reveal="right"] { transform:translateX(24px); }
[data-reveal].is-visible { opacity:1; transform:none; }
.reveal-stagger > * {
  opacity:0; transform:translateY(14px);
  transition:opacity .55s var(--ease), transform .55s var(--ease);
  transition-delay:calc(var(--i,0) * 80ms);
}
.reveal-stagger.is-visible > * { opacity:1; transform:none; }

/* ---------- NAV OVERRIDES ---------- */
.nav {
  background:rgba(246,239,226,.92) !important;
  border-bottom:1px solid rgba(30,24,15,.08);
  height:72px !important;
  padding:0 clamp(1.25rem,4vw,3rem) !important;
}
.nav--scrolled { background:rgba(246,239,226,.97) !important; box-shadow:var(--sh-xs); }
.nav__logo {
  color:var(--ink-900) !important;
  font-family:var(--font-display) !important;
  font-size:0 !important;            /* hide any accidental text node, logo image carries the brand */
  font-weight:500 !important;
  gap:0 !important;
  display:inline-flex !important; align-items:center;
}
.nav__logo img {
  height:46px !important; width:auto !important;
  display:block;
  /* No drop-shadow — the trimmed logo is on transparent bg and reads clean against cream */
}
.nav__links a {
  color:var(--ink-500) !important;
  font-size:.72rem !important;
  letter-spacing:var(--ls-caps) !important;
  text-transform:uppercase;
  font-weight:500;
  position:relative;
}
.nav__links a:hover, .nav__links a.is-active { color:var(--ink-900) !important; }
.nav__links a.is-active::after {
  content:""; position:absolute; left:50%; bottom:-6px; transform:translateX(-50%);
  width:14px; height:1px; background:var(--brass-400);
}
.nav__cta {
  background:transparent !important;
  color:var(--ink-900) !important;
  border:1px solid var(--ink-900) !important;
  border-radius:0 !important;
  padding:.6rem 1.25rem !important;
  font-size:.68rem !important;
  font-weight:600 !important;
  letter-spacing:var(--ls-caps) !important;
  text-transform:uppercase;
  transition:background var(--dur) var(--ease), color var(--dur);
}
.nav__cta:hover { background:var(--ink-900) !important; color:var(--ivory) !important; }
.nav__phone { color:var(--ink-500) !important; font-size:.72rem !important; letter-spacing:.04em; }

/* ---------- BUTTONS (hospitality hairline / filled) ---------- */
.btn-v2 {
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.95rem 1.6rem; border-radius:0; font-weight:600; font-size:.72rem;
  letter-spacing:var(--ls-caps); text-transform:uppercase; cursor:pointer;
  transition:background var(--dur) var(--ease), color var(--dur), border-color var(--dur), transform var(--dur);
  border:1px solid transparent; white-space:nowrap; font-family:var(--font-body);
  min-height:46px;
}
.btn-v2--primary { background:var(--ink-900); color:var(--ivory); border-color:var(--ink-900); }
.btn-v2--primary:hover { background:var(--ink-700); border-color:var(--ink-700); }
.btn-v2--accent, .btn-v2--warm {
  background:var(--brass-400); color:var(--ivory); border-color:var(--brass-400);
}
.btn-v2--accent:hover, .btn-v2--warm:hover { background:var(--brass-500); border-color:var(--brass-500); }
.btn-v2--outline { background:transparent; color:var(--ink-900); border-color:var(--ink-900); }
.btn-v2--outline:hover { background:var(--ink-900); color:var(--ivory); }
.btn-v2--ghost {
  background:transparent; color:var(--ivory);
  border-color:rgba(246,239,226,.55);
}
.btn-v2--ghost:hover { background:rgba(246,239,226,.12); border-color:var(--ivory); }
.btn-v2 i { font-size:.85em; transition:transform var(--dur); }
.btn-v2:hover i.fa-arrow-right { transform:translateX(3px); }

/* ---------- SECTIONS ---------- */
.section-v2 { padding:clamp(5rem,9vw,8rem) 0; position:relative; }
.section-v2--alt { background:var(--ivory-3); }
.section-v2--warm { background:var(--ivory-2); }
.section-v2--dark { background:var(--ink-900); color:var(--ivory); }
.section-v2--dark h1,.section-v2--dark h2,.section-v2--dark h3,.section-v2--dark h4 { color:var(--ivory); }

.container-xl { max-width:var(--content); margin:0 auto; padding:0 clamp(1.25rem,4vw,2rem); }
.container-wide { max-width:var(--content-wide); margin:0 auto; padding:0 clamp(1.25rem,4vw,2rem); }

/* ---------- ORNAMENTAL RULE ---------- */
.ornament {
  display:flex; align-items:center; justify-content:center; gap:1rem;
  margin:0 auto clamp(2rem,3vw,2.75rem); max-width:260px;
  color:var(--brass-400);
}
.ornament::before, .ornament::after {
  content:""; flex:1; height:1px; background:var(--brass-400); opacity:.55;
}
.ornament__mark { font-size:.5rem; letter-spacing:.8em; padding-left:.8em; }

/* ---------- SECTION HEAD ---------- */
.section-head { max-width:720px; margin:0 auto clamp(2.75rem,5vw,4rem); text-align:center; display:flex; flex-direction:column; align-items:center; }
.section-head--left { text-align:left; align-items:flex-start; margin-left:0; }
.section-head__eyebrow {
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:var(--fs-eyebrow); text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
  color:var(--brass-500); font-weight:600; margin-bottom:1.25rem;
}
.section-head__eyebrow::before, .section-head__eyebrow::after {
  content:""; width:18px; height:1px; background:var(--brass-400); opacity:.6;
}
.section-head--left .section-head__eyebrow::after { display:none; }
.section-head__title {
  font-family:var(--font-display);
  font-size:clamp(2rem,4.5vw,3.4rem); font-weight:500;
  letter-spacing:var(--ls-heading); line-height:1.06; color:var(--ink-900);
  margin-bottom:1.15rem;
}
.section-head__title em {
  font-family:var(--font-display);
  font-style:italic;
  font-weight:400;
  color:var(--brass-500);
}
.section-head__sub {
  font-size:1.05rem; color:var(--ink-500); line-height:1.65;
  max-width:60ch; font-weight:400;
}

.section-v2--dark .section-head__eyebrow { color:var(--brass-300); }
.section-v2--dark .section-head__sub { color:rgba(246,239,226,.72); }
.section-v2--dark .section-head__title em { color:var(--brass-300); }

/* ---------- HERO v2 (cinematic hospitality) ---------- */
.hero-v2 {
  position:relative; min-height:100svh;
  display:flex; align-items:flex-end;
  padding:0 clamp(1.5rem,5vw,4rem) clamp(3rem,8vh,6rem);
  overflow:hidden; color:var(--ivory); isolation:isolate;
}
.hero-v2__media { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.hero-v2__media > div {
  position:absolute; inset:-3%;
  background-size:cover; background-position:center;
  transform:scale(1.02);
}
.hero-v2__media::after {
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(105deg, rgba(20,16,10,.75) 0%, rgba(20,16,10,.48) 42%, rgba(20,16,10,.25) 65%, rgba(20,16,10,.2) 100%),
    linear-gradient(180deg, rgba(20,16,10,.15) 0%, rgba(20,16,10,.1) 35%, rgba(20,16,10,.55) 80%, rgba(20,16,10,.85) 100%);
}
.hero-v2__content {
  position:relative; z-index:2; width:100%;
  max-width:var(--content-wide); margin:0 auto;
  display:grid; gap:clamp(1.5rem,3vw,3rem);
  grid-template-columns:1.4fr 1fr; align-items:end;
}
@media (max-width:960px){ .hero-v2__content { grid-template-columns:1fr; } }

.hero-v2__eyebrow {
  display:inline-flex; align-items:center; gap:.8rem;
  font-size:var(--fs-eyebrow); text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
  font-weight:600; color:var(--brass-200);
  padding:0; text-shadow:0 1px 8px rgba(0,0,0,.4);
}
.hero-v2__eyebrow .dot { display:none; }
.hero-v2__eyebrow::before {
  content:""; width:32px; height:1.5px; background:var(--brass-300); opacity:1;
}
.hero-v2__headline {
  font-family:var(--font-display);
  font-size:var(--fs-display); line-height:1.04; letter-spacing:var(--ls-display);
  font-weight:400; margin:1.25rem 0 1.15rem; max-width:18ch; color:var(--ivory);
  text-shadow:0 2px 30px rgba(0,0,0,.35);
}
.hero-v2__headline em {
  font-style:italic; font-weight:400; color:var(--ivory);
  display:inline;
}
.hero-v2__sub {
  font-family:var(--font-body);
  font-size:clamp(1rem,1.25vw,1.15rem); line-height:1.6;
  color:rgba(246,239,226,.95); max-width:52ch;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
}
.hero-v2__meta {
  display:flex; flex-wrap:wrap; gap:1rem 2.25rem; margin-top:2rem;
  font-size:.72rem; color:rgba(246,239,226,.95);
  text-transform:uppercase; letter-spacing:var(--ls-caps); font-weight:600;
  padding-top:1.25rem; border-top:1px solid rgba(246,239,226,.25);
  text-shadow:0 1px 8px rgba(0,0,0,.35);
}
.hero-v2__meta span { display:inline-flex; align-items:center; gap:.55rem; }
.hero-v2__meta i { color:var(--brass-300); font-size:.85em; }

.hero-v2__actions { margin-top:2rem; display:flex; flex-wrap:wrap; gap:.75rem; }

.hero-v2__card {
  border-radius:0; padding:clamp(1.5rem,2.2vw,2rem);
  color:var(--ink-900); background:var(--ivory);
  border:none; box-shadow:var(--sh-lg);
  position:relative;
}
.hero-v2__card::before {
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--brass-400);
}
.hero-v2__card h3 {
  font-family:var(--font-display); font-size:1.25rem; font-weight:500;
  margin-bottom:.5rem; color:var(--ink-900); letter-spacing:-.005em;
}
.hero-v2__card p { font-size:.85rem; color:var(--ink-500); margin-bottom:1.15rem; line-height:1.55; }

.hero-v2__scroll {
  position:absolute; left:50%; bottom:1.5rem; transform:translateX(-50%);
  z-index:3; font-size:.66rem; letter-spacing:var(--ls-eyebrow); text-transform:uppercase;
  color:rgba(246,239,226,.55); display:inline-flex; align-items:center; gap:.7rem;
}
.hero-v2__scroll::before { content:""; width:24px; height:1px; background:currentColor; }
.hero-v2__scroll .mouse { display:none; }

/* Kill legacy gimmicks */
.ken-burns__image { animation:none !important; }
.noise-overlay::after { display:none !important; }

/* ---------- BOOKING BAR (hospitality: hairline with brass top rule) ---------- */
.book {
  display:grid; gap:0;
  grid-template-columns:1fr 1fr 1fr 1fr auto;
  padding:0; border-radius:0;
  background:var(--ivory-2); box-shadow:var(--sh-sm);
  border:1px solid var(--cream-border);
  max-width:var(--content); margin:0 auto;
  position:relative;
}
.book::before {
  content:""; position:absolute; top:-1px; left:0; right:0; height:2px;
  background:var(--brass-400);
}
.book__field {
  display:flex; flex-direction:column; padding:1.25rem 1.4rem;
  border-right:1px solid var(--cream-border);
  transition:background var(--dur) var(--ease);
  cursor:pointer;
}
.book__field:last-of-type { border-right:none; }
.book__field:hover { background:var(--ivory-3); }
.book__label {
  font-size:.64rem; text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
  color:var(--ink-400); font-weight:600; margin-bottom:.35rem;
}
.book__input {
  font-family:var(--font-display); font-size:1rem; font-weight:500; color:var(--ink-900);
  background:transparent; border:0; outline:none; padding:0; width:100%; letter-spacing:-.003em;
}
.book__input::-webkit-calendar-picker-indicator { opacity:.35; cursor:pointer; }
.book__cta {
  background:var(--ink-900); color:var(--ivory); padding:0 2rem; min-height:auto; border-radius:0;
  font-weight:600; font-size:.7rem; letter-spacing:var(--ls-caps); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.6rem;
  transition:background var(--dur) var(--ease); cursor:pointer; border:0; font-family:var(--font-body);
}
.book__cta:hover { background:var(--brass-400); }
.book__cta i { transition:transform var(--dur); font-size:.85em; }
.book__cta:hover i { transform:translateX(3px); }
@media (max-width:900px){
  .book { grid-template-columns:1fr 1fr; }
  .book__field { border-right:none; border-bottom:1px solid var(--cream-border); }
  .book__cta { grid-column:1/-1; min-height:54px; }
}
@media (max-width:500px){ .book { grid-template-columns:1fr; } }

/* ---------- STICKY BOOK BAR ---------- */
.stickybook {
  position:fixed; left:0; right:0; bottom:0; z-index:1200;
  padding:1rem 1.25rem; background:rgba(246,239,226,.96);
  backdrop-filter:blur(20px); border-top:1px solid var(--cream-border);
  transform:translateY(120%); transition:transform .45s var(--ease-strong);
}
.stickybook::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--brass-400); }
.stickybook.is-visible { transform:translateY(0); }
.stickybook__inner { max-width:var(--content); margin:0 auto; display:flex; align-items:center; gap:1rem; justify-content:space-between; }
.stickybook__meta strong {
  font-family:var(--font-display); font-size:1.05rem; font-weight:500; color:var(--ink-900); display:block;
}
.stickybook__meta span { font-size:.72rem; color:var(--ink-400); letter-spacing:.04em; }
.stickybook__actions { display:flex; gap:.5rem; flex-shrink:0; }

/* ---------- STATS (editorial — serif numbers, brass rule under) ---------- */
.stats-band {
  display:grid; gap:clamp(1rem,2vw,2rem);
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
}
.stat { text-align:center; padding:1.75rem 1rem; border-left:1px solid var(--cream-border); position:relative; }
.stat:first-child { border-left:0; }
@media (max-width:760px) {
  .stat { border-left:0; border-top:1px solid var(--cream-border); }
  .stat:first-child { border-top:0; }
}
.stat__value {
  font-family:var(--font-display); font-weight:500; letter-spacing:-.01em;
  font-size:clamp(2.6rem,5vw,3.75rem); line-height:1;
  color:var(--ink-900); font-variant-numeric:tabular-nums;
}
.stat__value em { font-style:italic; color:var(--brass-400); font-weight:400; }
.stat__label {
  font-size:.72rem; text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
  color:var(--ink-400); font-weight:600; margin-top:.85rem;
}

/* ---------- TRUST ROW ---------- */
.trust-row {
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:clamp(1.5rem,3vw,3.25rem);
  padding:2rem clamp(1rem,3vw,2rem);
  border-top:1px solid var(--cream-border); border-bottom:1px solid var(--cream-border);
}
.trust-row__item {
  display:flex; align-items:center; gap:.7rem;
  font-size:.72rem; font-weight:600; color:var(--ink-500);
  text-transform:uppercase; letter-spacing:var(--ls-caps);
}
.trust-row__item i { color:var(--brass-400); font-size:1rem; }

/* ---------- FEATURE TILES (editorial) ---------- */
.feature-grid {
  display:grid; gap:0;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  border:1px solid var(--cream-border);
  background:var(--ivory-2);
}
.feature-tile {
  background:transparent; border:none; border-radius:0;
  padding:2.25rem 2rem;
  border-right:1px solid var(--cream-border);
  border-bottom:1px solid var(--cream-border);
  transition:background var(--dur) var(--ease);
}
.feature-tile:hover { background:var(--ivory); }
.feature-tile__icon {
  width:auto; height:auto; display:inline-flex; align-items:center; justify-content:center;
  font-size:1.35rem; color:var(--brass-400); margin-bottom:1.1rem;
}
.feature-tile h4 {
  font-family:var(--font-display); font-size:1.15rem; font-weight:500;
  margin-bottom:.5rem; color:var(--ink-900); letter-spacing:-.005em;
}
.feature-tile p { font-size:.9rem; color:var(--ink-500); line-height:1.6; }

.section-v2--dark .feature-grid { background:rgba(246,239,226,.04); border-color:rgba(246,239,226,.1); }
.section-v2--dark .feature-tile { border-right-color:rgba(246,239,226,.1); border-bottom-color:rgba(246,239,226,.1); }
.section-v2--dark .feature-tile:hover { background:rgba(246,239,226,.04); }
.section-v2--dark .feature-tile h4 { color:var(--ivory); }
.section-v2--dark .feature-tile p { color:rgba(246,239,226,.7); }
.section-v2--dark .feature-tile__icon { color:var(--brass-300); }

/* ---------- ROOM CARDS (editorial with brass hairline) ---------- */
.rooms-v2 { display:grid; gap:1.75rem; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
.room-v2 {
  position:relative; overflow:hidden; border-radius:0;
  background:var(--ivory-2); border:1px solid var(--cream-border);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur);
  display:flex; flex-direction:column;
}
.room-v2:hover { transform:translateY(-4px); box-shadow:var(--sh-md); }
.room-v2__media { position:relative; aspect-ratio:4/3; overflow:hidden; }
.room-v2__media img { width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease); }
.room-v2:hover .room-v2__media img { transform:scale(1.05); }
.room-v2__badge {
  position:absolute; top:1rem; left:1rem; padding:.35rem .7rem; border-radius:0;
  background:var(--ivory); color:var(--ink-900);
  font-size:.62rem; font-weight:700; letter-spacing:var(--ls-caps); text-transform:uppercase;
  border:1px solid var(--cream-border);
}
.room-v2__badge--warm { background:var(--brass-400); color:var(--ivory); border-color:var(--brass-400); }
.room-v2__body { padding:1.75rem; display:flex; flex-direction:column; gap:.75rem; flex:1; }
.room-v2__title {
  font-family:var(--font-display); font-size:1.5rem; font-weight:500; color:var(--ink-900);
  letter-spacing:-.005em;
}
.room-v2__desc { font-size:.92rem; color:var(--ink-500); line-height:1.6; flex:1; }
.room-v2__features { display:flex; flex-wrap:wrap; gap:.4rem; padding-top:.4rem; }
.room-v2__features span {
  font-size:.66rem; color:var(--ink-400); padding:.25rem 0;
  text-transform:uppercase; letter-spacing:var(--ls-caps); font-weight:600;
}
.room-v2__features span:not(:last-child)::after { content:"·"; margin:0 .5em; color:var(--cream-border); }
.room-v2__footer {
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding-top:1.2rem; border-top:1px solid var(--cream-border); margin-top:.4rem;
}
.room-v2__price small { font-size:.62rem; color:var(--ink-400); text-transform:uppercase; letter-spacing:var(--ls-eyebrow); font-weight:600; display:block; }
.room-v2__price strong {
  font-family:var(--font-display); font-size:1.15rem; font-weight:500; color:var(--ink-900);
  font-variant-numeric:tabular-nums;
}

/* ---------- FILTER TABS ---------- */
.filter-tabs { display:flex; flex-wrap:wrap; gap:.25rem 1.5rem; justify-content:center; margin-bottom:3rem; border-bottom:1px solid var(--cream-border); padding-bottom:1rem; }
.filter-tabs button {
  padding:.6rem .25rem; border-radius:0; font-size:.72rem; font-weight:600;
  color:var(--ink-400); background:transparent; border:0; cursor:pointer;
  transition:all var(--dur) var(--ease); font-family:var(--font-body);
  text-transform:uppercase; letter-spacing:var(--ls-caps); position:relative;
}
.filter-tabs button:hover { color:var(--ink-900); }
.filter-tabs button.is-active { color:var(--ink-900); }
.filter-tabs button.is-active::after {
  content:""; position:absolute; left:0; right:0; bottom:-17px; height:1.5px; background:var(--brass-400);
}

/* ---------- ATTRACTIONS ---------- */
.attr-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); }
.attr-v2 {
  position:relative; aspect-ratio:4/5; border-radius:0; overflow:hidden;
  background:var(--ink-100); cursor:pointer; isolation:isolate;
  transition:transform var(--dur) var(--ease);
}
.attr-v2:hover { transform:translateY(-3px); }
.attr-v2.is-hidden { display:none; }
.attr-v2__img { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 1.6s var(--ease); }
.attr-v2:hover .attr-v2__img { transform:scale(1.06); }
.attr-v2::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,16,10,.05) 0%, rgba(20,16,10,.4) 50%, rgba(20,16,10,.92) 100%);
  z-index:1;
}
.attr-v2__body {
  position:absolute; left:0; right:0; bottom:0; padding:1.5rem;
  color:#ffffff; z-index:2;
  text-shadow:0 1px 8px rgba(0,0,0,.45);
}
.attr-v2__cat {
  display:inline-block; font-size:.6rem; text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
  margin-bottom:.85rem; font-weight:700; color:#ffffff;
  padding:.35rem .65rem; background:rgba(20,16,10,.5);
  border:1px solid rgba(255,255,255,.25); backdrop-filter:blur(8px);
  text-shadow:none;
}
.attr-v2__title {
  font-family:var(--font-display); font-size:1.35rem; font-weight:500;
  letter-spacing:-.005em; margin-bottom:.5rem; line-height:1.2; color:#ffffff;
}
.attr-v2__meta {
  font-size:.7rem; display:flex; gap:1rem; color:#ffffff;
  text-transform:uppercase; letter-spacing:.08em; font-weight:600;
}
.attr-v2__meta i { font-size:.78em; margin-right:.3em; color:var(--brass-200); }

/* ---------- TESTIMONIALS (editorial pull-quote) ---------- */
.testi { position:relative; max-width:860px; margin:0 auto; }
.testi__viewport { overflow:hidden; }
.testi__track { display:flex; transition:transform .7s var(--ease-strong); }
.testi__slide {
  flex:0 0 100%;
  padding:clamp(2rem,4vw,3.5rem) clamp(1.5rem,3vw,2.5rem);
  text-align:center;
}
.testi__quote-mark {
  font-family:var(--font-display);
  font-size:4.5rem; color:var(--brass-300); line-height:.6; margin-bottom:.5rem;
  opacity:.85;
}
.testi__quote {
  font-family:var(--font-display);
  font-size:clamp(1.3rem,2.2vw,1.85rem); line-height:1.38; color:var(--ink-800);
  font-weight:400; font-style:italic; margin-bottom:2.25rem;
  max-width:50ch; margin-left:auto; margin-right:auto;
}
.testi__author { display:flex; align-items:center; justify-content:center; gap:1rem; }
.testi__avatar {
  width:48px; height:48px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--ink-900); font-weight:500; font-size:.9rem;
  background:transparent; border:1px solid var(--cream-border);
  font-family:var(--font-display); letter-spacing:.02em;
}
.testi__author-info { text-align:left; }
.testi__author-info strong {
  display:block; font-family:var(--font-body); font-weight:600;
  color:var(--ink-900); font-size:.92rem; letter-spacing:.01em;
}
.testi__author-info span {
  display:block; font-size:.68rem; color:var(--ink-400);
  text-transform:uppercase; letter-spacing:.1em; margin-top:.15rem;
}
.testi__stars { color:var(--brass-400); letter-spacing:.15em; margin-top:.25rem; font-size:.8rem; }

.testi__controls { display:flex; justify-content:center; align-items:center; gap:1.25rem; margin-top:1.5rem; }
.testi__btn {
  width:42px; height:42px; border-radius:50%;
  background:transparent; border:1px solid var(--cream-border);
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  color:var(--ink-500); transition:all var(--dur) var(--ease);
}
.testi__btn:hover { background:var(--ink-900); color:var(--ivory); border-color:var(--ink-900); }
.testi__dots { display:flex; gap:.4rem; }
.testi__dot {
  width:6px; height:6px; border-radius:50%; background:var(--cream-border); border:0; cursor:pointer;
  transition:all var(--dur);
}
.testi__dot.is-active { background:var(--brass-400); width:22px; border-radius:0; }

/* ---------- GALLERY MASONRY ---------- */
.masonry { display:grid; gap:.75rem; grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; }
.masonry__item {
  position:relative; overflow:hidden; border-radius:0; background:var(--ink-100); cursor:pointer;
}
.masonry__item img { width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.masonry__item:hover img { transform:scale(1.06); }
.masonry__item--tall { grid-row:span 2; }
.masonry__item--wide { grid-column:span 2; }
@media (max-width:900px){ .masonry { grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; } .masonry__item--wide { grid-column:span 1; } }

/* ---------- CTA BAND (dark with brass rule) ---------- */
.cta-band {
  position:relative; overflow:hidden; border-radius:0;
  padding:clamp(3.5rem,7vw,6rem) clamp(1.5rem,4vw,3rem); color:var(--ivory);
  background:var(--ink-900);
  text-align:center;
}
.cta-band::before {
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:60px; height:2px; background:var(--brass-400);
}
.cta-band .section-head__eyebrow { color:var(--brass-300); margin-bottom:1rem; }
.cta-band .section-head__eyebrow::before, .cta-band .section-head__eyebrow::after { background:var(--brass-300); }
.cta-band h3 {
  font-family:var(--font-display);
  font-size:clamp(1.9rem,3.8vw,2.9rem); font-weight:400; letter-spacing:-.005em;
  line-height:1.12; margin-bottom:1.15rem; color:var(--ivory);
}
.cta-band h3 em { font-style:italic; color:var(--brass-300); }
.cta-band p {
  font-size:1.02rem; color:rgba(246,239,226,.72);
  max-width:580px; margin:0 auto 2.25rem; line-height:1.65;
}
.cta-band__actions { display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; }

/* ---------- LEAFLET MAP ---------- */
.leaflet-wrap {
  height:clamp(420px,55vh,580px); border-radius:0; overflow:hidden;
  box-shadow:var(--sh-sm); border:1px solid var(--cream-border);
}
.leaflet-wrap .leaflet-container { height:100%; width:100%; font-family:var(--font-body); background:var(--ivory-3); }
.qi-pin {
  width:38px; height:38px; border-radius:50%; background:var(--ink-900);
  color:var(--ivory); display:flex; align-items:center; justify-content:center; font-size:1rem;
  box-shadow:0 6px 20px rgba(20,16,10,.4); border:2px solid var(--ivory);
}
.qi-pin--warm { background:var(--brass-400); box-shadow:0 6px 20px rgba(161,122,58,.45); }

/* ---------- DRIVING TIME TILES (editorial) ---------- */
.dtime { display:grid; gap:0; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); border:1px solid var(--cream-border); background:var(--ivory-2); }
.dtime__tile {
  padding:1.75rem 1.6rem; border-right:1px solid var(--cream-border); border-bottom:1px solid var(--cream-border);
  transition:background var(--dur) var(--ease); background:transparent;
}
.dtime__tile:hover { background:var(--ivory); }
.dtime__tile small {
  font-size:.66rem; color:var(--ink-400); letter-spacing:var(--ls-eyebrow); text-transform:uppercase;
  font-weight:600; display:block; margin-bottom:.85rem;
}
.dtime__tile small i { color:var(--brass-400); margin-right:.4rem; }
.dtime__tile strong {
  display:block; font-family:var(--font-display); font-size:1.9rem; font-weight:500;
  color:var(--ink-900); font-variant-numeric:tabular-nums; letter-spacing:-.01em;
}
.dtime__tile span { display:block; margin-top:.4rem; font-size:.88rem; color:var(--ink-500); font-weight:500; }

/* ---------- FAQ v2 (editorial) ---------- */
.faq-search { max-width:560px; margin:0 auto 1.5rem; position:relative; }
.faq-search input {
  width:100%; padding:1rem 1rem 1rem 2.75rem; border-radius:0;
  border:1px solid var(--cream-border); border-right:0; border-left:0;
  font-size:.92rem; background:transparent; outline:none;
  transition:border-color var(--dur); font-family:var(--font-body);
}
.faq-search input:focus { border-color:var(--brass-400); }
.faq-search i { position:absolute; left:.8rem; top:50%; transform:translateY(-50%); color:var(--ink-400); font-size:.85rem; }

.faq-chips { display:flex; flex-wrap:wrap; gap:.25rem 1.5rem; justify-content:center; margin-bottom:2.5rem; padding-bottom:1rem; border-bottom:1px solid var(--cream-border); }
.faq-chips button {
  padding:.55rem .25rem; border-radius:0; font-size:.7rem; font-weight:600;
  background:transparent; border:0; color:var(--ink-400); cursor:pointer;
  transition:color var(--dur); font-family:var(--font-body);
  text-transform:uppercase; letter-spacing:var(--ls-caps); position:relative;
}
.faq-chips button:hover { color:var(--ink-900); }
.faq-chips button.is-active { color:var(--ink-900); }
.faq-chips button.is-active::after {
  content:""; position:absolute; left:0; right:0; bottom:-15px; height:1.5px; background:var(--brass-400);
}

.faq-v2 { display:flex; flex-direction:column; gap:0; max-width:800px; margin:0 auto; border-top:1px solid var(--cream-border); }
.faq-v2 details {
  background:transparent; border-bottom:1px solid var(--cream-border);
  transition:background var(--dur);
}
.faq-v2 details[open] { background:var(--ivory-2); }
.faq-v2 summary {
  padding:1.35rem 1.5rem; cursor:pointer; list-style:none;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  font-family:var(--font-display); font-size:1.1rem; font-weight:500; color:var(--ink-900);
}
.faq-v2 summary::-webkit-details-marker { display:none; }
.faq-v2 summary::after {
  content:"+"; font-family:var(--font-body); font-size:1.25rem; font-weight:300; color:var(--brass-400); transition:transform var(--dur); line-height:1;
}
.faq-v2 details[open] summary::after { transform:rotate(45deg); }
.faq-v2 .faq-a { padding:0 1.5rem 1.35rem; color:var(--ink-500); line-height:1.65; font-size:.93rem; }
.faq-v2 .faq-a a { color:var(--brass-500); border-bottom:1px solid var(--brass-300); }
.faq-v2 .faq-a a:hover { color:var(--brass-400); }

/* ---------- AMENITY TABS ---------- */
.amtabs { max-width:var(--content); margin:0 auto; }
.amtabs__nav { display:flex; flex-wrap:wrap; gap:.25rem 2rem; justify-content:center; margin-bottom:3rem; padding-bottom:1rem; border-bottom:1px solid var(--cream-border); }
.amtabs__btn {
  padding:.6rem .25rem; border-radius:0; font-size:.72rem; font-weight:600;
  background:transparent; border:0; color:var(--ink-400); cursor:pointer;
  display:inline-flex; align-items:center; gap:.5rem; transition:color var(--dur); font-family:var(--font-body);
  text-transform:uppercase; letter-spacing:var(--ls-caps); position:relative;
}
.amtabs__btn:hover { color:var(--ink-900); }
.amtabs__btn.is-active { color:var(--ink-900); }
.amtabs__btn.is-active::after {
  content:""; position:absolute; left:0; right:0; bottom:-17px; height:1.5px; background:var(--brass-400);
}
.amtabs__panel { display:none; }
.amtabs__panel.is-active { display:block; animation:fadeIn .5s var(--ease); }
@keyframes fadeIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }

/* ---------- CHECKLIST ---------- */
.checklist { display:grid; gap:.85rem 1.5rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.checklist li { display:flex; align-items:flex-start; gap:.7rem; font-size:.92rem; color:var(--ink-500); line-height:1.55; }
.checklist li i { color:var(--brass-400); margin-top:.3rem; font-size:.85rem; flex-shrink:0; }

/* ---------- ITINERARY (editorial timeline) ---------- */
.itin { display:flex; flex-direction:column; gap:0; max-width:800px; margin:0 auto; border-top:1px solid var(--cream-border); }
.itin__row {
  display:grid; grid-template-columns:100px 1fr; gap:1.5rem;
  padding:1.5rem 1.5rem; border-bottom:1px solid var(--cream-border);
  transition:background var(--dur);
}
.itin__row:hover { background:var(--ivory-2); }
.itin__time {
  font-size:.72rem; font-weight:600; color:var(--brass-500);
  letter-spacing:var(--ls-caps); text-transform:uppercase; padding-top:.3rem;
}
.itin__body strong {
  display:block; font-family:var(--font-display); font-weight:500; color:var(--ink-900);
  margin-bottom:.3rem; font-size:1.1rem; letter-spacing:-.005em;
}
.itin__body p { font-size:.9rem; color:var(--ink-500); line-height:1.6; }

/* ---------- CONTACT TILES ---------- */
.contact-tiles { display:grid; gap:0; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); border:1px solid var(--cream-border); background:var(--ivory-2); }
.contact-tile {
  display:block; padding:2rem 1.75rem;
  border-right:1px solid var(--cream-border); border-bottom:1px solid var(--cream-border);
  transition:background var(--dur); background:transparent;
}
.contact-tile:hover { background:var(--ivory); }
.contact-tile i { font-size:1.3rem; color:var(--brass-400); margin-bottom:1rem; display:block; }
.contact-tile small {
  font-size:.64rem; text-transform:uppercase; letter-spacing:var(--ls-eyebrow); color:var(--ink-400); font-weight:600; display:block;
}
.contact-tile strong {
  display:block; font-family:var(--font-display); font-size:1.2rem; font-weight:500;
  color:var(--ink-900); margin-top:.4rem; letter-spacing:-.005em;
}

/* ---------- SPLIT ---------- */
.split { display:grid; gap:clamp(2rem,5vw,4.5rem); grid-template-columns:1fr 1fr; align-items:center; }
.split--flip .split__media { order:2; }
@media (max-width:860px){ .split, .split--flip { grid-template-columns:1fr; } .split--flip .split__media { order:0; } }
.split__media { border-radius:0; overflow:hidden; position:relative; aspect-ratio:4/3; box-shadow:var(--sh-sm); }
.split__media img { width:100%; height:100%; object-fit:cover; }

/* ---------- LIGHTBOX v2 ---------- */
.lb2 {
  position:fixed; inset:0; z-index:3000; background:rgba(20,16,10,.96);
  display:flex; align-items:center; justify-content:center; padding:2rem;
  opacity:0; pointer-events:none; transition:opacity var(--dur);
}
.lb2.is-open { opacity:1; pointer-events:auto; }
.lb2__img { max-width:92vw; max-height:86vh; object-fit:contain; }
.lb2__close, .lb2__prev, .lb2__next {
  position:absolute; width:46px; height:46px; border-radius:50%;
  background:transparent; border:1px solid rgba(246,239,226,.25);
  color:var(--ivory); font-size:.95rem; display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background var(--dur), border-color var(--dur);
}
.lb2__close:hover, .lb2__prev:hover, .lb2__next:hover { background:rgba(246,239,226,.1); border-color:var(--ivory); }
.lb2__close { top:1.5rem; right:1.5rem; }
.lb2__prev { left:1.5rem; top:50%; transform:translateY(-50%); }
.lb2__next { right:1.5rem; top:50%; transform:translateY(-50%); }
.lb2__caption {
  position:absolute; bottom:1.5rem; left:50%; transform:translateX(-50%);
  padding:.5rem 1rem; color:rgba(246,239,226,.85);
  font-size:.72rem; text-transform:uppercase; letter-spacing:var(--ls-caps); font-weight:500;
}

/* ---------- COMPACT PAGE HERO ---------- */
.hero-compact {
  position:relative; min-height:62vh; display:flex; align-items:center; justify-content:center;
  padding:clamp(5.5rem,10vw,8rem) 1.5rem 4rem; overflow:hidden; color:var(--ivory); text-align:center;
  isolation:isolate;
}
.hero-compact__media { position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; transform:scale(1.02); }
.hero-compact__media::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,16,10,.35) 0%, rgba(20,16,10,.82) 100%);
}
.hero-compact__inner { position:relative; z-index:2; max-width:820px; }
.hero-compact__eyebrow {
  display:inline-flex; align-items:center; gap:.8rem;
  font-size:var(--fs-eyebrow); text-transform:uppercase;
  letter-spacing:var(--ls-eyebrow); padding:0;
  background:transparent; border:0;
  font-weight:500; margin-bottom:1.35rem; color:rgba(246,239,226,.88);
}
.hero-compact__eyebrow::before, .hero-compact__eyebrow::after {
  content:""; width:28px; height:1px; background:var(--brass-300);
}
.hero-compact__title {
  font-family:var(--font-display);
  font-size:clamp(2.3rem,5vw,4.1rem); font-weight:400;
  letter-spacing:var(--ls-display); line-height:1.04;
  margin-bottom:1.15rem; color:var(--ivory);
}
.hero-compact__title em { font-style:italic; color:var(--ivory); }
.hero-compact__sub { font-size:1.05rem; color:rgba(246,239,226,.78); max-width:600px; margin:0 auto; line-height:1.62; }
.hero-compact__breadcrumb {
  margin-top:1.75rem; font-size:.68rem; color:rgba(246,239,226,.6);
  text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
}
.hero-compact__breadcrumb a { color:rgba(246,239,226,.85); }
.hero-compact__breadcrumb a:hover { color:var(--ivory); }

/* ---------- FOOTER ---------- */
.footer {
  background:var(--ink-900) !important; color:rgba(246,239,226,.68);
  padding:5rem 0 2rem !important; position:relative;
}
.footer::before {
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:60px; height:2px; background:var(--brass-400);
}
.footer h4 {
  color:var(--ivory) !important; font-size:.72rem !important;
  text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
  font-family:var(--font-body) !important; font-weight:600 !important;
  margin-bottom:1.15rem !important;
}
.footer a {
  color:rgba(246,239,226,.68) !important; transition:color var(--dur);
  display:block; padding:.22rem 0 !important; font-size:.88rem;
  letter-spacing:.005em;
}
.footer a:hover { color:var(--brass-300) !important; }
.footer__brand img {
  max-height:56px !important; width:auto; margin-bottom:1.25rem !important;
  opacity:.95;
}
.footer__brand p { color:rgba(246,239,226,.6) !important; font-size:.88rem; line-height:1.6; }
.footer__grid {
  border-bottom:1px solid rgba(246,239,226,.08);
  padding-bottom:3rem; margin-bottom:2rem; gap:2.5rem !important;
}
.footer__social { display:flex; gap:.6rem; margin-top:.25rem; }
.footer__social a {
  width:38px; height:38px; border-radius:50%; background:transparent !important;
  display:inline-flex !important; align-items:center; justify-content:center; padding:0 !important;
  font-size:.9rem; border:1px solid rgba(246,239,226,.2);
}
.footer__social a:hover { background:var(--brass-400) !important; border-color:var(--brass-400); color:var(--ivory) !important; }
.footer__bottom {
  font-size:.72rem; color:rgba(246,239,226,.38); text-align:center;
  text-transform:uppercase; letter-spacing:.06em;
}
.footer__bottom a { color:rgba(246,239,226,.55) !important; display:inline !important; padding:0 !important; text-transform:uppercase; font-size:.72rem; }
.schema-data { display:none; }

/* ---------- BACK TO TOP ---------- */
.back-to-top {
  position:fixed; right:1.5rem; bottom:1.5rem; width:44px; height:44px; border-radius:50%;
  background:var(--ink-900); color:var(--ivory); border:0; cursor:pointer; display:inline-flex;
  align-items:center; justify-content:center; font-size:.9rem;
  opacity:0; pointer-events:none; transform:translateY(10px);
  transition:opacity var(--dur), transform var(--dur), background var(--dur);
  z-index:1100;
}
.back-to-top.is-visible { opacity:1; pointer-events:auto; transform:none; }
.back-to-top:hover { background:var(--brass-400); }

/* ---------- OLD CLASS OVERRIDES (legacy hero on pages still using styles.css .hero) ---------- */
.hero__kicker { display:none; }
.hero__headline {
  font-family:var(--font-display) !important; font-weight:400 !important;
  letter-spacing:var(--ls-display) !important;
}
.section__headline {
  font-family:var(--font-display) !important; font-weight:500 !important;
  letter-spacing:var(--ls-heading) !important; color:var(--ink-900) !important;
}
.section__kicker {
  color:var(--brass-500) !important; letter-spacing:var(--ls-eyebrow) !important;
  text-transform:uppercase; font-size:.7rem !important; font-weight:600 !important;
  font-family:var(--font-body) !important;
}

/* Neutralize prior decorative gimmicks */
.gradient-text { background:none !important; -webkit-background-clip:unset !important; color:inherit !important; }

/* ---------- MARQUEE (kept but hospitality-quiet, if still in any page) ---------- */
.marquee { overflow:hidden; border-top:1px solid var(--cream-border); border-bottom:1px solid var(--cream-border); background:var(--ivory-2); padding:1rem 0; }
.marquee__track { display:flex; gap:3.5rem; white-space:nowrap; animation:marquee 40s linear infinite; width:max-content; }
.marquee__item {
  display:inline-flex; align-items:center; gap:.6rem; font-size:.72rem; color:var(--ink-400); font-weight:600;
  text-transform:uppercase; letter-spacing:var(--ls-caps);
}
.marquee__item i { color:var(--brass-400); font-size:.85em; }
@keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ---------- HELPERS ---------- */
.text-warm, .text-accent { color:var(--brass-500); }
.text-muted { color:var(--ink-500); }
.mt-section { margin-top:clamp(3.5rem,6vw,5.5rem); }
.mt-xl { margin-top:clamp(2rem,4vw,3rem); }
.mt-lg { margin-top:2rem; }
.mb-lg { margin-bottom:2rem; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:640px) {
  .hero-v2 { min-height:92svh; padding-bottom:5rem; }
  .section-v2 { padding:4rem 0; }
  .masonry { grid-auto-rows:130px; }
  .cta-band { padding:3rem 1.5rem; }
}

/* ==========================================================================
   ENGAGEMENT LAYER v2 — READABILITY & EXPANSION
   Boosts text visibility, expands card sizing, adds motion.
   ========================================================================== */

/* ---- Container expansion ---- */
:root {
  --content:1280px;
  --content-wide:1440px;
}

/* ---- HERO: bolder text, larger subtitle ---- */
.hero-v2__headline {
  font-size:clamp(3rem,7vw,6rem) !important;
  font-weight:500 !important;
  line-height:1.02 !important;
  max-width:22ch !important;
  margin:1.25rem 0 1.5rem !important;
  text-shadow:0 4px 40px rgba(0,0,0,.5) !important;
}
.hero-v2__sub {
  font-size:clamp(1.125rem,1.6vw,1.375rem) !important;
  line-height:1.6 !important;
  color:rgba(246,239,226,1) !important;
  max-width:58ch !important;
  font-weight:400 !important;
  text-shadow:0 2px 16px rgba(0,0,0,.5) !important;
}
.hero-v2__eyebrow {
  font-size:.8125rem !important;
  letter-spacing:.28em !important;
  color:var(--brass-200) !important;
  font-weight:700 !important;
}
.hero-v2__meta {
  font-size:.8125rem !important;
  color:rgba(246,239,226,1) !important;
  gap:1.25rem 2.5rem !important;
}
.hero-v2__meta i { color:var(--brass-200) !important; font-size:1em !important; }

/* ---- SECTION HEADS: larger, more visible ---- */
.section-head {
  max-width:820px !important;
  margin-bottom:clamp(3rem,5vw,4.5rem) !important;
}
.section-head__title {
  font-size:clamp(2.25rem,5vw,4rem) !important;
  line-height:1.06 !important;
  margin-bottom:1.25rem !important;
}
.section-head__sub {
  font-size:1.1875rem !important;
  line-height:1.7 !important;
  color:var(--ink-600) !important;
  max-width:64ch !important;
}
.section-head__eyebrow {
  font-size:.8125rem !important;
  letter-spacing:.25em !important;
  color:var(--brass-500) !important;
  font-weight:700 !important;
  margin-bottom:1.5rem !important;
}

/* ---- ROOM CARDS: wider, more visible text ---- */
.rooms-v2 {
  grid-template-columns:repeat(auto-fit,minmax(360px,1fr)) !important;
  gap:2rem !important;
}
.room-v2 {
  box-shadow:var(--sh-sm);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease) !important;
}
.room-v2:hover {
  transform:translateY(-8px) !important;
  box-shadow:var(--sh-lg) !important;
}
.room-v2__body { padding:2rem !important; gap:1rem !important; }
.room-v2__title {
  font-size:1.75rem !important;
  line-height:1.15 !important;
}
.room-v2__desc {
  font-size:1.0625rem !important;
  line-height:1.7 !important;
  color:var(--ink-600) !important;
}
.room-v2__features span {
  font-size:.75rem !important;
  color:var(--ink-500) !important;
}
.room-v2__price strong { font-size:1.375rem !important; }
.room-v2__price small { font-size:.6875rem !important; }

/* ---- ATTRACTION CARDS: wider, bigger text ---- */
.attr-grid {
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr)) !important;
  gap:1.75rem !important;
}
.attr-v2 {
  box-shadow:var(--sh-sm);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease) !important;
}
.attr-v2:hover {
  transform:translateY(-6px) !important;
  box-shadow:var(--sh-lg) !important;
}
.attr-v2::after {
  background:linear-gradient(180deg,transparent 25%,rgba(20,16,10,.55) 60%,rgba(20,16,10,.95) 100%) !important;
}
.attr-v2__body { padding:1.75rem !important; }
.attr-v2__cat {
  font-size:.6875rem !important;
  letter-spacing:.2em !important;
  color:var(--brass-200) !important;
  margin-bottom:1rem !important;
}
.attr-v2__title {
  font-size:1.5rem !important;
  line-height:1.2 !important;
  margin-bottom:.75rem !important;
}
.attr-v2__meta {
  font-size:.75rem !important;
  opacity:1 !important;
  color:rgba(246,239,226,.9) !important;
}

/* ---- BOOKING BAR: larger fields, better contrast ---- */
.book { box-shadow:var(--sh-md) !important; }
.book__field { padding:1.25rem 1.5rem !important; }
.book__label {
  font-size:.75rem !important;
  letter-spacing:.18em !important;
  color:var(--brass-500) !important;
  font-weight:700 !important;
}
.book__input {
  font-size:1rem !important;
  font-weight:500 !important;
  color:var(--ink-900) !important;
  margin-top:.375rem !important;
}
.book__cta {
  font-size:.8125rem !important;
  padding:0 2.5rem !important;
  letter-spacing:.18em !important;
}

/* ---- STATS BAND: more prominent ---- */
.stats-band { gap:0 !important; }
.stat { padding:2.5rem 1.5rem !important; }
.stat__value {
  font-size:clamp(2.5rem,5vw,3.75rem) !important;
  line-height:1 !important;
  color:var(--ink-900) !important;
}
.stat__label {
  font-size:.75rem !important;
  letter-spacing:.2em !important;
  color:var(--ink-500) !important;
  font-weight:600 !important;
  margin-top:.75rem !important;
}

/* ---- TESTIMONIALS ---- */
.testi { max-width:960px !important; }
.testi__quote {
  font-size:clamp(1.375rem,2.25vw,1.75rem) !important;
  line-height:1.5 !important;
  color:var(--ink-800) !important;
  font-weight:400 !important;
}

/* ---- TRUST ROW ---- */
.trust-row {
  gap:2.5rem !important;
  padding:2rem 0 !important;
}

/* ---- CTA BAND ---- */
.cta-band h2 { font-size:clamp(2rem,4vw,3rem) !important; }
.cta-band p { font-size:1.125rem !important; line-height:1.65 !important; }

/* ---- BUTTONS: more substantial ---- */
.btn-v2 {
  padding:1.125rem 2rem !important;
  font-size:.75rem !important;
  min-height:52px !important;
  letter-spacing:.18em !important;
}
.btn-v2--accent,.btn-v2--warm {
  box-shadow:0 4px 20px rgba(161,122,58,.35);
}
.btn-v2--accent:hover,.btn-v2--warm:hover {
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(161,122,58,.5);
}
.btn-v2--primary {
  box-shadow:0 4px 20px rgba(20,16,10,.3);
}
.btn-v2--primary:hover {
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(20,16,10,.45);
}

/* ---- NAV: cleaner larger ---- */
.nav__links a { font-size:.75rem !important; letter-spacing:.18em !important; }
.nav__cta {
  font-size:.7rem !important;
  padding:.75rem 1.5rem !important;
  letter-spacing:.22em !important;
  transition:all .3s var(--ease) !important;
}
.nav__cta:hover { transform:translateY(-1px); }

/* ---- SPLIT (about) ---- */
.split p,.section-v2 p:not([class]) {
  font-size:1.0625rem !important;
  line-height:1.75 !important;
  color:var(--ink-600) !important;
}

/* ---- CHECKLIST in hero card ---- */
.hero-v2__card p { font-size:.9375rem !important; }
.checklist li { font-size:.9375rem !important; line-height:1.5 !important; padding:.125rem 0; }
.checklist i { color:var(--brass-400) !important; font-size:1em !important; }

/* ---- BACK TO TOP ---- */
.back-to-top {
  width:56px !important;
  height:56px !important;
  background:var(--brass-400) !important;
  color:var(--ivory) !important;
  border:none !important;
  box-shadow:0 8px 24px rgba(161,122,58,.45) !important;
}
.back-to-top:hover {
  transform:translateY(-4px);
  box-shadow:0 12px 32px rgba(161,122,58,.6) !important;
}
.back-to-top::before { color:var(--ivory) !important; font-size:1.375rem !important; }

/* ---- Smoother page-wide reveal ---- */
[data-reveal] { transition:opacity 1s var(--ease),transform 1s var(--ease) !important; }

/* ---- Typography contrast for body text ---- */
body { color:var(--ink-700) !important; }
p { color:var(--ink-600); }

/* ---- Responsive tweaks for expanded cards ---- */
@media (max-width:768px) {
  .rooms-v2 { grid-template-columns:1fr !important; gap:1.25rem !important; }
  .attr-grid { grid-template-columns:1fr !important; gap:1.25rem !important; }
  .hero-v2__sub { font-size:1.0625rem !important; }
  .section-head__sub { font-size:1rem !important; }
  .room-v2__desc { font-size:1rem !important; }
  .room-v2__title { font-size:1.5rem !important; }
  .attr-v2__title { font-size:1.25rem !important; }
}

/* ==========================================================================
   EVENTS PAGE
   ========================================================================== */

/* ---------- Layout ---------- */
.events-layout {
  display:grid;
  grid-template-columns:280px 1fr;
  gap:clamp(1.5rem,3vw,3rem);
  align-items:start;
}
@media (max-width:880px){
  .events-layout { grid-template-columns:1fr; }
}

/* ---------- Sidebar ---------- */
.ev-sidebar {
  position:sticky; top:88px;
  background:var(--ivory-2); border:1px solid var(--cream-border);
  padding:1.75rem 1.5rem;
}
.ev-sidebar h3 {
  font-family:var(--font-body); font-size:.66rem; font-weight:600;
  text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
  color:var(--ink-400); margin:0 0 .85rem;
  display:flex; align-items:center; gap:.55rem;
}
.ev-sidebar h3 i { color:var(--brass-400); font-size:.85em; }
.ev-sidebar .ev-section { margin-bottom:1.75rem; padding-bottom:1.5rem; border-bottom:1px solid var(--cream-border); }
.ev-sidebar .ev-section:last-child { border-bottom:0; padding-bottom:0; margin-bottom:0; }
.ev-reset {
  font-size:.72rem; text-transform:uppercase; letter-spacing:var(--ls-caps); font-weight:600;
  color:var(--ink-400); cursor:pointer; background:transparent; border:0; padding:0;
  transition:color var(--dur);
}
.ev-reset:hover { color:var(--brass-500); }

/* Total count */
.ev-count {
  font-family:var(--font-display); font-size:2.2rem; font-weight:500;
  color:var(--ink-900); line-height:1; letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.ev-count-label {
  font-size:.7rem; text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
  color:var(--ink-400); font-weight:600; margin-top:.5rem;
}

/* Radius slider */
.ev-radius {
  display:flex; flex-direction:column; gap:.6rem;
}
.ev-radius__row {
  display:flex; align-items:baseline; justify-content:space-between;
  font-size:.85rem; color:var(--ink-700);
}
.ev-radius__value {
  font-family:var(--font-display); font-size:1.4rem; font-weight:500;
  color:var(--ink-900); font-variant-numeric:tabular-nums;
}
.ev-radius__value em { font-style:normal; font-size:.62rem; color:var(--ink-400); margin-left:.3rem; text-transform:uppercase; letter-spacing:.1em; }
.ev-radius input[type="range"] {
  -webkit-appearance:none; appearance:none; width:100%; height:2px;
  background:var(--cream-border); border-radius:2px; outline:none;
}
.ev-radius input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance:none; appearance:none; width:16px; height:16px;
  border-radius:50%; background:var(--brass-400); cursor:pointer;
  border:2px solid var(--ivory); box-shadow:0 1px 4px rgba(20,16,10,.2);
}
.ev-radius input[type="range"]::-moz-range-thumb {
  width:16px; height:16px; border-radius:50%; background:var(--brass-400); cursor:pointer;
  border:2px solid var(--ivory); box-shadow:0 1px 4px rgba(20,16,10,.2);
}
.ev-radius__minmax {
  display:flex; justify-content:space-between;
  font-size:.66rem; color:var(--ink-400); font-weight:600;
  text-transform:uppercase; letter-spacing:.08em;
}

/* Date pills */
.ev-when { display:flex; flex-direction:column; gap:.45rem; }
.ev-when label {
  display:flex; align-items:center; gap:.6rem; cursor:pointer;
  font-size:.92rem; color:var(--ink-700); padding:.35rem 0;
  transition:color var(--dur);
}
.ev-when label:hover { color:var(--ink-900); }
.ev-when input[type="radio"] { accent-color:var(--brass-400); }

/* Category checkboxes */
.ev-cats { display:flex; flex-direction:column; gap:.45rem; }
.ev-cats label {
  display:flex; align-items:center; justify-content:space-between; cursor:pointer;
  font-size:.92rem; color:var(--ink-700); padding:.35rem 0;
  transition:color var(--dur);
}
.ev-cats label:hover { color:var(--ink-900); }
.ev-cats label input { margin-right:.55rem; accent-color:var(--brass-400); }
.ev-cats__name { flex:1; }
.ev-cats__count {
  font-size:.78rem; color:var(--ink-400); font-variant-numeric:tabular-nums;
  font-feature-settings:'tnum';
}

/* ---------- Main grid ---------- */
.ev-controls {
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding-bottom:1.25rem; border-bottom:1px solid var(--cream-border); margin-bottom:1.5rem;
}
.ev-controls__count {
  font-size:.85rem; color:var(--ink-500);
}
.ev-controls__count strong { color:var(--ink-900); font-weight:600; }
.ev-mobile-filter {
  display:none; padding:.55rem 1rem; border:1px solid var(--ink-300); border-radius:0;
  background:transparent; font-size:.78rem; font-weight:600; cursor:pointer;
  text-transform:uppercase; letter-spacing:var(--ls-caps); color:var(--ink-900);
}
@media (max-width:880px){
  .ev-mobile-filter { display:inline-flex; align-items:center; gap:.5rem; }
  .ev-sidebar {
    display:none; position:fixed; inset:0; z-index:2500;
    overflow-y:auto; max-width:380px; margin-left:auto;
    background:var(--ivory); border-left:1px solid var(--cream-border);
    padding:5rem 1.5rem 2rem;
    transform:translateX(100%); transition:transform .35s var(--ease-strong);
  }
  .ev-sidebar.is-open { display:block; transform:translateX(0); }
}

.ev-grid {
  display:grid; gap:1.25rem;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
}

/* ---------- Card ---------- */
.ev-card {
  background:var(--ivory-2); border:1px solid var(--cream-border);
  display:flex; flex-direction:column; cursor:pointer;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur), border-color var(--dur);
  text-align:left; position:relative;
  font-family:inherit;
}
.ev-card:hover { transform:translateY(-3px); box-shadow:var(--sh-md); border-color:var(--ink-200); }
.ev-card.is-hidden { display:none; }
.ev-card__media {
  position:relative; aspect-ratio:16/10; overflow:hidden;
  background:linear-gradient(135deg, var(--ink-700), var(--ink-900));
  display:flex; align-items:center; justify-content:center;
}
.ev-card__media img { width:100%; height:100%; object-fit:cover; }
.ev-card__media i {
  position:absolute; font-size:3.5rem; color:rgba(255,255,255,.18);
}
.ev-card__cat {
  position:absolute; top:.85rem; left:.85rem; z-index:2;
  padding:.3rem .65rem; border-radius:0;
  background:var(--ivory); color:var(--ink-900);
  font-size:.6rem; font-weight:700; letter-spacing:var(--ls-caps); text-transform:uppercase;
}
.ev-card__cat--music    { background:#3F4B36; color:var(--ivory); }
.ev-card__cat--sports   { background:#6E2B2B; color:var(--ivory); }
.ev-card__cat--family   { background:var(--brass-400); color:var(--ivory); }
.ev-card__cat--theater  { background:#1D2E4F; color:var(--ivory); }
.ev-card__cat--misc     { background:var(--ink-700); color:var(--ivory); }

.ev-card__body { padding:1.25rem 1.4rem 1.4rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.ev-card__date {
  font-size:.7rem; text-transform:uppercase; letter-spacing:var(--ls-caps); font-weight:700;
  color:var(--brass-500);
}
.ev-card__title {
  font-family:var(--font-display); font-size:1.2rem; font-weight:500;
  color:var(--ink-900); letter-spacing:-.005em; line-height:1.25; margin:0;
}
.ev-card__venue {
  font-size:.85rem; color:var(--ink-500); display:flex; align-items:center; gap:.4rem;
  margin-top:auto;
}
.ev-card__venue i { color:var(--brass-400); font-size:.85em; }
.ev-card__venue .sep { opacity:.5; margin:0 .3rem; }
.ev-card__cta {
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.7rem; text-transform:uppercase; letter-spacing:var(--ls-caps); font-weight:700;
  color:var(--ink-900); padding-top:.6rem; border-top:1px solid var(--cream-border);
  margin-top:.4rem;
}
.ev-card__cta i { transition:transform var(--dur); font-size:.8em; }
.ev-card:hover .ev-card__cta i { transform:translateX(3px); }

/* ---------- Empty state ---------- */
.ev-empty {
  text-align:center; padding:4rem 2rem;
  border:1px dashed var(--cream-border);
}
.ev-empty h3 {
  font-family:var(--font-display); font-size:1.5rem; font-weight:500;
  color:var(--ink-900); margin-bottom:.65rem;
}
.ev-empty p { color:var(--ink-500); font-size:.95rem; margin-bottom:1.5rem; }
.ev-empty button {
  background:var(--brass-400); color:var(--ivory); border:0;
  padding:.85rem 1.5rem; font-size:.72rem; text-transform:uppercase;
  letter-spacing:var(--ls-caps); font-weight:600; cursor:pointer; font-family:inherit;
  transition:background var(--dur);
}
.ev-empty button:hover { background:var(--brass-500); }

/* ---------- Skeleton ---------- */
.ev-skel {
  background:var(--ivory-2); border:1px solid var(--cream-border);
}
.ev-skel__media { aspect-ratio:16/10; background:linear-gradient(90deg,#EFE7D6,#F5EFDF,#EFE7D6); background-size:200% 100%; animation:skeleton 1.5s infinite; }
.ev-skel__line { height:12px; background:linear-gradient(90deg,#EFE7D6,#F5EFDF,#EFE7D6); background-size:200% 100%; animation:skeleton 1.5s infinite; margin:.6rem 1.4rem; }
.ev-skel__line.short { width:50%; margin:.6rem 1.4rem 1.4rem; }
.ev-skel__body { padding:1rem 0; }
@keyframes skeleton { 0%{background-position:200% 0} 100%{background-position:-200% 0} }

/* ---------- Drawer ---------- */
.ev-drawer-overlay {
  position:fixed; inset:0; background:rgba(20,16,10,.45); backdrop-filter:blur(4px);
  z-index:3000; opacity:0; pointer-events:none; transition:opacity var(--dur);
}
.ev-drawer-overlay.is-open { opacity:1; pointer-events:auto; }
.ev-drawer {
  position:fixed; top:0; right:0; bottom:0; width:560px; max-width:92vw; z-index:3001;
  background:var(--ivory); overflow-y:auto;
  transform:translateX(105%); transition:transform .42s var(--ease-strong);
  box-shadow:-30px 0 80px rgba(20,16,10,.25);
}
.ev-drawer.is-open { transform:translateX(0); }
.ev-drawer__close {
  position:absolute; top:1.25rem; right:1.25rem; z-index:5;
  width:40px; height:40px; border-radius:50%;
  background:rgba(246,239,226,.95); border:1px solid var(--cream-border);
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  color:var(--ink-900); transition:background var(--dur);
}
.ev-drawer__close:hover { background:var(--ink-900); color:var(--ivory); border-color:var(--ink-900); }
.ev-drawer__hero {
  position:relative; aspect-ratio:16/9; overflow:hidden;
  background:linear-gradient(135deg, var(--ink-700), var(--ink-900));
  display:flex; align-items:center; justify-content:center;
}
.ev-drawer__hero img { width:100%; height:100%; object-fit:cover; }
.ev-drawer__hero i { position:absolute; font-size:5rem; color:rgba(255,255,255,.18); }
.ev-drawer__body { padding:2rem clamp(1.5rem,3vw,2.5rem); }
.ev-drawer__cat {
  display:inline-block; font-size:.66rem; text-transform:uppercase; letter-spacing:var(--ls-eyebrow);
  font-weight:700; color:var(--brass-500); margin-bottom:.85rem;
}
.ev-drawer__date {
  font-size:.95rem; color:var(--ink-700); margin-bottom:.5rem;
  font-weight:500;
}
.ev-drawer__title {
  font-family:var(--font-display); font-size:clamp(1.65rem,3vw,2.25rem); font-weight:500;
  color:var(--ink-900); letter-spacing:-.005em; line-height:1.15; margin:0 0 1.5rem;
}
.ev-drawer__venue {
  display:flex; flex-direction:column; gap:.4rem;
  padding:1.15rem 1.25rem; background:var(--ivory-2); border:1px solid var(--cream-border);
  margin-bottom:1.5rem;
}
.ev-drawer__venue strong {
  font-family:var(--font-display); font-weight:500; font-size:1.05rem; color:var(--ink-900);
}
.ev-drawer__venue address {
  font-style:normal; font-size:.88rem; color:var(--ink-500); line-height:1.55;
}
.ev-drawer__venue .ev-distance {
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.72rem; text-transform:uppercase; letter-spacing:var(--ls-caps); font-weight:700;
  color:var(--brass-500); margin-top:.3rem;
}
.ev-drawer__venue .ev-distance i { font-size:.85em; }

.ev-drawer__desc { font-size:.95rem; color:var(--ink-700); line-height:1.65; margin-bottom:1.75rem; }
.ev-drawer__actions { display:flex; flex-direction:column; gap:.6rem; }
.ev-drawer__actions a, .ev-drawer__actions button {
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 1.25rem; font-size:.78rem; font-weight:600;
  text-transform:uppercase; letter-spacing:var(--ls-caps); border:0; cursor:pointer;
  font-family:inherit; transition:background var(--dur), color var(--dur), transform var(--dur);
}
.ev-drawer__actions .ev-tickets {
  background:var(--brass-400); color:var(--ivory);
}
.ev-drawer__actions .ev-tickets:hover { background:var(--brass-500); }
.ev-drawer__actions .ev-stay {
  background:var(--ink-900); color:var(--ivory);
}
.ev-drawer__actions .ev-stay:hover { background:var(--ink-700); }
.ev-drawer__actions .ev-stay strong {
  font-family:var(--font-display); font-weight:500; text-transform:none; letter-spacing:0; font-size:.92rem;
}
.ev-drawer__actions .ev-cal {
  background:transparent; border:1px solid var(--ink-300); color:var(--ink-900);
}
.ev-drawer__actions .ev-cal:hover { background:var(--ink-900); color:var(--ivory); border-color:var(--ink-900); }

/* ---------- Mobile drawer = bottom sheet ---------- */
@media (max-width:640px){
  .ev-drawer {
    top:auto; left:0; right:0; bottom:0; width:100%; max-width:100%;
    max-height:90vh; border-radius:18px 18px 0 0;
    transform:translateY(105%); transition:transform .4s var(--ease-strong);
  }
  .ev-drawer.is-open { transform:translateY(0); }
}

/* ---------- Sidebar mobile close ---------- */
.ev-sidebar__close {
  display:none; position:absolute; top:1rem; right:1rem;
  width:36px; height:36px; border-radius:50%; border:1px solid var(--cream-border);
  background:transparent; cursor:pointer; color:var(--ink-700);
}
@media (max-width:880px){
  .ev-sidebar__close { display:inline-flex; align-items:center; justify-content:center; }
}

/* ---------- Load more ---------- */
.ev-load-more {
  display:block; margin:2.5rem auto 0; padding:1rem 2.25rem;
  background:transparent; border:1px solid var(--ink-900); color:var(--ink-900);
  font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:var(--ls-caps);
  cursor:pointer; font-family:inherit; transition:all var(--dur);
}
.ev-load-more:hover { background:var(--ink-900); color:var(--ivory); }
.ev-load-more.is-hidden { display:none; }


/* ==========================================================================
   DEVICE OPTIMIZATION — phones, tablets, foldables, touch
   Layered last so it overrides everything above for narrow viewports.
   ========================================================================== */

/* ---- Cross-platform sane defaults ---- */
html {
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:80px;       /* in-page anchor offset for fixed nav */
}
* { -webkit-tap-highlight-color:rgba(161,122,58,.18); }
img, video { max-width:100%; height:auto; }
html, body { overflow-x:hidden; max-width:100vw; }

/* iOS form-zoom prevention — inputs need ≥16px to avoid auto-zoom on focus */
input, select, textarea {
  font-size:max(16px, 1rem);
}

/* Tap-friendly defaults for any anchor/button */
button, a, [role="button"] {
  -webkit-touch-callout:none;
}

/* ---- Touch device fine-tuning (no hover, coarse pointer) ---- */
@media (hover:none) and (pointer:coarse) {
  /* Kill hover transforms — they otherwise stick after tap */
  .room-v2:hover, .attr-v2:hover, .ev-card:hover, .feature-tile:hover,
  .testi:hover { transform:none !important; }
  .feature-tile:hover { background:transparent !important; }

  /* Tap-state feedback */
  .btn-v2:active { transform:scale(.97); }
  .room-v2:active, .attr-v2:active, .ev-card:active, .feature-tile:active { opacity:.85; }

  /* Touch targets: ensure ≥44px hit area */
  .btn-v2, .nav__cta, .mobile-nav__close, .mobile-nav__links a,
  .ev-mobile-filter, .ev-card__cta, .ev-load-more, .nav__hamburger {
    min-height:44px;
  }
}

/* ---- TABLET (641-960px) ---- */
@media (min-width:641px) and (max-width:960px) {
  .hero-v2__headline { font-size:clamp(2.75rem,7vw,4rem) !important; }
  .feature-grid { grid-template-columns:repeat(2,1fr) !important; }
  .feature-tile:nth-child(2n) { border-right:0 !important; }

  /* Stats: 2 columns */
  .stats-band { grid-template-columns:repeat(2,1fr) !important; }

  /* Trust row: comfortable wrap */
  .trust-row { gap:1.75rem; }

  /* Sticky book bar — show only essentials */
  .stickybook__meta span { display:none; }
}

/* ---- LARGE PHONE / SMALL TABLET (≤640) ---- */
@media (max-width:640px) {
  /* --- Nav trim --- */
  .nav { height:64px !important; padding:0 1rem !important; }
  .nav__logo img { height:38px !important; }
  .nav__phone { display:none; }                             /* CTA + hamburger only */
  .nav__cta { padding:.55rem 1rem !important; font-size:.62rem !important; }
  .nav__hamburger { width:24px !important; height:18px !important; }

  /* --- Heroes --- */
  .hero-v2 { min-height:88svh; padding-bottom:4rem; }
  .hero-v2__content { padding:5rem 1.25rem 2.5rem !important; }
  .hero-v2__headline { font-size:clamp(2.25rem,9vw,3.25rem) !important; line-height:1.05 !important; max-width:18ch !important; }
  .hero-v2__sub { font-size:1rem !important; line-height:1.55 !important; max-width:34ch !important; }
  .hero-v2__eyebrow { font-size:.7rem !important; letter-spacing:.22em !important; }
  .hero-v2__meta { gap:.75rem 1.4rem !important; font-size:.72rem !important; }
  .hero-v2__actions, .hero-v2__cta-row { flex-direction:column !important; gap:.6rem !important; width:100% !important; align-items:stretch !important; }
  .hero-v2__actions .btn-v2, .hero-v2__cta-row .btn-v2 { width:100% !important; }

  .hero-compact { min-height:54vh; padding:6rem 1.25rem 3rem !important; }
  .hero-compact__title { font-size:clamp(2rem,8.5vw,2.6rem) !important; }
  .hero-compact__sub { font-size:.97rem !important; line-height:1.55; }
  .hero-compact__eyebrow { font-size:.7rem !important; letter-spacing:.2em !important; }

  /* --- Booking widget --- */
  .book__field { padding:1rem 1.25rem !important; }
  .book__input { font-size:16px !important; padding:.25rem 0 !important; }
  .book__cta { padding:1rem !important; min-height:52px !important; }

  /* --- Sticky booking bar — phone: hide meta, just keep tappable CTAs --- */
  .stickybook { padding:.6rem .85rem !important; }
  .stickybook__inner { gap:.5rem !important; justify-content:flex-end !important; }
  .stickybook__meta { display:none !important; }     /* truncated text on phones is worse than no text */
  .stickybook__actions { gap:.4rem !important; flex:1; max-width:100%; }
  .stickybook__actions .btn-v2 { flex:1; padding:.7rem .9rem !important; font-size:.62rem !important; min-height:46px; letter-spacing:.1em !important; }
  .stickybook__actions .btn-v2 i { font-size:.85em; }

  /* --- Section padding --- */
  .section-v2 { padding:3rem 0 !important; }
  .section-head { margin-bottom:2.25rem !important; }
  .section-head__title { font-size:clamp(1.75rem,6.5vw,2.4rem) !important; line-height:1.1 !important; }
  .section-head__sub { font-size:.97rem !important; line-height:1.6 !important; }

  /* --- Stats band — bigger gap, tighter padding --- */
  .stats-band { gap:.5rem; }
  .stat { padding:1.1rem .5rem; }
  .stat__value { font-size:2rem !important; }
  .stat__label { font-size:.66rem; margin-top:.45rem; }

  /* --- Trust row --- */
  .trust-row { gap:1.1rem; padding:1.25rem 1rem; flex-direction:column; align-items:flex-start; }
  .trust-row__item { font-size:.7rem; }

  /* --- Feature tiles: stack cleanly without orphan borders --- */
  .feature-grid { grid-template-columns:1fr !important; }
  .feature-tile {
    border-right:0 !important;
    padding:1.5rem 1.25rem !important;
  }
  .feature-tile:last-child { border-bottom:0 !important; }
  .feature-tile h4 { font-size:1.05rem !important; }
  .feature-tile p { font-size:.92rem !important; line-height:1.55; }

  /* --- Attraction grid: 1 column --- */
  .attr-grid { grid-template-columns:1fr !important; gap:1rem !important; }
  .attr-v2 { aspect-ratio:16/10; }
  .attr-v2__title { font-size:1.2rem !important; }
  .attr-v2__cat { font-size:.62rem; padding:.3rem .55rem; }
  .attr-v2__meta { font-size:.78rem; gap:.5rem 1rem; flex-wrap:wrap; }

  /* --- Rooms: single col, padding tighter --- */
  .rooms-v2 { gap:1rem !important; }
  .room-v2__body { padding:1.5rem !important; }
  .room-v2__title { font-size:1.45rem !important; }
  .room-v2__desc { font-size:.95rem !important; line-height:1.55; }

  /* --- Testimonials carousel --- */
  .testi { padding:0 .5rem; }
  .testi__quote { font-size:1.1rem !important; line-height:1.5 !important; }
  .testi__nav { gap:.4rem; }

  /* --- CTA band --- */
  .cta-band { padding:3rem 1.25rem !important; }
  .cta-band h3 { font-size:1.85rem !important; line-height:1.15 !important; }
  .cta-band p { font-size:.97rem !important; }
  .cta-band__actions { flex-direction:column; width:100%; gap:.6rem; }
  .cta-band__actions .btn-v2 { width:100%; }

  /* --- Footer --- */
  .footer { padding:3rem 0 1.5rem !important; }
  .footer__grid { gap:2rem !important; padding-bottom:2rem !important; margin-bottom:1.25rem !important; }
  .footer h4 { margin-bottom:.85rem !important; }

  /* --- Container padding tighter --- */
  .container-xl, .container-wide { padding:0 1rem !important; }

  /* --- Buttons full-width by default in stacked CTAs --- */
  .btn-v2 { padding:.95rem 1.4rem; min-height:48px; }

  /* --- Lightbox controls --- */
  .lb2__nav { width:48px; height:48px; }
  .lb2__close { width:44px; height:44px; }
  .lb2__caption { font-size:.85rem; padding:.85rem 1rem; }

  /* --- Events page mobile niceties --- */
  .ev-card__title { font-size:1.05rem !important; }
  .ev-card__body { padding:1rem 1.15rem 1.15rem !important; }
  .ev-controls { flex-wrap:wrap; gap:.75rem; }
  .ev-grid { gap:1rem; grid-template-columns:1fr !important; }
  .ev-drawer__body { padding:1.5rem 1.25rem !important; }
  .ev-drawer__title { font-size:1.5rem !important; }
  .ev-drawer__actions a, .ev-drawer__actions button { padding:.95rem 1rem; font-size:.72rem; }

  /* --- FAQ --- */
  .faq-search input { font-size:16px !important; padding:.85rem 1rem !important; }
  .faq-v2__q { font-size:1rem !important; padding:1.1rem .25rem 1.1rem 0 !important; }
  .faq-v2__a { font-size:.95rem !important; line-height:1.6; }

  /* --- Masonry tighter --- */
  .masonry { grid-template-columns:repeat(2,1fr) !important; gap:.5rem !important; grid-auto-rows:120px !important; }

  /* --- Split sections image margin --- */
  .split { gap:1.5rem !important; }
  .split__media { aspect-ratio:16/10; }

  /* --- Leaflet map --- */
  .leaflet-wrap { height:340px !important; }

  /* --- Tabs --- */
  .amtabs__nav, .filter-tabs { gap:.4rem; flex-wrap:wrap; }
  .amtabs__nav button, .filter-tabs button { font-size:.66rem; padding:.55rem .85rem; }
}

/* ---- TINY PHONES (≤380px) — final tightening ---- */
@media (max-width:380px) {
  .nav__cta { padding:.5rem .75rem !important; font-size:.58rem !important; }
  .hero-v2__headline { font-size:2rem !important; }
  .hero-compact__title { font-size:1.85rem !important; }
  .stat__value { font-size:1.7rem !important; }
  .section-head__title { font-size:1.65rem !important; }
}

/* ---- Landscape phone (short height) ---- */
@media (max-height:480px) and (orientation:landscape) {
  .hero-v2 { min-height:100vh; padding:5rem 1.25rem 2rem; }
  .hero-compact { min-height:90vh; padding:4.5rem 1.25rem 2rem !important; }
  .stickybook { display:none; } /* save vertical space */
}

/* ---- Reduced motion guard for new transitions ---- */
@media (prefers-reduced-motion:reduce) {
  .room-v2, .attr-v2, .ev-card, .feature-tile,
  .stickybook, .ev-drawer, .ev-sidebar { transition:none !important; }
  .ken-burns, .reveal, [data-reveal] { animation:none !important; transition:none !important; transform:none !important; }
}
