/**
 * Keystone visual polish (2026) — shared design system + page polish
 * ----------------------------------------------------------------
 * FULL BACKUP: _assets/css/backups/keystone-polish-20260723-full.css
 * REVERT: cp that file over this one (or remove link / body.site-polish).
 *
 * Shared primitives (.ks-*) near the top alias existing page classes so HTML
 * does not need to change. Prefer these for new UI:
 *   .ks-card  .ks-card--sm  .ks-card-col
 *   .ks-kicker  .ks-kicker--brand  .ks-kicker--muted  .ks-kicker--light
 *   .ks-title  .ks-icon  .ks-bullets  .ks-stat  .ks-stat-num  .ks-stat-label
 *   .ks-rows  .ks-rows-label  .ks-rows-value  .ks-rows-note
 *   .ks-well  .ks-media  .ks-lift  .ks-copy  .ks-copy--muted  .ks-sticky
 *
 * Tokens: body.site-polish (--ks-*). Buttons/forms use Bootstrap 5 --bs-*.
 * ----------------------------------------------------------------
 */

/* ---------- Body font: Open Sans variable (local latin) ---------- */
@font-face {
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url("/_assets/fonts/Open_Sans/OpenSansVariable.woff2") format("woff2");
}

body.site-polish {
  /* Design tokens */
  --ks-green: #469829;
  --ks-green-dark: #37791f;
  --ks-green-soft: rgba(70, 152, 41, 0.1);
  --ks-ink: #191b18;
  --ks-body: #2c322c;
  --ks-muted: #5c665c;
  --ks-cream: #fefcec;
  --ks-surface: #ffffff;
  --ks-border: rgba(25, 27, 24, 0.1);
  --ks-radius-sm: 0.4rem;
  --ks-radius: 0.65rem;
  --ks-radius-lg: 0.9rem;
  --ks-radius-btn: 0.45rem;
  --ks-shadow-sm: 0 1px 2px rgba(25, 27, 24, 0.05),
    0 4px 14px rgba(25, 27, 24, 0.05);
  --ks-shadow: 0 4px 20px rgba(25, 27, 24, 0.08);
  --ks-shadow-lg: 0 12px 36px rgba(25, 27, 24, 0.12);
  --ks-ease: cubic-bezier(0.25, 0.8, 0.25, 1);

  --ks-canvas: #f7f6f0;
  --ks-body-soft: #3a423c;
  --ks-muted-soft: #6b736c;
  --ks-green-darker: #2f681a;

  font-family: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
  color: var(--ks-body);
  line-height: 1.65;
  letter-spacing: 0.005em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: var(--ks-canvas);
}

/* ---------- Oswald stays for headlines (exclude .main-title / mega-nav / footer / .script / .btn) ---------- */
/* Never force ink color on .btn — hover/active text is controlled by button variants */
body.site-polish
  .oswald:not(.main-title):not(.mega-nav-title):not(.footer-kicker):not(
    .footer-heading
  ):not(.footer-newsletter-btn):not(.script):not(.btn),
body.site-polish h1.oswald:not(.main-title),
body.site-polish h2.oswald:not(.main-title),
body.site-polish h3.oswald:not(.main-title),
body.site-polish .display-1:not(.main-title):not(.script),
body.site-polish .display-2:not(.main-title):not(.script),
body.site-polish .display-3:not(.main-title):not(.script),
body.site-polish .display-4:not(.main-title):not(.script),
body.site-polish .display-5:not(.main-title):not(.script),
body.site-polish .display-6:not(.main-title):not(.script),
body.site-polish .display-7:not(.main-title):not(.script) {
  font-family: "Oswald", sans-serif !important;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--ks-ink);
}

/* Buttons still use Oswald typeface when classed .oswald, without forced ink */
body.site-polish .btn.oswald,
body.site-polish a.btn.oswald {
  font-family: "Oswald", sans-serif !important;
  letter-spacing: 0.04em;
  line-height: 1.25;
}

/* Satisfy script accents (must beat Open Sans body + Oswald display rules) */
body.site-polish .script,
body.site-polish .script.display-1,
body.site-polish .script.display-2,
body.site-polish .script.display-3,
body.site-polish .script.display-4,
body.site-polish .script.display-5,
body.site-polish .script.display-6,
body.site-polish .script.display-7,
body.site-polish .oswald .script,
body.site-polish span.script {
  font-family: "Satisfy", cursive !important;
  line-height: 1.25;
  letter-spacing: normal;
  display: inline-block;
  margin-bottom: -0.1rem;
}

/* Don't force dark ink on footer type (but not quick-link cards) */
body.site-polish #footer .oswald:not(.text-primary) {
  color: inherit;
}

body.site-polish #footer h2.oswald {
  color: #fff !important;
}

/* ==========================================================================
   Shared design system (.ks-*)
   --------------------------------------------------------------------------
   Common surfaces, type, icons, lists, and rows. Existing page classes are
   listed as aliases so current HTML keeps working; new markup can use .ks-*.
   ========================================================================== */

/* --- Elevated white card shell --- */
.ks-card,
.about-side-card,
.about-founder-story,
.about-explore-card,
.ha-card,
.venue-room-card,
.venue-cta,
.venue-catering,
.shop-hours-pill,
.shop-cat-card,
.contact-detail,
.ha-policy-card {
  background: var(--ks-surface, #fff);
  border: 1px solid var(--ks-border, rgba(25, 27, 24, 0.1));
  border-radius: var(--ks-radius-lg, 0.85rem);
  box-shadow: 0 0.35rem 1.1rem rgba(25, 27, 24, 0.06);
}

/* Tighter card variant */
.ks-card--sm,
.shop-hours-pill,
.ha-policy-card,
.venue-catering,
.contact-detail {
  border-radius: var(--ks-radius, 0.65rem);
  box-shadow: 0 0.2rem 0.75rem rgba(25, 27, 24, 0.05);
}

/* Flex column card helper */
.ks-card-col,
.about-side-card,
.about-explore-card,
.venue-room-card,
.shop-cat-card,
.radio-topic-card,
.radio-profile {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* --- Eyebrow / kicker --- */
.ks-kicker,
.about-founder-kicker,
.about-explore-kicker,
.about-side-kicker,
.shop-page-kicker,
.shop-hours-label,
.contact-page .contact-kicker,
.feature-museum-kicker,
.feature-shop-kicker,
.dp-kicker,
.ha-next-kicker,
.footer-kicker,
.venue-types-kicker,
.radio-profile-kicker {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0;
}

/* Brand-green kickers (light backgrounds) */
.ks-kicker,
.ks-kicker--brand,
.about-founder-kicker,
.about-explore-kicker,
.about-side-kicker,
.shop-page-kicker,
.shop-hours-label,
.contact-page .contact-kicker,
.feature-museum-kicker,
.dp-kicker {
  color: var(--bs-primary, var(--ks-green, #469829));
}

/* Soft / muted kickers */
.ks-kicker--muted,
.about-side-card-head--rv .about-side-kicker {
  color: var(--ks-muted, #5c665c);
}

/* Light kickers on dark bands (warning yellow) */
.ks-kicker--light,
.feature-shop-kicker,
.ha-next-kicker,
.venue-types-kicker,
.radio-profile-kicker {
  color: rgba(245, 219, 2, 0.9);
}

/* Footer kicker stays soft green on dark footer (not brand green) */
#footer .footer-kicker,
.footer-kicker {
  color: #8fd06a;
}

/* --- Section title --- */
.ks-title,
.about-founder-title,
.about-explore-title,
.about-side-title,
.venue-room-title,
.ha-card-title,
.ha-section-title,
.dp-heading,
.dp-note-title {
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.15;
  color: var(--ks-ink, #191b18);
}

/* --- Soft green icon tile --- */
.ks-icon,
.ha-card-icon,
.shop-cat-card-icon,
.contact-detail-icon,
.dp-note-icon,
.rv-amenity-icon,
.rv-hours-tip-icon,
.rv-fire-highlight-icon,
.ha-next-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 0.55rem;
  background: rgba(70, 152, 41, 0.1);
  color: var(--ks-green, #469829);
}

.ks-icon,
.ha-card-icon {
  width: 2.6rem;
  height: 2.6rem;
  font-size: 1.25rem;
  border-radius: 0.65rem;
}

/* Shop category cards — larger icon tiles */
.shop-cat-card-icon {
  width: 3rem;
  height: 3rem;
  font-size: 1.45rem;
  border-radius: 0.65rem;
  margin-bottom: 0.45rem;
  background: rgba(70, 152, 41, 0.12);
}

.contact-detail-icon,
.rv-amenity-icon,
.rv-hours-tip-icon {
  width: 2.15rem;
  height: 2.15rem;
  font-size: 1.05rem;
}

/* Directions & parking note icons — larger tile */
.dp-note-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.65rem;
  background: rgba(70, 152, 41, 0.12);
  color: var(--dp-green, var(--ks-green, #469829));
  font-size: 1.35rem;
  margin-bottom: 0.85rem;
}

/* --- Dot bullet lists --- */
.ks-bullets,
.about-side-bullets,
.venue-room-amenities {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ks-bullets > li,
.about-side-bullets li,
.venue-room-amenities li {
  position: relative;
  padding-left: 0.95rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ks-body, #2c322c);
  line-height: 1.35;
}

.ks-bullets > li::before,
.about-side-bullets li::before,
.venue-room-amenities li::before,
.rv-fire-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--bs-primary, var(--ks-green, #469829));
}

/* --- Stat / meta chips --- */
.ks-stat,
.about-side-meta > li,
.feature-museum-stats > li,
.feature-shop-meta > li,
.feature-restaurant-meta > li {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.5rem;
  background: var(--ks-canvas, #f7f6f0);
  border: 1px solid rgba(25, 27, 24, 0.08);
}

.ks-stat-num,
.about-side-meta-num,
.feature-museum-stat-num,
.feature-shop-meta-num,
.feature-restaurant-meta-num {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.1;
  color: var(--bs-primary, var(--ks-green, #469829));
}

.ks-stat-label,
.about-side-meta-label,
.feature-museum-stat-label,
.feature-shop-meta-label,
.feature-restaurant-meta-label {
  font-size: 0.75rem;
  color: var(--ks-muted, #5c665c);
  line-height: 1.3;
}

/* --- Price / schedule rows --- */
.ks-rows > li,
.ha-prices li,
.ha-schedule li,
.about-side-prices > li {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--ks-border, rgba(25, 27, 24, 0.08));
}

.ks-rows > li:first-child,
.ha-prices li:first-child,
.ha-schedule li:first-child,
.about-side-prices > li:first-child {
  padding-top: 0.1rem;
}

.ks-rows > li:last-child,
.ha-prices li:last-child,
.ha-schedule li:last-child,
.about-side-prices > li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.ks-rows-label,
.ha-price-label,
.ha-schedule-label,
.about-side-price-label {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--ks-ink, #191b18);
  line-height: 1.2;
}

.ks-rows-value,
.ha-price-amount,
.ha-schedule-time,
.about-side-price-amount {
  flex-shrink: 0;
  font-family: "Oswald", sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ks-green-dark, #37791f);
  white-space: nowrap;
  line-height: 1.2;
}

.ks-rows-note,
.ha-price-note,
.ha-schedule-note,
.about-side-price-note {
  font-size: 0.8rem;
  color: var(--ks-muted, #5c665c);
  font-weight: 500;
}

/* --- Soft inset panel --- */
.ks-well,
.about-side-logo-panel,
.rv-hours-tip,
.rv-safety,
.rv-rate-callout,
.ha-holiday {
  border-radius: 0.55rem;
  background: var(--ks-canvas, #f7f6f0);
  border: 1px solid rgba(25, 27, 24, 0.08);
}

.rv-hours-tip,
.rv-safety,
.rv-rate-callout,
.ha-holiday {
  background: rgba(70, 152, 41, 0.08);
  border-color: rgba(70, 152, 41, 0.16);
}

/* --- Media frame --- */
.ks-media,
.about-founder-photo,
.about-explore-card-media,
.venue-room-media,
.shop-page-hero-fig,
.shop-category-fig,
.ha-map-wrap,
.dp-map-frame,
.rv-gallery-fig {
  overflow: hidden;
  border-radius: var(--ks-radius, 0.65rem);
  background: var(--bs-gray-200, #e9ecef);
}

/* --- Hover lift --- */
.ks-lift,
.about-explore-card,
.shop-cat-card,
.ha-next-card,
.radio-topic-card,
#three_up_ql .ql-card {
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.ks-lift:hover,
.ks-lift:focus,
.about-explore-card:hover,
.about-explore-card:focus,
.shop-cat-card:hover,
.shop-cat-card:focus,
.ha-next-card:hover,
.ha-next-card:focus,
.radio-topic-card:hover,
#three_up_ql .ql-card:hover,
#three_up_ql .ql-card:focus-visible {
  transform: translateY(-2px);
}

/* --- Muted body copy --- */
.ks-copy,
.about-founder-copy,
.venue-room-copy,
.ha-lead,
.dp-body-copy,
.rv-body-copy,
.rv-lead {
  color: var(--ks-body, #2c322c);
  line-height: 1.55;
}

.ks-copy--muted,
.about-side-copy,
.about-explore-lead,
.about-explore-card-desc,
.ha-card-sub {
  color: var(--ks-muted, #5c665c);
  line-height: 1.55;
}

/* --- Sticky side column --- */
@media (min-width: 992px) {
  .ks-sticky,
  .about-side {
    position: sticky;
    top: 6.5rem;
  }

  .contact-aside {
    position: sticky;
    top: 1.5rem;
  }
}

/* ---------- Gift Shop page (/shop/) ---------- */
.shop-page {
  background: #fff;
}

.shop-page-intro {
  background: linear-gradient(180deg, #ffffff 0%, #f7f6f0 100%);
}

/* .shop-page-kicker → shared .ks-* */

.shop-hours {
  list-style: none;
  padding: 0;
}

.shop-hours-pill {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.75rem 1rem;
  min-width: 9.5rem;
}

.shop-hours-label {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  color: var(--bs-primary, #469829);
  font-weight: 600;
}

.shop-hours-value {
  font-size: 0.95rem;
  font-weight: 600;
  color: #191b18;
}

.shop-page-hero-fig {
  border-radius: 0.85rem;
  overflow: hidden;
  box-shadow: 0 1rem 2.5rem rgba(25, 27, 24, 0.12);
  border: 1px solid rgba(25, 27, 24, 0.08);
  background: #f7f6f0;
}

.shop-page-hero-img {
  display: block;
  width: 100%;
  height: auto;
}

/* Category jump cards */
.shop-cat-card {
  align-items: flex-start;
  gap: 0.25rem;
  padding: 1.15rem 1.15rem 1.25rem;
  height: 100%;
  color: #191b18 !important;
}

.shop-cat-card:hover,
.shop-cat-card:focus {
  border-color: rgba(70, 152, 41, 0.45);
  background: #fff;
  box-shadow: 0 0.45rem 1.25rem rgba(70, 152, 41, 0.15);
  transform: translateY(-2px);
  color: #191b18 !important;
}

.shop-cat-card:hover .shop-cat-card-icon {
  background: rgba(70, 152, 41, 0.22);
}

.shop-cat-card-title {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--bs-primary, #469829);
}

.shop-cat-card-desc {
  font-size: 0.82rem;
  color: #5c665c;
  line-height: 1.35;
}

/* Category product bands — hanging h2 above colored body (classic Keystone pattern) */
.shop-category {
  position: relative;
  scroll-margin-top: 7rem;
}

.shop-category::before {
  content: none !important;
  display: none !important;
}

.shop-category-title-band {
  position: relative;
  z-index: 2;
  background: transparent;
}

/* Title colors: keep .main-title spacing, override global white force */
body.site-polish .shop-category--toys .main-title,
body.site-polish .shop-category--toys .main-title.text-primary,
body.site-polish .shop-category--books .main-title,
body.site-polish .shop-category--books .main-title.text-primary {
  color: var(--bs-primary, #469829) !important;
}

body.site-polish .shop-category--decor .main-title,
body.site-polish .shop-category--decor .main-title.text-dark {
  color: #191b18 !important;
}

body.site-polish .shop-category--apparel .main-title,
body.site-polish .shop-category--apparel .main-title.text-warning {
  color: var(--bs-warning, #f5db02) !important;
}

.shop-category-body {
  position: relative;
  z-index: 1;
  isolation: isolate;
}

/* Force white copy inside green/dark shop bands */
.shop-category-body.text-white,
.shop-category-body.bg-primary,
.shop-category-body.bg-dark,
.shop-category--toys .shop-category-body,
.shop-category--books .shop-category-body,
.shop-category--decor .shop-category-body {
  color: #fff !important;
}

.shop-category-body.text-white p,
.shop-category-body.text-white .oswald,
.shop-category-body.text-white .display-7,
.shop-category-body.text-white li,
.shop-category-body.bg-primary p,
.shop-category-body.bg-primary .oswald,
.shop-category-body.bg-primary .display-7,
.shop-category-body.bg-primary li,
.shop-category-body.bg-dark p,
.shop-category-body.bg-dark .oswald,
.shop-category-body.bg-dark .display-7,
.shop-category-body.bg-dark li,
body.site-polish .shop-category-body.text-white p,
body.site-polish .shop-category-body.text-white .oswald,
body.site-polish .shop-category-body.text-white .display-7,
body.site-polish .shop-category-body.text-white li,
body.site-polish .shop-category-body.bg-primary p,
body.site-polish .shop-category-body.bg-primary .oswald,
body.site-polish .shop-category-body.bg-primary .display-7,
body.site-polish .shop-category-body.bg-primary li {
  color: #fff !important;
}

/* Apparel only: warning yellow + dark text */
.shop-category--apparel .shop-category-body.bg-warning,
.shop-category--apparel .shop-category-body.text-dark {
  color: #191b18 !important;
}

.shop-category--apparel .shop-category-body.bg-warning p,
.shop-category--apparel .shop-category-body.bg-warning .oswald,
.shop-category--apparel .shop-category-body.bg-warning .display-7,
.shop-category--apparel .shop-category-body.bg-warning li,
body.site-polish .shop-category--apparel .shop-category-body.bg-warning p,
body.site-polish .shop-category--apparel .shop-category-body.bg-warning .oswald,
body.site-polish .shop-category--apparel .shop-category-body.bg-warning .display-7,
body.site-polish .shop-category--apparel .shop-category-body.bg-warning li {
  color: #191b18 !important;
}

.shop-category--apparel .shop-category-body .bullet li:before {
  border-color: #191b18;
}

.shop-category-body .bullet li:before {
  border-color: #f5db02;
}

.shop-category-fig {
  border-radius: 0.5rem;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.2);
  border: 3px solid rgba(245, 219, 2, 0.85);
  box-shadow: 0 0.35rem 1.1rem rgba(0, 0, 0, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.shop-category--apparel .shop-category-fig {
  background: #fff;
  border-color: rgba(25, 27, 24, 0.85);
  box-shadow: 0 0.35rem 1.1rem rgba(0, 0, 0, 0.18);
}

.shop-category-fig:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.65rem 1.5rem rgba(0, 0, 0, 0.35);
}

.shop-category-fig img,
.shop-category-fig picture,
.shop-category-fig picture img {
  display: block;
  width: 100%;
  height: auto;
}

/* ---------- About museum page: content below intro ---------- */
.about-below {
  background: #fff;
  border-top: 1px solid rgba(25, 27, 24, 0.06);
}

/* Founder — 2/3 story + 1/3 side cards */
.about-founder-section {
  background: linear-gradient(180deg, #f7f6f0 0%, #ffffff 100%);
}

/* .about-founder-kicker → shared .ks-* */

.about-founder-title {
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #191b18 !important;
  line-height: 1.12;
}

body.site-polish .about-founder-title {
  color: #191b18 !important;
}

.about-founder-title .script {
  color: var(--bs-primary, #469829);
}

.about-founder-story {
  padding: 1.5rem 1.35rem 1.65rem;
  height: 100%;
}

@media (min-width: 768px) {
  .about-founder-story {
  padding: 1.75rem 1.75rem 1.9rem;
}
}

.about-founder-photo {
  border-radius: 0.65rem;
  overflow: hidden;
  background: #e9ecef;
  border: 1px solid rgba(25, 27, 24, 0.1);
  box-shadow: 0 0.35rem 1rem rgba(25, 27, 24, 0.08);
}

.about-founder-photo--hero img {
  display: block;
  width: 100%;
  height: auto;
}

.about-founder-caption {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.65rem 0.15rem 0.1rem;
  background: transparent;
  color: #191b18;
}

.about-founder-caption-name {
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #191b18;
}

.about-founder-caption-role {
  font-size: 0.8rem;
  color: #5c665c;
  line-height: 1.3;
}

.about-founder-lead {
  font-size: 1.08rem;
  line-height: 1.55;
  color: #2c322c;
}

.about-founder-copy {
  color: #3a423c;
  line-height: 1.65;
  font-size: 0.98rem;
}

.about-founder-more {
  margin-top: 1rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(25, 27, 24, 0.1);
}

.about-founder-more p {
  color: #3a423c;
  line-height: 1.65;
  font-size: 0.96rem;
  margin-bottom: 1rem;
}

.about-founder-actions {
  margin-top: 1.15rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(25, 27, 24, 0.08);
}

.about-founder-actions .btn {
  font-size: 0.85rem;
  letter-spacing: 0.04em;
}

@media (min-width: 992px) {
  .about-side {
    position: sticky;
    top: 6.5rem;
  }
}

/* Collection explore cards */
.about-explore {
  background: #f7f6f0;
  border-top: 1px solid rgba(25, 27, 24, 0.06);
}

/* 5 equal columns when space allows (Bootstrap has no row-cols-5) */
@media (min-width: 1200px) {
  .about-explore-row > [class*="col"] {
    flex: 0 0 20%;
    max-width: 20%;
  }
}

/* .about-explore-kicker → shared .ks-* */

.about-explore-title {
  font-size: clamp(1.65rem, 3vw, 2.15rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #191b18 !important;
}

body.site-polish .about-explore-title {
  color: #191b18 !important;
}

.about-explore-lead {
  max-width: 28rem;
  font-size: 0.98rem;
  color: #5c665c;
  line-height: 1.5;
}

.about-explore-card {
  color: #191b18 !important;
}

.about-explore-card:hover,
.about-explore-card:focus {
  border-color: rgba(70, 152, 41, 0.45);
  box-shadow: 0 0.55rem 1.35rem rgba(70, 152, 41, 0.16);
  transform: translateY(-2px);
  color: #191b18 !important;
}

.about-explore-card-media {
  background: #e9ecef;
  overflow: hidden;
}

.about-explore-card-media img {
  transition: transform 0.35s ease;
}

.about-explore-card:hover .about-explore-card-media img {
  transform: scale(1.04);
}

.about-explore-card-media--radio {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(165deg, #1a1f1a 0%, #2a2218 100%);
}

.about-explore-radio-label {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #f5db02;
}

.about-explore-card-media--all {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(
    165deg,
    var(--bs-primary, #469829) 0%,
    #35741f 100%
  );
}

.about-explore-all-label {
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #fff;
}

.about-explore-card-body {
  padding: 1rem 1.1rem 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.about-explore-card-title {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--bs-primary, #469829);
}

@media (min-width: 1200px) {
  .about-explore-card-body {
    padding: 0.85rem 0.75rem 0.95rem;
  }

  .about-explore-card-title {
    font-size: 0.92rem;
  }

  .about-explore-card-desc {
    font-size: 0.78rem;
  }
}

.about-explore-card:hover .about-explore-card-title {
  color: #35741f;
}

.about-explore-card-desc {
  font-size: 0.84rem;
  color: #5c665c;
  line-height: 1.35;
}

/* Visit CTAs */
.about-visit-ctas {
  background: #fff;
  border-top: 1px solid rgba(25, 27, 24, 0.06);
}

/* .about-side-card → shared .ks-* */

.about-side-card-head {
  padding: 1.1rem 1.25rem 1rem;
  border-bottom: 1px solid rgba(25, 27, 24, 0.08);
  background: linear-gradient(
    180deg,
    rgba(70, 152, 41, 0.08) 0%,
    rgba(70, 152, 41, 0.02) 100%
  );
}

.about-side-card-head--rv {
  background: linear-gradient(
    180deg,
    rgba(25, 27, 24, 0.05) 0%,
    rgba(25, 27, 24, 0.015) 100%
  );
}

.about-side-card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 1.15rem 1.25rem 1.35rem;
}

/* .about-side-kicker → shared .ks-* */

.about-side-card-head--rv .about-side-kicker {
  color: #5c665c;
}

.about-side-title {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #191b18 !important;
  line-height: 1.2;
}

body.site-polish .about-side-title {
  color: #191b18 !important;
}

.about-side-copy {
  font-size: 0.9rem;
  line-height: 1.55;
  color: #5c665c;
  margin-bottom: 0;
}

.about-side-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
}

.about-side-meta > li {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.7rem 0.75rem;
  border-radius: 0.5rem;
  background: #f7f6f0;
  border: 1px solid rgba(25, 27, 24, 0.08);
  text-align: center;
}

.about-side-meta-num {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
  color: var(--bs-primary, #469829);
}

.about-side-meta-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #5c665c;
  line-height: 1.25;
}

.about-side-logo-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1rem;
  border-radius: 0.55rem;
  background: #f7f6f0;
  border: 1px solid rgba(25, 27, 24, 0.08);
}

.about-side-logo-link {
  display: block;
  max-width: 9.5rem;
}

.about-side-logo-link img {
  display: block;
  width: 100%;
  height: auto;
}

.about-side-bullets {
  display: grid;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
}

/* .about-side-bullets li → shared .ks-* */

/* .about-side-bullets li::before → shared .ks-* */

.about-side-card .btn {
  margin-top: auto;
  font-size: 0.82rem;
  letter-spacing: 0.05em;
  border-radius: 0.45rem !important;
}

.about-side-card .btn-primary,
.about-side-card a.btn-primary,
body.site-polish .about-side-card .btn-primary {
  color: #fff !important;
}

/* Admission price list (mirrors visit /hours-admission card) */
.about-side-prices {
  margin: 0;
  padding: 0;
}

/* .about-side-prices > li → shared .ks-* */

/* .about-side-prices > li:first-child → shared .ks-* */

/* .about-side-prices > li:last-child → shared .ks-* */

.about-side-price-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

/* .about-side-price-label → shared .ks-* */

/* .about-side-price-note → shared .ks-* */

.about-side-price-footnote {
  font-size: 0.72rem;
  font-style: italic;
  color: #5c665c;
}

.about-side-price-amount {
  padding-top: 0.05rem;
}

.about-side-price-amount--free {
  color: var(--bs-primary, #469829);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* ---------- Private event rentals (/private-event-rentals/) ---------- */
#event_rooms.venue-page,
.venue-page {
  position: relative;
  /* White → light cream through the whole section */
  background: linear-gradient(180deg, #ffffff 0%, #f7f6f0 100%);
  color: #191b18;
}

.venue-page::before {
  content: none !important;
  display: none !important;
}

.venue-title-band {
  position: relative;
  z-index: 2;
  background: transparent;
}

body.site-polish .venue-title-band .main-title,
body.site-polish .venue-title-band .main-title.text-primary {
  color: var(--bs-primary, #469829) !important;
}

.venue-body {
  position: relative;
  z-index: 1;
  isolation: isolate;
  color: #191b18 !important;
  background: transparent;
}

.venue-body p,
.venue-body .oswald:not(.btn),
.venue-body .display-6,
.venue-body li,
body.site-polish .venue-body p,
body.site-polish .venue-body .oswald:not(.btn),
body.site-polish .venue-body .display-6,
body.site-polish .venue-body li {
  color: #191b18 !important;
}

/* Keep primary CTA white on green (not ink from .venue-body .oswald) */
.venue-body .btn-primary,
.venue-body a.btn-primary,
.venue-body .btn-primary.oswald,
.venue-body a.btn-primary.oswald,
.venue-body .btn-primary.text-white,
body.site-polish .venue-body .btn-primary,
body.site-polish .venue-body a.btn-primary,
body.site-polish .venue-body .btn-primary.oswald {
  color: #fff !important;
}

.venue-body .btn-primary:hover,
.venue-body a.btn-primary:hover,
body.site-polish .venue-body .btn-primary:hover,
body.site-polish .venue-body a.btn-primary:hover {
  color: #fff !important;
}

.venue-link {
  color: var(--bs-primary, #469829) !important;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.venue-link:hover {
  color: #35741f !important;
}

.venue-inline-fig {
  border-radius: 0.65rem;
  overflow: hidden;
  border: 2px solid rgba(70, 152, 41, 0.45);
  box-shadow: 0 0.5rem 1.25rem rgba(25, 27, 24, 0.1);
  background: #fff;
}

.venue-inline-fig img {
  display: block;
  width: 100%;
  height: auto;
}

.venue-inline-cap {
  padding: 0.55rem 0.75rem 0.65rem;
  color: #5c665c !important;
  background: #fff;
  border-top: 1px solid rgba(25, 27, 24, 0.08);
}

.venue-catering {
  padding: 1.15rem 1.25rem;
}

.venue-types-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  border-radius: 0.75rem;
  background: linear-gradient(
    165deg,
    #4fa82f 0%,
    var(--bs-primary, #469829) 42%,
    #3a7f22 100%
  ) !important;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.12) inset,
    0 0.55rem 1.5rem rgba(25, 27, 24, 0.16);
  height: 100%;
  color: #fff;
  overflow: hidden;
}

.venue-types-head {
  padding: 1.15rem 1.35rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.1);
}

.venue-types-kicker {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: rgba(245, 219, 2, 0.92);
  margin: 0;
}

.venue-types-card h3,
body.site-polish .venue-types-card h3,
body.site-polish .venue-types-card .oswald {
  color: #fff !important;
  letter-spacing: 0.04em;
  font-weight: 700;
  line-height: 1.2;
}

.venue-types-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0.35rem 0;
}

.venue-types-list li,
body.site-polish .venue-types-list li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.45rem 1.35rem 0.45rem 1.25rem;
  font-size: 0.98rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.94) !important;
  border: 0;
  border-bottom: 0;
  background: transparent;
}

.venue-types-list li::before {
  content: "";
  flex-shrink: 0;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: #f5db02;
  box-shadow: 0 0 0 3px rgba(245, 219, 2, 0.18);
}

@media (min-width: 576px) and (max-width: 991.98px) {
  .venue-types-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

/* .venue-room-card → shared .ks-* */

.venue-room-media {
  background: #e9ecef;
  overflow: hidden;
}

.venue-room-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.venue-room-body {
  position: relative;
  padding: 1.5rem 1.35rem 1.55rem;
  flex: 1 1 auto;
}

@media (min-width: 992px) {
  .venue-room-body {
    padding: 1.65rem 1.6rem 1.75rem;
  }
}

.venue-room-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
}

.venue-room-badge {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  flex-shrink: 0;
  margin: 0;
  margin-left: auto;
  padding: 0.35rem 0.7rem;
  border-radius: 0.4rem;
  background: #f5db02;
  color: #191b18;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  white-space: nowrap;
}

.venue-room-badge .script {
  font-weight: 400;
  font-size: 0.95em;
}

.venue-room-title {
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #191b18 !important;
  line-height: 1.15;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

body.site-polish .venue-room-title {
  color: #191b18 !important;
}

.venue-room-title .script {
  display: inline-block;
  font-size: 0.7em;
  margin-right: 0.2rem;
  color: var(--bs-primary, #469829);
}

.venue-room-copy {
  font-size: 0.92rem;
  line-height: 1.55;
  color: #2c322c !important;
}

.venue-room-amenities-title {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--bs-primary, #469829) !important;
}

.venue-room-amenities {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem 0.75rem;
}

/* .venue-room-amenities li → shared .ks-* */

/* .venue-room-amenities li::before → shared .ks-* */

.venue-cta {
  padding: 1.75rem 1.25rem;
}

.venue-cta-lead {
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  color: #191b18 !important;
}

.venue-cta-copy {
  max-width: 34rem;
  color: #5c665c !important;
  line-height: 1.55;
}

/* ---------- Homepage gift shop feature ---------- */
.feature-shop-title {
  position: relative;
  z-index: 3;
  /* Continues page / quote area; hanging title drops into green band */
  background: transparent;
}

.feature-shop-band {
  isolation: isolate;
}

.feature-shop-copy {
  position: relative;
  background: rgba(25, 27, 24, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1rem;
  padding: 1.5rem 1.35rem 1.6rem;
  backdrop-filter: blur(6px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

@media (min-width: 992px) {
  .feature-shop-copy {
    padding: 1.85rem 1.75rem 1.9rem;
  }
}

.feature-shop-kicker {
  color: #f5db02;
}

.feature-shop-copy p {
  color: rgba(255, 255, 255, 0.92);
}

.feature-shop-cats {
  margin: 0;
}

.feature-shop-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none !important;
  color: #fff !important;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.22);
  transition: background-color 0.15s ease, border-color 0.15s ease,
    transform 0.15s ease;
}

.feature-shop-chip:hover {
  background: rgba(245, 219, 2, 0.95);
  border-color: #f5db02;
  color: #191b18 !important;
  transform: translateY(-1px);
}

.feature-shop-meta {
  margin: 0;
}

.feature-shop-meta > li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 7.5rem;
  padding: 0.65rem 0.85rem;
  border-radius: 0.65rem;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.1);
  text-align: left;
}

.feature-shop-meta-num {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #f5db02;
  line-height: 1.15;
}

.feature-shop-meta-label {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.75);
  margin-top: 0.2rem;
  line-height: 1.3;
}

.feature-shop-actions .btn {
  border-radius: 0.45rem !important;
}

.feature-shop-photo {
  max-width: 28rem;
  width: 100%;
}

.feature-shop-photo img,
.feature-shop-photo picture,
.feature-shop-photo picture img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 50%;
}

body.site-polish .feature-shop-kicker {
  color: #f5db02 !important;
}

body.site-polish .feature-shop-copy p,
body.site-polish .feature-shop-meta-label {
  color: rgba(255, 255, 255, 0.88) !important;
}

/* ---------- Homepage restaurant feature ---------- */
/*
 * Title strip + museum gallery must share one solid dark.
 * Bootstrap .bg-dark is #191B18 — use that exactly (not a custom near-black).
 */
.feature-museum-gallery,
.feature-museum-gallery.bg-dark,
#feature_meusuem .feature-museum-gallery,
.feature-restaurant-title,
.feature-restaurant-title.bg-dark,
#feature_restaurant .feature-restaurant-title {
  background: #191b18 !important;
  background-color: #191b18 !important;
  background-image: none !important;
}

.feature-restaurant-title {
  position: relative;
  z-index: 1;
}

.feature-restaurant-title .main-title {
  /* Yellow title on dark band */
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35) !important;
}

.feature-restaurant-band {
  isolation: isolate;
  position: relative;
  z-index: 0;
}

.feature-restaurant-copy {
  position: relative;
  isolation: isolate;
  /* Light frosted cream — translucent over yellow/photo */
  background-color: rgba(254, 252, 236, 0.35) !important;
  background-image: none !important;
  border: 1px solid rgba(255, 255, 255, 0.65) !important;
  border-radius: 1rem !important;
  padding: 1.5rem 1.35rem 1.6rem;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset,
    0 12px 36px rgba(25, 27, 24, 0.12) !important;
  backdrop-filter: blur(18px) saturate(1.25) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;
}

/* Extra frost layer (helps when parent is solid yellow) */
.feature-restaurant-copy::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background: rgba(255, 255, 255, 0.12);
  pointer-events: none;
}

.feature-restaurant-copy > * {
  position: relative;
  z-index: 1;
}

@media (min-width: 992px) {
  .feature-restaurant-copy {
    padding: 1.85rem 1.75rem 1.9rem;
  }
}

body.site-polish .feature-restaurant-copy {
  background-color: rgba(254, 252, 236, 0.35) !important;
}

.feature-restaurant-script {
  color: rgb(184, 21, 0);
  transform: rotate(-6deg);
  display: inline-block;
  margin-bottom: 0.15rem;
  text-shadow: 0.08rem 0.08rem 0 rgba(0, 0, 0, 0.08);
}

.feature-restaurant-meta {
  margin: 0;
}

.feature-restaurant-meta > li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 7.5rem;
  max-width: 12rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.65rem;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(25, 27, 24, 0.08);
  text-align: left;
}

.feature-restaurant-meta-num {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #191b18;
  line-height: 1.15;
}

.feature-restaurant-meta-label {
  font-size: 0.75rem;
  color: #5c665c;
  margin-top: 0.2rem;
  line-height: 1.3;
}

.feature-restaurant-actions .btn {
  border-radius: 0.45rem !important;
}

body.site-polish .feature-restaurant-meta-label {
  color: #5c665c !important;
}

body.site-polish .feature-restaurant-copy p {
  color: #2c322c !important;
}

/* ---------- Homepage museum feature ---------- */
/* .feature-museum-kicker → shared .ks-* */

.feature-museum-stats {
  margin: 0;
}

.feature-museum-stats > li {
  display: flex;
  flex-direction: column;
  min-width: 5.5rem;
  padding: 0.65rem 0.9rem;
  border-radius: 0.65rem;
  background: #f7f6f0;
  border: 1px solid rgba(25, 27, 24, 0.06);
}

.feature-museum-stat-num {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #469829;
  line-height: 1.1;
}

.feature-museum-stat-label {
  font-size: 0.78rem;
  color: #5c665c;
  margin-top: 0.15rem;
}

.feature-museum-actions .btn {
  border-radius: 0.45rem !important;
}

.feature-museum-hero-link {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: none;
}

.feature-museum-hero-link:hover {
  transform: none;
  box-shadow: none;
}

.feature-museum-hero-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 1rem;
}

.feature-museum-hero-link:hover .feature-museum-hero-img {
  transform: none;
}

.feature-museum-tile {
  display: block;
  position: relative;
  border-radius: 0.75rem;
  overflow: visible;
  /* Motion lives on figure — avoids double-transform “pop” on the <a> */
  transform: none !important;
  transition: none !important;
  box-shadow: none !important;
}

.feature-museum-tile > figure {
  position: relative;
  border-radius: 0.75rem;
  overflow: hidden;
  margin: 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  transform: translate3d(0, 0, 0);
  transition: transform 0.65s cubic-bezier(0.25, 0.8, 0.25, 1),
    box-shadow 0.65s cubic-bezier(0.25, 0.8, 0.25, 1);
  backface-visibility: hidden;
}

.feature-museum-tile:hover > figure,
.feature-museum-tile:focus-visible > figure {
  transform: translate3d(0, -8px, 0);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.38);
}

/* Cover both classed img and nested picture sources from resp_img() */
.feature-museum-tile-img,
.feature-museum-tile picture,
.feature-museum-tile picture img,
.feature-museum-tile figure > img {
  width: 100%;
  height: auto;
  display: block;
  border: 0 !important;
}

.feature-museum-tile picture img,
.feature-museum-tile-img,
.feature-museum-tile figure img {
  transform: scale(1);
  transform-origin: center center;
  transition: transform 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
  backface-visibility: hidden;
}

.feature-museum-tile:hover picture img,
.feature-museum-tile:hover .feature-museum-tile-img,
.feature-museum-tile:hover figure img,
.feature-museum-tile:focus-visible picture img,
.feature-museum-tile:focus-visible .feature-museum-tile-img {
  transform: scale(1.04);
}

.feature-museum-tile-cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 1.75rem 0.75rem 0.65rem;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #fff !important;
  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0) 100%
  );
  text-align: center;
  transition: padding 0.65s cubic-bezier(0.25, 0.8, 0.25, 1),
    background 0.65s ease;
}

.feature-museum-tile:hover .feature-museum-tile-cap,
.feature-museum-tile:focus-visible .feature-museum-tile-cap {
  padding-bottom: 0.9rem;
  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.82) 0%,
    rgba(0, 0, 0, 0.05) 100%
  );
}

@media (prefers-reduced-motion: reduce) {
  .feature-museum-tile > figure,
  .feature-museum-tile picture img,
  .feature-museum-tile-img,
  .feature-museum-tile-cap {
    transition: none !important;
  }

  .feature-museum-tile:hover > figure,
  .feature-museum-tile:focus-visible > figure {
    transform: none;
  }

  .feature-museum-tile:hover picture img,
  .feature-museum-tile:hover .feature-museum-tile-img {
    transform: none;
  }
}

.feature-museum-gallery-cta {
  border-radius: 0.45rem !important;
  letter-spacing: 0.06em;
}

body.site-polish .feature-museum-kicker {
  color: #469829 !important;
}

body.site-polish .feature-museum-stat-label {
  color: #5c665c !important;
}

body.site-polish .feature-museum-tile-cap {
  color: #fff !important;
}

/*
 * Danger utilities — stripped from custom Bootstrap $theme-colors map.
 * Use solid hex (not rgba + custom props) so backgrounds never go transparent
 * when --bs-*-rgb is missing or invalid.
 */
:root {
  --bs-danger: #dc3545;
  --bs-danger-rgb: 220, 53, 69;
}
.bg-danger {
  background-color: #dc3545 !important;
}
.text-bg-danger {
  color: #fff !important;
  background-color: #dc3545 !important;
}
.text-danger {
  color: #dc3545 !important;
}

/* Event list + detail: Today / Tomorrow callouts (solid colors, high z-index) */
.event-list-media .event-when-badge {
  z-index: 60 !important;
  pointer-events: none;
}
.event-when-badge.bg-danger,
.event-when-badge.text-bg-danger,
.badge.event-when-badge.text-bg-danger {
  background-color: #dc3545 !important;
  color: #fff !important;
}
.event-when-badge.bg-warning,
.event-when-badge.text-bg-warning,
.badge.event-when-badge.text-bg-warning {
  background-color: #f5db02 !important;
  color: #191b18 !important;
}

/* ---------- Quick links (#three_up_ql) ---------- */
/* Darker primary → brand primary (overrides solid .bg-primary) */
#quick-links.bg-primary {
  background-color: var(--bs-primary, var(--ks-green, #469829)) !important;
  background-image: linear-gradient(
    180deg,
    var(--ks-green-dark, #37791f) 0%,
    var(--bs-primary, var(--ks-green, #469829)) 100%
  ) !important;
}

#quick_link #three_up_ql {
  margin-bottom: 0;
}

#three_up_ql .ql-card {
  --ql-radius: 1rem;
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: visible; /* keep CTA visible; clip only on media */
  text-decoration: none !important;
  color: #191b18;
  background: #fff;
  border: 0;
  border-radius: var(--ql-radius);
  box-shadow: 0 4px 18px rgba(25, 27, 24, 0.08);
  transition: transform 0.2s cubic-bezier(0.25, 0.8, 0.25, 1),
    box-shadow 0.2s cubic-bezier(0.25, 0.8, 0.25, 1), border-color 0.2s ease;
}

#three_up_ql .ql-card:hover,
#three_up_ql .ql-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(25, 27, 24, 0.14);
  outline: none;
}

#three_up_ql .ql-card-media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: #eef1ee;
  overflow: hidden;
  border-radius: var(--ql-radius) var(--ql-radius) 0 0;
  flex-shrink: 0;
}

/* Photo media only — do not stretch icons */
#three_up_ql .ql-card-media:not(.ql-card-media--icon) img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

#three_up_ql .ql-card:hover .ql-card-media:not(.ql-card-media--icon) img {
  transform: scale(1.04);
}

/* Icon / illustration media (donate, empty calendar, etc.) */
#three_up_ql .ql-card-media--icon {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 10;
  min-height: 0;
  background: radial-gradient(
      circle at 30% 20%,
      rgba(70, 152, 41, 0.14),
      transparent 55%
    ),
    linear-gradient(165deg, #f7f6f0 0%, #eef2ee 100%);
}

#three_up_ql .ql-card-media--icon .ql-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5rem;
  height: 5rem;
  min-height: 0;
  flex-shrink: 0;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 4px 14px rgba(25, 27, 24, 0.08);
}

#three_up_ql .ql-card-media--icon img,
#three_up_ql .ql-card-icon img {
  width: 2.75rem !important;
  height: 2.75rem !important;
  max-width: 2.75rem !important;
  max-height: 2.75rem !important;
  object-fit: contain !important;
  display: block;
  transform: none !important;
}

#three_up_ql .ql-card:hover .ql-card-media--icon .ql-card-icon {
  box-shadow: 0 6px 18px rgba(70, 152, 41, 0.16);
}

/* Donations card: stronger “give / support” panel (icon, not a museum photo) */
#three_up_ql .ql-card-media--donate {
  background: radial-gradient(
      circle at 28% 22%,
      rgba(70, 152, 41, 0.28),
      transparent 52%
    ),
    linear-gradient(165deg, #e8f3e4 0%, #d4e8ce 48%, #c5dfbc 100%);
}

#three_up_ql .ql-card-media--donate .ql-card-icon {
  width: 5.5rem;
  height: 5.5rem;
  background: #fff;
  box-shadow: 0 6px 18px rgba(70, 152, 41, 0.18);
  border: 2px solid rgba(70, 152, 41, 0.2);
}

#three_up_ql .ql-card-media--donate .ql-card-icon img {
  width: 3.1rem !important;
  height: 3.1rem !important;
  max-width: 3.1rem !important;
  max-height: 3.1rem !important;
}

#three_up_ql .ql-card:hover .ql-card-media--donate .ql-card-icon {
  box-shadow: 0 8px 22px rgba(70, 152, 41, 0.28);
  border-color: rgba(70, 152, 41, 0.35);
}

#three_up_ql .ql-card-badge {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 128px;
  height: 128px;
  pointer-events: none;
}

#three_up_ql .ql-card-badge img {
  width: 128px;
  height: 128px;
  display: block;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.18));
}

#three_up_ql .ql-card-body {
  --ql-body-pad-x: 1.2rem;
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding: 1.15rem var(--ql-body-pad-x) 1.25rem;
  text-align: left;
  background: linear-gradient(180deg, #fffcf3 0%, #ffffff 42%);
  border-radius: 0 0 var(--ql-radius) var(--ql-radius);
  border-top: 1px solid rgba(70, 152, 41, 0.12);
  overflow: visible;
}

#three_up_ql .ql-card-kicker {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #37791f;
  background: rgba(70, 152, 41, 0.1);
  border: 1px solid rgba(70, 152, 41, 0.16);
  border-radius: 999px;
  padding: 0.28rem 0.65rem;
  margin-bottom: 0.65rem;
  line-height: 1;
  flex-shrink: 0;
}

/* Event card: badge + date/time on one row (desktop) */
#three_up_ql .ql-card-topline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0;
}

#three_up_ql .ql-card-topline .ql-card-kicker {
  margin-bottom: 0;
}

#three_up_ql .ql-card-title {
  display: block;
  font-size: 1.28rem;
  font-weight: 700;
  letter-spacing: 0.015em;
  line-height: 1.15;
  color: #469829 !important;
  margin-bottom: 0.55rem;
}

#three_up_ql .ql-card:hover .ql-card-title {
  color: #2f681a !important;
}

#three_up_ql .ql-card-meta {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  font-size: 0.78rem;
  line-height: 1.25;
  color: #3a423c;
  margin-bottom: 0;
}

#three_up_ql .ql-card-meta strong {
  color: #191b18;
  font-weight: 700;
  white-space: nowrap;
}

#three_up_ql .ql-card-meta-time {
  color: #5c665c;
  font-size: 0.76rem;
  white-space: nowrap;
}

/* Desktop: date/time in topline (right of badge) */
#three_up_ql .ql-card-meta--topline {
  align-items: flex-end;
  text-align: right;
  margin-left: auto;
}

#three_up_ql .ql-card-meta--below-title {
  display: none;
  align-items: flex-start;
  text-align: left;
  margin: 0 0 0.45rem;
}

/* Tablet + mobile: date/time under title; hide topline meta */
@media (max-width: 991.98px) {
  #three_up_ql .ql-card-meta--topline {
    display: none !important;
  }

  #three_up_ql .ql-card-meta--below-title {
    display: flex;
  }

  #three_up_ql .ql-card-topline {
    justify-content: flex-start;
  }
}

#three_up_ql .ql-card-text {
  display: block;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #3a423c;
  margin-bottom: 1rem;
  flex: 0 1 auto;
  padding-bottom: 0.15rem;
}

#three_up_ql .ql-card-excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #4a524a;
}

#three_up_ql .ql-card-text strong {
  color: #191b18;
  font-weight: 700;
}

/* Footer-style action chip */
#three_up_ql .ql-card-cta {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  align-items: center;
  gap: 0.45rem;
  align-self: flex-start;
  margin-top: auto;
  flex-shrink: 0;
  font-family: "Oswald", sans-serif !important;
  font-size: 0.82rem !important;
  font-weight: 600;
  letter-spacing: 0.07em;
  line-height: 1 !important;
  color: #fff !important;
  background: #469829;
  border: none;
  border-radius: 999px;
  padding: 0.55rem 0.95rem 0.55rem 1.05rem;
  box-shadow: 0 2px 8px rgba(70, 152, 41, 0.22);
  transition: background-color 0.15s ease, box-shadow 0.15s ease,
    transform 0.15s ease;
}

#three_up_ql .ql-card-cta::after {
  content: "→";
  font-family: inherit;
  color: inherit;
  font-size: 1em;
  transition: transform 0.15s ease;
}

#three_up_ql .ql-card:hover .ql-card-cta,
#three_up_ql .ql-card:focus-visible .ql-card-cta {
  color: #fff !important;
  background: #37791f;
  box-shadow: 0 4px 14px rgba(70, 152, 41, 0.3);
  transform: translateY(-1px);
}

#three_up_ql .ql-card:hover .ql-card-cta::after {
  transform: translateX(3px);
}

/* Mobile: horizontal media + body */
@media (max-width: 767.98px) {
  #three_up_ql .ql-card {
    flex-direction: row;
    align-items: stretch;
    min-height: 0;
  }

  #three_up_ql .ql-card-media {
    flex: 0 0 36%;
    max-width: 36%;
    aspect-ratio: auto;
    min-height: 9.5rem;
    align-self: stretch;
    border-radius: var(--ql-radius) 0 0 var(--ql-radius);
  }

  #three_up_ql .ql-card-media--icon {
    min-height: 9.5rem;
    aspect-ratio: auto;
  }

  #three_up_ql .ql-card-media--icon .ql-card-icon {
    width: 4.25rem;
    height: 4.25rem;
  }

  #three_up_ql .ql-card-media--icon img,
  #three_up_ql .ql-card-icon img {
    width: 2.35rem !important;
    height: 2.35rem !important;
    max-width: 2.35rem !important;
    max-height: 2.35rem !important;
  }

  #three_up_ql .ql-card-body {
    --ql-body-pad-x: 0.95rem;
    flex: 1 1 auto;
    padding: 0.85rem var(--ql-body-pad-x) 0.95rem;
    border-radius: 0 var(--ql-radius) var(--ql-radius) 0;
    border-top: none;
  }

  #three_up_ql .ql-card-kicker {
    font-size: 0.62rem;
    padding: 0.22rem 0.55rem;
    margin-bottom: 0.45rem;
  }

  #three_up_ql .ql-card-title {
    font-size: 1.05rem;
    margin-bottom: 0.35rem;
  }

  #three_up_ql .ql-card-text {
    font-size: 0.84rem;
    margin-bottom: 0.65rem;
  }

  #three_up_ql .ql-card-cta {
    font-size: 0.75rem !important;
    padding: 0.45rem 0.8rem 0.45rem 0.9rem;
  }
}

/* Ensure oswald polish rules never hide / recolor CTA */
body.site-polish #three_up_ql .ql-card-cta,
body.site-polish #footer #three_up_ql .ql-card-cta {
  display: inline-flex !important;
  color: #fff !important;
  font-family: "Oswald", sans-serif !important;
}

body.site-polish #three_up_ql .ql-card-kicker,
body.site-polish #footer #three_up_ql .ql-card-kicker {
  color: #37791f !important;
}

/* Footer quick-links: keep light cards over dark footer */
#footer #three_up_ql .ql-card {
  background: #fff;
}

body.site-polish #three_up_ql .ql-card-title,
body.site-polish #footer #three_up_ql .ql-card-title {
  color: #469829 !important;
}

body.site-polish #three_up_ql .ql-card-text,
body.site-polish #footer #three_up_ql .ql-card-text,
body.site-polish #footer #three_up_ql .ql-card-kicker {
  color: #3a423c !important;
}

body.site-polish #footer #three_up_ql .ql-card-kicker {
  color: #6b736c !important;
}

/* Preserve Bootstrap text color utilities (do not inherit body ink) */
body.site-polish .text-white {
  color: #fff !important;
}

/* White oswald on green/dark surfaces — not mega-nav titles (those stay brand green) */
body.site-polish
  .bg-primary
  .oswald:not(.main-title):not(.mega-nav-title):not(.text-primary):not(
    .text-warning
  ):not(.text-dark),
body.site-polish
  .bg-dark
  .oswald:not(.main-title):not(.mega-nav-title):not(.text-primary):not(
    .text-warning
  ):not(.text-dark) {
  color: #fff !important;
}

/* Mega menu card titles (dropdown sits inside .bg-primary nav) */
body.site-polish .mega-nav-title,
body.site-polish .bg-primary .mega-nav-title,
body.site-polish .mega-nav-card .mega-nav-title {
  color: var(--ks-green, #469829) !important;
}

body.site-polish .mega-nav-card:hover .mega-nav-title,
body.site-polish .mega-nav-card:focus .mega-nav-title {
  color: var(--ks-green-dark, #35741f) !important;
}

body.site-polish p,
body.site-polish li,
body.site-polish .lead {
  color: var(--ks-body);
}

body.site-polish #footer p,
body.site-polish #footer li,
body.site-polish #footer .footer-muted {
  color: rgba(255, 255, 255, 0.62) !important;
}

body.site-polish .lead {
  line-height: 1.55;
  font-weight: 400;
}

body.site-polish .text-secondary,
body.site-polish .small.text-secondary {
  color: var(--ks-muted) !important;
}

/* ---------- .main-title (white on all pages; beat Bootstrap color utilities) ---------- */
body.site-polish .main-title,
body.site-polish h1.main-title,
body.site-polish h2.main-title,
body.site-polish h3.main-title,
body.site-polish .main-title.text-white,
body.site-polish .main-title.text-primary,
body.site-polish .main-title.text-warning,
body.site-polish .main-title.text-dark,
body.site-polish .main-title.text-secondary,
body.site-polish .main-title.text-light {
  color: #fff !important;
}

/*
 * Hero H1s on mobile: .main-title uses line-height:0 for hanging section titles.
 * Multi-line hero titles collapse into themselves — restore a real line box.
 * Hanging h2.main-title sections (Toys, Décor, etc.) stay unchanged.
 */
@media (max-width: 991.98px) {
  .header-top h1.main-title,
  body.site-polish .header-top h1.main-title {
    line-height: 1.05 !important;
    font-size: clamp(2.25rem, 9vw, 3.5rem) !important;
    margin-bottom: 0.15em;
  }

  .header-top .position-absolute.bottom-0 > .container {
    padding-bottom: 0.75rem;
  }
}

/* Homepage Gift Shop section title — keep .main-title spacing, force primary green */
body.site-polish #feature_shop .feature-shop-title .main-title,
body.site-polish #feature_shop .feature-shop-title h2.main-title,
body.site-polish #feature_shop .feature-shop-title .main-title.text-primary {
  color: var(--bs-primary, #469829) !important;
}

/* Homepage Great Food section title — keep .main-title spacing, force warning yellow */
body.site-polish #feature_restaurant .feature-restaurant-title .main-title,
body.site-polish #feature_restaurant .feature-restaurant-title h2.main-title,
body.site-polish #feature_restaurant .feature-restaurant-title .main-title.text-warning {
  color: var(--bs-warning, #f5db02) !important;
}

/* ---------- Buttons ---------- */
body.site-polish .btn {
  border-radius: var(--ks-radius-btn) !important;
  font-family: "Oswald", sans-serif;
  letter-spacing: 0.04em;
  font-weight: 500;
  transition: background-color 0.18s var(--ks-ease),
    border-color 0.18s var(--ks-ease), color 0.18s var(--ks-ease),
    box-shadow 0.18s var(--ks-ease), transform 0.18s var(--ks-ease);
}

/* Restaurant beverages band — white type on dark/teal soda background */
#beverages,
#beverages .oswald,
#beverages h2,
#beverages h3,
#beverages p,
#beverages .script,
body.site-polish #beverages,
body.site-polish #beverages .oswald,
body.site-polish #beverages h2,
body.site-polish #beverages h3,
body.site-polish #beverages p,
body.site-polish #beverages .script {
  color: #fff !important;
}

body.site-polish #beverages .text-warning,
#beverages .text-warning {
  color: var(--bs-warning, #f5db02) !important;
}

/* Yellow outline: dark text when filled on hover/focus/active */
.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-outline-warning:focus-visible,
.btn-outline-warning:active,
.btn-outline-warning.active,
.btn-check:checked + .btn-outline-warning,
body.site-polish .btn-outline-warning:hover,
body.site-polish .btn-outline-warning:focus,
body.site-polish .btn-outline-warning:focus-visible,
body.site-polish .btn-outline-warning:active,
body.site-polish .btn-outline-warning.active {
  color: #191b18 !important;
}

/* Light/white outline: dark text when filled on hover/focus/active */
.btn-outline-light:hover,
.btn-outline-light:focus,
.btn-outline-light:focus-visible,
.btn-outline-light:active,
.btn-outline-light.active,
.btn-check:checked + .btn-outline-light,
.btn-outline-white:hover,
.btn-outline-white:focus,
.btn-outline-white:focus-visible,
.btn-outline-white:active,
.btn-outline-white.active,
body.site-polish .btn-outline-light:hover,
body.site-polish .btn-outline-light:focus,
body.site-polish .btn-outline-light:focus-visible,
body.site-polish .btn-outline-light:active,
body.site-polish .btn-outline-light.active,
body.site-polish .btn-outline-white:hover,
body.site-polish .btn-outline-white:focus,
body.site-polish .btn-outline-white:focus-visible,
body.site-polish .btn-outline-white:active,
body.site-polish .btn-outline-white.active {
  color: #191b18 !important;
}

/* Override common square CTAs */
body.site-polish .btn.rounded-0,
body.site-polish a.btn.rounded-0,
body.site-polish .rounded-0.btn {
  border-radius: var(--ks-radius-btn) !important;
}

body.site-polish .btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--ks-green);
  --bs-btn-border-color: var(--ks-green);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--ks-green-dark);
  --bs-btn-hover-border-color: var(--ks-green-dark);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #2f681a;
  --bs-btn-active-border-color: #2f681a;
  color: #fff !important;
  box-shadow: 0 1px 2px rgba(70, 152, 41, 0.22);
}

body.site-polish .btn-primary:hover,
body.site-polish .btn-primary:focus-visible {
  box-shadow: 0 4px 16px rgba(70, 152, 41, 0.28);
  transform: translateY(-1px);
}

body.site-polish .btn-outline-primary {
  --bs-btn-color: var(--ks-green-dark);
  --bs-btn-border-color: rgba(70, 152, 41, 0.45);
  --bs-btn-hover-bg: var(--ks-green);
  --bs-btn-hover-border-color: var(--ks-green);
  --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--ks-green-dark);
  --bs-btn-active-border-color: var(--ks-green-dark);
  --bs-btn-active-color: #fff;
  background-color: rgba(255, 255, 255, 0.65);
}

/* Explicit hover fill: polish base bg is higher specificity than Bootstrap's :hover */
body.site-polish .btn-outline-primary:hover,
body.site-polish .btn-outline-primary:focus,
body.site-polish .btn-outline-primary:focus-visible,
body.site-polish .btn-outline-primary:active,
body.site-polish .btn-outline-primary.active,
body.site-polish .btn-outline-primary.show {
  color: #fff !important;
  background-color: var(--ks-green) !important;
  background: var(--ks-green) !important;
  border-color: var(--ks-green) !important;
}

body.site-polish .btn-warning {
  --bs-btn-color: #1a1c18;
  --bs-btn-hover-color: #1a1c18;
  box-shadow: 0 1px 2px rgba(25, 27, 24, 0.1);
}

body.site-polish .btn-warning:hover {
  box-shadow: 0 4px 14px rgba(245, 219, 2, 0.35);
  transform: translateY(-1px);
}

body.site-polish .btn-dark {
  --bs-btn-color: #fff;
  --bs-btn-hover-color: #fff;
  --bs-btn-active-color: #fff;
  color: #fff !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

body.site-polish .btn-dark:hover,
body.site-polish .btn-dark:focus,
body.site-polish .btn-dark:focus-visible,
body.site-polish .btn-dark:active,
body.site-polish .btn-dark.active {
  color: #fff !important;
  transform: translateY(-1px);
}

/* Outline dark: white text when filled on hover/focus/active */
.btn-outline-dark:hover,
.btn-outline-dark:focus,
.btn-outline-dark:focus-visible,
.btn-outline-dark:active,
.btn-outline-dark.active,
.btn-check:checked + .btn-outline-dark,
body.site-polish .btn-outline-dark:hover,
body.site-polish .btn-outline-dark:focus,
body.site-polish .btn-outline-dark:focus-visible,
body.site-polish .btn-outline-dark:active,
body.site-polish .btn-outline-dark.active,
body.site-polish .btn-outline-dark.show,
body.site-polish a.btn-outline-dark:hover,
body.site-polish a.btn-outline-dark:focus,
body.site-polish a.btn-outline-dark:focus-visible,
body.site-polish a.btn-outline-dark:active,
body.site-polish a.btn-outline-dark.oswald:hover,
body.site-polish a.btn-outline-dark.oswald:focus,
body.site-polish a.btn-outline-dark.oswald:focus-visible,
body.site-polish a.btn-outline-dark.oswald:active,
body.site-polish .btn-outline-dark.oswald:hover,
body.site-polish .btn-outline-dark.oswald:focus,
body.site-polish .btn-outline-dark.oswald:focus-visible,
body.site-polish .btn-outline-dark.oswald:active {
  color: #fff !important;
  background-color: var(--ks-ink, #191b18) !important;
  background: var(--ks-ink, #191b18) !important;
  border-color: var(--ks-ink, #191b18) !important;
}

body.site-polish .btn-outline-dark {
  --bs-btn-color: var(--ks-ink, #191b18);
  --bs-btn-border-color: var(--ks-ink, #191b18);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--ks-ink, #191b18);
  --bs-btn-hover-border-color: var(--ks-ink, #191b18);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--ks-ink, #191b18);
  --bs-btn-active-border-color: var(--ks-ink, #191b18);
}

body.site-polish .btn:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(70, 152, 41, 0.35);
}

/* ---------- Cards / surfaces ---------- */
body.site-polish .card,
body.site-polish .shadow-lg.rounded-4,
body.site-polish .shadow.rounded,
body.site-polish .shadow-sm {
  border-radius: var(--ks-radius-lg) !important;
  box-shadow: var(--ks-shadow) !important;
  border-color: var(--ks-border) !important;
  transition: box-shadow 0.22s var(--ks-ease), transform 0.22s var(--ks-ease);
}

body.site-polish .news-card,
body.site-polish .news-featured {
  border-radius: var(--ks-radius-lg) !important;
  overflow: hidden !important;
  border: 1px solid var(--ks-border) !important;
  box-shadow: var(--ks-shadow-sm) !important;
  background: var(--ks-surface);
  /* Clipping containing block so nested .row / cols / scaled imgs
     respect the rounded corners (esp. Safari / Bootstrap gutters). */
  isolation: isolate;
  position: relative;
  z-index: 0;
}

body.site-polish .news-card:hover,
body.site-polish .news-featured:hover {
  box-shadow: var(--ks-shadow-lg) !important;
  transform: translateY(-3px);
}

/* Featured lead: force nested Bootstrap row/cols to stay inside the radius */
#news .news-featured,
body.site-polish #news .news-featured,
#news-featured-wrap .news-featured {
  border-radius: var(--ks-radius-lg) !important;
  overflow: hidden !important;
}

#news .news-featured > .row,
#news-featured-wrap .news-featured > .row {
  margin: 0 !important;
  overflow: hidden;
  border-radius: inherit;
  max-width: 100%;
}

#news .news-featured > .row > [class*="col-"],
#news-featured-wrap .news-featured > .row > [class*="col-"] {
  overflow: hidden;
  max-width: 100%;
}

#news .news-featured .news-featured-thumb,
#news-featured-wrap .news-featured .news-featured-thumb {
  overflow: hidden;
  display: block;
  height: 100%;
}

#news .news-featured .news-featured-thumb picture,
#news .news-featured .news-featured-thumb img,
#news-featured-wrap .news-featured .news-featured-thumb picture,
#news-featured-wrap .news-featured .news-featured-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
}

body.site-polish .news-filter-btn {
  border-radius: 999px !important;
  border-width: 1.5px !important;
  font-family: "Oswald", sans-serif;
  font-weight: 500;
  padding: 0.4rem 1rem;
  letter-spacing: 0.04em;
}

/* Event / room cards with thick primary top borders */
body.site-polish .border-top.border-primary.border-3,
body.site-polish .border-top.border-warning.border-3 {
  border-top-width: 3px !important;
  border-radius: var(--ks-radius-lg) !important;
  overflow: hidden;
  box-shadow: var(--ks-shadow) !important;
}

.left-box,
body.site-polish .left-box {
  box-shadow: none;
  border-radius: 0 !important;
  overflow: hidden;
}

@media (min-width: 768px) {
  .left-box,
  body.site-polish .left-box {
    box-shadow: none;
    border-radius: 0 !important;
  }
}

/* ---------- Forms ---------- */
/* Radius / border only — never force padding here (breaks .form-floating selects). */
body.site-polish .form-control,
body.site-polish .form-select {
  border-radius: var(--ks-radius) !important;
  border-color: rgba(25, 27, 24, 0.14);
  background-color: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  box-shadow: none;
}

body.site-polish .form-control:focus,
body.site-polish .form-select:focus {
  border-color: rgba(70, 152, 41, 0.55);
  box-shadow: 0 0 0 0.2rem rgba(70, 152, 41, 0.18);
  background-color: #fff;
}

/* Explicit Bootstrap 5 floating-label metrics for selects */
body.site-polish .form-floating > .form-select {
  height: calc(3.5rem + calc(var(--bs-border-width, 1px) * 2));
  min-height: calc(3.5rem + calc(var(--bs-border-width, 1px) * 2));
  padding-top: 1.625rem;
  padding-bottom: 0.625rem;
  padding-left: 0.75rem;
  padding-right: 2.25rem;
  line-height: 1.25;
}

body.site-polish .form-floating > .form-control:not(textarea) {
  height: calc(3.5rem + calc(var(--bs-border-width, 1px) * 2));
  min-height: calc(3.5rem + calc(var(--bs-border-width, 1px) * 2));
  line-height: 1.25;
}

body.site-polish .form-floating > textarea.form-control {
  height: auto;
  min-height: 6.5rem;
  padding-top: 1.625rem;
}

body.site-polish .form-floating > .form-control:focus ~ label,
body.site-polish .form-floating > .form-control:not(:placeholder-shown) ~ label,
body.site-polish .form-floating > .form-select ~ label {
  color: rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.65);
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
  opacity: 0.85;
}

body.site-polish .form-floating > label {
  color: var(--ks-muted);
}

body.site-polish .form-control.rounded-0,
body.site-polish .form-select.rounded-0 {
  border-radius: var(--ks-radius) !important;
}

/* ---------- Contact page ---------- */
.contact-section {
  background: linear-gradient(
    180deg,
    #ffffff 0%,
    var(--ks-canvas, #f7f6f0) 100%
  );
  border-top: 1px solid rgba(25, 27, 24, 0.05);
}

.contact-page {
  max-width: 1140px;
}

.contact-page .contact-kicker {
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  color: #469829;
  font-weight: 600;
}

/* Left column — intro + details */
.contact-aside {
  height: 100%;
}

@media (min-width: 992px) {
  .contact-aside {
    position: sticky;
    top: 1.5rem;
  }
}

.contact-aside-title {
  color: #191b18;
  line-height: 1.15;
}

.contact-aside-lead {
  color: #3a423c;
  max-width: 28rem;
  line-height: 1.6;
}

.contact-detail-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1.35rem;
}

.contact-detail {
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
  padding: 1rem 1.05rem;
}

.contact-detail--alert {
  border-color: rgba(70, 152, 41, 0.28);
  background: linear-gradient(135deg, rgba(70, 152, 41, 0.06), #fff 55%);
}

.contact-detail-icon {
  border: 1px solid rgba(70, 152, 41, 0.14);
}

.contact-detail-icon svg {
  display: block;
}

.contact-detail-body {
  min-width: 0;
  flex: 1 1 auto;
}

.contact-info-label {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  color: #6b736c;
  margin-bottom: 0.3rem;
}

.contact-info-value {
  display: block;
  font-size: 1.1rem;
  font-weight: 600;
  color: #1c211d;
  text-decoration: none;
  line-height: 1.4;
}

a.contact-info-value:hover {
  color: #469829;
}

.contact-text-link {
  display: inline-block;
  font-size: 0.92rem;
  font-weight: 600;
  color: #469829;
  text-decoration: none;
}

.contact-text-link:hover {
  color: #2f681a;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.contact-hours li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  font-size: 0.95rem;
  padding: 0.28rem 0;
  color: #2c322c;
  border-bottom: 1px dashed rgba(25, 27, 24, 0.08);
}

.contact-hours li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.contact-hours li span:first-child {
  font-weight: 600;
  color: #1c211d;
}

.contact-hours li span:last-child {
  color: #5c665c;
  text-align: right;
  white-space: nowrap;
}

.contact-aside-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.contact-aside-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  font-size: 0.88rem;
  font-weight: 600;
  color: #2c322c !important;
  text-decoration: none !important;
  background: #fff;
  border: 1px solid rgba(25, 27, 24, 0.1);
  transition: background-color 0.15s ease, border-color 0.15s ease,
    color 0.15s ease;
}

.contact-aside-link:hover {
  color: #37791f !important;
  border-color: rgba(70, 152, 41, 0.35);
  background: rgba(70, 152, 41, 0.06);
}

/* Form card */
#contactForm.contact-form,
body.site-polish #contactForm {
  background-color: #fff !important;
  border: 1px solid rgba(25, 27, 24, 0.08) !important;
  border-radius: 1.1rem !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset,
    0 14px 40px rgba(25, 27, 24, 0.08) !important;
  overflow: hidden;
  padding: 0 !important;
}

.contact-form-header {
  padding: 1.5rem 1.5rem 1.15rem;
  border-bottom: 1px solid rgba(25, 27, 24, 0.07);
  background: linear-gradient(180deg, #fbfaf6 0%, #fff 100%);
}

@media (min-width: 768px) {
  .contact-form-header {
    padding: 1.75rem 1.85rem 1.25rem;
  }
}

.contact-form-sub {
  color: #5c665c;
  font-size: 0.95rem;
}

.contact-form-body {
  padding: 1.35rem 1.5rem 1.5rem;
}

@media (min-width: 768px) {
  .contact-form-body {
    padding: 1.5rem 1.85rem 1.75rem;
  }
}

body.site-polish #contactForm .form-control,
body.site-polish #contactForm .form-select {
  background-color: #fff !important;
}

#contactForm .btn-primary {
  border-radius: 0.45rem !important;
  min-width: 11rem;
  padding: 0.7rem 1.35rem;
}

.contact-form-footer {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.25rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(25, 27, 24, 0.07);
}

@media (min-width: 576px) {
  .contact-form-footer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .contact-form-footer .btn {
    flex-shrink: 0;
  }
}

.contact-form-note {
  font-size: 0.82rem;
  line-height: 1.45;
  color: #6b736c;
  max-width: 28rem;
}

.contact-form [data-contact-error] {
  font-size: 0.92rem;
  line-height: 1.45;
}

.contact-form-note a {
  color: #469829;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

body.site-polish .contact-page .contact-kicker {
  color: #469829 !important;
}

body.site-polish .contact-info-label {
  color: #6b736c !important;
}

body.site-polish .contact-hours li {
  color: #2c322c !important;
}

body.site-polish .contact-aside-title {
  color: #191b18 !important;
}

body.site-polish .contact-aside-lead {
  color: #3a423c !important;
}

/* ---------- Mobile offcanvas: flat nav + section subheaders ---------- */
#offcanvasNavbar .offcanvas-nav-subhead {
  display: block;
  margin: 0.85rem 0 0.35rem;
  padding: 0.35rem 0.15rem 0.2rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #5c665c;
  line-height: 1.2;
  list-style: none;
  border-bottom: 1px solid rgba(25, 27, 24, 0.1);
}

#offcanvasNavbar .offcanvas-nav-subhead:first-child {
  margin-top: 0;
}

/* Flat items: same green pill for every link (override old nth-child rainbow) */
#offcanvasNavbar .navbar-nav .nav-item > .nav-link,
#offcanvasNavbar .navbar-nav > li:nth-child(n) > .nav-link {
  font-size: 1.35rem;
  background-color: #469829 !important;
  padding: 0.85rem 1.25rem;
  border-radius: 0.4rem;
  color: #fff !important;
  text-shadow: 1px 1px 0 rgba(70, 150, 40, 0.3);
  text-align: center;
}

#offcanvasNavbar .navbar-nav .nav-item > .nav-link:hover,
#offcanvasNavbar .navbar-nav .nav-item > .nav-link:focus,
#offcanvasNavbar .navbar-nav > li:nth-child(n) > .nav-link:hover,
#offcanvasNavbar .navbar-nav > li:nth-child(n) > .nav-link:focus {
  color: #fff !important;
  background-color: #3a7f22 !important;
}

#offcanvasNavbar .navbar-nav > .nav-item,
#offcanvasNavbar .offcanvas-nav-grid-list > .nav-item {
  margin-bottom: 0.2rem;
}

/* Museum section: two-column grid of nav pills */
#offcanvasNavbar .offcanvas-nav-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  transform: none;
  opacity: 1;
}

#offcanvasNavbar .offcanvas-nav-grid-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem 0.4rem;
}

#offcanvasNavbar .offcanvas-nav-grid-list > .nav-item {
  min-width: 0;
  margin-bottom: 0;
}

#offcanvasNavbar .offcanvas-nav-grid-list > .nav-item > .nav-link {
  font-size: 1.05rem;
  padding: 0.75rem 0.5rem;
  line-height: 1.2;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* News / Shop / Contact: three equal columns */
#offcanvasNavbar .offcanvas-nav-grid--3 .offcanvas-nav-grid-list {
  grid-template-columns: 1fr 1fr 1fr;
}

/* Keep entrance animation on nav-items only (not subheads) */
#offcanvasNavbar .navbar-nav > li.offcanvas-nav-subhead {
  transform: none;
  opacity: 1;
}

/* Bottom utility buttons: white text on dark */
#offcanvasNavbar .btn-dark,
#offcanvasNavbar a.btn-dark,
body.site-polish #offcanvasNavbar .btn-dark,
body.site-polish #offcanvasNavbar a.btn-dark.oswald {
  color: #fff !important;
}

#offcanvasNavbar .btn-dark:hover,
#offcanvasNavbar a.btn-dark:hover,
body.site-polish #offcanvasNavbar .btn-dark:hover {
  color: #fff !important;
}

#offcanvasNavbar .btn-dark .text-light,
#offcanvasNavbar .btn-dark svg {
  color: #fff !important;
  fill: currentColor;
}

/* ---------- Nav (desktop top-nav left as original) ---------- */

/* ---------- Sections / rhythm ---------- */
body.site-polish .bg-light {
  background-color: #f3f2eb !important;
}

body.site-polish .bg-white {
  background-color: var(--ks-surface) !important;
}

/* Soften hard full-bleed primary slabs for long text.
   Exclude .menu-back (nav texture) and .feature-shop-band (photo bg via data-bg). */
body.site-polish .bg-primary:not(.menu-back):not(.feature-shop-band) {
  background: linear-gradient(
    180deg,
    #4ea32f 0%,
    var(--ks-green) 40%,
    var(--ks-green) 100%
  ) !important;
}

/* Museum feature title band: solid primary, no gradient */
body.site-polish #feature_meusuem .bg-primary {
  background: var(--ks-green) !important;
  background-color: var(--ks-green) !important;
}

/* Gift shop: keep green fallback; photo comes from data-bg (do not force background-image) */
.feature-shop-band.bg-primary,
body.site-polish .feature-shop-band.bg-primary {
  background-color: #469829 !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* ---------- Links ---------- */
body.site-polish
  a:not(.btn):not(.nav-link):not(.dropdown-item):not(.mega-nav-card) {
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
  text-underline-offset: 0.15em;
}

body.site-polish
  main
  a:not(.btn):not(.nav-link):not(.dropdown-item):not(.mega-nav-card):hover {
  color: var(--ks-green-dark);
}

/* ---------- Footer (dark, modern) ---------- */
body.site-polish #footer,
#footer {
  --footer-bg: var(--footer-mid, #121512);
  --footer-elevated: rgba(255, 255, 255, 0.06);
  --footer-border: rgba(255, 255, 255, 0.1);
  --footer-muted: rgba(255, 255, 255, 0.62);
  --footer-link: #fff;
  --footer-link-hover: #f5db02;
  /* Sit above #plan-your-trip (quick-link cards use mt-n8 and pull into that band) */
  position: relative;
  z-index: 5;
  margin-top: 0 !important;
  /* Continuous from .ha-next end stop */
  background: linear-gradient(
    180deg,
    var(--plan-trip-end) 0%,
    var(--footer-mid) 45%,
    var(--footer-end) 100%
  ) !important;
  color: #fff;
  box-shadow: none;
}

#footer .footer-newsletter {
  background: linear-gradient(
    135deg,
    rgba(70, 152, 41, 0.14) 0%,
    rgba(255, 255, 255, 0.04) 45%,
    rgba(255, 255, 255, 0.06) 100%
  );
  border: 1px solid var(--footer-border);
  border-radius: 1rem;
  padding: 1.5rem 1.35rem;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
}

@media (min-width: 768px) {
  #footer .footer-newsletter {
    padding: 1.85rem 2rem;
  }
}

#footer .footer-kicker {
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  color: #8fd06a;
  margin: 0;
}

#footer .footer-muted {
  color: var(--footer-muted);
}

/*
 * Two-row newsletter layout (less cramped than 4-in-a-row):
 *   [ First name ] [ Last name ]
 *   [ Email address ........ ] [ Subscribe ]
 */
#footer .footer-newsletter-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
  align-items: stretch;
}

#footer .footer-field {
  min-width: 0;
}

@media (min-width: 576px) {
  #footer .footer-newsletter-fields {
    grid-template-columns: 1fr 1fr auto;
  }

  #footer .footer-field--first {
    grid-column: 1;
    grid-row: 1;
  }

  #footer .footer-field--last {
    grid-column: 2;
    grid-row: 1;
  }

  #footer .footer-field--email {
    grid-column: 1 / 3;
    grid-row: 2;
  }

  #footer .footer-newsletter-btn {
    grid-column: 3;
    grid-row: 2;
  }
}

@media (min-width: 992px) {
  /* Names share top row evenly; email takes remaining width beside button */
  #footer .footer-newsletter-fields {
    grid-template-columns: 1fr 1fr minmax(8.5rem, auto);
  }
}

#footer .footer-input {
  height: 3rem;
  border-radius: 0.55rem !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  background: rgba(0, 0, 0, 0.28) !important;
  color: #fff !important;
  padding: 0.65rem 0.95rem;
  box-shadow: none !important;
}

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

#footer .footer-input:focus {
  border-color: rgba(143, 208, 106, 0.65) !important;
  box-shadow: 0 0 0 0.2rem rgba(70, 152, 41, 0.25) !important;
  background: rgba(0, 0, 0, 0.4) !important;
  color: #fff !important;
}

#footer .footer-newsletter-btn {
  border-radius: 0.55rem !important;
  font-weight: 600;
  letter-spacing: 0.06em;
  height: 3rem;
  padding: 0 1.35rem;
  white-space: nowrap;
  color: #191b18 !important;
  box-shadow: 0 4px 16px rgba(245, 219, 2, 0.18);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
}

#footer .footer-newsletter-btn:hover,
#footer .footer-newsletter-btn:focus,
#footer .footer-newsletter-btn:disabled {
  color: #191b18 !important;
}

@media (max-width: 575.98px) {
  #footer .footer-newsletter-btn {
    width: 100%;
  }
}

#footer .footer-newsletter-btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(245, 219, 2, 0.28);
}

#footer .footer-newsletter-btn:disabled {
  opacity: 0.85;
}

#footer .footer-newsletter-hint {
  font-size: 0.8rem;
  color: var(--footer-muted);
}

#footer .footer-newsletter-hint a {
  color: #c8f0a8;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

#footer .footer-newsletter-hint a:hover {
  color: #f5db02;
}

#footer .footer-newsletter-msg {
  font-size: 0.9rem;
  font-weight: 600;
  border-radius: 0.45rem;
  padding: 0.55rem 0.75rem;
}

#footer .footer-newsletter-msg.is-ok {
  background: rgba(70, 152, 41, 0.22);
  color: #c8f0a8;
  border: 1px solid rgba(70, 152, 41, 0.35);
}

#footer .footer-newsletter-msg.is-err {
  background: rgba(180, 50, 50, 0.22);
  color: #ffc9c9;
  border: 1px solid rgba(220, 80, 80, 0.35);
}

#footer .footer-newsletter-form.was-validated .footer-input:invalid {
  border-color: rgba(255, 120, 120, 0.7) !important;
}

#footer .footer-logo {
  opacity: 0.96;
  transition: opacity 0.15s ease;
}

#footer .footer-logo:hover {
  opacity: 1;
}

#footer .footer-heading {
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.55);
  margin: 0;
}

#footer .footer-link-list li {
  margin-bottom: 0.45rem;
  color: inherit;
}

#footer .footer-link-list a,
#footer .footer-legal a,
#footer .footer-contact-link {
  color: #fff;
  text-decoration: none;
  transition: color 0.15s ease;
}

#footer .footer-link-list a:hover,
#footer .footer-legal a:hover,
#footer .footer-contact-link:hover {
  color: var(--footer-link-hover);
}

#footer .footer-contact {
  gap: 0.85rem;
}

/* Center contact block on mobile + tablet; left-align at desktop */
@media (max-width: 991.98px) {
  #footer .footer-contact {
    align-items: center;
    text-align: center;
  }

  #footer .footer-contact-link {
    justify-content: center;
    text-align: center;
  }
}

@media (min-width: 992px) {
  #footer .footer-contact {
    align-items: flex-start;
    text-align: left;
  }

  #footer .footer-contact-link {
    justify-content: flex-start;
    text-align: left;
  }
}

#footer .footer-contact-link {
  line-height: 1.35;
  gap: 0.55rem;
}

#footer .footer-icon {
  fill: currentColor;
  color: #8fd06a;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

#footer .footer-social-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.5rem;
  padding: 0.4rem 0.95rem 0.4rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--footer-border);
  background: var(--footer-elevated);
  color: #fff;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  transition: background-color 0.15s ease, border-color 0.15s ease,
    transform 0.15s ease;
}

#footer .footer-social-btn:hover {
  background: rgba(70, 152, 41, 0.35);
  border-color: rgba(70, 152, 41, 0.55);
  color: #fff;
  transform: translateY(-1px);
}

#footer .footer-social-btn svg {
  fill: currentColor;
  flex-shrink: 0;
}

#footer .footer-bbb {
  background: #fff;
  border-radius: 0.5rem;
  padding: 0.35rem 0.45rem;
  line-height: 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
  transition: transform 0.15s ease;
}

#footer .footer-bbb:hover {
  transform: translateY(-1px);
}

#footer .footer-legal {
  border-top: 1px solid var(--footer-border);
  background: rgba(0, 0, 0, 0.28);
}

#footer .footer-legal-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  text-align: center;
}

#footer .footer-legal-left,
#footer .footer-legal-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.65rem;
  width: 100%;
}

/* Desktop: split legal row left / right */
@media (min-width: 992px) {
  #footer .footer-legal-row {
    justify-content: space-between;
    text-align: left;
  }

  #footer .footer-legal-left,
  #footer .footer-legal-right {
    width: auto;
  }

  #footer .footer-legal-left {
    justify-content: flex-start;
  }

  #footer .footer-legal-right {
    justify-content: flex-end;
  }
}

#footer .footer-legal a {
  font-weight: 600;
  white-space: nowrap;
}

#footer .footer-legal .footer-muted {
  white-space: nowrap;
}

#footer .footer-legal-sep {
  display: inline-block;
  margin: 0;
  padding: 0 0.15rem;
  color: rgba(255, 255, 255, 0.35);
  line-height: 1;
}

#footer .footer-main {
  border-top: 1px solid transparent;
}

/* ---------- Tables / misc ---------- */
body.site-polish .table {
  --bs-table-bg: transparent;
}

body.site-polish .table > :not(caption) > * > * {
  border-bottom-color: var(--ks-border);
}

/*
 * Event list media:
 * - .event-img-frame → overflow:hidden (crop photo)
 * - .cal-date → sibling, high z-index, never clipped by the frame
 */
.cal-date,
body.site-polish .cal-date {
  position: absolute !important;
  z-index: 50 !important;
  top: 0 !important;
  left: 0 !important;
  /* A bit further up and left than default ms-n2 / mt-n2 */
  margin-top: -0.85rem !important;
  margin-left: -0.85rem !important;
  border-radius: 0 0.4rem 0 0.4rem;
  overflow: visible !important;
  pointer-events: none;
}

/* Wrapper around badge + image must not clip the badge (events only) */
#main article[itemtype*="Event"] .position-relative.h-100,
body.site-polish #main article[itemtype*="Event"] .position-relative.h-100 {
  overflow: visible !important;
}

/*
 * Event cards: overflow visible so .cal-date / Today badges can hang outside.
 * Do NOT use bare article[itemscope] — that also matched NewsArticle and
 * forced overflow:visible on .news-featured / .news-card.
 */
#main article[itemtype*="Event"],
body.site-polish #main article[itemtype*="Event"] {
  overflow: visible !important;
  position: relative;
  z-index: 2;
  border-radius: var(--ks-radius) !important;
}

#main article[itemtype*="Event"]:hover,
body.site-polish #main article[itemtype*="Event"]:hover {
  z-index: 5;
}

#main article[itemtype*="Event"] > .row,
#main article[itemtype*="Event"] > .row > [class*="col-"] {
  overflow: visible !important;
}

/* News cards: always clip to rounded corners */
#news article.news-featured,
#news article.news-card,
#news-featured-wrap article.news-featured,
#news-grid article.news-card,
body.site-polish #news article.news-featured,
body.site-polish #news article.news-card {
  overflow: hidden !important;
}

/*
 * Photo frame: MUST overflow:hidden so rounded corners crop the image.
 * Calendar badge is a sibling (not inside this frame) so it is not cropped.
 *
 * Absolute fill needs a parent with real height. On mobile the image column
 * used to collapse (absolute child + no col-12), so give .event-list-media
 * an aspect-ratio box on small screens.
 */
.event-list-media {
  min-height: 12rem;
}

@media (max-width: 575.98px) {
  .event-list-media {
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 11rem;
    height: auto !important;
  }
}

.event-img-frame,
body.site-polish .event-img-frame,
#main article .event-img-frame {
  position: absolute !important;
  z-index: 1 !important;
  overflow: hidden !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-height: none;
  border-radius: var(--ks-radius) 0 0 var(--ks-radius) !important;
  -webkit-mask-image: -webkit-radial-gradient(
    white,
    black
  ); /* Safari clip fix */
}

@media (min-width: 576px) {
  .event-img-frame,
  body.site-polish .event-img-frame,
  #main article .event-img-frame {
    max-height: 260px;
  }
}

@media (max-width: 767.98px) {
  .event-img-frame,
  body.site-polish .event-img-frame,
  #main article .event-img-frame {
    border-radius: var(--ks-radius) var(--ks-radius) 0 0 !important;
    max-height: none;
  }
}

.event-img-frame > a,
.event-img-frame picture,
body.site-polish .event-img-frame > a,
body.site-polish .event-img-frame picture {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  border-radius: inherit !important;
}

.event-img-frame img,
body.site-polish .event-img-frame img {
  object-fit: cover !important;
  object-position: center center !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  display: block !important;
  border-radius: 0 !important;
}

/* Listing page <main> was clipping hanging badges */
#main.overflow-hidden,
body.site-polish #main.overflow-hidden {
  overflow: visible !important;
}

body.site-polish .alert {
  border-radius: var(--ks-radius);
}

body.site-polish .modal-content {
  border-radius: var(--ks-radius-lg);
  border: none;
  box-shadow: var(--ks-shadow-lg);
}

body.site-polish .modal-header,
body.site-polish .modal-footer {
  border-color: var(--ks-border);
}

/* ---------- Event listing cards ---------- */
body.site-polish #main .shadow-lg {
  box-shadow: var(--ks-shadow) !important;
}

/* ---------- Figures ---------- */
body.site-polish .figure-img.rounded,
body.site-polish img.rounded,
body.site-polish img.rounded-circle {
  box-shadow: var(--ks-shadow-sm);
}

body.site-polish img.border.border-4 {
  border-width: 3px !important;
}

/* ---------- Quotes / blockquotes (large, plain background) ---------- */
/*
 * Use: <figure class="ks-quote"> <blockquote>…</blockquote> <figcaption>…</figcaption>
 * Plain page background — no card panel.
 */
.ks-quote,
body.site-polish blockquote.container,
blockquote.ks-quote,
blockquote.container:has(.quote-left),
blockquote.container:has(.georgia) {
  --ks-quote-mark: #469829;
  --ks-quote-ink: #1c211d;
  --ks-quote-muted: #5c665c;
  position: relative;
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
  padding: 3rem 1.25rem 2.5rem;
  text-align: center;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

@media (min-width: 768px) {
  .ks-quote,
  body.site-polish blockquote.container,
  blockquote.container:has(.quote-left),
  blockquote.container:has(.georgia) {
    padding: 3.5rem 2rem 3rem;
  }
}

/* Large decorative open-quote */
.ks-quote::before,
body.site-polish blockquote.container::before,
blockquote.container:has(.quote-left)::before,
blockquote.container:has(.georgia)::before {
  content: "“";
  position: absolute;
  top: 0.5rem;
  left: 50%;
  transform: translateX(-50%);
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(3.5rem, 8vw, 5rem);
  line-height: 1;
  color: var(--ks-quote-mark);
  opacity: 0.3;
  pointer-events: none;
}

.ks-quote blockquote,
.ks-quote > p,
body.site-polish blockquote.container > p,
blockquote.container:has(.quote-left) > p,
blockquote.container:has(.georgia) > p {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  max-width: 40rem;
  font-family: Georgia, "Times New Roman", Times, serif !important;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.45rem, 2.6vw, 2rem) !important;
  line-height: 1.45 !important;
  letter-spacing: -0.02em;
  color: var(--ks-quote-ink) !important;
  background: transparent;
}

/* Hide legacy absolute quote marks — CSS ::before handles decoration */
.ks-quote .quote-left,
.ks-quote .quote-right,
body.site-polish blockquote .quote-left,
body.site-polish blockquote .quote-right,
blockquote.container .quote-left,
blockquote.container .quote-right {
  display: none !important;
}

.ks-quote figcaption,
.ks-quote .ks-quote-cite,
body.site-polish blockquote .ks-quote-cite {
  display: block;
  margin-top: 1.25rem;
  font-family: "Oswald", sans-serif !important;
  font-style: normal !important;
  font-size: 0.85rem !important;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ks-quote-muted) !important;
  line-height: 1.3 !important;
  background: transparent;
}

.ks-quote figcaption span,
.ks-quote .ks-quote-cite span {
  display: block;
  margin-top: 0.2rem;
  font-family: "Open Sans", system-ui, sans-serif !important;
  font-size: 0.8rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  text-transform: none;
  color: #6b736c;
}

/* Spacing when used as page sections */
.ks-quote.ks-quote--section,
blockquote.container.pt-8 {
  margin-top: 3rem;
  margin-bottom: 2.5rem;
}

blockquote.container.mb-7,
.ks-quote.mb-7 {
  margin-bottom: 3.5rem !important;
}

/* ---------- Skip link ---------- */
body.site-polish #skip-nav:focus {
  background: var(--ks-green);
  color: #fff;
  padding: 0.5rem 1rem;
  border-radius: var(--ks-radius-sm);
  z-index: 2000;
}

/* Shared join color: plan-your-trip end === footer start */
:root {
  --plan-trip-start: #1c211d;
  --plan-trip-mid: #191d19;
  --plan-trip-end: #171b17;
  --footer-mid: #121512;
  --footer-end: #0e100e;
}

/* ---------- Directions & Parking page ---------- */
#location,
#map,
#parking,
#parking-notes {
  scroll-margin-top: 7rem;
}

/*
 * Global section::before { height:100px; margin-top:-100px } pulls each
 * band under the previous one. Kill it on DP sections; scroll-margin handles anchors.
 */
.dp-page::before,
.dp-property::before,
.dp-notes::before,
#location::before,
#parking::before,
#parking-notes::before {
  content: none !important;
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dp-page,
.dp-property,
.dp-notes {
  --dp-ink: #191b18;
  --dp-body: #2c322c;
  --dp-muted: #5c665c;
  --dp-line: rgba(25, 27, 24, 0.1);
  --dp-green: #469829;
  --dp-green-dark: #37791f;
  --dp-tan: #f7f6f0;
  --dp-tan-deep: #f3f1e8;
  --dp-property: #5f8466;
  position: relative;
  margin: 0;
  clear: both;
}

.dp-page {
  background: #fff;
}

.dp-kicker {
  color: var(--dp-green-dark);
}

.dp-heading {
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.1;
  color: var(--dp-ink);
}

.dp-city {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--dp-muted);
}

.dp-body-copy {
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--dp-body);
}

.dp-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.dp-i95 {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding-top: 0.25rem;
}

.dp-i95-badge {
  width: 3.5rem;
  height: auto;
  flex-shrink: 0;
}

.dp-i95 p {
  font-size: 0.98rem;
  line-height: 1.45;
  color: var(--dp-body);
}

.dp-map-frame {
  position: relative;
  width: 100%;
  min-height: 20rem;
  aspect-ratio: 16 / 10;
  border-radius: 0.85rem;
  overflow: hidden;
  background: #e9ecef;
  box-shadow: 0 8px 28px rgba(25, 27, 24, 0.1);
  border: 1px solid var(--dp-line);
}

.dp-map-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* Large property / parking map band */
.dp-property {
  background: var(--dp-property);
  color: #fff;
  overflow: hidden;
}

.dp-property-inner {
  margin: 0;
  padding: 0;
}

.dp-property-map {
  background: rgba(0, 0, 0, 0.08);
  min-height: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
}

.dp-property-map-img,
.dp-property-map img,
.dp-property-map picture {
  width: 100%;
  height: auto;
  display: block;
  margin: 0;
  padding: 0;
  vertical-align: middle;
}

@media (min-width: 992px) {
  .dp-property .row {
    min-height: 28rem;
  }

  .dp-property-map,
  .dp-property-map img,
  .dp-property-map picture {
    height: 100%;
    min-height: 28rem;
  }

  .dp-property-map img {
    object-fit: cover;
    object-position: center;
  }
}

.dp-property-copy {
  position: relative;
  z-index: 1;
  padding: 2.5rem 1.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(
    180deg,
    rgba(60, 100, 68, 0.35) 0%,
    rgba(50, 85, 58, 0.15) 100%
  );
}

@media (min-width: 992px) {
  .dp-property-copy {
    padding: 3rem 2.5rem 3rem 2rem;
  }
}

@media (min-width: 1400px) {
  .dp-property-copy {
    padding: 3.5rem 3.5rem 3.5rem 2.5rem;
  }
}

.dp-property .dp-heading {
  color: #fff;
}

.dp-property-lead {
  font-size: 1.15rem;
  line-height: 1.55;
  opacity: 0.95;
}

.dp-lot-block {
  padding: 1.15rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.dp-lot-block:last-child {
  padding-bottom: 0;
}

.dp-lot-name {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-bottom: 0.2rem;
}

.dp-lot-meta {
  font-size: 0.9rem;
  margin-bottom: 0.45rem !important;
}

.dp-lot-block p {
  font-size: 1rem;
  line-height: 1.5;
}

.dp-notes {
  background: linear-gradient(180deg, var(--dp-tan) 0%, var(--dp-tan-deep) 100%);
}

.dp-note {
  height: 100%;
  padding: 0.25rem 0.5rem;
}

.dp-note-title {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--dp-ink);
  margin-bottom: 0.5rem;
  line-height: 1.2;
}

.dp-note p {
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--dp-body);
}

.dp-note-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 700;
  color: var(--dp-green-dark) !important;
  text-decoration: none !important;
}

.dp-note-link:hover {
  color: var(--dp-green) !important;
}

body.site-polish .dp-heading,
body.site-polish .dp-note-title,
body.site-polish .dp-lot-name {
  color: inherit;
}

body.site-polish .dp-page .dp-heading,
body.site-polish .dp-note-title {
  color: var(--dp-ink) !important;
}

body.site-polish .dp-property .dp-heading,
body.site-polish .dp-property .dp-lot-name {
  color: #fff !important;
}

body.site-polish .dp-kicker:not(.text-warning) {
  color: var(--dp-green-dark) !important;
}

/* ---------- RV Overnight page ---------- */
#rv-overview,
#amenities,
#reserve,
#harvest-host,
#gallery,
#essential-info,
#hours,
#guest-info,
#guidelines-stay,
#fire-safety {
  scroll-margin-top: 7rem;
}

.rv-page,
.rv-info,
.rv-guidelines {
  --rv-ink: #191b18;
  --rv-body: #2c322c;
  --rv-muted: #5c665c;
  --rv-line: rgba(25, 27, 24, 0.1);
  --rv-green: #469829;
  --rv-green-dark: #37791f;
  --rv-tan: #f7f6f0;
  --rv-tan-deep: #f3f1e8;
}

/* White → hours-band tan */
#rv-overview.rv-page {
  background: linear-gradient(
    180deg,
    #ffffff 0%,
    #ffffff 28%,
    var(--rv-tan) 72%,
    var(--rv-tan-deep) 100%
  );
}

.rv-lead {
  font-size: 1.1rem;
  line-height: 1.65;
  color: var(--rv-body);
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.rv-body-copy {
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--rv-body);
}

.rv-amenity-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--rv-line);
}

.rv-amenity-list li:first-child {
  padding-top: 0.1rem;
}

.rv-amenity-list li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

/* .rv-amenity-icon → shared .ks-* */

.rv-amenity-label {
  display: block;
  font-size: 0.98rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--rv-ink);
  line-height: 1.2;
}

.rv-amenity-note {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.88rem;
  color: var(--rv-muted);
  line-height: 1.4;
}

.rv-amenity-note a {
  color: var(--rv-green-dark);
  font-weight: 600;
}

.rv-rate-callout {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 1rem;
  border-radius: 0.65rem;
  background: rgba(70, 152, 41, 0.08);
  border: 1px solid rgba(70, 152, 41, 0.18);
}

.rv-rate-callout-label {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rv-muted);
}

.rv-rate-callout-value {
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--rv-green-dark);
  letter-spacing: 0.02em;
  line-height: 1;
}

.rv-rate-callout-value small {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--rv-muted);
}

.rv-reserve-copy {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--rv-body);
}

.rv-harvest {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem;
  padding-top: 1.1rem;
  border-top: 1px dashed var(--rv-line);
}

.rv-harvest-logo {
  flex: 0 0 auto;
  padding: 0.55rem 0.75rem;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--rv-line);
}

.rv-harvest-copy {
  flex: 1 1 10rem;
  min-width: 0;
}

.rv-harvest-title {
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--rv-ink);
}

.rv-harvest-copy p {
  font-size: 0.85rem;
  color: var(--rv-body);
  line-height: 1.4;
}

.rv-gallery-fig {
  position: relative;
  border-radius: 0.85rem;
  overflow: hidden;
  border: 1px solid var(--rv-line);
  box-shadow: 0 4px 18px rgba(25, 27, 24, 0.06);
  background: #e9ecef;
}

.rv-gallery-img,
.rv-gallery-fig img {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: middle;
}

.rv-gallery-cap {
  padding: 0.65rem 0.9rem 0.75rem;
  font-size: 0.85rem;
  color: var(--rv-muted);
  background: #fff;
  margin: 0;
}

@media (min-width: 992px) {
  .rv-top-row .ha-card-title,
  #guest-info .ha-card-title {
    font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  }
}

.rv-info {
  background: linear-gradient(180deg, var(--rv-tan) 0%, var(--rv-tan-deep) 100%);
}

.rv-safety {
  margin-top: 1.15rem;
  padding: 1rem 1.05rem;
  border-radius: 0.65rem;
  background: rgba(70, 152, 41, 0.07);
  border: 1px solid rgba(70, 152, 41, 0.16);
}

.rv-safety-title {
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--rv-green-dark);
  margin-bottom: 0.45rem;
}

.rv-safety p {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--rv-body);
}

.rv-safety a {
  color: var(--rv-green-dark);
}

.rv-rule-list {
  display: flex;
  flex-direction: column;
}

.rv-rule {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--rv-line);
}

.rv-rule:first-child {
  padding-top: 0.1rem;
}

.rv-rule:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.rv-rule-title {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--rv-ink);
  margin-bottom: 0.3rem;
  line-height: 1.25;
}

.rv-rule p {
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--rv-body);
}

.rv-fire-list li {
  position: relative;
  padding: 0.55rem 0 0.55rem 1.35rem;
  border-bottom: 1px solid var(--rv-line);
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--rv-body);
}

.rv-fire-list li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.rv-fire-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.95rem;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--rv-green);
}

/* Fire safety — large highlight tiles + equipment block */
.rv-fire-highlights {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.rv-fire-highlight {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 1rem 1rem 1.05rem;
  border-radius: 0.75rem;
  background: rgba(70, 152, 41, 0.08);
  border: 1px solid rgba(70, 152, 41, 0.18);
  min-height: 5.5rem;
}

.rv-fire-highlight-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 0.55rem;
  background: #fff;
  color: var(--rv-green);
  font-size: 1.2rem;
  box-shadow: 0 2px 8px rgba(25, 27, 24, 0.06);
}

.rv-fire-highlight-text {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.2;
  color: var(--rv-ink);
  text-transform: uppercase;
}

.rv-fire-list-heading {
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--rv-muted);
  margin: 0 0 0.35rem;
}

.rv-fire-list {
  margin-bottom: 1.25rem !important;
}

.rv-fire-list li {
  font-size: 0.95rem;
  padding: 0.65rem 0 0.65rem 1.4rem;
}

.rv-fire-list li::before {
  top: 1.05rem;
  width: 0.5rem;
  height: 0.5rem;
}

.rv-fire-equipment {
  margin-top: 1.25rem;
  padding: 1.15rem 1.2rem 1.25rem;
  border-radius: 0.75rem;
  background: linear-gradient(
    165deg,
    rgba(245, 219, 2, 0.22) 0%,
    rgba(245, 219, 2, 0.1) 100%
  );
  border: 1px solid rgba(200, 170, 0, 0.4);
}

.rv-fire-equipment-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
}

.rv-fire-equipment-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 0.55rem;
  background: rgba(245, 219, 2, 0.45);
  color: #4a3f00;
  font-size: 1.15rem;
  flex-shrink: 0;
}

.rv-fire-equipment-title {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--rv-ink);
  line-height: 1.2;
}

.rv-fire-equipment p {
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--rv-body);
  margin: 0;
}

body.site-polish .rv-fire-highlight-text,
body.site-polish .rv-fire-equipment-title {
  color: var(--rv-ink) !important;
}

body.site-polish .rv-fire-list-heading {
  color: var(--rv-muted) !important;
}

/* Hours column fill (balances short schedule vs tall guideline cards) */
.ha-card--hours .ha-schedule {
  margin-bottom: 0.5rem;
}

.rv-hours-fill {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.25rem;
  padding-top: 1.15rem;
  border-top: 1px dashed var(--rv-line);
}

.rv-hours-tip {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.9rem 0.95rem;
  border-radius: 0.65rem;
  background: rgba(70, 152, 41, 0.08);
  border: 1px solid rgba(70, 152, 41, 0.16);
}

.rv-hours-tip-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 0.45rem;
  background: rgba(70, 152, 41, 0.12);
  color: var(--rv-green);
  font-size: 1rem;
  flex-shrink: 0;
}

.rv-hours-tip-title {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--rv-green-dark);
  margin-bottom: 0.25rem;
  line-height: 1.2;
}

.rv-hours-tip p {
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--rv-body);
}

.rv-hours-actions {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

body.site-polish .rv-hours-tip-title {
  color: var(--rv-green-dark) !important;
}

body.site-polish .rv-amenity-label,
body.site-polish .rv-harvest-title,
body.site-polish .rv-rule-title,
body.site-polish .rv-safety-title {
  color: inherit;
}

body.site-polish .rv-amenity-label,
body.site-polish .rv-harvest-title,
body.site-polish .rv-rule-title {
  color: var(--rv-ink) !important;
}

body.site-polish .rv-rate-callout-value {
  color: var(--rv-green-dark) !important;
}

body.site-polish .rv-safety-title {
  color: var(--rv-green-dark) !important;
}

body.site-polish .rv-amenity-note a,
body.site-polish .rv-safety a,
body.site-polish .ha-card-foot a {
  color: var(--rv-green-dark) !important;
}

/* ---------- Hours & Admission page ---------- */
/* Offset fixed top nav when using #anchor links */
#page-header,
#hours-admission,
#intro,
#hours,
#holiday-hours,
#admission,
#location,
#visitor-details,
#faq,
#accommodations,
#comfort-suites,
#towneplace-suites,
#rv-overnight,
#plan-your-trip,
#explore-museum,
section.ha-next {
  scroll-margin-top: 7rem;
}

.ha-page {
  --ha-ink: var(--ks-ink, #191b18);
  --ha-body: var(--ks-body, #2c322c);
  --ha-muted: var(--ks-muted, #5c665c);
  --ha-line: var(--ks-border, rgba(25, 27, 24, 0.1));
  --ha-soft: var(--ks-canvas, #f7f6f0);
  --ha-green: var(--ks-green, #469829);
  --ha-green-dark: var(--ks-green-dark, #37791f);
}

.ha-lead {
  font-size: 1.1rem;
  line-height: 1.65;
  color: var(--ha-body);
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.ha-card {
  padding: 1.35rem 1.35rem 1.5rem;
  overflow: hidden;
}

@media (min-width: 576px) {
  .ha-card {
  padding: 1.65rem 1.75rem 1.85rem;
}
}

.ha-card-head {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 1.15rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid rgba(70, 152, 41, 0.2);
}

/* .ha-card-icon → shared .ks-* */

.ha-card-title {
  font-size: 1.55rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--ha-ink);
  line-height: 1.15;
}

.ha-card-sub {
  margin-top: 0.2rem;
  font-size: 0.88rem;
  color: var(--ha-muted);
}

.ha-schedule-main,
.ha-price-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

/* .ha-schedule-label, .ha-price-label → shared .ks-rows-* */

/* .ha-schedule-note, .ha-price-note → shared .ks-rows-* */

/* .ha-schedule-time, .ha-price-amount → shared .ks-rows-* */

.ha-price-amount--free {
  color: var(--ha-green);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.ha-price-footnote {
  font-size: 0.78rem;
  font-style: italic;
  color: var(--ha-muted);
  margin-top: 0.1rem;
}

.ha-card-foot {
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--ha-line);
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--ha-muted);
}

/* Top row: Hours | Admission | Special Discounts */
.ha-top-row .ha-card-title {
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
}

/* Location card (top row) */
.ha-location-address {
  font-style: normal;
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--ha-ink);
  margin-bottom: 0;
}

.ha-location-note {
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--ha-muted);
}

.ha-map-wrap {
  position: relative;
  width: 100%;
  min-height: 12rem;
  border-radius: 0.55rem;
  overflow: hidden;
  border: 1px solid var(--ha-line);
  background: #e9ecef;
}

.ha-map-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.ha-policy-sections {
  display: flex;
  flex-direction: column;
}

.ha-policy-block {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--ha-line);
}

.ha-policy-block:first-child {
  padding-top: 0.1rem;
}

.ha-policy-block:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.ha-policy-block .ha-policy-title {
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--ha-ink);
  margin-bottom: 0.35rem;
}

.ha-policy-block p {
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--ha-body);
}

.ha-policy-note {
  font-size: 0.82rem !important;
  color: var(--ha-muted) !important;
  font-weight: 600;
}

.ha-policy-block a {
  color: var(--ha-green-dark);
  font-weight: 600;
}

body.site-polish .ha-policy-block .ha-policy-title {
  color: var(--ha-ink) !important;
}

body.site-polish .ha-policy-block a {
  color: var(--ha-green-dark) !important;
}

.ha-holiday {
  margin-top: 1.25rem;
  padding: 0.95rem 1rem;
  border-radius: 0.65rem;
  background: rgba(70, 152, 41, 0.07);
  border: 1px solid rgba(70, 152, 41, 0.18);
}

.ha-holiday-title {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--ha-green-dark);
  margin-bottom: 0.65rem;
}

.ha-holiday-list li {
  display: flex;
  justify-content: space-between;
  gap: 0.85rem;
  align-items: baseline;
  padding: 0.35rem 0;
  font-size: 0.92rem;
  border-bottom: 1px dashed rgba(70, 152, 41, 0.15);
}

.ha-holiday-list li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.ha-holiday-name {
  color: var(--ha-ink);
  font-weight: 600;
  min-width: 0;
}

.ha-holiday-extra {
  font-weight: 500;
  color: var(--ha-muted);
}

.ha-holiday-date {
  color: var(--ha-muted);
  white-space: nowrap;
  font-size: 0.85rem;
}

.ha-info {
  background: linear-gradient(180deg, #f7f6f0 0%, #f3f1e8 100%);
}

.ha-section-title {
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--ha-ink);
  line-height: 1.15;
}

.ha-card--faq .ha-card-sub a {
  color: var(--ha-green-dark);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.ha-faq-list {
  margin-top: 0.15rem;
}

body.site-polish .ha-card--faq .ha-card-sub a {
  color: var(--ha-green-dark) !important;
}

/* Even spacing for every FAQ item */
.ha-faq-item {
  padding: 0.95rem 0;
  margin: 0;
  border: 0;
  border-bottom: 1px solid var(--ha-line);
}

.ha-faq-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.ha-faq-q {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ha-ink);
  margin: 0 0 0.35rem;
  line-height: 1.3;
}

.ha-faq-a {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--ha-body);
  margin: 0;
}

.ha-faq-a a {
  color: var(--ha-green-dark);
  font-weight: 600;
}

/* FAQ wider column: 2-up Q&A (items must be direct children) */
@media (min-width: 992px) {
  .ha-faq-list--split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.75rem;
    row-gap: 0;
    align-items: start;
  }

  .ha-faq-list--split .ha-faq-item {
    padding: 0.95rem 0;
    border-bottom: 1px solid var(--ha-line);
  }

  /* First row in each column (items 1–2) */
  .ha-faq-list--split .ha-faq-item:nth-child(-n + 2) {
    padding-top: 0;
  }

  /* Last row in a 9-item, 2-col grid: items 8–9 (and alone item 9 in col 1) */
  .ha-faq-list--split .ha-faq-item:nth-last-child(-n + 2) {
    border-bottom: 0;
    padding-bottom: 0;
  }
}

.ha-policy-stack {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  height: 100%;
}

.ha-policy-card {
  border: 1px solid var(--ha-line);
  padding: 1.1rem 1.2rem 1.15rem;
  border-left: 3px solid var(--ha-green);
}

.ha-policy-title {
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--ha-ink);
  margin-bottom: 0.4rem;
}

.ha-policy-card p {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--ha-body);
}

.ha-policy-card a {
  color: var(--ha-green-dark);
  font-weight: 600;
}

.ha-hotel-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ha-hotel-item {
  padding: 1rem 0;
  border-bottom: 1px solid var(--ha-line);
}

.ha-hotel-item:first-child {
  padding-top: 0.15rem;
}

.ha-hotel-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.ha-info-row .ha-section-title,
.ha-info-row .ha-card-title {
  font-size: clamp(1.15rem, 1.8vw, 1.35rem);
}

.ha-hotel-name {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ha-ink);
}

.ha-hotel-addr {
  font-size: 0.9rem;
  color: var(--ha-muted);
  margin-bottom: 0;
}

.ha-hotel-rate {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0;
}

.ha-hotel-rate-label {
  font-family: "Open Sans", system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ha-muted);
  line-height: 1.3;
}

.ha-hotel-rate-value {
  font-family: "Oswald", sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ha-green-dark);
  letter-spacing: 0.02em;
  white-space: nowrap;
  text-align: right;
  line-height: 1.2;
}

body.site-polish .ha-hotel-rate-value {
  color: var(--ha-green-dark) !important;
}

/* ---------- “Also planning your trip” CTA band ---------- */
/*
 * Global style.scss uses section::before { height:100px; margin-top:-100px }
 * for fixed-nav anchor offset. That negative margin pulls this band up into
 * the section above. Kill the pseudo here; scroll-margin-top handles anchors.
 */
.ha-next::before,
#plan-your-trip::before,
#explore-museum::before {
  content: none !important;
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ha-next {
  position: relative;
  z-index: 0;
  margin: 0 !important;
  padding-top: 0;
  /*
   * Continuous handoff into #footer (shared CSS vars on :root):
   *   plan-your-trip:  start → mid → end
   *   footer:          end → footer-mid → footer-end
   */
  background: linear-gradient(
    180deg,
    var(--plan-trip-start) 0%,
    var(--plan-trip-mid) 55%,
    var(--plan-trip-end) 100%
  );
  color: #fff;
  clear: both;
}

/*
 * Explore band sits after </main>. Use a div (not section) so the global
 * section::before anchor-offset cannot pull it over content above.
 */
#explore-museum {
  display: block;
  margin-top: 0 !important;
  padding-top: 0;
  position: relative;
  z-index: 0;
  clear: both;
}

/*
 * Museum collection pages: solid tan body + white→tan intro.
 * Sit above the explore band; kill section::before so content does not
 * pull up over the photo header.
 */
.museum-collection,
#classic_trucks,
#classic_cars,
#classic_tractors,
#antique_more {
  position: relative;
  z-index: 1;
  background: #f7f6f0;
}

.museum-collection::before,
#classic_trucks::before,
#classic_cars::before,
#classic_tractors::before,
#antique_more::before {
  content: none !important;
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Keep hero title band above the collection section */
.header-top {
  position: relative;
  z-index: 2;
}

/* Intro paragraph band: white → #f7f6f0 */
.museum-collection-intro,
#classic_cars .classic-cars-intro {
  background: linear-gradient(180deg, #ffffff 0%, #f7f6f0 100%);
}

/*
 * Radio exhibit palette — very dark sepia (not green-black .bg-dark).
 * Warm brown ink so the page reads “vintage radio” rather than generic dark.
 */
:root {
  --radio-sepia: #1e1814;
  --radio-sepia-mid: #261f1a;
  --radio-sepia-deep: #16110e;
  --radio-sepia-elevated: #2e261f;
  --radio-sepia-border: rgba(212, 184, 150, 0.18);
}

/* Radio exhibit intro: solid dark sepia */
.museum-collection-intro.museum-collection-intro--dark,
.museum-collection-intro.bg-dark {
  background: var(--radio-sepia) !important;
  background-color: var(--radio-sepia) !important;
  color: #fff;
}

/* Radio exhibit collection: dark brown → plan-your-trip handoff */
.museum-collection.museum-collection--radio,
.museum-collection.bg-dark {
  background: linear-gradient(
    180deg,
    var(--radio-sepia) 0%,
    var(--plan-trip-start) 100%
  ) !important;
  color: #fff;
}

.museum-collection-intro.museum-collection-intro--dark p,
.museum-collection-intro.bg-dark p,
.museum-collection-intro.museum-collection-intro--dark .lead,
.museum-collection-intro.bg-dark .lead {
  color: rgba(255, 248, 240, 0.92);
}

/* ---------- Radio exhibit: John DeMajo profile ---------- */
#johnDemajo.radio-profile,
.radio-profile {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-radius: 0.75rem;
  background: linear-gradient(
    165deg,
    var(--radio-sepia-elevated) 0%,
    var(--radio-sepia-mid) 55%,
    var(--radio-sepia-deep) 100%
  );
  border: 1px solid var(--radio-sepia-border);
  box-shadow:
    0 1px 0 rgba(255, 230, 200, 0.05) inset,
    0 18px 40px rgba(0, 0, 0, 0.4);
  color: rgba(255, 248, 240, 0.9);
}

.radio-profile-photo {
  position: relative;
  aspect-ratio: 3 / 4;
  max-height: 16rem;
  overflow: hidden;
  background: var(--radio-sepia-deep);
}

.radio-profile-photo::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 40%;
  background: linear-gradient(
    0deg,
    rgba(22, 17, 14, 0.9) 0%,
    transparent 100%
  );
  pointer-events: none;
}

.radio-profile-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.radio-profile-body {
  padding: 1.15rem 1.25rem 1.35rem;
}

.radio-profile-kicker {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: rgba(245, 219, 2, 0.75);
  margin-bottom: 0;
}

.radio-profile-callsign {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0.35rem 0.65rem;
  border-radius: 0.35rem;
  background: rgba(70, 152, 41, 0.18);
  border: 1px solid rgba(70, 152, 41, 0.4);
  color: #b8e09a;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.radio-profile-callsign-label {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

.radio-profile-body p.small {
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.82);
}

.radio-profile-body p.small strong {
  color: #fff;
}

/* ---------- Radio exhibit: topic cards (dark sepia, professional) ---------- */
.radio-topic-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 0.65rem;
  background: linear-gradient(
    180deg,
    var(--radio-sepia-elevated) 0%,
    var(--radio-sepia-mid) 100%
  );
  border: 1px solid var(--radio-sepia-border);
  box-shadow:
    0 1px 0 rgba(255, 230, 200, 0.04) inset,
    0 14px 32px rgba(0, 0, 0, 0.38);
  color: #fff;
  transition: border-color 0.2s ease, transform 0.2s ease,
    box-shadow 0.2s ease, background-color 0.2s ease;
}

.radio-topic-card:hover {
  border-color: rgba(245, 219, 2, 0.35);
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255, 230, 200, 0.06) inset,
    0 20px 44px rgba(0, 0, 0, 0.48);
}

.radio-topic-card-media {
  position: relative;
  background: var(--radio-sepia-deep);
  border-bottom: 1px solid rgba(212, 184, 150, 0.1);
}

.radio-topic-card-media::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 2.5rem;
  background: linear-gradient(
    0deg,
    rgba(22, 17, 14, 0.7) 0%,
    transparent 100%
  );
  pointer-events: none;
}

.radio-topic-card-body {
  padding: 1.25rem 1.3rem 1.4rem;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  border-top: 1px solid rgba(212, 184, 150, 0.14);
}

.radio-topic-card-body h3,
.radio-topic-card-body .oswald,
.radio-topic-card-body .text-warning,
body.site-polish .radio-topic-card-body h3,
body.site-polish .radio-topic-card-body .oswald,
body.site-polish .radio-topic-card-body .text-warning {
  color: #fff !important;
  letter-spacing: 0.04em;
  line-height: 1.25;
  margin-bottom: 0.15rem;
}

.radio-topic-card-body p,
.radio-topic-card-body .small,
body.site-polish .radio-topic-card-body p,
body.site-polish .radio-topic-card-body .small {
  color: #fff !important;
  line-height: 1.55;
  opacity: 0.88;
  margin-bottom: 0;
}

body.site-polish .radio-profile .text-warning {
  color: #f5db02 !important;
}

/* No gap between the band and footer on any page */
#plan-your-trip + #footer,
#explore-museum + #footer,
.ha-next + #footer {
  margin-top: 0 !important;
}

/* Footer quick-links pull upward; keep them clickable above this band */
#footer #quick_link,
#footer #three_up_ql {
  position: relative;
  z-index: 6;
}

.ha-next-kicker {
  color: rgba(245, 219, 2, 0.9);
}

.ha-next-title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #fff;
  line-height: 1.15;
}

.ha-next-lead {
  font-size: 0.98rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
}

.ha-next-card {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 1.15rem 1.15rem 1.2rem;
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #fff !important;
  transition: background-color 0.18s ease, border-color 0.18s ease,
    transform 0.18s ease, box-shadow 0.18s ease;
}

.ha-next-card:hover,
.ha-next-card:focus {
  background: rgba(70, 152, 41, 0.22);
  border-color: rgba(70, 152, 41, 0.55);
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

.ha-next-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 0.6rem;
  background: rgba(70, 152, 41, 0.25);
  color: #b8e09a;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.ha-next-card:hover .ha-next-icon,
.ha-next-card:focus .ha-next-icon {
  background: rgba(245, 219, 2, 0.18);
  color: #f5db02;
}

.ha-next-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
  flex: 1 1 auto;
  text-align: left;
}

.ha-next-card-title {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.2;
  color: #fff;
}

.ha-next-card-desc {
  font-size: 0.82rem;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.65);
}

.ha-next-arrow {
  color: rgba(255, 255, 255, 0.45);
  font-size: 1.1rem;
  flex-shrink: 0;
  transition: color 0.15s ease, transform 0.15s ease;
}

.ha-next-card:hover .ha-next-arrow,
.ha-next-card:focus .ha-next-arrow {
  color: #f5db02;
  transform: translateX(3px);
}

body.site-polish .ha-next-title,
body.site-polish .ha-next-card-title {
  color: #fff !important;
}

body.site-polish .ha-next-card:hover .ha-next-card-title,
body.site-polish .ha-next-card:focus .ha-next-card-title {
  color: #fff !important;
}

body.site-polish .ha-card-title,
body.site-polish .ha-section-title,
body.site-polish .ha-schedule-label,
body.site-polish .ha-price-label,
body.site-polish .ha-faq-q,
body.site-polish .ha-policy-title,
body.site-polish .ha-hotel-name {
  color: var(--ha-ink) !important;
}

body.site-polish .ha-schedule-time,
body.site-polish .ha-price-amount {
  color: var(--ha-green-dark) !important;
}

body.site-polish .ha-price-amount--free {
  color: var(--ha-green) !important;
}

body.site-polish .ha-card--faq a,
body.site-polish .ha-faq-a a,
body.site-polish .ha-policy-card a {
  color: var(--ha-green-dark) !important;
}



/* ---------- Visit / Museum hub cards ---------- */
.visit-hub-card {
  color: var(--ks-ink, #191b18);
  border-radius: 0.4rem;
  overflow: hidden;
  background: var(--ks-cream, #fefcec);
  border: 2px solid transparent;
  box-shadow: 0 0.15rem 0.5rem rgba(0, 0, 0, 0.08);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.visit-hub-card:hover,
.visit-hub-card:focus {
  color: var(--ks-ink, #191b18);
  border-color: var(--ks-green, #469829);
  box-shadow: 0 0.35rem 1rem rgba(70, 152, 41, 0.25);
  transform: translateY(-2px);
}
.visit-hub-card .mega-nav-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.visit-hub-card .mega-nav-desc {
  font-size: 0.9rem;
  text-transform: none;
  font-family: "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--ks-muted, #5c665c);
}



/* ==========================================================================
   Keystone Grill (/restaurant/)
   REVERT page HTML: cp restaurant/_original-backup-20260723/* restaurant/
   ========================================================================== */

/* White → light cream page backgrounds */
.restaurant-page,
.event-single-page {
  background: linear-gradient(
    180deg,
    #ffffff 0%,
    var(--ks-canvas, #f7f6f0) 100%
  );
}


.grill-page {
  background: linear-gradient(180deg, #fff 0%, var(--ks-canvas, #f7f6f0) 100%);
}

.grill-kicker {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--bs-primary, var(--ks-green, #469829));
}

.grill-intro-title {
  font-size: clamp(1.75rem, 3.2vw, 2.35rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.12;
  color: var(--ks-ink, #191b18) !important;
}

body.site-polish .grill-intro-title {
  color: var(--ks-ink, #191b18) !important;
}

.grill-intro-title .script {
  color: var(--bs-primary, var(--ks-green, #469829));
}

.grill-intro-lead {
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--ks-body, #2c322c);
  max-width: 38rem;
}

.grill-intro-meta {
  font-size: 0.92rem;
  color: var(--ks-muted, #5c665c);
  font-weight: 600;
}

.grill-chips {
  display: grid;
  gap: 0.75rem;
}

.grill-chip {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.95rem 1.1rem;
  background: #fff;
  border: 1px solid rgba(25, 27, 24, 0.1);
  border-radius: 0.75rem;
  box-shadow: 0 0.25rem 0.85rem rgba(25, 27, 24, 0.06);
}

.grill-chip-label {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  color: var(--bs-primary, var(--ks-green, #469829));
  font-weight: 600;
}

.grill-chip-value {
  font-family: "Oswald", sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--ks-ink, #191b18);
  line-height: 1.2;
}

a.grill-chip-phone {
  color: var(--ks-ink, #191b18) !important;
  text-decoration: none !important;
}

a.grill-chip-phone:hover {
  color: var(--ks-green, #469829) !important;
}

.grill-chip-note {
  font-size: 0.82rem;
  color: var(--ks-muted, #5c665c);
  line-height: 1.35;
}

/* Sticky menu jump nav (sits under fixed site header) */
.grill-menu-nav {
  position: sticky;
  top: 3.75rem;
  z-index: 40;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid rgba(25, 27, 24, 0.08);
  border-bottom: 1px solid rgba(25, 27, 24, 0.08);
  box-shadow: 0 4px 16px rgba(25, 27, 24, 0.05);
}

@media (min-width: 992px) {
  .grill-menu-nav {
    top: 5.75rem;
  }
}

.grill-menu-nav-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.65rem 0;
}

.grill-menu-nav-link {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ks-body, #2c322c) !important;
  text-decoration: none !important;
  background: var(--ks-canvas, #f7f6f0);
  border: 1px solid rgba(25, 27, 24, 0.08);
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.grill-menu-nav-link:hover,
.grill-menu-nav-link:focus {
  color: #fff !important;
  background: var(--ks-green, #469829);
  border-color: var(--ks-green, #469829);
}

.grill-menu-nav-link--call {
  background: var(--ks-green, #469829);
  border-color: var(--ks-green, #469829);
  color: #fff !important;
}

.grill-menu-nav-link--call:hover {
  background: var(--ks-green-dark, #37791f);
  border-color: var(--ks-green-dark, #37791f);
}

/* Menu sections */
.grill-section {
  scroll-margin-top: 5.5rem;
}

.grill-section-title {
  font-size: clamp(1.85rem, 3.5vw, 2.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.1;
}

.menu-panel {
  background: #fff;
  border: 1px solid rgba(25, 27, 24, 0.1);
  border-radius: 0.85rem;
  padding: 1.25rem 1.2rem 1.35rem;
  box-shadow: 0 0.3rem 1rem rgba(25, 27, 24, 0.05);
  height: 100%;
}

@media (min-width: 768px) {
  .menu-panel {
    padding: 1.45rem 1.5rem 1.55rem;
  }
}

.menu-panel-title {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center;
  color: #fff !important;
  background: linear-gradient(180deg, #4ea32f 0%, var(--ks-green, #469829) 100%);
  border-radius: 0.45rem;
  padding: 0.65rem 0.85rem;
  margin: 0 0 1.15rem;
}

body.site-polish .menu-panel-title {
  color: #fff !important;
}

.menu-panel-lead {
  font-size: 0.95rem;
  color: var(--ks-muted, #5c665c);
  font-style: italic;
}

.menu-subhead {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--bs-primary, var(--ks-green, #469829));
}

.menu-item {
  margin-bottom: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px dashed rgba(25, 27, 24, 0.1);
}

.menu-item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.menu-item--simple {
  margin-bottom: 0.45rem;
  padding-bottom: 0.4rem;
}

.menu-item-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

.menu-item-name {
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.25;
  color: var(--ks-ink, #191b18);
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
}

.menu-item-note {
  font-size: 0.85em;
  font-weight: 500;
  color: var(--ks-muted, #5c665c);
}

.menu-item-price {
  flex-shrink: 0;
  font-family: "Oswald", sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ks-green-dark, #37791f);
  white-space: nowrap;
  line-height: 1.2;
  padding-top: 0.1rem;
}

.menu-item-price--stack {
  white-space: normal;
  text-align: right;
  font-size: 0.95rem;
  line-height: 1.3;
}

.menu-item-desc {
  margin: 0.35rem 0 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--ks-body-soft, #3a423c);
}

.menu-item-desc small {
  color: var(--ks-muted, #5c665c);
}

.menu-item-list {
  margin: 0.4rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--ks-body-soft, #3a423c);
}

.menu-item-list li {
  margin-bottom: 0.15rem;
}

.menu-note {
  margin-top: 0.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: 0.5rem;
  background: rgba(245, 219, 2, 0.18);
  border: 1px solid rgba(200, 170, 0, 0.28);
  font-size: 0.88rem;
  color: var(--ks-body, #2c322c);
}

.grill-disclaimer {
  color: var(--ks-muted, #5c665c);
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.5;
}

/* Beverages band */
#beverages.grill-beverages,
.grill-beverages {
  position: relative;
  scroll-margin-top: 5.5rem;
  background-color: #3d7a5c;
  background-position: center;
  background-size: 220px 220px;
  background-attachment: fixed;
  color: #fff;
  box-shadow: inset 0 0 4rem rgba(0, 40, 30, 0.35);
  text-shadow: 0.06rem 0.06rem 0 rgba(0, 0, 0, 0.12);
}

.grill-beverages-script {
  display: inline-block;
  font-size: clamp(1.5rem, 3vw, 2rem);
  transform: rotate(-4deg);
  text-shadow: 0.1rem 0.1rem 0 rgba(0, 0, 0, 0.2);
}

.grill-beverages-title {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.1;
}

body.site-polish .grill-beverages-title,
body.site-polish #beverages .grill-beverages-title {
  color: #fff !important;
}

.grill-beverages-lead {
  font-size: 0.98rem;
  opacity: 0.92;
  line-height: 1.5;
}

.grill-bev-list > li {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 1rem;
  row-gap: 0.1rem;
  padding: 0.55rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  color: #fff !important;
}

.grill-bev-list > li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.grill-bev-name {
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #fff;
  line-height: 1.25;
}

.grill-bev-price {
  font-family: "Oswald", sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: #fff;
  white-space: nowrap;
}

.grill-bev-note {
  grid-column: 1 / -1;
  font-size: 0.88rem;
  opacity: 0.85;
  color: rgba(255, 255, 255, 0.9);
}

.grill-bev-logos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.55rem;
  padding: 0.65rem;
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.28);
}

.grill-bev-logos img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 4.25rem;
  object-fit: contain;
  padding: 0.45rem;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 0.4rem;
}

body.site-polish #beverages .grill-bev-name,
body.site-polish #beverages .grill-bev-price,
body.site-polish #beverages .grill-beverages-lead,
body.site-polish #beverages p,
body.site-polish #beverages .oswald {
  color: #fff !important;
}

body.site-polish #beverages .text-warning,
body.site-polish #beverages .grill-beverages-script {
  color: var(--bs-warning, #f5db02) !important;
}

@media (max-width: 575.98px) {
  .grill-menu-nav-link {
    font-size: 0.75rem;
    padding: 0.4rem 0.7rem;
  }

  .menu-item-name {
    font-size: 0.98rem;
  }
}



/* ---------- Donations page (/donations/) ---------- */
.donations-page {
  background: linear-gradient(
    180deg,
    #ffffff 0%,
    var(--ks-canvas, #f7f6f0) 100%
  );
}

.donate-kicker {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--bs-primary, var(--ks-green, #469829));
}

.donate-title {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.12;
  color: var(--ks-ink, #191b18) !important;
}

body.site-polish .donate-title {
  color: var(--ks-ink, #191b18) !important;
}

.donate-lead {
  font-size: 1.08rem;
  line-height: 1.6;
  color: var(--ks-body, #2c322c);
}

.donate-copy {
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--ks-body-soft, #3a423c);
}

.donate-impact {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
}

.donate-impact > li {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.9rem 1rem;
  background: #fff;
  border: 1px solid rgba(25, 27, 24, 0.1);
  border-radius: 0.75rem;
  box-shadow: 0 0.2rem 0.75rem rgba(25, 27, 24, 0.05);
  color: var(--ks-body, #2c322c);
}

.donate-impact strong {
  display: block;
  font-size: 0.88rem;
  letter-spacing: 0.06em;
  color: var(--ks-ink, #191b18);
  margin-bottom: 0.15rem;
}

.donate-impact .d-block {
  font-size: 0.9rem;
  color: var(--ks-muted, #5c665c);
  line-height: 1.4;
}

.donate-impact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 0.55rem;
  background: rgba(70, 152, 41, 0.12);
  color: var(--ks-green, #469829);
  font-size: 1.15rem;
}

.donate-tax {
  color: var(--ks-muted, #5c665c);
  line-height: 1.5;
  padding: 0.75rem 0.9rem;
  border-radius: 0.5rem;
  background: rgba(70, 152, 41, 0.06);
  border: 1px solid rgba(70, 152, 41, 0.14);
}

.donate-ways-title {
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--ks-ink, #191b18) !important;
  line-height: 1.15;
}

body.site-polish .donate-ways-title {
  color: var(--ks-ink, #191b18) !important;
}

.donate-ways {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.donate-card {
  background: #fff;
  border: 1px solid rgba(25, 27, 24, 0.1);
  border-radius: 0.85rem;
  box-shadow: 0 0.35rem 1.1rem rgba(25, 27, 24, 0.06);
  overflow: hidden;
}

.donate-card-head {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1.1rem 1.25rem 1rem;
  border-bottom: 1px solid rgba(25, 27, 24, 0.08);
  background: linear-gradient(
    180deg,
    rgba(70, 152, 41, 0.08) 0%,
    rgba(70, 152, 41, 0.02) 100%
  );
}

.donate-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.55rem;
  background: rgba(70, 152, 41, 0.12);
  color: var(--ks-green, #469829);
  font-size: 1.2rem;
  flex-shrink: 0;
}

.donate-card-title {
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ks-ink, #191b18) !important;
  line-height: 1.2;
}

body.site-polish .donate-card-title {
  color: var(--ks-ink, #191b18) !important;
}

.donate-card-sub {
  font-size: 0.85rem;
  color: var(--ks-muted, #5c665c);
  margin-top: 0.15rem;
  line-height: 1.35;
}

.donate-card-body {
  padding: 1.15rem 1.25rem 1.35rem;
  color: var(--ks-body, #2c322c);
  font-size: 0.95rem;
  line-height: 1.55;
}

.donate-card-body p {
  color: var(--ks-body, #2c322c);
}

.donate-address {
  font-style: normal;
  line-height: 1.5;
  color: var(--ks-ink, #191b18);
}

.donate-phone {
  display: inline-block;
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--ks-green, #469829) !important;
  text-decoration: none !important;
  line-height: 1.2;
}

.donate-phone:hover {
  color: var(--ks-green-dark, #37791f) !important;
}

.donate-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  border-top: 1px solid rgba(25, 27, 24, 0.08);
}

.donate-footer-links .btn {
  font-size: 0.82rem;
  letter-spacing: 0.05em;
  border-radius: 0.45rem !important;
}


/* Footer links: pure white */
#footer .footer-link-list a,
#footer .footer-legal a,
#footer .footer-contact-link,
body.site-polish #footer .footer-link-list a,
body.site-polish #footer .footer-legal a,
body.site-polish #footer .footer-contact-link {
  color: #fff !important;
}
#footer .footer-link-list a:hover,
#footer .footer-legal a:hover,
#footer .footer-contact-link:hover,
body.site-polish #footer .footer-link-list a:hover,
body.site-polish #footer .footer-legal a:hover,
body.site-polish #footer .footer-contact-link:hover {
  color: var(--bs-warning, #f5db02) !important;
}

/* ---------- Events list: private rooms CTA ---------- */
.events-venue-cta {
  background: linear-gradient(180deg, #ffffff 0%, var(--ks-canvas, #f7f6f0) 100%);
  border-top: 1px solid rgba(25, 27, 24, 0.08);
}

.events-venue-cta-inner {
  padding: 1.75rem 1.5rem 1.9rem;
  border-radius: 0.95rem;
  /* Lighter green panel */
  background: linear-gradient(
    145deg,
    #e8f5e1 0%,
    #d8efcd 45%,
    #c8e6b8 100%
  );
  color: var(--ks-ink, #191b18);
  border: 1px solid rgba(70, 152, 41, 0.22);
  box-shadow: var(--ks-shadow-sm, 0 1px 2px rgba(25, 27, 24, 0.05));
}

/* Body / normal text on light green */
.events-venue-cta-inner,
.events-venue-cta-inner p,
.events-venue-cta-inner li,
.events-venue-cta-inner span:not(.text-warning):not(.btn),
.events-venue-cta-inner .events-venue-cta-lead,
.events-venue-cta-inner .events-venue-room-desc,
.events-venue-cta-inner .events-venue-perks li,
body.site-polish .events-venue-cta-inner,
body.site-polish .events-venue-cta-inner p,
body.site-polish .events-venue-cta-inner li,
body.site-polish .events-venue-cta-inner .events-venue-cta-lead,
body.site-polish .events-venue-cta-inner .events-venue-room-desc,
body.site-polish .events-venue-cta-inner .events-venue-perks li {
  color: var(--ks-body-soft, #3a423c) !important;
}

.events-venue-cta-inner h2,
.events-venue-cta-inner .events-venue-cta-title,
body.site-polish .events-venue-cta-inner h2,
body.site-polish .events-venue-cta-inner .events-venue-cta-title,
body.site-polish .events-venue-cta-inner .oswald:not(.btn):not(.text-warning) {
  color: var(--ks-ink, #191b18) !important;
}

@media (min-width: 768px) {
  .events-venue-cta-inner {
    padding: 2.25rem 2.15rem 2.35rem;
  }
}

.events-venue-cta-kicker {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--ks-green-dark, #37791f) !important;
  margin: 0;
}

body.site-polish .events-venue-cta-kicker {
  color: var(--ks-green-dark, #37791f) !important;
}

.events-venue-cta-title {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.12;
  color: var(--ks-ink, #191b18) !important;
  margin: 0;
}

body.site-polish .events-venue-cta-title {
  color: var(--ks-ink, #191b18) !important;
}

.events-venue-cta-lead {
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--ks-body-soft, #3a423c) !important;
  max-width: 32rem;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 992px) {
  .events-venue-cta-lead {
    margin-left: 0;
    margin-right: 0;
  }
}

.events-venue-cta .btn-warning {
  border-radius: 0.45rem !important;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--ks-ink, #191b18) !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}

.events-venue-cta .btn-warning:hover {
  color: var(--ks-ink, #191b18) !important;
  transform: translateY(-1px);
}

.events-venue-room-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  padding: 1.15rem 1.2rem 1.25rem;
  border-radius: 0.75rem;
  background: #fff;
  border: 1px solid rgba(70, 152, 41, 0.18);
  color: var(--ks-ink, #191b18) !important;
  transition: background-color 0.18s ease, border-color 0.18s ease,
    transform 0.18s ease, box-shadow 0.18s ease;
}

.events-venue-room-card:hover,
.events-venue-room-card:focus {
  background: #fff;
  border-color: rgba(70, 152, 41, 0.4);
  color: var(--ks-ink, #191b18) !important;
  transform: translateY(-2px);
  box-shadow: 0 0.45rem 1.1rem rgba(25, 27, 24, 0.1);
}

.events-venue-room-num,
body.site-polish .events-venue-room-num,
body.site-polish .events-venue-room-num.oswald,
body.site-polish .events-venue-room-num.text-warning {
  font-size: 2.15rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
  color: var(--ks-green, #469829) !important;
}

.events-venue-room-label,
body.site-polish .events-venue-room-label,
body.site-polish .events-venue-room-label.oswald,
body.site-polish .events-venue-room-label.text-warning {
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--ks-green-dark, #37791f) !important;
}

.events-venue-room-desc {
  font-size: 0.85rem;
  line-height: 1.4;
  color: var(--ks-muted, #5c665c) !important;
}

.events-venue-perks {
  margin: 0;
  padding: 0;
}

.events-venue-perks li {
  position: relative;
  padding-left: 0.95rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ks-body-soft, #3a423c) !important;
}

.events-venue-perks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--ks-green, #469829);
}

/* Anchor targets: clear fixed top nav when jumping to #section */
section[id],
article[id],
header[id],
aside[id],
div[id].museum-collection-intro,
div[id].about-below,
div[id].shop-page-intro,
div[id].restaurant-page,
div[id].donations-page,
div[id].event-single-page,
#feature-museum-title,
#feature-museum-intro,
#feature-museum-gallery,
#feature-restaurant-title,
#feature-restaurant-body,
#feature-shop-title,
#feature-shop-body,
#quick-links,
#visitor-quote,
#shop-categories,
#grill-info,
#donate-story,
#donate-ways,
#contact-info,
#contact-form,
#news,
#news-grid,
#news-featured-wrap,
#newsletter-cta-section,
#newsletter-subscribe,
#collection-intro,
#radio-intro,
#radio-topics,
#radio-telegraph,
#radio-crystal-sets,
#radio-microphones,
#johnDemajo,
#catering,
#event-types,
#banquet-room,
#library-room,
#book-event,
#museum-hub,
#museum-intro,
#about-intro,
#about-founder,
#about-admission,
#about-event-rooms,
#visit-hub,
#gift-shop,
#upcoming-events,
#private-event-rooms,
#event-details,
#event-sidebar,
#explore-museum,
#plan-your-trip,
#three_up_ql,
#hours-admission,
#hours,
#admission,
#location,
#map,
#parking,
#parking-notes,
#visitor-details,
#faq,
#accommodations,
#rv-overview,
#amenities,
#reserve,
#harvest-host,
#gallery,
#guest-info,
#guidelines-stay,
#fire-safety,
#page-header {
  scroll-margin-top: 6.5rem;
}

@media (max-width: 991.98px) {
  section[id],
  article[id],
  header[id],
  #page-header {
    scroll-margin-top: 4.5rem;
  }
}

/* Article detail: featured image keeps native upload aspect ratio */
.news-article-featured-fig {
  max-width: 100%;
  background: #eef1ee;
}
.news-article-featured-fig img {
  display: block;
  width: 100%;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}

/* News listing hero — sharp photo, short band (same height as old blurred hero) */
.header-top.news-hero {
  background-color: #191b18; /* fallback if image fails */
  isolation: isolate;
}

/* Legacy blurred-photo treatment (article detail pages still use this markup) */
.header-top.news-hero .news-hero-photo {
  position: absolute;
  inset: -2.5rem;
  z-index: 0;
  background-image: var(--news-hero-img, none);
  background-size: cover;
  background-position: center;
  filter: blur(18px) saturate(1.05);
  transform: scale(1.12);
  pointer-events: none;
}

.header-top.news-hero .news-hero-tint {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      180deg,
      rgba(40, 90, 22, 0.42) 0%,
      rgba(47, 104, 26, 0.5) 55%,
      rgba(35, 78, 18, 0.58) 100%
    ),
    rgba(42, 95, 24, 0.28);
}

/* Shorter hero height for listing + detail news pages */
.header-top.news-hero .z-3 {
  height: 10rem;
  min-height: 10rem;
  z-index: 3;
}

@media (min-width: 992px) {
  .header-top.news-hero .z-3 {
    height: 15rem !important;
    min-height: 15rem !important;
  }
}

/* Ensure the real <img> hero fills the short band */
.header-top.news-hero .img-header,
.header-top.news-hero .img-header picture,
.header-top.news-hero .img-header img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Events intro — copy left, newsletter card right (no cream panel) */
.events-intro {
  position: relative;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  overflow: visible;
}

.events-intro-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.15rem 0;
}

.events-intro-kicker {
  letter-spacing: 0.1em;
  font-size: 0.78rem;
  margin-bottom: 0.35rem;
}

.events-intro-title {
  font-size: clamp(1.65rem, 1.2rem + 1.4vw, 2.35rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--ks-ink, #191b18);
  margin: 0;
}

.events-intro-lead {
  font-size: clamp(1.02rem, 0.95rem + 0.35vw, 1.18rem);
  line-height: 1.6;
  color: var(--ks-body-soft, #3a423c);
  max-width: 40rem;
  margin: 0;
}

.events-newsletter-card {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  /* Lighter green panel */
  background:
    linear-gradient(160deg, #e8f5e1 0%, #d8efcd 45%, #c8e6b8 100%);
  color: var(--ks-ink, #191b18);
  border: 1px solid rgba(70, 152, 41, 0.22);
  border-radius: var(--ks-radius-lg, 0.9rem);
  padding: 1.4rem 1.35rem 1.45rem;
  box-shadow: var(--ks-shadow-sm, 0 1px 2px rgba(25, 27, 24, 0.05));
  overflow: hidden;
}

.events-newsletter-card::after {
  content: "";
  position: absolute;
  right: -1.5rem;
  bottom: -1.5rem;
  width: 7.5rem;
  height: 7.5rem;
  border-radius: 50%;
  background: rgba(70, 152, 41, 0.1);
  pointer-events: none;
}

.events-newsletter-eyebrow {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: var(--ks-green-dark, #37791f) !important;
  margin: 0;
}

.events-newsletter-title {
  font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.4rem);
  letter-spacing: 0.03em;
  line-height: 1.2;
  color: var(--ks-ink, #191b18) !important;
  margin: 0;
}

.events-newsletter-text {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ks-body-soft, #3a423c);
  margin: 0;
  max-width: 20rem;
}

.events-newsletter-btn {
  border: 0 !important;
  color: #191b18 !important;
  width: 100%;
  margin-top: auto;
  padding-top: 0.7rem;
  padding-bottom: 0.7rem;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.08);
}

.events-newsletter-btn:hover,
.events-newsletter-btn:focus {
  filter: brightness(1.06);
  color: #191b18 !important;
  transform: translateY(-1px);
}

@media (min-width: 992px) {
  .events-intro-copy {
    padding-right: 1rem;
  }

  .events-newsletter-card {
    padding: 1.65rem 1.6rem 1.7rem;
    min-height: 100%;
  }
}

/* News article share icons — square buttons, centered glyphs */
.news-share {
  gap: 0.35rem;
}

.news-share .news-share-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  min-width: 2.25rem;
  padding: 0 !important;
  line-height: 1 !important;
  border-width: 2px;
  border-radius: var(--ks-radius-btn, 0.45rem) !important;
}

.news-share .news-share-btn svg {
  display: block;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  margin: 0;
  overflow: visible;
}

/* Facebook glyph is tall/narrow in its viewBox — keep visual weight even */
.news-share .news-share-btn[aria-label="Share on Facebook"] svg {
  width: 0.7rem;
  height: 1rem;
}

/* News article body — TipTap / CMS headlines use Oswald */
.news-body h1,
.news-body h2,
.news-body h3,
.news-body h4,
.news-body h5,
.news-body h6,
body.site-polish .news-body h1,
body.site-polish .news-body h2,
body.site-polish .news-body h3,
body.site-polish .news-body h4,
body.site-polish .news-body h5,
body.site-polish .news-body h6 {
  font-family: "Oswald", sans-serif !important;
  line-height: 1.25;
  letter-spacing: -0.02em;
  font-weight: 500;
}

.news-body h1,
body.site-polish .news-body h1 {
  font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
  margin: 1.5rem 0 0.75rem;
}

.news-body h2,
body.site-polish .news-body h2 {
  font-size: clamp(1.45rem, 1.2rem + 0.8vw, 1.85rem);
  margin: 1.35rem 0 0.65rem;
}

.news-body h3,
body.site-polish .news-body h3 {
  font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
  margin: 1.2rem 0 0.55rem;
}

.news-body h4,
.news-body h5,
.news-body h6,
body.site-polish .news-body h4,
body.site-polish .news-body h5,
body.site-polish .news-body h6 {
  font-size: 1.15rem;
  margin: 1.1rem 0 0.5rem;
}

.news-body > :first-child,
body.site-polish .news-body > :first-child {
  margin-top: 0;
}
