/* =========================================================================
   Rogue Valley Wine Tasting — pixel-perfect HTML/CSS/JS clone
   Design tokens extracted from getComputedStyle of the live origin.
   ========================================================================= */

:root {
  /* Brand palette — values overridden by Customizer "Brand Colors" section */
  --color-primary:       #8A9A7B;  /* Sage Green */
  --color-primary-soft:  #b0c1a3;  /* Light sage */
  --color-wine:          #731C46;  /* Wine / Berry */
  --color-bg:            #E0D8C8;  /* Warm Ivory — darkened for card contrast */
  --color-text:          #111111;  /* Near-black — darkened for readability */
  --color-text-strong:   #111111;  /* Near-black — darkened for readability */
  --color-hunter:        #043a21;  /* Hunter Green — sparing accent */
  --color-tan:           #d7cdbe;  /* Warm tan strip */
  --color-white:         #ffffff;
  /* Backward-compat aliases — existing selectors keep working */
  --color-accent:        var(--color-primary);
  --color-accent-soft:   var(--color-primary-soft);
  --color-deep-green:    var(--color-hunter);
  /* Utility */
  --color-required:      #c00;

  /* Typography */
  --font-body: 'Lora', Verdana, Helvetica, Arial, sans-serif;
  --font-heading: 'Lato', Verdana, Helvetica, Arial, sans-serif;
  --font-script: 'Allura', 'Brush Script MT', cursive;

  /* Layout */
  --container-max: 1200px;
  --container-pad: 1.5rem;
  --header-height: 151px;
  --hero-height: 720px;
}

/* ----- Reset ----- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 24px;
  color: var(--color-text);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.site-footer { margin-top: auto; }
img { max-width: 100%; display: block; height: auto; border: 0; }
a { color: inherit; text-decoration: none; transition: color 0.2s ease; }
button { font: inherit; cursor: pointer; background: transparent; border: 0; padding: 0; }
ul { list-style: none; padding: 0; margin: 0; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 400; }

.container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ===== AOS-style fade-in (custom, lightweight) ===== */
.aos { opacity: 0; transition: opacity 0.8s ease, transform 0.8s ease; will-change: opacity, transform; }
.aos[data-aos="fade-down"] { transform: translateY(-30px); }
.aos[data-aos="fade-up"]   { transform: translateY(30px); }
.aos[data-aos="fade-in"]   { transform: none; }
.aos.is-visible { opacity: 1; transform: translateY(0); }

/* =========================================================================
   1. HEADER / NAV
   ========================================================================= */
.site-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: var(--header-height);
  z-index: 100;
  color: var(--color-white);
  font-family: var(--font-body);
  background: rgba(0, 0, 0, 0.72);
}
.site-header__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 1.5rem;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  position: relative;          /* anchor for the absolutely-positioned mobile toggle */
}
/* Default WP custom-logo container hidden — we render our own .site-brand. */
.site-logo { display: none; }

/* Brand (logo on the left of the menu bar) */
.site-brand {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  height: 100%;
  max-height: 100%;
  text-decoration: none;
  overflow: hidden;
  position: relative;
  z-index: 2;
}
.site-brand__logo {
  display: block;
  height: auto;
  width: auto;
  max-height: calc(var(--header-height) - 30px);
  max-width: 200px;
  object-fit: contain;
}

/* Main nav */
.main-nav {
  flex: 1;
  text-align: center;
}
.main-nav__list {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.main-nav__item { position: relative; }
.main-nav__link {
  display: inline-block;
  min-width: 100px;
  padding: 24px 14px;
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  line-height: 15px;
  color: var(--color-white);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: color 0.35s ease;
}
.main-nav__link:hover,
.main-nav__link:focus,
.main-nav__item.is-open > .main-nav__link { color: var(--color-white); }
.main-nav__link.is-active,
.main-nav__item.current-menu-item > .main-nav__link,
.main-nav__item.current-menu-ancestor > .main-nav__link,
.main-nav__item.current-menu-parent > .main-nav__link {
  color: var(--color-white);
  box-shadow: inset 0 -4px 0 var(--color-white);
}
.main-nav__caret { display: inline-block; margin-left: 6px; font-size: 10px; transform: translateY(-2px); }
.rvwt-nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 10px;
  background: var(--color-wine, #731c46);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  margin-left: 6px;
  vertical-align: middle;
  position: relative;
  top: -1px;
}

/* Submenus */
.submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 8px);
  min-width: 220px;
  background: var(--color-primary);
  border: 2px solid #6b8560;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  z-index: 30;
}
.main-nav__item:hover > .submenu,
.main-nav__item.is-open > .submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}
.submenu__item { position: relative; }
.submenu__link {
  display: block;
  padding: 10px 18px;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--color-white);
  white-space: nowrap;
  transition: color 0.25s ease, background 0.25s ease;
}
.submenu__link:hover { color: var(--color-white); background: var(--color-wine); }
.submenu__link.is-active,
.submenu__item.current-menu-item > .submenu__link,
.submenu__item.current-menu-ancestor > .submenu__link {
  color: var(--color-white);
  background: var(--color-wine);
}
.submenu .submenu {
  top: 0;
  left: 100%;
  transform: translate(8px, 0);
  background: var(--color-primary);
}
.submenu__item:hover > .submenu,
.submenu__item.is-open > .submenu {
  transform: translate(0, 0);
}

/* Mobile toggle — anchored to the right edge of the header inner row */
.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  border-radius: 4px;
  position: absolute;
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
}
.nav-toggle__bar,
.nav-toggle__bar::before,
.nav-toggle__bar::after {
  content: '';
  display: block;
  width: 22px;
  height: 2px;
  background: currentColor;
  position: relative;
}
.nav-toggle__bar::before { position: absolute; top: -7px; left: 0; }
.nav-toggle__bar::after  { position: absolute; top:  7px; left: 0; }

/* =========================================================================
   2. HERO #1 — "Uncork the Rogue!™"
   ========================================================================= */
.hero {
  position: relative;
  height: var(--hero-height);
  overflow: hidden;
  isolation: isolate;
  background-color: #8a8787; /* fallback bg matches origin's slide bg under jl-blend-darken */
}
.hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  mix-blend-mode: darken;          /* origin uses jl-blend-darken */
  filter: brightness(0.92);
  pointer-events: none;
}
.hero::after {
  /* subtle vignette to keep text legible */
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.0) 30%, rgba(0,0,0,0.18) 100%);
  pointer-events: none;
  z-index: 1;
}
.hero__content {
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
}
.hero__title {
  font-family: var(--font-script);
  font-size: 110px;
  line-height: 1.05;
  font-weight: 400;
  color: var(--color-white);
  text-align: center;
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.45);
  letter-spacing: 1px;
  /* slow, dramatic fade-in tied to .aos's transition */
  transition: opacity 1.6s ease, transform 1.6s ease;
}
.hero__title sup { font-size: 0.32em; font-family: var(--font-heading); font-weight: 300; vertical-align: baseline; position: relative; top: -0.7em; margin-left: 14px; }
.hero__subtitle {
  font-family: var(--font-heading);
  font-size: 26px;
  font-weight: 300;
  font-style: italic;
  color: var(--color-white);
  text-align: center;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
  letter-spacing: 5px;
  margin: 4px 0 0;
}
@media (max-width: 768px) {
  .hero__title { font-size: 36px; }
  .hero__subtitle { font-size: 14px; letter-spacing: 3px; }
}
.hero__sound-toggle {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  z-index: 2;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
  padding: 0;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.hero__sound-toggle:hover {
  background: rgba(0, 0, 0, 0.55);
  border-color: rgba(255, 255, 255, 0.6);
}
.hero__sound-toggle .icon-sound { display: none; }
.hero__sound-toggle[data-state="unmuted"] .icon-muted { display: none; }
.hero__sound-toggle[data-state="unmuted"] .icon-sound { display: block; }

/* =========================================================================
   3. REGION STRIPS (#g-fullstrip — 4 carousels stacked)
   ========================================================================= */
.region-strips { background-color: var(--color-tan); padding: 0; }
.region-strip {
  position: relative;
  padding: 14px 0; /* tan gap visible above and below each strip */
}
.region-strip + .region-strip { padding-top: 0; }

.strip-track {
  --strip-gap: 4px;            /* tan bg shows through this gap */
  display: flex;
  gap: var(--strip-gap);
  padding: 0 var(--strip-gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.strip-track::-webkit-scrollbar { display: none; }
.strip-card {
  position: relative;
  /* 7 cards visible: subtract 6 inter-card gaps + 2 outer pad gaps from 100% */
  flex: 0 0 calc((100% - 8 * var(--strip-gap)) / 7);
  aspect-ratio: 196 / 246;
  scroll-snap-align: start;
  overflow: hidden;
  border-radius: 14px;
}
.strip-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter 0.3s ease, transform 0.3s ease;
}
.strip-card--transportation .strip-card__img { object-position: center bottom; }
.strip-card--activities { background: #1a0d0d; }
.strip-card--activities .strip-card__img { object-fit: contain; object-position: center center; }

/* ----- Listing cards: name pinned to bottom with black gradient, always visible ----- */
.strip-card:not(.strip-card--label)::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 55%;
  z-index: 1;
  background: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.55) 48%, rgba(0,0,0,.93) 100%);
  pointer-events: none;
}
.strip-card__title {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  margin: 0;
  padding: 12px 15px 16px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  font-family: var(--font-heading);
  font-size: 23.8px;
  line-height: 1.2;
  font-weight: 400;
  color: var(--color-white);
  text-transform: uppercase;
  letter-spacing: 1px;
  text-align: left;
  text-shadow: 0 2px 16px rgba(0,0,0,0.8);
  opacity: 1;
  pointer-events: none;
}
.strip-card__readmore {
  position: absolute;
  bottom: 22px;
  left: 15px;
  z-index: 2;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  color: var(--color-white);
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.85);
  padding-bottom: 4px;
  text-decoration: none;
  opacity: 0;
  transition: opacity 0.25s ease;
}

/* Hover: name already always visible — no zoom/darken */
.strip-card:hover .strip-card__readmore { opacity: 1; }

/* Full-card link overlay for premium (clickable) listings */
.strip-card__cover-link {
  position: absolute;
  inset: 0;
  z-index: 3;  /* above gradient (1) and title text (2) */
  display: block;
}
/* Favourite button — absolutely positioned top-right, above cover link */
.strip-card .rvwt-fav {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 4;
}
/* Prevent interaction while the toggle request is in flight */
.rvwt-fav:disabled {
  opacity: 0.5;
  cursor: wait;
  pointer-events: none;
}
/* Listing card title: smaller, bold — label card keeps its own 23.8px override */
.strip-card:not(.strip-card--label) .strip-card__title {
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.6px;
  line-height: 1.25;
}

/* ----- Region label cards (first card of each strip — title always visible) ----- */
.strip-card--label .strip-card__title {
  /* spans from 88px to bottom of card, top-aligned inside the space */
  top: 88px;
  bottom: 0;
  left: 15px;
  right: 15px;
  padding: 0 10px;
  margin: 25px 10px;
  align-items: flex-start;
  font-size: 23.8px;
  line-height: 35.7px;
  letter-spacing: 1px;
  opacity: 1;
  pointer-events: auto;
}
.strip-card--label .strip-card__img { filter: brightness(0.85); }
.strip-card--label .strip-card__readmore { display: none; }

/* Strip arrow buttons (visible on touch / smaller widths only) */
.strip-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255,255,255,0.85);
  color: var(--color-text-strong);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 5;
  transition: background 0.2s ease, transform 0.2s ease;
}
.strip-arrow:hover { background: var(--color-white); transform: translateY(-50%) scale(1.06); }
.strip-arrow--prev { left: 8px; }
.strip-arrow--next { right: 8px; }
.strip-arrow svg { width: 18px; height: 18px; }

/* =========================================================================
   4. GREEN SECTION (#g-firstfullwidth)
      4a. Sunset slideshow (Hero #2) — hidden on phone
      4b. 4-column grid (Instagram + YouTube embeds)
   ========================================================================= */
.green-section {
  background-color: var(--color-bg);
  color: var(--color-text);
  position: relative;
}

/* 4a. Sunset banner — image fills a 297px-tall band as backdrop;
       title + paragraph overlay it and the paragraph flows past the
       image into the green section below (matches origin behaviour). */
.sunset-banner {
  position: relative;
  background-color: var(--color-bg);
  display: flex;
  align-items: center;
  min-height: 450px;
}
/* dark scrim so text stays readable over bright daytime image */
.sunset-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.28);
  z-index: 1;
  pointer-events: none;
}
.sunset-banner__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  display: block;
  z-index: 0;
  pointer-events: none;
}
.sunset-banner__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 30px 2rem 30px;
  text-align: center;
}
.sunset-banner__logo-card {
  display: inline-block;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 14px;
  padding: 12px 18px;
  margin: 0 auto 20px;
}
.sunset-banner__logo {
  display: block;
  width: 240px;
  height: 160px;
  object-fit: contain;
  filter:
    drop-shadow(0 0 8px rgba(255, 255, 255, 1))
    drop-shadow(0 0 20px rgba(255, 255, 255, 0.8));
}
.sunset-banner__title {
  font-family: var(--font-heading);
  font-size: 46px;
  line-height: 1.2;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #ffffff;
  margin: 0;
  padding: 0;
  position: relative;
  text-shadow:
    0 1px 4px rgba(0, 0, 0, 0.7),
    0 2px 12px rgba(0, 0, 0, 0.5);
}
.sunset-banner__title::after {
  content: '';
  display: block;
  width: 60px;
  height: 1px;
  background: #ffffff;
  margin: 18px auto 0;
}
.sunset-banner__desc {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 35px;
  font-weight: 700;
  color: #f0ece4;
  margin: 20px 0 0;
  padding: 0;
  text-shadow:
    0 1px 3px rgba(0, 0, 0, 0.65),
    0 2px 8px rgba(0, 0, 0, 0.45);
}

/* 4b. 4-column embed grid — Instagram | YouTube | TikTok | Facebook
       All 4 columns are equal in width and height. */
.green-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 460px));
  justify-content: center;
  gap: 24px;
  align-items: stretch;
  padding: 32px 1.5rem 48px;
  max-width: var(--container-max);
  margin: 0 auto;
}
.green-grid__col {
  display: flex;
  align-items: stretch;
  justify-content: center;
}
.embed {
  background: #ffffff;
  width: 100%;
  height: 560px;
  border-radius: 6px;
  box-shadow: 0 2px 18px rgba(0,0,0,0.18);
  overflow: hidden;
  display: flex;
}
.embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  flex: 1 1 auto;
}
/* Demo placeholder: brand badge + label, centered in the embed box (used
   until the real TikTok / Facebook widgets are wired up). */
.embed--placeholder {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 24px;
  background: linear-gradient(160deg, #ffffff 0%, #f4f6f8 100%);
  text-align: center;
}
.embed__badge {
  width: 86px;
  height: 86px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.embed--placeholder:hover .embed__badge {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
}
.embed__badge--tiktok   { background: #000000; }
.embed__badge--facebook { background: #1877F2; }
.embed__icon {
  width: 44px;
  height: 44px;
  display: block;
  fill: #ffffff;
}
.embed__label,
.embed__sublabel {
  width: 100%;
  margin: 0;
  text-align: center;
}
.embed__label {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.4px;
  color: #1f1f1f;
}
.embed__sublabel {
  font-size: 12px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: #8a8a8a;
}

/* Facebook SDK Page Plugin — force the generated span+iframe to fill the column */
.embed--facebook {
  align-items: stretch;
  overflow: hidden;
}
.embed--facebook .fb-page,
.embed--facebook .fb-page > span,
.embed--facebook .fb-page > span > iframe {
  width: 100% !important;
  max-width: 100% !important;
}
.embed--facebook .fb-page > span {
  display: block !important;
}

/* Instagram & TikTok cards in the green embed grid — match listing page L7 card style */
.embed--instagram,
.embed--tiktok {
  flex-direction: column;
  align-items: stretch;
  height: auto;
  background: #f7f2ea;
  border-radius: 16px;
  padding: 28px;
  box-shadow: 0 2px 18px rgba(0,0,0,0.12);
  overflow: visible;
}
.embed--instagram .rvwt-l7-pss__platform-header,
.embed--tiktok .rvwt-l7-pss__platform-header {
  flex-shrink: 0;
}
.embed--instagram .rvwt-l7-pss__ig-wrap {
  margin-top: 14px;
  border-radius: 10px;
  overflow: hidden;
}
.embed--instagram .rvwt-l7-pss__ig-iframe {
  display: block;
  width: 100%;
  height: 490px;
  border: none;
}
/* TikTok creator widget inside the card */
.embed--tiktok blockquote.tiktok-embed {
  margin: 14px 0 0 !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  height: 490px !important;
  min-height: 490px !important;
}
.embed--tiktok blockquote.tiktok-embed iframe {
  width: 100% !important;
  height: 490px !important;
  min-height: 490px !important;
}


/* =========================================================================
   5. ACTIVITY STRIP (#g-extension — 5 cards)
   ========================================================================= */
.activity-strip {
  background-color: var(--color-tan);
  padding: 14px 0;
  position: relative;
}
/* 5 cards visible: subtract 4 inter-card gaps + 2 outer pad gaps from 100% */
.activity-strip .strip-card {
  flex: 0 0 calc((100% - 6 * var(--strip-gap)) / 5);
  aspect-ratio: 285 / 371;
}
/* Activity-strip titles are ALWAYS visible at bottom-left with an underline */
.activity-strip .strip-card__title {
  top: auto;
  bottom: 25px;
  left: 22px;
  right: 22px;
  padding: 0 0 14px;
  margin: 0;
  display: block;
  font-size: 23.8px;
  line-height: 35.7px;
  letter-spacing: 1.5px;
  opacity: 1;                  /* override hidden default */
  text-align: left;
}
.activity-strip .strip-card__title::after {
  content: '';
  display: block;
  width: 50px;
  height: 1px;
  background: var(--color-white);
  margin-top: 10px;
}
.activity-strip .strip-card__readmore {
  bottom: auto;
  top: 24px;
  left: auto;
  right: 22px;
}
.activity-strip .strip-card:hover .strip-card__img { filter: brightness(0.5); }

/* =========================================================================
   6. FOOTER (#g-copyright)
   ========================================================================= */
.site-footer {
  background-color: var(--color-primary);
  color: var(--color-white);
  padding: 0;
}
body.single-listing .site-footer {
  border-top: 4px solid #6e1a34;
  box-shadow: inset 0 16px 26px -16px rgba(20,30,20,.35);
}
.site-footer__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 60px 1.5rem 48px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  gap: 32px;
  align-items: start;
}
.footer-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}
.footer-brand__logo { max-width: 240px; height: auto; }
.footer-brand__wjd  { max-width: 200px; height: auto; }

/* Weather widget */
.footer-weather {
  background: var(--color-white);
  color: var(--color-text);
  padding: 18px 22px;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.4;
  width: 100%;
  max-width: 380px;
}
.footer-weather__title {
  font-family: var(--font-heading);
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  margin: 0 0 6px;
  color: var(--color-text-strong);
}
.footer-weather__time { text-align: center; font-size: 13px; margin-bottom: 4px; }
.footer-weather__time b { color: var(--color-text-strong); }
.footer-weather__feels { text-align: center; font-weight: 700; margin-top: 4px; font-size: 14px; }
.footer-weather__row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  margin: 12px 0 8px;
}
.footer-weather__icon { width: 56px; height: 56px; }
.footer-weather__temp { font-size: 24px; font-weight: 700; color: var(--color-text-strong); line-height: 1; }
.footer-weather__minmax { font-size: 12px; color: var(--color-text); }
.footer-weather__sun {
  display: grid;
  grid-template-columns: auto auto auto auto;
  gap: 6px;
  font-size: 12px;
  align-items: center;
  justify-items: start;
}
.footer-weather__sun img { width: 24px; height: 24px; }
.footer-weather__details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 12px;
  font-size: 12px;
  margin-top: 8px;
  border-top: 1px solid #eee;
  padding-top: 8px;
}

/* More links */
.footer-links__title,
.footer-widget__title {
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 18px;
  padding-bottom: 10px;
  color: var(--color-white);
  position: relative;
}
.footer-links__title::after,
.footer-widget__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 2px;
  background-color: rgba(255, 255, 255, 0.5);
}
.footer-links__list { display: flex; flex-direction: column; gap: 6px; }
.footer-links__list a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 24px;
  transition: opacity 0.2s ease;
}
.footer-links__list a:hover { opacity: 0.75; }
.footer-links__list .current-menu-item > a,
.footer-links__list .current-menu-ancestor > a,
.footer-links__list .current_page_item > a,
.footer-links__list .current_page_ancestor > a,
.footer-links__list a.is-active {
  opacity: 1;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.footer-links__icon { font-size: 14px; line-height: 1; width: 16px; }

/* Bottom row — full-width wine/berry bar, sits outside .site-footer__inner */
.footer-bottom {
  background-color: var(--color-wine);
  margin-top: 0;
  border-top: none;
}
.footer-bottom__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 14px 1.5rem;
  text-align: center;
  font-size: 13px;
  color: rgba(255,255,255,0.85);
}
.footer-bottom a { color: rgba(255,255,255,0.9); text-decoration: none; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1024px) {
  .strip-card { flex: 0 0 calc((100% - 5 * var(--strip-gap)) / 4); aspect-ratio: 196 / 246; }
  .activity-strip .strip-card { flex: 0 0 calc((100% - 4 * var(--strip-gap)) / 3); }
  .green-grid { grid-template-columns: repeat(2, minmax(280px, 1fr)); justify-content: center; }
  .embed { height: 500px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-grid > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
  :root { --header-height: 100px; --hero-height: 360px; }
  /* flex: logo left — heart+hamburger right */
  .site-header__inner { justify-content: space-between; padding: 0 1.25rem; }
  .main-nav { display: none; }
  /* Push actions + hamburger to the far right as a group */
  .site-header__actions { margin-left: auto; gap: 8px; }
  .nav-toggle {
    display: inline-flex;
    position: static;
    transform: none;
  }
  .site-brand__logo { max-height: 64px; }

  /* Hero: drop fixed height, use video's native 16:9 ratio so full video is visible */
  .hero { height: auto; aspect-ratio: 16 / 9; }
  .hero__title { font-size: 36px; }
  .hero__sound-toggle { width: 30px; height: 30px; bottom: 0.5rem; right: 0.5rem; }
  .hero__sound-toggle svg { width: 14px; height: 14px; }

  .strip-card { flex: 0 0 100%; aspect-ratio: 16 / 11; }
  .activity-strip .strip-card { flex: 0 0 100%; aspect-ratio: 16 / 11; }
  .strip-arrow { display: inline-flex; }

  .sunset-banner__logo { width: 180px; height: 120px; }
  .sunset-banner__title { font-size: 34px; }
  .sunset-banner__desc { font-size: 16px; line-height: 30px; }

  .green-grid { grid-template-columns: 1fr; }
  .embed { height: 460px; }

  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { align-items: center; text-align: center; }
}

@media (max-width: 480px) {
  .sunset-banner__title { font-size: 26px; }
  .sunset-banner__desc { font-size: 15px; line-height: 26px; }
}

/* Mobile menu drawer */
.mobile-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(320px, 90vw);
  background: #5a7250;
  color: var(--color-white);
  padding: 0 0 32px;
  transform: translateX(100%);
  transition: transform 0.32s ease;
  z-index: 200;
  overflow-y: auto;
  box-shadow: -8px 0 32px rgba(0,0,0,0.3);
}
.mobile-drawer.is-open { transform: translateX(0); }

/* Drawer header: logo + close button */
.mobile-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 16px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.15);
  position: sticky;
  top: 0;
  z-index: 1;
}
.mobile-drawer__logo-link { display: flex; align-items: center; }
.mobile-drawer__logo {
  height: 52px;
  width: auto;
  filter: brightness(0) invert(1);
}
.mobile-drawer__actions {
  display: flex;
  align-items: center;
  margin-left: auto;
  margin-right: 10px;
}
.mobile-drawer__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
  color: var(--color-white);
  flex-shrink: 0;
  transition: background 0.2s;
}
.mobile-drawer__close:hover { background: rgba(255,255,255,0.25); }
.mobile-drawer__close svg { width: 18px; height: 18px; }

/* Nav list */
.mobile-drawer__list {
  padding: 8px 0;
}
.mobile-drawer__list > li {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.mobile-drawer__list > li:last-child { border-bottom: 0; }
.mobile-drawer__list > li > a {
  flex: 1;
  display: block;
  padding: 13px 24px;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--color-accent-soft);
}
.mobile-drawer__list > li > a:hover,
.mobile-drawer__list .current-menu-item > a,
.mobile-drawer__list .current-menu-ancestor > a,
.mobile-drawer__list .current_page_item > a,
.mobile-drawer__list .current_page_ancestor > a {
  color: var(--color-white);
}
.mobile-drawer__list > li > a:hover {
  background: rgba(255,255,255,0.08);
}
.mobile-drawer__list .current-menu-item > a,
.mobile-drawer__list .current-menu-ancestor > a,
.mobile-drawer__list .current_page_item > a,
.mobile-drawer__list .current_page_ancestor > a {
  border-left: 3px solid var(--color-wine);
  padding-left: 21px;
}

/* Chevron toggle button injected by JS for items with sub-menus */
.sub-menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  flex-shrink: 0;
  color: rgba(255,255,255,0.45);
  transition: color 0.2s;
}
.sub-menu-toggle:hover { color: var(--color-white); }
.sub-menu-toggle svg {
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
}
.mobile-drawer__list .menu-item-has-children.is-open > .sub-menu-toggle svg {
  transform: rotate(90deg);
}

/* Nested items with children also need flex row so toggle sits beside the link */
.mobile-drawer__list .sub-menu .menu-item-has-children {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}
.mobile-drawer__list .sub-menu .menu-item-has-children > a {
  flex: 1;
}

/* Sub-menu — hidden by default, animated open */
.mobile-drawer__list .sub-menu {
  width: 100%;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.mobile-drawer__list .menu-item-has-children.is-open > .sub-menu {
  max-height: 600px;
}
.mobile-drawer__list .sub-menu li {
  border-bottom: 0;
  background: rgba(0,0,0,0.15);
}
.mobile-drawer__list .sub-menu a {
  display: block;
  padding: 9px 24px 9px 36px;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: rgba(255,255,255,0.75);
}
.mobile-drawer__list .sub-menu a:hover { color: var(--color-white); background: var(--color-wine); }
.mobile-drawer__list .sub-menu a::before {
  content: '–';
  margin-right: 6px;
  opacity: 0.45;
}

.mobile-drawer__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s;
  z-index: 150;
}
.mobile-drawer__overlay.is-open { opacity: 1; visibility: visible; }

/* =========================================================================
   §7  LISTING ARCHIVE — v2 Rich Layout
   rvwt-arc-* = new archive classes; rvwt-cat-* = existing grid/card classes
   ========================================================================= */

/* ── Hero with image ─────────────────────────────────────────────────────── */
.rvwt-arc-hero {
  min-height: 420px;
  background-color: var(--color-deep-green);
  background-size: cover;
  background-position: center top;
  display: flex;
  align-items: center;
  padding: calc(var(--header-height) + 24px) clamp(1.5rem, 5vw, 5rem) 60px;
  text-align: center;
}
.rvwt-arc-hero__inner {
  max-width: 860px;
  margin: 0 auto;
  width: 100%;
}
.rvwt-arc-hero__breadcrumbs {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: rgba(255,255,255,.55);
  margin-bottom: 22px;
}
.rvwt-arc-hero__breadcrumbs a { color: rgba(255,255,255,.6); transition: color .2s; }
.rvwt-arc-hero__breadcrumbs a:hover { color: #fff; }
.rvwt-arc-hero__breadcrumbs span { opacity: .4; }
.rvwt-arc-hero__icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 18px;
  color: rgba(255,255,255,.9);
  margin-bottom: 20px;
}
.rvwt-arc-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(30px, 5vw, 58px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #fff;
  margin: 0 0 18px;
  line-height: 1.1;
  text-shadow: 0 2px 20px rgba(0,0,0,.3);
}
.rvwt-arc-hero__count {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(255,255,255,.14);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.9);
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .5px;
  padding: 8px 20px;
  border-radius: 30px;
}
.rvwt-arc-hero__count-num {
  font-size: 20px;
  font-weight: 900;
  color: #fff;
  line-height: 1;
}

/* ── Header without image (dark-green rich header) ───────────────────────── */
.rvwt-arc-header {
  background: linear-gradient(160deg, #1e3a28 0%, #0d2016 55%, #1a1008 100%);
  padding: calc(var(--header-height) + 12px) 0 40px;
  position: relative;
  overflow: hidden;
}
.rvwt-arc-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(115,28,70,.18) 0%, transparent 55%, rgba(0,0,0,.25) 100%);
  pointer-events: none;
}
.rvwt-arc-header__inner {
  max-width: none;
  padding: 0 clamp(1.5rem, 5vw, 5rem);
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.rvwt-arc-header__breadcrumbs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: rgba(255,255,255,.45);
  margin-bottom: 28px;
}
.rvwt-arc-header__breadcrumbs a { color: rgba(255,255,255,.55); transition: color .2s; }
.rvwt-arc-header__breadcrumbs a:hover { color: rgba(255,255,255,.9); }
.rvwt-arc-header__breadcrumbs span { opacity: .35; }
.rvwt-arc-header__body {
  display: flex;
  align-items: center;
  gap: 24px;
}
.rvwt-arc-header__icon-wrap {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.85);
}
.rvwt-arc-header__text { flex: 1; min-width: 0; }
.rvwt-arc-header__title {
  font-family: var(--font-heading);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #fff;
  margin: 0 0 10px;
  line-height: 1.1;
}
.rvwt-arc-header__count {
  font-family: var(--font-heading);
  font-size: 13px;
  color: rgba(255,255,255,.55);
  margin: 0;
}
.rvwt-arc-header__count strong { color: rgba(255,255,255,.85); }

/* ── Description inside header band ─────────────────────────────────────── */
.rvwt-arc-header__desc {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.1);
  max-width: 720px;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255,255,255,.68);
  font-style: italic;
}
.rvwt-arc-header__desc p { margin: 0 0 8px; }
.rvwt-arc-header__desc p:last-child { margin: 0; }

/* ── Description inside hero (with image) ───────────────────────────────── */
.rvwt-arc-hero__desc {
  margin-top: 20px;
  max-width: 660px;
  margin-left: auto;
  margin-right: auto;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255,255,255,.72);
  font-style: italic;
}
.rvwt-arc-hero__desc p { margin: 0 0 8px; }
.rvwt-arc-hero__desc p:last-child { margin: 0; }

/* ── Filter pills inside header band ────────────────────────────────────── */
.rvwt-arc-header__filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.1);
}

/* ── Filter pills inside hero (with image) ──────────────────────────────── */
.rvwt-arc-hero__filters {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

/* ── Shared filter label (used inside header + hero) ────────────────────── */
.rvwt-arc-hdr-filters__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: rgba(255,255,255,.45);
  flex-shrink: 0;
  padding-right: 14px;
  border-right: 1px solid rgba(255,255,255,.15);
}
.rvwt-arc-hdr-filters__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* ── Pills — always on dark green background ─────────────────────────────── */
.rvwt-arc-hdr-pill {
  display: inline-block;
  padding: 7px 18px;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: rgba(255,255,255,.78);
  background: rgba(255,255,255,.1);
  border: 1.5px solid rgba(255,255,255,.2);
  border-radius: 30px;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s, transform .15s;
}
.rvwt-arc-hdr-pill:hover {
  background: rgba(255,255,255,.22);
  color: #fff;
  border-color: rgba(255,255,255,.4);
  transform: translateY(-1px);
}
.rvwt-arc-hdr-pill.is-active {
  background: rgba(255,255,255,.9);
  color: var(--color-deep-green);
  border-color: transparent;
  font-weight: 800;
}

/* ── Legacy standalone filter bar (kept for compat) ─────────────────────── */
.rvwt-arc-filters { display: none; }
.rvwt-arc-desc { display: none; }

/* ── Main content wrapper ────────────────────────────────────────────────── */
.rvwt-arc-main {
  width: 100%;
  padding: 48px clamp(1.5rem, 5vw, 5rem) 80px;
}

/* ── Region pill tabs (below hero, above main content) ─────────────────── */
.rvwt-region-pills {
  background: #fff;
  border-bottom: 1px solid #e8e0d5;
}
.rvwt-region-pills__inner {
  max-width: 1520px;
  margin: 0 auto;
  padding: 14px clamp(1.5rem, 5vw, 5rem);
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.rvwt-region-pills__label {
  font-family: var(--font-body, sans-serif);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #888;
  white-space: nowrap;
  flex-shrink: 0;
}
.rvwt-region-pills__nav {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.rvwt-region-pills__pill {
  display: inline-flex;
  align-items: center;
  padding: 8px 20px;
  border-radius: 4px;
  font-family: var(--font-body, sans-serif);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  background: var(--color-primary, #8A9A7B);
  border: 1.5px solid var(--color-primary, #8A9A7B);
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  transition: background .18s, color .18s, border-color .18s;
}
.rvwt-region-pills__pill:hover {
  background: var(--color-hunter, #043a21);
  border-color: var(--color-hunter, #043a21);
  color: #fff;
}
.rvwt-region-pills__pill.is-active {
  background: var(--btn-bg, #731c46);
  border-color: var(--btn-bg, #731c46);
  color: #fff;
}
/* Tablet 601–900px: keep pills on one scrollable row */
@media (min-width: 601px) and (max-width: 900px) {
  .rvwt-region-pills__inner {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 10px 1rem;
    gap: 10px;
  }
  .rvwt-region-pills__inner::-webkit-scrollbar { display: none; }
  .rvwt-region-pills__label { flex-shrink: 0; }
  .rvwt-region-pills__nav { flex-wrap: nowrap; }
  .rvwt-region-pills__pill { white-space: nowrap; }
}

@media (max-width: 600px) {
  .rvwt-region-pills__inner {
    flex-direction: column;
    padding: 12px 1rem;
    gap: 10px;
    align-items: flex-start;
  }
  .rvwt-region-pills__label {
    display: block;
    font-size: 11px;
  }
  .rvwt-region-pills__nav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
    gap: 8px;
    width: 100%;
  }
  .rvwt-region-pills__pill {
    font-size: 11px;
    padding: 9px 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: normal;
    line-height: 1.3;
  }
  /* Last pill alone on a row → span both columns */
  .rvwt-region-pills__pill:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}

/* ── Results summary bar ─────────────────────────────────────────────────── */
.rvwt-arc-results-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.rvwt-arc-results-bar__count {
  font-family: var(--font-body, sans-serif);
  font-size: 13px;
  font-weight: 400;
  color: var(--color-text);
  white-space: nowrap;
  margin: 0;
  letter-spacing: 0;
}
.rvwt-arc-results-bar__count strong {
  font-weight: 700;
  font-size: 13px;
  color: var(--color-text-strong);
}
.rvwt-arc-results-bar__cat {
  color: var(--color-text);
  font-weight: 400;
}
.rvwt-arc-results-bar__divider {
  display: none;
}

/* ── Sort dropdown ──────────────────────────────────────────────────────── */
.rvwt-sort-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.rvwt-sort-label {
  font-family: var(--font-body, sans-serif);
  font-size: 13px;
  color: #888;
  white-space: nowrap;
}
.rvwt-sort-select {
  font-family: var(--font-body, sans-serif);
  font-size: 13px;
  padding: 5px 28px 5px 10px;
  border: 1px solid #d5cfc8;
  border-radius: 6px;
  background: #fff;
  color: #333;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 9px center;
}
.rvwt-sort-select:focus {
  outline: 2px solid var(--btn-bg, #731c46);
  outline-offset: 2px;
}

/* Archive/category page: modern directory card height */
.rvwt-arc-main .rvwt-card--immersive,
.rvwt-arc-main .rvwt-card--cinematic,
.rvwt-arc-main .rvwt-card--glass {
  height: 420px;
  aspect-ratio: unset;
}
@media (max-width: 900px) {
  .rvwt-arc-main .rvwt-card--immersive,
  .rvwt-arc-main .rvwt-card--cinematic,
  .rvwt-arc-main .rvwt-card--glass {
    height: 360px;
  }
}
@media (max-width: 540px) {
  .rvwt-arc-main .rvwt-card--immersive,
  .rvwt-arc-main .rvwt-card--cinematic,
  .rvwt-arc-main .rvwt-card--glass {
    height: 280px;
  }
}

/* ── Enhanced empty state ────────────────────────────────────────────────── */
.rvwt-arc-empty {
  text-align: center;
  padding: 64px 24px 80px;
}
.rvwt-arc-empty__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  height: 96px;
  background: rgba(111,137,92,.08);
  border-radius: 50%;
  margin: 0 auto 24px;
  opacity: .75;
}
.rvwt-arc-empty__heading {
  font-family: var(--font-heading);
  font-size: 22px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--color-text-strong);
  margin: 0 0 14px;
}
.rvwt-arc-empty__text {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-text);
  max-width: 420px;
  margin: 0 auto 28px;
}
.rvwt-arc-empty__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
}
.rvwt-arc-empty__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 11px 26px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-radius: 30px;
  text-decoration: none;
  transition: background .2s, color .2s, transform .15s;
}
.rvwt-arc-empty__btn--primary {
  background: var(--btn-bg);
  color: var(--btn-text);
  border: 2px solid var(--btn-bg);
}
.rvwt-arc-empty__btn--primary:hover { background: var(--color-primary); border-color: var(--color-primary); color: #fff; transform: translateY(-1px); }
.rvwt-arc-empty__btn--ghost {
  background: transparent;
  color: var(--color-accent);
  border: 2px solid var(--color-accent);
}
.rvwt-arc-empty__btn--ghost:hover { background: var(--color-accent); color: #fff; transform: translateY(-1px); }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .rvwt-arc-hero { min-height: 340px; padding: calc(var(--header-height) + 12px) 1rem 44px; }
  .rvwt-arc-hero__title { font-size: 30px; }
  .rvwt-arc-hero__desc { font-size: 14px; }
  .rvwt-arc-hero__filters { justify-content: flex-start; }
  .rvwt-arc-header { padding: calc(var(--header-height) + 8px) 1rem 24px; }
  .rvwt-arc-header__inner { padding: 0 1rem; }
  .rvwt-arc-header__body { gap: 16px; }
  .rvwt-arc-header__icon-wrap { width: 60px; height: 60px; border-radius: 14px; }
  .rvwt-arc-header__icon-wrap svg { width: 30px; height: 30px; }
  .rvwt-arc-header__desc { font-size: 14px; margin-top: 20px; padding-top: 18px; }
  .rvwt-arc-header__filters { margin-top: 18px; padding-top: 16px; }
  .rvwt-arc-hdr-filters__label { border-right: none; padding-right: 0; }
  .rvwt-arc-main { padding: 24px 1rem 60px; }
}
@media (max-width: 480px) {
  .rvwt-arc-header__body { flex-direction: column; align-items: flex-start; }
  .rvwt-arc-hero__count { font-size: 12px; padding: 6px 14px; }
}

/* ── Legacy hero/header classes (kept for compat, now unused) ────────────── */
/* Hero banner (with or without image) */
.rvwt-cat-hero {
  min-height: 340px;
  background-color: var(--color-deep-green);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  padding: calc(var(--header-height) + 16px) 1.5rem 48px;
}
.rvwt-cat-hero__inner { max-width: var(--container-max); margin: 0 auto; width: 100%; }
.rvwt-cat-hero__breadcrumbs {
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255,255,255,.65);
  margin-bottom: 10px;
}
.rvwt-cat-hero__breadcrumbs a { color: inherit; }
.rvwt-cat-hero__breadcrumbs a:hover { color: #fff; }
.rvwt-cat-hero__sep { margin: 0 4px; opacity: .45; }
.rvwt-cat-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--color-white);
  text-shadow: 0 4px 24px rgba(0,0,0,.45);
  margin: 0;
}

/* Plain header (no hero image) */
.rvwt-cat-header {
  padding: calc(var(--header-height) + 32px) 1.5rem 40px;
  background: var(--color-bg);
  border-bottom: 1px solid #e5dfd2;
}
.rvwt-cat-header__inner { max-width: var(--container-max); margin: 0 auto; }
.rvwt-cat-header__breadcrumbs {
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--color-text);
  opacity: .65;
  margin-bottom: 10px;
}
.rvwt-cat-header__breadcrumbs a { color: var(--color-accent); opacity: 1; }
.rvwt-cat-header__sep { margin: 0 4px; }
.rvwt-cat-header__title {
  font-family: var(--font-heading);
  font-size: 32px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--color-text-strong);
  margin: 0;
}

/* Rich-text description block */
.rvwt-cat-description {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 32px 1.5rem;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.8;
  color: var(--color-text);
  border-bottom: 1px solid #e5dfd2;
}

/* Sub-region filter pills */
.rvwt-cat-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 24px 1.5rem;
}
.rvwt-cat-pill {
  display: inline-block;
  padding: 8px 18px;
  border-radius: 30px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  border: 2px solid var(--color-accent);
  color: var(--color-accent);
  transition: background .2s, color .2s;
}
.rvwt-cat-pill:hover,
.rvwt-cat-pill.is-active { background: var(--color-accent); color: var(--color-white); }

/* Main content wrapper */
.rvwt-cat-main { max-width: var(--container-max); margin: 0 auto; padding: 40px 1.5rem 80px; }

/* Auto-fill responsive grid — min 260px per card, fills available width */
.rvwt-cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 24px;
  margin-bottom: 48px;
}

/* Card */
.rvwt-cat-card {
  display: flex;
  flex-direction: column;
  background: var(--color-white);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.07);
  transition: box-shadow .25s ease, transform .25s ease;
  color: inherit;
  text-decoration: none;
}
.rvwt-cat-card:hover {
  box-shadow: 0 8px 32px rgba(4,58,33,.14);
  transform: translateY(-4px);
}
.rvwt-cat-card__img-wrap { overflow: hidden; flex-shrink: 0; }
.rvwt-cat-card__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.rvwt-cat-card:hover .rvwt-cat-card__img { transform: scale(1.04); }
.rvwt-cat-card__placeholder {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: var(--color-tan);
}
.rvwt-cat-card__body {
  padding: 16px 18px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.rvwt-cat-card__name {
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--color-text-strong);
  margin: 0 0 10px;
  line-height: 1.3;
}
.rvwt-cat-card__name a { color: inherit; }
.rvwt-cat-card__name a:hover { color: var(--color-accent); }
.rvwt-cat-card__meta { display: flex; flex-direction: column; gap: 5px; flex: 1; margin-bottom: 14px; }
.rvwt-cat-card__meta-row {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--color-text);
  line-height: 1.4;
}
.rvwt-cat-card__meta-row svg { flex-shrink: 0; color: var(--color-accent); margin-top: 1px; }
.rvwt-cat-card__readmore {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--color-accent);
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #f0ece4;
  text-decoration: none;
}
.rvwt-cat-card__readmore svg { transition: transform .2s; }
.rvwt-cat-card:hover .rvwt-cat-card__readmore svg { transform: translateX(4px); }

/* Empty state & pagination */
.rvwt-cat-empty { font-size: 16px; color: var(--color-text); text-align: center; padding: 48px 0; }
.rvwt-cat-pagination { text-align: center; }
.rvwt-cat-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 8px;
}
.rvwt-cat-pagination .page-numbers a,
.rvwt-cat-pagination .page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border-radius: 4px;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 700;
  color: var(--color-accent);
  border: 1px solid #e0d8cc;
  transition: background .2s, color .2s;
}
.rvwt-cat-pagination .page-numbers a:hover { background: var(--btn-bg); color: var(--btn-text); border-color: var(--btn-bg); }
.rvwt-cat-pagination .page-numbers .current { background: var(--btn-bg); color: var(--btn-text); border-color: var(--btn-bg); }

/* Archive grid responsive — auto-fill handles most breakpoints; override only for smallest */
@media (max-width: 540px)  { .rvwt-cat-grid { grid-template-columns: 1fr 1fr; gap: 14px; } }
@media (max-width: 400px)  { .rvwt-cat-grid { grid-template-columns: 1fr; gap: 12px; } }

/* =========================================================================
   8. LISTING DETAIL PAGE (single-listing.php)
   ========================================================================= */

/* ── Hero ── */
.rvwt-ldg-hero {
  position: relative;
  min-height: 500px;
  display: flex;
  align-items: center;
  background-color: var(--color-deep-green);
  background-size: cover;
  background-position: center;
  padding: calc(var(--header-height) + 56px) 1.5rem 72px;
  text-align: center;
}
.rvwt-ldg-hero__inner { position: relative; z-index: 2; max-width: 820px; margin: 0 auto; width: 100%; }
.rvwt-ldg-hero__breadcrumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255,255,255,.6);
  margin-bottom: 20px;
}
.rvwt-ldg-hero__breadcrumb a { color: rgba(255,255,255,.6); transition: color .2s; }
.rvwt-ldg-hero__breadcrumb a:hover { color: #fff; }
.rvwt-ldg-hero__breadcrumb span { opacity: .4; }
.rvwt-ldg-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(30px, 5vw, 58px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--color-white);
  text-shadow: 0 4px 28px rgba(0,0,0,.5);
  margin: 0 0 14px;
  line-height: 1.1;
}
.rvwt-ldg-hero__location {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: 16px;
  font-style: italic;
  color: rgba(255,255,255,.8);
  margin: 0;
}

/* ── Action Bar ── */
.rvwt-ldg-actions {
  background: var(--color-white);
  border-bottom: 1px solid #ede7da;
  position: sticky;
  top: var(--header-height);
  z-index: 50;
  box-shadow: 0 2px 14px rgba(0,0,0,.08);
}
.rvwt-ldg-actions__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 12px 1.5rem;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* Buttons */
.rvwt-ldg-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border-radius: 30px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  border: 2px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s, transform .15s;
}
.rvwt-ldg-btn--primary { background: var(--btn-bg); color: var(--btn-text); border-color: var(--btn-bg); }
.rvwt-ldg-btn--primary:hover { background: var(--btn-bg-hover); border-color: var(--btn-bg-hover); color: var(--btn-text); transform: translateY(-1px); }
.rvwt-ldg-btn--outline { background: transparent; color: var(--color-accent); border-color: var(--color-accent); }
.rvwt-ldg-btn--outline:hover { background: var(--color-accent); color: var(--color-white); transform: translateY(-1px); }
.rvwt-ldg-url-plain { font-size: 13px; color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; word-break: break-all; }
.rvwt-ldg-url-plain:hover { color: var(--color-accent-dark, var(--color-accent)); }

/* Fav wrap: inline-flex so it aligns vertically in any flex row */
.rvwt-ldg-fav-wrap {
  display: inline-flex;
  align-items: center;
}

/* Style the favorites heart button to match the action bar pills */
.rvwt-ldg-fav-wrap .rvwt-fav {
  position: relative;
  top: auto;
  right: auto;
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border-radius: 30px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  background: transparent;
  color: var(--color-accent);
  border: 2px solid var(--color-accent);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  cursor: pointer;
  transition: background .2s, color .2s, transform .15s;
}
.rvwt-ldg-fav-wrap .rvwt-fav:hover,
.rvwt-ldg-fav-wrap .rvwt-fav.is-favorite { background: var(--color-accent); color: var(--color-white); }

/* Restore SVG to the full 20px size the button attributes set — the global
   .rvwt-fav svg rule in the inline stylesheet shrinks it to 16px for card use */
.rvwt-ldg-fav-wrap .rvwt-fav svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* ── Body: two-column grid ── */
.rvwt-ldg-body { background: var(--color-bg); padding: 56px 0 80px; }
.rvwt-ldg-body__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 48px;
  align-items: start;
}

/* ── Left: main content ── */
.rvwt-ldg-description {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.8;
  color: var(--color-text);
  margin: 0 0 28px;
  padding: 22px 26px;
  background: var(--color-white);
  border-left: 4px solid var(--color-accent);
  border-radius: 0 6px 6px 0;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.rvwt-ldg-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; }
.rvwt-ldg-tag {
  display: inline-block;
  padding: 6px 16px;
  background: rgba(111,137,92,.1);
  color: var(--color-accent);
  border: 1px solid rgba(111,137,92,.3);
  border-radius: 30px;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.rvwt-ldg-wines {
  background: var(--color-white);
  border-radius: 8px;
  padding: 18px 22px;
  margin-bottom: 28px;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.rvwt-ldg-wines__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--color-accent);
  margin: 0 0 8px;
}
.rvwt-ldg-wines__list { font-family: var(--font-body); font-size: 15px; color: var(--color-text); margin: 0; line-height: 1.6; }
.rvwt-ldg-content { font-family: var(--font-body); font-size: 17px; line-height: 1.75; color: var(--color-text); }
.rvwt-ldg-content h2,
.rvwt-ldg-content h3,
.rvwt-ldg-content h4 { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: 1px; color: var(--color-text-strong); margin: 32px 0 14px; }
.rvwt-ldg-content p { margin: 0 0 18px; }
.rvwt-ldg-content a { color: var(--color-accent); text-decoration: underline; }
.rvwt-ldg-content table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 15px; }
.rvwt-ldg-content th,
.rvwt-ldg-content td { padding: 10px 14px; border-bottom: 1px solid #e8e2d6; text-align: left; }
.rvwt-ldg-content th { font-family: var(--font-heading); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; background: var(--color-bg); }

/* ── Right: sticky info card ── */
.rvwt-ldg-sidebar { position: sticky; top: 72px; }
.rvwt-ldg-card {
  background: var(--color-white);
  border-radius: 14px;
  box-shadow: 0 4px 24px rgba(4,58,33,.09), 0 1px 3px rgba(0,0,0,.05);
  overflow: hidden;
  border: 1px solid rgba(4,58,33,.07);
}
.rvwt-ldg-card__title {
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--color-white);
  background: linear-gradient(135deg, var(--color-primary) 0%, #0a5530 100%);
  padding: 16px 22px;
  margin: 0;
}
.rvwt-ldg-card__row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 22px;
  border-bottom: 1px solid rgba(0,0,0,.05);
  transition: background .15s;
}
.rvwt-ldg-card__row:last-child { border-bottom: none; }
.rvwt-ldg-card__icon { flex-shrink: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; color: var(--color-accent); margin-top: 1px; background: rgba(111,137,92,.1); border-radius: 7px; }
.rvwt-ldg-card__detail { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding-top: 4px; }
.rvwt-ldg-card__label { font-family: var(--font-heading); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; color: var(--color-text); opacity: .5; }
.rvwt-ldg-card__value { font-family: var(--font-body); font-size: 14px; color: var(--color-text-strong); line-height: 1.5; word-break: break-word; }
.rvwt-ldg-card__value a { color: var(--color-accent); }
.rvwt-ldg-card__value a:hover { text-decoration: underline; }
.rvwt-ldg-card__ctas {
  padding: 14px 16px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  background: #faf8f4;
  border-top: 1px solid rgba(0,0,0,.06);
}
.rvwt-ldg-card__ctas:has(> :only-child) { grid-template-columns: 1fr; }
.rvwt-ldg-card__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-align: center;
  padding: 11px 12px;
  border-radius: 8px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .4px;
  line-height: 1;
  transition: background .2s, color .2s, transform .15s, box-shadow .2s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rvwt-ldg-card__cta svg { flex-shrink: 0; }
.rvwt-ldg-card__cta--primary { background: var(--btn-bg); color: var(--btn-text); }
.rvwt-ldg-card__cta--primary:hover { background: var(--btn-bg-hover); color: var(--btn-text); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.rvwt-ldg-card__cta--ghost { background: transparent; color: var(--color-accent); border: 1.5px solid currentColor; }
.rvwt-ldg-card__cta--ghost:hover { background: var(--color-accent); color: var(--color-white); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.12); }

/* ── Back link ── */
.rvwt-ldg-back { max-width: var(--container-max); margin: 0 auto; padding: 0 1.5rem 64px; }
.rvwt-ldg-back a { font-family: var(--font-heading); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--color-accent); transition: color .2s; }
.rvwt-ldg-back a:hover { color: var(--color-deep-green); }

/* ── Responsive ── */
@media (max-width: 960px) {
  .rvwt-ldg-body__inner { grid-template-columns: 1fr; gap: 32px; }
  .rvwt-ldg-sidebar { position: static; top: auto; }
}
@media (max-width: 600px) {
  .rvwt-ldg-hero { min-height: 380px; padding: calc(var(--header-height) + 24px) 1rem 48px; }
  .rvwt-ldg-hero__title { font-size: 28px; }
  .rvwt-ldg-actions__inner { gap: 8px; padding: 10px 1rem; }
  .rvwt-ldg-btn { padding: 8px 14px; font-size: 11px; }
  .rvwt-ldg-fav-wrap .rvwt-fav { padding: 8px 14px; font-size: 11px; }
}

/* =========================================================================
   §8b  SINGLE LISTING — Enhanced Layout (v2)
   rvwt-sl-* classes complement the existing rvwt-ldg-* classes
   ========================================================================= */

/* ── Hero: category + tier badge row ─────────────────────────────────────── */
.rvwt-sl-badges {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
  margin-bottom: 18px;
}
.rvwt-sl-cat-badge {
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #fff;
  padding: 5px 16px;
  border-radius: 20px;
}
.rvwt-sl-tier-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 5px 14px;
  border-radius: 20px;
}
.rvwt-sl-tier-badge--premium {
  background: rgba(200,150,12,.92);
  color: #fff;
}
.rvwt-sl-tier-badge--basic {
  background: rgba(255,255,255,.16);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.28);
  color: rgba(255,255,255,.85);
}

/* ── Hero: quick-info pills (hours · phone · email) ──────────────────────── */
.rvwt-sl-hero-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 22px;
}
.rvwt-sl-hero-meta__pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.13);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.92);
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .3px;
  padding: 7px 16px;
  border-radius: 30px;
}
.rvwt-sl-hero-meta__pill svg { flex-shrink: 0; opacity: .72; }
a.rvwt-sl-hero-meta__pill { text-decoration: none; transition: background .2s, border-color .2s; }
a.rvwt-sl-hero-meta__pill:hover { background: rgba(255,255,255,.25); border-color: rgba(255,255,255,.45); }

/* ── About block ─────────────────────────────────────────────────────────── */
.rvwt-sl-about {
  background: var(--color-white);
  border-radius: 10px;
  padding: 28px 32px;
  margin-bottom: 28px;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
  border-left: 4px solid var(--color-accent);
}
.rvwt-sl-about__eyebrow {
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--color-accent);
  margin-bottom: 12px;
}
.rvwt-sl-about__text {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.8;
  color: var(--color-text);
  font-style: italic;
  margin: 0;
}

/* ── Category feature section wrapper ────────────────────────────────────── */
.rvwt-sl-feature-section {
  background: var(--color-white);
  border-radius: 12px;
  padding: 28px 32px;
  margin-bottom: 28px;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.rvwt-sl-feature-section__title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--color-deep-green);
  margin: 0 0 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid #ede7da;
}
.rvwt-sl-feature-section__title svg { color: var(--color-accent); flex-shrink: 0; }

/* ── Feature card grid ───────────────────────────────────────────────────── */
.rvwt-sl-feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}
.rvwt-sl-feature-grid:last-child { margin-bottom: 0; }

.rvwt-sl-feature-card {
  background: var(--color-bg);
  border-radius: 8px;
  padding: 20px;
  border: 1px solid #ede7da;
  transition: border-color .2s, box-shadow .2s;
}
.rvwt-sl-feature-card:hover {
  border-color: var(--color-accent-soft);
  box-shadow: 0 4px 18px rgba(111,137,92,.13);
}
.rvwt-sl-feature-card__icon {
  width: 42px;
  height: 42px;
  background: rgba(111,137,92,.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-accent);
  margin-bottom: 14px;
}
.rvwt-sl-feature-card__label {
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--color-text);
  opacity: .6;
  margin-bottom: 8px;
}
.rvwt-sl-feature-card__value {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--color-text-strong);
  line-height: 1.55;
}
.rvwt-sl-feature-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2px;
}

/* ── Signature wines highlight bar (wineries only) ───────────────────────── */
.rvwt-sl-sig-wines {
  background: linear-gradient(135deg, var(--color-deep-green) 0%, #0b5e35 100%);
  border-radius: 8px;
  padding: 22px 26px;
}
.rvwt-sl-sig-wines__header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: rgba(255,255,255,.65);
  margin-bottom: 10px;
}
.rvwt-sl-sig-wines__header svg { color: #c8960c; }
.rvwt-sl-sig-wines__list {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: #fff;
  font-style: italic;
  margin: 0;
}

/* ── Action bar: fav-only variant (no buttons) ───────────────────────────── */
.rvwt-ldg-actions--fav-only { border-bottom: 1px solid #ede7da; background: var(--color-white); }
.rvwt-ldg-actions--fav-only .rvwt-ldg-actions__inner { justify-content: flex-end; }

/* ── Empty-left layout: collapse the grid to sidebar-only ────────────────── */
.rvwt-ldg-body__inner--empty-left {
  grid-template-columns: 1fr 420px;
}

/* ── Quick-contact tiles (contact info exists, no other left content) ─────── */
.rvwt-sl-empty-contact {
  background: var(--color-white);
  border-radius: 12px;
  padding: 32px;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.rvwt-sl-empty-contact__heading {
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--color-deep-green);
  margin-bottom: 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid #ede7da;
}
.rvwt-sl-empty-contact__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
}
.rvwt-sl-ec-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 20px;
  background: var(--color-bg);
  border: 1.5px solid #ede7da;
  border-radius: 10px;
  text-decoration: none;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.rvwt-sl-ec-tile:hover {
  border-color: var(--color-accent);
  box-shadow: 0 6px 20px rgba(111,137,92,.15);
  transform: translateY(-3px);
}
.rvwt-sl-ec-tile__icon {
  width: 52px;
  height: 52px;
  background: rgba(111,137,92,.1);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-accent);
  flex-shrink: 0;
}
.rvwt-sl-ec-tile__label {
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--color-text);
  opacity: .6;
}
.rvwt-sl-ec-tile__value {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text-strong);
  word-break: break-all;
  line-height: 1.4;
}

/* ── True placeholder (no info at all) ───────────────────────────────────── */
.rvwt-sl-placeholder {
  background: var(--color-white);
  border-radius: 12px;
  padding: 48px 32px;
  text-align: center;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.rvwt-sl-placeholder__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: rgba(111,137,92,.08);
  margin: 0 auto 22px;
  opacity: .7;
}
.rvwt-sl-placeholder__heading {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--color-text-strong);
  margin: 0 0 14px;
}
.rvwt-sl-placeholder__text {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--color-text);
  max-width: 380px;
  margin: 0 auto;
}

/* ── Sidebar card empty message ─────────────────────────────────────────── */
.rvwt-sl-card-empty {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--color-text);
  opacity: .7;
  font-style: italic;
  text-align: center;
  padding: 16px 20px 8px;
  margin: 0;
}

/* ── Upcoming Events strip ─────────────────────────────────────────────────── */
.rvwt-cal-events-wrap { max-width: 720px; margin: 0 auto; padding: 0 24px; }
.rvwt-cal-events {
  margin: 36px 0 0;
  padding: 24px 28px;
  background: var(--color-bg);
  border: 1px solid var(--color-primary-soft);
  border-radius: 12px;
}
.rvwt-cal-events__title {
  margin: 0 0 16px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--color-hunter);
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--color-primary-soft);
}
.rvwt-cal-events__title svg { flex-shrink: 0; color: var(--color-accent); }
.rvwt-cal-events__list { list-style: none; margin: 0; padding: 0; }
.rvwt-cal-events__item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-primary-soft);
}
.rvwt-cal-events__item:last-child { border-bottom: none; }
.rvwt-cal-events__date {
  flex-shrink: 0;
  width: 48px;
  text-align: center;
  background: var(--color-hunter);
  border-radius: 8px;
  padding: 6px 4px;
  color: #fff;
}
.rvwt-cal-events__date-month { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; opacity: .8; }
.rvwt-cal-events__date-day { font-size: 20px; font-weight: 800; line-height: 1; }
.rvwt-cal-events__info { flex: 1; min-width: 0; }
.rvwt-cal-events__name {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-hunter);
  text-decoration: none;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rvwt-cal-events__name:hover { text-decoration: underline; }
.rvwt-cal-events__time { font-size: 12px; color: var(--color-text); display: block; margin-top: 2px; }
.rvwt-cal-events__link {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-wine);
  white-space: nowrap;
  text-decoration: none;
}
.rvwt-cal-events__link:hover { text-decoration: underline; }
.rvwt-cal-events__footer { margin-top: 14px; text-align: right; }
.rvwt-cal-events__footer a { font-size: 13px; font-weight: 600; color: var(--color-hunter); text-decoration: none; }
.rvwt-cal-events__footer a:hover { text-decoration: underline; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 960px) {
  .rvwt-ldg-body__inner--empty-left { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .rvwt-sl-about,
  .rvwt-sl-feature-section { padding: 20px; }
  .rvwt-sl-feature-grid    { grid-template-columns: 1fr; }
  .rvwt-sl-hero-meta        { gap: 6px; }
  .rvwt-sl-hero-meta__pill  { font-size: 11px; padding: 5px 11px; }
  .rvwt-sl-badges           { flex-wrap: wrap; }
  .rvwt-sl-empty-contact    { padding: 20px; }
  .rvwt-sl-empty-contact__grid { grid-template-columns: 1fr 1fr; }
  .rvwt-sl-placeholder      { padding: 36px 20px; }
}

/* =========================================================================
   §9  TIERED CARD TEMPLATES
   Shared base (.rvwt-card) + per-style modifiers
   ========================================================================= */

/* ── Grid overrides per style ─────────────────────────────────────────────── */
.rvwt-cat-grid--immersive,
.rvwt-cat-grid--glass,
.rvwt-cat-grid--cinematic {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  align-items: start;
}

/* ── Shared base ──────────────────────────────────────────────────────────── */
.rvwt-card { position: relative; cursor: default; transition: transform .28s, box-shadow .28s; }
.rvwt-card--premium { cursor: pointer; }
.rvwt-card--basic { cursor: default; }
.rvwt-card--premium:hover, .rvwt-card--basic:hover { transform: translateY(-5px); }

/* Background image used by immersive / glass / cinematic */
.rvwt-card__bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.rvwt-card--premium:hover .rvwt-card__bg-img, .rvwt-card--basic:hover .rvwt-card__bg-img { transform: scale(1.07); }
.rvwt-card__bg-ph { position: absolute; inset: 0; background: var(--color-tan); }

/* Category badge — base */
.rvwt-card__bdg {
  position: absolute; top: 12px; left: 12px; z-index: 3;
  color: var(--color-white); font-family: var(--font-heading);
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px;
  padding: 5px 12px; border-radius: 20px;
}
/* Glass badge — immersive / glass / cinematic */
.rvwt-card__bdg--glass {
  background: var(--badge-bg) !important;
  color: var(--badge-text) !important;
  backdrop-filter: blur(8px) saturate(1.2); -webkit-backdrop-filter: blur(8px) saturate(1.2);
  border: 1px solid rgba(255,255,255,.2);
  text-shadow: 0 1px 3px rgba(0,0,0,.4);
}

/* Tier badge — sits to the LEFT of the heart button (heart is right:10px/32px wide).
   Right edge of badge = 10 + 32 + 6px gap = 48px from card edge. */
.rvwt-card__tier-badge {
  position: absolute; top: 11px; right: 48px; z-index: 3;
  font-family: var(--font-heading); font-size: 9px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px; padding: 3px 9px; border-radius: 20px;
}
.rvwt-card__tier-badge--basic  { background: rgba(0,0,0,.48); color: rgba(255,255,255,.8); }
.rvwt-card__tier-badge--premium { background: rgba(200,150,12,.88); color: #fff; }
/* All tier badges are absolute-positioned (overlay or inside img-wrap). */
.rvwt-card__tier-badge:not(.rvwt-card__tier-badge--overlay) {
  position: absolute; top: 11px; right: 48px; margin-bottom: 0;
}
.rvwt-card__tier-badge--overlay { position: absolute; top: 11px; right: 48px; }

/* Card name */
.rvwt-card__name { font-family: var(--font-heading); font-size: 14px; font-weight: 900; text-transform: uppercase; letter-spacing: .4px; line-height: 1.3; margin: 0 0 10px; }
.rvwt-card__name--light a,
.rvwt-card__name--light span { color: var(--color-white); text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.rvwt-card__name--light a:hover { color: var(--color-accent-soft); }
.rvwt-card__name--dark  a { color: var(--color-text-strong); }
.rvwt-card__name--dark  a:hover { color: var(--color-deep-green); }

/* Location row */
.rvwt-card__loc-row { display: flex; align-items: center; gap: 4px; font-family: var(--font-heading); font-size: 11px; color: rgba(255,255,255,.82); margin-bottom: 0; transition: margin-bottom .3s; text-shadow: 0 1px 4px rgba(0,0,0,.4); }
.rvwt-card__loc-row--dark { color: var(--color-text); text-shadow: none; }
.rvwt-card__loc-row svg { flex-shrink: 0; color: var(--color-tan); }
.rvwt-card__loc-row--dark svg { color: var(--color-accent); }

/* Meta rows (editorial) */
.rvwt-card__meta { display: flex; flex-direction: column; gap: 6px; flex: 1; margin-bottom: 12px; }
.rvwt-card__meta-row { display: flex; align-items: flex-start; gap: 7px; font-family: var(--font-heading); font-size: 12px; color: var(--color-text); line-height: 1.4; }
.rvwt-card__meta-row svg { flex-shrink: 0; color: var(--color-accent); margin-top: 1px; }

/* Chips */
.rvwt-card__chips { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.rvwt-card__chips--sm { gap: 3px; }
.rvwt-card__chip {
  font-family: var(--font-heading); font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .4px; padding: 3px 9px; border-radius: 20px;
  border: 1.5px solid rgba(111,137,92,.3); color: var(--color-accent);
  background: rgba(111,137,92,.09);
}

/* Upgrade note */
.rvwt-card__upgrade-note { font-family: var(--font-heading); font-size: 10px; color: #bbb; font-style: italic; margin-top: 8px; }
.rvwt-card__upgrade-note--light { color: rgba(255,255,255,.45); }

/* Glass panel (shared by glass + cinematic) */
.rvwt-card__glass {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
  background: rgba(246,241,232,.91);
  backdrop-filter: blur(18px) saturate(1.6); -webkit-backdrop-filter: blur(18px) saturate(1.6);
  border-top: 1px solid rgba(255,255,255,.7);
  padding: 14px 16px 16px;
}
.rvwt-card:hover .rvwt-card__glass { border-top-color: rgba(111,137,92,.35); }

/* Glass bottom row (hours + CTA side-by-side) */
.rvwt-card__glass-divider { height: 1px; background: rgba(0,0,0,.08); margin: 8px 0 10px; }
.rvwt-card__glass-bottom { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.rvwt-card__hrs-row { display: flex; align-items: center; gap: 4px; font-family: var(--font-heading); font-size: 11px; color: var(--color-text); }
.rvwt-card__hrs-row svg { color: var(--color-accent); }

/* Small CTA buttons (glass + cinematic) */
.rvwt-card__ctas { display: flex; gap: 6px; }
.rvwt-card__cta-sm {
  font-family: var(--font-heading); font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .4px; padding: 6px 12px; border-radius: 7px;
  text-decoration: none; white-space: nowrap; transition: background .2s, color .2s;
}
.rvwt-card__cta-sm--pri  { background: var(--btn-bg); color: var(--btn-text); }
.rvwt-card__cta-sm--pri:hover  { background: var(--btn-bg-hover); color: var(--btn-text); }
.rvwt-card__cta-sm--ghost { background: transparent; color: var(--color-accent); border: 1.5px solid var(--color-accent); }
.rvwt-card__cta-sm--ghost:hover { background: var(--color-accent); color: var(--color-white); }

/* ── V1 EDITORIAL ─────────────────────────────────────────────────────────── */
.rvwt-card--editorial {
  background: var(--color-white); border-radius: 12px; overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: 0 3px 18px rgba(4,58,33,.09);
}
.rvwt-card--editorial:hover { box-shadow: 0 10px 32px rgba(4,58,33,.16); }
.rvwt-card--editorial .rvwt-card__img-wrap { position: relative; overflow: hidden; }
.rvwt-card--editorial .rvwt-card__img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; transition: transform .4s; }
.rvwt-card--editorial:hover .rvwt-card__img { transform: scale(1.05); }
.rvwt-card--editorial .rvwt-card__img-ph { width: 100%; aspect-ratio: 16/10; background: var(--color-tan); }
.rvwt-card--editorial .rvwt-card__body { padding: 16px 18px 20px; flex: 1; display: flex; flex-direction: column; }
.rvwt-card--editorial .rvwt-card__footer { margin-top: 14px; padding-top: 14px; border-top: 1px solid #ede8df; }
.rvwt-card--editorial .rvwt-card__cta {
  font-family: var(--font-heading); font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px; color: var(--color-wine);
  display: inline-flex; align-items: center; gap: 5px; text-decoration: none; transition: gap .2s;
}
.rvwt-card--editorial:hover .rvwt-card__cta { gap: 9px; }
.rvwt-card--editorial .rvwt-card__cta--contact { color: #bbb; }
/* Basic tier: desaturate image slightly */
.rvwt-card--editorial.rvwt-card--basic .rvwt-card__img { filter: grayscale(15%) brightness(.95); }

/* ── V2 IMMERSIVE ─────────────────────────────────────────────────────────── */
.rvwt-card--immersive {
  border-radius: 14px; overflow: hidden; aspect-ratio: 3/4;
  box-shadow: 0 6px 22px rgba(4,58,33,.14);
}
.rvwt-card--immersive:hover { box-shadow: 0 14px 38px rgba(4,58,33,.24); }
.rvwt-card--immersive .rvwt-card__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to bottom, rgba(0,0,0,0) 20%, rgba(0,0,0,.58) 55%, rgba(0,0,0,.88) 100%);
}
.rvwt-card--immersive.rvwt-card--basic .rvwt-card__bg-img { filter: brightness(.88); }
/* Bottom panel: sits over gradient; gets frosted-glass panel on hover */
.rvwt-card--immersive .rvwt-card__bottom {
  position: absolute; bottom: 0; left: 0; right: 0; padding: 18px 18px 20px; z-index: 2;
  transition: background .3s ease, backdrop-filter .3s, -webkit-backdrop-filter .3s;
}
.rvwt-card--immersive:hover .rvwt-card__bottom {
  background: rgba(74,99,64,.82);
  backdrop-filter: blur(16px) saturate(1.3);
  -webkit-backdrop-filter: blur(16px) saturate(1.3);
}
.rvwt-card--immersive .rvwt-card__name { margin-bottom: 6px; font-size: 16px; }

/* Location row — flex-start so pin icon locks to the first line when text wraps */
.rvwt-card--immersive .rvwt-card__loc-row {
  align-items: flex-start; margin-bottom: 0;
  font-size: 12px; line-height: 1.5;
  transition: margin-bottom .3s;
}
.rvwt-card--immersive .rvwt-card__loc-row svg { margin-top: 2px; flex-shrink: 0; }
.rvwt-card--immersive:hover .rvwt-card__loc-row { margin-bottom: 0; }

/* Hover drawer */
.rvwt-card__drawer {
  overflow: hidden; max-height: 0; opacity: 0;
  transition: max-height .4s ease, opacity .3s;
  border-top: 1px solid rgba(255,255,255,.18);
  padding-top: 12px; margin-top: 10px;
}
.rvwt-card--immersive:hover .rvwt-card__drawer { max-height: 260px; opacity: 1; }

/* Drawer detail rows — icon pins to first line, comfortable line-height */
.rvwt-card__drawer-row {
  display: flex; align-items: flex-start; gap: 9px;
  font-family: var(--font-heading); font-size: 13px; font-weight: 500;
  color: rgba(255,255,255,.92); margin-bottom: 9px; line-height: 1.5;
}
.rvwt-card__drawer-row:last-of-type { margin-bottom: 0; }
.rvwt-card__drawer-row svg { flex-shrink: 0; margin-top: 3px; color: rgba(255,255,255,.5); }

/* Full-width CTA button */
.rvwt-card__drawer-btn {
  display: block; width: 100%; box-sizing: border-box; margin-top: 14px;
  background: rgba(255,255,255,.92); color: var(--color-deep-green);
  font-family: var(--font-heading); font-size: 12px; font-weight: 800;
  text-transform: uppercase; letter-spacing: 1.4px; padding: 11px 16px; border-radius: 8px;
  text-align: center; text-decoration: none; transition: background .2s, color .2s, transform .15s;
}
.rvwt-card__drawer-btn:hover {
  background: var(--btn-bg); color: var(--btn-text); transform: translateY(-1px);
}

/* ── VC GLASS PANEL ───────────────────────────────────────────────────────── */
.rvwt-card--glass {
  border-radius: 16px; overflow: hidden; aspect-ratio: 4/5;
  box-shadow: 0 6px 22px rgba(4,58,33,.14);
}
.rvwt-card--glass.rvwt-card--basic .rvwt-card__bg-img { filter: grayscale(25%) brightness(.88); }
.rvwt-card__top-grad {
  position: absolute; top: 0; left: 0; right: 0; height: 75px; z-index: 1;
  background: linear-gradient(rgba(0,0,0,.32), transparent);
}

/* ── V6 CINEMATIC GLASS ───────────────────────────────────────────────────── */
.rvwt-card--cinematic {
  border-radius: 14px; overflow: hidden; aspect-ratio: 3/4;
  box-shadow: 0 8px 28px rgba(4,58,33,.18);
}
.rvwt-card--cinematic.rvwt-card--basic .rvwt-card__bg-img { filter: grayscale(30%) brightness(.82); }
.rvwt-card__cine-grad {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to bottom,
    rgba(0,0,0,.32) 0%,
    rgba(0,0,0,.06) 32%,
    rgba(0,0,0,0) 50%,
    rgba(0,0,0,.4) 72%,
    rgba(0,0,0,.65) 100%);
}
/* Cinematic glass panel modifier */
.rvwt-card__glass--cine { padding-bottom: 18px; transition: padding .3s; }
.rvwt-card--cinematic:hover .rvwt-card__glass--cine { padding-bottom: 20px; }
.rvwt-card--cinematic .rvwt-card__loc-row { transition: margin-bottom .3s; }
.rvwt-card--cinematic:hover .rvwt-card__loc-row { margin-bottom: 8px; }

/* Cinematic reveal (V2-drawer inside glass panel) */
.rvwt-card__cine-reveal { overflow: hidden; max-height: 0; opacity: 0; transition: max-height .4s ease, opacity .35s; }
.rvwt-card--cinematic:hover .rvwt-card__cine-reveal { max-height: 160px; opacity: 1; }

/* Dark gradient bottom panel — replaces frosted glass so the photo shows through */
.rvwt-card--cinematic .rvwt-card__glass,
.rvwt-card--glass .rvwt-card__glass {
  background: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.62) 38%, rgba(0,0,0,.90) 100%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-top: none;
  padding-top: 32px;
}
.rvwt-card--cinematic:hover .rvwt-card__glass,
.rvwt-card--glass:hover .rvwt-card__glass { border-top: none; }
.rvwt-card--cinematic .rvwt-card__chip,
.rvwt-card--glass .rvwt-card__chip {
  border-color: rgba(255,255,255,.28);
  color: rgba(255,255,255,.88);
  background: rgba(255,255,255,.1);
}
.rvwt-card--cinematic .rvwt-card__glass-divider,
.rvwt-card--glass .rvwt-card__glass-divider { background: rgba(255,255,255,.18); }
.rvwt-card--cinematic .rvwt-card__hrs-row,
.rvwt-card--glass .rvwt-card__hrs-row { color: rgba(255,255,255,.82); }
.rvwt-card--cinematic .rvwt-card__hrs-row svg,
.rvwt-card--glass .rvwt-card__hrs-row svg { color: rgba(255,255,255,.55); }

/* Disable lift + zoom for cinematic/glass cards — no hover motion */
.rvwt-card--cinematic:hover,
.rvwt-card--glass:hover { transform: none; }
.rvwt-card--cinematic:hover .rvwt-card__bg-img,
.rvwt-card--glass:hover .rvwt-card__bg-img { transform: none; }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 540px) {
  .rvwt-cat-grid--immersive,
  .rvwt-cat-grid--glass,
  .rvwt-cat-grid--cinematic { grid-template-columns: 1fr 1fr; gap: 12px; }
  .rvwt-card--immersive,
  .rvwt-card--cinematic { aspect-ratio: 3/4; }
}
@media (max-width: 380px) {
  .rvwt-cat-grid--immersive,
  .rvwt-cat-grid--glass,
  .rvwt-cat-grid--cinematic { grid-template-columns: 1fr; }
}

/* =========================================================================
   LIST CARD — horizontal image-left / content-right (Jacksonville design)
   ========================================================================= */

/* Grid override — single column of full-width cards.
   Double-class selector beats the later minified .rvwt-cat-grid{display:grid} rule. */
.rvwt-cat-grid.rvwt-cat-grid--list {
  display: flex !important;
  flex-direction: column;
  gap: 20px;
  grid-template-columns: unset;
}

/* ── Card shell ───────────────────────────────────── */
.rvwt-list-card {
  position: relative;
  display: flex;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
  transition: box-shadow .25s, transform .25s;
  border: 1px solid rgba(0,0,0,.05);
}

.rvwt-list-card:hover {
  box-shadow: 0 8px 26px rgba(0,0,0,.12);
  transform: translateY(-1px);
}

/* Heart button: always visible on listing cards */
.rvwt-list-card .rvwt-fav {
  background: rgba(0,0,0,.52);
  color: #fff;
  border-color: rgba(255,255,255,.55);
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .15s ease;
}

/* ── Image column ─────────────────────────────────── */
.rvwt-list-card__img-col {
  position: relative;
  flex: 0 0 360px;
  overflow: hidden;
  min-height: 240px;
}

.rvwt-list-card__img-link {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}

.rvwt-list-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  position: absolute;
  inset: 0;
  transition: transform .4s ease;
}

.rvwt-list-card:hover .rvwt-list-card__img {
  transform: scale(1.03);
}

.rvwt-list-card__img-ph {
  width: 100%;
  height: 100%;
  min-height: 240px;
  background: linear-gradient(135deg, #dde8da 0%, #c8d8c4 100%);
  display: block;
  position: absolute;
  inset: 0;
}

.rvwt-list-card__cat-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: #fff;
  padding: 4px 12px;
  border-radius: 20px;
  pointer-events: none;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
}

/* ── Content column ───────────────────────────────── */
.rvwt-list-card__body {
  flex: 1;
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

/* Featured member label */
.rvwt-list-card__tier {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--btn-bg, #731c46);
}

/* Winery name */
.rvwt-list-card__name {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.75rem;
  font-weight: 500;
  color: var(--color-primary, #8A9A7B);
  margin: 0;
  line-height: 1.2;
}

.rvwt-list-card__name a {
  color: inherit;
  text-decoration: none;
}

.rvwt-list-card__name a:hover {
  color: var(--color-hunter, #043a21);
}

/* ── Single-line meta row ─────────────────────────── */
.rvwt-list-card__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 4px;
  font-size: .82rem;
  color: #555;
  line-height: 1.4;
}

.rvwt-list-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.rvwt-list-card__meta-item i {
  color: var(--color-primary, #8A9A7B);
  font-size: .75rem;
  flex-shrink: 0;
}

.rvwt-list-card__meta-item a,
a.rvwt-list-card__meta-item {
  color: #555;
  text-decoration: none;
  font-weight: inherit;
}

.rvwt-list-card__meta-item a:hover,
a.rvwt-list-card__meta-item:hover {
  color: var(--btn-bg, #731c46);
}

a.rvwt-list-card__meta-map-link:hover i {
  color: var(--btn-bg, #731c46);
}

.rvwt-list-card__meta-sep {
  color: #ccc;
  padding: 0 4px;
  user-select: none;
}

/* ── Varietal frosted-glass chips ─────────────────── */
.rvwt-list-card__varietals {
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}
.rvwt-list-card__varietals i {
  color: #731C46;
  font-size: 0.8rem;
  flex-shrink: 0;
}
.rvwt-varietal-chip {
  display: inline-block;
  background: rgba(115, 28, 70, 0.12);
  color: #5a1637;
  font-size: 0.71rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 3px 10px;
  border-radius: 6px;
  border: 1px solid rgba(115, 28, 70, 0.25);
  line-height: 1.6;
  backdrop-filter: blur(4px);
}

/* ── Description paragraph ────────────────────────── */
.rvwt-list-card__desc {
  font-size: .88rem;
  color: #555;
  line-height: 1.6;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Amenity chips ────────────────────────────────── */
.rvwt-list-card__amenities {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
}

.rvwt-list-card__amenity {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 5px;
  font-size: .68rem;
  font-weight: 600;
  color: #444;
  background: #f7f5f2;
  border: 1px solid #ddd8d0;
  border-radius: 8px;
  padding: 8px 12px;
  min-width: 58px;
  letter-spacing: .15px;
  line-height: 1.25;
}

.rvwt-list-card__amenity i {
  color: var(--color-primary, #8A9A7B);
  font-size: 1rem;
  line-height: 1;
}

/* ── Bottom row: amenities left + button column right ─────────────────── */
.rvwt-list-card__bottom {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid #f0f0f0;
}
.rvwt-list-card__amenities {
  flex: 1;
  min-width: 0;
}
.rvwt-list-card__amenities--empty {
  flex: 1;
}

/* ── Amenities block — single listing detail page ───────────────────────── */
.rvwt-ldg-amenities {
  margin: 24px 0;
  padding: 20px 24px;
  background: #faf8f6;
  border: 1px solid #ede8e4;
  border-radius: 8px;
}
.rvwt-ldg-amenities__title {
  font-size: 15px;
  font-weight: 700;
  color: #2d1a0e;
  margin: 0 0 14px;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.rvwt-ldg-amenities__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
}
.rvwt-ldg-amenity {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  color: #444;
}
.rvwt-ldg-amenity i {
  color: #731c46;
  font-size: 14px;
  width: 16px;
  text-align: center;
}

/* ── Social icon links ─ slide-up hover animation (matches grizzlypeakwinery) */
.rvwt-list-card__social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}
.rvwt-list-card__social-link {
  position: relative;
  overflow: hidden;
  display: inline-block;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #f4f0ee;
  color: #731c46;
  font-size: 14px;
  text-decoration: none;
  transition: background 0.4s cubic-bezier(0.3,1,0.3,1), color 0.15s ease;
}
/* Icon fills the circle so percentage-based transforms are predictable */
.rvwt-list-card__social-link i {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: transform 0.4s cubic-bezier(0.3,1,0.3,1);
}
/* Clone of the icon placed just below the visible circle */
.rvwt-list-card__social-link i::after {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  speak: never;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}
/* FA6 brand unicode map — must stay in sync with card-list.php icon names */
.rvwt-list-card__social-link i.fa-facebook::after    { content: "\f09a"; }
.rvwt-list-card__social-link i.fa-instagram::after   { content: "\f16d"; }
.rvwt-list-card__social-link i.fa-x-twitter::after   { content: "\e61b"; }
.rvwt-list-card__social-link i.fa-tiktok::after      { content: "\e07b"; }
.rvwt-list-card__social-link i.fa-youtube::after     { content: "\f167"; }
.rvwt-list-card__social-link i.fa-pinterest::after   { content: "\f0d2"; }
.rvwt-list-card__social-link i.fa-linkedin::after    { content: "\f08c"; }
.rvwt-list-card__social-link i.fa-yelp::after        { content: "\f1e9"; }
/* TripAdvisor: FA6 removed this icon — rendered as inline SVG with a real DOM clone for the slide animation */
.rvwt-list-card__social-link i.rvwt-ta-icon { font-size: 0; }
.rvwt-list-card__social-link .rvwt-ta-icon__main,
.rvwt-list-card__social-link .rvwt-ta-icon__clone {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rvwt-list-card__social-link .rvwt-ta-icon__clone { top: 100%; }
.rvwt-list-card__social-link .rvwt-ta-icon__main svg,
.rvwt-list-card__social-link .rvwt-ta-icon__clone svg { width: 14px; height: 14px; }
/* Hover: icon exits top, clone enters from bottom, circle fills with brand colour */
.rvwt-list-card__social-link:hover {
  background: #731c46;
  color: #fff;
}
.rvwt-list-card__social-link:hover i {
  transform: translateY(-100%);
}

/* ── Action buttons (vertical stack, pinned right) ──────────────────────── */
.rvwt-list-card__actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  flex-shrink: 0;
  width: 200px;
}
.rvwt-list-card__actions-social {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  padding-top: 4px;
}

.rvwt-list-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  box-sizing: border-box;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .8px;
  text-transform: uppercase;
  padding: 9px 20px;
  border-radius: 5px;
  text-decoration: none;
  transition: background .15s, color .15s, border-color .15s, box-shadow .15s;
  white-space: nowrap;
  line-height: 1;
}

.rvwt-list-card__btn--primary {
  background: var(--btn-bg, #731c46);
  color: var(--btn-text, #fff);
  border: 2px solid transparent;
  box-shadow: 0 2px 6px rgba(115,28,70,.25);
}

.rvwt-list-card__btn--primary:hover {
  background: var(--btn-bg-hover, #5e1739);
  color: var(--btn-text, #fff);
  box-shadow: 0 4px 12px rgba(115,28,70,.35);
}


.rvwt-list-card__btn--outline {
  background: transparent;
  color: var(--color-hunter, #043a21);
  border: 2px solid var(--color-hunter, #043a21);
}

.rvwt-list-card__btn--outline:hover {
  background: var(--color-hunter, #043a21);
  color: #fff;
}

.rvwt-list-card__btn--ghost {
  background: transparent;
  color: #666;
  border: 2px solid #ccc;
}

.rvwt-list-card__btn--ghost:hover {
  border-color: #999;
  color: #333;
}

/* ── Responsive ───────────────────────────────────── */
@media (max-width: 1100px) {
  .rvwt-list-card__img-col { flex: 0 0 300px; }
}

@media (max-width: 900px) {
  .rvwt-list-card__img-col { flex: 0 0 240px; }
  .rvwt-list-card__body { padding: 18px 20px; }
  .rvwt-list-card__name { font-size: 1.15rem; }
}

/* Tablet portrait: narrow the fixed actions column so body content gets more room */
@media (max-width: 768px) and (min-width: 681px) {
  .rvwt-list-card__img-col { flex: 0 0 200px; }
  .rvwt-list-card__actions { width: 160px; }
  .rvwt-list-card__btn { font-size: .68rem; padding: 8px 10px; }
}

@media (max-width: 680px) {
  .rvwt-list-card {
    flex-direction: column;
    transform: none !important;
  }
  .rvwt-list-card__img-col {
    flex: 0 0 220px;
    height: 220px;
    min-height: 220px;
  }
  .rvwt-list-card__body { padding: 16px 18px; gap: 8px; }
  .rvwt-list-card__name { font-size: 1.1rem; }
  .rvwt-list-card__desc { -webkit-line-clamp: 2; }
  .rvwt-list-card__actions { gap: 8px; padding-top: 6px; }
  .rvwt-list-card__btn { font-size: .68rem; padding: 8px 14px; }
  /* Stack: amenities → buttons, both full width */
  .rvwt-list-card__bottom {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .rvwt-list-card__amenities {
    flex: none;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 8px;
  }
  .rvwt-list-card__amenity { width: 100%; }
  .rvwt-list-card__actions { width: 100%; flex-direction: column; }
  .rvwt-list-card__actions .rvwt-list-card__btn { width: 100%; }
}

@media (max-width: 400px) {
  .rvwt-list-card__img-col { flex: 0 0 190px; height: 190px; min-height: 190px; }
  .rvwt-list-card__body { padding: 14px 16px; }
  .rvwt-list-card__meta { font-size: .78rem; }
  .rvwt-list-card__amenity { font-size: .68rem; padding: 6px 8px; min-width: 48px; }
}

/* Activities, Transportation, Lodging & Dining: push bottom row (social/button) to foot of card */
.rvwt-list-card--cat-activities .rvwt-list-card__act-bottom,
.rvwt-list-card--cat-transportation .rvwt-list-card__act-bottom,
.rvwt-list-card--cat-lodging .rvwt-list-card__act-bottom,
.rvwt-list-card--cat-dining .rvwt-list-card__act-bottom {
  margin-top: auto;
}

/* ── Lodging list card: amenity chips (kept for potential future use) ───────── */
.rvwt-list-card__ldg-rows {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 4px;
}

.rvwt-list-card__ldg-amenities {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0 4px;
}

.rvwt-list-card__ldg-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .75rem;
  font-weight: 600;
  color: #555;
  background: #f4f0ee;
  border: 1px solid #e0dbd5;
  border-radius: 20px;
  padding: 4px 10px;
  line-height: 1.4;
  white-space: nowrap;
}

.rvwt-list-card__ldg-chip i {
  color: var(--color-primary, #8A9A7B);
  font-size: .72rem;
  flex-shrink: 0;
}

/* ── Activities list card: stacked icon rows ──────────────────────────────── */
.rvwt-list-card__act-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: .84rem;
  color: #444;
  line-height: 1.45;
}
.rvwt-list-card__act-row i {
  color: var(--color-primary, #8A9A7B);
  font-size: .82rem;
  flex-shrink: 0;
  margin-top: 3px;
  width: 14px;
  text-align: center;
}
.rvwt-list-card__act-label {
  font-weight: 600;
  color: #333;
  margin-right: 4px;
}
.rvwt-list-card__act-link {
  color: var(--color-primary, #8A9A7B);
  text-decoration: none;
}
.rvwt-list-card__act-link:hover {
  text-decoration: underline;
  opacity: .8;
}
/* Tight container for Hours/Address/Phone rows */
.rvwt-list-card__act-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
/* Social icons inline in the bottom row */
.rvwt-list-card__act-social {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  flex-shrink: 0;
}
/* Bottom row: social + button always pushed to the right */
.rvwt-list-card__act-bottom {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding-top: 10px;
  flex-wrap: nowrap;
}
.rvwt-list-card__act-bottom > .rvwt-list-card__btn--primary {
  flex-shrink: 0;
  flex-grow: 0;
  width: auto;
  white-space: nowrap;
}
.rvwt-list-card__act-bottom .rvwt-list-card__actions {
  width: 200px;
  align-items: stretch;
}
.rvwt-list-card__act-bottom .rvwt-list-card__actions .rvwt-fav {
  position: static;
}
.rvwt-list-card__bottom .rvwt-list-card__actions .rvwt-fav {
  position: static;
}
@media (max-width: 680px) {
  .rvwt-list-card__act-row     { font-size: .80rem; gap: 6px; }
  .rvwt-list-card__act-bottom  { flex-wrap: wrap; padding-top: 8px; }
  .rvwt-list-card__act-bottom > .rvwt-list-card__btn--primary { width: 100%; justify-content: center; }
}

/* =========================================================================
   LISTING SEARCH BAR
   ========================================================================= */

/* Card container */
.rvwt-listing-search {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  background: var(--color-white);
  border: 1px solid rgba(215,205,190,.7);
  border-radius: 14px;
  padding: 28px 32px 24px;
  margin-bottom: 40px;
  box-shadow: 0 4px 24px rgba(4,58,33,.06), 0 1px 4px rgba(4,58,33,.04);
}

/* Decorative label above the bar */
.rvwt-listing-search__label {
  font-family: var(--font-script);
  font-size: 22px;
  color: var(--color-accent);
  text-align: center;
  margin: 0 0 16px;
  letter-spacing: .3px;
}

/* Form row */
.rvwt-listing-search__form { display: flex; }

/* Integrated field + button */
.rvwt-listing-search__field {
  display: flex;
  align-items: center;
  flex: 1;
  background: var(--color-bg);
  border: 1.5px solid #d7cdbe;
  border-radius: 50px;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
  min-height: 52px;
}

.rvwt-listing-search__field:focus-within {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 4px rgba(111,137,92,.12);
}

/* Search glass icon */
.rvwt-listing-search__icon {
  flex-shrink: 0;
  margin: 0 4px 0 18px;
  color: var(--color-accent);
  pointer-events: none;
  transition: color .2s;
}
.rvwt-listing-search__field:focus-within .rvwt-listing-search__icon { color: var(--color-deep-green); }

/* Thin vertical divider between icon and input */
.rvwt-listing-search__divider {
  flex-shrink: 0;
  width: 1px;
  height: 20px;
  background: #d7cdbe;
  margin: 0 12px 0 8px;
}

/* Text input */
.rvwt-listing-search__input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: none;
  padding: 0 8px 0 0;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1;
  color: var(--color-text-strong);
  background: transparent;
}

.rvwt-listing-search__input::placeholder { color: #b0a898; }
.rvwt-listing-search__input::-webkit-search-cancel-button { display: none; }

/* Submit button — pill shape, sits flush inside the field */
.rvwt-listing-search__btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 4px;
  padding: 0 22px;
  height: calc(52px - 10px);
  background: var(--color-accent);
  color: var(--color-white);
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  border-radius: 50px;
  border: 0;
  cursor: pointer;
  transition: background .2s, transform .1s;
  white-space: nowrap;
}
.rvwt-listing-search__btn:hover  { background: var(--color-deep-green); }
.rvwt-listing-search__btn:active { transform: scale(.97); }
.rvwt-listing-search__btn-icon   { flex-shrink: 0; }

/* Results meta bar */
.rvwt-listing-search__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #ede8df;
  font-family: var(--font-heading);
  font-size: 13px;
  color: var(--color-text);
}
.rvwt-listing-search__meta[hidden] { display: none; }

.rvwt-listing-search__summary { flex: 1; }
.rvwt-listing-search__summary strong { color: var(--color-text-strong); }

.rvwt-listing-search__clear {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 14px;
  border: 1px solid #d7cdbe;
  border-radius: 50px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text);
  transition: background .2s, border-color .2s, color .2s;
}
.rvwt-listing-search__clear:hover {
  background: #f5f0e8;
  border-color: var(--color-accent);
  color: var(--color-accent);
}

/* Loading state — fade the results slightly */
#rvwt-listing-results.rvwt-results--loading {
  opacity: .45;
  pointer-events: none;
  transition: opacity .15s;
}

@media (max-width: 600px) {
  .rvwt-listing-search { padding: 20px 16px 18px; border-radius: 10px; }
  .rvwt-listing-search__label { font-size: 18px; margin-bottom: 12px; }
  .rvwt-listing-search__btn span { display: none; }
  .rvwt-listing-search__btn { padding: 0 14px; gap: 0; }
}

/* ── Card lightbox zoom button ── */
.rvwt-card__lb-btn {
  position: absolute;
  top: 48px;
  right: 10px;
  z-index: 5;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255,255,255,.4);
  background: rgba(0,0,0,.38);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  opacity: 0;
  transform: scale(.8);
  transition: opacity .2s ease, transform .2s ease, background .15s ease;
}
.rvwt-card:hover .rvwt-card__lb-btn { opacity: 1; transform: scale(1); }
.rvwt-card__lb-btn:hover { background: rgba(0,0,0,.65); border-color: rgba(255,255,255,.7); }

/* ── Lightbox overlay ── */
.rvwt-lb {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(0,0,0,.92);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
  opacity: 0;
  transition: opacity .25s ease;
  cursor: zoom-out;
}
.rvwt-lb.is-open { opacity: 1; }
.rvwt-lb__close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 44px;
  height: 44px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease;
  z-index: 2;
}
.rvwt-lb__close:hover { background: rgba(255,255,255,.24); }
.rvwt-lb__figure {
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  cursor: default;
  margin: 0;
}
.rvwt-lb__img {
  max-width: 100%;
  max-height: calc(90vh - 56px);
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 24px 80px rgba(0,0,0,.7);
  display: block;
}
.rvwt-lb__caption {
  color: rgba(255,255,255,.68);
  font-size: 13px;
  text-align: center;
  font-family: var(--font-body, serif);
  font-style: italic;
  margin: 0;
}

/* =========================================================================
   §7b  ARCHIVE PAGE — LAYOUT 5
   Script-watermark header · horizontal scroll strip · featured spotlight
   Classes: rvwt-arc-header--l5/--script/--has-strip, rvwt-arc-script-*,
            rvwt-arc-hscroll-*, rvwt-arc-hcard-*, rvwt-arc-feat-*,
            rvwt-arc-fcard-*
   ========================================================================= */

/* ── Layout-5 header modifiers ──────────────────────────────────────────── */
.rvwt-arc-header--l5 {
  padding-bottom: 0;
  display: flex;
  flex-direction: column;
  min-height: 480px;
  --hero-bg-pos: center 60%;
  background-size: cover;
  background-position: var(--hero-bg-pos);
  background-repeat: no-repeat;
  background-attachment: scroll;
}
.rvwt-arc-header--script .rvwt-arc-header__inner {
  text-align: center;
}
.rvwt-arc-header__inner--centered {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 1.5rem;
  flex: 1;
  width: 100%;
  box-sizing: border-box;
}
.rvwt-arc-header__breadcrumbs--center {
  justify-content: center;
}

/* ── Left-hero variant (listing archive new design) ─────────────────────── */
.rvwt-arc-header--left-hero {
  min-height: 680px;
  justify-content: center;
}
.rvwt-arc-header__inner--left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  padding: clamp(2.5rem, 6vw, 5rem) clamp(1.5rem, 5vw, 5rem);
  flex: 1;
  width: 100%;
  max-width: 1520px;
  margin: 0 auto;
  box-sizing: border-box;
}
.rvwt-arc-header--left-hero .rvwt-arc-header__breadcrumbs {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: rgba(255,255,255,.80);
  margin-bottom: 16px;
}
.rvwt-arc-header--left-hero .rvwt-arc-header__breadcrumbs a {
  color: rgba(255,255,255,.80);
  text-decoration: none;
}
.rvwt-arc-header--left-hero .rvwt-arc-header__breadcrumbs a:hover { color: #fff; }
.rvwt-arc-header--left-hero .rvwt-arc-header__breadcrumbs span { color: rgba(255,255,255,.60); opacity: 0.6; }
.rvwt-arc-header--left-hero .rvwt-arc-header__breadcrumbs span[aria-current="page"] { color: #fff !important; font-weight: 600; opacity: 1 !important; }
.rvwt-arc-header--left-hero .rvwt-arc-script-hdr {
  align-items: flex-start !important;
  text-align: left !important;
  padding: 0 !important;
  max-width: 560px;
  margin: 0 !important;
}
.rvwt-arc-header--left-hero .rvwt-arc-script-title {
  font-family: 'Lora', Georgia, serif !important;
  font-size: clamp(2.2rem, 4.8vw, 4rem) !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.15 !important;
  text-align: left !important;
  margin: 0 0 0 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.35) !important;
}
.rvwt-arc-header--left-hero .rvwt-arc-script-title::after {
  content: '';
  display: block;
  width: 56px;
  height: 3px;
  background: var(--btn-bg, #731c46);
  margin-top: 18px;
  margin-bottom: 18px;
  border-radius: 2px;
}
.rvwt-arc-header--left-hero .rvwt-arc-script-desc,
.rvwt-arc-header--left-hero .rvwt-arc-script-desc p,
.rvwt-arc-header--left-hero .rvwt-arc-script-desc h1,
.rvwt-arc-header--left-hero .rvwt-arc-script-desc h2,
.rvwt-arc-header--left-hero .rvwt-arc-script-desc h3 {
  text-align: left !important;
  font-style: normal !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.rvwt-arc-header--left-hero .rvwt-arc-script-desc {
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
  max-width: 460px;
}
@media (max-width: 768px) {
  .rvwt-arc-header--left-hero { min-height: 420px; }
  .rvwt-arc-header--left-hero .rvwt-arc-script-title { font-size: clamp(1.5rem, 5vw, 2.2rem); }
}
@media (max-width: 480px) {
  .rvwt-arc-header--left-hero { min-height: 320px; }
  .rvwt-arc-header--left-hero .rvwt-arc-script-desc { font-size: 14px; }
}

/* ── Script-watermark header block ─────────────────────────────────────── */
.rvwt-arc-script-hdr {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px 0 32px;
  width: 100%;
  max-width: 680px;
  margin: 0 auto;
}
.rvwt-arc-script-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--btn-bg);
  color: var(--btn-text);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 18px rgba(0,0,0,.35);
  flex-shrink: 0;
}
.rvwt-arc-script-icon svg { width: 28px; height: 28px; }
.rvwt-arc-script-wm {
  display: none;
}
.rvwt-arc-script-title {
  font-family: var(--font-heading, serif);
  font-size: clamp(24px, 5vw, 52px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--color-white, #fff);
  text-shadow: 0 4px 24px rgba(0,0,0,.45);
  margin: 0 0 10px;
  line-height: 1.1;
  position: relative;
  z-index: 1;
}
.rvwt-arc-script-desc {
  font-family: var(--font-body, sans-serif);
  font-size: 17px;
  line-height: 1.65;
  color: rgba(255,255,255,.95);
  max-width: 560px;
  margin: 0 0 16px;
  position: relative;
  z-index: 1;
  text-align: center;
}
.rvwt-arc-script-desc p { margin: 0 0 8px; }
.rvwt-arc-script-desc p:last-child { margin: 0; }
.rvwt-arc-script-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.88);
  font-family: var(--font-heading, serif);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 7px 20px;
  border-radius: 30px;
  position: relative;
  z-index: 1;
}
.rvwt-arc-script-badge__num {
  font-size: 16px;
  font-weight: 900;
  color: #fff;
}

/* ── Horizontal scroll strip ────────────────────────────────────────────── */
.rvwt-arc-hscroll-wrap {
  display: flex;
  align-items: center;
  gap: 14px;
  row-gap: 14px;
  column-gap: 14px;
  padding: 0 1.5rem;
  background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.80));
  margin-top: auto;
  width: 100%;
  box-sizing: border-box;
}
.rvwt-arc-hscroll-lbl {
  font-family: var(--font-heading, serif);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: rgba(255,255,255,.75);
  white-space: nowrap;
  flex-shrink: 0;
}
.rvwt-arc-hscroll {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 14px 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
.rvwt-arc-hscroll::-webkit-scrollbar { display: none; }

/* ── Horizontal scroll cards ────────────────────────────────────────────── */
.rvwt-arc-hcard {
  flex-shrink: 0;
  width: 175px;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  text-decoration: none;
  transition: transform .25s, box-shadow .25s;
  border: 2px solid transparent;
}
.rvwt-arc-hcard:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,.35);
}
.rvwt-arc-hcard.is-active {
  border-color: rgba(255,255,255,.7);
  box-shadow: 0 0 0 2px rgba(255,255,255,.25);
}
.rvwt-arc-hcard__img {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: rgba(0,0,0,.3);
}
.rvwt-arc-hcard__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s;
}
.rvwt-arc-hcard:hover .rvwt-arc-hcard__img img { transform: scale(1.06); }
.rvwt-arc-hcard__ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(0,0,0,0) 30%, rgba(4,58,33,.6) 100%);
}
.rvwt-arc-hcard__body {
  background: rgba(4,58,33,.92);
  padding: 8px 10px 10px;
  text-align: center;
}
.rvwt-arc-hcard__name {
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #fff;
  line-height: 1.3;
  margin: 0 0 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rvwt-arc-hcard__cnt {
  display: none;
}

/* ── Featured spotlight section ─────────────────────────────────────────── */
.rvwt-arc-feat-section {
  max-width: var(--container-max, 1200px);
  margin: 0 auto;
  padding: 40px 1.5rem 0;
}
.rvwt-arc-feat-hd {
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--color-accent, #5a8a3c);
  margin: 0 0 20px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.rvwt-arc-feat-hd::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 2px;
  background: var(--color-accent, #5a8a3c);
  border-radius: 2px;
  flex-shrink: 0;
}
.rvwt-arc-feat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 8px;
}

/* ── Featured cards ─────────────────────────────────────────────────────── */
.rvwt-arc-fcard {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  overflow: hidden;
  background: var(--color-white, #fff);
  box-shadow: 0 2px 16px rgba(0,0,0,.08);
  text-decoration: none;
  color: inherit;
  transition: transform .25s, box-shadow .25s;
}
.rvwt-arc-fcard:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 36px rgba(4,58,33,.15);
}
.rvwt-arc-fcard__img {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--color-tan, #e8e0d0);
}
.rvwt-arc-fcard__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .45s;
}
.rvwt-arc-fcard:hover .rvwt-arc-fcard__img img { transform: scale(1.05); }
.rvwt-arc-fcard__placeholder {
  width: 100%;
  height: 100%;
  background: var(--color-tan, #e8e0d0);
}
.rvwt-arc-fcard__ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(0,0,0,0) 55%, rgba(4,58,33,.32) 100%);
}
.rvwt-arc-fcard__body {
  padding: 18px 20px 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.rvwt-arc-fcard__name {
  font-family: var(--font-heading, serif);
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--color-text-strong, #1a1a1a);
  line-height: 1.3;
  margin: 0 0 8px;
}
.rvwt-arc-fcard__desc {
  font-family: var(--font-body, sans-serif);
  font-size: 13px;
  line-height: 1.55;
  color: var(--color-text, #444);
  margin: 0 0 14px;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rvwt-arc-fcard__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px solid #f0ece4;
  margin-top: auto;
}
.rvwt-arc-feat-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-heading, serif);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #c8960c;
  background: rgba(200,150,12,.1);
  padding: 3px 10px;
  border-radius: 20px;
  border: 1px solid rgba(200,150,12,.25);
}
.rvwt-arc-fcard__arr {
  color: var(--color-accent, #5a8a3c);
  display: flex;
  align-items: center;
  transition: transform .2s;
}
.rvwt-arc-fcard:hover .rvwt-arc-fcard__arr { transform: translateX(4px); }

/* ── Footer compact newsletter form ─────────────────────────────────────────────────────── */

.nl-form__btn-loading { display: none; }
.nl-form--loading .nl-form__btn-text    { display: none; }
.nl-form--loading .nl-form__btn-loading { display: inline; }

/* Response message */
.nl-form__message {
  margin: 0.75rem 0 0;
  font-family: var(--font-body);
  font-size: 0.9rem;
  min-height: 1.2em;
  color: var(--color-white);
}

.nl-form__message--error {
  color: #ed9e9e;
}

.footer-nl {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255,255,255,0.15);
}

.footer-nl__title {
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 0.75rem;
}

.footer-nl__form { display: block; }

.footer-nl__row {
  display: flex;
  gap: 0;
}

.footer-nl__input {
  flex: 1;
  padding: 0.55rem 0.75rem;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.25);
  border-right: none;
  border-radius: 3px 0 0 3px;
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 0.85rem;
  min-width: 0;
}

.footer-nl__input::placeholder {
  color: rgba(255,255,255,0.45);
}

.footer-nl__input:focus {
  outline: none;
  border-color: rgba(255,255,255,0.5);
  background: rgba(255,255,255,0.15);
}

.footer-nl__btn {
  padding: 0.55rem 0.9rem;
  background: var(--btn-bg);
  color: var(--btn-text);
  font-family: var(--font-heading);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border: 1px solid var(--color-accent);
  border-radius: 0 3px 3px 0;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s;
}

.footer-nl__btn:hover {
  background: var(--btn-bg-hover);
  border-color: var(--btn-bg-hover);
  color: var(--btn-text);
}

.footer-nl__btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.footer-nl__form .nl-form__message {
  display: inline-block;
  margin: 0.5rem 0 0;
  font-size: 0.78rem;
  color: #fff;
  min-height: 1em;
  padding: 0.3rem 0.85rem;
  letter-spacing: 0.2px;
}

.footer-nl__form .nl-form__message:empty {
  display: none;
}

.footer-nl__form .nl-form__message--error {
  color: #fff;
  font-weight: 600;
  font-size: 13px;
  background: rgba(180, 30, 30, 0.45);
  border-radius: 4px;
}

.footer-nl__form.nl-form--success .nl-form__message {
  color: var(--color-primary-soft);
  background: rgba(60,160,90,0.25);
}

.footer-nl__form.nl-form--success .footer-nl__row {
  display: none;
}

/* ── Responsive: archive L5 ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .rvwt-arc-header--l5 { --hero-bg-pos: center 60%; }
}
@media (max-width: 768px) {
  .rvwt-arc-header--l5 { min-height: 320px; --hero-bg-pos: center 55%; }
  .rvwt-arc-script-hdr { padding: 12px 0 24px; }
  .rvwt-arc-script-desc { font-size: 16px; }
  .rvwt-arc-hscroll-wrap { padding: 0 1rem; }
  .rvwt-arc-hcard { width: 120px; }
  .rvwt-arc-feat-section { padding: 28px 1rem 0; }
  .rvwt-arc-feat-grid { gap: 14px; }
  .rvwt-arc-fcard__body { padding: 14px 16px 12px; }
}
@media (max-width: 480px) {
  .rvwt-arc-header--l5 { min-height: 260px; --hero-bg-pos: center 50%; }
}
@media (max-width: 540px) {
  .rvwt-arc-feat-grid { grid-template-columns: 1fr; }
  .rvwt-arc-hscroll-lbl { display: none; }
  .rvwt-arc-script-wm { font-size: 56px; }
  .rvwt-arc-script-title { letter-spacing: 2px; }
  .rvwt-arc-script-badge { padding: 5px 14px; }
}
@media (max-width: 400px) {
  .rvwt-arc-hcard { width: 108px; }
  .rvwt-arc-fcard__name { font-size: 13px; }
  .rvwt-arc-script-badge { font-size: 11px; }
}

/* ===== Single Post — Entry Content Typography ===== */
.entry-content ul,
.entry-content ol {
  margin: 1.25em 0;
  padding-left: 1.75em;
  line-height: 1.25;
}
.entry-content ul { list-style: disc; }
.entry-content ul ul { list-style: circle; margin: 0.4em 0; }
.entry-content ul ul ul { list-style: square; }
.entry-content ol { list-style: decimal; }
.entry-content ol ol { list-style: lower-alpha; margin: 0.4em 0; }
.entry-content li {
  margin-bottom: 0.5em;
  padding-left: 0.25em;
}
.entry-content li:last-child { margin-bottom: 0; }
.entry-content li > ul,
.entry-content li > ol {
  margin-top: 0.4em;
  margin-bottom: 0.4em;
}
.entry-content a {
  color: var(--color-wine);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.entry-content a:hover {
  opacity: 0.75;
}

/* =========================================================================
   Newsletter — shared utilities (loading / success / message states)
   ========================================================================= */

/* Loading state — hide/show spans via JS class on form */
.nl-form__btn-loading { display: none; }
.nl-form--loading .nl-form__btn-text    { display: none; }
.nl-form--loading .nl-form__btn-loading { display: inline; }

/* Response message */
.nl-form__message {
  margin: 0.75rem 0 0;
  font-family: var(--font-body);
  font-size: 0.9rem;
  min-height: 1.2em;
  color: var(--color-white);
}

.nl-form__message--error {
  color: #ffcdd2;
}

/* =========================================================================
   Footer compact newsletter form
   ========================================================================= */

.footer-nl {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255,255,255,0.15);
}

.footer-nl__title {
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 0.75rem;
}

.footer-nl__form { display: block; }

.footer-nl__row {
  display: flex;
  gap: 0;
}

.footer-nl__input {
  flex: 1;
  padding: 0.55rem 0.75rem;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.25);
  border-right: none;
  border-radius: 3px 0 0 3px;
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 0.85rem;
  min-width: 0;
}

.footer-nl__input::placeholder {
  color: rgba(255,255,255,0.45);
}

.footer-nl__input:focus {
  outline: none;
  border-color: rgba(255,255,255,0.5);
  background: rgba(255,255,255,0.15);
}

.footer-nl__btn {
  padding: 0.55rem 0.9rem;
  background: var(--btn-bg);
  color: var(--btn-text);
  font-family: var(--font-heading);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border: 1px solid var(--color-accent);
  border-radius: 0 3px 3px 0;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s;
}

.footer-nl__btn:hover {
  background: var(--btn-bg-hover);
  border-color: var(--btn-bg-hover);
  color: var(--btn-text);
}

.footer-nl__btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.footer-nl__form .nl-form__message {
  display: inline-block;
  margin: 0.5rem 0 0;
  font-size: 0.78rem;
  color: #fff;
  min-height: 1em;
  padding: 0.3rem 0.85rem;
  letter-spacing: 0.2px;
}

.footer-nl__form .nl-form__message:empty {
  display: none;
}

.footer-nl__form .nl-form__message--error {
  color: #fff;
  font-weight: 600;
  font-size: 13px;
  background: rgba(180, 30, 30, 0.45);
  border-radius: 4px;
}

.footer-nl__form.nl-form--success .nl-form__message {
  color: var(--color-primary-soft);
  background: rgba(60,160,90,0.25);
}

.footer-nl__form.nl-form--success .footer-nl__row {
  display: none;
}



/* ── Events Manager — override default blue link colors ─────────────────── */
.em-event h3 a,
.em-event .entry-title a,
.em-event-name a,
.em-events-event h3 a,
#em-wrapper h3 a,
#em-wrapper .em-event-name a {
  color: var(--color-accent) !important;
}

/* =========================================================================
   SINGLE LISTING DETAIL — Multi-Layout CSS
   Covers layouts 1, 4, 5, 6 + shared gallery block + lightbox + admin bar
   ========================================================================= */

/* ── Admin layout-preview switcher bar ──────────────────────────────────── */
.rvwt-layout-switcher {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 99999;
  background: rgba(4,58,33,.96);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  border-radius: 50px;
  box-shadow: 0 4px 24px rgba(0,0,0,.35);
  flex-wrap: nowrap;
  white-space: nowrap;
}
.rvwt-layout-switcher__label {
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255,255,255,.45);
  margin-right: 4px;
  white-space: nowrap;
}
.rvwt-layout-switcher__btn {
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  padding: 5px 14px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 4px;
  color: rgba(255,255,255,.7);
  text-decoration: none;
  transition: all .15s ease;
  white-space: nowrap;
}
.rvwt-layout-switcher__btn:hover { background: rgba(255,255,255,.15); color: #fff; border-color: rgba(255,255,255,.45); }
.rvwt-layout-switcher__btn.is-active { background: var(--color-accent); color: #fff; border-color: var(--color-accent); }
.rvwt-layout-switcher__settings {
  appearance: none;
  -webkit-appearance: none;
  margin-left: auto;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: rgba(255,255,255,.55);
  text-decoration: none;
  background: transparent;
  padding: 5px 14px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 4px;
  white-space: nowrap;
  transition: all .15s ease;
}
.rvwt-layout-switcher__settings:hover { color: #fff; border-color: rgba(255,255,255,.4); }

/* ── Lightbox — fix hidden-attribute visibility + add nav/counter ───────── */
.rvwt-lb[hidden]        { display: none !important; }
.rvwt-lb:not([hidden]) { opacity: 1; }
.rvwt-lb__stage {
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: default;
}
.rvwt-lb__stage .rvwt-lb__img {
  max-width: 88vw;
  max-height: calc(90vh - 60px);
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 24px 80px rgba(0,0,0,.7);
  display: block;
}
.rvwt-lb__prev,
.rvwt-lb__next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  color: #fff;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .15s ease;
  z-index: 3;
  line-height: 1;
}
.rvwt-lb__prev { left: 20px; }
.rvwt-lb__next { right: 20px; }
.rvwt-lb__prev:hover,
.rvwt-lb__next:hover { background: rgba(255,255,255,.24); }
.rvwt-lb__counter {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.65);
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .5px;
  white-space: nowrap;
}
@media (max-width: 600px) {
  .rvwt-lb__prev { left: 10px; width: 38px; height: 38px; font-size: 16px; }
  .rvwt-lb__next { right: 10px; width: 38px; height: 38px; font-size: 16px; }
}

/* ── Hero featured-image thumbnail (Layout 1 & 4) ───────────────────────── */
.rvwt-ldg-hero__thumb {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,.65);
  overflow: hidden;
  margin-bottom: 14px;
  box-shadow: 0 4px 20px rgba(0,0,0,.4);
  flex-shrink: 0;
}
.rvwt-ldg-hero__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  cursor: zoom-in;
}

/* ── Frontend photo-gallery block (all layouts) ─────────────────────────── */
.rvwt-ldg-gallery { margin-top: 32px; }
.rvwt-ldg-gallery__title {
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--color-deep-green);
  margin: 0 0 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #ede7da;
  display: flex;
  align-items: center;
  gap: 8px;
}
.rvwt-ldg-gallery__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.rvwt-ldg-gallery__item {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 6px;
  display: block;
  cursor: zoom-in;
}
.rvwt-ldg-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
  display: block;
}
.rvwt-ldg-gallery__item:hover img { transform: scale(1.06); }
@media (max-width: 768px) { .rvwt-ldg-gallery__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px) { .rvwt-ldg-gallery__grid { grid-template-columns: repeat(2, 1fr); } }

/* =========================================================================
   LAYOUT 4 — Dark Luxury overrides
   Applied when <body> has class rvwt-dl-4
   ========================================================================= */
body.rvwt-dl-4 {
  background: #0e0e0e;
  color: #c8c0b0;
}
body.rvwt-dl-4 .rvwt-ldg-body          { background: #111111; }
body.rvwt-dl-4 .rvwt-ldg-body__inner   { border-color: #2a2a2a; }
body.rvwt-dl-4 .rvwt-ldg-actions       { background: #1a1a1a; border-color: #2e2e2e; }
body.rvwt-dl-4 .rvwt-ldg-btn--primary  {
  background: linear-gradient(135deg, #c8960c 0%, #e8b820 100%);
  color: #0e0e0e;
  border-color: transparent;
}
body.rvwt-dl-4 .rvwt-ldg-btn--primary:hover {
  background: linear-gradient(135deg, #e8b820 0%, #c8960c 100%);
  transform: translateY(-1px);
}
body.rvwt-dl-4 .rvwt-ldg-btn--outline  { border-color: rgba(200,150,12,.5); color: #c8960c; }
body.rvwt-dl-4 .rvwt-ldg-btn--outline:hover { background: rgba(200,150,12,.1); border-color: #c8960c; }
body.rvwt-dl-4 .rvwt-ldg-fav-wrap .rvwt-fav { border-color: rgba(200,150,12,.4); color: #c8960c; }
body.rvwt-dl-4 .rvwt-ldg-fav-wrap .rvwt-fav:hover,
body.rvwt-dl-4 .rvwt-ldg-fav-wrap .rvwt-fav.is-favorite { background: #c8960c; color: #0e0e0e; border-color: #c8960c; }
body.rvwt-dl-4 .rvwt-ldg-card          { background: #1a1a1a; border-color: #2e2e2e; }
body.rvwt-dl-4 .rvwt-ldg-card__title   { background: linear-gradient(135deg, #1a1100 0%, #2a1e00 100%); color: #c8960c; }
body.rvwt-dl-4 .rvwt-ldg-card__row     { border-color: #242424; }
body.rvwt-dl-4 .rvwt-ldg-card__icon    { color: #c8960c; background: rgba(200,150,12,.1); }
body.rvwt-dl-4 .rvwt-ldg-card__label   { color: #666; }
body.rvwt-dl-4 .rvwt-ldg-card__value   { color: #c0b8a8; }
body.rvwt-dl-4 .rvwt-ldg-card__value a { color: #c8960c; }
body.rvwt-dl-4 .rvwt-ldg-card__ctas    { background: #141414; border-top-color: #2e2e2e; }
body.rvwt-dl-4 .rvwt-ldg-card__cta--primary {
  background: linear-gradient(135deg, #c8960c, #e8b820);
  color: #0e0e0e;
  border: none;
}
body.rvwt-dl-4 .rvwt-ldg-card__cta--ghost { border-color: rgba(200,150,12,.4); color: #c8960c; }
body.rvwt-dl-4 .rvwt-ldg-card__cta--ghost:hover { background: rgba(200,150,12,.1); }
body.rvwt-dl-4 .rvwt-sl-about          { background: rgba(200,150,12,.06); border-left-color: #c8960c; }
body.rvwt-dl-4 .rvwt-sl-about__eyebrow { color: #c8960c; }
body.rvwt-dl-4 .rvwt-sl-about__text    { color: #b8b0a0; }
body.rvwt-dl-4 .rvwt-ldg-tag           { background: rgba(200,150,12,.12); color: #c8960c; border: 1px solid rgba(200,150,12,.3); }
body.rvwt-dl-4 .rvwt-sl-feature-section { background: #1a1a1a; border-color: #2e2e2e; }
body.rvwt-dl-4 .rvwt-sl-feature-section__title { color: #c8960c; }
body.rvwt-dl-4 .rvwt-sl-feature-section__title svg { color: #c8960c; }
body.rvwt-dl-4 .rvwt-sl-feature-card   { background: #242424; border-color: #333; }
body.rvwt-dl-4 .rvwt-sl-feature-card:hover { border-color: rgba(200,150,12,.35); }
body.rvwt-dl-4 .rvwt-sl-feature-card__label { color: #666; }
body.rvwt-dl-4 .rvwt-sl-feature-card__value { color: #c0b8a8; }
body.rvwt-dl-4 .rvwt-sl-sig-wines      { background: rgba(200,150,12,.06); border-color: rgba(200,150,12,.2); }
body.rvwt-dl-4 .rvwt-sl-sig-wines__header { color: #c8960c; }
body.rvwt-dl-4 .rvwt-sl-sig-wines__list   { color: #b8b0a0; }
body.rvwt-dl-4 .rvwt-sl-hero-meta__pill { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.12); }
body.rvwt-dl-4 a.rvwt-sl-hero-meta__pill:hover { background: rgba(200,150,12,.25); border-color: rgba(200,150,12,.5); }
body.rvwt-dl-4 .rvwt-ldg-hero {
  background-image: linear-gradient(rgba(0,0,0,.38) 0%, transparent 33%), var(--hero-img, none);
}
body.rvwt-dl-4 .rvwt-ldg-hero__thumb { border-color: rgba(200,150,12,.6); box-shadow: 0 4px 20px rgba(0,0,0,.6); }
body.rvwt-dl-4 .rvwt-ldg-gallery__title { color: #c8960c; }
body.rvwt-dl-4 .rvwt-ldg-back a        { color: #c8960c; }
body.rvwt-dl-4 .rvwt-ldg-back a:hover  { color: #e8b820; }
body.rvwt-dl-4 .rvwt-sl-ec-tile        { background: #1a1a1a; border-color: #2e2e2e; color: #c0b8a8; }
body.rvwt-dl-4 .rvwt-sl-ec-tile:hover  { border-color: #c8960c; background: rgba(200,150,12,.08); }
body.rvwt-dl-4 .rvwt-sl-placeholder    { background: #1a1a1a; border-color: #2e2e2e; }
body.rvwt-dl-4 .rvwt-sl-placeholder__heading { color: #c8960c; }
body.rvwt-dl-4 .site-footer            { background: #050505 !important; }

/* ── Layout 4 — Upcoming Events strip dark-theme override ── */
body.rvwt-dl-4 .rvwt-ldg-back + div,  /* events wrapper sits just before back link */
body.rvwt-dl-4 .rvwt-ldg-back ~ div { /* fallback sibling selector */
  /* Inline-styled events block: force dark palette via filter cascade */
}
body.rvwt-dl-4 [style*="background:#f8faf6"],
body.rvwt-dl-4 [style*="background: #f8faf6"] {
  background: #1a1a1a !important;
  border-color: #2e2e2e !important;
}
body.rvwt-dl-4 [style*="background:#8A9A7B"][style*="border-radius:6px"],
body.rvwt-dl-4 [style*="background:#043a21"][style*="border-radius:6px"] {
  background: #c8960c !important;
  color: #0e0e0e !important;
}
body.rvwt-dl-4 [style*="color:#8A9A7B"],
body.rvwt-dl-4 [style*="color:#043a21"] {
  color: #c8960c !important;
}
body.rvwt-dl-4 [style*="border-bottom:1px solid #ddecd3"] {
  border-color: #2a2a2a !important;
}
body.rvwt-dl-4 [style*="color:#6b5c5c"] {
  color: #888 !important;
}
body.rvwt-dl-4 [style*="color:#7c3aed"] {
  color: #c8960c !important;
}

/* =========================================================================
   LAYOUT 5 — Minimal White
   No hero · clean header · featured image inline · 2-col body
   ========================================================================= */
.rvwt-l5-header {
  background: var(--color-white);
  border-bottom: 1px solid #e8e2d6;
  padding: calc(var(--header-height, 151px) + 28px) 0 24px;
}
.rvwt-l5-header__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}
.rvwt-l5-breadcrumb {
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #999;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.rvwt-l5-breadcrumb a { color: var(--color-accent); text-decoration: none; }
.rvwt-l5-breadcrumb a:hover { color: var(--color-deep-green); }
.rvwt-l5-breadcrumb span { opacity: .4; }
.rvwt-l5-title {
  font-family: var(--font-heading);
  font-size: 42px;
  font-weight: 900;
  color: var(--color-text-strong);
  line-height: 1.06;
  letter-spacing: -.5px;
  margin-bottom: 10px;
}
.rvwt-l5-location {
  color: var(--color-accent);
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 20px;
}
.rvwt-l5-location svg { flex-shrink: 0; }
.rvwt-l5-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rvwt-l5-body { background: var(--color-bg); }
.rvwt-l5-featured-img {
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 28px;
  box-shadow: 0 4px 24px rgba(0,0,0,.1);
}
.rvwt-l5-featured-img img {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  display: block;
  cursor: zoom-in;
}
@media (max-width: 900px) {
  .rvwt-l5-title { font-size: 30px; }
  .rvwt-l5-header { padding: calc(var(--header-height, 151px) + 20px) 0 18px; }
}
@media (max-width: 600px) {
  .rvwt-l5-title { font-size: 24px; }
  .rvwt-l5-actions { gap: 8px; }
  .rvwt-l5-featured-img img { max-height: 240px; }
}

/* =========================================================================
   LAYOUT 6 — Gallery Mosaic
   Airbnb-style 5-cell photo grid · info bar · 2-col body
   ========================================================================= */
.rvwt-l6-mosaic { background: #111; position: relative; overflow: hidden; }
/* Single image: use deep green behind the hero, not black */
.rvwt-l6-mosaic:has(.rvwt-l6-mosaic__grid[data-count="1"]) { background: var(--color-deep-green); }
.rvwt-l6-mosaic__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 240px 240px;
  gap: 4px;
}
.rvwt-l6-mosaic__cell { overflow: hidden; cursor: zoom-in; }
.rvwt-l6-mosaic__cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.rvwt-l6-mosaic__cell:hover img { transform: scale(1.04); }
.rvwt-l6-mosaic__cell:first-child { grid-row: 1 / 3; }
/* Single image: full-bleed hero — matches category page header style */
.rvwt-l6-mosaic__grid[data-count="1"] {
  grid-template-columns: 1fr;
  grid-template-rows: 520px;
}
.rvwt-l6-mosaic__grid[data-count="1"] .rvwt-l6-mosaic__cell:first-child {
  grid-row: auto;
  position: relative;
}
/* Gradient overlay to match the category header hero look */
.rvwt-l6-mosaic__grid[data-count="1"] .rvwt-l6-mosaic__cell::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    rgba(4,58,33,.40) 0%,
    rgba(4,58,33,.10) 40%,
    rgba(4,58,33,.55) 100%
  );
  pointer-events: none;
}
/* Image fills the hero cell like background-size: cover */
.rvwt-l6-mosaic__grid[data-count="1"] .rvwt-l6-mosaic__cell img {
  object-position: center 40%;
}
/* Two images: side-by-side, full height */
.rvwt-l6-mosaic__grid[data-count="2"] {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 520px;
}
.rvwt-l6-mosaic__grid[data-count="2"] .rvwt-l6-mosaic__cell:first-child { grid-row: auto; }
/* Three images: large left + 2 stacked right (2-col, no empty slots) */
.rvwt-l6-mosaic__grid[data-count="3"] {
  grid-template-columns: 2fr 1fr;
}
/* Four images: large left + 3 right — make 4th cell span both right columns on row 2 */
.rvwt-l6-mosaic__grid[data-count="4"] .rvwt-l6-mosaic__cell:nth-child(4) {
  grid-column: 2 / 4;
}
@media (max-width: 600px) {
  .rvwt-l6-mosaic__grid[data-count="1"],
  .rvwt-l6-mosaic__grid[data-count="2"] { grid-template-rows: 300px; }
}
.rvwt-l6-see-all {
  position: absolute;
  bottom: 16px;
  right: 20px;
  background: var(--color-white);
  color: var(--color-text-strong);
  padding: 8px 16px;
  border-radius: 6px;
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 2px 12px rgba(0,0,0,.25);
  text-decoration: none;
  transition: box-shadow .2s ease, transform .15s ease;
}
.rvwt-l6-see-all:hover { box-shadow: 0 4px 20px rgba(0,0,0,.35); transform: translateY(-1px); }
.rvwt-l6-no-photos { height: 300px; background: var(--color-deep-green); }
.rvwt-l6-info-bar {
  background: var(--color-white);
  border-bottom: 1px solid #e8e2d6;
  padding: 20px 0;
}
.rvwt-l6-info-bar__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-pad);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.rvwt-l6-info-bar__left { min-width: 0; }
.rvwt-l6-title {
  font-family: var(--font-heading);
  font-size: 28px;
  font-weight: 900;
  color: var(--color-text-strong);
  line-height: 1.15;
  margin: 4px 0;
}
.rvwt-l6-location {
  color: var(--color-accent);
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.rvwt-l6-location svg { flex-shrink: 0; }
.rvwt-l6-info-bar__actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; flex-wrap: wrap; }
@media (max-width: 900px) {
  .rvwt-l6-mosaic__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 200px 200px;
  }
  .rvwt-l6-mosaic__cell:nth-child(n+4) { display: none; }
}
@media (max-width: 600px) {
  .rvwt-l6-mosaic__grid {
    grid-template-columns: 1fr;
    grid-template-rows: 260px;
  }
  .rvwt-l6-mosaic__cell:first-child { grid-row: auto; }
  .rvwt-l6-mosaic__cell:nth-child(n+2) { display: none; }
  .rvwt-l6-info-bar__inner { flex-direction: column; align-items: flex-start; }
  .rvwt-l6-info-bar__actions { width: 100%; }
  .rvwt-l6-title { font-size: 22px; }
}

/* ==========================================================================
   Sticky Header
   ========================================================================== */
/* Wine/Berry top strip — inner pages only */
.site-header{position:fixed!important;background:transparent;border-top:36px solid var(--color-wine);transition:background-color .25s ease,box-shadow .25s ease,backdrop-filter .25s ease;}
body.home .site-header,
body.front-page .site-header{border-top:none;}
.site-header.is-scrolled{background:var(--color-primary);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 1px 0 rgba(0,0,0,.12),0 6px 18px rgba(0,0,0,.08);}
.site-header.is-scrolled .main-nav__link,
.site-header.is-scrolled .main-nav__caret{color:var(--color-white);}
.site-header.is-scrolled .nav-toggle__bar,
.site-header.is-scrolled .nav-toggle__bar::before,
.site-header.is-scrolled .nav-toggle__bar::after{background-color:var(--color-white);}
.site-header.is-scrolled .rvwt-cart-link{color:var(--color-white);}
/* Inner pages: solid sage green header */
body:not(.home):not(.front-page) .site-header,
body:not(.home):not(.front-page) .site-header.is-scrolled{
	background:var(--color-primary);
	backdrop-filter:none;
	-webkit-backdrop-filter:none;
	box-shadow:0 1px 0 rgba(0,0,0,.12),0 6px 18px rgba(0,0,0,.08);
}
body:not(.home):not(.front-page) .site-header .main-nav__link,
body:not(.home):not(.front-page) .site-header .main-nav__caret,
body:not(.home):not(.front-page) .site-header.is-scrolled .main-nav__link,
body:not(.home):not(.front-page) .site-header.is-scrolled .main-nav__caret{color:var(--color-white);}
body:not(.home):not(.front-page) .site-header .main-nav__link:hover,
body:not(.home):not(.front-page) .site-header .main-nav__link:focus,
body:not(.home):not(.front-page) .site-header .main-nav__item.is-open > .main-nav__link,
body:not(.home):not(.front-page) .site-header.is-scrolled .main-nav__link:hover,
body:not(.home):not(.front-page) .site-header.is-scrolled .main-nav__link:focus,
body:not(.home):not(.front-page) .site-header.is-scrolled .main-nav__item.is-open > .main-nav__link{color:var(--color-accent-soft);}
body:not(.home):not(.front-page) .site-header .nav-toggle__bar,
body:not(.home):not(.front-page) .site-header .nav-toggle__bar::before,
body:not(.home):not(.front-page) .site-header .nav-toggle__bar::after,
body:not(.home):not(.front-page) .site-header.is-scrolled .nav-toggle__bar,
body:not(.home):not(.front-page) .site-header.is-scrolled .nav-toggle__bar::before,
body:not(.home):not(.front-page) .site-header.is-scrolled .nav-toggle__bar::after{background-color:var(--color-white);}
body:not(.home):not(.front-page) .site-header .rvwt-cart-link,
body:not(.home):not(.front-page) .site-header.is-scrolled .rvwt-cart-link{color:var(--color-white);}
.submenu__item:hover > .submenu,
.submenu__item.is-open > .submenu{opacity:1;visibility:visible;pointer-events:auto;}
body.admin-bar .site-header{top:32px!important;}
@media screen and (max-width:782px){body.admin-bar .site-header{top:46px!important;}}
.site-header__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:14px;}
/* Mobile: remove wine/berry strip — placed here to override the border-top rule above */
@media (max-width: 768px) {
  .site-header { border-top: none !important; }
}
.submenu__item.has-children > .submenu__link{position:relative;text-align:center;padding-right:32px;padding-left:32px;}
.submenu__caret{position:absolute;top:50%;right:12px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;opacity:.7;transition:transform .2s ease,opacity .2s ease;flex-shrink:0;}
.submenu__caret svg{width:100%;height:100%;display:block;}
.submenu__item.has-children:hover > .submenu__link .submenu__caret,
.submenu__item.has-children.is-open > .submenu__link .submenu__caret{opacity:1;transform:translateY(-50%) translateX(2px);}
.main-nav__caret{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;margin-left:6px;vertical-align:middle;transform:none;}
.main-nav__caret svg{width:100%;height:100%;display:block;}
.main-nav__item.is-open > .main-nav__link .main-nav__caret svg,
.main-nav__item:hover > .main-nav__link .main-nav__caret svg{transform:rotate(180deg);transition:transform .2s ease;}
.main-nav__caret svg{transition:transform .2s ease;}

/* ==========================================================================
   Favorites / Heart Button
   ========================================================================== */
.rvwt-fav{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;border:1.5px solid rgba(255,255,255,.32);background:rgba(0,0,0,.24);color:rgba(255,255,255,.78);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;z-index:2;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .15s ease;backdrop-filter:blur(8px) saturate(150%);-webkit-backdrop-filter:blur(8px) saturate(150%);}
.rvwt-fav svg{width:16px;height:16px;display:block;}
.rvwt-fav svg path{fill:none;transition:fill .18s ease;}
.rvwt-fav.is-favorite svg path{fill:currentColor;}
.rvwt-fav:hover{transform:scale(1.12);background:rgba(0,0,0,.42);border-color:rgba(255,255,255,.55);color:#fff;}
.rvwt-fav.is-favorite{background:color-mix(in srgb,var(--color-wine) 90%,transparent);border-color:rgba(255,255,255,.18);color:#fff;}
.rvwt-fav.is-favorite:hover{background:color-mix(in srgb,var(--color-wine) 98%,transparent);}
.rvwt-fav:focus-visible{outline:2px solid var(--color-wine);outline-offset:2px;}
.rvwt-fav--inline{position:static;width:26px;height:26px;background:transparent;border:1.5px solid rgba(0,0,0,.18);color:rgba(0,0,0,.35);backdrop-filter:none;-webkit-backdrop-filter:none;margin-left:8px;vertical-align:middle;}
.rvwt-fav--inline:hover{transform:scale(1.1);background:transparent;border-color:color-mix(in srgb,var(--color-wine) 50%,transparent);color:color-mix(in srgb,var(--color-wine) 80%,transparent);}
.rvwt-fav--inline.is-favorite{background:transparent;border-color:color-mix(in srgb,var(--color-wine) 60%,transparent);color:color-mix(in srgb,var(--color-wine) 90%,transparent);}
.rvwt-fav--inline svg{width:13px;height:13px;}
#rvwt-fav-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--color-hunter);color:#fff;font-family:var(--font-body);font-size:14px;letter-spacing:.3px;padding:10px 22px;border-radius:24px;box-shadow:0 4px 18px rgba(0,0,0,.22);opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;z-index:9999;white-space:nowrap;}
#rvwt-fav-toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0);}
/* Heart button: pill shape with "Itinerary" label */
.rvwt-fav{width:auto!important;height:auto!important;border-radius:20px!important;padding:5px 11px 5px 8px!important;gap:5px;white-space:nowrap;}
.rvwt-fav svg{flex-shrink:0;}
.rvwt-fav__label{font-family:var(--font-heading);font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;line-height:1;}
.rvwt-fav--inline{width:26px!important;height:26px!important;border-radius:50%!important;padding:0!important;gap:0;}
.rvwt-fav--inline .rvwt-fav__label{display:none;}
.rvwt-ldg-fav-wrap .rvwt-fav{border-radius:3px!important;padding:10px 18px!important;gap:7px;}
.rvwt-ldg-fav-wrap .rvwt-fav__label{font-size:12px;letter-spacing:.8px;}
.rvwt-favorites-header-inner{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:32px 0 28px;}
.rvwt-favorites-meta{flex:1 1 0;min-width:0;}
.rvwt-favorites-intro{font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--color-text);}
.rvwt-favorites-signin{font-family:var(--font-body);font-size:13px;color:var(--color-text);margin:4px 0 0;}
.rvwt-favorites-signin a{color:var(--color-wine);}
.rvwt-favorites-back-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;padding:8px 18px;border:1.5px solid currentColor;color:var(--color-wine);font-family:var(--font-heading);font-size:12px;text-transform:uppercase;letter-spacing:1.2px;text-decoration:none;border-radius:2px;white-space:nowrap;transition:background .15s,color .15s;}
.rvwt-favorites-back-btn:hover{background:var(--color-wine);color:#fff;}
.rvwt-favorites-loading{text-align:center;padding:32px;font-family:var(--font-body);color:var(--color-text);}
.rvwt-favorites-empty{max-width:520px;margin:48px auto;padding:48px 24px;text-align:center;font-family:var(--font-body);color:var(--color-text);}
.rvwt-favorites-empty__icon{color:#d4a3a3;margin-bottom:16px;}
.rvwt-favorites-empty p{font-size:16px;line-height:1.6;margin:0 0 24px;}
.rvwt-favorites-empty__cta{display:inline-block;padding:12px 28px;background:var(--color-wine);color:#fff;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1.5px;font-size:13px;text-decoration:none;border-radius:2px;transition:opacity .15s ease;}
.rvwt-favorites-empty__cta:hover{opacity:.85;}
@media (max-width: 640px) {
	.rvwt-favorites-header-inner{flex-direction:column;gap:12px;}
}
/* ── Layout D: Travel Brochure ── */
.rvwt-itinerary{max-width:860px;margin:0 auto;padding:0 24px 80px;font-family:var(--font-body);}
.rvwt-day{margin-bottom:40px;}
.rvwt-day__header{border-left:4px solid var(--color-wine);padding-left:18px;margin-bottom:18px;}
.rvwt-day__eyebrow{font-family:var(--font-heading);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-wine);margin:0 0 4px;}
.rvwt-day__title{font-family:var(--font-heading);font-size:26px;font-weight:700;color:var(--color-hunter);margin:0;line-height:1.2;}
.rvwt-day__photos{display:flex;gap:6px;height:200px;margin-bottom:20px;border-radius:10px;overflow:hidden;}
.rvwt-day__photo{flex:1;overflow:hidden;background:#f0ece6;}
.rvwt-day__photo--hero{flex:2;}
.rvwt-day__photo img{width:100%;height:100%;object-fit:cover;display:block;}
.rvwt-slot{margin-bottom:24px;}
.rvwt-slot:last-child{margin-bottom:0;}
.rvwt-slot__title{font-family:var(--font-heading);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;color:var(--color-wine);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #ede6dc;}
.rvwt-stop{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid #ede6dc;}
.rvwt-stop:last-child{border-bottom:none;}
.rvwt-stop__thumb{width:140px;height:110px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#f0ece6;display:block;text-decoration:none;}
.rvwt-stop__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.rvwt-stop__thumb--empty{background:linear-gradient(135deg,#e8e0d4 0%,#d4c9b8 100%);}
.rvwt-stop__body{flex:1;min-width:0;}
.rvwt-stop__row1{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap;}
.rvwt-stop__name{font-family:var(--font-heading);font-size:16px;font-weight:700;color:var(--color-hunter);margin:0;}
.rvwt-stop__name a{color:inherit;text-decoration:none;}
.rvwt-stop__name a:hover{color:var(--color-wine);}
.rvwt-stop__badge{display:inline-block;font-family:var(--font-heading);font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:2px 8px;border-radius:10px;background:#e8e0d4;color:#777;white-space:nowrap;}
.rvwt-stop__badge--wineries{background:#f0e8ea;color:var(--color-wine);}
.rvwt-stop__badge--dining{background:#e8f0e8;color:#2a5a2a;}
.rvwt-stop__badge--lodging{background:#e8ecf4;color:#2a3a6a;}
.rvwt-stop__badge--activities{background:#f4ece4;color:#6a3a1a;}
.rvwt-stop__meta{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;margin-bottom:8px;align-items:start;}
.rvwt-stop__hours,.rvwt-stop__phone{display:flex;align-items:flex-start;gap:4px;font-size:12px;line-height:1.45;}
.rvwt-stop__hours{color:#888;line-height:1.6;}
.rvwt-stop__hours svg,.rvwt-stop__phone svg{flex-shrink:0;margin-top:2px;opacity:.45;}
.rvwt-stop__phone{color:#4a6a8a;font-weight:600;}
.rvwt-stop__phone a{color:inherit;text-decoration:none;}
.rvwt-stop__phone a:hover{color:var(--color-wine);}
.rvwt-stop__actions{margin-top:6px;}
.rvwt-stop__actions .rvwt-fav--inline{position:static!important;width:auto!important;height:26px!important;border-radius:13px!important;padding:0 10px 0 7px!important;gap:4px!important;background:transparent!important;border:1.5px solid rgba(0,0,0,.14)!important;color:#bbb!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;display:inline-flex;align-items:center;}
.rvwt-stop__actions .rvwt-fav--inline::after{content:'Remove';font-family:var(--font-heading);font-size:9px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:inherit;}
.rvwt-stop__actions .rvwt-fav--inline.is-favorite{background:transparent!important;border-color:rgba(0,0,0,.14)!important;color:#bbb!important;}
.rvwt-stop__actions .rvwt-fav--inline.is-favorite svg path{fill:none!important;}
.rvwt-stop__actions .rvwt-fav--inline:hover{background:rgba(115,28,70,.07)!important;border-color:var(--color-wine)!important;color:var(--color-wine)!important;transform:none!important;}
.rvwt-stop__actions .rvwt-fav--inline svg{width:11px!important;height:11px!important;}
.rvwt-day--extras .rvwt-day__header{border-left-color:#bbb;}
.rvwt-day--extras .rvwt-day__eyebrow{color:#999;}
.rvwt-day--extras .rvwt-day__title{font-size:20px;color:#666;}
@media (max-width:640px){
	.rvwt-itinerary{padding:0 16px 60px;}
	.rvwt-day__photos{height:130px;}
	.rvwt-day__title{font-size:20px;}
	.rvwt-stop__thumb{width:90px;height:72px;border-radius:6px;}
	.rvwt-stop__meta{grid-template-columns:1fr;}
	.rvwt-stop__name{font-size:14px;}
}
.rvwt-smart-itinerary{max-width:780px;margin:0 auto;padding:0 24px 80px;font-family:var(--font-body);}
.rvwt-smart-day{background:#fff;border:1px solid #e8e2d9;border-radius:14px;padding:30px 34px;margin-bottom:28px;box-shadow:0 2px 14px rgba(0,0,0,.06);}
.rvwt-smart-day__title{font-family:var(--font-heading);font-size:21px;color:var(--color-hunter);margin:0 0 18px;padding-bottom:14px;border-bottom:2px solid #e8e2d9;letter-spacing:.2px;}
.rvwt-smart-day__photos{display:flex;gap:10px;margin-bottom:22px;}
.rvwt-smart-day__photo{flex:1;aspect-ratio:16/9;overflow:hidden;border-radius:8px;background:#f0ece6;}
.rvwt-smart-day__photo img{width:100%;height:100%;object-fit:cover;display:block;}
.rvwt-smart-timeline{display:flex;flex-direction:column;gap:0;}
.rvwt-smart-travel{display:flex;align-items:center;gap:8px;padding:4px 0;margin:2px 0;}
.rvwt-smart-travel__line{flex:1;height:1px;background:repeating-linear-gradient(90deg,#ccc 0,#ccc 4px,transparent 4px,transparent 8px);}
.rvwt-smart-travel__label{font-size:11px;color:#aaa;white-space:nowrap;letter-spacing:.3px;}
.rvwt-smart-stop{display:flex;gap:16px;align-items:flex-start;padding:14px 16px;border-radius:10px;transition:background .15s;}
.rvwt-smart-stop:hover{background:#faf8f5;}
.rvwt-smart-stop__time{font-family:var(--font-heading);font-size:14px;font-weight:700;color:var(--color-hunter);min-width:72px;padding-top:2px;white-space:nowrap;}
.rvwt-smart-stop__body{flex:1;min-width:0;}
.rvwt-smart-stop__header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:4px;}
.rvwt-smart-stop__title{font-size:15px;font-weight:600;color:var(--color-hunter);text-decoration:none;}
.rvwt-smart-stop__title:hover{text-decoration:underline;color:var(--color-wine);}
.rvwt-smart-stop__badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;padding:2px 8px;border-radius:20px;color:#fff;white-space:nowrap;}
.rvwt-smart-stop__badge--wineries{background:var(--color-hunter);}
.rvwt-smart-stop__badge--dining{background:#5a3e2b;}
.rvwt-smart-stop__badge--lodging{background:#2c5f7a;}
.rvwt-smart-stop__badge--activities{background:#7a4f2c;}
.rvwt-smart-stop__badge--transportation{background:#555;}
.rvwt-smart-stop__badge--{background:#888;}
.rvwt-smart-stop__meta{display:flex;gap:10px;font-size:12px;color:#999;flex-wrap:wrap;}
.rvwt-smart-stop__until{color:#bbb;}
.rvwt-smart-stop__warning{margin-top:6px;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#8b5e00;background:#fdf3dc;border:1px solid #e8d090;border-radius:4px;padding:3px 9px;}
.rvwt-smart-stop__warning::before{content:"!";display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;background:#e8a000;color:#fff;border-radius:50%;font-size:9px;font-weight:900;flex-shrink:0;}
@media (max-width: 640px) {
	.rvwt-smart-itinerary{padding:0 16px 60px;}
	.rvwt-smart-day{padding:20px 16px;}
	.rvwt-smart-day__photos{flex-direction:column;}
	.rvwt-smart-stop{flex-direction:column;gap:6px;}
	.rvwt-smart-stop__time{min-width:0;}
}

/* ==========================================================================
   Blog Layout
   ========================================================================== */
.rvwt-blog-main{max-width:880px;margin:0 auto;padding-left:24px;padding-right:24px;}
.rvwt-blog-main--has-sidebar{max-width:1440px;padding-left:clamp(1.5rem,5vw,5rem);padding-right:clamp(1.5rem,5vw,5rem);display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:start;}
.rvwt-blog-primary{min-width:0;}
@media (max-width: 1024px){
	.rvwt-blog-main--has-sidebar{grid-template-columns:1fr;gap:48px;}
}
.rvwt-sidebar{font-family:var(--font-body);position:sticky;top:calc(var(--header-height) + 16px);display:flex;flex-direction:column;gap:24px;}
.rvwt-sidebar > .widget,
.rvwt-sidebar > .rvwt-widget{background:#fff;border-radius:10px;padding:24px;box-shadow:0 1px 2px rgba(9,13,15,0.04),0 4px 16px rgba(9,13,15,0.05);transition:box-shadow .2s ease;}
.rvwt-sidebar > .widget:hover,
.rvwt-sidebar > .rvwt-widget:hover{box-shadow:0 1px 2px rgba(9,13,15,0.05),0 8px 24px rgba(9,13,15,0.07);}
.rvwt-widget__title,
.rvwt-sidebar .widget-title,
.rvwt-sidebar .wp-block-heading{font-family:var(--font-heading);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;margin:0 0 18px;color:var(--color-text-strong);position:relative;padding-bottom:12px;}
.rvwt-widget__title::after,
.rvwt-sidebar .widget-title::after,
.rvwt-sidebar .wp-block-heading::after{content:"";position:absolute;left:0;bottom:0;width:32px;height:2px;background:var(--color-primary);border-radius:2px;}
.rvwt-sidebar ul{list-style:none;margin:0;padding:0;}
.rvwt-sidebar li{padding:10px 0;font-size:14px;line-height:1.5;border-bottom:1px solid #f1ece1;}
.rvwt-sidebar li:first-child{padding-top:0;}
.rvwt-sidebar li:last-child{border-bottom:0;padding-bottom:0;}
.rvwt-sidebar a{color:var(--color-text);text-decoration:none;transition:color .15s ease;}
.rvwt-sidebar a:hover{color:var(--color-primary);}
.rvwt-sidebar input[type="search"],
.rvwt-sidebar input[type="text"]{width:100%;padding:11px 14px;border:1px solid #ece6d8;border-radius:8px;font-family:var(--font-body);font-size:14px;background:#fafaf6;color:var(--color-text-strong);transition:border-color .15s ease,background .15s ease;}
.rvwt-sidebar input[type="search"]:focus,
.rvwt-sidebar input[type="text"]:focus{outline:0;border-color:var(--color-primary);background:#fff;}
.rvwt-sidebar .search-form{display:flex;gap:8px;}
.rvwt-sidebar .search-form label{flex:1;}
.rvwt-sidebar .search-submit,
.rvwt-sidebar button[type="submit"]{padding:11px 18px;background:var(--btn-bg);color:var(--btn-text);border:0;border-radius:8px;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1px;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s ease,transform .15s ease;}
.rvwt-sidebar .search-submit:hover,
.rvwt-sidebar button[type="submit"]:hover{background:var(--btn-bg-hover);transform:translateY(-1px);}
.rvwt-widget__posts{display:flex;flex-direction:column;gap:14px;}
.rvwt-widget__post{display:flex;gap:12px;align-items:flex-start;padding:0;border:0;}
.rvwt-widget__post + .rvwt-widget__post{padding-top:14px;border-top:1px solid #f1ece1;}
.rvwt-widget__post-media{flex:0 0 64px;width:64px;height:64px;overflow:hidden;border-radius:8px;background:var(--color-tan);}
.rvwt-widget__post-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.rvwt-widget__post-media:hover img{transform:scale(1.06);}
.rvwt-widget__post-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.rvwt-widget__post-title{font-family:var(--font-heading);font-size:14px;font-weight:600;line-height:1.35;color:var(--color-text-strong);text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.rvwt-widget__post-title:hover{color:var(--color-primary);}
.rvwt-widget__post-date{font-family:var(--font-body);font-size:12px;color:#999;letter-spacing:.3px;}
@media (max-width: 1024px){
	.rvwt-sidebar{position:static;top:auto;}
}
.rvwt-shop-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:start;}
.rvwt-shop-content{min-width:0;}
@media (max-width: 1024px){
	.rvwt-shop-layout{grid-template-columns:1fr;gap:48px;}
}
.rvwt-breadcrumbs{font-family:var(--font-body);font-size:13px;color:#666;margin:0 0 24px;letter-spacing:.3px;}
.rvwt-breadcrumbs a{color:#666;text-decoration:none;}
.rvwt-breadcrumbs a:hover{color:var(--color-primary);}
.rvwt-breadcrumbs__sep{color:#bbb;margin:0 4px;}
.rvwt-breadcrumbs__current{color:var(--color-text-strong);}
.rvwt-blog-header{margin:0 0 48px;padding-bottom:24px;border-bottom:1px solid #e5dfd2;}
.rvwt-blog-pagetitle{font-family:var(--font-heading);font-size:42px;font-weight:300;letter-spacing:-.5px;margin:0;color:var(--color-text-strong);line-height:1.15;}
.rvwt-blog-list{display:flex;flex-direction:column;gap:64px;}
.rvwt-post-entry{display:block;}
.rvwt-post-entry__media{display:block;margin:0 0 24px;overflow:hidden;background:var(--color-tan);}
.rvwt-post-entry__media img{display:block;width:100%;height:auto;transition:transform .5s ease;}
.rvwt-post-entry__media:hover img{transform:scale(1.02);}
.rvwt-post-entry__body{}
.rvwt-post-entry__meta{display:block;font-family:var(--font-body);font-size:13px;color:#888;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px;}
.rvwt-post-entry__title{font-family:var(--font-heading);font-size:30px;font-weight:600;line-height:1.25;margin:0 0 16px;letter-spacing:-.2px;}
.rvwt-post-entry__title a{color:var(--color-text-strong);text-decoration:none;}
.rvwt-post-entry__title a:hover{color:var(--color-primary);}
.rvwt-post-entry__excerpt{font-family:var(--font-body);font-size:16px;line-height:1.7;color:var(--color-text);margin:0 0 16px;}
.rvwt-post-entry__excerpt p{margin:0 0 8px;}
.rvwt-post-entry__readmore{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1px;font-size:12px;font-weight:700;color:var(--btn-text);background:var(--btn-bg);text-decoration:none;border:0;border-radius:8px;padding:11px 18px;cursor:pointer;transition:background .15s ease,transform .15s ease;}
.rvwt-post-entry__readmore:hover{background:var(--btn-bg-hover);transform:translateY(-1px);gap:10px;}
.rvwt-blog-empty{text-align:center;padding:48px 16px;font-family:var(--font-body);color:var(--color-text);}
.rvwt-no-results{display:flex;flex-direction:column;align-items:center;text-align:center;padding:64px 24px;gap:16px;}
.rvwt-no-results__icon{color:var(--color-primary);opacity:.5;margin-bottom:4px;}
.rvwt-no-results__heading{font-family:var(--font-heading);font-size:28px;font-weight:600;color:var(--color-text-strong);margin:0;letter-spacing:-.3px;}
.rvwt-no-results__text{font-family:var(--font-body);font-size:16px;color:var(--color-text);margin:0;max-width:640px;line-height:1.7;}
.rvwt-no-results__form{display:flex;gap:8px;width:100%;max-width:640px;margin-top:8px;}
.rvwt-no-results__input{flex:1;padding:12px 16px;border:1px solid #ece6d8;border-radius:8px;font-family:var(--font-body);font-size:15px;background:#fafaf6;color:var(--color-text-strong);transition:border-color .15s ease,background .15s ease;outline:0;}
.rvwt-no-results__input:focus{border-color:var(--color-primary);background:#fff;}
.rvwt-no-results__submit{padding:12px 22px;background:var(--color-wine);color:#fff;border:0;border-radius:8px;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s ease,transform .15s ease;}
.rvwt-no-results__submit:hover{background:var(--color-text-strong);transform:translateY(-1px);}
.rvwt-pagination{margin:64px 0 0;padding-top:32px;border-top:1px solid #e5dfd2;text-align:center;}
.rvwt-pagination .nav-links{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1px;font-size:13px;}
.rvwt-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;color:var(--color-text-strong);text-decoration:none;border:1px solid #e5dfd2;border-radius:2px;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.rvwt-pagination .page-numbers:hover{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-bg);}
.rvwt-pagination .page-numbers.current{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-bg);}
.rvwt-pagination .page-numbers.dots{border:0;background:transparent;color:#999;}
.rvwt-pagination__summary{margin:16px 0 0;font-family:var(--font-body);font-size:13px;color:#888;letter-spacing:.5px;}
.rvwt-single{}
.rvwt-single__header{margin:0 0 24px;}
.rvwt-single__title{font-family:var(--font-heading);font-size:42px;font-weight:600;line-height:1.2;margin:0 0 12px;letter-spacing:-.4px;color:var(--color-text-strong);}
.rvwt-single__meta{font-family:var(--font-body);font-size:14px;color:#888;text-transform:uppercase;letter-spacing:1.5px;}
.rvwt-single__category{color:var(--color-primary);text-decoration:none;}
.rvwt-single__category:hover{text-decoration:underline;}
.rvwt-single__sep{margin:0 6px;color:#bbb;}
.rvwt-single__hero{margin:0 0 36px;background:var(--color-tan);overflow:hidden;}
.rvwt-single__hero img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;}
.rvwt-single__content{font-family:var(--font-body);font-size:18px;line-height:1.75;color:var(--color-text);}
.rvwt-single__content > *{margin:0 0 1.2em;}
.rvwt-single__content h2{font-family:var(--font-heading);font-size:28px;font-weight:600;line-height:1.3;margin:1.6em 0 .6em;color:var(--color-text-strong);}
.rvwt-single__content h3{font-family:var(--font-heading);font-size:22px;font-weight:600;line-height:1.35;margin:1.4em 0 .5em;color:var(--color-text-strong);}
.rvwt-single__content a{color:var(--color-wine);}
.rvwt-single__content blockquote{border-left:3px solid var(--color-primary);padding-left:20px;margin-left:0;font-style:italic;color:var(--color-text-strong);}
.rvwt-single__content img{max-width:100%;height:auto;}
.rvwt-single__pages{font-family:var(--font-body);font-size:14px;color:#666;margin-top:24px;}
.rvwt-single__back{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1px;font-size:14px;color:var(--color-primary);text-decoration:none;}
.rvwt-single__back:hover{color:var(--color-hunter);}
.rvwt-related{margin-top:64px;padding-top:32px;border-top:1px solid #e5dfd2;}
.rvwt-related__title{font-family:var(--font-heading);font-size:24px;font-weight:600;margin:0 0 24px;color:var(--color-text-strong);}
.rvwt-related__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.rvwt-related__card{display:block;text-decoration:none;color:inherit;}
.rvwt-related__media{aspect-ratio:3/2;overflow:hidden;background:var(--color-tan);margin-bottom:10px;border-radius:4px;}
.rvwt-related__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.rvwt-related__card:hover .rvwt-related__media img{transform:scale(1.05);}
.rvwt-related__placeholder{width:100%;height:100%;background:var(--color-tan);}
.rvwt-related__cardtitle{font-family:var(--font-heading);font-size:14px;font-weight:600;line-height:1.4;margin:0;color:var(--color-text-strong);}
@media (max-width: 768px) {
	.rvwt-blog-pagetitle{font-size:32px;}
	.rvwt-post-entry__title{font-size:24px;}
	.rvwt-single__title{font-size:30px;}
	.rvwt-related__grid{grid-template-columns:repeat(2,1fr);}
	.rvwt-blog-list{gap:48px;}
}
@media (max-width: 420px) {
	.rvwt-related__grid{grid-template-columns:1fr;}
}

/* ==========================================================================
   Single Event Page
   ========================================================================== */
.rvwt-event-single-page {
  padding: calc(var(--header-height) + 48px) 24px 80px;
}
.rvwt-event-single-inner {
  max-width: 860px;
  margin: 0 auto;
}

/* ── EM plugin content overrides ──────────────────────────────────────────── */
.rvwt-single__content .em-event-image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 6px;
  margin: 0 0 28px;
}
.rvwt-single__content .em-event-bookings,
.rvwt-single__content .em-booking-form-wrapper {
  margin-top: 36px;
  padding: 28px 24px;
  background: #faf9f5;
  border: 1px solid #e5dfd2;
  border-radius: 10px;
}
.rvwt-single__content .em-location-address {
  font-size: 15px;
  color: #666;
  font-style: normal;
}

/* ── Event host card ──────────────────────────────────────────────────────── */
.rvwt-event-host {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid #e5dfd2;
}
.rvwt-event-host__label {
  font-family: var(--font-heading);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #aaa;
  margin: 0 0 14px;
}
.rvwt-event-host__card,
.rvwt-event-host__card--anon {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 20px 22px;
  background: #faf9f5;
  border: 1px solid #e5dfd2;
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.rvwt-event-host__card:hover {
  border-color: var(--color-primary);
  box-shadow: 0 4px 16px rgba(0,0,0,.07);
}
.rvwt-event-host__thumb {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  overflow: hidden;
}
.rvwt-event-host__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rvwt-event-host__thumb--placeholder {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  background: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 26px;
  font-weight: 600;
  color: #fff;
  text-transform: uppercase;
}
.rvwt-event-host__info {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.rvwt-event-host__name {
  font-family: var(--font-heading);
  font-size: 17px;
  font-weight: 600;
  color: var(--color-text-strong);
  line-height: 1.3;
}
.rvwt-event-host__meta {
  font-family: var(--font-body);
  font-size: 13px;
  color: #888;
  line-height: 1.4;
}
.rvwt-event-host__cta {
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: var(--color-primary);
  margin-top: 6px;
}

/* ── Calendar source badge ────────────────────────────────────────────────── */
.rvwt-cal-source-badge {
  display: inline-block;
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 3px 9px;
  border-radius: 20px;
  background: #e5dfd2;
  color: #666;
  margin-top: 4px;
}
.rvwt-cal-source-badge--google    { background: #e8f0fe; color: #1a73e8; }
.rvwt-cal-source-badge--apple     { background: #f0f0f0; color: #444; }
.rvwt-cal-source-badge--microsoft { background: #e8f4e8; color: #217346; }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .rvwt-event-single-page { padding: calc(var(--header-height) + 28px) 16px 60px; }
  .rvwt-single__title { font-size: 28px; }
}

/* ==========================================================================
   Category Archive
   ========================================================================== */
.rvwt-cat-hero{position:relative;min-height:340px;display:flex;align-items:center;justify-content:center;padding:calc(var(--header-height) + 32px) 24px 48px;background-size:cover;background-position:center;color:#fff;text-align:center;}
.rvwt-cat-hero--plain{color:var(--color-text-strong);}
.rvwt-cat-hero__inner{max-width:900px;width:100%;}
.rvwt-cat-hero__breadcrumbs{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:2px;font-size:12px;margin:0 0 18px;opacity:.95;}
.rvwt-cat-hero__breadcrumbs a{color:inherit;text-decoration:none;}
.rvwt-cat-hero__breadcrumbs a:hover{text-decoration:underline;}
.rvwt-cat-hero__sep{margin:0 6px;opacity:.6;}
.rvwt-cat-hero__current{opacity:.85;}
.rvwt-cat-hero__title{font-family:var(--font-heading);font-size:56px;font-weight:300;line-height:1.05;letter-spacing:-.5px;margin:0;text-shadow:0 2px 16px rgba(0,0,0,.25);}
.rvwt-cat-hero--plain .rvwt-cat-hero__title{text-shadow:none;}
.rvwt-cat-header{padding:calc(var(--header-height) + 24px) 24px 8px;text-align:left;color:var(--color-text-strong);}
.rvwt-cat-header__inner{max-width:1200px;margin:0 auto;}
.rvwt-cat-header__breadcrumbs{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:2px;font-size:12px;margin:0 0 14px;color:var(--color-text);}
.rvwt-cat-header__breadcrumbs a{color:inherit;text-decoration:none;}
.rvwt-cat-header__breadcrumbs a:hover{text-decoration:underline;}
.rvwt-cat-header__sep{margin:0 6px;opacity:.6;}
.rvwt-cat-header__current{opacity:.85;}
.rvwt-cat-header__title{font-family:var(--font-heading);font-size:52px;font-weight:300;line-height:1.05;letter-spacing:-.5px;margin:0;}
.rvwt-cat-main{width:100%;max-width:1200px;margin:0 auto;padding:24px 24px 80px;box-sizing:border-box;}
.rvwt-cat-description{margin:0 0 48px;font-family:var(--font-body);font-size:17px;line-height:1.75;color:var(--color-text);text-align:left;column-gap:56px;}
.rvwt-cat-description p{margin:0 0 1em;break-inside:avoid-column;}
.rvwt-cat-description p:last-child{margin-bottom:0;}
.rvwt-cat-description h2{font-family:var(--font-heading);font-size:22px;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-text-strong);margin:1.5em 0 .5em;break-inside:avoid;}
.rvwt-cat-description h3{font-family:var(--font-heading);font-size:18px;letter-spacing:1px;text-transform:uppercase;color:var(--color-text-strong);margin:1.4em 0 .4em;break-inside:avoid;}
.rvwt-cat-description a{color:var(--color-wine);}
.rvwt-cat-description ul,.rvwt-cat-description ol{margin:0 0 1em;padding-left:22px;}
.rvwt-cat-description blockquote{border-left:3px solid var(--color-primary);padding:4px 0 4px 18px;margin:1em 0;font-style:italic;color:var(--color-text-strong);break-inside:avoid;}
@media (min-width: 900px) {
	.rvwt-cat-description{column-count:2;}
}
.rvwt-cat-pills{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:10px;margin:0 0 40px;}
.rvwt-cat-pill{display:inline-block;padding:10px 20px;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1.5px;font-size:12px;font-weight:700;color:var(--color-text-strong);background:#fff;border:1px solid #e5dfd2;text-decoration:none;border-radius:999px;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.rvwt-cat-pill:hover{background:var(--color-tan);}
.rvwt-cat-pill.is-active{background:var(--color-text-strong);color:#fff;border-color:var(--color-text-strong);}
.rvwt-arc-main{max-width:1520px;margin-left:auto;margin-right:auto;}
.rvwt-cat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.rvwt-cat-card{display:block;position:relative;aspect-ratio:196/246;overflow:hidden;background:var(--color-tan);}
.rvwt-cat-card .strip-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.rvwt-cat-card:hover .strip-card__img{transform:scale(1.04);}
.rvwt-cat-card__placeholder{position:absolute;inset:0;background:var(--color-tan);}
.rvwt-cat-pagination{margin:64px 0 0;text-align:center;}
.rvwt-cat-pagination .nav-links{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:1px;font-size:13px;}
.rvwt-cat-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;color:var(--color-text-strong);text-decoration:none;border:1px solid #e5dfd2;border-radius:2px;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.rvwt-cat-pagination .page-numbers:hover{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-bg);}
.rvwt-cat-pagination .page-numbers.current{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-bg);}
.rvwt-cat-empty{text-align:center;padding:48px 16px;font-family:var(--font-body);font-size:16px;color:var(--color-text);}
@media (max-width: 1024px) {
	.rvwt-cat-hero__title{font-size:44px;}
	.rvwt-cat-header__title{font-size:38px;}
	.rvwt-cat-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width: 768px) {
	.rvwt-cat-hero{min-height:280px;}
	.rvwt-cat-hero__title{font-size:34px;}
	.rvwt-cat-header__title{font-size:30px;}
	.rvwt-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
	.rvwt-cat-description{font-size:16px;}
}
@media (max-width: 420px) {
	.rvwt-cat-grid{grid-template-columns:1fr;}
}
.rvwt-arc-header--l5{overflow:visible;}
.rvwt-arc-header--has-strip{padding-bottom:0!important;}
.rvwt-arc-header--script{text-align:center;}
.rvwt-arc-header__inner--centered{max-width:860px;margin:0 auto;padding-top:28px;padding-bottom:28px;}
.rvwt-arc-header--has-strip .rvwt-arc-header__inner--centered{padding-bottom:0;}
.rvwt-arc-header__breadcrumbs--center{justify-content:center;}
.rvwt-arc-script-hdr{position:relative;padding-top:4px;}
.rvwt-arc-script-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--btn-bg);border-radius:50%;margin:0 auto 16px;color:var(--btn-text);box-shadow:0 4px 18px rgba(0,0,0,.35);flex-shrink:0;}
.rvwt-arc-script-icon svg{width:28px;height:28px;}
.rvwt-arc-script-wm{display:none;}
.rvwt-arc-script-title{font-family:var(--font-heading,Lato,sans-serif);font-size:clamp(26px,3.8vw,50px);font-weight:900;text-transform:uppercase;letter-spacing:3px;color:#fff;margin:0 0 10px;line-height:1;position:relative;z-index:1;text-shadow:0 2px 20px rgba(0,0,0,.2);}
.rvwt-arc-script-desc{font-family:var(--font-body,Lora,serif);font-style:italic;font-size:17px;line-height:1.7;color:rgba(255,255,255,.95);max-width:580px;margin:0 auto 14px;}
.rvwt-arc-script-desc p{margin:0 0 6px;}
.rvwt-arc-script-desc p:last-child{margin:0;}
.rvwt-arc-script-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.88);font-family:var(--font-heading,Lato,sans-serif);font-size:13px;font-weight:600;letter-spacing:.5px;padding:8px 22px;border-radius:30px;margin-bottom:0;}
.rvwt-arc-script-badge__num{font-size:20px;font-weight:900;color:#fff;line-height:1;}
.rvwt-arc-hscroll-wrap{background:linear-gradient(to bottom,transparent,rgba(0,0,0,.80));padding:22px clamp(1.5rem,5vw,5rem);margin-top:36px;}
.rvwt-arc-hscroll-lbl{display:block;font-family:var(--font-heading);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,.75);margin-bottom:14px;}
.rvwt-arc-hscroll{display:flex;gap:14px;overflow-x:auto;padding-bottom:4px;-ms-overflow-style:none;scrollbar-width:none;}
.rvwt-arc-hscroll::-webkit-scrollbar{display:none;}
.rvwt-arc-hcard{flex-shrink:0;width:180px;border-radius:10px;overflow:hidden;position:relative;cursor:pointer;text-decoration:none;display:block;transition:transform .2s ease;}
.rvwt-arc-hcard:hover{transform:translateY(-2px);}
.rvwt-arc-hcard__img{height:108px;position:relative;overflow:hidden;background:linear-gradient(145deg,#1a4a2e,#0c2e1a);}
.rvwt-arc-hcard__img img{width:100%;height:100%;object-fit:cover;display:block;}
.rvwt-arc-hcard__ov{position:absolute;inset:0;background:linear-gradient(to top,color-mix(in srgb,var(--color-hunter) 88%,transparent) 0%,transparent 55%);}
.rvwt-arc-hcard__body{position:absolute;bottom:0;left:0;right:0;padding:12px;}
.rvwt-arc-hcard__name{font-family:var(--font-heading);font-size:13px;font-weight:800;color:#fff;margin-bottom:2px;line-height:1.2;}
.rvwt-arc-hcard__cnt{font-family:var(--font-heading);font-size:10px;color:rgba(255,255,255,.55);}
.rvwt-arc-hcard.is-active{outline:2px solid rgba(255,255,255,.65);outline-offset:-2px;}
.rvwt-arc-hcard.is-active .rvwt-arc-hcard__name::after{content:" ✓";}
.rvwt-arc-portal-section{margin-bottom:36px;}
.rvwt-arc-portal-lbl{font-family:var(--font-heading);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:var(--color-primary);margin-bottom:16px;}
.rvwt-arc-portal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.rvwt-arc-ptile{border-radius:14px;overflow:hidden;position:relative;cursor:pointer;display:block;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease;}
.rvwt-arc-ptile:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.18);}
.rvwt-arc-ptile__img{height:170px;position:relative;overflow:hidden;background:linear-gradient(145deg,#1a4a2e,#0c2e1a);}
.rvwt-arc-ptile__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.rvwt-arc-ptile:hover .rvwt-arc-ptile__img img{transform:scale(1.05);}
.rvwt-arc-ptile__ov{position:absolute;inset:0;background:linear-gradient(to top,color-mix(in srgb,var(--color-hunter) 88%,transparent) 0%,color-mix(in srgb,var(--color-hunter) 10%,transparent) 60%,transparent 100%);}
.rvwt-arc-ptile__body{position:absolute;bottom:0;left:0;right:0;padding:16px;}
.rvwt-arc-ptile__name{font-family:var(--font-heading);font-size:15px;font-weight:900;color:#fff;margin-bottom:8px;line-height:1.2;}
.rvwt-arc-ptile__foot{display:flex;align-items:center;justify-content:space-between;}
.rvwt-arc-ptile__cnt{font-family:var(--font-heading);font-size:11px;color:rgba(255,255,255,.65);}
.rvwt-arc-ptile__cnt strong{color:rgba(255,255,255,.9);}
.rvwt-arc-ptile__arr{width:28px;height:28px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;}
.rvwt-arc-ptile__placeholder{width:100%;height:100%;background:linear-gradient(145deg,#1a4a2e,#0c2e1a 55%,#061a0e);}
.rvwt-arc-feat-section{margin-bottom:44px;}
.rvwt-arc-feat-hd{font-family:var(--font-heading);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:2px;color:var(--color-primary);margin-bottom:18px;display:flex;align-items:center;gap:10px;}
.rvwt-arc-feat-hd::before{content:"★";color:#c9a227;font-size:11px;}
.rvwt-arc-feat-hd::after{content:"";flex:1;height:1px;background:linear-gradient(to right,color-mix(in srgb,var(--color-primary) 35%,transparent),transparent);}
.rvwt-arc-feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.rvwt-arc-fcard{border-radius:20px;overflow:hidden;position:relative;display:block;text-decoration:none;box-shadow:0 4px 20px rgba(0,0,0,.12);transition:transform .32s ease,box-shadow .32s ease;}
.rvwt-arc-fcard::after{content:"";position:absolute;inset:0;border-radius:20px;border:2px solid transparent;pointer-events:none;transition:border-color .32s ease;}
.rvwt-arc-fcard:hover{transform:translateY(-5px);box-shadow:0 22px 52px rgba(0,0,0,.22);}
.rvwt-arc-fcard:hover::after{border-color:color-mix(in srgb,var(--color-primary) 55%,transparent);}
.rvwt-arc-fcard__img{aspect-ratio:4/3;position:relative;overflow:hidden;background:linear-gradient(145deg,#1a4a2e,#0c2e1a);}
.rvwt-arc-fcard__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
.rvwt-arc-fcard:hover .rvwt-arc-fcard__img img{transform:scale(1.07);}
.rvwt-arc-fcard__ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(2,26,14,.82) 0%,rgba(2,26,14,.28) 50%,transparent 78%);}
.rvwt-arc-fcard__placeholder{width:100%;height:100%;background:linear-gradient(145deg,#1a4a2e,#0c2e1a 55%,#061a0e);}
.rvwt-arc-fcard__body{position:absolute;bottom:0;left:0;right:0;padding:18px 20px 16px;background:rgba(3,22,12,.48);backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3);border-top:1px solid rgba(255,255,255,.07);}
.rvwt-arc-fcard__name{font-family:var(--font-heading);font-size:16px;font-weight:900;color:#fff;margin-bottom:4px;line-height:1.15;text-shadow:0 1px 10px rgba(0,0,0,.35);}
.rvwt-arc-fcard__desc{font-family:var(--font-body,Lora,serif);font-size:12px;font-style:italic;color:rgba(255,255,255,.68);line-height:1.5;margin-bottom:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease,opacity .3s ease,margin-bottom .3s ease;}
.rvwt-arc-fcard:hover .rvwt-arc-fcard__desc{max-height:56px;opacity:1;margin-bottom:10px;}
.rvwt-arc-fcard__foot{display:flex;align-items:center;justify-content:space-between;}
.rvwt-arc-feat-badge{display:inline-flex;align-items:center;gap:4px;padding:0;background:none;border:none;font-family:var(--font-heading);font-size:9px;font-weight:700;color:rgba(201,162,39,.85);text-transform:uppercase;letter-spacing:1px;}
.rvwt-arc-fcard__arr{width:32px;height:32px;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.28);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;transition:background .25s,border-color .25s,transform .25s;}
.rvwt-arc-fcard:hover .rvwt-arc-fcard__arr{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.55);transform:translateX(3px);}
@media (max-width:1024px){
	.rvwt-arc-portal-grid{grid-template-columns:repeat(2,1fr);}
	.rvwt-arc-feat-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:768px){
	.rvwt-arc-hcard{width:148px;}
	.rvwt-arc-hcard__img{height:90px;}
	.rvwt-arc-ptile__img{height:140px;}
	.rvwt-arc-feat-grid{grid-template-columns:repeat(2,1fr);}
	.rvwt-arc-fcard__img{aspect-ratio:4/3;}
	.rvwt-arc-fcard__name{font-size:15px;}
}
@media (max-width:480px){
	.rvwt-arc-feat-grid{grid-template-columns:1fr;}
}
@media (max-width:480px){
	.rvwt-arc-portal-grid{grid-template-columns:1fr 1fr;}
	.rvwt-arc-ptile__img{height:120px;}
}

/* =========================================================================
   PREMIUM DETAIL PAGE — NEW SECTIONS (gallery-hero, social, calendar)
   ========================================================================= */

/* ── Full-width gallery hero (Layouts 1, 4, 5) ────────────────────────── */
.rvwt-ldg-gallery-hero {
  background: #f5f2ee;
  padding: 0 0 40px;
}
.rvwt-ldg-gallery-hero .rvwt-ldg-gallery {
  margin: 0;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 24px 24px 0;
}
.rvwt-ldg-gallery-hero .rvwt-ldg-gallery__title {
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-hunter, #2d4a2d);
  margin-bottom: 12px;
}
.rvwt-ldg-gallery-hero .rvwt-ldg-gallery__grid {
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}
.rvwt-ldg-gallery-hero .rvwt-ldg-gallery__item {
  aspect-ratio: 4 / 3;
  border-radius: 8px;
}
/* First cell spans two rows for large-left mosaic feel */
.rvwt-ldg-gallery-hero .rvwt-ldg-gallery__grid .rvwt-ldg-gallery__item:first-child {
  grid-row: 1 / 3;
  grid-column: 1 / 3;
  aspect-ratio: auto;
}
@media (max-width: 900px) {
  .rvwt-ldg-gallery-hero .rvwt-ldg-gallery__grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .rvwt-ldg-gallery-hero .rvwt-ldg-gallery__grid .rvwt-ldg-gallery__item:first-child {
    grid-row: auto;
    grid-column: auto;
    aspect-ratio: 4 / 3;
  }
}
@media (max-width: 600px) {
  .rvwt-ldg-gallery-hero .rvwt-ldg-gallery__grid {
    grid-template-columns: 1fr 1fr;
  }
}
/* Layout 5 variant — no bg strip, just padded */
.rvwt-ldg-gallery-hero--l5 {
  background: #fff;
  border-bottom: 1px solid #ece8e0;
}

/* Dark Luxury (Layout 4) gallery hero overrides */
body.rvwt-dl-4 .rvwt-ldg-gallery-hero {
  background: #111;
}
body.rvwt-dl-4 .rvwt-ldg-gallery-hero .rvwt-ldg-gallery__title {
  color: #c8960c;
}

/* Premium Connect (Layout 7) — gallery matches content-wrap width */
body.rvwt-dl-7 .rvwt-ldg-gallery-hero .rvwt-ldg-gallery {
  max-width: none;
  padding-left: clamp(1rem, 3vw, 3rem);
  padding-right: clamp(1rem, 3vw, 3rem);
}

/* ── Calendar button ───────────────────────────────────────────────────── */
.rvwt-ldg-btn--calendar {
  background: var(--color-accent, #a0522d);
  color: #fff;
  border-color: var(--color-accent, #a0522d);
}
.rvwt-ldg-btn--calendar:hover {
  background: #8a3f1e;
  border-color: #8a3f1e;
}
body.rvwt-dl-4 .rvwt-ldg-btn--calendar {
  background: #c8960c;
  border-color: #c8960c;
  color: #111;
}
body.rvwt-dl-4 .rvwt-ldg-btn--calendar:hover {
  background: #e8b820;
  border-color: #e8b820;
}

/* ── Upcoming Events in sidebar ─────────────────────────────────────────── */
.rvwt-ldg-sidebar .rvwt-cal-events {
  margin: 20px 0 0;
  padding: 18px 20px;
  border-radius: 10px;
  border: 1px solid var(--color-primary-soft, #d4c9b0);
  background: var(--color-bg, #faf7f2);
}
.rvwt-ldg-sidebar .rvwt-cal-events__title {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.rvwt-ldg-sidebar .rvwt-cal-events__item {
  gap: 10px;
  padding: 9px 0;
}
.rvwt-ldg-sidebar .rvwt-cal-events__date {
  width: 40px;
  border-radius: 6px;
}
.rvwt-ldg-sidebar .rvwt-cal-events__date-day { font-size: 17px; }
.rvwt-ldg-sidebar .rvwt-cal-events__footer { margin-top: 10px; }
body.rvwt-dl-4 .rvwt-ldg-sidebar .rvwt-cal-events {
  background: #1a1a1a;
  border-color: #2e2e2e;
}
body.rvwt-dl-4 .rvwt-ldg-sidebar .rvwt-cal-events__name { color: #e0d8c8; }
body.rvwt-dl-4 .rvwt-ldg-sidebar .rvwt-cal-events__footer a { color: #c8960c; }

/* ── Live calendar section (on listing detail page) ────────────────────── */
.rvwt-listing-cal-section {
  padding: 48px 24px;
  background: var(--color-bg, #faf7f2);
  border-top: 1px solid var(--color-primary-soft, #d4c9b0);
  border-bottom: 1px solid var(--color-primary-soft, #d4c9b0);
}
.rvwt-listing-cal-section__inner {
  max-width: 900px;
  margin: 0 auto;
}
.rvwt-listing-cal-section__header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-hunter, #2d4a2d);
  margin-bottom: 20px;
}
.rvwt-listing-cal-section__header svg {
  color: var(--color-accent, #2a7c4f);
  flex-shrink: 0;
}
/* Dark Luxury override */
body.rvwt-dl-4 .rvwt-listing-cal-section {
  background: #111;
  border-color: #2e2e2e;
}
body.rvwt-dl-4 .rvwt-listing-cal-section__header {
  color: #c8960c;
}
body.rvwt-dl-4 .rvwt-listing-cal-section__header svg {
  color: #c8960c;
}
@media (max-width: 600px) {
  .rvwt-listing-cal-section { padding: 32px 16px; }
}

/* ── Social section ─────────────────────────────────────────────────────── */
.rvwt-social-section {
  background: #1e2d1e;
  padding: 48px 24px;
  text-align: center;
}
.rvwt-social-section__inner {
  max-width: 900px;
  margin: 0 auto;
}
.rvwt-social-section__heading {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-bottom: 28px;
}
.rvwt-social-section__heading svg { color: rgba(255,255,255,.4); }
.rvwt-social-section__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.rvwt-social-section__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 50px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.85);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .15s ease;
}
.rvwt-social-section__btn:hover {
  background: rgba(255,255,255,.15);
  border-color: rgba(255,255,255,.4);
  color: #fff;
  transform: translateY(-2px);
}
.rvwt-social-section__btn i { font-size: 16px; }
.rvwt-social-ta-icon { width: 16px; height: 16px; flex-shrink: 0; }
/* Platform accent colours on hover */
.rvwt-social-section__btn--instagram:hover { background: linear-gradient(135deg, rgba(214,41,118,.35), rgba(255,154,0,.25)); border-color: rgba(214,41,118,.5); }
.rvwt-social-section__btn--facebook:hover  { background: rgba(66,103,178,.3); border-color: rgba(66,103,178,.5); }
.rvwt-social-section__btn--youtube:hover   { background: rgba(255,0,0,.25); border-color: rgba(255,0,0,.4); }
.rvwt-social-section__btn--tiktok:hover    { background: rgba(105,201,208,.2); border-color: rgba(105,201,208,.4); }
.rvwt-social-section__btn--yelp:hover      { background: rgba(175,40,20,.3); border-color: rgba(175,40,20,.5); }
/* Layout 4 (Dark Luxury) — already dark, use gold accent */
body.rvwt-dl-4 .rvwt-social-section { background: #0d0d0d; }
body.rvwt-dl-4 .rvwt-social-section__btn { border-color: rgba(200,150,12,.25); }
body.rvwt-dl-4 .rvwt-social-section__btn:hover { background: rgba(200,150,12,.15); border-color: rgba(200,150,12,.5); color: #e8b820; }
/* Layout 5 (Minimal White) — lighter version */
body.rvwt-dl-5 .rvwt-social-section { background: #f5f2ee; }
body.rvwt-dl-5 .rvwt-social-section__heading { color: rgba(0,0,0,.45); }
body.rvwt-dl-5 .rvwt-social-section__heading svg { color: rgba(0,0,0,.3); }
body.rvwt-dl-5 .rvwt-social-section__btn { border-color: rgba(0,0,0,.15); background: #fff; color: #333; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
body.rvwt-dl-5 .rvwt-social-section__btn:hover { background: #f0ede8; border-color: rgba(0,0,0,.25); color: #111; }
@media (max-width: 600px) {
  .rvwt-social-section { padding: 36px 16px; }
  .rvwt-social-section__btn { padding: 9px 14px; font-size: 12px; }
}

/* ── Collapsible card hours ──────────────────────────────────────────────── */
.rvwt-hours-expand{display:inline;}
.rvwt-hours-expand summary{display:inline-flex;align-items:center;gap:3px;cursor:pointer;list-style:none;font-size:inherit;line-height:inherit;}
.rvwt-hours-expand summary::-webkit-details-marker{display:none;}
.rvwt-hours-more,.rvwt-hours-less{font-size:.78em;opacity:.6;white-space:nowrap;}
.rvwt-hours-less{display:none;}
.rvwt-hours-expand[open] .rvwt-hours-more{display:none;}
.rvwt-hours-expand[open] .rvwt-hours-less{display:inline;}
.rvwt-hours-full{margin-top:5px;font-size:.9em;line-height:1.55;opacity:.85;}
.rvwt-list-card__hours{display:flex;align-items:flex-start;gap:6px;font-size:13px;color:inherit;margin-bottom:4px;}
.rvwt-list-card__hours .fa-clock{margin-top:2px;flex-shrink:0;opacity:.7;}
.rvwt-list-card__website-row{display:flex;align-items:center;gap:6px;font-size:13px;color:inherit;margin-bottom:4px;}
.rvwt-list-card__website-row .fa-globe{flex-shrink:0;opacity:.7;}
.rvwt-list-card__website-row .rvwt-list-card__act-label{font-weight:600;white-space:nowrap;}
.rvwt-list-card__website-row .rvwt-list-card__act-link{color:var(--color-accent,#731c46);text-decoration:underline;text-underline-offset:2px;word-break:break-all;}

/* ── Instagram feed section ─────────────────────────────────────────────── */
.rvwt-ig-section {
  background: #fff;
  padding: 52px 24px;
  border-top: 1px solid var(--color-primary-soft, #d4c9b0);
}
.rvwt-ig-section__inner {
  max-width: 960px;
  margin: 0 auto;
}
.rvwt-ig-section__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.rvwt-ig-section__header > .fa-instagram {
  font-size: 26px;
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.rvwt-ig-section__heading {
  font-family: var(--font-heading, serif);
  font-size: 18px;
  font-weight: 800;
  color: var(--color-hunter, #2d4a2d);
}
.rvwt-ig-section__handle {
  margin-left: auto;
  font-size: 13px;
  font-weight: 700;
  color: #d6249f;
  text-decoration: none;
  padding: 4px 12px;
  border: 1px solid rgba(214, 36, 159, .3);
  border-radius: 50px;
  transition: background .2s ease;
}
.rvwt-ig-section__handle:hover {
  background: rgba(214, 36, 159, .08);
}
.rvwt-ig-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 6px;
}
.rvwt-ig-item {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 6px;
  display: block;
  text-decoration: none;
}
.rvwt-ig-item__img {
  position: relative;
  width: 100%;
  height: 100%;
}
.rvwt-ig-item__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
  display: block;
}
.rvwt-ig-item:hover .rvwt-ig-item__img img {
  transform: scale(1.06);
}
.rvwt-ig-item__badge {
  position: absolute;
  top: 6px;
  right: 6px;
  background: rgba(0,0,0,.55);
  color: #fff;
  border-radius: 4px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
}
.rvwt-ig-item__hover {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 10px;
  opacity: 0;
  transition: opacity .25s;
}
.rvwt-ig-item:hover .rvwt-ig-item__hover {
  opacity: 1;
}
.rvwt-ig-item__cap {
  font-size: 11px;
  line-height: 1.45;
  margin: 0 0 4px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.rvwt-ig-item__date {
  font-size: 10px;
  opacity: .75;
}
.rvwt-ig-section__footer {
  margin-top: 18px;
  text-align: center;
}
.rvwt-ig-section__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 24px;
  border-radius: 50px;
  background: linear-gradient(135deg, #fd5949, #d6249f, #285AEB);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: opacity .2s ease, transform .15s ease;
}
.rvwt-ig-section__cta:hover {
  opacity: .88;
  transform: translateY(-1px);
  color: #fff;
}
.rvwt-ig-placeholder {
  text-align: center;
  padding: 40px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.rvwt-ig-placeholder__icon {
  font-size: 52px;
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.rvwt-ig-placeholder__text {
  font-size: 14px;
  color: #888;
}
.rvwt-ig-placeholder__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 20px;
  border-radius: 50px;
  border: 1px solid rgba(214,36,159,.35);
  color: #d6249f;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: background .2s ease;
}
.rvwt-ig-placeholder__link:hover {
  background: rgba(214,36,159,.07);
}
/* Dark Luxury (layout 4) override */
body.rvwt-dl-4 .rvwt-ig-section {
  background: #111;
  border-top-color: #2a2a2a;
}
body.rvwt-dl-4 .rvwt-ig-section__heading {
  color: #c8960c;
}
/* Minimal White (layout 5) — already white, subtle separator */
body.rvwt-dl-5 .rvwt-ig-section {
  border-top-color: #e8e4df;
}
@media (max-width: 700px) {
  .rvwt-ig-grid { grid-template-columns: repeat(3, 1fr); }
  .rvwt-ig-section { padding: 36px 16px; }
}
@media (max-width: 420px) {
  .rvwt-ig-grid { grid-template-columns: repeat(2, 1fr); gap: 4px; }
}

/* ── Layout 7 — Premium Connect ─────────────────────────────────────────── */

/* Hero — LEFT-aligned text block matching reference image */
.rvwt-l7-hero {
  min-height: 680px;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  padding: 0 !important;
  background-color: #0d0603;
}
.rvwt-l7-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  padding: calc(var(--header-height, 80px) + 4rem) clamp(1.5rem, 8vw, 8rem) clamp(3rem, 5vw, 5rem);
  flex: 1;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
/* Text block shrinks to title width so subheading/location center relative to the title */
.rvwt-l7-hero__text-block {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
}
/* Title — large Lora serif, LEFT aligned, matching reference */
.rvwt-l7-hero__title {
  font-family: 'Lora', Georgia, serif !important;
  font-size: clamp(2.8rem, 6.5vw, 6rem) !important;
  font-weight: 700 !important;
  color: #fff !important;
  text-transform: none !important;
  letter-spacing: -.02em !important;
  line-height: 1.08 !important;
  text-shadow: 0 2px 24px rgba(0,0,0,.7), 0 4px 40px rgba(0,0,0,.4) !important;
  margin: 0 0 16px !important;
  text-align: left !important;
}
/* Subheading — stretches to title width, text centered within it */
.rvwt-l7-hero__subheading {
  font-family: var(--font-body, sans-serif);
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.5;
  color: rgba(255,255,255,.92);
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 0 0 14px;
  align-self: stretch;
  text-align: center;
  text-shadow: 0 1px 8px rgba(0,0,0,.5);
}
/* Location — stretches to title width, content centered within it */
.rvwt-l7-hero__location {
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: rgba(255,255,255,.84);
  text-shadow: 0 1px 6px rgba(0,0,0,.4);
}
.rvwt-l7-hero__location svg { color: rgba(255,255,255,.65); flex-shrink: 0; }
@media (max-width: 768px) {
  .rvwt-l7-hero { min-height: 460px; }
  .rvwt-l7-hero__inner { padding: calc(var(--header-height, 80px) + 3rem) 1.5rem 2.5rem; }
  .rvwt-l7-hero__title { font-size: clamp(2rem, 6.5vw, 3.2rem) !important; }
  .rvwt-l7-hero__subheading { font-size: 13px; }
}
@media (max-width: 480px) {
  .rvwt-l7-hero { min-height: 360px; }
  .rvwt-l7-hero__subheading { font-size: 12px; letter-spacing: .09em; }
}

/* Amenity strip */
.rvwt-l7-amenity-strip {
  background: #1e2d1e;
  padding: 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.rvwt-l7-amenity-strip__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0;
}
.rvwt-l7-amenity-strip__item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding: 24px 32px;
  color: #fff;
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-align: left;
  border-right: 1px solid rgba(255,255,255,.12);
  flex: 1;
  min-width: 130px;
}
.rvwt-l7-amenity-strip__item:last-child { border-right: none; }
.rvwt-l7-amenity-strip__item i { font-size: 24px; color: #fff; flex-shrink: 0; }

/* 3-column content section */
/* ── Visit + Events card section ── */
.rvwt-l7-ve-section {
  background-color: #b4b39e;
  background-image:
    repeating-linear-gradient(0deg,   transparent, transparent 5px, rgba(255,255,255,.04) 5px, rgba(255,255,255,.04) 6px),
    repeating-linear-gradient(90deg,  transparent, transparent 5px, rgba(255,255,255,.04) 5px, rgba(255,255,255,.04) 6px);
  padding: 90px clamp(1rem, 4vw, 4rem) 64px;
}
.rvwt-l7-ve-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: stretch;
}

/* ── Shared card base — both cards identical structure ── */
.rvwt-l7-ve-card {
  border-radius: 20px;
  background: #f7f2ea;
  border: 1.5px solid rgba(4,58,33,0.18);
  box-shadow: 0 8px 36px rgba(0,0,0,.16);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: visible;   /* badge floats above card */
  padding: 0;
  margin-top: 36px;    /* space for the floating badge */
}

/* ════════════════════════════════════
   PLAN YOUR VISIT CARD
════════════════════════════════════ */

/* "R" badge floating above card */
.rvwt-l7-ve-card:not(.rvwt-l7-ve-card--events)::before {
  content: 'R';
  position: absolute;
  top: -34px;
  left: 50%;
  transform: translateX(-50%);
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #043a21;
  border: 2px solid #c4a96a;
  box-shadow: 0 0 0 3px #043a21, 0 0 0 6px #c4a96a, 0 4px 18px rgba(0,0,0,.30);
  font-family: 'Lora', Georgia, serif;
  font-size: 26px;
  font-weight: 700;
  font-style: italic;
  color: #f7f2ea;
  line-height: 58px;
  text-align: center;
  z-index: 2;
}

/* Title on ivory background — no dark arch */
.rvwt-l7-ve-card__title {
  background: transparent;
  color: #043a21;
  font-family: var(--font-heading, serif);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
  text-align: center;
  padding: 44px 28px 4px;
  margin: 0;
  border: none;
  position: static;
}
.rvwt-l7-ve-card__title::before { display: none; }
.rvwt-l7-ve-card__title::after {
  content: '';
  display: block;
  width: 80px;
  height: 1px;
  margin: 8px auto 16px;
  background: linear-gradient(to right, transparent, #c4a96a 30%, #c4a96a 70%, transparent);
}

/* Icon rows */
.rvwt-l7-ve-card .rvwt-l7-visit-rows {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  padding: 0 24px;
}
.rvwt-l7-ve-card .rvwt-l7-visit-row {
  margin-bottom: 0;
  padding: 11px 0;
  border-bottom: 1px solid rgba(4,58,33,.10);
  font-size: 14px;
  gap: 12px;
}
.rvwt-l7-ve-card .rvwt-l7-visit-row:last-child { border-bottom: none; }

/* Circular icons — dark green circle via background + box-shadow spread; white stroke icon inside */
.rvwt-l7-ve-card:not(.rvwt-l7-ve-card--events) .rvwt-l7-visit-row svg {
  width: 20px;
  height: 20px;
  min-width: 20px;
  color: #fff;
  fill: none;
  background: #043a21;
  border-radius: 50%;
  box-shadow: 0 0 0 10px #043a21;
  margin: 10px;
  flex-shrink: 0;
}
.rvwt-l7-ve-card:not(.rvwt-l7-ve-card--events) .rvwt-l7-visit-row svg path,
.rvwt-l7-ve-card:not(.rvwt-l7-ve-card--events) .rvwt-l7-visit-row svg circle,
.rvwt-l7-ve-card:not(.rvwt-l7-ve-card--events) .rvwt-l7-visit-row svg rect,
.rvwt-l7-ve-card:not(.rvwt-l7-ve-card--events) .rvwt-l7-visit-row svg line,
.rvwt-l7-ve-card:not(.rvwt-l7-ve-card--events) .rvwt-l7-visit-row svg polyline {
  fill: none;
  stroke: #fff;
}

/* GET DIRECTIONS — smaller, centered, auto-width */
.rvwt-l7-ve-card .rvwt-l7-solid-btn,
.rvwt-l7-ve-card .rvwt-l7-outline-btn {
  margin: 20px auto 28px;
  width: auto;
  padding: 10px 28px;
}

/* ════════════════════════════════════
   UPCOMING EVENTS CARD
════════════════════════════════════ */
.rvwt-l7-ve-card--events {
  background: #f7f2ea;
  overflow: visible;
  padding: 0;
}

.rvwt-l7-ve-card--events .rvwt-cal-events {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
}

/* Calendar icon — floating badge, box-shadow spread keeps icon smaller inside circle */
.rvwt-l7-ve-card--events .rvwt-cal-events__title svg {
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  background: #043a21;
  color: #c4a96a;
  border-radius: 50%;
  border: none;
  /* 14px spread = 30px icon + 28px = 58px visual circle; gold rings via extra layers */
  box-shadow:
    0 0 0 14px #043a21,
    0 0 0 16px #c4a96a,
    0 0 0 19px #043a21,
    0 0 0 22px #c4a96a,
    0 4px 18px rgba(0,0,0,.30);
  width: 30px;
  height: 30px;
  z-index: 2;
  flex-shrink: 0;
}
.rvwt-l7-ve-card--events .rvwt-cal-events__title svg path,
.rvwt-l7-ve-card--events .rvwt-cal-events__title svg rect,
.rvwt-l7-ve-card--events .rvwt-cal-events__title svg circle,
.rvwt-l7-ve-card--events .rvwt-cal-events__title svg line,
.rvwt-l7-ve-card--events .rvwt-cal-events__title svg polyline {
  fill: none;
  stroke: #c4a96a;
}

/* Events title — ivory bg, dark green text, matches visit card style */
.rvwt-l7-ve-card--events .rvwt-cal-events__title {
  color: #043a21;
  background: transparent;
  display: block;
  text-align: center;
  border: none;
  padding: 44px 28px 4px;
  margin: 0 0 0;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .22em;
  position: static;
}
.rvwt-l7-ve-card--events .rvwt-cal-events__title::after {
  content: '';
  display: block;
  width: 80px;
  height: 1px;
  margin: 8px auto 16px;
  background: linear-gradient(to right, transparent, #c4a96a 30%, #c4a96a 70%, transparent);
}

/* Events list & footer */
.rvwt-l7-ve-card--events .rvwt-cal-events__list { padding: 0 24px; }
.rvwt-l7-ve-card--events .rvwt-cal-events__footer {
  padding: 0 24px 28px;
  text-align: center;
  border-color: rgba(4,58,33,.15);
  margin-top: auto;
}
.rvwt-l7-ve-card--events .rvwt-cal-events__footer a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 28px;
  background: #043a21;
  border: 2px solid #043a21;
  border-radius: 100px;
  color: #fff;
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease;
}
.rvwt-l7-ve-card--events .rvwt-cal-events__footer a:hover {
  background: #0a2a14;
  border-color: #0a2a14;
  color: #fff;
  text-decoration: none;
}

/* Date boxes */
.rvwt-l7-ve-card--events .rvwt-cal-events__date {
  background: rgba(4,58,33,.07);
  border: 1px solid rgba(4,58,33,.18);
  color: #043a21;
  border-radius: 6px;
  min-width: 48px;
  text-align: center;
}
.rvwt-l7-ve-card--events .rvwt-cal-events__date-month { color: #5a7a5a; font-size: 9px; }
.rvwt-l7-ve-card--events .rvwt-cal-events__date-day  { color: #043a21; }
.rvwt-l7-ve-card--events .rvwt-cal-events__name  { color: #1a2a14; }
.rvwt-l7-ve-card--events .rvwt-cal-events__time  { color: #666; }
.rvwt-l7-ve-card--events .rvwt-cal-events__item  { border-color: rgba(4,58,33,.12); padding: 10px 0; }
.rvwt-l7-ve-card--events .rvwt-cal-events__link  { color: #043a21; font-size: 12px; }
.rvwt-l7-ve-card--events .rvwt-cal-events__link:hover { text-decoration: underline; }

@media (max-width: 860px) {
  .rvwt-l7-ve-inner { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .rvwt-l7-ve-section { padding: 70px 16px 40px; }
}


.rvwt-l7-content-wrap {
  background: #faf8f5;
  padding: 56px clamp(1rem, 3vw, 3rem);
  border-bottom: 1px solid #e8e0d4;
}
.rvwt-l7-content-inner {
  max-width: none;
  display: grid;
  grid-template-columns: 1fr 2.5fr 1fr;
  gap: 40px;
  align-items: start;
}
.rvwt-l7-col { }

/* Section headings */
.rvwt-l7-section-heading {
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--color-hunter, #2d4a2d);
  margin: 0 0 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--color-hunter, #2d4a2d);
}

/* Our Story column */
.rvwt-l7-story__text {
  font-size: 14px;
  line-height: 1.75;
  color: #444;
  margin-bottom: 20px;
}
.rvwt-l7-story__text p { margin: 0 0 12px; }
.rvwt-l7-story__text p:last-child { margin: 0; }

/* Buttons */
.rvwt-l7-outline-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border: 2px solid var(--color-hunter, #2d4a2d);
  border-radius: 3px;
  color: var(--color-hunter, #2d4a2d);
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  background: transparent;
  transition: background .2s ease, color .2s ease;
}
.rvwt-l7-outline-btn:hover {
  background: var(--color-hunter, #2d4a2d);
  color: #fff;
}
.rvwt-l7-outline-btn--center { display: block; width: fit-content; margin: 20px auto 0; text-align: center; }
.rvwt-l7-solid-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 12px 22px;
  background: var(--color-hunter, #043a21);
  border: 2px solid var(--color-hunter, #043a21);
  border-radius: 100px;
  color: #fff;
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease;
  margin-top: 20px;
  width: 100%;
  justify-content: center;
}
.rvwt-l7-solid-btn:hover { background: #0a2a14; border-color: #0a2a14; color: #fff; }

/* Wines column — vertical dividers on both sides */
.rvwt-l7-col--wines {
  border-left: 1px solid #ddd5c8;
  border-right: 1px solid #ddd5c8;
  padding-left: 40px;
  padding-right: 40px;
}

/* Ornamental "Featured Wines" heading — lines + inner arrows */
.rvwt-l7-section-heading--wines {
  display: flex;
  align-items: center;
  gap: 0;
  border-bottom: none;
  padding-bottom: 20px;
  white-space: nowrap;
}
.rvwt-l7-section-heading--wines::before,
.rvwt-l7-section-heading--wines::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #c4b49a;
}
/* Diamond ornaments where lines meet the text */
.rvwt-l7-wines-htxt::before {
  content: '\25C6';
  color: #c4b49a;
  font-weight: 400;
  font-size: 9px;
  margin: 0 10px 0 8px;
  vertical-align: middle;
}
.rvwt-l7-wines-htxt::after {
  content: '\25C6';
  color: #c4b49a;
  font-weight: 400;
  font-size: 9px;
  margin: 0 8px 0 10px;
  vertical-align: middle;
}

/* Featured wines grid */
.rvwt-l7-wine-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  margin-bottom: 4px;
}
.rvwt-l7-wine-card { text-align: center; }
.rvwt-l7-wine-card__img-wrap {
  height: 220px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin-bottom: 10px;
}
.rvwt-l7-wine-card__img-wrap img {
  max-width: 100%;
  max-height: 220px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}
.rvwt-l7-wine-card__img-wrap--placeholder {
  border: 1px dashed #ccc;
  border-radius: 4px;
  color: #ccc;
  font-size: 28px;
}
.rvwt-l7-wine-card__name {
  font-family: var(--font-heading, serif);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-hunter, #2d4a2d);
  margin: 0 0 2px;
}
.rvwt-l7-wine-card__subname {
  font-size: 9px;
  color: #888;
  margin: 0;
  font-style: italic;
}

/* Plan Your Visit column */
.rvwt-l7-visit-rows { margin-bottom: 4px; }
.rvwt-l7-visit-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: #444;
  margin-bottom: 12px;
  line-height: 1.5;
}
.rvwt-l7-visit-row svg { flex-shrink: 0; margin-top: 2px; color: var(--color-hunter, #2d4a2d); }
.rvwt-l7-visit-row a { color: inherit; text-decoration: none; }
.rvwt-l7-visit-row a:hover { color: var(--color-hunter, #2d4a2d); }

/* Upcoming Events in sidebar (inside Plan Your Visit column) */
.rvwt-l7-sidebar-events { margin-top: 24px; }
.rvwt-l7-sidebar-events .rvwt-cal-events {
  background: none;
  padding: 0;
  border-top: 1px solid #e0d8cc;
  margin-top: 0;
}
.rvwt-l7-sidebar-events .rvwt-cal-events__title {
  font-size: 11px;
  letter-spacing: .14em;
  padding: 14px 0 10px;
  margin: 0;
  border-bottom: none;
}
.rvwt-l7-sidebar-events .rvwt-cal-events__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.rvwt-l7-sidebar-events .rvwt-sl-ec-tile {
  padding: 10px 0;
  border-bottom: 1px solid #ede8e0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.rvwt-l7-sidebar-events .rvwt-sl-ec-tile:last-child { border-bottom: none; }
.rvwt-l7-sidebar-events .rvwt-sl-ec-tile__date { font-size: 10px; }
.rvwt-l7-sidebar-events .rvwt-sl-ec-tile__name { font-size: 12px; }
.rvwt-l7-sidebar-events .rvwt-cal-events__more { font-size: 11px; margin-top: 8px; }

/* ── Layout 7 Responsive ──────────────────────────────────────────────── */

/* Tablet landscape / small laptop (≤1100px) */
@media (max-width: 1100px) {
  .rvwt-l7-content-inner { gap: 24px; }
}

/* Tablet (≤1024px): wines full-width on top, story + visit side-by-side below */
@media (max-width: 1024px) {
  .rvwt-l7-content-inner { grid-template-columns: 1fr 1fr; gap: 24px; }
  .rvwt-l7-col--wines {
    grid-column: 1 / -1;
    order: -1;
    border-left: none;
    border-right: none;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    padding-bottom: 28px;
    border-bottom: 1px solid #ddd5c8;
  }
  .rvwt-l7-wine-grid { grid-template-columns: repeat(4, 1fr); gap: 16px; }
  .rvwt-l7-content-wrap { padding: 40px clamp(1rem, 3vw, 2.5rem); }
}

/* Tablet portrait (≤768px): amenity strip wraps to 3-per-row */
@media (max-width: 768px) {
  .rvwt-l7-content-inner { grid-template-columns: 1fr 1fr; gap: 20px; }
  .rvwt-l7-wine-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .rvwt-l7-wine-card__img-wrap { height: 180px; }
  .rvwt-l7-section-heading--wines { white-space: normal; }

  /* Amenity strip: wrap into rows of 3 */
  .rvwt-l7-amenity-strip__inner { flex-wrap: wrap; max-width: none; padding: 0; }
  .rvwt-l7-amenity-strip__item {
    flex: 1 1 33.33%;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 18px 12px;
    font-size: 10px;
    gap: 7px;
    border-right: 1px solid rgba(255,255,255,.12);
    border-bottom: 1px solid rgba(255,255,255,.12);
  }
  .rvwt-l7-amenity-strip__item:last-child { border-right: none; }
  .rvwt-l7-amenity-strip__item i { font-size: 20px; }
}

/* Phablet / large mobile (≤600px): fully single-column */
@media (max-width: 600px) {
  .rvwt-l7-content-inner { grid-template-columns: 1fr; gap: 28px; }
  .rvwt-l7-col--wines { padding-bottom: 20px; }
  .rvwt-l7-wine-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .rvwt-l7-wine-card__img-wrap { height: 150px; }
  .rvwt-l7-content-wrap { padding: 32px 16px; }

  /* Amenity strip: 2 per row */
  .rvwt-l7-amenity-strip__item { flex: 1 1 50%; padding: 16px 10px; font-size: 9px; gap: 6px; }
  .rvwt-l7-amenity-strip__item i { font-size: 18px; }

  /* Visit rows stack comfortably */
  .rvwt-l7-visit-row { font-size: 13px; }

  /* Gallery: tighter on mobile */
  body.rvwt-dl-7 .rvwt-ldg-gallery-hero .rvwt-ldg-gallery { padding-left: 16px; padding-right: 16px; }
  .rvwt-ldg-gallery-hero .rvwt-ldg-gallery__grid { grid-template-columns: repeat(2, 1fr); }
}

/* Small mobile (≤400px) */
@media (max-width: 400px) {
  .rvwt-l7-amenity-strip__item { padding: 14px 8px; font-size: 8px; }
  .rvwt-l7-amenity-strip__item i { font-size: 16px; }
  .rvwt-l7-wine-card__img-wrap { height: 130px; }
}

/* =========================================================================
   LAYOUT 7 — NEW SECTIONS (Hero Split · Wine Carousel · Photo Ribbon · PSS)
   ========================================================================= */

/* ── Hero Split (Layout 7) ──────────────────────────────────────────────
   LEFT : Warm Ivory story panel blending into photo
   RIGHT: winery photo with prev / next arrows, no auto-play
   ────────────────────────────────────────────────────────────────────── */
.rvwt-l7-hero-split {
  display: grid;
  grid-template-columns: 5fr 7fr;
  height: 740px;
  margin-top: var(--header-height, 80px);
  overflow: hidden;
}

/* ── LEFT: Story panel — Warm Ivory brand background ────── */
.rvwt-l7-hero-split__story {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f7f2ea;
  padding: 44px clamp(1.5rem, 4vw, 4.5rem) 36px clamp(1.5rem, 4vw, 4rem);
  position: relative;
  z-index: 1;
}
.rvwt-l7-hero-split__story-inner { max-width: 440px; margin: 0 auto; width: 100%; }

/* ── Premium Name Display: Option 3 — Dark Banner Strip ──────────────────── */
.rvwt-pnd-banner {
  background: #1a3320;
  border-bottom: 1px solid rgba(212, 175, 55, 0.3);
}
.rvwt-pnd-banner__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.rvwt-pnd-banner__left {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}
.rvwt-pnd-banner__name {
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  font-family: var(--font-heading, Georgia, serif);
  line-height: 1.2;
}
.rvwt-pnd-banner__loc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.5px;
}
.rvwt-pnd-banner__badge {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #d4af37;
  border: 1px solid rgba(212, 175, 55, 0.5);
  background: rgba(212, 175, 55, 0.1);
  padding: 5px 14px;
  border-radius: 20px;
  white-space: nowrap;
}

/* ── Premium Name Display: Option 4 — Photo Gradient Overlay ─────────────── */
.rvwt-l7-hero-split__slider { position: relative; }
.rvwt-pnd-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(10, 30, 15, 0.92) 0%, rgba(10, 30, 15, 0.5) 60%, transparent 100%);
  padding: 48px 32px 24px;
  z-index: 10;
  text-align: center;
  pointer-events: none;
}
.rvwt-pnd-overlay__badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(212, 175, 55, 0.2);
  border: 1px solid rgba(212, 175, 55, 0.55);
  color: #d4af37;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 10px;
}
.rvwt-pnd-overlay__name {
  display: block;
  font-size: 32px;
  font-weight: 800;
  color: #fff;
  font-family: var(--font-heading, Georgia, serif);
  line-height: 1.1;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}
.rvwt-pnd-overlay__loc {
  display: block;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.65);
  margin-top: 6px;
  letter-spacing: 0.5px;
}

/* ── Premium Name Display: Option 5 — Sticky Bar ─────────────────────────── */
.rvwt-pnd-sticky {
  position: sticky;
  top: 0;
  z-index: 400;
  background: #1a3320;
  border-bottom: 2px solid rgba(212, 175, 55, 0.45);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
}
.rvwt-pnd-sticky__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.rvwt-pnd-sticky__left {
  display: flex;
  align-items: center;
  gap: 10px;
  overflow: hidden;
}
.rvwt-pnd-sticky__name {
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  font-family: var(--font-heading, Georgia, serif);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rvwt-pnd-sticky__sep {
  color: rgba(212, 175, 55, 0.5);
  flex-shrink: 0;
}
.rvwt-pnd-sticky__loc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rvwt-pnd-sticky__right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.rvwt-pnd-sticky__btn {
  font-size: 12px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 6px;
  text-decoration: none;
  letter-spacing: 0.3px;
  color: #d4af37;
  border: 1px solid rgba(212, 175, 55, 0.5);
  background: rgba(212, 175, 55, 0.1);
  transition: background 0.15s;
}
.rvwt-pnd-sticky__btn--primary {
  background: #d4af37;
  color: #1a3320;
  border-color: #d4af37;
}
.rvwt-pnd-sticky__btn:hover { opacity: 0.85; }
.rvwt-pnd-sticky__url-plain { font-size: 12px; color: #d4af37; text-decoration: underline; text-underline-offset: 2px; word-break: break-all; }
.rvwt-pnd-sticky__url-plain:hover { opacity: 0.8; }
@media (max-width: 600px) {
  .rvwt-pnd-sticky__right { display: none; }
  .rvwt-pnd-sticky__loc   { display: none; }
}

/* Winery name block — shown when premium_name_display = story_panel */
.rvwt-l7-winery-name {
  margin-bottom: 20px;
}
.rvwt-l7-winery-name__cat {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #6f895c;
  font-family: var(--font-body, sans-serif);
  margin-bottom: 10px;
}
.rvwt-l7-winery-name__title {
  display: block;
  font-size: clamp(2.8rem, 4.8vw, 4rem);
  font-weight: 800;
  color: #1a3320;
  font-family: var(--font-heading, Georgia, serif);
  line-height: 1.05;
  letter-spacing: -0.5px;
  margin-bottom: 10px;
}
.rvwt-l7-winery-name__loc {
  font-size: 14px;
  color: #888;
  margin: 0 0 16px;
  letter-spacing: 0.3px;
}

/* When winery name is shown, shrink the story subheading to secondary role */
.rvwt-l7-hero-split__story--named .rvwt-l7-hero-split__heading {
  font-size: clamp(1.25rem, 2.2vw, 1.65rem) !important;
  font-weight: 600;
  color: #4a6741;
  letter-spacing: 0;
  margin-bottom: 12px;
  line-height: 1.4;
}
.rvwt-l7-hero-split__story--named .rvwt-l7-hero-split__story-text {
  font-size: 16px;
  line-height: 1.7;
}
.rvwt-l7-hero-split__story--named .rvwt-l7-story-btn {
  margin-top: 18px;
}

/* "OUR STORY" eyebrow */
.rvwt-l7-hero-split__eyebrow {
  font-family: var(--font-heading, serif);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--color-hunter, #2d4a2d);
  margin: 0 0 18px;
  display: block;
}

/* Decorative rule below eyebrow */
.rvwt-l7-hero-split__eyebrow::after {
  content: '';
  display: block;
  width: 36px;
  height: 2px;
  background: #c4b49a;
  margin-top: 10px;
}

/* Large serif heading */
.rvwt-l7-hero-split__heading {
  font-family: 'Lora', Georgia, serif;
  font-size: clamp(1.8rem, 3vw, 3rem);
  font-weight: 700;
  color: #1a2a14;
  line-height: 1.15;
  letter-spacing: -.01em;
  margin: 0 0 20px;
  text-transform: none;
}

/* Body text */
.rvwt-l7-hero-split__story-text {
  font-size: 17px;
  line-height: 1.85;
  color: #4a4a3a;
  margin-bottom: 32px;
}
.rvwt-l7-hero-split__story-text p { margin: 0 0 12px; }
.rvwt-l7-hero-split__story-text p:last-child { margin: 0; }

/* CTA button — dark hunter green filled */
.rvwt-l7-story-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  background: var(--color-hunter, #2d4a2d);
  border: none;
  color: #fff;
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 2px;
  transition: background .2s;
}
.rvwt-l7-story-btn:hover { background: #1e3319; color: #fff; }

/* ── RIGHT: Photo slider — blends into ivory via left gradient ─ */
.rvwt-l7-hero-split__slider {
  position: relative;
  background: #f7f2ea;
  overflow: hidden;
  min-height: 360px;
}

/* Gradient fade that blends image edge into Warm Ivory — top 1/3, naturally dissolving */
.rvwt-l7-hero-split__slider::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 10%;
  background: linear-gradient(
    to right,
    #f7f2ea 0%,
    rgba(247,242,234,0.5) 40%,
    transparent 100%
  );
  mask-image: linear-gradient(to bottom, black 0%, black 15%, transparent 40%);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 15%, transparent 40%);
  z-index: 4;
  pointer-events: none;
}

.rvwt-l7-slider__track {
  display: grid;
  height: 100%;
  grid-template-rows: 100%;
}
.rvwt-l7-slider__slide {
  grid-area: 1 / 1;
  opacity: 0;
  transition: opacity 0.6s ease;
  min-height: 0;
  overflow: hidden;
}
.rvwt-l7-slider__slide.is-active { opacity: 1; }
.rvwt-l7-slider__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.rvwt-l7-hero-split__no-img {
  height: 100%;
  min-height: 320px;
  background: #d6cfc4;
}

/* Prev / Next arrows */
.rvwt-l7-slider__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,.88);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #222;
  box-shadow: 0 2px 12px rgba(0,0,0,.22);
  transition: background .18s, transform .18s;
}
.rvwt-l7-slider__arrow:hover {
  background: #fff;
  transform: translateY(-50%) scale(1.08);
}
.rvwt-l7-slider__arrow--prev { left: 16px; }
.rvwt-l7-slider__arrow--next { right: 16px; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 960px) {
  .rvwt-l7-hero-split { grid-template-columns: 1fr; height: auto; }
  .rvwt-l7-hero-split__slider { order: -1; height: 56vw; }
  .rvwt-l7-hero-split__slider::before { display: none; }
  .rvwt-l7-slider__track { height: 100%; }
  .rvwt-l7-hero-split__no-img { min-height: 56vw; }
  .rvwt-l7-hero-split__story { padding: 40px 36px; }
  .rvwt-l7-hero-split__story-inner { max-width: 600px; }
}
@media (max-width: 600px) {
  .rvwt-l7-hero-split__slider { height: 72vw; }
  .rvwt-l7-hero-split__no-img { min-height: 72vw; }
  .rvwt-l7-hero-split__story { padding: 32px 20px; }
  .rvwt-l7-hero-split__heading { font-size: clamp(1.6rem, 6vw, 2rem); }
  .rvwt-l7-slider__arrow { width: 36px; height: 36px; }
}

/* ── Visit-only grid (no story col, no wines col) ─────────────────────── */
.rvwt-l7-content-inner--visit-only {
  grid-template-columns: 1fr;
  max-width: 760px;
  margin: 0 auto;
}

/* ── VARIETALS Carousel Section ────────────────────────────────── */
/* ═══════════════════════════════════════════════════════════════════════
   L7: Explore Our Collection — image-belt conveyor carousel v2
   ═══════════════════════════════════════════════════════════════════════ */
.rvwt-l7-wines-section {
  background: radial-gradient(140% 90% at 50% -8%, #5A5955 0%, #4D4C49 45%, #3B3A38 100%);
  padding: 76px 0 68px;
  overflow: hidden;
  position: relative;
  isolation: isolate;
}

/* SVG grain texture overlay — coarse base layer (stone/concrete look) */
.rvwt-l7-wc-grain {
  position: absolute;
  inset: 0;
  pointer-events: none;
  mix-blend-mode: soft-light;
  opacity: 0.88;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.62' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.95'/%3E%3C/svg%3E");
  background-size: 320px 320px;
}

/* Fine grain top-coat for surface detail */
.rvwt-l7-wc-grain::after {
  content: '';
  position: absolute;
  inset: 0;
  mix-blend-mode: overlay;
  opacity: 0.55;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.88' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n2)' opacity='0.9'/%3E%3C/svg%3E");
  background-size: 180px 180px;
}

/* Radial vignette */
.rvwt-l7-wc-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(130% 120% at 50% 38%, transparent 48%, rgba(15,14,12,0.65) 100%);
}

/* Section heading */
.rvwt-l7-wines-section__header {
  position: relative;
  text-align: center;
  z-index: 3;
  padding: 0 clamp(40px, 5vw, 100px);
  max-width: 1600px;
  margin: 0 auto 14px;
}

/* Accent kicker row — ——[ WINERY NAME ]—— */
.rvwt-l7-wc-kicker-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-bottom: 26px;
}
.rvwt-l7-wc-kicker {
  font-family: 'EB Garamond', 'Lora', Georgia, serif;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.42em;
  color: #C7A968;
  text-transform: uppercase;
  white-space: nowrap;
  padding-left: 0.42em;
}
.rvwt-l7-wc-kicker-line {
  height: 1px;
  width: clamp(48px, 7vw, 96px);
  flex-shrink: 0;
}
.rvwt-l7-wc-kicker-line--left  { background: linear-gradient(90deg, transparent, #B89A5A); }
.rvwt-l7-wc-kicker-line--right { background: linear-gradient(90deg, #B89A5A, transparent); }

.rvwt-l7-wines-section__heading {
  display: block;
  font-family: 'Lato', Verdana, Helvetica, Arial, sans-serif;
  font-size: 48px;
  line-height: 1.15;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #F1E7D2;
  margin: 0 0 22px;
  text-shadow: 0 2px 24px rgba(0,0,0,0.35);
}
.rvwt-l7-wines-section__subheading {
  font-family: 'EB Garamond', 'Lora', Georgia, serif;
  font-size: clamp(11px, 1.35vw, 14px);
  letter-spacing: 0.24em;
  color: #C6C0B2;
  text-transform: uppercase;
  font-style: normal;
  margin: 0;
}

/* ── Keyframes ─────────────────────────────────────────────────────── */
@keyframes rvwt-wc-marquee {
  from { transform: translate3d(0,0,0); }
  to   { transform: translate3d(-50%,0,0); }
}
@keyframes rvwt-wc-spin-ccw {
  to { transform: rotate(-360deg); }
}

/* ── Stage ─────────────────────────────────────────────────────────── */
.rvwt-l7-wc-interactive {
  position: relative;
}
.rvwt-l7-wc-stage {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 392px;
  margin-top: clamp(18px, 3vw, 48px);
}

/* Pause track + wheels on hover; CTA footer stays live */
.rvwt-l7-wc-interactive:hover .rvwt-l7-wc-track,
.rvwt-l7-wc-interactive:hover .rvwt-l7-wc-wheel {
  animation-play-state: paused;
}

/* Grounding shadow under belt */
.rvwt-l7-wc-ground-shadow {
  position: absolute;
  left: 0; right: 0;
  top: 298px;
  height: 46px;
  z-index: 1;
  background: radial-gradient(80% 100% at 50% 0%, rgba(8,5,2,0.5) 0, transparent 72%);
  filter: blur(6px);
  pointer-events: none;
}

/* Edge-fade mask — extends 40px above stage so hover translateY(-16px) stays within
   mask-clip bounds and the bottle cap never gets cut off */
.rvwt-l7-wc-mask {
  position: absolute;
  top: -40px; right: 0; bottom: 0; left: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 clamp(82px,8vw,172px), #000 calc(100% - clamp(82px,8vw,172px)), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 clamp(82px,8vw,172px), #000 calc(100% - clamp(82px,8vw,172px)), transparent 100%);
}

/* Unified bottle + belt track */
.rvwt-l7-wc-track {
  position: absolute;
  left: 0; top: 40px; bottom: 0;
  display: flex;
  will-change: transform;
  animation: rvwt-wc-marquee 28s linear infinite;
}

/* Each cell: 186px wide × full stage height */
.rvwt-l7-wc-cell {
  position: relative;
  flex: none;
  width: 186px;
  height: 100%;
}

/* Wooden belt tile image — sits at the conveyor band position */
.rvwt-l7-wc-belt-tile {
  position: absolute;
  left: 0; right: 0;
  top: 122px;
  height: 188px;
  background: url('images/belt-tile.png') center center / 186px 188px no-repeat;
  z-index: 1;
}

/* Iron bolt batten — straddles the left seam of each cell */
.rvwt-l7-wc-batten {
  position: absolute;
  left: 0;
  top: 204px;
  transform: translateX(-50%);
  width: 46px;
  height: 106px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-evenly;
  padding: 13px 0;
  background: linear-gradient(90deg, transparent, rgba(58,42,28,0.3) 22%, rgba(24,16,9,0.44) 50%, rgba(58,42,28,0.3) 78%, transparent);
  border-radius: 3px;
  box-shadow: inset 0 0 9px rgba(0,0,0,0.34);
}
.rvwt-l7-wc-batten__bolt {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 30%, #a68d6e, #3a2c1e 55%, #120c05);
  box-shadow: 0 1px 2px rgba(0,0,0,0.55), inset 0 -1px 1px rgba(0,0,0,0.45);
}

/* Bottle area — fills from top down into the belt bay */
.rvwt-l7-wc-bottle-wrap {
  position: absolute;
  left: 0; right: 0;
  top: 0; bottom: 157px;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

/* Soft bottle-base shadow on the belt surface */
.rvwt-l7-wc-bottle-shadow {
  position: absolute;
  left: 50%; bottom: 0;
  transform: translateX(-50%);
  width: 78%; height: 20px;
  background: radial-gradient(ellipse 50% 50% at 50% 50%, rgba(10,6,3,0.62) 0, rgba(10,6,3,0.3) 44%, transparent 72%);
  filter: blur(2px);
  z-index: 1;
  pointer-events: none;
}

.rvwt-l7-wc-bottle {
  position: relative;
  z-index: 2;
  max-height: 100%;
  max-width: 90%;
  width: auto;
  object-fit: contain;
  object-position: bottom center;
  filter: drop-shadow(0 8px 10px rgba(10,7,3,0.4));
  transition: transform .4s cubic-bezier(.22,1,.36,1), filter .4s ease;
  cursor: pointer;
}
.rvwt-l7-wc-cell:hover .rvwt-l7-wc-bottle {
  transform: translateY(-16px) scale(1.04);
  filter: drop-shadow(0 16px 18px rgba(0,0,0,0.45));
}

/* Placeholder slot when no bottle image exists */
.rvwt-l7-wc-bottle--placeholder {
  position: relative;
  z-index: 2;
  width: 44%; max-width: 60px;
  height: 64%; margin-bottom: 6px;
  border: 1px dashed rgba(213,191,138,0.24);
  border-radius: 4px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 8px;
  background: linear-gradient(180deg, rgba(255,255,255,0.012), rgba(255,255,255,0.04));
}
.rvwt-l7-wc-bottle--placeholder span {
  font-family: 'EB Garamond', 'Lora', Georgia, serif;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(213,191,138,0.44);
  text-align: center;
  line-height: 1.35;
}

/* Caption travels with bottle below the belt */
.rvwt-l7-wc-caption {
  position: absolute;
  left: 6px; right: 6px;
  top: 322px;
  z-index: 2;
  text-align: center;
}
.rvwt-l7-wc-caption__name {
  font-family: 'Lato', Verdana, Helvetica, Arial, sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #F1EAD9;
  line-height: 1.2;
  margin: 0;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.rvwt-l7-wc-caption__type {
  margin: 6px 0 0;
  font-family: 'Lora', Verdana, Helvetica, Arial, sans-serif;
  font-size: 10px;
  font-weight: 300;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #F1EAD9;
  line-height: 1.3;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* ── End Wheels (image-based) ──────────────────────────────────────── */
.rvwt-l7-wc-wheel {
  position: absolute;
  z-index: 5;
  bottom: -4px;
  width: clamp(148px, 11vw, 206px);
  height: auto;
  transform-origin: 50% 50%;
  animation: rvwt-wc-spin-ccw 18s linear infinite;
  filter: drop-shadow(0 20px 26px rgba(8,5,2,0.62));
}
.rvwt-l7-wc-wheel {
  bottom: 18px;
}
.rvwt-l7-wc-wheel--left  { left:  clamp(-30px, -1.8vw, 6px); }
.rvwt-l7-wc-wheel--right { right: clamp(-30px, -1.8vw, 6px); }

/* CTA button */
.rvwt-l7-wines-section__footer {
  text-align: center;
  margin-top: clamp(30px, 3.4vw, 52px);
  position: relative;
  z-index: 3;
}
.rvwt-l7-wines-section__cta {
  display: inline-block;
  font-family: 'Lato', Verdana, Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.38em;
  text-transform: uppercase;
  color: #C9A85C;
  padding: 18px 52px;
  border: 1px solid #C9A85C;
  background: transparent;
  text-decoration: none;
  transition: background .35s ease, color .35s ease, border-color .35s ease;
}
.rvwt-l7-wines-section__cta:hover {
  background: rgba(201,168,92,0.12);
  border-color: #D5BF8A;
  color: #D5BF8A;
}

/* ── Responsive: Wine Carousel ─────────────────────────────────────────── */

/* Tablet (≤1024px) — ~79% scale */
@media (max-width: 1024px) {
  .rvwt-l7-wines-section { padding: 52px 0 52px; }
  .rvwt-l7-wc-stage        { height: 310px; margin-top: 52px; }
  .rvwt-l7-wc-cell         { width: 147px; }
  .rvwt-l7-wc-belt-tile    { top: 96px; height: 148px; background-size: 147px 148px; }
  .rvwt-l7-wc-batten       { top: 161px; }
  .rvwt-l7-wc-bottle-wrap  { bottom: 124px; }
  .rvwt-l7-wc-wheel        { bottom: 14px; }
  .rvwt-l7-wc-ground-shadow{ top: 235px; }
  .rvwt-l7-wc-caption      { top: 255px; }
  .rvwt-l7-wc-caption__name{ font-size: 12px; }
  .rvwt-l7-wc-caption__type{ font-size: 9.5px; }
}

/* Large phone / small tablet (≤768px) — ~63% scale */
@media (max-width: 768px) {
  .rvwt-l7-wines-section { padding: 40px 0 44px; }
  .rvwt-l7-wc-stage        { height: 248px; margin-top: 40px; }
  .rvwt-l7-wc-cell         { width: 117px; }
  .rvwt-l7-wc-belt-tile    { top: 77px; height: 118px; background-size: 117px 118px; }
  .rvwt-l7-wc-batten       { top: 129px; width: 36px; height: 84px; }
  .rvwt-l7-wc-batten__bolt { width: 8px; height: 8px; }
  .rvwt-l7-wc-bottle-wrap  { bottom: 99px; }
  .rvwt-l7-wc-wheel        { bottom: 10px; }
  .rvwt-l7-wc-ground-shadow{ top: 188px; }
  .rvwt-l7-wc-caption      { top: 203px; }
  .rvwt-l7-wc-caption__name{ font-size: 11px; }
  .rvwt-l7-wc-caption__type{ font-size: 8.5px; }
  .rvwt-l7-wines-section__footer { margin-top: 24px; }
  .rvwt-l7-wines-section__cta    { font-size: 12px; padding: 14px 32px; }
}

/* Mobile phone (≤480px) — ~52% scale */
@media (max-width: 480px) {
  .rvwt-l7-wines-section { padding: 28px 0 36px; }
  .rvwt-l7-wines-section__heading    { font-size: clamp(1.8rem, 8vw, 2.5rem); }
  .rvwt-l7-wines-section__subheading { font-size: 10px; }
  .rvwt-l7-wc-kicker                 { font-size: 12px; }
  .rvwt-l7-wc-stage        { height: 205px; margin-top: 30px; }
  .rvwt-l7-wc-cell         { width: 97px; }
  .rvwt-l7-wc-belt-tile    { top: 63px; height: 98px; background-size: 97px 98px; }
  .rvwt-l7-wc-batten       { top: 106px; width: 30px; height: 70px; }
  .rvwt-l7-wc-batten__bolt { width: 7px; height: 7px; }
  .rvwt-l7-wc-bottle-wrap  { bottom: 81px; }
  .rvwt-l7-wc-ground-shadow{ top: 155px; }
  .rvwt-l7-wc-caption      { top: 167px; }
  .rvwt-l7-wc-caption__name{ font-size: 10px; }
  .rvwt-l7-wc-caption__type{ font-size: 8px; }
  .rvwt-l7-wc-wheel        { display: none; }
  .rvwt-l7-wines-section__footer { margin-top: 18px; }
  .rvwt-l7-wines-section__cta    { font-size: 11px; padding: 12px 24px; }
}

/* ── Photo Ribbon ─────────────────────────────────────────────────────── */
.rvwt-l7-photo-ribbon {
  overflow: hidden;
  background: var(--color-bg, #E0D8C8);
  padding: 20px 0;
  border-top: 1px solid #ccc5b4;
  border-bottom: 1px solid #ccc5b4;
}
.rvwt-l7-photo-ribbon__track {
  display: flex;
  gap: 14px;
  width: max-content;
  animation: rvwt-ribbon-scroll 44s linear infinite;
  will-change: transform;
}
.rvwt-l7-photo-ribbon:hover .rvwt-l7-photo-ribbon__track {
  animation-play-state: paused;
}
@keyframes rvwt-ribbon-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.rvwt-l7-photo-ribbon__item {
  flex: 0 0 auto;
  width: 230px;
  height: 165px;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
}
.rvwt-l7-photo-ribbon__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.rvwt-l7-photo-ribbon__item:hover img { transform: scale(1.06); }

/* ── Premium Social Section (Events · Instagram · Facebook) ──────────── */
.rvwt-l7-pss {
  background: #b4b39e;
  padding: 0 0 64px;
  position: relative;
}
.rvwt-l7-pss__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 36px;
  align-items: start;
}

/* Follow The Journey — full-width ivory header panel separating it from the cards section */
.rvwt-l7-pss__section-header {
  text-align: center;
  background: #f7f2ea;
  padding: 60px clamp(1rem, 4vw, 4rem) 52px;
  margin: 0 0 48px;
  position: relative;
  box-shadow: 0 4px 24px rgba(0,0,0,.10);
}
/* Gold hairline border at bottom of header banner */
.rvwt-l7-pss__section-header::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 260px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(196,169,106,.6) 20%, rgba(196,169,106,.6) 80%, transparent);
}
/* Top ornament removed — line now sits below the title */
.rvwt-l7-pss__section-header::before { display: none; }
.rvwt-l7-pss__section-title {
  font-family: var(--font-heading, serif);
  font-size: clamp(30px, 4.5vw, 54px);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #043a21;
  margin: 0;
  line-height: 1.1;
}
/* Gold hairline between title and subtitle */
.rvwt-l7-pss__section-title::after {
  content: '';
  display: block;
  width: 200px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(196,169,106,.6) 30%, rgba(196,169,106,.6) 70%, transparent);
  margin: 16px auto 0;
}
.rvwt-l7-pss__section-title::before { display: none; }
.rvwt-l7-pss__section-subtitle {
  margin: 16px auto 0;
  max-width: 560px;
  font-size: 15px;
  line-height: 1.75;
  color: #4a4a3a;
  font-family: var(--font-body, sans-serif);
}
/* ── inner & cards keep their ivory look against dark green ── */
.rvwt-l7-pss__inner {
  padding: 0 clamp(1rem, 4vw, 4rem);
}

/* ── PSS social-only: flex row, centered, fixed-width cards ── */
.rvwt-l7-pss__inner--social-only {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 36px;
  flex-wrap: wrap;
}
.rvwt-l7-pss__inner--social-only > .rvwt-l7-pss__col {
  flex: 0 0 460px;
  max-width: 460px;
  width: 460px;
}

/* Cream card on each social column */
.rvwt-l7-pss__col {
  background: #f7f2ea;
  border-radius: 16px;
  padding: 28px 28px;
  box-shadow: 0 8px 40px rgba(0,0,0,.35);
  border: 1px solid rgba(196,169,106,.25);
}

/* Platform header row (icon + label + handle) */
.rvwt-l7-pss__platform-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--color-hunter, #2d4a2d);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--color-hunter, #2d4a2d);
}
.rvwt-l7-pss__platform-header i { font-size: 18px; }
.rvwt-l7-pss__platform-handle {
  margin-left: auto;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .04em;
  text-transform: none;
  color: #666;
  text-decoration: none;
}
.rvwt-l7-pss__platform-handle:hover { color: var(--color-hunter, #2d4a2d); }

/* Events column — style the existing rvwt-cal-events inside sage bg */
.rvwt-l7-pss__col--events .rvwt-cal-events {
  background: rgba(255,255,255,.12);
  border-radius: 10px;
  padding: 24px;
  border: none;
  backdrop-filter: blur(6px);
}
.rvwt-l7-pss__col--events .rvwt-cal-events__title {
  color: #fff;
  border-color: rgba(255,255,255,.25);
  font-size: 11px;
  letter-spacing: .16em;
}
.rvwt-l7-pss__col--events .rvwt-cal-events__title svg { color: rgba(255,255,255,.6); }
.rvwt-l7-pss__col--events .rvwt-cal-events__item { border-color: rgba(255,255,255,.14); }
.rvwt-l7-pss__col--events .rvwt-cal-events__date {
  background: rgba(255,255,255,.18);
  color: #fff;
  border-radius: 6px;
}
.rvwt-l7-pss__col--events .rvwt-cal-events__date-month { color: rgba(255,255,255,.65); }
.rvwt-l7-pss__col--events .rvwt-cal-events__name { color: #fff; }
.rvwt-l7-pss__col--events .rvwt-cal-events__time { color: rgba(255,255,255,.55); }
.rvwt-l7-pss__col--events .rvwt-cal-events__link { color: rgba(255,255,255,.7); }
.rvwt-l7-pss__col--events .rvwt-cal-events__footer { border-color: rgba(255,255,255,.14); }
.rvwt-l7-pss__col--events .rvwt-cal-events__footer a { color: rgba(255,255,255,.8); }

/* Instagram column — override existing ig-section for sage bg */
.rvwt-l7-pss__col--ig .rvwt-ig-section {
  background: transparent;
  padding: 0;
}
.rvwt-l7-pss__col--ig .rvwt-ig-section__inner { padding: 0; }
.rvwt-l7-pss__col--ig .rvwt-ig-section__header { display: none; }
.rvwt-l7-pss__col--ig .rvwt-ig-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  border-radius: 8px;
  overflow: hidden;
}
.rvwt-l7-pss__col--ig .rvwt-ig-item__img {
  aspect-ratio: 1;
  height: auto;
  border-radius: 0;
}
.rvwt-l7-pss__col--ig .rvwt-ig-section__footer { margin-top: 12px; }
.rvwt-l7-pss__col--ig .rvwt-ig-section__cta {
  border-color: rgba(255,255,255,.5);
  color: #fff;
  font-size: 11px;
}

/* Dummy photo grid (when no real account linked) */
.rvwt-l7-pss__dummy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 14px;
}
.rvwt-l7-pss__dummy-cell {
  aspect-ratio: 1;
  border-radius: 2px;
  transition: transform .3s ease;
}
.rvwt-l7-pss__dummy-cell:hover { transform: scale(1.04); }

/* Follow buttons */
.rvwt-l7-pss__follow-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  border: 2px solid var(--color-hunter, #2d4a2d);
  border-radius: 4px;
  color: var(--color-hunter, #2d4a2d);
  font-family: var(--font-heading, serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
  margin-top: 4px;
}
.rvwt-l7-pss__follow-btn:hover { background: var(--color-hunter, #2d4a2d); color: #fff; }
.rvwt-l7-pss__follow-btn i { font-size: 16px; }

/* Facebook iframe wrapper */
.rvwt-l7-pss__fb-wrap {
  border-radius: 10px;
  overflow: hidden;
  background: rgba(0,0,0,.04);
}
.rvwt-l7-pss__fb-iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 490px;
  border: none;
}

/* Instagram iframe embed inside PSS */
.rvwt-l7-pss__ig-wrap {
  border-radius: 10px;
  overflow: hidden;
  background: rgba(0,0,0,.04);
}
.rvwt-l7-pss__ig-iframe {
  display: block;
  width: 100%;
  height: 490px;
  border: none;
}

/* Responsive */
@media (max-width: 1024px) {
  .rvwt-l7-pss__inner { grid-template-columns: 1fr 1fr; }
  .rvwt-l7-pss__col--events { grid-column: 1 / -1; }
  .rvwt-l7-pss__inner--social-only > .rvwt-l7-pss__col { width: min(460px, calc(50% - 18px)); }
}
@media (max-width: 620px) {
  .rvwt-l7-pss__inner { grid-template-columns: 1fr; }
  .rvwt-l7-pss__inner--social-only > .rvwt-l7-pss__col { width: 100%; }
  .rvwt-l7-pss { padding: 44px 20px; }
  .rvwt-l7-pss__fb-iframe { height: 480px; }
  .rvwt-l7-pss__ig-iframe { height: 520px; }
}

/* ══════════════════════════════════════════════════════════════════
   Plan Your Visit Section (.rvwt-pyvs) — Layout 7 redesign
   ══════════════════════════════════════════════════════════════════ */
.rvwt-pyvs {
  position: relative;
  width: 100%;
  padding: 118px 0 96px;
  background: #8d9b7c;
  overflow: hidden;
}
.rvwt-pyvs__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 40%;
  opacity: 1;
}
.rvwt-pyvs__header {
  position: relative;
  text-align: center;
  margin: 0 0 44px;
}
.rvwt-pyvs__eyebrow {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .38em;
  text-transform: uppercase;
  color: #ecd49a;
  text-shadow: 0 1px 6px rgba(0,0,0,.35);
}
.rvwt-pyvs__heading {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 46px;
  font-weight: 600;
  letter-spacing: .01em;
  margin: 8px 0 0;
  color: #fbf6ea;
  text-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.rvwt-pyvs__rule {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  color: #ecd49a;
}
.rvwt-pyvs__rule-line {
  width: 46px;
  height: 1.5px;
  background: #ecd49a;
  display: block;
}
.rvwt-pyvs__cards {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: .94fr 1.3fr;
  gap: 30px;
  align-items: stretch;
}
.rvwt-pyvs__cards--single {
  grid-template-columns: minmax(0, 520px);
  justify-content: center;
}
.rvwt-pyvs__card {
  position: relative;
  background: #f6f0e2;
  border-radius: 16px;
  box-shadow: 0 28px 60px rgba(20,30,20,.34);
}
.rvwt-pyvs__card-frame {
  position: absolute;
  inset: 13px;
  border: 1px solid #b6904f;
  border-radius: 9px;
  pointer-events: none;
}
.rvwt-pyvs__card--visit {
  padding: 64px 40px 44px;
}
.rvwt-pyvs__emblem {
  position: absolute;
  top: -38px;
  left: 50%;
  transform: translateX(-50%);
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: #173a2a;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(20,30,20,.4);
  border: 2px solid #c8a85c;
}
.rvwt-pyvs__emblem-ring {
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(216,181,106,.55);
  border-radius: 50%;
}
.rvwt-pyvs__emblem-letter {
  position: relative;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 38px;
  font-weight: 700;
  color: #d8b56a;
  line-height: 1;
}
.rvwt-pyvs__card-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  text-align: center;
  font-size: 33px;
  font-weight: 600;
  /*letter-spacing: .3em;*/
  color: #173a2a;
  text-transform: uppercase;
  margin: 0;
}
.rvwt-pyvs__card-rule {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin: 12px 0 34px;
  color: #b6904f;
}
.rvwt-pyvs__card-rule-line {
  width: 38px;
  height: 1px;
  background: #b6904f;
  display: block;
}
.rvwt-pyvs__rows {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.rvwt-pyvs__row {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}
.rvwt-pyvs__row-icon {
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #173a2a;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rvwt-pyvs__row-text {
  font-family: 'Lora', Georgia, serif;
  font-size: 19px;
  line-height: 1.5;
  color: #33402f;
  padding-top: 3px;
}
.rvwt-pyvs__row-text a {
  color: #33402f;
  text-decoration: none;
}
.rvwt-pyvs__row-text a:hover { text-decoration: underline; }
.rvwt-pyvs__directions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 38px;
  background: #173a2a;
  color: #f6f0e2;
  text-decoration: none;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 16px;
  border-radius: 40px;
  transition: background .25s;
}
.rvwt-pyvs__directions:hover { background: #0f2a1d; color: #f6f0e2; }
.rvwt-pyvs__card--events {
  padding: 104px 36px 0;
  display: flex;
  flex-direction: column;
}
.rvwt-pyvs__plaque {
  position: absolute;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
  width: 78%;
  background: #173a2a;
  border-radius: 16px;
  padding: 18px 24px 16px;
  text-align: center;
  box-shadow: 0 12px 26px rgba(20,30,20,.32);
  z-index: 2;
}
.rvwt-pyvs__plaque-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 28px;
  font-weight: 600;
  /*letter-spacing: .3em;*/
  color: #f6f0e2;
  text-transform: uppercase;
  line-height: 1;
}
.rvwt-pyvs__plaque-subtitle {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 13px;
  color: #d8b56a;
  letter-spacing: .12em;
  margin-top: 4px;
}
.rvwt-pyvs__plaque-rule {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}
.rvwt-pyvs__plaque-rule-line {
  width: 30px;
  height: 1px;
  background: #d8b56a;
  opacity: .75;
  display: block;
}
.rvwt-pyvs__events {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.rvwt-pyvs__events--scrollable {
  max-height: 585px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #cdb78a #f5f0e6;
}
.rvwt-pyvs__events--scrollable::-webkit-scrollbar { width: 5px; }
.rvwt-pyvs__events--scrollable::-webkit-scrollbar-track { background: #f5f0e6; border-radius: 4px; }
.rvwt-pyvs__events--scrollable::-webkit-scrollbar-thumb { background: #cdb78a; border-radius: 4px; }
.rvwt-pyvs__event {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 20px 4px;
  border-bottom: 1px solid #e0d6bd;
}
.rvwt-pyvs__event:last-child { border-bottom: none; }
.rvwt-pyvs__event-date {
  flex: none;
  width: 62px;
  text-align: center;
  border: 1.5px solid #cdb78a;
  border-radius: 8px;
  padding: 8px 4px;
  background: #fbf7ec;
}
.rvwt-pyvs__event-month {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .13em;
  color: #b6904f;
  text-transform: uppercase;
}
.rvwt-pyvs__event-day {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 26px;
  font-weight: 600;
  color: #173a2a;
  line-height: 1;
}
.rvwt-pyvs__event-info { flex: 1; }
.rvwt-pyvs__event-name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 19px;
  font-weight: 600;
  color: #243027;
  line-height: 1.3;
  text-decoration: none;
  display: block;
}
.rvwt-pyvs__event-name:hover { color: #173a2a; }
.rvwt-pyvs__event-time {
  font-family: 'Lora', Georgia, serif;
  font-size: 16px;
  color: #7a7060;
  margin-top: 3px;
  display: block;
}
.rvwt-pyvs__event-link {
  flex: none;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: .07em;
  color: #173a2a;
  text-decoration: none;
  white-space: nowrap;
}
.rvwt-pyvs__event-link:hover { color: #b6904f; }
.rvwt-pyvs__events-empty {
  padding: 40px 20px;
  text-align: center;
  color: #7a7060;
  font-family: 'Lora', Georgia, serif;
  font-size: 17px;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rvwt-pyvs__viewall {
  display: block;
  position: relative;
  z-index: 2;
  margin: 8px -36px 0;
  padding: 20px;
  text-align: center;
  background: #173a2a;
  border-radius: 0 0 16px 16px;
  color: #d8b56a;
  text-decoration: none;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: .24em;
  text-transform: uppercase;
  transition: background .25s;
}
.rvwt-pyvs__viewall:hover { background: #0f2a1d; color: #d8b56a; }

/* ── Gallery Ribbon ── */
.rvwt-gallery-ribbon {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
  width: 100%;
  overflow: hidden;
}
.rvwt-gallery-ribbon__item {
  display: block;
  height: 360px;
  overflow: hidden;
}
.rvwt-gallery-ribbon__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
  display: block;
}
.rvwt-gallery-ribbon__item:hover img { transform: scale(1.06); }

@media (max-width: 1024px) {
  .rvwt-pyvs__cards {
    grid-template-columns: 1fr;
    padding: 0 24px;
    gap: 52px;
  }
  .rvwt-pyvs__heading { font-size: 36px; }
  .rvwt-gallery-ribbon { grid-template-columns: repeat(3, 1fr); }
  .rvwt-gallery-ribbon__item:nth-child(n+4) { display: none; }
}
@media (max-width: 640px) {
  .rvwt-pyvs { padding: 80px 0 60px; }
  .rvwt-pyvs__heading { font-size: 28px; }
  .rvwt-pyvs__cards { padding: 0 16px; }
  .rvwt-pyvs__card--visit { padding: 60px 24px 36px; }
  .rvwt-pyvs__card--events { padding: 96px 24px 0; }
  .rvwt-pyvs__viewall { margin: 8px -24px 0; }
  .rvwt-gallery-ribbon { grid-template-columns: repeat(2, 1fr); }
  .rvwt-gallery-ribbon__item:nth-child(n+3) { display: none; }
  .rvwt-gallery-ribbon__item { height: 220px; }
}

/* ── Follow The Journey ── */
.rvwt-ftj {
  background: #8d9b7c;
  padding: 80px 0;
  text-align: center;
}
.rvwt-ftj__header {
  margin: 0 auto 56px;
  max-width: 680px;
  padding: 0 24px;
}
.rvwt-ftj__heading {
  font-family: 'Cormorant Garamond', serif;
  font-size: 46px;
  font-weight: 600;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #15392a;
  margin: 0 0 20px;
  line-height: 1.1;
}
.rvwt-ftj__rule {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 auto 20px;
  max-width: 260px;
}
.rvwt-ftj__rule::before,
.rvwt-ftj__rule::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #8a6a24;
}
.rvwt-ftj__rule-diamond {
  width: 8px;
  height: 8px;
  background: #8a6a24;
  transform: rotate(45deg);
  flex-shrink: 0;
}
.rvwt-ftj__subtitle {
  font-family: 'Lora', serif;
  font-size: 19px;
  color: #1f3326;
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.6;
}
.rvwt-ftj__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 34px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
}
.rvwt-ftj__card {
  background: #f6f0e2;
  border-radius: 16px;
  box-shadow: 0 18px 44px rgba(20,30,20,.16);
  padding: 30px;
  text-align: left;
  display: flex;
  flex-direction: column;
}
.rvwt-ftj__platform-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}
.rvwt-ftj__ig-icon {
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: linear-gradient(45deg, #f9ce34, #ee2a7b 45%, #6228d7);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 20px;
  flex-shrink: 0;
}
.rvwt-ftj__fb-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #1877f2;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 20px;
  flex-shrink: 0;
}
.rvwt-ftj__platform-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 3px;
  color: #173a2a;
}
.rvwt-ftj__platform-handle {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 16px;
  color: #7a7060;
  margin-left: auto;
  text-decoration: none;
}
.rvwt-ftj__platform-handle:hover { color: #173a2a; }
.rvwt-ftj__embed-wrap {
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 0;
  flex: 1;
}
.rvwt-ftj__embed-wrap iframe {
  display: block;
  width: 100%;
  border: 0;
}
.rvwt-ftj__embed-wrap--ig iframe { height: 500px; }
.rvwt-ftj__embed-wrap--fb {
  flex: none;
  height: 500px;
  min-height: 500px;
}
.rvwt-ftj__fb-fallback {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.rvwt-ftj__fb-fallback[hidden] {
  display: none;
}
.rvwt-ftj__fb-event-list {
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.rvwt-ftj__fb-event-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(23, 58, 42, 0.1);
}
.rvwt-ftj__fb-event-item:last-child { border-bottom: none; }
.rvwt-ftj__fb-event-name {
  font-family: 'Playfair Display', serif;
  font-size: 17px;
  font-weight: 600;
  color: #173a2a;
  line-height: 1.25;
}
.rvwt-ftj__fb-event-date {
  font-family: 'Lora', serif;
  font-size: 14px;
  color: #7a7060;
}
.rvwt-ftj__embed-wrap--fb .fb-page,
.rvwt-ftj__embed-wrap--fb .fb_iframe_widget,
.rvwt-ftj__embed-wrap--fb .fb-page > span,
.rvwt-ftj__embed-wrap--fb .fb-page > span > iframe {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
}
.rvwt-ftj__ig-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.rvwt-ftj__ig-cell {
  display: block;
  aspect-ratio: 1;
  border-radius: 8px;
  overflow: hidden;
}
.rvwt-ftj__ig-cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.rvwt-ftj__ig-cell:hover img { transform: scale(1.07); }
.rvwt-ftj__ig-cell--placeholder {
  display: block;
  aspect-ratio: 1;
  border-radius: 8px;
}
.rvwt-ftj__tagline {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 17px;
  color: #4a4438;
  text-align: center;
  margin: 10px 0 16px;
}
.rvwt-ftj__follow-btn {
  display: block;
  text-align: center;
  border-radius: 40px;
  padding: 15px 24px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-decoration: none;
  transition: opacity .2s;
  margin-top: auto;
}
.rvwt-ftj__follow-btn:hover { opacity: .85; }
.rvwt-ftj__follow-btn--ig {
  background: linear-gradient(45deg, #f9ce34, #ee2a7b 45%, #6228d7);
  color: #fff;
}
.rvwt-ftj__follow-btn--fb {
  background: #173a2a;
  color: #f6f0e2;
}
.rvwt-ftj__cover {
  height: 210px;
  border-radius: 10px;
  background-size: cover;
  background-position: center;
  margin-bottom: 22px;
}
.rvwt-ftj__event-eyebrow {
  font-family: 'Cormorant Garamond', serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 3px;
  color: #b6904f;
  text-transform: uppercase;
  margin: 0 0 8px;
}
.rvwt-ftj__event-title {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 600;
  color: #243027;
  margin: 0 0 8px;
  line-height: 1.25;
}
.rvwt-ftj__event-date {
  font-family: 'Lora', serif;
  font-size: 17px;
  color: #4a4438;
  margin: 0 0 22px;
}
.rvwt-ftj__event-desc {
  font-family: 'Lora', serif;
  font-size: 17px;
  line-height: 1.6;
  color: #5e574a;
  margin: 0 0 22px;
}
@media (max-width: 900px) {
  .rvwt-ftj__cards { grid-template-columns: 1fr; }
  .rvwt-ftj__heading { font-size: 36px; }
}
@media (max-width: 640px) {
  .rvwt-ftj { padding: 60px 0; }
  .rvwt-ftj__heading { font-size: 28px; }
  .rvwt-ftj__cards { padding: 0 16px; gap: 24px; }
}

/* ==========================================================================
   Itinerary detail cards  (page-itinerary.php)
   ========================================================================== */
.rvwt-itin-list{max-width:820px;margin:32px auto 0;padding:0 24px;display:flex;flex-direction:column;gap:14px;}
.rvwt-itin-card{display:flex;align-items:stretch;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:8px;overflow:hidden;transition:box-shadow .18s ease;}
.rvwt-itin-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.09);}
.rvwt-itin-card__thumb{flex:0 0 120px;width:120px;overflow:hidden;background:#f0ece6;}
.rvwt-itin-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.rvwt-itin-card__body{flex:1 1 0;min-width:0;padding:16px 14px;}
.rvwt-itin-card__title{font-family:var(--font-heading);font-size:17px;font-weight:600;margin:0 0 4px;line-height:1.3;}
.rvwt-itin-card__title a{color:var(--color-hunter);text-decoration:none;}
.rvwt-itin-card__title a:hover{color:var(--color-wine);}
.rvwt-itin-card__region{font-family:var(--font-heading);font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--color-wine);margin:0 0 8px;}
.rvwt-itin-card__detail{display:flex;align-items:flex-start;gap:5px;font-family:var(--font-body);font-size:13px;color:#666;margin:5px 0 0;line-height:1.4;}
.rvwt-itin-card__detail svg{flex-shrink:0;margin-top:1px;opacity:.5;}
.rvwt-itin-card__detail a{color:inherit;text-decoration:none;}
.rvwt-itin-card__detail a:hover{color:var(--color-wine);}
.rvwt-itin-card__actions{flex:0 0 auto;display:flex;align-items:center;padding:0 14px 0 0;}
@media (max-width:640px){
  .rvwt-itin-list{padding:0 16px;}
  .rvwt-itin-card__thumb{flex:0 0 88px;width:88px;}
  .rvwt-itin-card__title{font-size:15px;}
  .rvwt-itin-card__body{padding:12px 10px;}
}

/* ==========================================================================
   Share toolbar (Print · Email · Copy Link)
   ========================================================================== */
.rvwt-itin-share{flex:0 0 100%;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:12px;}
.rvwt-itin-share__btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1.5px solid rgba(0,0,0,.2);background:transparent;border-radius:20px;font-family:var(--font-heading);font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--color-hunter);cursor:pointer;transition:border-color .15s,color .15s,background .15s;white-space:nowrap;}
.rvwt-itin-share__btn:hover{border-color:var(--color-wine);color:var(--color-wine);}
.rvwt-itin-share__btn:disabled{opacity:.5;cursor:default;}

/* ==========================================================================
   Guest: "email to myself" form
   ========================================================================== */
.rvwt-itin-email-wrap{max-width:820px;margin:24px auto 0;padding:18px 24px;background:#f9f6f2;border:1px solid rgba(0,0,0,.07);border-radius:6px;}
.rvwt-itin-email-wrap__heading{font-family:var(--font-heading);font-size:13px;font-weight:700;letter-spacing:.3px;color:var(--color-hunter);margin:0 0 10px;}
.rvwt-itin-email-form{display:flex;gap:8px;flex-wrap:wrap;}
.rvwt-itin-email-form__input{flex:1 1 200px;padding:8px 13px;border:1.5px solid rgba(0,0,0,.16);border-radius:4px;font-family:var(--font-body);font-size:14px;color:var(--color-hunter);background:#fff;outline:none;transition:border-color .15s;}
.rvwt-itin-email-form__input:focus{border-color:var(--color-wine);}
.rvwt-itin-email-form__btn{flex-shrink:0;padding:8px 18px;background:var(--color-wine);color:#fff;border:none;border-radius:4px;font-family:var(--font-heading);font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;cursor:pointer;transition:opacity .15s;}
.rvwt-itin-email-form__btn:hover{opacity:.85;}
.rvwt-itin-email-form__btn:disabled{opacity:.45;cursor:default;}
.rvwt-itin-email-form__status{margin:8px 0 0;font-family:var(--font-body);font-size:13px;color:var(--color-hunter);}
@media (max-width:640px){
  .rvwt-itin-email-wrap{margin:20px 16px 0;padding:16px;}
}

/* ==========================================================================
   Adventure Planner Layout
   ========================================================================== */

/* ── Container ───────────────────────────────────────────────────────────── */
.rvwt-adventure {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px 60px;
  font-family: inherit;
}

/* ── Header ──────────────────────────────────────────────────────────────── */
.rvwt-adventure__header {
  background: #fff;
  border: 1px solid #e4ede0;
  border-radius: 14px;
  padding: 24px 28px 20px;
  margin-bottom: 24px;
  box-shadow: 0 2px 10px rgba(4,58,33,.05);
}

/* Two-column top row: title+date left, stat pills right */
.rvwt-adventure__header-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.rvwt-adventure__header-left { flex: 1; min-width: 0; }

/* Title */
.rvwt-adventure__title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 22px;
  font-weight: 700;
  color: #043a21;
  margin: 0 0 8px;
  line-height: 1.3;
}
.rvwt-adventure__title-text {
  outline: none;
  border-bottom: 2px solid transparent;
  transition: border-color .15s;
  cursor: default;
}
.rvwt-adventure__title-text[contenteditable="true"] {
  border-bottom-color: #043a21;
  cursor: text;
}
.rvwt-adventure__title-edit {
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: #7a9e88;
  display: flex;
  align-items: center;
  border-radius: 4px;
  transition: color .15s, background .15s;
  flex-shrink: 0;
}
.rvwt-adventure__title-edit:hover { color: #043a21; background: #f0f5ee; }

/* Date + stats row (below title) */
.rvwt-adventure__meta-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #555;
  flex-wrap: wrap;
}
.rvwt-adventure__date {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #043a21;
  font-weight: 500;
}
.rvwt-adventure__meta-sep { color: #bbb; }
.rvwt-adventure__stats { color: #555; }

/* ── Stat bar (full-width, 4 items separated by dividers) ────────────────── */
.rvwt-adventure__stat-bar {
  display: flex;
  align-items: center;
  background: #f5f8f4;
  border: 1px solid #e4ede0;
  border-radius: 10px;
  margin: 16px 0 0;
  overflow: hidden;
}
.rvwt-adventure__stat-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  flex: 1;
}
.rvwt-adventure__stat-item svg { color: #7a9e88; flex-shrink: 0; }
.rvwt-adventure__weather-icon { width: 28px; height: 28px; object-fit: contain; flex-shrink: 0; }
.rvwt-adventure__stat-inner {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.rvwt-adventure__stat-num {
  font-size: 15px;
  font-weight: 700;
  color: #043a21;
  line-height: 1.1;
}
.rvwt-adventure__stat-lbl {
  font-size: 9px;
  color: #888;
  text-transform: uppercase;
  letter-spacing: .5px;
  white-space: nowrap;
}
.rvwt-adventure__stat-sep {
  width: 1px;
  height: 36px;
  background: #e4ede0;
  flex-shrink: 0;
}

/* Toolbar */
.rvwt-adventure__toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid #edf2eb;
}
.rvwt-adventure__toolbar-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border: 1px solid #c5d5bb;
  border-radius: 6px;
  background: #fff;
  font-size: 12px;
  font-weight: 600;
  color: #043a21;
  cursor: pointer;
  transition: background .15s, border-color .15s;
  white-space: nowrap;
}
.rvwt-adventure__toolbar-btn:hover {
  background: #f0f5ee;
  border-color: #043a21;
}

/* ── Share Itinerary dropdown ────────────────────────────────────────────── */
.rvwt-adv-share-wrap {
  position: relative;
  display: inline-flex;
}
.rvwt-adv-share-wrap__chevron {
  margin-left: 2px;
  transition: transform .2s ease;
}
.rvwt-adv-share-wrap[data-open] .rvwt-adv-share-wrap__chevron {
  transform: rotate(180deg);
}
.rvwt-adv-share-wrap[data-open] .rvwt-adv-share-wrap__trigger {
  background: #f0f5ee;
  border-color: #043a21;
}
.rvwt-adv-share-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 190px;
  background: #fff;
  border: 1px solid #e4ede0;
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(0,0,0,.13), 0 2px 6px rgba(0,0,0,.06);
  z-index: 300;
  overflow: hidden;
  animation: rvwt-dd-in .15s ease;
  transform-origin: top right;
}
@keyframes rvwt-dd-in {
  from { opacity: 0; transform: scale(.96) translateY(-6px); }
  to   { opacity: 1; transform: scale(1)  translateY(0); }
}
.rvwt-adv-share-dropdown__item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 12px 18px;
  border: none;
  background: none;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: #1a2e1a;
  cursor: pointer;
  text-align: left;
  transition: background .12s, color .12s;
}
.rvwt-adv-share-dropdown__item:not(:last-child) {
  border-bottom: 1px solid #f0f5ee;
}
.rvwt-adv-share-dropdown__item:hover {
  background: #f5f8f4;
  color: var(--color-wine, #8b1a2e);
}
.rvwt-adv-share-dropdown__item svg {
  flex-shrink: 0;
  color: #7a9e88;
  transition: color .12s;
}
.rvwt-adv-share-dropdown__item:hover svg {
  color: var(--color-wine, #8b1a2e);
}

/* ── Split: timeline + map ───────────────────────────────────────────────── */
.rvwt-adventure__body {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 24px;
  align-items: start;
}
.rvwt-adventure__right-col {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: calc(var(--header-height, 80px) + 16px);
  align-self: start;
}

/* ── Day tab bar ─────────────────────────────────────────────────────────── */
.rvwt-adventure__timeline { display: flex; flex-direction: column; }
.rvwt-adv-tabs {
  display: flex;
  gap: 0;
  background: #f5f8f4;
  border: 1px solid #e4ede0;
  border-radius: 12px 12px 0 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.rvwt-adv-tabs::-webkit-scrollbar { display: none; }
.rvwt-adv-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 14px 28px;
  border: none;
  background: none;
  cursor: pointer;
  border-right: 1px solid #e4ede0;
  flex-shrink: 0;
  transition: background .2s;
  gap: 3px;
  position: relative;
}
.rvwt-adv-tab:last-child { border-right: none; }
.rvwt-adv-tab:not(.rvwt-adv-tab--active):hover { background: #edf2eb; }
.rvwt-adv-tab__num {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .7px;
  color: #888;
  white-space: nowrap;
}
.rvwt-adv-tab__date {
  font-size: 10px;
  color: #bbb;
  white-space: nowrap;
}
.rvwt-adv-tab--active {
  background: #043a21;
  box-shadow: inset 0 -3px 0 rgba(255,255,255,.15);
}
.rvwt-adv-tab--active .rvwt-adv-tab__num { color: #fff; font-weight: 800; }
.rvwt-adv-tab--active .rvwt-adv-tab__date { color: rgba(255,255,255,.65); }

/* ── Tab panels ──────────────────────────────────────────────────────────── */
.rvwt-adv-tab-panel {
  background: #fff;
  border: 1px solid #e4ede0;
  border-top: none;
  border-radius: 0 0 12px 12px;
}
.rvwt-adv-tab-panel[hidden] { display: none; }

/* ── Stop rows container with vertical timeline line ─────────────────────── */
.rvwt-adv-rows {
  position: relative;
  padding: 16px 20px 4px;
}
.rvwt-adv-rows::before {
  content: '';
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: calc(20px + 72px + 10px + 8px);
  width: 2px;
  background: #e4ede0;
  pointer-events: none;
}

/* Day summary strip */
.rvwt-adv-day__summary {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 20px;
  background: #f5f8f4;
  border-top: 1px solid #e4ede0;
  border-radius: 0 0 12px 12px;
  flex-wrap: wrap;
}
.rvwt-adv-day__summary-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: #555;
  font-weight: 500;
}
.rvwt-adv-day__summary-item svg { color: #7a9e88; flex-shrink: 0; }

/* ── Drive row ───────────────────────────────────────────────────────────── */
.rvwt-adv-drive {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px 10px 0;
  background: #f5f8f4;
  border: 1px solid #edf2eb;
  border-radius: 10px;
  margin-bottom: 6px;
}
.rvwt-adv-drive__time {
  width: 72px;
  font-size: 10px;
  font-weight: 600;
  color: #999;
  text-align: right;
  flex-shrink: 0;
  line-height: 1.2;
  padding-left: 4px;
}
.rvwt-adv-drive__connector {
  width: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rvwt-adv-drive__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c5d5bb;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.rvwt-adv-drive__icon-circle {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1.5px solid #7a9e88;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #7a9e88;
  margin-left: 4px;
}
.rvwt-adv-drive__body { flex: 1; min-width: 0; }
.rvwt-adv-drive__dest {
  font-size: 12px;
  font-weight: 600;
  color: #333;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rvwt-adv-drive__stats { font-size: 11px; color: #999; margin-top: 1px; }
.rvwt-adv-drive__map-link {
  width: 30px;
  height: 30px;
  border: 1px solid #e4ede0;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7a9e88;
  text-decoration: none;
  flex-shrink: 0;
  transition: background .15s, border-color .15s;
}
.rvwt-adv-drive__map-link:hover { background: #f0f5ee; border-color: #7a9e88; }

/* ── Stop row ────────────────────────────────────────────────────────────── */
.rvwt-adv-stop {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 14px 14px 0;
  background: #fff;
  border: 1px solid #edf2eb;
  border-radius: 12px;
  margin-bottom: 8px;
  box-shadow: 0 1px 4px rgba(4,58,33,.05);
}
.rvwt-adv-stop:last-child { margin-bottom: 0; }
.rvwt-adv-stop__time {
  width: 72px;
  font-size: 11px;
  font-weight: 700;
  color: #043a21;
  padding-top: 12px;
  flex-shrink: 0;
  text-align: right;
  line-height: 1.2;
}
.rvwt-adv-stop__connector {
  width: 16px;
  padding-top: 12px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.rvwt-adv-stop__dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #043a21;
  flex-shrink: 0;
  margin-top: 1px;
}
.rvwt-adv-stop__dot--hollow {
  background: #fff !important;
  border: 2px solid;
}
.rvwt-adv-stop__icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
  margin-left: 4px;
}
.rvwt-adv-stop__body {
  flex: 1;
  min-width: 0;
}
.rvwt-adv-stop__cat {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .7px;
  text-transform: uppercase;
  margin-bottom: 3px;
}
.rvwt-adv-stop__name {
  margin: 0 0 6px;
  line-height: 1.3;
}
.rvwt-adv-stop__name a {
  font-size: 15px;
  font-weight: 700;
  color: #043a21;
  text-decoration: none;
}
.rvwt-adv-stop__name a:hover { text-decoration: underline; }
.rvwt-adv-stop__loc,
.rvwt-adv-stop__hours,
.rvwt-adv-stop__dur {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #666;
  margin-bottom: 3px;
}
.rvwt-adv-stop__loc svg,
.rvwt-adv-stop__hours svg,
.rvwt-adv-stop__dur svg { color: #7a9e88; flex-shrink: 0; }
.rvwt-adv-stop__warning {
  display: inline-block;
  font-size: 11px;
  color: #8a6000;
  background: #fff8e1;
  border-radius: 4px;
  padding: 2px 8px;
  margin-top: 5px;
}
.rvwt-adv-stop__warning--closed {
  color: #7a2a2a;
  background: #fdecea;
}
.rvwt-adv-stop__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  flex-shrink: 0;
  align-self: stretch;
  padding-top: 0;
}
.rvwt-adv-stop__top-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.rvwt-adv-stop__top-actions .rvwt-fav {
  position: static;
  width: 30px;
  height: 30px;
  border: 1.5px solid #e4ede0;
  border-radius: 50%;
  background: #fff;
  color: #ccc;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: color .15s, border-color .15s, background .15s;
  flex-shrink: 0;
}
.rvwt-adv-stop__top-actions .rvwt-fav svg {
  width: 15px;
  height: 15px;
}
.rvwt-adv-stop__top-actions .rvwt-fav:hover {
  color: #b03070;
  border-color: #e0b0c8;
}
.rvwt-adv-stop__top-actions .rvwt-fav.is-favorite {
  color: #b03070;
  border-color: #e0b0c8;
  background: #fff0f5;
}
/* ── Drag handle ────────────────────────────────────────── */
.rvwt-adv-stop__drag-handle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: #c8d8c0;
  cursor: grab;
  border-radius: 6px;
  flex-shrink: 0;
  transition: color .15s, background .15s;
}
.rvwt-adv-stop__drag-handle:hover {
  color: #7aad6a;
  background: #f0f7ee;
}
.rvwt-adv-stop__drag-handle:active {
  cursor: grabbing;
}
/* Dragging state */
.rvwt-adv-stop--dragging {
  opacity: 0.35;
  box-shadow: 0 4px 16px rgba(4,58,33,.18);
}
/* Hide drive rows while a drag is active so only stop cards reorder */
.rvwt-adv-rows--dragging .rvwt-adv-drive {
  display: none;
}
/* Drop insertion indicator */
.rvwt-adv-stop--drop-before {
  border-top: 2px solid #4a7a55 !important;
}
.rvwt-adv-stop--drop-after {
  border-bottom: 2px solid #4a7a55 !important;
}
/* Drag notice */
.rvwt-adv-drag-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 11px;
  color: #9ab09a;
  margin: 12px 4px 0;
  text-align: center;
}
.rvwt-adv-stop__view-btn {
  font-size: 11px;
  font-weight: 600;
  border: 1.5px solid;
  border-radius: 6px;
  padding: 5px 12px;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s;
  background: transparent;
}
.rvwt-adv-stop__view-btn:hover { background: rgba(0,0,0,.05); }

/* Move to Day select */
.rvwt-adv-stop__move-select {
  font-size: 11px;
  font-weight: 600;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  padding: 4px 8px;
  background: #fff;
  color: #555;
  cursor: pointer;
  width: 100%;
  max-width: 160px;
  margin-top: 4px;
}
.rvwt-adv-stop__move-select:disabled { opacity: .5; cursor: wait; }

/* ── Stop time / appointment editor ─────────────────────────────────────── */
/* Allow the form to wrap to a second row without adding column row-gap */
.rvwt-adv-stop { flex-wrap: wrap; row-gap: 0; }
.rvwt-adv-stop__time {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
.rvwt-adv-stop__time-edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 1px solid #c8d9c4;
  border-radius: 4px;
  background: transparent;
  color: #7a9e88;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: background .15s, border-color .15s, color .15s;
}
.rvwt-adv-stop__time-edit:hover,
.rvwt-adv-stop__time-edit--active {
  background: #eef6ea;
  border-color: #043a21;
  color: #043a21;
}
.rvwt-adv-stop__time-form {
  flex: 0 0 100%;
  padding: 10px 14px 0;
  border-top: 1px solid #edf2eb;
  background: #f8fbf7;
  border-radius: 0 0 12px 12px;
}
.rvwt-adv-stop__time-form-row {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 10px;
  align-items: flex-end;
}
.rvwt-adv-stop__time-form-row label {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.rvwt-adv-stop__time-form-row label > span {
  font-size: 10px;
  font-weight: 700;
  color: #043a21;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.rvwt-adv-time-input,
.rvwt-adv-dur-select {
  font-size: 13px;
  padding: 6px 8px;
  border: 1px solid #c8d9c4;
  border-radius: 6px;
  background: #fff;
  color: #043a21;
  font-family: inherit;
  min-height: 34px;
}
.rvwt-adv-time-input:focus,
.rvwt-adv-dur-select:focus {
  outline: none;
  border-color: #043a21;
  box-shadow: 0 0 0 2px rgba(4,58,33,.1);
}
.rvwt-adv-stop__time-form-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.rvwt-adv-time-save {
  background: #043a21;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 7px 16px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s;
  font-family: inherit;
}
.rvwt-adv-time-save:hover { background: #065a33; }
.rvwt-adv-time-save:disabled { opacity: .6; cursor: not-allowed; }
.rvwt-adv-time-clear,
.rvwt-adv-time-cancel {
  background: transparent;
  color: #7a9e88;
  border: 1px solid #c8d9c4;
  border-radius: 6px;
  padding: 6px 12px;
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
  transition: border-color .15s, color .15s;
}
.rvwt-adv-time-clear:hover,
.rvwt-adv-time-cancel:hover {
  border-color: #043a21;
  color: #043a21;
}

/* ── Your Transportation section (right column, below Regions Visited) ──── */
.rvwt-adventure__transport {
  background: #fff;
  border: 1px solid #e4ede0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(4,58,33,.06);
}
.rvwt-adv-transport-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  background: #f0f7f1;
  border-bottom: 1px solid #d4e8d4;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .8px;
  color: #1f5c40;
  text-transform: uppercase;
}
.rvwt-adv-transport-header svg { flex-shrink: 0; color: #3a6050; }
.rvwt-adv-transport-header__badge {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  background: #3a6050;
  color: #fff;
  border-radius: 20px;
  padding: 2px 9px;
  letter-spacing: .3px;
}
.rvwt-adv-transport-list { display: flex; flex-direction: column; }
.rvwt-adv-transport-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid #f0f4f0;
}
.rvwt-adv-transport-card:last-child { border-bottom: none; }
.rvwt-adv-transport-card__thumb {
  position: relative;
  width: 72px;
  height: 72px;
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
}
.rvwt-adv-transport-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.rvwt-adv-transport-card__thumb-badge {
  position: absolute;
  bottom: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #3a6050;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rvwt-adv-transport-card__thumb-badge svg { width: 12px; height: 12px; }
.rvwt-adv-transport-card__icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #3a6050;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rvwt-adv-transport-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.rvwt-adv-transport-card__label {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .8px;
  color: #3a6050;
  text-transform: uppercase;
}
.rvwt-adv-transport-card__name {
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rvwt-adv-transport-card__name a { color: #043a21; text-decoration: none; }
.rvwt-adv-transport-card__name a:hover { text-decoration: underline; }
.rvwt-adv-transport-card__loc,
.rvwt-adv-transport-card__phone {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #666;
}
.rvwt-adv-transport-card__phone a { color: #3a6050; text-decoration: none; }
.rvwt-adv-transport-card__phone a:hover { text-decoration: underline; }
.rvwt-adv-transport-card__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  flex-shrink: 0;
}
.rvwt-adv-transport-card__selected {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 700;
  color: #1f5c40;
  background: #d4edd4;
  border-radius: 20px;
  padding: 3px 9px;
  white-space: nowrap;
}
.rvwt-adv-transport-card__btn {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  color: #3a6050;
  border: 1px solid #3a6050;
  border-radius: 6px;
  padding: 4px 10px;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s, color .15s;
}
.rvwt-adv-transport-card__btn:hover { background: #3a6050; color: #fff; }

/* ── Route map panel ─────────────────────────────────────────────────────── */
.rvwt-adventure__map-panel {
  flex-shrink: 0;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(4,58,33,.08);
  overflow: hidden;
  border: 1px solid #e4ede0;
}
.rvwt-adv-map-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 16px;
  background: #fff;
  border-bottom: 1px solid #e4ede0;
}
.rvwt-adv-map-header__title {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .8px;
  color: #043a21;
  text-transform: uppercase;
}
.rvwt-adv-map-header__actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.rvwt-adv-map-header__full,
.rvwt-adv-map-header__toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  color: #043a21;
  background: #fff;
  border: 1px solid #c5d5bb;
  border-radius: 6px;
  padding: 5px 10px;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}
.rvwt-adv-map-header__full:hover,
.rvwt-adv-map-header__toggle:hover { background: #f0f5ee; border-color: #7a9e88; }
.rvwt-adv-map-header__toggle--active {
  background: #043a21;
  color: #fff;
  border-color: #043a21;
}
.rvwt-adv-map-header__toggle--active:hover { background: #065c34; border-color: #065c34; }
.rvwt-adv-map {
  height: 420px;
  overflow: hidden;
  background: #f0f5ee;
}
.rvwt-adv-map-legend {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 11px 16px;
  background: #fff;
  border-top: 1px solid #e4ede0;
}
.rvwt-adv-map-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #444;
  padding: 0 14px;
}
.rvwt-adv-map-legend__item:first-child { padding-left: 6px; }
.rvwt-adv-map-legend__item:last-child  { padding-right: 6px; }
.rvwt-adv-map-legend__badge {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rvwt-adv-map-legend__sep {
  width: 1px;
  height: 18px;
  background: #d8e8d0;
  flex-shrink: 0;
}
.rvwt-adventure__map-panel--fullscreen {
  position: fixed;
  inset: 0;
  z-index: 9990;
  border-radius: 0;
  box-shadow: none;
  border: none;
}
.rvwt-adventure__map-panel--fullscreen .rvwt-adv-map {
  height: calc(100vh - 40px - 38px);
}
.rvwt-adventure__map-panel--fullscreen .rvwt-adv-map-header {
  border-radius: 0;
}
body.rvwt-fullmap-active .rvwt-adventure__header,
body.rvwt-fullmap-active .rvwt-adventure__timeline {
  visibility: hidden;
}
.rvwt-adv-map-close-overlay {
  position: fixed;
  top: calc(var(--header-height, 80px) + 36px + 14px);
  left: 20px;
  z-index: 999999;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(4,58,33,.92);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 10px 18px;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .3px;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(0,0,0,.28);
  backdrop-filter: blur(6px);
}
.rvwt-adv-map-close-overlay:hover { background: rgba(4,58,33,1); }
body.admin-bar .rvwt-adv-map-close-overlay { top: calc(var(--header-height, 80px) + 36px + 32px + 14px); }
@media screen and (max-width: 782px) {
  body.admin-bar .rvwt-adv-map-close-overlay { top: calc(var(--header-height, 80px) + 36px + 46px + 14px); }
}

/* ── Day summary card ────────────────────────────────────────────────────── */
.rvwt-adv-summary-card {
  border-top: 1px solid #e4ede0;
  background: #f9faf8;
  border-radius: 0 0 12px 12px;
  padding: 16px 20px 18px;
}
.rvwt-adv-summary-card__head {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: #043a21;
  margin-bottom: 14px;
}
.rvwt-adv-summary-card__head svg { color: #7a9e88; flex-shrink: 0; }
.rvwt-adv-summary-card__grid {
  display: flex;
  align-items: center;
}
.rvwt-adv-summary-card__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  text-align: center;
}
.rvwt-adv-summary-card__lbl {
  font-size: 10px;
  color: #999;
  text-transform: uppercase;
  letter-spacing: .4px;
  line-height: 1;
}
.rvwt-adv-summary-card__val {
  font-size: 20px;
  font-weight: 700;
  color: #043a21;
  line-height: 1.1;
}
.rvwt-adv-summary-card__div {
  width: 1px;
  height: 44px;
  background: #e4ede0;
  flex-shrink: 0;
}

/* ── Regions Visited ─────────────────────────────────────────────────────── */
.rvwt-adventure__nearby {
  margin-top: 40px;
  margin-bottom: 28px;
  padding: 0 4px;
}
.rvwt-adventure__regions {
  border: 1px solid #e4ede0;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(4,58,33,.08);
  overflow: hidden;
  background: #fff;
  flex-shrink: 0;
}
.rvwt-adv-regions-header {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 11px 16px;
  background: #fff;
  border-bottom: 1px solid #e4ede0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .8px;
  color: #043a21;
  text-transform: uppercase;
}
.rvwt-adventure__section-title {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: #043a21;
  margin: 0 0 4px;
}
.rvwt-adv-region-list {
  background: #fff;
}
.rvwt-adv-region-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px 16px;
  border-bottom: 1px solid #edf2eb;
}
.rvwt-adv-region-row:last-child { border-bottom: none; }
.rvwt-adv-region-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
}
.rvwt-adv-region-body { flex: 1; min-width: 0; }
.rvwt-adv-region-name {
  font-size: 14px;
  font-weight: 600;
  color: #043a21;
}
.rvwt-adv-region-count {
  font-size: 12px;
  color: #777;
  margin-top: 2px;
}
.rvwt-adv-region-drive {
  text-align: right;
  flex-shrink: 0;
}
.rvwt-adv-region-drive__lbl {
  font-size: 10px;
  color: #aaa;
  text-transform: uppercase;
  letter-spacing: .3px;
  display: block;
}
.rvwt-adv-region-drive__val {
  font-size: 15px;
  font-weight: 700;
  color: #043a21;
  display: block;
}

/* ── Explore Nearby ──────────────────────────────────────────────────────── */
.rvwt-adventure__nearby-head {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid #edf2eb;
}
.rvwt-adventure__nearby-sub {
  font-size: 13px;
  color: #777;
  margin: 4px 0 0;
}
.rvwt-adventure__nearby-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
.rvwt-adv-nearby-card {
  border: 1px solid #e4ede0;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .15s, transform .15s;
}
.rvwt-adv-nearby-card:hover {
  box-shadow: 0 4px 16px rgba(4,58,33,.1);
  transform: translateY(-2px);
}
.rvwt-adv-nearby-card__img {
  display: block;
  height: 110px;
  overflow: hidden;
  background: #e4ede0;
  flex-shrink: 0;
}
.rvwt-adv-nearby-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.rvwt-adv-nearby-card__icon {
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f8f4;
  flex-shrink: 0;
}
.rvwt-adv-nearby-card__body {
  padding: 11px 12px 13px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
}
.rvwt-adv-nearby-card__title {
  font-size: 12px;
  font-weight: 600;
  color: #043a21;
  text-decoration: none;
  line-height: 1.35;
}
.rvwt-adv-nearby-card__title:hover { text-decoration: underline; }
.rvwt-adv-nearby-card__dist {
  display: flex;
  flex-wrap: wrap;
  column-gap: 5px;
  font-size: 11px;
  color: #888;
  line-height: 1.4;
}
.rvwt-adventure__nearby-more {
  display: block;
  width: fit-content;
  margin: 4px auto 0;
  font-size: 13px;
  font-weight: 600;
  color: #043a21;
  text-decoration: none;
  padding: 9px 24px;
  background: #f0f5ee;
  border: 1px solid #c5d5bb;
  border-radius: 8px;
  transition: background .15s, border-color .15s;
}
.rvwt-adventure__nearby-more:hover { background: #e4ede0; border-color: #a5c09a; }

/* ── Edit Dates modal ────────────────────────────────────────────────────── */
.rvwt-adv-dates-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.rvwt-adv-dates-modal[hidden] { display: none; }
.rvwt-adv-dates-modal__inner {
  background: #fff;
  border-radius: 14px;
  padding: 28px 28px 24px;
  width: 100%;
  max-width: 340px;
  box-shadow: 0 8px 32px rgba(0,0,0,.18);
}
.rvwt-adv-dates-modal__title {
  font-size: 16px;
  font-weight: 700;
  color: #043a21;
  margin: 0 0 18px;
}
.rvwt-adv-dates-modal__label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #555;
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-bottom: 14px;
}
.rvwt-adv-dates-modal__input {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 9px 12px;
  border: 1px solid #ddd;
  border-radius: 7px;
  font-size: 14px;
  color: #333;
  box-sizing: border-box;
}
.rvwt-adv-dates-modal__input:focus {
  outline: none;
  border-color: #043a21;
  box-shadow: 0 0 0 3px rgba(4,58,33,.1);
}
.rvwt-adv-dates-modal__actions { display: flex; gap: 10px; margin-top: 20px; }
.rvwt-adv-dates-modal__save {
  flex: 1;
  background: #043a21;
  color: #fff;
  border: none;
  padding: 9px 16px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
}
.rvwt-adv-dates-modal__save:hover { background: #065a33; }
.rvwt-adv-dates-modal__cancel {
  background: #f5f5f5;
  color: #555;
  border: 1px solid #ddd;
  padding: 9px 16px;
  border-radius: 7px;
  font-size: 13px;
  cursor: pointer;
  transition: background .15s;
}
.rvwt-adv-dates-modal__cancel:hover { background: #eee; }

/* ── Mobile ──────────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .rvwt-adventure__body {
    grid-template-columns: 1fr;
  }
  .rvwt-adventure__right-col {
    position: static;
  }
  .rvwt-adventure__map-panel {
    order: -1;
  }
  .rvwt-adv-map { height: 280px; }
  .rvwt-adventure__nearby-grid { grid-template-columns: 1fr 1fr; }
  .rvwt-adventure__stat-item { padding: 12px 14px; }
}
@media (max-width: 600px) {
  .rvwt-adventure__header { padding: 18px 16px 16px; }
  .rvwt-adventure__header-top { flex-direction: column; gap: 14px; }
  .rvwt-adventure__stat-bar { flex-wrap: wrap; }
  .rvwt-adventure__stat-item { flex: 1 1 40%; }
  .rvwt-adventure__stat-sep { display: none; }
  .rvwt-adventure__title { font-size: 18px; }
  .rvwt-adventure__toolbar { gap: 8px; }
  .rvwt-adventure__toolbar-btn { font-size: 11px; padding: 6px 10px; }
  .rvwt-adv-stop__time { width: 56px; font-size: 10px; }
  .rvwt-adv-rows::before { left: calc(20px + 56px + 10px + 8px); }
  .rvwt-adventure__nearby-grid { grid-template-columns: 1fr 1fr; }
  .rvwt-adv-tab { padding: 11px 16px; }
  .rvwt-adv-summary-card__val { font-size: 16px; }
}

/* ── Print: show adventure layout cleanly ────────────────────────────────── */
@media print {
  /* Hide interactive / screen-only elements */
  .rvwt-adventure__map-panel,
  .rvwt-adventure__right-col,
  .rvwt-adventure__toolbar,
  .rvwt-adventure__title-edit,
  .rvwt-adv-stop__top-actions,
  .rvwt-adv-drive__map-link,
  .rvwt-adventure__nearby,
  .rvwt-adv-dates-modal,
  .rvwt-adv-tabs { display: none !important; }

  /* Single-column layout, no sticky columns */
  .rvwt-adventure__header-top { flex-direction: column; }
  .rvwt-adventure__body { display: block; }
  .rvwt-adventure__timeline { display: block; }

  /* Show all day panels (not just the active tab) */
  .rvwt-adv-tab-panel[hidden] { display: block !important; }

  /* Allow page breaks BETWEEN days/stops — not inside individual rows */
  .rvwt-adv-tab-panel { break-inside: auto; break-before: auto; margin-bottom: 16px; }
  .rvwt-adv-stop { break-inside: avoid; }
  .rvwt-adv-drive { break-inside: avoid; }
  .rvwt-adv-summary-card { break-inside: avoid; }
  .rvwt-adventure__header { break-inside: avoid; box-shadow: none !important; border: 1px solid #ccc !important; margin-bottom: 16px; }

  /* Force category icon circles and timeline dots to print with their colors */
  .rvwt-adv-stop__icon,
  .rvwt-adv-stop__dot,
  .rvwt-adv-drive__dot,
  .rvwt-adv-rows::before {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  /* SVG icons inside colored circles are white — keep them visible */
  .rvwt-adv-stop__icon svg { stroke: #fff !important; color: #fff !important; }
  /* Hide the remove/reorder action buttons */
  .rvwt-adv-stop__actions { display: none !important; }
  /* Ensure stat-bar icons print */
  .rvwt-adventure__stat-item svg,
  .rvwt-adventure__date svg { opacity: 1 !important; }
}

/* ==========================================================================
   Print styles
   ========================================================================== */
@media print {
  .site-header,.mobile-drawer,.mobile-drawer__overlay,
  .rvwt-itin-share,.rvwt-itin-email-wrap,
  .rvwt-favorites-back-btn,.rvwt-favorites-meta,
  .rvwt-fav,.rvwt-stop__actions,footer,#colophon{display:none!important;}
  div[style*="padding-top"]{padding-top:0!important;}
  .rvwt-cat-header{padding:12px 0 8px!important;background:none!important;color:#000!important;}
  .rvwt-cat-header__title{font-size:20pt!important;color:#000!important;}
  .rvwt-cat-main{padding:8px 0 0!important;}
  .rvwt-itin-card{border:1px solid #ccc!important;box-shadow:none!important;break-inside:avoid;}
  .rvwt-itin-card__title a,.rvwt-itin-card__detail a{color:#000!important;}
  .rvwt-stop{break-inside:avoid;}
  .rvwt-stop__name a,.rvwt-stop__phone a{color:#000!important;}
  .rvwt-day__header{border-left-color:#000!important;}
  /* Fix icon opacity so SVGs are fully visible in print */
  .rvwt-itin-card__detail svg,
  .rvwt-stop__hours svg,.rvwt-stop__phone svg{opacity:1!important;}
  /* Ensure icon text colors are dark enough to print */
  .rvwt-itin-card__detail{color:#333!important;}
  .rvwt-stop__hours{color:#333!important;}
  .rvwt-stop__phone{color:#333!important;}
}

/* ============================================================
   MENU BLOCK — all display styles
   ============================================================ */

/* ── Shared wrapper & header ── */
.rvwt-menu-block {
  margin: 48px 0;
}
.rvwt-menu-block__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}
.rvwt-menu-block__title {
  font-size: 1.6rem;
  font-weight: 700;
  margin: 0;
  color: var(--rvwt-dark, #1a2e1a);
}
.rvwt-menu-block__ext-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--rvwt-primary, #5a7a4a);
  text-decoration: none;
  border: 1px solid var(--rvwt-primary, #5a7a4a);
  border-radius: 20px;
  padding: 4px 12px;
  white-space: nowrap;
  transition: background .18s, color .18s;
}
.rvwt-menu-block__ext-link:hover {
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff;
}

/* Header actions wrapper — holds ext-link + Book Now + PDF download side by side */
.rvwt-menu-block__header-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  flex-wrap: wrap;
}

/* Book Now button — compact pill style for the menu header */
.rvwt-book-now-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 16px;
  font-size: .82rem;
  font-weight: 700;
  border-radius: 20px;
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff !important;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .18s;
}
.rvwt-book-now-btn:hover { opacity: .85; color: #fff !important; }

/* Standalone block (no menu, booking URL only) */
.rvwt-menu-block--booking-only {
  margin: 32px 0;
  text-align: center;
}

/* Download PDF button — matches ext-link style */
.rvwt-menu-pdf-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--rvwt-primary, #5a7a4a);
  text-decoration: none;
  border: 1px solid var(--rvwt-primary, #5a7a4a);
  border-radius: 20px;
  padding: 4px 12px;
  white-space: nowrap;
  transition: background .18s, color .18s;
}
.rvwt-menu-pdf-btn:hover {
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff;
}

/* PDF download row — sits below menu content, visible in all layouts */
.rvwt-menu-block__pdf-row {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid rgba(0,0,0,.08);
  text-align: right;
}

/* ── Shared action button ── */
.rvwt-menu-action-btn {
  display: inline-block;
  padding: 10px 22px;
  border-radius: 24px;
  font-size: .86rem;
  font-weight: 600;
  text-decoration: none;
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff;
  transition: opacity .18s;
}
.rvwt-menu-action-btn:hover { opacity: .85; }
.rvwt-menu-action-btn--outline {
  background: transparent;
  color: var(--rvwt-primary, #5a7a4a);
  border: 1.5px solid var(--rvwt-primary, #5a7a4a);
}
.rvwt-menu-action-btn--outline:hover {
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff;
  opacity: 1;
}

/* ── Download menu button ── */
.rvwt-menu-download-wrap {
  margin-top: 16px;
}
.rvwt-menu-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 18px;
  border: 1.5px solid var(--rvwt-primary, #5a7a4a);
  border-radius: 24px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--rvwt-primary, #5a7a4a);
  text-decoration: none;
  transition: background .18s, color .18s;
}
.rvwt-menu-download-btn:hover {
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff;
}
.rvwt-menu-download-btn svg { flex-shrink: 0; }

/* ── Global menu footer disclaimer ── */
.rvwt-menu-footer-disclaimer {
  margin-top: 28px;
  padding: 14px 16px;
  background: #f9f9f9;
  border-top: 1px solid #ebebeb;
  border-radius: 4px;
  font-size: .8rem;
  color: #777;
  line-height: 1.6;
}
.rvwt-menu-footer-disclaimer p { margin: 0 0 .5em; }
.rvwt-menu-footer-disclaimer p:last-child { margin-bottom: 0; }
.rvwt-menu-footer-disclaimer a { color: inherit; text-decoration: underline; }

/* ── Shared section note ── */
.rvwt-menu-section-note {
  font-size: .82rem;
  color: #777;
  margin-bottom: 10px;
  font-style: italic;
}

/* ────────────────────────────────────────────────────────────
   STYLE 1 — Fine Dining Tabs (.rvwt-mft)
   ──────────────────────────────────────────────────────────── */
.rvwt-mft { font-family: inherit; }

.rvwt-mft__tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid #e0e0e0;
  margin-bottom: 28px;
}
.rvwt-mft__tab {
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  padding: 10px 20px;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  color: #888;
  transition: color .18s, border-color .18s;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.rvwt-mft__tab.is-active {
  color: var(--rvwt-dark, #1a2e1a);
  border-bottom-color: var(--rvwt-primary, #5a7a4a);
}
.rvwt-mft__panel { display: none; }
.rvwt-mft__panel.is-active { display: block; }

.rvwt-mft__section-label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #999;
  margin: 28px 0 12px;
}
.rvwt-mft__item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 0;
  border-bottom: 1px solid #f0f0f0;
}
.rvwt-mft__item:last-child { border-bottom: none; }
.rvwt-mft__item-left { flex: 1; min-width: 0; }
.rvwt-mft__item-name-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rvwt-mft__item-name { font-weight: 600; font-size: .95rem; color: #1a2e1a; }
.rvwt-mft__item-desc { font-size: .82rem; color: #777; margin-top: 3px; line-height: 1.5; }
.rvwt-mft__item-price { font-weight: 700; font-size: .95rem; color: var(--rvwt-primary, #5a7a4a); white-space: nowrap; }
.rvwt-mft__item-tags { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 5px; }
.rvwt-mft__tag {
  font-size: .68rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 10px;
  letter-spacing: .04em;
}
.rvwt-mft__tag--gf    { background: #e8f5e9; color: #388e3c; }
.rvwt-mft__tag--vegan { background: #f1f8e9; color: #558b2f; }
.rvwt-mft__tag--spicy { background: #fce4ec; color: #c62828; }
.rvwt-mft__badge {
  font-size: .68rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
}
.rvwt-mft__badge--pop { background: #fff8e1; color: #f57f17; }
.rvwt-mft__badge--new { background: #e3f2fd; color: #1565c0; }
.rvwt-mft__allergy {
  margin-top: 24px;
  font-size: .82rem;
  color: #374151;
  font-style: italic;
  line-height: 1.6;
  border-top: 1px solid #e5e7eb;
  padding-top: 14px;
}
.rvwt-mft__allergy a {
  color: var(--rvwt-primary, #5a7a4a);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 600;
}
.rvwt-mft__allergy a:hover { text-decoration: none; opacity: .85; }
body.rvwt-dl-4 .rvwt-mft__allergy { color: #d1d5db; border-color: rgba(255,255,255,.1); }
.rvwt-mft__footer { margin-top: 28px; text-align: center; }

/* ────────────────────────────────────────────────────────────
   STYLE 2 — Card Grid (.rvwt-mcg)  [DEFAULT]
   ──────────────────────────────────────────────────────────── */
.rvwt-mcg__menu-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.rvwt-mcg__menu-tab {
  background: #f4f4f4;
  border: none;
  border-radius: 20px;
  padding: 7px 18px;
  font-size: .84rem;
  font-weight: 600;
  cursor: pointer;
  color: #555;
  transition: background .18s, color .18s;
}
.rvwt-mcg__menu-tab.is-active {
  background: var(--rvwt-dark, #1a2e1a);
  color: #fff;
}
.rvwt-mcg__menu { display: none; }
.rvwt-mcg__menu.is-active { display: block; }

.rvwt-mcg__search {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 9px 14px;
  border: 1px solid #ddd;
  border-radius: 22px;
  font-size: .88rem;
  margin-bottom: 16px;
  outline: none;
  transition: border-color .18s;
}
.rvwt-mcg__search:focus { border-color: var(--rvwt-primary, #5a7a4a); }

.rvwt-mcg__pills {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.rvwt-mcg__pill {
  background: #f4f4f4;
  border: none;
  border-radius: 16px;
  padding: 5px 14px;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  color: #666;
  transition: background .18s, color .18s;
}
.rvwt-mcg__pill.is-active {
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff;
}

.rvwt-mcg__section { display: none; }
.rvwt-mcg__section.is-active { display: block; }

.rvwt-mcg__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
}
.rvwt-mcg__card {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: box-shadow .18s;
}
.rvwt-mcg__card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.rvwt-mcg__badge-row { display: flex; gap: 5px; flex-wrap: wrap; }
.rvwt-mcg__badge {
  font-size: .65rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 9px;
  letter-spacing: .03em;
}
.rvwt-mcg__badge--pop { background: #fff8e1; color: #f57f17; }
.rvwt-mcg__badge--new { background: #e3f2fd; color: #1565c0; }
.rvwt-mcg__badge--gf  { background: #e8f5e9; color: #388e3c; }
.rvwt-mcg__badge--vg  { background: #f1f8e9; color: #558b2f; }
.rvwt-mcg__badge--sp  { background: #fce4ec; color: #c62828; }

.rvwt-mcg__name  { font-weight: 700; font-size: .95rem; color: #1a2e1a; line-height: 1.3; }
.rvwt-mcg__native { font-size: .8rem; color: #888; font-style: italic; margin-top: -2px; }
.rvwt-mcg__desc  { font-size: .8rem; color: #777; line-height: 1.5; flex: 1; }
.rvwt-mcg__footer { margin-top: auto; padding-top: 8px; }
.rvwt-mcg__price { font-weight: 700; font-size: .88rem; color: var(--rvwt-primary, #5a7a4a); }
.rvwt-mcg__price--ask { font-weight: 400; color: #aaa; font-size: .8rem; }
.rvwt-mcg__allergy {
  margin-top: 20px;
  font-size: .78rem;
  color: #999;
  font-style: italic;
}
.rvwt-mcg__sr {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
}
.rvwt-mcg__no-results {
  grid-column: 1 / -1;
  text-align: center;
  color: #aaa;
  font-size: .9rem;
  padding: 28px 0;
  margin: 0;
}

/* ────────────────────────────────────────────────────────────
   STYLE 3 — Accordion Tabs (.rvwt-mat)
   ──────────────────────────────────────────────────────────── */
.rvwt-mat__tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.rvwt-mat__tab {
  background: #f4f4f4;
  border: none;
  border-radius: 20px;
  padding: 7px 18px;
  font-size: .84rem;
  font-weight: 600;
  cursor: pointer;
  color: #555;
  transition: background .18s, color .18s;
}
.rvwt-mat__tab.is-active {
  background: var(--rvwt-dark, #1a2e1a);
  color: #fff;
}
.rvwt-mat__panel { display: none; }
.rvwt-mat__panel.is-active { display: block; }

.rvwt-mat__section {
  border: 1px solid #ececec;
  border-radius: 10px;
  margin-bottom: 8px;
  overflow: hidden;
}
.rvwt-mat__section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
  cursor: pointer;
  background: #fafafa;
  user-select: none;
  gap: 10px;
}
.rvwt-mat__section-head:hover { background: #f3f3f3; }
.rvwt-mat__section-left { display: flex; align-items: center; gap: 10px; }
.rvwt-mat__section-name { font-weight: 700; font-size: .9rem; color: #1a2e1a; }
.rvwt-mat__section-count { font-size: .78rem; color: #aaa; }
.rvwt-mat__chevron { font-size: .8rem; color: #aaa; transition: transform .2s; }
.rvwt-mat__section.is-open .rvwt-mat__chevron { transform: rotate(180deg); }
.rvwt-mat__section-body { display: none; padding: 14px 16px; }
.rvwt-mat__section.is-open .rvwt-mat__section-body { display: block; }

.rvwt-mat__item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #f4f4f4;
}
.rvwt-mat__item:last-child { border-bottom: none; }
.rvwt-mat__item-main { flex: 1; min-width: 0; }
.rvwt-mat__item-name  { font-weight: 600; font-size: .9rem; color: #1a2e1a; }
.rvwt-mat__item-desc  { font-size: .8rem; color: #777; line-height: 1.5; margin-top: 3px; }
.rvwt-mat__item-price { font-weight: 700; font-size: .9rem; color: var(--rvwt-primary, #5a7a4a); white-space: nowrap; }
.rvwt-mat__item-tags  { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 5px; }
.rvwt-mat__tag {
  font-size: .67rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 9px;
}
.rvwt-mat__tag--gf    { background: #e8f5e9; color: #388e3c; }
.rvwt-mat__tag--vegan { background: #f1f8e9; color: #558b2f; }
.rvwt-mat__tag--spicy { background: #fce4ec; color: #c62828; }
.rvwt-mat__allergy {
  margin-top: 20px;
  font-size: .82rem;
  color: #374151;
  font-style: italic;
  border-top: 1px solid #e5e7eb;
  padding-top: 14px;
  line-height: 1.6;
}
.rvwt-mat__allergy--top {
  margin-top: 0;
  margin-bottom: 14px;
  border-top: none;
  padding-top: 0;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 14px;
  background: #f9fafb;
  border-radius: 6px;
  padding: 12px 16px;
  border: 1px solid #e5e7eb;
}
.rvwt-mat__allergy a {
  color: var(--rvwt-primary, #5a7a4a);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 600;
}
.rvwt-mat__allergy a:hover {
  text-decoration: none;
  opacity: .85;
}
body.rvwt-dl-4 .rvwt-mat__allergy      { color: #d1d5db; border-color: rgba(255,255,255,.1); }
body.rvwt-dl-4 .rvwt-mat__allergy--top { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); }
.rvwt-menu-download-wrap--top {
  margin-top: 0;
  margin-bottom: 18px;
}
.rvwt-mat__footer { margin-top: 24px; text-align: center; }

/* ────────────────────────────────────────────────────────────
   STYLE 4 — No-Price Grid (.rvwt-mnp)
   ──────────────────────────────────────────────────────────── */
.rvwt-mnp__pills {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.rvwt-mnp__pill {
  background: #f4f4f4;
  border: none;
  border-radius: 16px;
  padding: 5px 14px;
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  color: #666;
  transition: background .18s, color .18s;
}
.rvwt-mnp__pill.is-active {
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff;
}
.rvwt-mnp__section { display: none; }
.rvwt-mnp__section.is-active { display: block; }
.rvwt-mnp__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.rvwt-mnp__card {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 10px;
  padding: 13px 15px;
}
.rvwt-mnp__name { font-weight: 700; font-size: .9rem; color: #1a2e1a; margin-bottom: 4px; }
.rvwt-mnp__desc { font-size: .8rem; color: #777; line-height: 1.5; }
.rvwt-mnp__tags { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 6px; }
.rvwt-mnp__tag {
  font-size: .67rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 9px;
}
.rvwt-mnp__tag--gf    { background: #e8f5e9; color: #388e3c; }
.rvwt-mnp__tag--vegan { background: #f1f8e9; color: #558b2f; }
.rvwt-mnp__tag--spicy { background: #fce4ec; color: #c62828; }
.rvwt-mnp__allergy {
  margin-top: 18px;
  font-size: .82rem;
  color: #374151;
  font-style: italic;
  line-height: 1.6;
}
.rvwt-mnp__allergy a {
  color: var(--rvwt-primary, #5a7a4a);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 600;
}
.rvwt-mnp__allergy a:hover { text-decoration: none; opacity: .85; }
body.rvwt-dl-4 .rvwt-mnp__allergy { color: #d1d5db; }
.rvwt-mnp__no-price {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 18px;
  font-size: .8rem;
  color: #aaa;
}
.rvwt-mnp__order-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 16px;
  padding: 10px 22px;
  border-radius: 24px;
  font-size: .86rem;
  font-weight: 600;
  text-decoration: none;
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff;
  transition: opacity .18s;
}
.rvwt-mnp__order-btn:hover { opacity: .85; }

/* ────────────────────────────────────────────────────────────
   STYLE 5 — Dietary Accordion (.rvwt-mac)
   ──────────────────────────────────────────────────────────── */
.rvwt-mac__accordion { display: flex; flex-direction: column; gap: 8px; }
.rvwt-mac__section {
  border: 1px solid #ececec;
  border-radius: 10px;
  overflow: hidden;
}
.rvwt-mac__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
  cursor: pointer;
  background: #fafafa;
  user-select: none;
}
.rvwt-mac__head:hover { background: #f3f3f3; }
.rvwt-mac__head-left { display: flex; align-items: center; gap: 10px; }
.rvwt-mac__section-name { font-weight: 700; font-size: .9rem; color: #1a2e1a; }
.rvwt-mac__count { font-size: .78rem; color: #aaa; }
.rvwt-mac__chevron { font-size: .8rem; color: #aaa; transition: transform .2s; }
.rvwt-mac__section.is-open .rvwt-mac__chevron { transform: rotate(180deg); }
.rvwt-mac__body { display: none; padding: 14px 16px; }
.rvwt-mac__section.is-open .rvwt-mac__body { display: block; }
.rvwt-mac__item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #f4f4f4;
}
.rvwt-mac__item:last-child { border-bottom: none; }
.rvwt-mac__item-main { flex: 1; min-width: 0; }
.rvwt-mac__item-name  { font-weight: 600; font-size: .9rem; color: #1a2e1a; }
.rvwt-mac__item-desc  { font-size: .8rem; color: #777; line-height: 1.5; margin-top: 3px; }
.rvwt-mac__item-price { font-weight: 700; font-size: .9rem; color: var(--rvwt-primary, #5a7a4a); white-space: nowrap; }
.rvwt-mac__tags { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 5px; }
.rvwt-mac__tag {
  font-size: .7rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 10px;
}
.rvwt-mac__tag--gf    { background: #e8f5e9; color: #388e3c; }
.rvwt-mac__tag--vegan { background: #f1f8e9; color: #558b2f; }
.rvwt-mac__tag--spicy { background: #fce4ec; color: #c62828; }
.rvwt-mac__allergy {
  margin-top: 20px;
  font-size: .82rem;
  color: #374151;
  font-style: italic;
  line-height: 1.6;
  border-top: 1px solid #e5e7eb;
  padding-top: 14px;
}
.rvwt-mac__allergy a {
  color: var(--rvwt-primary, #5a7a4a);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 600;
}
.rvwt-mac__allergy a:hover { text-decoration: none; opacity: .85; }
body.rvwt-dl-4 .rvwt-mac__allergy { color: #d1d5db; border-color: rgba(255,255,255,.1); }
.rvwt-mac__no-price {
  margin-top: 16px;
  font-size: .8rem;
  color: #aaa;
}
.rvwt-mac__order-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 14px;
  padding: 9px 20px;
  border-radius: 22px;
  font-size: .85rem;
  font-weight: 600;
  text-decoration: none;
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff;
  transition: opacity .18s;
}
.rvwt-mac__order-btn:hover { opacity: .85; }

/* ── Image menu ── */
.rvwt-menu-image-wrap { position: relative; }
.rvwt-menu-image-link { display: block; position: relative; }
.rvwt-menu-image {
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
}
.rvwt-menu-image-hint {
  position: absolute;
  bottom: 10px;
  right: 10px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: .75rem;
  padding: 4px 10px;
  border-radius: 12px;
}
.rvwt-menu-image-actions { margin-top: 14px; }

/* ── PDF menu embed viewer ── */
.rvwt-menu-pdf-embed {
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  overflow: hidden;
}
.rvwt-menu-pdf-embed__frame {
  display: block;
  width: 100%;
  height: 700px;
  border: none;
  background: #f5f5f5;
}
.rvwt-menu-pdf-embed__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  background: #fafafa;
  border-top: 1px solid #e0e0e0;
}
.rvwt-menu-pdf-embed__open {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .82rem;
  color: var(--rvwt-primary, #5a7a4a);
  text-decoration: none;
}
.rvwt-menu-pdf-embed__open:hover { text-decoration: underline; }
.rvwt-menu-pdf-embed__fallback {
  display: block;
  padding: 20px;
  text-align: center;
  color: var(--rvwt-primary, #5a7a4a);
}
@media (max-width: 640px) {
  .rvwt-menu-pdf-embed__frame { height: 480px; }
}

/* ── External card ── */
.rvwt-menu-external-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  border: 1px solid #ececec;
  border-radius: 12px;
  background: #fafafa;
}
.rvwt-menu-external-card__icon { color: #aaa; flex-shrink: 0; }
.rvwt-menu-external-card__text { flex: 1; }
.rvwt-menu-external-card__label { font-weight: 700; font-size: .95rem; color: #1a2e1a; }
.rvwt-menu-external-card__domain { font-size: .8rem; color: #999; margin-top: 2px; }

/* ── Unavailable ── */
.rvwt-menu-unavailable {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 18px 20px;
  border: 1px solid #ececec;
  border-radius: 12px;
  color: #888;
  font-size: .9rem;
  flex-wrap: wrap;
}
.rvwt-menu-unavailable svg { color: #ccc; flex-shrink: 0; margin-top: 2px; }
.rvwt-menu-unavailable__actions {
  width: 100%;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}

/* ── Responsive ── */
@media (max-width: 600px) {
  .rvwt-mcg__grid { grid-template-columns: 1fr; }
  .rvwt-mnp__grid { grid-template-columns: 1fr; }
  .rvwt-menu-external-card { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* ============================================================
   L7 PREMIUM MENU SECTION
   Matches the Layout 7 dark-green + gold + ivory design language
   ============================================================ */

.rvwt-l7-menu-section {
  background: #1e2d1e;
  overflow: hidden;
}

/* ── Dark intro header (matching amenity strip / wines section feel) ── */
.rvwt-l7-menu-section__intro {
  padding: 64px clamp(1.5rem, 6vw, 6rem) 52px;
  text-align: center;
  position: relative;
}
.rvwt-l7-menu-section__intro .rvwt-l7-wc-kicker-row {
  margin-bottom: 18px;
}
.rvwt-l7-menu-section__heading {
  font-family: 'Lato', Verdana, Helvetica, Arial, sans-serif;
  font-size: clamp(28px, 4vw, 46px);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #F1E7D2;
  margin: 0;
  text-shadow: 0 2px 20px rgba(0,0,0,.35);
}

/* Book Now button inside L7 dark intro section */
.rvwt-l7-book-now-btn {
  margin-top: 36px;
  background: #fff;
  color: var(--rvwt-dark, #1a2e1a) !important;
  border: none;
  font-size: .9rem;
  padding: 10px 26px;
  border-radius: 24px;
  letter-spacing: .04em;
}
.rvwt-l7-book-now-btn:hover {
  background: var(--rvwt-primary, #5a7a4a);
  color: #fff !important;
  opacity: 1;
}

/* ── Light body where the actual menu renders ── */
.rvwt-l7-menu-section__body {
  background: #f7f2ea;
  padding: 56px clamp(1.5rem, 6vw, 6rem) 72px;
}

/* ── Reset default menu-block margin inside L7 ── */
.rvwt-l7-menu-section .rvwt-menu-block {
  margin: 0;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* Hide the default "Menu" h2 — we provide our own heading above */
.rvwt-l7-menu-section .rvwt-menu-block__header {
  display: none;
}

/* ── Menu tabs (LUNCH / DINNER) ── */
.rvwt-l7-menu-section .rvwt-mcg__menu-tabs {
  justify-content: center;
  gap: 10px;
  margin-bottom: 32px;
}
.rvwt-l7-menu-section .rvwt-mcg__menu-tab {
  background: transparent;
  border: 1.5px solid #c4a96a;
  border-radius: 3px;
  padding: 9px 28px;
  font-family: 'Lora', Georgia, serif;
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: #7a6540;
  transition: background .2s, color .2s;
}
.rvwt-l7-menu-section .rvwt-mcg__menu-tab.is-active {
  background: #1e2d1e;
  border-color: #1e2d1e;
  color: #f7f2ea;
}
.rvwt-l7-menu-section .rvwt-mcg__menu-tab:hover:not(.is-active) {
  background: rgba(196,169,106,.12);
}

/* ── Search bar ── */
.rvwt-l7-menu-section .rvwt-mcg__search {
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
  display: block;
  border-color: #d4c9b6;
  background: #fff;
  font-family: inherit;
}
.rvwt-l7-menu-section .rvwt-mcg__search:focus {
  border-color: #c4a96a;
}

/* ── Section pills (CURRY / FRIED RICE / etc.) ── */
.rvwt-l7-menu-section .rvwt-mcg__pills {
  justify-content: center;
  gap: 8px;
  margin-bottom: 28px;
}
.rvwt-l7-menu-section .rvwt-mcg__pill {
  background: transparent;
  border: 1px solid #c9bfa8;
  border-radius: 2px;
  padding: 6px 16px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #8a7a60;
  transition: background .18s, color .18s, border-color .18s;
}
.rvwt-l7-menu-section .rvwt-mcg__pill.is-active {
  background: #043a21;
  border-color: #043a21;
  color: #f7f2ea;
}
.rvwt-l7-menu-section .rvwt-mcg__pill:hover:not(.is-active) {
  border-color: #8a7a60;
  color: #4a3e2a;
}

/* ── Item cards ── */
.rvwt-l7-menu-section .rvwt-mcg__grid,
.rvwt-l7-menu-section .rvwt-mcg__sr {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 18px;
}
.rvwt-l7-menu-section .rvwt-mcg__card {
  background: #fff;
  border: 1.5px solid rgba(4,58,33,.1);
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: 0 3px 14px rgba(30,45,30,.07);
  transition: box-shadow .2s, transform .2s;
}
.rvwt-l7-menu-section .rvwt-mcg__card:hover {
  box-shadow: 0 8px 28px rgba(30,45,30,.13);
  transform: translateY(-2px);
}

/* Card typography */
.rvwt-l7-menu-section .rvwt-mcg__name {
  font-family: 'Lora', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #1e2d1e;
}
.rvwt-l7-menu-section .rvwt-mcg__native {
  font-family: 'Lora', Georgia, serif;
  font-size: .82rem;
  color: #c4a96a;
  font-style: italic;
  margin-top: 1px;
}
.rvwt-l7-menu-section .rvwt-mcg__desc {
  font-size: .82rem;
  color: #6b6050;
  line-height: 1.55;
}
.rvwt-l7-menu-section .rvwt-mcg__price {
  font-family: 'Lora', Georgia, serif;
  font-weight: 700;
  color: #043a21;
}
.rvwt-l7-menu-section .rvwt-mcg__price--ask {
  color: #b8ad9e;
  font-weight: 400;
  font-size: .78rem;
  font-family: inherit;
}

/* Badge colours inside L7 cards */
.rvwt-l7-menu-section .rvwt-mcg__badge--pop { background: #fdf3dc; color: #a06c00; }
.rvwt-l7-menu-section .rvwt-mcg__badge--new { background: #e6f0e8; color: #1e5c30; }
.rvwt-l7-menu-section .rvwt-mcg__badge--gf  { background: #e6f0e8; color: #1e5c30; }
.rvwt-l7-menu-section .rvwt-mcg__badge--vg  { background: #f0f5e8; color: #3d6b1e; }
.rvwt-l7-menu-section .rvwt-mcg__badge--sp  { background: #fde8e4; color: #a32010; }

/* Allergy note */
.rvwt-l7-menu-section .rvwt-mcg__allergy {
  text-align: center;
  margin-top: 28px;
  color: #a09080;
  font-style: italic;
  font-size: .8rem;
}

/* ── Fine dining tabs (mft) overrides for L7 ── */
.rvwt-l7-menu-section .rvwt-mft__tabs {
  justify-content: center;
  border-bottom-color: rgba(4,58,33,.15);
}
.rvwt-l7-menu-section .rvwt-mft__tab {
  color: #8a7a60;
  font-family: 'Lora', Georgia, serif;
  letter-spacing: .06em;
}
.rvwt-l7-menu-section .rvwt-mft__tab.is-active {
  color: #1e2d1e;
  border-bottom-color: #c4a96a;
}
.rvwt-l7-menu-section .rvwt-mft__section-label { color: #c4a96a; }
.rvwt-l7-menu-section .rvwt-mft__item-name  { font-family: 'Lora', Georgia, serif; color: #1e2d1e; }
.rvwt-l7-menu-section .rvwt-mft__item-price { color: #043a21; }
.rvwt-l7-menu-section .rvwt-mft__item { border-bottom-color: rgba(4,58,33,.08); }

/* ── Accordion (mat / mac) overrides for L7 ── */
.rvwt-l7-menu-section .rvwt-mat__section-head,
.rvwt-l7-menu-section .rvwt-mac__head {
  background: #f0ece4;
}
.rvwt-l7-menu-section .rvwt-mat__section-head:hover,
.rvwt-l7-menu-section .rvwt-mac__head:hover {
  background: #e8e3d8;
}
.rvwt-l7-menu-section .rvwt-mat__section-name,
.rvwt-l7-menu-section .rvwt-mac__section-name { color: #1e2d1e; font-family: 'Lora', Georgia, serif; }
.rvwt-l7-menu-section .rvwt-mat__section,
.rvwt-l7-menu-section .rvwt-mac__section { border-color: rgba(4,58,33,.12); }
.rvwt-l7-menu-section .rvwt-mat__tab.is-active,
.rvwt-l7-menu-section .rvwt-mat__menu-tab.is-active { background: #1e2d1e; }

/* ── Responsive ── */
@media (max-width: 768px) {
  .rvwt-l7-menu-section__intro  { padding: 48px 1.5rem 36px; }
  .rvwt-l7-menu-section__body   { padding: 36px 1.5rem 52px; }
  .rvwt-l7-menu-section .rvwt-mcg__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .rvwt-l7-menu-section .rvwt-mcg__grid { grid-template-columns: 1fr; }
  .rvwt-l7-menu-section .rvwt-mcg__menu-tab { padding: 8px 16px; font-size: .82rem; }
}

/* ── Menu item producer / winery line (shared across all menu styles) ────── */
.rvwt-menu-item-producer {
  font-size: .82rem;
  color: #c9a227;
  line-height: 1.3;
  margin-top: 1px;
  margin-bottom: 1px;
}
body.rvwt-dl-4 .rvwt-menu-item-producer { color: #d4a827; }

/* ── GL/BTL column header (shown above the price column in finetabs GL/BTL mode) */
.rvwt-glbtl-header {
  display: flex;
  justify-content: flex-end;
  padding: 0 0 4px;
}
.rvwt-glbtl-label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #6b7280;
  font-style: italic;
}
body.rvwt-dl-4 .rvwt-glbtl-label { color: #9ca3af; }

/* ── Wine List (by the glass / bottle) ───────────────────────────────────── */

/*
 * Two-column grid: wine info on the left, GL/BTL price column on the right.
 * The header row and every item row share the same column widths so the
 * "GL/BTL" label sits exactly above all the prices.
 */
.rvwt-wine-list {
  --wl-price-col: 110px;   /* width of the right price column */
  margin: 36px 0;
  font-family: var(--font-body);
}

/* Header row: title left, GL/BTL label right */
.rvwt-wine-list__header {
  display: grid;
  grid-template-columns: 1fr var(--wl-price-col);
  align-items: baseline;
  margin-bottom: 4px;
}
.rvwt-wine-list__title {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--color-text-strong);
  margin: 0;
}
.rvwt-wine-list__price-label {
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #999;
  font-style: italic;
  text-align: right;
  white-space: nowrap;
}

.rvwt-wine-list__divider {
  height: 1px;
  background: currentColor;
  opacity: .15;
  margin-bottom: 12px;
}

.rvwt-wine-list__section-heading {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-primary, #8A9A7B);
  margin: 22px 0 8px;
  grid-column: 1 / -1;
}

/* Each item row: same two-column grid as the header */
.rvwt-wine-list__item {
  display: grid;
  grid-template-columns: 1fr var(--wl-price-col);
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.rvwt-wine-list__item:last-child { border-bottom: none; }

.rvwt-wine-list__item-left {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.rvwt-wine-list__item-name {
  font-weight: 700;
  font-size: .96rem;
  color: var(--color-text-strong);
  line-height: 1.3;
}
.rvwt-wine-list__item-producer {
  font-size: .82rem;
  color: #c9a227;
  line-height: 1.3;
}
.rvwt-wine-list__item-price {
  font-size: .96rem;
  font-weight: 600;
  color: var(--color-text-strong);
  text-align: right;
  white-space: nowrap;
}

/* Dark layout (DL-4) overrides */
body.rvwt-dl-4 .rvwt-wine-list__title      { color: #e8e0d0; }
body.rvwt-dl-4 .rvwt-wine-list__item-name  { color: #e8e0d0; }
body.rvwt-dl-4 .rvwt-wine-list__item-price { color: #e8e0d0; }
body.rvwt-dl-4 .rvwt-wine-list__item       { border-bottom-color: rgba(255,255,255,.08); }
