/* =========================================================
   page-enhancements.css
   Shared modern visual + UX techniques applied site-wide.
   Inspired by landing-page treatments — works on top of styles.min.css
   without overriding existing layouts.
   ========================================================= */

/* ---------- Tokens (fallbacks if not already defined) ---------- */
:root {
  --gv-gold: #c5a059;
  --gv-gold-bright: #d4af37;
  --gv-ink: #0d1810;
  --gv-ease: cubic-bezier(.2,.8,.2,1);
}

/* ---------- 1. Scroll-reveal: opacity + translate fade-in ---------- */
[data-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s var(--gv-ease), transform .7s var(--gv-ease);
  will-change: opacity, transform;
}
[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}
[data-reveal-delay="1"].is-visible { transition-delay: .08s; }
[data-reveal-delay="2"].is-visible { transition-delay: .16s; }
[data-reveal-delay="3"].is-visible { transition-delay: .24s; }
[data-reveal-delay="4"].is-visible { transition-delay: .32s; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* ---------- 2. Card hover lift (universal) ---------- */
.event-card,
.sponsor-card,
.gallery-card,
.info-card,
.feature-card,
.past-card {
  transition: transform .35s var(--gv-ease), box-shadow .35s var(--gv-ease), border-color .35s var(--gv-ease);
}
.event-card:hover,
.sponsor-card:hover,
.gallery-card:hover,
.info-card:hover,
.feature-card:hover,
.past-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px -12px rgba(0,0,0,.55), 0 0 0 1px rgba(197,160,89,.35);
}

/* ---------- 3. Gold pill / badge utility ---------- */
.gv-pill {
  display: inline-block;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: .35rem .85rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #d4af37, #b8860b);
  color: #0a0a0a;
  box-shadow: 0 2px 10px -2px rgba(212,175,55,.45);
}
.gv-pill--ghost {
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.7);
  box-shadow: inset 0 0 0 1px rgba(197,160,89,.3);
}

/* ---------- 4. Gold gradient horizontal divider ---------- */
.gv-divider-gold {
  height: 1px;
  width: 100%;
  margin: 2rem auto;
  border: 0;
  background: linear-gradient(90deg, transparent, rgba(197,160,89,.55), transparent);
}

/* ---------- 5. Glass-morphism utility for callouts ---------- */
.gv-glass {
  background: rgba(255,255,255,.04);
  backdrop-filter: blur(12px) saturate(120%);
  -webkit-backdrop-filter: blur(12px) saturate(120%);
  border: 1px solid rgba(197,160,89,.18);
  border-radius: 14px;
}

/* ---------- 6. Subtle gold underline link affordance ---------- */
a.gv-link {
  color: var(--gv-gold);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(197,160,89,.4);
  transition: color .2s, border-color .2s;
}
a.gv-link:hover {
  color: var(--gv-gold-bright);
  border-bottom-color: var(--gv-gold-bright);
}

/* ---------- 7. CTA ring-pulse (apply to .btn--primary or .btn-cta-pulse) ---------- */
.btn-cta-pulse {
  position: relative;
}
.btn-cta-pulse::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: inherit;
  border: 2px solid rgba(212,175,55,.7);
  animation: gv-pulse 3.4s var(--gv-ease) infinite;
  pointer-events: none;
}
@keyframes gv-pulse {
  0% { opacity: .9; transform: scale(1); }
  70% { opacity: 0; transform: scale(1.18); }
  100% { opacity: 0; transform: scale(1.18); }
}
@media (prefers-reduced-motion: reduce) {
  .btn-cta-pulse::after { animation: none; display: none; }
}

/* ---------- 8. Back-to-top floating button ---------- */
.gv-back-to-top {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(13,24,16,.85);
  color: var(--gv-gold);
  border: 1px solid rgba(197,160,89,.4);
  border-radius: 50%;
  text-decoration: none;
  font-size: 1.1rem;
  line-height: 1;
  box-shadow: 0 6px 20px -6px rgba(0,0,0,.6);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .3s, transform .3s, background .2s;
  z-index: 90;
}
.gv-back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.gv-back-to-top:hover {
  background: rgba(13,24,16,1);
  color: var(--gv-gold-bright);
}

/* ---------- 9. Active nav highlight (mobile) ---------- */
@media (max-width: 1023px) {
  .navbar-mobile a[aria-current="page"],
  .navbar-mobile .nav-more-link-mobile[aria-current="page"] {
    border-left: 3px solid var(--gv-gold);
    padding-left: calc(1rem - 3px) !important;
    background: rgba(197,160,89,.06) !important;
  }
}
.nav-more-dropdown a[aria-current="page"] {
  border-left: 3px solid var(--gv-gold);
  padding-left: calc(1rem - 3px) !important;
  background: rgba(197,160,89,.06) !important;
}

/* ---------- 10. Image lazy-fade (gentle entry) ---------- */
img[loading="lazy"] {
  transition: opacity .5s var(--gv-ease);
}

/* ---------- 11. Section heading gold accent bar ---------- */
.gv-heading-accent {
  position: relative;
  padding-top: 1rem;
}
.gv-heading-accent::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 3px;
  background: linear-gradient(90deg, var(--gv-gold-bright), transparent);
  border-radius: 2px;
}

/* ---------- 13. Live countdown widget ---------- */
.gv-countdown {
  margin: 1.5rem auto 0;
  max-width: 540px;
  text-align: center;
  padding: 1rem 1.25rem;
  background: rgba(0,0,0,.45);
  border: 1px solid rgba(197,160,89,.25);
  border-radius: 12px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.gv-countdown__label {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(212,175,55,.9);
  margin-bottom: .65rem;
}
.gv-countdown__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .65rem;
}
.gv-countdown__cell {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  padding: .55rem .25rem;
}
.gv-countdown__num {
  display: block;
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: clamp(1.4rem, 4vw, 1.85rem);
  font-weight: 700;
  color: #fff;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.gv-countdown__unit {
  display: block;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin-top: .35rem;
}
.gv-countdown.is-live .gv-countdown__num { color: var(--gv-gold-bright); }

/* ---------- 14. Sponsor logo marquee ---------- */
.gv-sponsor-marquee {
  width: 100%;
  overflow: hidden;
  padding: 1.25rem 0;
  background: linear-gradient(90deg, rgba(0,0,0,.6), rgba(0,0,0,.4), rgba(0,0,0,.6));
  border-top: 1px solid rgba(197,160,89,.18);
  border-bottom: 1px solid rgba(197,160,89,.18);
  position: relative;
}
.gv-sponsor-marquee__label {
  text-align: center;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: rgba(197,160,89,.7);
  margin-bottom: .85rem;
}
.gv-sponsor-marquee__track {
  display: flex;
  gap: 3.5rem;
  width: max-content;
  animation: gv-marquee 36s linear infinite;
  align-items: center;
  will-change: transform;
}
.gv-sponsor-marquee__track:hover { animation-play-state: paused; }
.gv-sponsor-marquee img {
  height: 50px;
  width: auto;
  opacity: .65;
  filter: grayscale(40%);
  transition: opacity .25s, filter .25s;
}
.gv-sponsor-marquee img:hover { opacity: 1; filter: none; }
/* Seamless loop: content always visible (no empty gap), scrolls right-to-left.
   Track holds 2× content; animating to -50% perfectly aligns the duplicate. */
@keyframes gv-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Tighten vertical padding on the marquee + remove tall negative space */
.gv-sponsor-marquee {
  padding: .85rem 0 !important;
}
@media (prefers-reduced-motion: reduce) {
  .gv-sponsor-marquee__track { animation: none; flex-wrap: wrap; justify-content: center; width: 100%; }
}

/* ---------- 15. Sticky nav shrink (after scroll) ---------- */
.navbar { transition: padding .3s var(--gv-ease), background .3s var(--gv-ease); }
.navbar.is-shrunk {
  padding-top: .25rem !important;
  padding-bottom: .25rem !important;
  background: linear-gradient(135deg, rgba(0,0,0,.92), rgba(0,0,0,.85)) !important;
  box-shadow: 0 4px 20px -8px rgba(0,0,0,.6);
}
.navbar.is-shrunk .navbar-logo {
  width: 70px !important;
  height: auto !important;
  transition: width .3s var(--gv-ease);
}

/* ---------- 12. Focus-visible polish (accessibility) ---------- */
a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--gv-gold-bright);
  outline-offset: 3px;
  border-radius: 3px;
}

/* ---------- 16. Print stylesheet — clean output for forms / flyers / rules ---------- */
@media print {
  .navbar,
  .reach-bar,
  .venue-ticker,
  .gv-back-to-top,
  .gv-sponsor-marquee,
  .gv-countdown,
  .marquee-strip,
  .site-footer,
  .skip-link,
  video,
  iframe,
  [data-no-print] { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
  main, .content-section, .prose { background: #fff !important; color: #000 !important; }
  h1, h2, h3, h4 { color: #000 !important; page-break-after: avoid; }
  a { color: #000 !important; text-decoration: underline; }
  a[href^="http"]:after { content: " (" attr(href) ")"; font-size: 85%; }
  img { max-width: 100% !important; page-break-inside: avoid; }
  .past-card, .event-card, .info-card { page-break-inside: avoid; border: 1px solid #ccc !important; }
}

/* ---------- 17. Smooth scroll site-wide (respects reduced motion) ---------- */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* ---------- 18. Better image rendering on retina ---------- */
img { image-rendering: -webkit-optimize-contrast; }

/* ---------- 19. Site footer redesign — refined typography + structure ---------- */
.site-footer {
  position: relative;
  padding: 3.5rem 1.5rem 2rem !important;
  background-color: #050505 !important;
  background-image:
    linear-gradient(180deg, rgba(5,5,5,.78) 0%, rgba(5,5,5,.88) 60%, rgba(5,5,5,.96) 100%),
    url('../images/arenawithstandsandmesa.webp') !important;
  background-size: cover !important;
  background-position: center 30% !important;
  background-repeat: no-repeat !important;
  border-top: 1px solid rgba(197,160,89,.28);
  color: rgba(255,255,255,.78);
}
/* Landing page gets a different (night) backdrop */
body[data-page="index"] .site-footer {
  background-image:
    linear-gradient(180deg, rgba(5,5,5,.72) 0%, rgba(5,5,5,.85) 55%, rgba(5,5,5,.95) 100%),
    url('../images/arenanight.webp') !important;
  background-position: center 40% !important;
}
.site-footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 240px;
  max-width: 80%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(212,175,55,.55), transparent);
}
.site-footer .footer-logo,
.site-footer .footer-logo-img {
  display: block;
  margin: 0 auto;
}
.site-footer .footer-logo-img {
  width: 88px !important;
  height: auto !important;
  margin-bottom: 1.25rem;
  opacity: .92;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.5));
}
/* Address block — eyebrow + name */
.site-footer p:has(strong:first-child),
.site-footer .footer-address strong {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 1.1rem;
  font-weight: 600;
  color: rgba(255,255,255,.92);
  letter-spacing: .01em;
}
.site-footer p {
  text-align: center;
  margin: .35rem 0;
  font-size: .88rem;
  line-height: 1.55;
}
/* Inline nav row — gold dot separators */
.site-footer nav,
.site-footer .footer-nav,
.site-footer ul.footer-links {
  margin: 1.5rem auto;
  text-align: center;
  max-width: 880px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .15rem .85rem;
  list-style: none;
  padding: 0;
}
.site-footer nav a,
.site-footer .footer-nav a,
.site-footer .footer-links a {
  font-size: .82rem;
  letter-spacing: .04em;
  color: rgba(255,255,255,.72) !important;
  text-decoration: none;
  padding: .35rem .25rem;
  position: relative;
  transition: color .2s ease;
}
.site-footer nav a:hover,
.site-footer .footer-nav a:hover,
.site-footer .footer-links a:hover {
  color: var(--gv-gold-bright, #d4af37) !important;
}
.site-footer nav a + a::before,
.site-footer .footer-nav a + a::before,
.site-footer .footer-links a + a::before {
  content: '·';
  color: rgba(212,175,55,.35);
  margin-right: .85rem;
  pointer-events: none;
}
/* Heading rows — Follow us, Privacy/Terms */
.site-footer h3,
.site-footer .footer-heading {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: rgba(212,175,55,.85);
  margin: 1.5rem 0 .75rem;
  text-align: center;
}
/* Social icon row — circular gold-bordered hover */
.site-footer .social-icons,
.site-footer .footer-social {
  display: flex;
  justify-content: center;
  gap: .85rem;
  margin: .65rem auto 1.25rem;
}
.site-footer .social-icons a,
.site-footer .footer-social a {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(197,160,89,.22);
  color: rgba(255,255,255,.78);
  transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
}
.site-footer .social-icons a:hover,
.site-footer .footer-social a:hover {
  background: rgba(212,175,55,.12);
  border-color: rgba(212,175,55,.6);
  color: var(--gv-gold-bright, #d4af37);
  transform: translateY(-2px);
}
.site-footer .social-icons svg,
.site-footer .footer-social svg {
  width: 18px;
  height: 18px;
}
/* Copyright + region line */
.site-footer .footer-copyright,
.site-footer .footer-meta,
.site-footer .footer-copy {
  margin-top: 1.5rem !important;
  padding-top: 1.5rem !important;
  border-top: 1px solid rgba(255,255,255,.06);
  font-size: .75rem;
  color: rgba(255,255,255,.45);
  text-align: center;
}
/* Three-column structure helper for new pages — graceful overlay on existing markup */
.site-footer .footer-cols {
  max-width: 960px;
  margin: 0 auto 1.5rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem 3rem;
  text-align: left;
}
.site-footer .footer-cols h4 {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: rgba(212,175,55,.85);
  margin-bottom: .85rem;
}
.site-footer .footer-cols p,
.site-footer .footer-cols li {
  font-size: .82rem;
  line-height: 1.7;
  color: rgba(255,255,255,.68);
  margin: .3rem 0;
  text-align: left;
}
.site-footer .footer-cols a { color: rgba(255,255,255,.85); text-decoration: none; }
.site-footer .footer-cols a:hover { color: var(--gv-gold-bright, #d4af37); }

/* =========================================================
   19. SUBPAGE COHESION — make non-index pages match landing
   ========================================================= */

/* Dark granite background on every NON-index page */
body:not([data-page="index"]) {
  background: #0a0a0a;
  background-image:
    radial-gradient(ellipse at 20% 0%, rgba(197,160,89,0.06), transparent 55%),
    radial-gradient(ellipse at 80% 30%, rgba(80,40,20,0.08), transparent 60%),
    linear-gradient(180deg, #0d0d0e 0%, #050505 100%);
  background-attachment: fixed;
  color: rgba(255,255,255,.88);
}

/* Override ALL section backgrounds on subpages (was only catching page-mountains-intro) */
body:not([data-page="index"]) .main-inner,
body:not([data-page="index"]) main > .main-inner,
body:not([data-page="index"]) .content-section,
body:not([data-page="index"]) .page-mountains-intro,
body:not([data-page="index"]) section,
body:not([data-page="index"]) .feature-grid,
body:not([data-page="index"]) .features-section,
body:not([data-page="index"]) .icon-feature,
body:not([data-page="index"]) .feature-block {
  background: transparent !important;
  background-color: transparent !important;
  color: rgba(255,255,255,.92);
}
/* But preserve white background on form inputs and known white-required components */
body:not([data-page="index"]) input,
body:not([data-page="index"]) textarea,
body:not([data-page="index"]) select {
  background-color: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.95) !important;
  border-color: rgba(197,160,89,.3) !important;
}
body:not([data-page="index"]) input::placeholder,
body:not([data-page="index"]) textarea::placeholder { color: rgba(255,255,255,.4); }

/* Calendar filter selects — high-contrast dark dropdown styling */
body:not([data-page="index"]) .guide-filter-select,
body:not([data-page="index"]) .guide-filter-label {
  color: #fff !important;
}
body:not([data-page="index"]) .guide-filter-select {
  background-color: rgba(13,24,16,.9) !important;
  background: rgba(13,24,16,.9) !important;
  border: 1px solid rgba(197,160,89,.4) !important;
  color: #fff !important;
  padding: .55rem .85rem !important;
  border-radius: 6px !important;
  font-size: .9rem;
}
body:not([data-page="index"]) .guide-filter-select option {
  background: #0d1810 !important;
  color: #fff !important;
}
body:not([data-page="index"]) .guide-filter-label {
  font-size: .68rem !important;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(212,175,55,.95) !important;
  display: block;
  margin-bottom: .35rem;
}
body:not([data-page="index"]) .guide-legend-title {
  color: rgba(212,175,55,.95) !important;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
body:not([data-page="index"]) .guide-legend-desc,
body:not([data-page="index"]) .guide-legend-list li,
body:not([data-page="index"]) .guide-results-count {
  color: rgba(255,255,255,.85) !important;
}

/* Past-events page legacy white footer-tagline / footer-copy */
body[data-page="past-events"] .footer-tagline,
body[data-page="past-events"] .footer-copy { color: rgba(255,255,255,.7) !important; }
body[data-page="past-events"] .footer-nav a { color: rgba(197,160,89,.85) !important; }

/* Sponsorship-apply white form section override */
body[data-page="sponsorship-apply"] .sponsorship-form-section,
body[data-page="sponsorship-apply"] .sponsorship-form-card,
body[data-page="sponsorship-apply"] .sponsors-download-box {
  background: rgba(255,255,255,.04) !important;
  background-color: rgba(255,255,255,.04) !important;
  background-image: none !important;
  color: rgba(255,255,255,.88) !important;
  border: 1px solid rgba(197,160,89,.18) !important;
  box-shadow: none !important;
}
body[data-page="sponsorship-apply"] .sponsorship-form-card p,
body[data-page="sponsorship-apply"] .sponsorship-form-card h2,
body[data-page="sponsorship-apply"] .sponsorship-form-card h3,
body[data-page="sponsorship-apply"] .sponsors-download-box p,
body[data-page="sponsorship-apply"] .sponsors-download-box h2,
body[data-page="sponsorship-apply"] .sponsors-download-box h3 {
  color: rgba(255,255,255,.92) !important;
}

/* Feature card / icon block — gold-accented dark */
body:not([data-page="index"]) .feature-card,
body:not([data-page="index"]) .icon-feature,
body:not([data-page="index"]) .feature-block {
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(197,160,89,.18) !important;
  border-radius: 12px;
  padding: 1.5rem;
}

/* Hide legacy light-theme section-dividers on subpages (replaced by gold gradient lines) */
body:not([data-page="index"]) .section-divider,
body:not([data-page="index"]) [class*="section-divider"] {
  display: none !important;
}
/* Replace removed dividers with subtle gold gradient line for rhythm */
body:not([data-page="index"]) .content-section + .content-section {
  position: relative;
}
body:not([data-page="index"]) .content-section + .content-section::before {
  content: '';
  display: block;
  height: 1px;
  width: 60%;
  margin: 0 auto 2rem;
  background: linear-gradient(90deg, transparent, rgba(197,160,89,.35), transparent);
}

/* Brighten subpage section titles for legibility */
body:not([data-page="index"]) .section-title,
body:not([data-page="index"]) h1,
body:not([data-page="index"]) h2 { color: rgba(255,255,255,.96) !important; }
body:not([data-page="index"]) h3,
body:not([data-page="index"]) h4 { color: rgba(255,255,255,.9) !important; }

/* Catch any white-bg inner cards/blocks */
body:not([data-page="index"]) [style*="background:#fff"],
body:not([data-page="index"]) [style*="background-color:#fff"],
body:not([data-page="index"]) [style*="background: #fff"],
body:not([data-page="index"]) [style*="background-color: #fff"] {
  background: rgba(255,255,255,.05) !important;
  background-color: rgba(255,255,255,.05) !important;
}

/* Reduce excess vertical padding on subpage hero/section blocks */
body:not([data-page="index"]) .content-section {
  padding-top: 2.5rem !important;
  padding-bottom: 2.5rem !important;
}
body:not([data-page="index"]) .brand-spread,
body[data-page="index"] .brand-spread {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

/* CRITICAL: inline styles using --primary-900/700/600 render as dark navy/grey
   which is INVISIBLE on dark theme. Force readable colors. */
body:not([data-page="index"]) [style*="--primary-900"],
body:not([data-page="index"]) [style*="--primary-800"] {
  color: rgba(255,255,255,.96) !important;
}
body:not([data-page="index"]) [style*="--primary-700"],
body:not([data-page="index"]) [style*="--primary-600"] {
  color: rgba(255,255,255,.78) !important;
}
body:not([data-page="index"]) [style*="--primary-500"],
body:not([data-page="index"]) [style*="--primary-400"] {
  color: rgba(255,255,255,.6) !important;
}
/* Catch any inline color: #0a0a0a / #111 / #1a1a1a / #222 / black-ish on subpages */
body:not([data-page="index"]) [style*="color:#0"],
body:not([data-page="index"]) [style*="color: #0"],
body:not([data-page="index"]) [style*="color:#1"],
body:not([data-page="index"]) [style*="color: #1"],
body:not([data-page="index"]) [style*="color:#2"],
body:not([data-page="index"]) [style*="color: #2"] {
  color: rgba(255,255,255,.85) !important;
}

/* Hide ALL section-divider variants on subpages (catches the white wave on
   sponsorship-apply that wasn't matched by .section-divider selector) */
body:not([data-page="index"]) .venue-divider,
body:not([data-page="index"]) [class*="-divider--mountains"],
body:not([data-page="index"]) [class*="-divider--white"],
body:not([data-page="index"]) [class*="-divider--light"] {
  display: none !important;
}

/* About / gallery / similar — center the content properly (was offset right) */
body[data-page="about"] .content-section--narrow,
body[data-page="gallery"] .content-section--narrow,
body:not([data-page="index"]) main .content-section--narrow {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 720px;
}

/* =========================================================
   20. SUBPAGE FEATURE SECTIONS — give them depth & contrast
   (Fixes the "black on black" bleeding on venue/about/etc.)
   ========================================================= */

/* Venue strips — give them card backgrounds + brighter text */
body:not([data-page="index"]) .venue-strip {
  padding: 3rem 1.5rem !important;
  position: relative;
}
body:not([data-page="index"]) .venue-strip__inner {
  max-width: 920px;
  margin: 0 auto;
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02)) !important;
  border: 1px solid rgba(197,160,89,.22) !important;
  border-radius: 16px;
  padding: 2rem 2.5rem !important;
  display: flex;
  align-items: center;
  gap: 1.85rem;
  box-shadow: 0 8px 32px -16px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.04);
}
body:not([data-page="index"]) .venue-strip--alt .venue-strip__inner {
  background: linear-gradient(135deg, rgba(212,175,55,.08), rgba(197,160,89,.02)) !important;
  border-color: rgba(212,175,55,.3) !important;
}
body:not([data-page="index"]) .venue-strip__icon {
  flex: 0 0 auto;
  font-size: 2.4rem;
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(212,175,55,.1);
  border: 1px solid rgba(212,175,55,.3);
  border-radius: 50%;
}
body:not([data-page="index"]) .venue-strip__title {
  font-family: var(--font-display, 'Playfair Display', Georgia, serif);
  font-size: 1.65rem !important;
  font-weight: 600 !important;
  color: rgba(255,255,255,.96) !important;
  margin: 0 0 .55rem !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.5);
}
body:not([data-page="index"]) .venue-strip__desc {
  font-size: 1rem !important;
  color: rgba(255,255,255,.82) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}

/* Stack icon above content on mobile */
@media (max-width: 639px) {
  body:not([data-page="index"]) .venue-strip__inner {
    flex-direction: column;
    text-align: center;
    padding: 1.5rem 1.25rem !important;
  }
}

/* Brighten ALL prose text on subpages (was bleeding) */
body:not([data-page="index"]) .prose,
body:not([data-page="index"]) .prose p,
body:not([data-page="index"]) p.prose,
body:not([data-page="index"]) main p {
  color: rgba(255,255,255,.85) !important;
}
body:not([data-page="index"]) .lead {
  color: rgba(255,255,255,.92) !important;
  font-size: 1.1rem !important;
}

/* Bright headings everywhere */
body:not([data-page="index"]) main h1,
body:not([data-page="index"]) main h2,
body:not([data-page="index"]) main h3,
body:not([data-page="index"]) main h4 {
  color: rgba(255,255,255,.97) !important;
  text-shadow: 0 2px 14px rgba(0,0,0,.5);
}

/* "Ideal For" / similar feature lists — give them card treatment */
body:not([data-page="index"]) .ideal-for-list,
body:not([data-page="index"]) ul.feature-list {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  max-width: 920px;
  margin: 1.5rem auto;
}
body:not([data-page="index"]) .ideal-for-list li,
body:not([data-page="index"]) ul.feature-list li {
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(197,160,89,.18) !important;
  border-radius: 10px;
  padding: 1rem 1.25rem;
  color: rgba(255,255,255,.88) !important;
  font-size: .95rem;
  position: relative;
  padding-left: 2.5rem;
}
body:not([data-page="index"]) .ideal-for-list li::before,
body:not([data-page="index"]) ul.feature-list li::before {
  content: '✓';
  position: absolute;
  left: 1rem;
  color: var(--gv-gold-bright, #d4af37);
  font-weight: 700;
}

/* Section heading — Ideal For h2 */
body:not([data-page="index"]) main h2 + ul,
body:not([data-page="index"]) main .section-heading-row {
  margin-top: 1rem;
}

/* Inject a subtle gold underline accent under page hero h1s */
body:not([data-page="index"]) main > section:first-child h1::after,
body:not([data-page="index"]) main > .main-inner > section:first-child h1::after {
  content: '';
  display: block;
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, var(--gv-gold-bright, #d4af37), transparent);
  margin: 1rem 0 0;
  border-radius: 2px;
}
/* But keep landing's hero alone */
body[data-page="index"] main h1::after { display: none !important; }

/* =========================================================
   21. MOBILE TIGHTENING — fix overlap + spacing on <640px
   ========================================================= */
@media (max-width: 639px) {
  /* Subpage section padding tighter */
  body:not([data-page="index"]) .content-section,
  body:not([data-page="index"]) section {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
  }
  /* Hero h1s scale down */
  body:not([data-page="index"]) main > section:first-child h1,
  body:not([data-page="index"]) main > .main-inner > section:first-child h1,
  .section-title { font-size: clamp(1.65rem, 7vw, 2.25rem) !important; }
  .lead, body:not([data-page="index"]) .lead { font-size: .98rem !important; }
  /* Venue ticker stacks vertically (already does at 639px in original); ensure padding tight */
  .venue-ticker { padding: .55rem .85rem !important; gap: .25rem !important; }
  /* Reduce navbar height feel */
  .navbar { padding-top: .35rem !important; padding-bottom: .35rem !important; }
  /* Stats / cards-in-row grids — let them flow */
  body:not([data-page="index"]) [style*="grid-template-columns:repeat(auto-fit"],
  body:not([data-page="index"]) [style*="grid-template-columns:repeat(auto-fill"] { gap: .65rem !important; }
  /* Cards inside event/feature grids — tighter padding */
  body:not([data-page="index"]) article[role="listitem"],
  body:not([data-page="index"]) .past-card,
  body:not([data-page="index"]) .info-card,
  body:not([data-page="index"]) .feature-card { padding: 1.15rem 1rem !important; }
  /* Footer columns stack */
  .site-footer .footer-cols { grid-template-columns: 1fr !important; gap: 1.25rem !important; }
  .site-footer { padding: 2.5rem 1rem 1.5rem !important; }
  /* Sponsor marquee logo height tighter */
  .gv-sponsor-marquee img { height: 38px !important; }
  /* Buttons in CTA rows wrap nicely */
  .btn, a.btn { display: inline-flex; align-items: center; justify-content: center; }
  /* Past events card body single-column */
  body[data-page="past-events"] .past-card__body { grid-template-columns: 1fr !important; }
  body[data-page="past-events"] .past-card__flyer { height: 240px !important; min-height: 240px !important; }
  /* Sponsorship apply form — single column */
  body[data-page="sponsorship-apply"] form > div[style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
  /* Inquire/CTA strips stack */
  [style*="display:flex"][style*="gap:1rem"][style*="justify-content:space-between"] { flex-direction: column !important; }
  /* Countdown grid stays 4-col but smaller */
  .gv-countdown__grid { gap: .35rem !important; }
  .gv-countdown__num { font-size: 1.35rem !important; }
}

/* Hero panels for thin subpages — use venue-hero as a tasteful banner strip
   (limited to specific pages that benefit, no global pseudo-elements) */
body[data-page="rv-parking"] main > .main-inner > section:first-child,
body[data-page="location"] main > .main-inner > section:first-child {
  position: relative;
  padding-top: 4rem !important;
  padding-bottom: 3rem !important;
  background-image:
    linear-gradient(180deg, rgba(10,10,10,.85) 0%, rgba(10,10,10,.92) 60%, #0a0a0a 100%),
    url('../images/venue-hero-2026.webp');
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  border-bottom: 1px solid rgba(197,160,89,.18);
  margin-bottom: 2rem;
}
body:not([data-page="index"]) .page-mountains-intro .section-label,
body:not([data-page="index"]) .content-section .section-label {
  color: var(--gv-gold-bright) !important;
  letter-spacing: .25em;
}
body:not([data-page="index"]) .page-mountains-intro .section-title,
body:not([data-page="index"]) .content-section .section-title,
body:not([data-page="index"]) .content-section h1,
body:not([data-page="index"]) .content-section h2 {
  color: rgba(255,255,255,.96) !important;
}
body:not([data-page="index"]) .content-section p,
body:not([data-page="index"]) .prose p {
  color: rgba(255,255,255,.78);
}
body:not([data-page="index"]) .prose h2,
body:not([data-page="index"]) .prose h3,
body:not([data-page="index"]) .prose h4 {
  color: rgba(255,255,255,.94) !important;
}
body:not([data-page="index"]) .prose a {
  color: var(--gv-gold-bright);
}

/* Mountain SVG opacity boost for dark theme */
body:not([data-page="index"]) .page-mountains-svg svg path { stroke: rgba(197,160,89,.35) !important; }
body:not([data-page="index"]) .section-divider--mountains-footer path { fill: rgba(20,20,22,.9) !important; }

/* Section dividers on subpages — use dark gradient */
body:not([data-page="index"]) .section-divider {
  background: transparent !important;
}

/* Universal venue-ticker — full styling so subpages match landing */
.venue-ticker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .55rem 1.5rem;
  background: linear-gradient(90deg, rgba(0,0,0,.95), rgba(17,17,17,.92), rgba(0,0,0,.95));
  border-top: 1px solid rgba(197,160,89,.25);
  border-bottom: 1px solid rgba(197,160,89,.25);
  font-size: .78rem;
  color: rgba(255,255,255,.85);
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}
.venue-ticker__item {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: 'Inter', system-ui, sans-serif;
  letter-spacing: .04em;
}
.venue-ticker__label {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(212,175,55,.85);
}
.venue-ticker__value { color: rgba(255,255,255,.92); font-weight: 500; }
.venue-ticker__divider {
  width: 1px;
  height: 14px;
  background: rgba(197,160,89,.3);
  flex-shrink: 0;
}
.venue-ticker__link {
  color: #d4af37;
  font-weight: 600;
  text-decoration: none;
  transition: color .25s ease;
}
.venue-ticker__link:hover,
.venue-ticker__link:focus-visible {
  color: #e5c77a;
  outline: none;
}
@media (max-width: 639px) {
  .venue-ticker {
    flex-direction: column;
    gap: .35rem;
    padding: .6rem 1rem;
    font-size: .85rem;
  }
  .venue-ticker__divider { display: none; }
  .venue-ticker__label { font-size: .7rem; }
}

/* Footer on dark theme */
body:not([data-page="index"]) .site-footer {
  background: rgba(0,0,0,.6) !important;
  border-top: 1px solid rgba(197,160,89,.18);
  color: rgba(255,255,255,.7);
}
body:not([data-page="index"]) .site-footer a { color: rgba(197,160,89,.85); }

/* Cards / glass surfaces on subpages — gold-accented dark */
body:not([data-page="index"]) .info-card,
body:not([data-page="index"]) .feature-card,
body:not([data-page="index"]) .gallery-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(197,160,89,.18);
  color: rgba(255,255,255,.85);
}

/* Buttons — gold on subpages match landing */
body:not([data-page="index"]) .btn--primary,
body:not([data-page="index"]) .btn--gold {
  background: linear-gradient(135deg, #d4af37, #b8860b);
  color: #0a0a0a;
  border: 0;
}

/* Hero subpage label/heading vertical rhythm */
body:not([data-page="index"]) .content-section .section-label {
  display: inline-block;
  margin-bottom: .65rem;
}

/* Print and 404/coming-soon stay clean — opt out */
body[data-page="404"],
body[data-page="coming-soon"],
body[data-page="privacy"],
body[data-page="terms"] {
  /* keep dark but allow page-specific styling */
}
