/* =========================================================================
   Velvet Cove Resort & Casino — design system
   Velvet plum / burgundy base with a warm brass accent and a jazz-club
   editorial layout: a centered hero instead of a split panel, alternating
   image/copy rows for amenities and dining, a stepped vertical process
   instead of a horizontal timeline, and a snap-scroll quote strip for
   testimonials. System-font pairing only (no web fonts, no CDN): a
   humanist serif for display type, a geometric sans for body copy.
   Hand-written, no framework.
   ========================================================================= */

:root {
  --vc-ink-950: #0f0509;
  --vc-ink-900: #170a13;
  --vc-plum-800: #23101d;
  --vc-plum-700: #331528;
  --vc-plum-600: #481c37;
  --vc-line: rgba(200, 150, 63, 0.12);
  --vc-line-strong: rgba(200, 150, 63, 0.26);
  --vc-brass: #c8963f;
  --vc-brass-light: #e6bd72;
  --vc-brass-dark: #93702f;
  --vc-burgundy: #8a1f3d;
  --vc-burgundy-light: #b73a5c;
  --vc-white: #ffffff;
  --vc-cream: #f4e9da;
  --vc-smoke-100: #ecdfcd;
  --vc-smoke-300: #c9b8a4;
  --vc-smoke-500: #96856f;
  --vc-smoke-600: #756554;

  --vc-font-display: Cambria, 'Constantia', Georgia, 'Iowan Old Style', 'Times New Roman', serif;
  --vc-font-body: 'Century Gothic', 'Avenir Next', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

  --vc-wrap-w: 1180px;
  --vc-radius: 3px;
  --vc-radius-lg: 10px;
  --vc-shadow-sm: 0 3px 14px rgba(0, 0, 0, 0.35);
  --vc-shadow-md: 0 20px 46px rgba(0, 0, 0, 0.48);
  --vc-shadow-glow: 0 18px 40px rgba(200, 150, 63, 0.2);
  --vc-ease: 260ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.vc-body {
  margin: 0;
  font-family: var(--vc-font-body);
  color: var(--vc-smoke-300);
  background: var(--vc-ink-900);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; margin: 0; padding: 0; }
button { font-family: inherit; }
h1, h2, h3, h4 {
  font-family: var(--vc-font-display);
  color: var(--vc-cream);
  line-height: 1.2;
  margin: 0 0 0.5em;
  font-weight: 700;
}
p { margin: 0 0 1em; color: var(--vc-smoke-300); }
address { font-style: normal; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

.vc-skip {
  position: absolute;
  left: -999px;
  top: 0;
  background: var(--vc-brass);
  color: var(--vc-ink-950);
  padding: 0.75em 1.25em;
  z-index: 1000;
  font-weight: 700;
}
.vc-skip:focus { left: 1em; top: 1em; }

.vc-wrap {
  width: 100%;
  max-width: var(--vc-wrap-w);
  margin: 0 auto;
  padding: 0 24px;
}

/* ---------- Buttons ---------- */
.vc-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.85em 1.7em;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: transform var(--vc-ease), box-shadow var(--vc-ease), background var(--vc-ease), color var(--vc-ease), border-color var(--vc-ease);
  border: 1px solid transparent;
  cursor: pointer;
}
.vc-btn--primary {
  background: linear-gradient(135deg, var(--vc-brass-light), var(--vc-brass));
  color: var(--vc-ink-950);
}
.vc-btn--primary:hover { background: var(--vc-brass-light); transform: translateY(-2px); box-shadow: var(--vc-shadow-glow); }
.vc-btn--ghost {
  background: transparent;
  border-color: var(--vc-line-strong);
  color: var(--vc-smoke-100);
}
.vc-btn--ghost:hover { border-color: var(--vc-brass); color: var(--vc-brass-light); transform: translateY(-2px); }
.vc-btn--outline {
  background: transparent;
  border-color: var(--vc-brass);
  color: var(--vc-brass-light);
}
.vc-btn--outline:hover { background: rgba(200, 150, 63, 0.1); transform: translateY(-2px); }
.vc-btn--block { display: flex; justify-content: center; width: 100%; }

/* ---------- Ribbon (marquee notices) ---------- */
.vc-ribbon {
  background: var(--vc-ink-950);
  border-bottom: 1px solid var(--vc-line);
  overflow: hidden;
  white-space: nowrap;
}
.vc-ribbon__track {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 9px 0;
  font-size: 0.76rem;
  letter-spacing: 0.03em;
  color: var(--vc-smoke-500);
  animation: vc-marquee 34s linear infinite;
}
.vc-ribbon__track span { flex-shrink: 0; padding-right: 14px; }
.vc-ribbon__sep { color: var(--vc-brass-dark); font-size: 0.6rem; }
@keyframes vc-marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.vc-ribbon__track::after {
  content: "Live jazz on the Cove Deck every Thursday through Sunday night \2666 The gaming floor and front desk never close \2666 Complimentary valet for all overnight guests \2666 Riverfront rooms book fastest on weekends \2014 reserve early \2666";
}
@media (prefers-reduced-motion: reduce) { .vc-ribbon__track { animation: none; } }
@media (max-width: 720px) { .vc-ribbon { display: none; } }

/* ---------- Header ---------- */
.vc-header {
  background: rgba(23, 10, 19, 0.92);
  backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid var(--vc-line);
  position: sticky;
  top: 0;
  z-index: 200;
  transition: padding var(--vc-ease);
}
.vc-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: 88px;
  transition: height var(--vc-ease);
}
.vc-header.is-compact .vc-header__inner { height: 66px; }

.vc-brand { display: flex; align-items: center; gap: 12px; }
.vc-brand__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--vc-brass);
  color: var(--vc-burgundy-light);
  font-size: 1.1rem;
  background: rgba(200, 150, 63, 0.08);
}
.vc-brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.vc-brand__name { color: var(--vc-cream); font-family: var(--vc-font-display); font-size: 1.24rem; font-weight: 700; }
.vc-brand__tag { color: var(--vc-brass-dark); font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; }

.vc-nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 260;
}
.vc-nav-toggle span {
  display: block;
  height: 1px;
  background: var(--vc-smoke-100);
  transition: transform var(--vc-ease), opacity var(--vc-ease);
}
.vc-nav-toggle.is-active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.vc-nav-toggle.is-active span:nth-child(2) { opacity: 0; }
.vc-nav-toggle.is-active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.vc-nav { flex: 1; display: flex; justify-content: center; }
.vc-nav__list { display: flex; align-items: center; gap: 24px; }
.vc-nav__item > a {
  color: var(--vc-smoke-300);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 8px 0;
  display: inline-block;
  border-bottom: 1px solid transparent;
  transition: border-color var(--vc-ease), color var(--vc-ease);
}
.vc-nav__item > a:hover,
.vc-nav__item.is-active > a { border-color: var(--vc-brass); color: var(--vc-white); }

.vc-header__actions { display: flex; align-items: center; gap: 16px; }
.vc-header__phone { font-size: 0.84rem; font-weight: 700; color: var(--vc-smoke-100); }
.vc-header__phone:hover { color: var(--vc-brass-light); }

@media (max-width: 980px) {
  .vc-nav-toggle { display: flex; }
  .vc-header__phone { display: none; }
  .vc-nav {
    position: fixed;
    inset: 0;
    top: 0;
    right: 0;
    width: min(84vw, 380px);
    left: auto;
    background: var(--vc-ink-950);
    border-left: 1px solid var(--vc-line);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 40px;
    transform: translateX(100%);
    transition: transform var(--vc-ease);
    z-index: 250;
  }
  .vc-nav.is-open { transform: translateX(0); }
  .vc-nav__list { flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; }
  .vc-nav__item { width: 100%; border-bottom: 1px solid var(--vc-line); }
  .vc-nav__item > a { display: block; padding: 15px 0; font-size: 1rem; }
}

/* ---------- Hero (centered, not split) ---------- */
.vc-hero {
  position: relative;
  background:
    radial-gradient(circle at 50% -10%, rgba(200, 150, 63, 0.16), transparent 46%),
    radial-gradient(circle at 90% 90%, rgba(138, 31, 61, 0.24), transparent 50%),
    var(--vc-ink-900);
  padding: 88px 0 64px;
  overflow: hidden;
  border-bottom: 1px solid var(--vc-line);
  text-align: center;
}
.vc-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--vc-brass-light);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 0.72rem;
  font-weight: 700;
  margin-bottom: 22px;
}
.vc-hero h1 { font-size: clamp(2.1rem, 4.4vw, 3.5rem); max-width: 20ch; margin: 0 auto 20px; }
.vc-hero__lede { color: var(--vc-smoke-300); font-size: 1.08rem; max-width: 58ch; margin: 0 auto; }
.vc-hero__actions { display: flex; gap: 14px; margin-top: 32px; justify-content: center; flex-wrap: wrap; }

/* Reservation bar — horizontal strip beneath the hero, not a side panel */
.vc-resbar {
  position: relative;
  margin-top: 52px;
  background: var(--vc-plum-800);
  border: 1px solid var(--vc-line-strong);
  border-radius: var(--vc-radius-lg);
  padding: 26px 28px;
  box-shadow: var(--vc-shadow-md);
  text-align: left;
}
.vc-resbar__form { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 18px; align-items: end; }
.vc-resbar label { display: block; font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--vc-smoke-500); margin-bottom: 7px; }
.vc-resbar input, .vc-resbar select {
  width: 100%;
  font-family: var(--vc-font-body);
  font-size: 0.88rem;
  padding: 11px 12px;
  border: 1px solid var(--vc-line-strong);
  border-radius: var(--vc-radius);
  background: var(--vc-ink-900);
  color: var(--vc-smoke-100);
}
.vc-resbar input:focus, .vc-resbar select:focus { outline: none; border-color: var(--vc-brass); }
@media (max-width: 780px) { .vc-resbar__form { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .vc-resbar__form { grid-template-columns: 1fr; } }

/* ---------- Stat ribbon ---------- */
.vc-stats {
  background: var(--vc-plum-800);
  border-bottom: 1px solid var(--vc-line);
}
.vc-stats__row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 30px 0;
}
.vc-stat { text-align: center; border-left: 1px solid var(--vc-line); padding: 4px 12px; }
.vc-stat:first-child { border-left: none; }
.vc-stat__mark { color: var(--vc-brass-dark); font-size: 0.9rem; margin-bottom: 4px; display: block; }
.vc-stat__num { display: block; font-family: var(--vc-font-display); font-size: 1.7rem; font-weight: 700; color: var(--vc-brass-light); }
.vc-stat__label { font-size: 0.72rem; color: var(--vc-smoke-500); text-transform: uppercase; letter-spacing: 0.08em; }
@media (max-width: 780px) {
  .vc-stats__row { grid-template-columns: repeat(2, 1fr); row-gap: 22px; }
  .vc-stat:nth-child(3) { border-left: none; }
}

/* ---------- Page header (interior pages) ---------- */
.vc-page-header {
  position: relative;
  background: radial-gradient(circle at 10% 0%, rgba(138,31,61,0.24), transparent 48%), var(--vc-plum-800);
  padding: 56px 0 64px;
  border-bottom: 1px solid var(--vc-line);
}
.vc-breadcrumb { color: var(--vc-brass-light); font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 14px; font-weight: 700; display: block; }
.vc-page-header h1 { font-size: clamp(1.8rem, 3.6vw, 2.55rem); max-width: 26ch; }
.vc-page-header .vc-lede { color: var(--vc-smoke-300); max-width: 64ch; font-size: 1.02rem; margin: 0; }

/* ---------- Sections ---------- */
.vc-section { padding: 80px 0; }
.vc-section--alt { background: var(--vc-plum-800); border-top: 1px solid var(--vc-line); border-bottom: 1px solid var(--vc-line); }
.vc-section--tight { padding: 54px 0; }
.vc-section__head { max-width: 680px; margin: 0 auto 46px; text-align: center; }
.vc-section__head.vc-left { margin: 0 0 38px; text-align: left; }
.vc-eyebrow {
  display: inline-block;
  color: var(--vc-brass-light);
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
}
.vc-rule { display: block; width: 46px; height: 2px; margin: 14px auto 18px; background: var(--vc-brass); }
.vc-section__head.vc-left .vc-rule { margin-left: 0; }
.vc-section__head h2 { font-size: clamp(1.55rem, 3vw, 2.15rem); }
.vc-section__head p { font-size: 1.01rem; }

/* ---------- Editorial rows (amenities / dining — alternating, not cards) ---------- */
.vc-editorial { display: flex; flex-direction: column; gap: 64px; }
.vc-editorial__row { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 48px; align-items: center; }
.vc-editorial__row.is-flip { grid-template-columns: 1.15fr 0.85fr; }
.vc-editorial__row.is-flip .vc-editorial__art { order: 2; }
.vc-editorial__art {
  position: relative;
  min-height: 260px;
  border-radius: var(--vc-radius-lg);
  border: 1px solid var(--vc-line-strong);
  overflow: hidden;
  box-shadow: var(--vc-shadow-sm);
}
.vc-editorial__art::before {
  content: "";
  position: absolute;
  width: 22px;
  height: 22px;
  border: 1px solid var(--vc-brass);
  top: 12px;
  left: 12px;
  border-right: none;
  border-bottom: none;
}
.vc-editorial__art::after {
  content: "";
  position: absolute;
  width: 22px;
  height: 22px;
  border: 1px solid var(--vc-brass);
  bottom: 12px;
  right: 12px;
  border-left: none;
  border-top: none;
}
.vc-editorial__num {
  position: absolute;
  bottom: 18px;
  left: 20px;
  font-family: var(--vc-font-display);
  font-size: 2.4rem;
  color: rgba(244, 233, 218, 0.85);
  text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}
.vc-editorial__copy .vc-eyebrow { display: block; margin-bottom: 10px; }
.vc-editorial__copy h3 { font-size: 1.4rem; }
.vc-editorial__link { display: inline-block; margin-top: 8px; color: var(--vc-brass-light); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.03em; text-transform: uppercase; border-bottom: 1px solid transparent; transition: border-color var(--vc-ease); }
.vc-editorial__link:hover { border-color: var(--vc-brass-light); }
@media (max-width: 860px) {
  .vc-editorial__row, .vc-editorial__row.is-flip { grid-template-columns: 1fr; }
  .vc-editorial__row.is-flip .vc-editorial__art { order: 0; }
}

/* Scene tints for CSS-only editorial art blocks (no photography) */
.vc-scene--1 { background: radial-gradient(circle at 25% 25%, rgba(200,150,63,0.5), transparent 55%), linear-gradient(135deg, #331528, #481c37); }
.vc-scene--2 { background: radial-gradient(circle at 75% 30%, rgba(183,58,92,0.45), transparent 55%), linear-gradient(135deg, #170a13, #331528); }
.vc-scene--3 { background: radial-gradient(circle at 50% 80%, rgba(200,150,63,0.35), transparent 60%), linear-gradient(135deg, #0f0509, #23101d); }
.vc-scene--4 { background: radial-gradient(circle at 30% 70%, rgba(183,58,92,0.4), transparent 55%), linear-gradient(135deg, #23101d, #0f0509); }
.vc-scene--5 { background: radial-gradient(circle at 70% 20%, rgba(200,150,63,0.45), transparent 55%), linear-gradient(135deg, #331528, #170a13); }
.vc-scene--6 { background: radial-gradient(circle at 40% 40%, rgba(183,58,92,0.35), transparent 55%), linear-gradient(135deg, #0f0509, #331528); }
.vc-scene--7 { background: radial-gradient(circle at 60% 60%, rgba(200,150,63,0.4), transparent 55%), linear-gradient(135deg, #170a13, #0f0509); }
.vc-scene--8 { background: radial-gradient(circle at 25% 55%, rgba(183,58,92,0.4), transparent 55%), linear-gradient(135deg, #23101d, #331528); }
.vc-scene--9 { background: radial-gradient(circle at 75% 75%, rgba(200,150,63,0.4), transparent 55%), linear-gradient(135deg, #0f0509, #170a13); }

/* ---------- Pull-quote differentiator ---------- */
.vc-quote-split { display: grid; grid-template-columns: 1fr 1fr; gap: 54px; align-items: center; }
.vc-quote-mark { font-family: var(--vc-font-display); font-size: 4.2rem; color: var(--vc-brass); line-height: 1; margin-bottom: 6px; }
.vc-quote-split blockquote { font-family: var(--vc-font-display); font-size: 1.5rem; color: var(--vc-cream); line-height: 1.42; margin: 0 0 18px; }
.vc-quote-split cite { font-style: normal; color: var(--vc-smoke-500); font-size: 0.86rem; }
@media (max-width: 840px) { .vc-quote-split { grid-template-columns: 1fr; } }

.vc-numlist { display: flex; flex-direction: column; }
.vc-numlist__row { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 0; border-top: 1px solid var(--vc-line); }
.vc-numlist__row:last-child { border-bottom: 1px solid var(--vc-line); }
.vc-numlist__row span:first-child { color: var(--vc-smoke-300); font-size: 0.94rem; }
.vc-numlist__row strong { font-family: var(--vc-font-display); color: var(--vc-brass-light); font-size: 1.3rem; }

/* ---------- Stepped process (vertical, not horizontal) ---------- */
.vc-steps { position: relative; max-width: 720px; margin: 0 auto; }
.vc-steps::before {
  content: "";
  position: absolute;
  left: 21px;
  top: 10px;
  bottom: 10px;
  width: 1px;
  background: var(--vc-line-strong);
}
.vc-step { position: relative; display: flex; gap: 24px; padding-bottom: 40px; }
.vc-step:last-child { padding-bottom: 0; }
.vc-step__num {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--vc-ink-900);
  border: 1px solid var(--vc-brass);
  color: var(--vc-brass-light);
  font-family: var(--vc-font-display);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vc-step__body h3 { font-size: 1.1rem; margin-bottom: 6px; }
.vc-step__body p { margin: 0; }

/* ---------- Testimonial snap-scroll strip ---------- */
.vc-quote-strip {
  display: flex;
  gap: 22px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 14px;
  -webkit-overflow-scrolling: touch;
}
.vc-quote-strip::-webkit-scrollbar { height: 6px; }
.vc-quote-strip::-webkit-scrollbar-thumb { background: var(--vc-line-strong); border-radius: 6px; }
.vc-quote-card {
  scroll-snap-align: start;
  flex: 0 0 min(340px, 84vw);
  background: var(--vc-plum-800);
  border: 1px solid var(--vc-line);
  border-radius: var(--vc-radius-lg);
  padding: 28px 26px;
}
.vc-quote-card .vc-stars { color: var(--vc-brass); letter-spacing: 3px; font-size: 0.84rem; margin-bottom: 12px; display: block; }
.vc-quote-card p { color: var(--vc-smoke-100); font-size: 0.96rem; font-style: italic; }
.vc-quote-card__author { display: flex; align-items: center; gap: 12px; margin-top: 18px; }
.vc-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(200, 150, 63, 0.1);
  border: 1px solid rgba(200, 150, 63, 0.35);
  color: var(--vc-brass-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--vc-font-display);
  font-weight: 700;
  flex-shrink: 0;
}
.vc-quote-card__author strong { display: block; color: var(--vc-cream); font-size: 0.92rem; font-style: normal; }
.vc-quote-card__author span { font-size: 0.76rem; color: var(--vc-smoke-500); }

/* ---------- Generic cards (rooms / packages / team) ---------- */
.vc-grid { display: grid; gap: 24px; }
.vc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.vc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.vc-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .vc-grid--3, .vc-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .vc-grid--2, .vc-grid--3, .vc-grid--4 { grid-template-columns: 1fr; } }

.vc-card {
  background: var(--vc-plum-800);
  border: 1px solid var(--vc-line);
  border-radius: var(--vc-radius-lg);
  padding: 28px 24px;
  transition: transform var(--vc-ease), box-shadow var(--vc-ease), border-color var(--vc-ease);
}
.vc-card:hover { transform: translateY(-4px); box-shadow: var(--vc-shadow-md); border-color: var(--vc-brass); }
.vc-card__mark {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(200, 150, 63, 0.08);
  color: var(--vc-brass-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--vc-font-display);
  font-weight: 700;
  margin-bottom: 16px;
  border: 1px solid rgba(200, 150, 63, 0.35);
}
.vc-card h3 { font-size: 1.14rem; }
.vc-card p:last-child { margin-bottom: 0; }

.vc-room-card__price { font-family: var(--vc-font-display); color: var(--vc-brass-light); font-size: 1.2rem; margin-top: 10px; }
.vc-room-card__price span { font-family: var(--vc-font-body); color: var(--vc-smoke-500); font-size: 0.78rem; }

/* ---------- Team ---------- */
.vc-team-card { text-align: center; }
.vc-team-photo {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  margin: 0 auto 16px;
  background: var(--vc-plum-600);
  color: var(--vc-brass-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--vc-font-display);
  font-size: 1.4rem;
  font-weight: 700;
  border: 1px solid var(--vc-brass);
}
.vc-team-role { color: var(--vc-brass-light); font-size: 0.76rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 10px; display: block; }

/* ---------- Table (rates / comparisons) ---------- */
.vc-table-wrap { overflow-x: auto; border: 1px solid var(--vc-line); border-radius: var(--vc-radius-lg); }
.vc-table { width: 100%; border-collapse: collapse; background: var(--vc-plum-800); min-width: 560px; }
.vc-table th, .vc-table td { padding: 15px 18px; text-align: left; border-bottom: 1px solid var(--vc-line); font-size: 0.9rem; }
.vc-table thead th { background: var(--vc-ink-950); color: var(--vc-brass-light); font-weight: 700; text-transform: uppercase; font-size: 0.7rem; letter-spacing: 0.08em; }
.vc-table tbody tr:hover { background: var(--vc-plum-600); }
.vc-table tbody tr:last-child td { border-bottom: none; }

/* ---------- Pricing cards ---------- */
.vc-price-card { display: flex; flex-direction: column; }
.vc-price-card .vc-price { font-family: var(--vc-font-display); font-size: 2rem; font-weight: 700; color: var(--vc-cream); margin: 10px 0 4px; }
.vc-price-card .vc-price span { font-family: var(--vc-font-body); font-size: 0.84rem; color: var(--vc-smoke-500); font-weight: 500; }
.vc-price-card ul { margin: 18px 0; display: flex; flex-direction: column; gap: 10px; }
.vc-price-card li { padding-left: 22px; position: relative; font-size: 0.88rem; color: var(--vc-smoke-300); }
.vc-price-card li::before { content: "\2666"; position: absolute; left: 0; top: -1px; color: var(--vc-brass); font-size: 0.76rem; }
.vc-price-card--featured { border-color: var(--vc-brass); box-shadow: var(--vc-shadow-glow); position: relative; }
.vc-price-card--featured::before {
  content: "Guest Favorite";
  position: absolute;
  top: -13px;
  left: 24px;
  background: var(--vc-brass);
  color: var(--vc-ink-950);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 20px;
}

/* ---------- CTA band ---------- */
.vc-cta {
  background: linear-gradient(135deg, var(--vc-ink-950), var(--vc-plum-800));
  position: relative;
  text-align: center;
  padding: 76px 0 70px;
  border-top: 1px solid var(--vc-line);
  overflow: hidden;
  clip-path: polygon(0 3%, 100% 0, 100% 100%, 0 100%);
}
.vc-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 0%, rgba(200,150,63,0.18), transparent 55%);
  pointer-events: none;
}
.vc-cta__inner { position: relative; }
.vc-cta h2 { color: var(--vc-cream); }
.vc-cta p { color: var(--vc-smoke-300); max-width: 56ch; margin: 0 auto 26px; }
.vc-cta__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ---------- Amenity ledger (compact list, used on amenities.php) ---------- */
.vc-ledger { display: flex; flex-direction: column; }
.vc-ledger__row {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 0;
  border-top: 1px solid var(--vc-line);
}
.vc-ledger__row:last-child { border-bottom: 1px solid var(--vc-line); }
.vc-ledger__row h3 { font-size: 1.02rem; margin-bottom: 4px; }
.vc-ledger__row p { margin: 0; max-width: 52ch; }
.vc-ledger__tag { color: var(--vc-brass-dark); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; flex-shrink: 0; padding-top: 4px; }

/* ---------- Gallery (CSS columns masonry, no photography) ---------- */
.vc-masonry { column-count: 3; column-gap: 20px; }
.vc-masonry__tile {
  break-inside: avoid;
  margin-bottom: 20px;
  position: relative;
  border-radius: var(--vc-radius-lg);
  border: 1px solid var(--vc-line-strong);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 18px;
  box-shadow: var(--vc-shadow-sm);
}
.vc-masonry__tile span { position: relative; color: var(--vc-cream); font-family: var(--vc-font-display); font-size: 1rem; text-shadow: 0 2px 10px rgba(0,0,0,0.6); }
.vc-masonry__tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 42%, rgba(15, 5, 9, 0.78)); }
.vc-masonry__tile--sm { min-height: 160px; }
.vc-masonry__tile--md { min-height: 230px; }
.vc-masonry__tile--lg { min-height: 300px; }
@media (max-width: 860px) { .vc-masonry { column-count: 2; } }
@media (max-width: 540px) { .vc-masonry { column-count: 1; } }

/* ---------- FAQ (details/summary ledger, no JS) ---------- */
.vc-faq-item {
  border-bottom: 1px solid var(--vc-line);
  padding: 20px 0;
}
.vc-faq-item summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--vc-cream);
  font-size: 1rem;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.vc-faq-item summary::-webkit-details-marker { display: none; }
.vc-faq-item summary::after { content: "+"; font-size: 1.25rem; color: var(--vc-brass); font-family: var(--vc-font-display); }
.vc-faq-item[open] summary::after { content: "\2212"; }
.vc-faq-item p { margin-top: 12px; }

/* ---------- Forms ---------- */
.vc-form-card {
  background: var(--vc-plum-800);
  border: 1px solid var(--vc-line);
  border-radius: var(--vc-radius-lg);
  padding: 34px;
  box-shadow: var(--vc-shadow-sm);
}
.vc-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
@media (max-width: 640px) { .vc-form-row { grid-template-columns: 1fr; } }
.vc-form-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.vc-form-field label { font-weight: 700; font-size: 0.84rem; color: var(--vc-smoke-100); }
.vc-form-field input,
.vc-form-field select,
.vc-form-field textarea {
  font-family: var(--vc-font-body);
  font-size: 0.92rem;
  padding: 12px 14px;
  border: 1px solid var(--vc-line-strong);
  border-radius: var(--vc-radius);
  background: var(--vc-ink-900);
  color: var(--vc-smoke-100);
  transition: border-color var(--vc-ease), box-shadow var(--vc-ease);
}
.vc-form-field input:focus,
.vc-form-field select:focus,
.vc-form-field textarea:focus {
  outline: none;
  border-color: var(--vc-brass);
  box-shadow: 0 0 0 3px rgba(200, 150, 63, 0.18);
}
.vc-form-note { font-size: 0.82rem; color: var(--vc-smoke-500); }

/* ---------- Locate panel (contact / directions) ---------- */
.vc-locate {
  position: relative;
  height: 220px;
  border-radius: var(--vc-radius-lg);
  background: var(--vc-plum-800);
  overflow: hidden;
  border: 1px solid var(--vc-line-strong);
}
.vc-locate--lg { height: 300px; }
.vc-locate__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(200, 150, 63, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(200, 150, 63, 0.08) 1px, transparent 1px);
  background-size: 26px 26px;
}
.vc-locate__pin {
  position: absolute;
  top: 44%;
  left: 50%;
  width: 14px;
  height: 14px;
  background: var(--vc-brass);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 8px rgba(200, 150, 63, 0.16);
}
.vc-locate__coords {
  position: absolute;
  bottom: 12px;
  left: 14px;
  color: var(--vc-smoke-500);
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}
.vc-locate__label {
  position: absolute;
  top: 12px;
  right: 16px;
  color: var(--vc-brass-light);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* ---------- Blog ---------- */
.vc-post-card { display: flex; flex-direction: column; }
.vc-post-meta { font-size: 0.74rem; color: var(--vc-brass-light); text-transform: uppercase; letter-spacing: 0.07em; margin-bottom: 10px; font-weight: 700; }
.vc-post-card h3 { font-size: 1.12rem; }
.vc-article { max-width: 720px; margin: 0 auto; }
.vc-article h2 { margin-top: 1.6em; font-size: 1.45rem; }
.vc-article h3 { margin-top: 1.3em; font-size: 1.15rem; }
.vc-article ul, .vc-article ol { margin: 0 0 1.2em; padding-left: 1.4em; color: var(--vc-smoke-300); list-style: disc; }
.vc-article ol { list-style: decimal; }
.vc-article li { margin-bottom: 0.5em; }
.vc-article blockquote {
  border-left: 2px solid var(--vc-brass);
  margin: 1.7em 0;
  padding: 0.4em 0 0.4em 1.5em;
  font-style: italic;
  color: var(--vc-smoke-100);
  font-size: 1.06rem;
}
.vc-article-header { text-align: center; margin-bottom: 36px; }
.vc-article-header .vc-post-meta { margin-bottom: 14px; }

/* ---------- Footer ---------- */
.vc-footer { background: var(--vc-ink-950); color: var(--vc-smoke-500); padding: 64px 0 0; }
.vc-footer__top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 32px;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--vc-line);
}
@media (max-width: 960px) { .vc-footer__top { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .vc-footer__top { grid-template-columns: 1fr; } }
.vc-brand--footer { margin-bottom: 16px; }
.vc-footer__stay { margin-top: 20px; padding-top: 18px; border-top: 1px dashed var(--vc-line); }
.vc-footer__stay h3 { color: var(--vc-brass-light); font-family: var(--vc-font-body); font-size: 0.84rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 10px; }
.vc-footer__col h3 { color: var(--vc-brass-light); font-family: var(--vc-font-body); font-size: 0.84rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 18px; }
.vc-footer address { font-size: 0.88rem; margin-bottom: 10px; }
.vc-footer a:hover { color: var(--vc-brass-light); }
.vc-hours li { display: flex; justify-content: space-between; gap: 12px; font-size: 0.8rem; padding: 4px 0; }
.vc-footer__links li { margin-bottom: 9px; font-size: 0.86rem; }
.vc-footer__bottom { padding: 22px 0; }
.vc-footer__bottom-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; font-size: 0.74rem; }

/* ---------- 404 ---------- */
.vc-error { text-align: center; padding: 110px 0; }
.vc-error .vc-error-code { font-family: var(--vc-font-display); font-size: 5.6rem; font-weight: 700; color: var(--vc-brass); line-height: 1; }
.vc-error h1 { margin-top: 10px; }

/* ---------- Reveal on scroll ----------
   Gated behind html.js-on (set by an inline script in inc/header.php) so
   crawlers and no-JS visitors always see full content at opacity: 1. */
.vc-reveal { opacity: 1; transform: none; }
html.js-on .vc-reveal { opacity: 0; transform: translateY(16px); transition: opacity 540ms ease, transform 540ms ease; }
html.js-on .vc-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ---------- Utility ---------- */
.vc-text-center { text-align: center; }
.vc-mt-0 { margin-top: 0; }
.vc-mb-0 { margin-bottom: 0; }
.vc-check-list li { padding-left: 24px; position: relative; margin-bottom: 10px; }
.vc-check-list li::before { content: "\2666"; position: absolute; left: 0; top: 0; color: var(--vc-brass); font-size: 0.78rem; }
.vc-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
@media (max-width: 800px) { .vc-two-col { grid-template-columns: 1fr; } }
.vc-tag-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.vc-tag {
  border: 1px solid var(--vc-line-strong);
  border-radius: 2px;
  padding: 6px 10px;
  font-size: 0.7rem;
  letter-spacing: 0.03em;
  color: var(--vc-brass-light);
  display: inline-block;
  width: fit-content;
}
