/* ============================================================
   RUN WITH PRINCESS — Global Stylesheet
   ============================================================ */

/* ── Design Tokens ──────────────────────────────────────────── */
:root {
  --burgundy:      #6B1E2E;
  --deep-burgundy: #4A1220;
  --coral:         #D4614A;
  --gold:          #C9A84C;
  --gold-light:    #E2C97A;
  --cream:         #F7F0E6;
  --warm-white:    #FDF8F3;
  --charcoal:      #2A2020;
  --mid-brown:     #8B5E52;
  --soft-pink:     #F2D5CB;
  --black:         #0A0408;
  --header-h:      72px;
  --footer-h:      340px; /* tall professional footer */
}

/* ── Reset ──────────────────────────────────────────────────── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  font-size: 16px;
  overflow-x: hidden; /* prevent horizontal drag at html level */
}
body {
  font-family: 'Barlow', sans-serif;
  background: var(--warm-white);
  color: var(--charcoal);
  overflow-x: hidden;
  padding-top: var(--header-h);
  /* guard against any child pushing past viewport width */
  max-width: 100%;
}
img { display: block; max-width: 100%; }
a  { text-decoration: none; }

/* ── Utility classes ────────────────────────────────────────── */
.text-center { text-align: center; }
.justify-center { justify-content: center; }
.hidden { display: none; }

.center-block { margin: 0 auto; }
.max-w-400 { max-width: 400px; }
.max-w-460 { max-width: 460px; }
.max-w-480 { max-width: 480px; }
.max-w-520 { max-width: 520px; }
.max-w-560 { max-width: 560px; }
.max-w-580 { max-width: 580px; }
.max-w-600 { max-width: 600px; }
.max-w-660 { max-width: 660px; }

.mt-1 { margin-top: 1rem; }
.mt-2 { margin-top: 1.5rem; }
.mt-3 { margin-top: 2rem; }
.mt-4 { margin-top: 2.5rem; }
.mb-1 { margin-bottom: .5rem; }
.mb-2 { margin-bottom: 1.5rem; }

/* Reveal animation delays */
.delay-1 { transition-delay: .05s; }
.delay-2 { transition-delay: .1s; }
.delay-3 { transition-delay: .15s; }
.delay-4 { transition-delay: .2s; }
.delay-5 { transition-delay: .25s; }
.delay-6 { transition-delay: .3s; }
.delay-8 { transition-delay: .4s; }

/* CTA / button row, centered */
.cta-row {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* Form success / status messages */
.form-status {
  margin-top: 1rem;
  font-size: .85rem;
  color: rgba(255,255,255,.7);
  display: none;
}
.form-status.alt {
  margin-top: 1rem;
  font-size: .9rem;
  color: rgba(255,255,255,.8);
}
.form-success-banner {
  display: none;
  background: rgba(201,168,76,.15);
  border-left: 3px solid var(--gold);
  padding: 1rem 1.2rem;
  font-size: .9rem;
  color: var(--gold-light);
}
.form-success-banner.compact {
  background: rgba(201,168,76,.12);
  padding: .9rem 1rem;
}

/* ── Typography helpers ─────────────────────────────────────── */
.section-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: .65rem;
  letter-spacing: .5em;
  color: var(--coral);
  text-transform: uppercase;
  margin-bottom: .8rem;
  display: flex;
  align-items: center;
  gap: .8rem;
}
.section-label::before {
  content: '';
  display: inline-block;
  width: 30px; height: 1px;
  background: var(--coral);
  flex-shrink: 0;
}
.section-label.gold         { color: var(--gold); }
.section-label.gold::before { background: var(--gold); }
.section-label.center       { justify-content: center; }
.section-label.center::before { display: none; }

.section-title {
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.1;
  color: var(--deep-burgundy);
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}
.section-title em  { font-style: italic; color: var(--coral); }
.section-title.light { color: #fff; }
.section-title.light em { color: var(--gold-light); }

/* ── Container ──────────────────────────────────────────────── */
.container { max-width: 1200px; margin: 0 auto; }

/* ── Scroll reveal ──────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }

/* ── Buttons ────────────────────────────────────────────────── */
.btn {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .75rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: .9rem 2rem;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  transition: all .25s ease;
  cursor: pointer;
  border: none;
  text-decoration: none;
  line-height: 1;
}
.btn svg { flex-shrink: 0; }

.btn-primary { background: var(--gold); color: var(--deep-burgundy); }
.btn-primary:hover { background: var(--gold-light); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(201,168,76,.35); }

.btn-secondary { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.4); }
.btn-secondary:hover { border-color: var(--gold); color: var(--gold); transform: translateY(-2px); }

.btn-dark { background: var(--deep-burgundy); color: var(--cream); }
.btn-dark:hover { background: var(--burgundy); transform: translateY(-2px); }

.btn-outline-dark { background: transparent; color: var(--burgundy); border: 1.5px solid var(--burgundy); }
.btn-outline-dark:hover { background: var(--burgundy); color: var(--cream); transform: translateY(-2px); }

.btn-outline-gold { background: transparent; color: var(--gold); border: 1.5px solid var(--gold); }
.btn-outline-gold:hover { background: var(--gold); color: var(--deep-burgundy); transform: translateY(-2px); }

/* ── SVG icon sizing ────────────────────────────────────────── */
.icon { display:inline-block; width:1.3em; height:1.3em; vertical-align:middle; flex-shrink:0; }
.icon svg, svg.ico { width:100%; height:100%; }

/* ============================================================
   HEADER
   ============================================================ */
#site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  height: var(--header-h);
  padding: 0 2rem 0 2.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  background: rgba(10,4,7,.93);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(201,168,76,.22);
  transition: background .3s;
  overflow: visible; /* allow dropdown panel to extend below header */
}
#site-header.scrolled { background: rgba(10,4,7,1); }

/* ── Logo ── */
.logo { display: flex; align-items: center; line-height: 1; text-decoration: none; flex-shrink: 0; }
.logo-run      { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: .72rem; letter-spacing: .38em; color: var(--gold); text-transform: uppercase; }
.logo-with     { font-family: 'Barlow Condensed', sans-serif; font-weight: 300; font-size: .58rem; letter-spacing: .65em; color: rgba(242,213,203,.65); text-transform: uppercase; }
.logo-princess { font-family: 'Playfair Display', serif; font-weight: 900; font-size: 1.25rem; letter-spacing: .06em; color: #fff; text-transform: uppercase; }

/* ── Desktop inline nav ── */
.desktop-nav {
  display: flex;
  align-items: center;
  gap: .1rem;
  flex: 1;
  justify-content: center;
  flex-wrap: nowrap;
  overflow: visible; /* must be visible so dropdown panel is not clipped */
}
.desktop-nav a {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(247,240,230,.65);
  text-decoration: none;
  padding: .45rem .7rem;
  white-space: nowrap;
  border-radius: 2px;
  transition: color .2s, background .2s;
  position: relative;
}
.desktop-nav a::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%; right: 50%;
  height: 1.5px;
  background: var(--gold);
  transition: left .25s, right .25s;
}
.desktop-nav a:hover,
.desktop-nav a.active { color: var(--gold); }
.desktop-nav a:hover::after,
.desktop-nav a.active::after { left: .7rem; right: .7rem; }

/* ── Hamburger — always visible (desktop = "more", mobile = "all") ── */
.hamburger {
  width: 40px; height: 40px;
  display: flex; flex-direction: column;
  justify-content: center; gap: 6px;
  cursor: pointer; padding: 5px;
  background: none; border: none;
  flex-shrink: 0;
  border-radius: 3px;
  transition: background .2s;
}
.hamburger:hover { background: rgba(201,168,76,.1); }
.hamburger span { display: block; height: 2px; background: var(--gold); transition: all .35s ease; transform-origin: center; }
.hamburger span:nth-child(1) { width: 100%; }
.hamburger span:nth-child(2) { width: 62%; margin-left: auto; }
.hamburger span:nth-child(3) { width: 100%; }
.hamburger.open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ── Full slide-out panel (all 10 links) ── */
.mobile-nav {
  position: fixed;
  top: var(--header-h); right: 0; bottom: 0;
  width: min(360px, 100vw);
  background: var(--deep-burgundy);
  z-index: 999;
  transform: translateX(100%);
  transition: transform .42s cubic-bezier(.77,0,.175,1);
  overflow-y: auto;
  box-shadow: -8px 0 40px rgba(0,0,0,.45);
}
.mobile-nav.open { transform: translateX(0); }
/* Backdrop dimming when panel is open */
.mobile-nav::before {
  content: '';
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.0);
  pointer-events: none;
  transition: background .42s;
}
.mobile-nav.open::before {
  background: rgba(0,0,0,.45);
  pointer-events: auto;
  left: calc(-100vw + min(360px,100vw));
}
.mobile-nav-inner {
  display: flex;
  flex-direction: column;
  padding: 2rem 0 3rem;
  min-height: 100%;
}
.mobile-nav a {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .14em;
  color: rgba(247,240,230,.8);
  text-decoration: none;
  text-transform: uppercase;
  padding: .95rem 2rem;
  border-bottom: 1px solid rgba(201,168,76,.1);
  display: flex; align-items: center; gap: .85rem;
  transition: color .2s, background .2s, padding-left .2s;
  position: relative;
}
.mobile-nav a span { flex: 1; }
.mobile-nav a:last-child { border-bottom: none; }
.mobile-nav a:hover { color: var(--gold); background: rgba(201,168,76,.07); padding-left: 2.4rem; }
.mobile-nav a.active { color: var(--gold); background: rgba(201,168,76,.1); border-left: 3px solid var(--gold); padding-left: calc(2rem - 3px); }
.mobile-nav a.coming-soon { color: rgba(201,168,76,.5); }
.mobile-nav a svg { width: 17px; height: 17px; flex-shrink: 0; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.soon-badge {
  font-size: .52rem; letter-spacing: .25em; text-transform: uppercase;
  background: rgba(201,168,76,.18); color: var(--gold);
  padding: .15rem .4rem; border-radius: 2px;
  font-family: 'Barlow Condensed', sans-serif; font-weight: 700;
  border: 1px solid rgba(201,168,76,.25);
  flex-shrink: 0;
}

/* ── Mobile: hide desktop nav, full-width panel ── */
@media (max-width: 768px) {
  .desktop-nav { display: none; }
  .mobile-nav {
    width: 100%;
    box-shadow: none;
  }
  .mobile-nav::before { display: none; }
  .mobile-nav a { font-size: 1.1rem; padding: 1.05rem 1.8rem; justify-content: flex-start; }
  .mobile-nav a:hover { padding-left: 2.2rem; }
  .mobile-nav a.active { padding-left: calc(1.8rem - 3px); }
}

/* ============================================================
   FOOTER  (professional black, non-sticky)
   ============================================================ */
#site-footer {
  background: var(--black);
  border-top: 1px solid rgba(201,168,76,.18);
  padding: 0;
}

.footer-top {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: 3rem;
  padding: 4rem 2.5rem 3rem;
  max-width: 1200px;
  margin: 0 auto;
}

/* Brand column */
.footer-brand .footer-logo {
  display: flex; flex-direction: column; line-height: 1;
  text-decoration: none; margin-bottom: 1.2rem;
}
.footer-brand .fl-run      { font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:.7rem; letter-spacing:.38em; color:var(--gold); text-transform:uppercase; }
.footer-brand .fl-with     { font-family:'Barlow Condensed',sans-serif; font-weight:300; font-size:.58rem; letter-spacing:.65em; color:rgba(242,213,203,.5); text-transform:uppercase; }
.footer-brand .fl-princess { font-family:'Playfair Display',serif; font-weight:900; font-size:1.3rem; letter-spacing:.06em; color:#fff; text-transform:uppercase; }
.footer-brand p {
  font-size:.85rem; line-height:1.75;
  color:rgba(255,255,255,.38);
  margin-bottom:1.5rem; max-width:260px;
}

/* Social icons */
.footer-social { display:flex; gap:.6rem; }
.footer-social a {
  width:34px; height:34px;
  border:1px solid rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.38);
  transition:all .2s;
}
.footer-social a:hover { border-color:var(--gold); color:var(--gold); }
.footer-social svg { width:15px; height:15px; fill:currentColor; }

/* Nav columns */
.footer-col h4 {
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:.65rem;
  letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.2rem;
  padding-bottom:.6rem;
  border-bottom:1px solid rgba(201,168,76,.18);
}
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:.55rem; }
.footer-col ul li a {
  font-size:.85rem;
  color:rgba(255,255,255,.38);
  transition:color .2s;
  display:flex; align-items:center; gap:.5rem;
}
.footer-col ul li a svg { width:12px; height:12px; stroke:rgba(255,255,255,.25); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; transition:stroke .2s; }
.footer-col ul li a:hover { color:rgba(255,255,255,.8); }
.footer-col ul li a:hover svg { stroke:var(--gold); }

/* Contact column */
.footer-contact-item {
  display:flex; align-items:flex-start; gap:.8rem;
  margin-bottom:1rem;
}
.footer-contact-item svg { width:15px; height:15px; stroke:var(--gold); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; margin-top:.15rem; }
.footer-contact-item span { font-size:.83rem; color:rgba(255,255,255,.38); line-height:1.5; }

/* Footer divider + bottom bar */
.footer-divider {
  border:none;
  border-top:1px solid rgba(255,255,255,.06);
  margin:0;
}
.footer-bottom {
  max-width:1200px; margin:0 auto;
  padding:1.2rem 2.5rem;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; flex-wrap:wrap;
}
.footer-copy {
  font-size:.75rem;
  color:rgba(255,255,255,.22);
  letter-spacing:.05em;
}
.footer-tagline {
  font-family:'Barlow Condensed',sans-serif;
  font-size:.65rem; letter-spacing:.4em;
  text-transform:uppercase;
  color:rgba(201,168,76,.35);
}

/* ============================================================
   HERO (homepage)
   ============================================================ */
.hero {
  position: relative;
  height: calc(100vh - var(--header-h));
  min-height: 580px;
  display: flex; align-items: center;
  overflow: hidden;
}
.hero-slides { position:absolute; inset:0; z-index:0; }
.hero-slide  { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.2s ease; }
.hero-slide.active { opacity:1; }
.hero-slide::after { content:''; position:absolute; inset:0; background:linear-gradient(105deg,rgba(10,4,7,.83) 0%,rgba(74,18,32,.65) 40%,rgba(10,4,7,.28) 100%); }

/* Hero slide backgrounds are set via inline style on each .hero-slide element */

.hero-content {
  position:relative; z-index:2;
  width:100%; max-width:1300px;
  margin:0 auto; padding:3rem 3rem;
  display:grid; grid-template-columns:1fr 1fr;
  align-items:center; gap:4rem;
}
.hero-text { animation:fadeInLeft 1s ease .3s both; }
@keyframes fadeInLeft { from{opacity:0;transform:translateX(-40px)} to{opacity:1;transform:translateX(0)} }

.hero-eyebrow {
  font-family:'Barlow Condensed',sans-serif; font-weight:600;
  font-size:.7rem; letter-spacing:.5em;
  color:var(--gold); text-transform:uppercase;
  margin-bottom:1.2rem; display:flex; align-items:center; gap:.8rem;
}
.hero-eyebrow::before { content:''; display:block; width:40px; height:1px; background:var(--gold); }

.hero-headline {
  font-family:'Playfair Display',serif; font-weight:900;
  font-size:clamp(2.8rem,5vw,4.5rem);
  line-height:1.05; color:#fff;
  text-transform:uppercase; letter-spacing:-.01em; margin-bottom:.5rem;
}
.hero-headline em { font-style:italic; color:var(--gold-light); }

.hero-subheadline {
  font-family:'Barlow Condensed',sans-serif; font-weight:300;
  font-size:clamp(1rem,2vw,1.3rem); letter-spacing:.15em;
  color:var(--soft-pink); text-transform:uppercase;
  margin-bottom:2rem; opacity:.9;
}
.hero-body { font-size:.95rem; line-height:1.8; color:rgba(247,240,230,.75); max-width:480px; margin-bottom:2.5rem; }
.hero-ctas { display:flex; flex-wrap:wrap; gap:.8rem; }

.hero-graphic { display:flex; align-items:center; justify-content:center; }
.hero-graphic svg { width:min(400px,100%); height:auto; }

.slide-dots { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:3; display:flex; gap:.5rem; align-items:center; }
.dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.35); cursor:pointer; transition:all .3s ease; }
.dot.active { background:var(--gold); width:24px; border-radius:3px; }

/* ============================================================
   SECTION COMMONS (all pages)
   ============================================================ */
section { padding: 6rem 2rem; }

/* ── PAGE HERO (inner pages) ── */
.page-hero {
  background: var(--deep-burgundy);
  padding: 5rem 2rem 4rem;
  position: relative;
  overflow: hidden;
  text-align: center;
}
.page-hero::before {
  content: attr(data-word);
  position:absolute; right:-2%; bottom:-15%;
  font-family:'Barlow Condensed',sans-serif; font-weight:800;
  font-size:clamp(7rem,18vw,18rem); letter-spacing:-.05em;
  color:rgba(255,255,255,.04); line-height:1; pointer-events:none;
}
.page-hero-eyebrow {
  font-family:'Barlow Condensed',sans-serif; font-size:.65rem;
  letter-spacing:.5em; color:var(--gold); text-transform:uppercase;
  margin-bottom:1rem; display:flex; align-items:center; justify-content:center; gap:.8rem;
}
.page-hero-eyebrow::before,.page-hero-eyebrow::after { content:''; display:block; width:30px; height:1px; background:var(--gold); }
.page-hero h1 {
  font-family:'Playfair Display',serif; font-weight:900;
  font-size:clamp(2.5rem,6vw,5rem); text-transform:uppercase;
  color:#fff; line-height:1.05; margin-bottom:1rem;
}
.page-hero h1 em { font-style:italic; color:var(--gold-light); }
.page-hero p {
  font-size:1rem; line-height:1.8;
  color:rgba(247,240,230,.65); max-width:560px; margin:0 auto;
}

/* ── BREADCRUMB ── */
.breadcrumb {
  background: var(--black);
  padding: .7rem 2rem;
  display: flex; align-items: center; gap: .6rem;
  border-bottom: 1px solid rgba(201,168,76,.1);
}
.breadcrumb a, .breadcrumb span {
  font-family:'Barlow Condensed',sans-serif; font-size:.65rem;
  letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.35); text-decoration:none; transition:color .2s;
}
.breadcrumb a:hover { color:var(--gold); }
.breadcrumb .sep { color:rgba(255,255,255,.18); font-size:.6rem; }
.breadcrumb .current { color:var(--gold); }

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.about-intro { background:var(--cream); position:relative; overflow:hidden; }
.about-intro::before {
  content:'RWP'; position:absolute; right:-2%; top:50%; transform:translateY(-50%);
  font-family:'Playfair Display',serif; font-size:clamp(8rem,18vw,17rem); font-weight:900;
  color:var(--deep-burgundy); opacity:.04; line-height:1; pointer-events:none;
}
.about-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.about-intro-body { font-size:1rem; line-height:1.9; color:#5a4040; }
.about-intro-body p+p { margin-top:1rem; }

.values-section { background:var(--deep-burgundy); position:relative; overflow:hidden; }
.values-section::before { content:'VALUES'; position:absolute; right:-2%; bottom:-10%; font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:clamp(6rem,16vw,16rem); color:rgba(255,255,255,.03); letter-spacing:-.05em; pointer-events:none; }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5px; margin-top:3rem; background:rgba(255,255,255,.07); }
.value-card { background:var(--deep-burgundy); padding:2.5rem; transition:background .3s; }
.value-card:hover { background:var(--burgundy); }
.value-icon { width:44px; height:44px; margin-bottom:1.2rem; }
.value-icon svg { width:100%; height:100%; stroke:var(--gold); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.value-title { font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:1.2rem; letter-spacing:.08em; text-transform:uppercase; color:#fff; margin-bottom:.6rem; }
.value-body  { font-size:.88rem; line-height:1.7; color:rgba(247,240,230,.55); }

.story-section { background:var(--warm-white); }
.story-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:5rem; align-items:start; }
.story-visual { position:relative; }
.story-frame {
  background:linear-gradient(145deg,var(--burgundy),var(--deep-burgundy));
  aspect-ratio:3/4; display:flex; align-items:flex-end; justify-content:center;
  overflow:hidden; position:relative;
}
.story-frame::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 20%,rgba(212,97,74,.3) 0%,transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(201,168,76,.2) 0%,transparent 50%); }
.story-silhouette { width:78%; position:relative; z-index:1; }
.story-nameplate { position:absolute; bottom:-1.5rem; right:-1.5rem; background:var(--gold); padding:1rem 1.5rem; }
.story-nameplate-name  { font-family:'Playfair Display',serif; font-size:1.2rem; font-weight:700; color:var(--deep-burgundy); line-height:1; }
.story-nameplate-title { font-family:'Barlow Condensed',sans-serif; font-size:.62rem; letter-spacing:.25em; color:var(--deep-burgundy); text-transform:uppercase; opacity:.7; margin-top:.25rem; }
.story-quote { font-family:'Playfair Display',serif; font-size:1.35rem; font-style:italic; color:var(--deep-burgundy); line-height:1.55; border-left:3px solid var(--gold); padding-left:1.5rem; margin-bottom:1.5rem; }
.story-body  { font-size:.95rem; line-height:1.85; color:#5a4040; }
.story-body p+p { margin-top:1rem; margin-bottom:1.5rem; }

.stats-band {
  background:var(--black);
  padding:3.5rem 2rem;
  border-top:1px solid rgba(201,168,76,.12);
  border-bottom:1px solid rgba(201,168,76,.12);
}
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; max-width:1000px; margin:0 auto; }
.stat-col { text-align:center; }
.stat-col .snum { font-family:'Barlow Condensed',sans-serif; font-size:clamp(2.5rem,5vw,4rem); font-weight:800; color:var(--gold); line-height:1; }
.stat-col .slbl { font-family:'Barlow Condensed',sans-serif; font-size:.65rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.38); margin-top:.4rem; }
.stat-col .sdiv { width:24px; height:2px; background:var(--gold); margin:.6rem auto 0; opacity:.4; }

.team-section { background:var(--soft-pink); }
/* 4-col grid matching index.html meet-team-grid */
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin-top:3rem; }
.team-card { background:#fff; overflow:hidden; transition:transform .3s,box-shadow .3s; border-radius:2px; }
.team-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(107,30,46,.15); }
.team-avatar { background:linear-gradient(145deg,var(--burgundy),var(--deep-burgundy)); aspect-ratio:1/1; display:flex; align-items:flex-end; justify-content:center; overflow:hidden; position:relative; }
.team-avatar svg { width:70%; position:relative; z-index:1; }
.team-avatar img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.team-info { padding:1.2rem 1.3rem 1.4rem; }
.team-name  { font-family:'Playfair Display',serif; font-size:1rem; font-weight:700; color:var(--deep-burgundy); margin-bottom:.2rem; line-height:1.2; }
.team-role  { font-family:'Barlow Condensed',sans-serif; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--coral); margin-bottom:.9rem; }
/* Social icons row (reuses .social-icon-link + .meet-team-socials from index) */
@media (max-width:960px) {
  .team-grid { grid-template-columns:repeat(2,1fr); gap:1.25rem; }
}
@media (max-width:480px) {
  .team-grid { grid-template-columns:1fr 1fr; gap:1rem; }
  .team-info  { padding:1rem; }
  .team-name  { font-size:.9rem; }
}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.contact-main { background:var(--warm-white); }
.contact-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:5rem; align-items:start; }

/* Info panel */
.contact-info-panel {}
.contact-info-panel .section-label { margin-bottom:.8rem; }
.contact-info-panel .section-title { margin-bottom:1rem; }
.contact-info-panel > p { font-size:.95rem; line-height:1.8; color:#5a4040; margin-bottom:2.5rem; }

.contact-cards { display:flex; flex-direction:column; gap:1rem; margin-bottom:2.5rem; }
.contact-card {
  display:flex; align-items:flex-start; gap:1.2rem;
  padding:1.4rem 1.5rem;
  background:var(--cream);
  border-left:3px solid transparent;
  transition:border-color .25s, box-shadow .25s;
}
.contact-card:hover { border-left-color:var(--gold); box-shadow:4px 0 20px rgba(201,168,76,.08); }
.contact-card-icon {
  width:44px; height:44px; flex-shrink:0;
  background:var(--deep-burgundy);
  display:flex; align-items:center; justify-content:center;
}
.contact-card-icon svg { width:20px; height:20px; stroke:#fff; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.contact-card-label { font-family:'Barlow Condensed',sans-serif; font-size:.62rem; letter-spacing:.25em; text-transform:uppercase; color:var(--coral); margin-bottom:.3rem; }
.contact-card-value { font-size:.92rem; color:var(--charcoal); line-height:1.5; }

.contact-social-heading { font-family:'Barlow Condensed',sans-serif; font-size:.65rem; letter-spacing:.4em; text-transform:uppercase; color:var(--mid-brown); margin-bottom:.8rem; }
.contact-social-row { display:flex; gap:.6rem; flex-wrap:wrap; }
.contact-social-btn {
  display:flex; align-items:center; gap:.5rem;
  padding:.6rem 1rem;
  border:1.5px solid rgba(107,30,46,.18);
  font-family:'Barlow Condensed',sans-serif; font-size:.72rem;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--mid-brown); transition:all .2s;
}
.contact-social-btn svg { width:15px; height:15px; fill:currentColor; flex-shrink:0; }
.contact-social-btn:hover { background:var(--deep-burgundy); color:#fff; border-color:var(--deep-burgundy); }

/* Form panel */
.contact-form-panel {
  background:var(--cream);
  padding:3rem;
}
.contact-form-panel h3 {
  font-family:'Playfair Display',serif; font-weight:900;
  font-size:1.6rem; text-transform:uppercase;
  color:var(--deep-burgundy); margin-bottom:.5rem;
}
.contact-form-panel .form-sub {
  font-size:.88rem; color:var(--mid-brown); margin-bottom:2rem; line-height:1.6;
}
.form-group { display:flex; flex-direction:column; gap:1.1rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.field { display:flex; flex-direction:column; gap:.4rem; }
.field label { font-family:'Barlow Condensed',sans-serif; font-size:.65rem; letter-spacing:.22em; text-transform:uppercase; color:var(--mid-brown); }
.field input,
.field select,
.field textarea {
  padding:.9rem 1rem;
  background:#fff;
  border:1.5px solid rgba(107,30,46,.12);
  font-family:'Barlow',sans-serif; font-size:.9rem;
  color:var(--charcoal); outline:none;
  transition:border-color .2s; resize:vertical;
  -webkit-appearance:none;
}
.field input:focus,
.field select:focus,
.field textarea:focus { border-color:var(--burgundy); }
.field select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238B5E52' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; cursor:pointer; }
.form-note { font-size:.78rem; color:rgba(107,30,46,.45); line-height:1.6; }
#formSuccess { display:none; background:rgba(107,30,46,.07); border-left:3px solid var(--gold); padding:1rem 1.2rem; font-size:.9rem; color:var(--deep-burgundy); }

/* Map strip */
.map-strip { background:var(--black); padding:3rem 2rem; }
.map-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 2fr; gap:3rem; align-items:center; }
.map-text h3 { font-family:'Playfair Display',serif; font-weight:700; font-size:1.4rem; color:#fff; margin-bottom:.8rem; }
.map-text p  { font-size:.88rem; color:rgba(255,255,255,.42); line-height:1.7; }
.map-placeholder {
  background:rgba(255,255,255,.04);
  border:1px solid rgba(201,168,76,.15);
  height:180px;
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:.8rem;
}
.map-placeholder svg { width:32px; height:32px; stroke:var(--gold); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.map-placeholder span { font-family:'Barlow Condensed',sans-serif; font-size:.65rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.25); }

/* FAQ strip */
.faq-section { background:var(--cream); }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2.5rem; }
.faq-item { padding:1.5rem; border:1.5px solid rgba(107,30,46,.1); }
.faq-q { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem; letter-spacing:.05em; text-transform:uppercase; color:var(--deep-burgundy); margin-bottom:.6rem; }
.faq-a { font-size:.88rem; line-height:1.7; color:#6a5050; }

/* ============================================================
   HOMEPAGE — WELCOME / ABOUT PREVIEW
   ============================================================ */
.welcome-section { background:var(--cream); position:relative; overflow:hidden; }
.welcome-section::before { content:'RWP'; position:absolute; right:-2%; top:50%; transform:translateY(-50%); font-family:'Playfair Display',serif; font-size:clamp(8rem,18vw,18rem); font-weight:900; color:var(--deep-burgundy); opacity:.04; line-height:1; pointer-events:none; }
.welcome-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.welcome-body { font-size:1rem; line-height:1.9; color:#5a4040; margin-bottom:2rem; }
.welcome-body p+p { margin-top:1rem; }
.welcome-card { background:var(--deep-burgundy); padding:3rem; position:relative; overflow:hidden; }
.welcome-card::before { content:''; position:absolute; top:-30px; right:-30px; width:120px; height:120px; border:2px solid var(--gold); border-radius:50%; opacity:.3; }
.welcome-card::after  { content:''; position:absolute; bottom:-20px; left:-20px; width:80px; height:80px; background:var(--coral); opacity:.15; border-radius:50%; }
.welcome-card-eyebrow { font-family:'Barlow Condensed',sans-serif; font-size:.65rem; letter-spacing:.5em; color:var(--gold); text-transform:uppercase; margin-bottom:1rem; }
.welcome-card-title   { font-family:'Playfair Display',serif; font-size:1.8rem; font-weight:700; color:#fff; line-height:1.2; margin-bottom:1.5rem; }
.welcome-stats { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2rem; }
.stat-item { border-top:1px solid rgba(201,168,76,.3); padding-top:1rem; }
.stat-number { font-family:'Barlow Condensed',sans-serif; font-size:2.5rem; font-weight:800; color:var(--gold); line-height:1; }
.stat-label  { font-size:.8rem; color:rgba(247,240,230,.6); text-transform:uppercase; letter-spacing:.1em; margin-top:.3rem; }

/* ── PROGRAMS ── */
.programs-section { background:var(--warm-white); }
.programs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5px; margin-top:3rem; background:rgba(107,30,46,.1); }
.program-card { background:var(--warm-white); padding:3rem 2.5rem; transition:all .3s ease; text-decoration:none; display:block; position:relative; overflow:hidden; }
.program-card:hover { background:var(--deep-burgundy); transform:translateY(-4px); z-index:2; box-shadow:0 20px 50px rgba(74,18,32,.25); }
.program-card:hover .program-title,
.program-card:hover .program-body { color:#fff; }
.program-card:hover .program-icon-wrap svg { stroke:#fff; }
.program-card:hover .program-arrow { color:var(--gold); transform:translateX(5px); }
.program-icon-wrap { width:48px; height:48px; margin-bottom:1.2rem; }
.program-icon-wrap svg { width:100%; height:100%; stroke:var(--coral); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; transition:stroke .3s; }
.program-title { font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:1.4rem; letter-spacing:.05em; text-transform:uppercase; color:var(--deep-burgundy); margin-bottom:.8rem; transition:color .3s; line-height:1.2; }
.program-body  { font-size:.9rem; line-height:1.7; color:#6a5050; transition:color .3s; margin-bottom:1.5rem; }
.program-arrow { font-family:'Barlow Condensed',sans-serif; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--coral); transition:all .3s ease; display:flex; align-items:center; gap:.5rem; }

/* ── RUN FEST ── */
.runfest-section { background:var(--deep-burgundy); position:relative; overflow:hidden; }
.runfest-section::before { content:'2026'; position:absolute; right:-3%; bottom:-8%; font-family:'Barlow Condensed',sans-serif; font-size:clamp(8rem,20vw,22rem); font-weight:800; color:rgba(255,255,255,.04); line-height:1; pointer-events:none; letter-spacing:-.05em; }
.runfest-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.runfest-details { display:flex; flex-direction:column; gap:1.5rem; }
.detail-row { display:flex; align-items:flex-start; gap:1.2rem; padding-bottom:1.5rem; border-bottom:1px solid rgba(201,168,76,.15); }
.detail-row:last-child { border-bottom:none; }
.detail-icon { flex-shrink:0; width:44px; height:44px; background:rgba(201,168,76,.15); display:flex; align-items:center; justify-content:center; }
.detail-icon svg { width:22px; height:22px; stroke:var(--gold); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.detail-label { font-family:'Barlow Condensed',sans-serif; font-size:.65rem; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:.2rem; }
.detail-value { font-size:.95rem; color:rgba(247,240,230,.85); line-height:1.5; }
.runfest-visual { display:flex; flex-direction:column; gap:1rem; }
.runfest-card-big { background:linear-gradient(135deg,var(--burgundy),var(--coral)); padding:2.5rem; text-align:center; position:relative; overflow:hidden; }
.runfest-card-big::before { content:''; position:absolute; inset:8px; border:1px solid rgba(255,255,255,.15); pointer-events:none; }
.event-date    { font-family:'Barlow Condensed',sans-serif; font-size:.7rem; letter-spacing:.4em; color:rgba(255,255,255,.6); text-transform:uppercase; margin-bottom:.5rem; }
.event-name    { font-family:'Playfair Display',serif; font-size:2.2rem; font-weight:900; color:#fff; line-height:1; text-transform:uppercase; margin-bottom:.5rem; }
.event-tagline { font-size:.85rem; color:rgba(255,255,255,.7); margin-bottom:1.5rem; }

/* ── WOMEN'S CIRCLE ── */
.circle-section { background:var(--soft-pink); position:relative; }
.circle-section { overflow: hidden; } /* clip float tags so they never cause h-scroll */
.circle-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.circle-visual { position:relative; display:flex; align-items:center; justify-content:center; min-height:340px; }
.circle-rings { position:relative; width:280px; height:280px; flex-shrink:0; }
.ring { position:absolute; border-radius:50%; border:1px solid; top:50%; left:50%; transform:translate(-50%,-50%); }
.ring-1 { width:280px; height:280px; border-color:rgba(107,30,46,.15); }
.ring-2 { width:205px; height:205px; border-color:rgba(107,30,46,.25); animation:spin 30s linear infinite; }
.ring-3 { width:130px; height:130px; border-color:rgba(107,30,46,.4); background:var(--deep-burgundy); display:flex; align-items:center; justify-content:center; }
@keyframes spin { from{transform:translate(-50%,-50%) rotate(0deg)} to{transform:translate(-50%,-50%) rotate(360deg)} }
.ring-center-text { font-family:'Playfair Display',serif; font-size:.85rem; font-weight:700; color:var(--gold); text-align:center; line-height:1.3; text-transform:uppercase; letter-spacing:.05em; }
/* Float tags — use CSS classes for position so mobile media queries can override */
.circle-float-tag {
  position: absolute;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .68rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--burgundy);
  font-weight: 700;
  opacity: .82;
  white-space: nowrap;
  background: rgba(247,240,230,.72);
  padding: .18rem .55rem;
  border-radius: 2px;
  pointer-events: none;
}
/* Desktop: float slightly outside the ring boundary */
.tag-rest { top: 6%;    left: -8%;  }
.tag-grow { top: 16%;   right: -12%; }
.tag-heal { bottom: 16%; left: -8%; }
.tag-rise { bottom: 6%; right: -8%; }
.circle-feature-list { list-style:none; margin:1.5rem 0 2rem; }
.circle-feature-list li { display:flex; align-items:flex-start; gap:.8rem; padding:.8rem 0; border-bottom:1px solid rgba(107,30,46,.1); font-size:.95rem; color:#5a3030; line-height:1.5; }
.circle-feature-list li svg { width:18px; height:18px; flex-shrink:0; margin-top:.15rem; stroke:var(--coral); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* ── VOLUNTEER ── */
.volunteer-section { background:var(--charcoal); }
.volunteer-inner { display:grid; grid-template-columns:1.5fr 1fr; gap:5rem; align-items:center; }
.volunteer-body { font-size:.95rem; line-height:1.8; color:rgba(247,240,230,.7); margin-bottom:2rem; }
.volunteer-roles { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-bottom:2rem; }
.role-chip { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); padding:.7rem 1rem; font-family:'Barlow Condensed',sans-serif; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(247,240,230,.75); display:flex; align-items:center; gap:.6rem; }
.role-chip svg { width:14px; height:14px; flex-shrink:0; stroke:var(--gold); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* ── PARTNER ── */
.partner-section { background:var(--cream); }
.partner-inner { text-align:center; max-width:700px; margin:0 auto; }
.partner-body { font-size:1rem; line-height:1.8; color:#5a4040; margin-bottom:2.5rem; }
.partner-tiers { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3rem; text-align:left; }
.tier-card { padding:2rem; border:1.5px solid; position:relative; overflow:hidden; transition:transform .3s; }
.tier-card:hover { transform:translateY(-4px); }
.tier-card.bronze { border-color:rgba(139,94,82,.4); }
.tier-card.silver { border-color:rgba(107,30,46,.6); background:var(--deep-burgundy); }
.tier-card.gold   { border-color:var(--gold); }
.tier-icon { width:36px; height:36px; margin-bottom:1rem; }
.tier-icon svg { width:100%; height:100%; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.tier-card.bronze .tier-icon svg { stroke:var(--mid-brown); }
.tier-card.silver .tier-icon svg { stroke:rgba(247,240,230,.7); }
.tier-card.gold   .tier-icon svg { stroke:var(--gold); }
.tier-name { font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:1.2rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.8rem; }
.tier-card.bronze .tier-name { color:var(--mid-brown); }
.tier-card.silver .tier-name { color:#fff; }
.tier-card.gold   .tier-name { color:var(--gold); }
.tier-desc { font-size:.85rem; line-height:1.6; }
.tier-card.bronze .tier-desc { color:#6a5050; }
.tier-card.silver .tier-desc { color:rgba(247,240,230,.65); }
.tier-card.gold   .tier-desc { color:#6a5050; }

/* ── MAILING ── */
.mailing-section { background:linear-gradient(135deg,var(--deep-burgundy) 0%,var(--burgundy) 50%,var(--coral) 100%); position:relative; overflow:hidden; }
.mailing-inner { text-align:center; max-width:600px; margin:0 auto; position:relative; z-index:1; }
.mailing-body  { font-size:.95rem; line-height:1.8; color:rgba(255,255,255,.75); margin-bottom:2rem; }
.signup-form   { display:flex; max-width:480px; margin:0 auto; }
.signup-form input[type="email"] { flex:1; padding:1rem 1.2rem; background:rgba(255,255,255,.12); border:1.5px solid rgba(255,255,255,.25); border-right:none; color:#fff; font-family:'Barlow',sans-serif; font-size:.9rem; outline:none; transition:border-color .2s; }
.signup-form input[type="email"]::placeholder { color:rgba(255,255,255,.45); }
.signup-form input[type="email"]:focus { border-color:var(--gold); }
.signup-form button { background:var(--gold); color:var(--deep-burgundy); border:none; padding:1rem 1.5rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; cursor:pointer; transition:background .2s; white-space:nowrap; }
.signup-form button:hover { background:var(--gold-light); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:960px) {
  .hero-content { grid-template-columns:1fr; padding:2rem 2rem; }
  .hero-graphic { display:none; }
  .welcome-grid,.runfest-inner,.circle-inner,.volunteer-inner,.contact-grid,.about-intro-grid,.story-grid,.map-inner { grid-template-columns:1fr; gap:3rem; }
  .programs-grid,.values-grid { grid-template-columns:1fr 1fr; }
  .partner-tiers { grid-template-columns:1fr; }
  .team-grid { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .stats-row { grid-template-columns:repeat(2,1fr); }
  .faq-grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  :root { --header-h:64px; }
  section { padding:4rem 1.2rem; }
  .hero-content { padding:1.5rem 1.2rem; }
  .hero-ctas { flex-direction:column; }
  .hero-ctas .btn { justify-content:center; }
  .signup-form { flex-direction:column; }
  .signup-form input[type="email"] { border-right:1.5px solid rgba(255,255,255,.25); }
  .volunteer-roles { grid-template-columns:1fr; }
  .programs-grid,.values-grid,.team-grid { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; text-align:center; }
  .contact-form-panel { padding:2rem 1.2rem; }
  .partner-tiers { grid-template-columns:1fr; }

  /* ── Women's Circle: scale ring down + pull tags fully inside ── */
  .circle-visual { min-height: 280px; }
  .circle-rings  { width: 220px; height: 220px; }
  .ring-1 { width: 220px; height: 220px; }
  .ring-2 { width: 160px; height: 160px; }
  .ring-3 { width: 100px; height: 100px; }
  /* Tags pulled well inside the visual container — nothing clips */
  .tag-rest { top: 6%;    left: 4%  !important; right: auto !important; }
  .tag-grow { top: 6%;    right: 4% !important; left: auto !important; }
  .tag-heal { bottom: 6%; left: 4%  !important; right: auto !important; }
  .tag-rise { bottom: 6%; right: 4% !important; left: auto !important; }
  /* Slightly larger + more opaque so they read clearly */
  .circle-float-tag { font-size: .72rem; opacity: 1; letter-spacing: .2em; }
}

/* ============================================================
   LOGO IMAGE
   ============================================================ */
.logo-img {
  height: 40px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
  display: block;
}
.footer-logo-img {
  height: 36px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  display: block;
  margin-bottom: 1rem;
  filter: brightness(0) invert(1);
  opacity: .85;
}
@media (max-width:640px) {
  .logo-img { height: 32px; max-width: 130px; }
}

/* ============================================================
   RUNFEST EVENT IMAGE
   ============================================================ */
.runfest-event-img-wrap {
  width: 100%;
  border-radius: 2px;
  overflow: hidden;
  border: 1px solid rgba(201,168,76,.25);
  margin-bottom: 1rem;
}
.runfest-event-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: transform .5s ease;
}
.runfest-event-img:hover {
  transform: scale(1.02);
}

/* ============================================================
   MEET OUR TEAM SECTION
   ============================================================ */
.meet-team-section {
  background: var(--cream);
  padding: 6rem 2rem;
}
.meet-team-intro {
  font-size: .98rem;
  line-height: 1.8;
  color: #5a4040;
  max-width: 560px;
  margin: 0 auto 3rem;
  text-align: center;
}
.meet-team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-top: 1rem;
}
.meet-team-card {
  background: #fff;
  border-radius: 2px;
  overflow: hidden;
  box-shadow: 0 2px 20px rgba(107,30,46,.07);
  transition: transform .3s ease, box-shadow .3s ease;
}
.meet-team-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 48px rgba(107,30,46,.14);
}
.meet-team-avatar {
  background: linear-gradient(145deg, var(--burgundy), var(--deep-burgundy));
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.meet-team-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.meet-team-avatar svg {
  width: 72%;
  height: 72%;
  position: absolute;
  bottom: 0;
}
.meet-team-avatar-label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .6rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  pointer-events: none;
}
/* Hide placeholder label when a real img is present */
.meet-team-avatar img ~ .meet-team-avatar-label { display: none; }
.meet-team-avatar img ~ svg { display: none; }

.meet-team-info {
  padding: 1.2rem 1.3rem 1.4rem;
}
.meet-team-name {
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--deep-burgundy);
  margin-bottom: .2rem;
  line-height: 1.2;
}
.meet-team-role {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .62rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--coral);
  margin-bottom: .9rem;
}
.meet-team-socials {
  display: flex;
  gap: .45rem;
  align-items: center;
  flex-wrap: wrap;
}
.social-icon-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1.5px solid rgba(107,30,46,.15);
  color: var(--burgundy);
  text-decoration: none;
  transition: border-color .2s, background .2s, color .2s;
  flex-shrink: 0;
}
.social-icon-link svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.social-icon-link:hover {
  background: var(--burgundy);
  border-color: var(--burgundy);
  color: #fff;
}

/* Responsive team grid */
@media (max-width: 960px) {
  .meet-team-grid { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
}
@media (max-width: 480px) {
  .meet-team-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .meet-team-info { padding: 1rem; }
  .meet-team-name { font-size: .9rem; }
}


/* ============================================================
   TESTIMONIALS SECTION
   ============================================================ */
/* ============================================================
   TESTIMONIALS — horizontal slider (3 visible, 6 total)
   ============================================================ */
.testimonials-section {
  background: var(--deep-burgundy);
  padding: 6rem 0;
  overflow: hidden;
}
.testimonials-intro {
  font-size: .95rem;
  line-height: 1.8;
  color: rgba(247,240,230,.55);
  max-width: 520px;
  margin: 0 auto;
  text-align: center;
}

/* ── Outer wrapper: full-width, holds arrows + viewport ── */
.tmn-outer {
  position: relative;
  width: 100%;
  padding: 0 72px; /* room for the overlaid arrows */
  box-sizing: border-box;
  margin-top: .5rem;
}

/* ── Clipping viewport ── */
.tmn-viewport {
  overflow: hidden;
  width: 100%;
}

/* ── Sliding track: all 6 cards in one flex row ── */
.tmn-track {
  display: flex;
  gap: 24px;
  will-change: transform;
  /* width & transform set by JS */
}

/* ── Individual card ── */
.tmn-card {
  /* width set by JS to exactly 1/3 of viewport */
  flex-shrink: 0;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(201,168,76,.18);
  padding: 2rem 1.75rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: background .25s, border-color .25s, transform .25s;
  position: relative;
  box-sizing: border-box;
}
.tmn-card:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(201,168,76,.35);
  transform: translateY(-4px);
}

/* Decorative quote mark */
.tmn-quote-mark {
  font-family: 'Playfair Display', serif;
  font-size: 4rem;
  line-height: .8;
  color: var(--gold);
  opacity: .35;
  user-select: none;
  pointer-events: none;
  margin-bottom: -.5rem;
}
.tmn-text {
  font-size: .9rem;
  line-height: 1.85;
  color: rgba(247,240,230,.72);
  flex: 1;
  font-style: italic;
}
.tmn-footer {
  border-top: 1px solid rgba(201,168,76,.15);
  padding-top: 1rem;
}
.tmn-name {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: .2rem;
}
.tmn-role {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .62rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: .75;
}

/* ── Overlaid prev / next arrows ── */
.tmn-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1.5px solid rgba(201,168,76,.4);
  background: rgba(10,4,7,.75);
  backdrop-filter: blur(6px);
  color: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .2s, border-color .2s, transform .2s, opacity .2s;
}
.tmn-arrow.tmn-prev { left:  10px; }
.tmn-arrow.tmn-next { right: 10px; }
.tmn-arrow:hover:not(:disabled) {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--deep-burgundy);
  transform: translateY(-50%) scale(1.1);
}
.tmn-arrow:disabled { cursor: default; }
.tmn-arrow svg { display: block; stroke: currentColor; }

/* ── Dot indicators ── */
.tmn-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  margin-top: 2rem;
}
.tmn-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  border: 1.5px solid rgba(201,168,76,.4);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: background .2s, border-color .2s, transform .2s;
}
.tmn-dot.active {
  background: var(--gold);
  border-color: var(--gold);
  transform: scale(1.3);
}
.tmn-dot:hover:not(.active) {
  border-color: var(--gold);
  background: rgba(201,168,76,.25);
}

/* ── Responsive ── */
@media (max-width: 960px) {
  .tmn-outer { padding: 0 52px; }
  /* JS-driven: VISIBLE stays 3 unless overridden */
}
@media (max-width: 640px) {
  .testimonials-section { padding: 4rem 0; }
  .tmn-outer { padding: 0 44px; }
  /* On mobile show 1 card — override card width via CSS */
  .tmn-card { width: calc(100vw - 88px) !important; }
}
/* ============================================================
   EVENTS DROPDOWN (desktop nav)
   ============================================================ */
.nav-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.nav-dropdown-trigger {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(247,240,230,.65);
  background: none;
  border: none;
  cursor: pointer;
  padding: .45rem .7rem;
  white-space: nowrap;
  border-radius: 2px;
  transition: color .2s;
  display: flex;
  align-items: center;
  gap: .35rem;
  position: relative;
}
.nav-dropdown-trigger::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%; right: 50%;
  height: 1.5px;
  background: var(--gold);
  transition: left .25s, right .25s;
}
.nav-dropdown-trigger:hover,
.nav-dropdown-trigger.active,
.nav-dropdown-trigger.open { color: var(--gold); }
.nav-dropdown-trigger:hover::after,
.nav-dropdown-trigger.active::after,
.nav-dropdown-trigger.open::after { left: .7rem; right: .7rem; }

/* Chevron rotation when open */
.nav-dropdown-trigger svg:last-child {
  transition: transform .25s ease;
  opacity: .7;
}
.nav-dropdown-trigger.open svg:last-child { transform: rotate(180deg); }

/* Dropdown panel */
.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  width: 240px;
  background: #120608;
  border: 1px solid rgba(201,168,76,.22);
  border-top: 2px solid var(--gold);
  box-shadow: 0 16px 48px rgba(0,0,0,.55);
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
  z-index: 2000;
}
/* Notch arrow */
.nav-dropdown-menu::before {
  content: '';
  position: absolute;
  top: -6px; left: 50%; transform: translateX(-50%);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid var(--gold);
}
.nav-dropdown-menu.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown-menu a {
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
  text-decoration: none;
  transition: background .18s;
  color: inherit;
}
.nav-dropdown-menu a:last-child { border-bottom: none; }
.nav-dropdown-menu a:hover { background: rgba(201,168,76,.07); }
.nav-dropdown-menu a svg {
  flex-shrink: 0;
  margin-top: .1rem;
  stroke: var(--gold);
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.nav-dropdown-menu a span {
  display: flex; flex-direction: column; gap: .15rem;
}
.nav-dropdown-menu a strong {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700; font-size: .82rem;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(247,240,230,.9);
}
.nav-dropdown-menu a em {
  font-style: normal;
  font-size: .72rem;
  color: rgba(247,240,230,.38);
  letter-spacing: .04em;
}
.nav-dropdown-menu a:hover strong { color: var(--gold); }

/* ── Mobile nav section label (Events header) ── */
.mobile-nav-section-label {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .7rem 2rem .4rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: .62rem;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: var(--gold);
  border-top: 1px solid rgba(201,168,76,.15);
  margin-top: .3rem;
  opacity: .8;
}
.mobile-nav-section-label svg {
  width: 14px; height: 14px;
  stroke: var(--gold); fill: none;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
  flex-shrink: 0;
}

/* Indented sub-links */
.mobile-nav a.nav-indent {
  padding-left: 3rem;
  font-size: .9rem;
  color: rgba(247,240,230,.6);
  border-bottom-color: rgba(201,168,76,.07);
}
.mobile-nav a.nav-indent:hover { padding-left: 3.4rem; color: var(--gold); }
.mobile-nav a.nav-indent.active { padding-left: calc(3rem - 3px); }

/* ============================================================
   EVENTS PAGES — grid, cards, pagination
   ============================================================ */
.events-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 3rem;
}
.event-card {
  background: #fff;
  overflow: hidden;
  border: 1.5px solid rgba(107,30,46,.08);
  transition: transform .3s ease, box-shadow .3s ease;
  display: flex;
  flex-direction: column;
}
.event-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(74,18,32,.14);
}
.event-card-thumb {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--deep-burgundy);
  flex-shrink: 0;
}
.event-card-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.event-card:hover .event-card-thumb img { transform: scale(1.06); }

/* Gradient placeholder when no real image */
.event-thumb-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
}
.event-thumb-placeholder svg {
  width: 40px; height: 40px;
  stroke: rgba(201,168,76,.4); fill: none;
  stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
}

.event-card-badge {
  position: absolute;
  top: .9rem; left: .9rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700; font-size: .6rem;
  letter-spacing: .25em; text-transform: uppercase;
  padding: .25rem .7rem;
}
.badge-upcoming { background: var(--gold); color: var(--deep-burgundy); }
.badge-past     { background: rgba(0,0,0,.55); color: rgba(255,255,255,.75); }
.badge-featured { background: var(--coral); color: #fff; }

.event-card-body {
  padding: 1.5rem;
  display: flex; flex-direction: column; flex: 1;
}
.event-card-meta {
  display: flex; gap: 1rem; flex-wrap: wrap;
  margin-bottom: .8rem;
}
.event-meta-item {
  display: flex; align-items: center; gap: .35rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .68rem; letter-spacing: .15em; text-transform: uppercase;
  color: var(--coral);
}
.event-meta-item svg {
  width: 12px; height: 12px;
  stroke: var(--coral); fill: none; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0;
}
.event-card-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800; font-size: 1.25rem;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--deep-burgundy);
  line-height: 1.2; margin-bottom: .6rem;
}
.event-card-desc {
  font-size: .85rem; line-height: 1.7;
  color: #6a5050; margin-bottom: 1.2rem;
  flex: 1;
}
.event-card-footer {
  display: flex; align-items: center; justify-content: space-between;
  border-top: 1px solid rgba(107,30,46,.08);
  padding-top: 1rem; margin-top: auto;
  gap: .5rem; flex-wrap: wrap;
}
.event-card-distance {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700; font-size: .72rem;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--mid-brown);
}

/* Past event overlay */
.event-card.is-past .event-card-thumb::after {
  content: '';
  position: absolute; inset: 0;
  background: rgba(10,4,7,.35);
}

/* ── Pagination ── */
.pagination {
  display: flex; align-items: center; justify-content: center;
  gap: .5rem; margin-top: 3.5rem; flex-wrap: wrap;
}
.page-btn {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700; font-size: .75rem;
  letter-spacing: .15em; text-transform: uppercase;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border: 1.5px solid rgba(107,30,46,.18);
  color: var(--mid-brown);
  background: none; cursor: pointer;
  transition: all .2s;
  text-decoration: none;
}
.page-btn:hover   { border-color: var(--gold); color: var(--gold); background: rgba(201,168,76,.07); }
.page-btn.active  { background: var(--deep-burgundy); color: var(--gold); border-color: var(--deep-burgundy); }
.page-btn.prev, .page-btn.next { width: auto; padding: 0 1.1rem; gap: .4rem; }
.page-btn.prev svg, .page-btn.next svg {
  width: 14px; height: 14px; stroke: currentColor; fill: none;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* ── Events filter bar ── */
.events-filter-bar {
  display: flex; align-items: center; gap: 1rem;
  flex-wrap: wrap; margin-bottom: 0; margin-top: 2rem;
}
.filter-btn {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase;
  padding: .5rem 1.2rem;
  border: 1.5px solid rgba(107,30,46,.18);
  color: var(--mid-brown); background: none; cursor: pointer;
  transition: all .2s;
}
.filter-btn:hover  { border-color: var(--gold); color: var(--gold); }
.filter-btn.active { background: var(--deep-burgundy); color: var(--gold); border-color: var(--deep-burgundy); }

/* ── Event count ── */
.events-count {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .68rem; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(107,30,46,.5); margin-left: auto;
}

/* ── Responsive ── */
@media (max-width: 960px) {
  .events-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}
@media (max-width: 600px) {
  .events-grid { grid-template-columns: 1fr; }
  .events-filter-bar { gap: .5rem; }
  .events-count { margin-left: 0; }
}

/* ============================================================
   VOLUNTEER SPOTLIGHT SLIDER
   ============================================================ */

/* Outer wrapper — contains arrows + viewport */
.vsl-outer {
  position: relative;
  width: 100%;
  overflow: hidden; /* clips all slides — only active one is visible */
}

/* Sliding track */
.vsl-track {
  display: flex;
  transition: transform .5s cubic-bezier(.4, 0, .2, 1);
  width: 100%;
  will-change: transform;
}

/* Each slide is exactly as wide as the outer container */
.vsl-slide {
  min-width: 100%;
  width: 100%;
  flex-shrink: 0;
  flex-grow: 0;
  display: flex;
  flex-direction: column;
}

/* Image wrapper — responsive 4:3 on desktop, 16:9 on mobile */
.vsl-img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--deep-burgundy);
}
.vsl-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform .6s ease;
}
.vsl-slide:hover .vsl-img { transform: scale(1.04); }

/* Subtle dark gradient at bottom of image */
.vsl-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 50%,
    rgba(10, 4, 7, .55) 100%
  );
  pointer-events: none;
}

/* Info block below image */
.vsl-info {
  background: var(--cream);
  padding: 1.75rem 2rem 2rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.vsl-name {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 1.3rem;
  color: var(--deep-burgundy);
  line-height: 1.2;
}
.vsl-role {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .68rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .3rem;
}
.vsl-bio {
  font-size: .88rem;
  line-height: 1.75;
  color: #5a4040;
  margin-bottom: .75rem;
}
.vsl-cta {
  align-self: flex-start;
  font-size: .7rem;
  padding: .75rem 1.4rem;
}

/* ── Overlaid prev / next arrows ── */
.vsl-arrow {
  position: absolute;
  top: 37.5%; /* midpoint of 4:3 image area */
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, .5);
  background: rgba(10, 4, 7, .6);
  backdrop-filter: blur(6px);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .2s, border-color .2s, transform .2s, opacity .25s;
}
.vsl-arrow.vsl-prev { left:  10px; }
.vsl-arrow.vsl-next { right: 10px; }
.vsl-arrow:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--deep-burgundy);
  transform: translateY(-50%) scale(1.1);
}
.vsl-arrow svg { display: block; }

/* ── Dot indicators ── */
.vsl-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: 1rem 0 0;
}
.vsl-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 1.5px solid rgba(201, 168, 76, .45);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: background .2s, border-color .2s, transform .2s;
}
.vsl-dot.active {
  background: var(--gold);
  border-color: var(--gold);
  transform: scale(1.3);
}
.vsl-dot:hover:not(.active) {
  border-color: var(--gold);
  background: rgba(201, 168, 76, .25);
}

/* ── Responsive ── */
@media (max-width: 960px) {
  /* On tablet the grid stacks — slider goes full width */
  .vsl-img-wrap { aspect-ratio: 16 / 9; }
  .vsl-info { padding: 1.4rem 1.5rem 1.6rem; }
}
@media (max-width: 640px) {
  .vsl-img-wrap { aspect-ratio: 4 / 3; }
  .vsl-info { padding: 1.2rem 1.2rem 1.4rem; }
  .vsl-name { font-size: 1.1rem; }
  .vsl-arrow { width: 38px; height: 38px; }
  .vsl-arrow.vsl-prev { left:  6px; }
  .vsl-arrow.vsl-next { right: 6px; }
}

/* Ensure signup panel left-col text is always light on dark bg */
.vol-signup .vol-signup-inner > div:first-child > p { color: rgba(247,240,230,.75) !important; }

/* ============================================================
   PARTNERS MARQUEE SECTION
   ============================================================ */

.partners-marquee-section {
  background: var(--warm-white);
  border-top: 1px solid rgba(107, 30, 46, 0.08);
  border-bottom: 1px solid rgba(107, 30, 46, 0.08);
  padding: 2.2rem 0 2.4rem;
  overflow: hidden;
  position: relative;
}

/* Subtle edge fade on left and right */
.partners-marquee-section::before,
.partners-marquee-section::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 120px;
  z-index: 2;
  pointer-events: none;
}
.partners-marquee-section::before {
  left: 0;
  background: linear-gradient(to right, var(--warm-white) 0%, transparent 100%);
}
.partners-marquee-section::after {
  right: 0;
  background: linear-gradient(to left, var(--warm-white) 0%, transparent 100%);
}

/* Header label row */
.partners-marquee-header {
  text-align: center;
  margin-bottom: 1.6rem;
}
.partners-marquee-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 0.62rem;
  letter-spacing: 0.55em;
  text-transform: uppercase;
  color: var(--mid-brown);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 1.1rem;
}
.partners-marquee-label::before,
.partners-marquee-label::after {
  content: '';
  display: inline-block;
  width: 48px;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--coral));
  flex-shrink: 0;
}
.partners-marquee-label::after {
  background: linear-gradient(to left, transparent, var(--coral));
}

/* Outer clipping container */
.partners-track-outer {
  overflow: hidden;
  width: 100%;
}

/* The scrolling track — holds 16 items (8 real + 8 duplicate) */
.partners-track {
  display: flex;
  align-items: center;
  gap: 2.8rem;
  width: max-content;
  animation: partners-scroll 28s linear infinite;
  will-change: transform;
}

/* Pause on hover for accessibility / readability */
.partners-track-outer:hover .partners-track {
  animation-play-state: paused;
}

/* Each logo card */
.partner-logo-item {
  flex-shrink: 0;
  width: 150px;
  height: 80px;
  background: #fff;
  border: 1px solid rgba(107, 30, 46, 0.09);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  box-shadow: 0 2px 12px rgba(107, 30, 46, 0.06);
  transition: box-shadow 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
  overflow: hidden;
}

.partner-logo-item:hover {
  box-shadow: 0 6px 24px rgba(107, 30, 46, 0.14);
  border-color: rgba(201, 168, 76, 0.45);
  transform: translateY(-3px);
}

.partner-logo-item img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: grayscale(30%);
  transition: filter 0.3s ease;
}

.partner-logo-item:hover img {
  filter: grayscale(0%);
}

/* Keyframe — scroll one full set (8 items) then seamlessly loop */
@keyframes partners-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(calc(-50%)); }
}

/* Responsive tweaks */
@media (max-width: 768px) {
  .partner-logo-item {
    width: 120px;
    height: 66px;
    padding: 8px 12px;
  }
  .partners-marquee-section::before,
  .partners-marquee-section::after {
    width: 60px;
  }
}

/* ============================================================
   PARTNER PAGE STYLES
   ============================================================ */


  /* ── PARTNER HERO ── */
  .ptn-hero {
    background: var(--black);
    padding: 7rem 2rem 5rem;
    position: relative; overflow: hidden;
  }
  .ptn-hero::before {
    content: 'PARTNER';
    position: absolute; bottom: -10%; right: -2%;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 800;
    font-size: clamp(6rem, 16vw, 16rem);
    letter-spacing: -.05em; color: rgba(255,255,255,.035);
    line-height: 1; pointer-events: none; user-select: none;
  }
  .ptn-hero::after {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(ellipse at 70% 40%, rgba(201,168,76,.12) 0%, transparent 60%),
                radial-gradient(ellipse at 20% 80%, rgba(212,97,74,.1) 0%, transparent 50%);
    pointer-events: none;
  }
  .ptn-hero-inner {
    position: relative; z-index: 2;
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 5rem; align-items: center;
  }
  .ptn-hero-eyebrow {
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .5em; color: var(--gold); text-transform: uppercase;
    margin-bottom: 1.2rem; display: flex; align-items: center; gap: .8rem;
  }
  .ptn-hero-eyebrow::before { content: ''; display: block; width: 30px; height: 1px; background: var(--gold); }
  .ptn-hero-title {
    font-family: 'Playfair Display', serif; font-weight: 900;
    font-size: clamp(2.8rem, 5vw, 5rem);
    line-height: 1.05; color: #fff; text-transform: uppercase; margin-bottom: 1rem;
  }
  .ptn-hero-title em { font-style: italic; color: var(--gold-light); }
  .ptn-hero-desc { font-size: .98rem; line-height: 1.9; color: rgba(247,240,230,.6); max-width: 460px; margin-bottom: 2.5rem; }
  .ptn-hero-ctas { display: flex; gap: .8rem; flex-wrap: wrap; }

  /* Reach stats */
  .ptn-reach-list { display: flex; flex-direction: column; gap: 1px; background: rgba(201,168,76,.15); }
  .ptn-reach-item {
    background: rgba(255,255,255,.03); padding: 1.8rem 2rem;
    display: flex; align-items: center; gap: 1.5rem;
    transition: background .3s;
  }
  .ptn-reach-item:hover { background: rgba(255,255,255,.06); }
  .ptn-reach-num {
    font-family: 'Barlow Condensed', sans-serif; font-size: 2.5rem; font-weight: 800;
    color: var(--gold); line-height: 1; flex-shrink: 0; min-width: 5rem;
  }
  .ptn-reach-label { font-size: .9rem; color: rgba(247,240,230,.55); line-height: 1.5; }
  .ptn-reach-label strong { display: block; font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; color: rgba(247,240,230,.85); margin-bottom: .15rem; }

  /* ── WHY PARTNER ── */
  .ptn-why { background: var(--cream); }
  .ptn-why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
  .ptn-why-body { font-size: 1rem; line-height: 1.9; color: #5a4040; }
  .ptn-why-body p + p { margin-top: 1rem; }
  .ptn-why-pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2.5rem; }
  .ptn-pillar {
    background: #fff; padding: 1.5rem;
    border-bottom: 3px solid var(--gold);
    text-align: center;
  }
  .ptn-pillar-num {
    font-family: 'Barlow Condensed', sans-serif; font-size: 2.5rem; font-weight: 800;
    color: var(--deep-burgundy); line-height: 1; margin-bottom: .3rem;
  }
  .ptn-pillar-label { font-family: 'Barlow Condensed', sans-serif; font-size: .65rem; letter-spacing: .25em; text-transform: uppercase; color: var(--mid-brown); }

  /* ── WAYS TO PARTNER ── */
  .ptn-ways { background: var(--deep-burgundy); }
  .ptn-ways-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5px; margin-top: 3rem; background: rgba(255,255,255,.07); }
  .ptn-way-card {
    background: var(--deep-burgundy); padding: 2.5rem 2rem;
    transition: background .3s, transform .3s;
    position: relative; overflow: hidden;
  }
  .ptn-way-card:hover { background: var(--burgundy); transform: translateY(-4px); z-index: 2; box-shadow: 0 16px 40px rgba(0,0,0,.3); }
  .ptn-way-card.featured { background: rgba(201,168,76,.12); border-top: 3px solid var(--gold); }
  .ptn-way-card.featured:hover { background: rgba(201,168,76,.18); }
  .ptn-way-badge {
    font-family: 'Barlow Condensed', sans-serif; font-size: .52rem;
    letter-spacing: .3em; text-transform: uppercase;
    background: var(--gold); color: var(--deep-burgundy);
    padding: .2rem .6rem; display: inline-block; margin-bottom: 1rem;
  }
  .ptn-way-icon { width: 44px; height: 44px; margin-bottom: 1rem; }
  .ptn-way-icon svg { width: 100%; height: 100%; stroke: var(--gold); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  .ptn-way-title { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.15rem; letter-spacing: .06em; text-transform: uppercase; color: #fff; margin-bottom: .7rem; }
  .ptn-way-body { font-size: .88rem; line-height: 1.75; color: rgba(247,240,230,.55); }

  /* ── TIERS ── */
  .ptn-tiers { background: var(--warm-white); }
  .ptn-tiers-intro { max-width: 560px; margin: 0 auto; text-align: center; font-size: .97rem; line-height: 1.85; color: #5a4040; margin-bottom: 3.5rem; }
  .ptn-tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
  .ptn-tier {
    padding: 3rem 2.5rem; border: 1.5px solid;
    position: relative; overflow: hidden;
    transition: transform .3s;
  }
  .ptn-tier:hover { transform: translateY(-5px); }
  .ptn-tier.community { border-color: rgba(139,94,82,.35); background: var(--warm-white); }
  .ptn-tier.flagship  { border-color: var(--gold); background: var(--deep-burgundy); }
  .ptn-tier.title     { border-color: var(--coral); background: var(--charcoal); }
  .ptn-tier.flagship::before {
    content: 'Most Popular';
    position: absolute; top: 1.2rem; right: 1.2rem;
    font-family: 'Barlow Condensed', sans-serif; font-size: .52rem;
    letter-spacing: .3em; text-transform: uppercase;
    background: var(--gold); color: var(--deep-burgundy);
    padding: .2rem .6rem;
  }
  .ptn-tier-icon { width: 44px; height: 44px; margin-bottom: 1.2rem; }
  .ptn-tier-icon svg { width: 100%; height: 100%; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  .ptn-tier.community .ptn-tier-icon svg { stroke: var(--mid-brown); }
  .ptn-tier.flagship  .ptn-tier-icon svg { stroke: var(--gold); }
  .ptn-tier.title     .ptn-tier-icon svg { stroke: var(--coral); }
  .ptn-tier-name { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.3rem; letter-spacing: .08em; text-transform: uppercase; margin-bottom: .5rem; }
  .ptn-tier.community .ptn-tier-name { color: var(--mid-brown); }
  .ptn-tier.flagship  .ptn-tier-name { color: var(--gold); }
  .ptn-tier.title     .ptn-tier-name { color: var(--coral); }
  .ptn-tier-tag { font-family: 'Barlow Condensed', sans-serif; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 1.5rem; }
  .ptn-tier.community .ptn-tier-tag { color: rgba(139,94,82,.6); }
  .ptn-tier.flagship  .ptn-tier-tag { color: rgba(201,168,76,.6); }
  .ptn-tier.title     .ptn-tier-tag { color: rgba(212,97,74,.6); }
  .ptn-tier-features { list-style: none; display: flex; flex-direction: column; gap: .65rem; margin-bottom: 2rem; }
  .ptn-tier-features li { display: flex; align-items: flex-start; gap: .7rem; font-size: .88rem; line-height: 1.5; }
  .ptn-tier.community .ptn-tier-features li { color: #6a5050; }
  .ptn-tier.flagship  .ptn-tier-features li { color: rgba(247,240,230,.7); }
  .ptn-tier.title     .ptn-tier-features li { color: rgba(247,240,230,.65); }
  .ptn-tier-features li svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: .15rem; fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
  .ptn-tier.community .ptn-tier-features li svg { stroke: var(--mid-brown); }
  .ptn-tier.flagship  .ptn-tier-features li svg { stroke: var(--gold); }
  .ptn-tier.title     .ptn-tier-features li svg { stroke: var(--coral); }

  /* ── CONTACT FORM ── */
  .ptn-contact { background: var(--cream); }
  .ptn-contact-inner { display: grid; grid-template-columns: 1fr 1.3fr; gap: 5rem; align-items: start; }
  .ptn-contact-info > p { font-size: .98rem; line-height: 1.9; color: #5a4040; margin-bottom: 2rem; }
  .ptn-cta-items { display: flex; flex-direction: column; gap: .8rem; }
  .ptn-cta-item {
    display: flex; align-items: flex-start; gap: 1rem;
    padding: 1.3rem 1.4rem; background: #fff;
    border-left: 3px solid transparent; transition: border-color .25s;
  }
  .ptn-cta-item:hover { border-left-color: var(--gold); }
  .ptn-cta-icon {
    width: 38px; height: 38px; flex-shrink: 0;
    background: var(--deep-burgundy);
    display: flex; align-items: center; justify-content: center;
  }
  .ptn-cta-icon svg { width: 17px; height: 17px; stroke: var(--gold); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .ptn-cta-label { font-family: 'Barlow Condensed', sans-serif; font-size: .62rem; letter-spacing: .25em; text-transform: uppercase; color: var(--coral); margin-bottom: .2rem; }
  .ptn-cta-val { font-size: .9rem; color: var(--charcoal); }

  .ptn-form-box { background: var(--deep-burgundy); padding: 3rem; }
  .ptn-form-box h3 { font-family: 'Playfair Display', serif; font-weight: 900; font-size: 1.6rem; text-transform: uppercase; color: #fff; margin-bottom: .5rem; }
  .ptn-form-box .form-sub { font-size: .88rem; color: rgba(247,240,230,.5); margin-bottom: 2rem; line-height: 1.6; }
  .ptn-form-fields { display: flex; flex-direction: column; gap: 1rem; }
  .ptn-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .ptn-field { display: flex; flex-direction: column; gap: .35rem; }
  .ptn-field label { font-family: 'Barlow Condensed', sans-serif; font-size: .62rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(247,240,230,.45); }
  .ptn-field input,
  .ptn-field select,
  .ptn-field textarea {
    padding: .9rem 1rem;
    background: rgba(255,255,255,.07); border: 1.5px solid rgba(255,255,255,.12);
    font-family: 'Barlow', sans-serif; font-size: .9rem;
    color: #fff; outline: none;
    transition: border-color .2s; resize: vertical;
    -webkit-appearance: none;
  }
  .ptn-field input::placeholder,
  .ptn-field textarea::placeholder { color: rgba(255,255,255,.3); }
  .ptn-field input:focus,
  .ptn-field select:focus,
  .ptn-field textarea:focus { border-color: var(--gold); }
  .ptn-field select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C9A84C' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 1rem center;
    padding-right: 2.5rem;
  }
  .ptn-field select option { background: var(--deep-burgundy); color: #fff; }

  @media (max-width: 960px) {
    .ptn-hero-inner { grid-template-columns: 1fr; gap: 3rem; }
    .ptn-why-grid { grid-template-columns: 1fr; }
    .ptn-ways-grid { grid-template-columns: 1fr 1fr; }
    .ptn-tier-grid { grid-template-columns: 1fr; }
    .ptn-contact-inner { grid-template-columns: 1fr; }
  }
  @media (max-width: 640px) {
    .ptn-ways-grid { grid-template-columns: 1fr; }
    .ptn-form-row { grid-template-columns: 1fr; }
    .ptn-why-pillars { grid-template-columns: 1fr 1fr; }
    .ptn-hero-ctas { flex-direction: column; }
    .ptn-hero-ctas .btn { justify-content: center; }
  }

/* ============================================================
   RUNFEST PAGE STYLES
   ============================================================ */


  /* ── DETAILS SECTION ── */
  .rf-details { background: var(--cream); }
  .rf-details-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 5rem; align-items: start; }
  .rf-detail-list { display: flex; flex-direction: column; gap: 0; margin-top: 2rem; }
  .rf-detail-item {
    display: flex; align-items: flex-start; gap: 1.4rem;
    padding: 1.6rem 0;
    border-bottom: 1px solid rgba(107,30,46,.1);
  }
  .rf-detail-item:first-child { border-top: 1px solid rgba(107,30,46,.1); }
  .rf-detail-icon {
    width: 48px; height: 48px; flex-shrink: 0;
    background: var(--deep-burgundy);
    display: flex; align-items: center; justify-content: center;
  }
  .rf-detail-icon svg { width: 22px; height: 22px; stroke: var(--gold); fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  .rf-detail-label {
    font-family: 'Barlow Condensed', sans-serif; font-size: .62rem;
    letter-spacing: .3em; text-transform: uppercase; color: var(--coral);
    margin-bottom: .25rem;
  }
  .rf-detail-value { font-size: .98rem; color: var(--charcoal); line-height: 1.5; font-weight: 500; }
  .rf-detail-sub { font-size: .84rem; color: var(--mid-brown); margin-top: .2rem; line-height: 1.5; }

  .rf-registration-box {
    background: var(--deep-burgundy);
    padding: 3rem;
    position: relative; overflow: hidden;
  }
  .rf-registration-box::before {
    content: '';
    position: absolute; top: -40px; right: -40px;
    width: 160px; height: 160px;
    border: 2px solid rgba(201,168,76,.2); border-radius: 50%;
  }
  .rf-registration-box::after {
    content: '';
    position: absolute; bottom: -20px; left: -20px;
    width: 100px; height: 100px;
    background: var(--coral); opacity: .1; border-radius: 50%;
  }
  .rf-reg-eyebrow {
    font-family: 'Barlow Condensed', sans-serif; font-size: .62rem;
    letter-spacing: .5em; color: var(--gold); text-transform: uppercase;
    margin-bottom: .8rem;
  }
  .rf-reg-title {
    font-family: 'Playfair Display', serif; font-size: 1.8rem;
    font-weight: 900; color: #fff; margin-bottom: 1rem; line-height: 1.2;
  }
  .rf-reg-body { font-size: .9rem; color: rgba(247,240,230,.6); line-height: 1.8; margin-bottom: 2rem; }
  .rf-reg-notify-form { display: flex; flex-direction: column; gap: .7rem; }
  .rf-reg-notify-form input[type="email"] {
    padding: 1rem 1.2rem;
    background: rgba(255,255,255,.1); border: 1.5px solid rgba(255,255,255,.2);
    color: #fff; font-family: 'Barlow', sans-serif; font-size: .9rem; outline: none;
    transition: border-color .2s;
  }
  .rf-reg-notify-form input[type="email"]::placeholder { color: rgba(255,255,255,.4); }
  .rf-reg-notify-form input[type="email"]:focus { border-color: var(--gold); }
  .rf-reg-social {
    margin-top: 2rem; padding-top: 1.5rem;
    border-top: 1px solid rgba(201,168,76,.15);
  }
  .rf-reg-social p {
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .3em; text-transform: uppercase; color: rgba(247,240,230,.4);
    margin-bottom: .8rem;
  }
  .rf-reg-social a {
    font-family: 'Barlow Condensed', sans-serif; font-size: .78rem;
    letter-spacing: .15em; text-transform: uppercase; color: var(--gold);
    text-decoration: none; display: flex; align-items: center; gap: .5rem;
    transition: color .2s;
  }
  .rf-reg-social a:hover { color: var(--gold-light); }

  /* ── DISTANCES ── */
  .rf-distances { background: var(--charcoal); }
  .rf-dist-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 3rem; }
  .rf-dist-card {
    border: 1.5px solid; padding: 3rem;
    position: relative; overflow: hidden;
    transition: transform .3s;
  }
  .rf-dist-card:hover { transform: translateY(-5px); }
  .rf-dist-card.d30 { border-color: var(--gold); background: rgba(201,168,76,.05); }
  .rf-dist-card.d16 { border-color: rgba(212,97,74,.5); background: rgba(212,97,74,.05); }
  .rf-dist-num {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 800;
    font-size: clamp(4rem, 8vw, 7rem); line-height: 1;
    margin-bottom: .2rem;
  }
  .rf-dist-card.d30 .rf-dist-num { color: var(--gold); }
  .rf-dist-card.d16 .rf-dist-num { color: var(--coral); }
  .rf-dist-unit {
    font-family: 'Barlow Condensed', sans-serif; font-size: 1.1rem;
    letter-spacing: .3em; text-transform: uppercase;
    margin-bottom: 1.2rem;
  }
  .rf-dist-card.d30 .rf-dist-unit { color: rgba(201,168,76,.65); }
  .rf-dist-card.d16 .rf-dist-unit { color: rgba(212,97,74,.65); }
  .rf-dist-desc { font-size: .9rem; line-height: 1.75; color: rgba(247,240,230,.55); }

  /* ── FESTIVAL VILLAGE ── */
  .rf-village { background: var(--warm-white); }
  .rf-village-intro { max-width: 620px; margin: 0 auto; text-align: center; font-size: .98rem; line-height: 1.85; color: #5a4040; margin-bottom: 3.5rem; }
  .rf-village-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5px; background: rgba(107,30,46,.1); }
  .rf-village-card {
    background: var(--warm-white); padding: 2.5rem 2rem;
    transition: all .3s; position: relative; overflow: hidden;
  }
  .rf-village-card:hover { background: var(--deep-burgundy); transform: translateY(-3px); z-index: 2; box-shadow: 0 16px 40px rgba(74,18,32,.2); }
  .rf-village-card:hover .rf-vc-title,
  .rf-village-card:hover .rf-vc-body { color: rgba(247,240,230,.85); }
  .rf-village-card:hover .rf-vc-icon svg { stroke: var(--gold); }
  .rf-vc-icon { width: 44px; height: 44px; margin-bottom: 1rem; }
  .rf-vc-icon svg { width: 100%; height: 100%; stroke: var(--coral); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s; }
  .rf-vc-title { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.1rem; letter-spacing: .06em; text-transform: uppercase; color: var(--deep-burgundy); margin-bottom: .6rem; transition: color .3s; }
  .rf-vc-body { font-size: .87rem; line-height: 1.7; color: #6a5050; transition: color .3s; }

  /* ── HISTORY TIMELINE ── */
  .rf-history { background: var(--deep-burgundy); }
  .rf-timeline { display: flex; flex-direction: column; gap: 0; margin-top: 3rem; max-width: 680px; }
  .rf-tl-item {
    display: flex; gap: 2rem; padding-bottom: 2.5rem;
    position: relative;
  }
  .rf-tl-item::before {
    content: ''; position: absolute;
    left: 1.9rem; top: 3.2rem; bottom: 0; width: 1px;
    background: rgba(201,168,76,.2);
  }
  .rf-tl-item:last-child::before { display: none; }
  .rf-tl-year-col { flex-shrink: 0; width: 4rem; text-align: center; }
  .rf-tl-dot {
    width: 3.8rem; height: 3.8rem;
    border: 2px solid var(--gold); background: var(--deep-burgundy);
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
    margin-bottom: .6rem;
  }
  .rf-tl-dot svg { width: 18px; height: 18px; stroke: var(--gold); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .rf-tl-year {
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .2em; text-transform: uppercase; color: var(--gold);
    display: block; text-align: center;
  }
  .rf-tl-body { padding-top: .5rem; }
  .rf-tl-title { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.2rem; letter-spacing: .05em; text-transform: uppercase; color: #fff; margin-bottom: .5rem; }
  .rf-tl-desc { font-size: .9rem; line-height: 1.75; color: rgba(247,240,230,.55); }

  /* ── CTA BAND ── */
  .rf-cta-band {
    background: linear-gradient(135deg, var(--burgundy) 0%, var(--coral) 100%);
    padding: 5rem 2rem; text-align: center;
    position: relative; overflow: hidden;
  }
  .rf-cta-band::before {
    content: '';
    position: absolute; inset: 8px;
    border: 1px solid rgba(255,255,255,.15);
    pointer-events: none;
  }

  @media (max-width: 960px) {
    .rf-details-grid { grid-template-columns: 1fr; }
    .rf-dist-grid { grid-template-columns: 1fr; }
    .rf-village-grid { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 640px) {
    .rf-village-grid { grid-template-columns: 1fr; }
  }

/* ============================================================
   SHOP PAGE STYLES
   ============================================================ */


  /* ── SHOP HERO / COMING SOON ── */
  .shop-hero {
    min-height: calc(100vh - var(--header-h));
    background: var(--black);
    display: flex; align-items: center;
    position: relative; overflow: hidden;
  }
  .shop-hero-bg {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, var(--black) 0%, #1a0810 50%, var(--deep-burgundy) 100%);
  }
  .shop-hero-bg::after {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(ellipse at 60% 40%, rgba(201,168,76,.15) 0%, transparent 60%),
                radial-gradient(ellipse at 20% 70%, rgba(212,97,74,.1) 0%, transparent 50%);
  }
  .shop-word {
    position: absolute; bottom: -12%; right: -3%;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 800;
    font-size: clamp(8rem, 22vw, 24rem);
    letter-spacing: -.05em; color: rgba(255,255,255,.03);
    line-height: 1; pointer-events: none; user-select: none;
  }
  .shop-hero-inner {
    position: relative; z-index: 2;
    max-width: 1200px; margin: 0 auto; padding: 4rem 2rem;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 5rem; align-items: center;
  }

  .shop-hero-eyebrow {
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .5em; color: var(--gold); text-transform: uppercase;
    margin-bottom: 1.2rem; display: flex; align-items: center; gap: .8rem;
  }
  .shop-hero-eyebrow::before { content: ''; display: block; width: 30px; height: 1px; background: var(--gold); }
  .shop-cs-label {
    display: inline-flex; align-items: center; gap: .5rem;
    background: rgba(201,168,76,.12); border: 1px solid rgba(201,168,76,.25);
    padding: .35rem .9rem; margin-bottom: 1.5rem;
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .3em; text-transform: uppercase; color: var(--gold);
  }
  .shop-cs-label::before {
    content: '';
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--gold); animation: pulse 1.5s ease-in-out infinite;
  }
  @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

  .shop-hero-title {
    font-family: 'Playfair Display', serif; font-weight: 900;
    font-size: clamp(3rem, 6vw, 5.5rem);
    line-height: 1.05; color: #fff; text-transform: uppercase; margin-bottom: 1rem;
  }
  .shop-hero-title em { font-style: italic; color: var(--gold-light); }
  .shop-hero-desc { font-size: .98rem; line-height: 1.9; color: rgba(247,240,230,.6); max-width: 460px; margin-bottom: 2.5rem; }

  .shop-notify-form { display: flex; max-width: 420px; }
  .shop-notify-form input[type="email"] {
    flex: 1; padding: 1rem 1.2rem;
    background: rgba(255,255,255,.08); border: 1.5px solid rgba(255,255,255,.2); border-right: none;
    color: #fff; font-family: 'Barlow', sans-serif; font-size: .9rem; outline: none;
    transition: border-color .2s;
  }
  .shop-notify-form input[type="email"]::placeholder { color: rgba(255,255,255,.35); }
  .shop-notify-form input[type="email"]:focus { border-color: var(--gold); }
  .shop-notify-form button {
    background: var(--gold); color: var(--deep-burgundy);
    border: none; padding: 1rem 1.3rem;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: .72rem;
    letter-spacing: .2em; text-transform: uppercase; cursor: pointer;
    transition: background .2s; white-space: nowrap;
  }
  .shop-notify-form button:hover { background: var(--gold-light); }
  .shop-ig-link {
    display: flex; align-items: center; gap: .6rem;
    margin-top: 1.2rem;
    font-family: 'Barlow Condensed', sans-serif; font-size: .72rem;
    letter-spacing: .15em; text-transform: uppercase; color: rgba(247,240,230,.4);
    text-decoration: none; transition: color .2s;
  }
  .shop-ig-link:hover { color: var(--gold); }
  .shop-ig-link svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

  /* Product mockup grid */
  .shop-preview { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5px; background: rgba(201,168,76,.12); }
  .shop-preview-card {
    background: rgba(255,255,255,.04);
    aspect-ratio: 1;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 1rem;
    transition: background .3s;
    position: relative; overflow: hidden;
  }
  .shop-preview-card:hover { background: rgba(255,255,255,.07); }
  .shop-preview-card svg { width: 36px; height: 36px; stroke: rgba(201,168,76,.4); fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
  .shop-preview-card-label {
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.22);
    text-align: center;
  }
  .shop-preview-card.highlight { background: rgba(201,168,76,.07); }
  .shop-preview-card.highlight svg { stroke: var(--gold); opacity: .7; }
  .shop-preview-card.highlight .shop-preview-card-label { color: rgba(201,168,76,.5); }
  .shop-preview-card::after {
    content: 'COMING SOON';
    position: absolute; bottom: 1rem; right: 1rem;
    font-family: 'Barlow Condensed', sans-serif; font-size: .52rem;
    letter-spacing: .3em; text-transform: uppercase;
    background: rgba(10,4,8,.8); color: rgba(201,168,76,.6);
    padding: .2rem .5rem;
  }

  /* ── WHAT'S COMING ── */
  .shop-coming { background: var(--cream); }
  .shop-coming-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 3rem; }
  .shop-item-card {
    background: #fff; padding: 2.5rem 2rem;
    border-top: 3px solid transparent;
    transition: border-color .3s, transform .3s;
  }
  .shop-item-card:hover { border-top-color: var(--gold); transform: translateY(-4px); }
  .shop-item-icon { width: 48px; height: 48px; margin-bottom: 1.2rem; background: var(--deep-burgundy); display: flex; align-items: center; justify-content: center; }
  .shop-item-icon svg { width: 24px; height: 24px; stroke: var(--gold); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  .shop-item-title { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.1rem; letter-spacing: .06em; text-transform: uppercase; color: var(--deep-burgundy); margin-bottom: .5rem; }
  .shop-item-body { font-size: .88rem; line-height: 1.75; color: #6a5050; }

  @media (max-width: 960px) {
    .shop-hero-inner { grid-template-columns: 1fr; gap: 3rem; }
    .shop-coming-grid { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 640px) {
    .shop-coming-grid { grid-template-columns: 1fr; }
    .shop-notify-form { flex-direction: column; }
    .shop-notify-form input[type="email"] { border-right: 1.5px solid rgba(255,255,255,.2); }
  }

/* ============================================================
   VOLUNTEER PAGE STYLES
   ============================================================ */


  /* ── VOLUNTEER HERO ── */
  .vol-hero {
    background: var(--charcoal);
    padding: 7rem 2rem 5rem;
    position: relative; overflow: hidden;
  }
  .vol-hero::before {
    content: 'VOLUNTEER';
    position: absolute; bottom: -10%; right: -2%;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 800;
    font-size: clamp(5rem, 14vw, 14rem);
    letter-spacing: -.05em; color: rgba(255,255,255,.04);
    line-height: 1; pointer-events: none; user-select: none;
  }
  .vol-hero-inner {
    position: relative; z-index: 2;
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 5rem; align-items: center;
  }
  .vol-hero-eyebrow {
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .5em; color: var(--gold); text-transform: uppercase;
    margin-bottom: 1.2rem; display: flex; align-items: center; gap: .8rem;
  }
  .vol-hero-eyebrow::before { content: ''; display: block; width: 30px; height: 1px; background: var(--gold); }
  .vol-hero-title {
    font-family: 'Playfair Display', serif; font-weight: 900;
    font-size: clamp(2.8rem, 5vw, 4.8rem);
    line-height: 1.05; color: #fff; text-transform: uppercase; margin-bottom: 1rem;
  }
  .vol-hero-title em { font-style: italic; color: var(--gold-light); }
  .vol-hero-desc { font-size: .98rem; line-height: 1.85; color: rgba(247,240,230,.65); max-width: 460px; margin-bottom: 2.5rem; }
  .vol-hero-ctas { display: flex; gap: .8rem; flex-wrap: wrap; }

  /* Hero visual — stat clusters */
  .vol-hero-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(201,168,76,.15); }
  .vol-stat-box {
    background: rgba(255,255,255,.03); padding: 2.2rem 2rem;
    text-align: center;
    transition: background .3s;
  }
  .vol-stat-box:hover { background: rgba(255,255,255,.06); }
  .vol-stat-box .snum { font-family: 'Barlow Condensed', sans-serif; font-size: clamp(2rem,4vw,3rem); font-weight: 800; color: var(--gold); line-height: 1; }
  .vol-stat-box .slbl { font-family: 'Barlow Condensed', sans-serif; font-size: .62rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.35); margin-top: .5rem; }

  /* ── WHY VOLUNTEER ── */
  .vol-why { background: var(--cream); }
  .vol-why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
  .vol-why-body { font-size: 1rem; line-height: 1.9; color: #5a4040; }
  .vol-why-body p + p { margin-top: 1rem; }

  .vol-perks { display: flex; flex-direction: column; gap: .8rem; margin-top: 2.5rem; }
  .vol-perk {
    display: flex; align-items: center; gap: 1.2rem;
    padding: 1.2rem 1.5rem; background: #fff;
    border-left: 3px solid transparent;
    transition: border-color .25s, box-shadow .25s;
  }
  .vol-perk:hover { border-left-color: var(--gold); box-shadow: 4px 0 24px rgba(201,168,76,.1); }
  .vol-perk-icon {
    width: 40px; height: 40px; flex-shrink: 0;
    background: var(--deep-burgundy);
    display: flex; align-items: center; justify-content: center;
  }
  .vol-perk-icon svg { width: 18px; height: 18px; stroke: var(--gold); fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  .vol-perk-text { font-size: .9rem; color: var(--charcoal); line-height: 1.5; font-weight: 500; }
  .vol-perk-sub { font-size: .82rem; color: var(--mid-brown); margin-top: .15rem; }

  .vol-quote-box {
    background: var(--deep-burgundy); padding: 3rem;
    border-left: 4px solid var(--gold);
    position: relative; overflow: hidden;
  }
  .vol-quote-box::before {
    content: '"';
    position: absolute; top: -1.5rem; left: 1.5rem;
    font-family: 'Playfair Display', serif; font-size: 8rem;
    color: rgba(201,168,76,.1); line-height: 1; pointer-events: none;
  }
  .vol-quote-box blockquote {
    font-family: 'Playfair Display', serif; font-style: italic;
    font-size: 1.2rem; color: #fff; line-height: 1.6; position: relative; z-index: 1;
    margin-bottom: 1.5rem;
  }
  .vol-quote-box-foot {
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .3em; text-transform: uppercase; color: var(--gold);
  }

  /* ── ROLES ── */
  .vol-roles { background: var(--warm-white); }
  .vol-roles-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5px; background: rgba(107,30,46,.1); margin-top: 3rem; }
  .vol-role-card {
    background: var(--warm-white); padding: 2.5rem 2rem;
    transition: all .3s; position: relative; overflow: hidden;
  }
  .vol-role-card:hover { background: var(--deep-burgundy); transform: translateY(-4px); z-index: 2; box-shadow: 0 16px 40px rgba(74,18,32,.2); }
  .vol-role-card:hover .vol-rc-title,
  .vol-role-card:hover .vol-rc-body { color: rgba(247,240,230,.85); }
  .vol-role-card:hover .vol-rc-icon svg { stroke: var(--gold); }
  .vol-rc-icon { width: 44px; height: 44px; margin-bottom: 1rem; }
  .vol-rc-icon svg { width: 100%; height: 100%; stroke: var(--coral); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s; }
  .vol-rc-title { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.1rem; letter-spacing: .06em; text-transform: uppercase; color: var(--deep-burgundy); margin-bottom: .6rem; transition: color .3s; }
  .vol-rc-body { font-size: .88rem; line-height: 1.75; color: #6a5050; transition: color .3s; }

  /* ── SIGNUP FORM ── */
  .vol-signup { background: var(--deep-burgundy); }
  .vol-signup-inner { display: grid; grid-template-columns: 1fr 1.4fr; gap: 5rem; align-items: start; }

  .vol-signup-info { }
  .vol-signup-info .section-label { margin-bottom: .8rem; }
  .vol-signup-info .section-title { margin-bottom: 1rem; }
  .vol-signup-info > p { font-size: .95rem; color: rgba(247,240,230,.6); line-height: 1.8; margin-bottom: 2rem; }

  .vol-upcoming { background: rgba(255,255,255,.04); border: 1px solid rgba(201,168,76,.2); padding: 2rem; }
  .vol-upcoming-label { font-family: 'Barlow Condensed', sans-serif; font-size: .62rem; letter-spacing: .35em; text-transform: uppercase; color: var(--gold); margin-bottom: 1.2rem; }
  .vol-upcoming-event {
    display: flex; align-items: flex-start; gap: 1rem;
    padding: 1.2rem 0; border-bottom: 1px solid rgba(201,168,76,.12);
  }
  .vol-upcoming-event:last-child { border-bottom: none; padding-bottom: 0; }
  .vol-upcoming-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--gold); flex-shrink: 0; margin-top: .35rem; }
  .vol-upcoming-event-name { font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: .95rem; letter-spacing: .05em; text-transform: uppercase; color: #fff; margin-bottom: .2rem; }
  .vol-upcoming-event-date { font-size: .83rem; color: rgba(247,240,230,.45); }

  .vol-form-box {
    background: var(--cream); padding: 3rem;
  }
  .vol-form-box h3 {
    font-family: 'Playfair Display', serif; font-weight: 900;
    font-size: 1.6rem; text-transform: uppercase;
    color: var(--deep-burgundy); margin-bottom: .4rem;
  }
  .vol-form-box .form-sub { font-size: .88rem; color: var(--mid-brown); margin-bottom: 2rem; line-height: 1.6; }
  .vol-form-fields { display: flex; flex-direction: column; gap: 1rem; }
  .vol-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .vol-field { display: flex; flex-direction: column; gap: .35rem; }
  .vol-field label { font-family: 'Barlow Condensed', sans-serif; font-size: .62rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mid-brown); }
  .vol-field input,
  .vol-field select,
  .vol-field textarea {
    padding: .9rem 1rem;
    background: #fff; border: 1.5px solid rgba(107,30,46,.12);
    font-family: 'Barlow', sans-serif; font-size: .9rem;
    color: var(--charcoal); outline: none;
    transition: border-color .2s; resize: vertical;
    -webkit-appearance: none;
  }
  .vol-field input:focus,
  .vol-field select:focus,
  .vol-field textarea:focus { border-color: var(--burgundy); }
  .vol-field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238B5E52' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 1rem center;
    padding-right: 2.5rem; cursor: pointer;
  }

  @media (max-width: 960px) {
    .vol-hero-inner { grid-template-columns: 1fr; gap: 3rem; }
    .vol-why-grid { grid-template-columns: 1fr; }
    .vol-signup-inner { grid-template-columns: 1fr; }
    .vol-roles-grid { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 640px) {
    .vol-roles-grid { grid-template-columns: 1fr; }
    .vol-form-row { grid-template-columns: 1fr; }
    .vol-hero-ctas { flex-direction: column; }
    .vol-hero-ctas .btn { justify-content: center; }
  }

/* ============================================================
   WOMEN'S CIRCLE PAGE STYLES
   ============================================================ */


  /* ── HERO ── */
  .wc-hero {
    position: relative;
    background: linear-gradient(135deg, #f9ede6 0%, var(--soft-pink) 50%, #eeddd4 100%);
    padding: 7rem 2rem 5rem;
    overflow: hidden;
  }
  .wc-hero::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(ellipse at 80% 30%, rgba(107,30,46,.08) 0%, transparent 60%),
                radial-gradient(ellipse at 20% 80%, rgba(201,168,76,.12) 0%, transparent 50%);
  }
  .wc-hero-word {
    position: absolute; bottom: -12%; right: -2%;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 800;
    font-size: clamp(7rem, 18vw, 18rem);
    letter-spacing: -.05em; color: rgba(107,30,46,.04);
    line-height: 1; pointer-events: none; user-select: none;
  }
  .wc-hero-inner {
    position: relative; z-index: 2;
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 5rem; align-items: center;
  }
  .wc-hero-eyebrow {
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .5em; color: var(--coral); text-transform: uppercase;
    margin-bottom: 1.2rem; display: flex; align-items: center; gap: .8rem;
  }
  .wc-hero-eyebrow::before { content: ''; display: block; width: 30px; height: 1px; background: var(--coral); }
  .wc-hero-title {
    font-family: 'Playfair Display', serif; font-weight: 900;
    font-size: clamp(2.8rem, 5.5vw, 5rem);
    line-height: 1.05; color: var(--deep-burgundy); text-transform: uppercase;
    margin-bottom: 1rem; letter-spacing: -.01em;
  }
  .wc-hero-title em { font-style: italic; color: var(--coral); }
  .wc-hero-sub {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 400;
    font-size: 1.05rem; letter-spacing: .15em;
    color: var(--mid-brown); text-transform: uppercase;
    margin-bottom: 1.8rem;
  }
  .wc-hero-desc {
    font-size: 1rem; line-height: 1.9;
    color: #5a4040; max-width: 480px; margin-bottom: 2.5rem;
  }
  .wc-hero-ctas { display: flex; gap: .8rem; flex-wrap: wrap; }

  /* Circle visual */
  .wc-hero-visual {
    display: flex; align-items: center; justify-content: center;
    position: relative;
  }
  .wc-ring-outer {
    position: relative;
    width: clamp(280px, 38vw, 420px);
    height: clamp(280px, 38vw, 420px);
  }
  .wc-ring {
    position: absolute; border-radius: 50%;
    top: 50%; left: 50%; transform: translate(-50%, -50%);
  }
  .wc-ring-1 { width: 100%; height: 100%; border: 1px solid rgba(107,30,46,.15); }
  .wc-ring-2 { width: 78%; height: 78%; border: 1px solid rgba(107,30,46,.25); animation: circSpin 35s linear infinite; }
  .wc-ring-3 { width: 56%; height: 56%; border: 1.5px solid rgba(107,30,46,.35); animation: circSpin 20s linear reverse infinite; }
  .wc-ring-4 {
    width: 34%; height: 34%;
    background: var(--deep-burgundy); border: 2px solid var(--gold);
    display: flex; align-items: center; justify-content: center;
  }
  @keyframes circSpin { from { transform: translate(-50%,-50%) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg); } }
  .wc-ring-4-text {
    font-family: 'Playfair Display', serif; font-size: .85rem;
    font-weight: 700; color: var(--gold); text-align: center;
    line-height: 1.3; text-transform: uppercase; letter-spacing: .04em;
  }
  .wc-float-word {
    position: absolute;
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .3em; text-transform: uppercase;
    color: var(--burgundy); font-weight: 700;
    background: rgba(247,240,230,.85); padding: .2rem .6rem;
  }
  .wc-fw-rest  { top: 4%; left: -6%; }
  .wc-fw-speak { top: 4%; right: -6%; }
  .wc-fw-heal  { bottom: 4%; left: -6%; }
  .wc-fw-rise  { bottom: 4%; right: -6%; }

  /* ── WHAT IT IS ── */
  .wc-what { background: var(--cream); }
  .wc-what-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
  .wc-what-body { font-size: 1rem; line-height: 1.9; color: #5a4040; }
  .wc-what-body p + p { margin-top: 1rem; }
  .wc-what-card {
    background: var(--deep-burgundy); padding: 3.5rem;
    position: relative; overflow: hidden;
    border-left: 4px solid var(--gold);
  }
  .wc-what-card::before {
    content: '';
    position: absolute; top: -50px; right: -50px;
    width: 180px; height: 180px;
    border: 2px solid rgba(201,168,76,.15); border-radius: 50%;
  }
  .wc-what-card-eyebrow {
    font-family: 'Barlow Condensed', sans-serif; font-size: .65rem;
    letter-spacing: .5em; color: var(--gold); text-transform: uppercase;
    margin-bottom: 1rem;
  }
  .wc-what-card blockquote {
    font-family: 'Playfair Display', serif; font-size: 1.3rem;
    font-style: italic; color: #fff; line-height: 1.6;
    margin-bottom: 2rem;
  }
  .wc-what-card-tags { display: flex; flex-direction: column; gap: .7rem; }
  .wc-tag-item {
    display: flex; align-items: center; gap: .8rem;
    font-family: 'Barlow Condensed', sans-serif; font-size: .85rem;
    letter-spacing: .12em; text-transform: uppercase;
    color: rgba(247,240,230,.65);
  }
  .wc-tag-item svg { width: 16px; height: 16px; stroke: var(--gold); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }

  /* ── WHAT HAPPENS ── */
  .wc-format { background: var(--warm-white); }
  .wc-format-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5px; background: rgba(107,30,46,.1); margin-top: 3rem; }
  .wc-format-card {
    background: var(--warm-white); padding: 2.8rem 2.2rem;
    position: relative; overflow: hidden; transition: all .3s;
  }
  .wc-format-card:hover { background: var(--deep-burgundy); transform: translateY(-4px); z-index: 2; box-shadow: 0 20px 50px rgba(74,18,32,.2); }
  .wc-format-card:hover .wc-fc-num,
  .wc-format-card:hover .wc-fc-title,
  .wc-format-card:hover .wc-fc-body { color: rgba(247,240,230,.9); }
  .wc-format-card:hover .wc-fc-num { color: var(--gold); }
  .wc-fc-num {
    font-family: 'Barlow Condensed', sans-serif; font-size: 3.5rem; font-weight: 800;
    color: rgba(107,30,46,.12); line-height: 1;
    margin-bottom: .5rem; transition: color .3s;
  }
  .wc-fc-title {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.15rem;
    letter-spacing: .06em; text-transform: uppercase; color: var(--deep-burgundy);
    margin-bottom: .7rem; transition: color .3s;
  }
  .wc-fc-body { font-size: .9rem; line-height: 1.75; color: #6a5050; transition: color .3s; }

  /* ── DETAILS PANEL ── */
  .wc-details { background: var(--deep-burgundy); }
  .wc-details-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
  .wc-details-list { display: flex; flex-direction: column; gap: 0; margin-top: 2rem; }
  .wc-detail-row {
    display: flex; align-items: flex-start; gap: 1.2rem;
    padding: 1.5rem 0; border-bottom: 1px solid rgba(201,168,76,.12);
  }
  .wc-detail-row:first-child { border-top: 1px solid rgba(201,168,76,.12); }
  .wc-detail-icon {
    width: 44px; height: 44px; flex-shrink: 0;
    background: rgba(201,168,76,.12);
    display: flex; align-items: center; justify-content: center;
  }
  .wc-detail-icon svg { width: 20px; height: 20px; stroke: var(--gold); fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  .wc-detail-label { font-family: 'Barlow Condensed', sans-serif; font-size: .62rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gold); margin-bottom: .25rem; }
  .wc-detail-val { font-size: .95rem; color: rgba(247,240,230,.85); line-height: 1.5; }

  .wc-waitlist-form-box {
    background: rgba(255,255,255,.04); border: 1px solid rgba(201,168,76,.2);
    padding: 3rem;
  }
  .wc-waitlist-form-box h3 {
    font-family: 'Playfair Display', serif; font-weight: 900;
    font-size: 1.6rem; text-transform: uppercase;
    color: #fff; margin-bottom: .6rem;
  }
  .wc-waitlist-form-box p {
    font-size: .9rem; color: rgba(247,240,230,.55); line-height: 1.7; margin-bottom: 2rem;
  }
  .wc-form-group { display: flex; flex-direction: column; gap: .8rem; }
  .wc-form-group input,
  .wc-form-group select {
    padding: .9rem 1rem;
    background: rgba(255,255,255,.07); border: 1.5px solid rgba(255,255,255,.15);
    color: #fff; font-family: 'Barlow', sans-serif; font-size: .9rem; outline: none;
    transition: border-color .2s;
    -webkit-appearance: none;
  }
  .wc-form-group input::placeholder { color: rgba(255,255,255,.35); }
  .wc-form-group input:focus,
  .wc-form-group select:focus { border-color: var(--gold); }
  .wc-form-group select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C9A84C' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 1rem center;
    padding-right: 2.5rem;
  }
  .wc-form-group select option { background: var(--deep-burgundy); color: #fff; }

  /* ── WHY JOIN ── */
  .wc-why { background: var(--soft-pink); }
  .wc-why-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 3rem; }
  .wc-why-item {
    background: #fff; padding: 2rem 1.8rem;
    border-top: 3px solid transparent;
    transition: border-color .3s, transform .3s;
  }
  .wc-why-item:hover { border-top-color: var(--coral); transform: translateY(-4px); }
  .wc-why-item-icon { width: 40px; height: 40px; margin-bottom: 1rem; }
  .wc-why-item-icon svg { width: 100%; height: 100%; stroke: var(--coral); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  .wc-why-item-title { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.05rem; letter-spacing: .06em; text-transform: uppercase; color: var(--deep-burgundy); margin-bottom: .5rem; }
  .wc-why-item-body { font-size: .9rem; line-height: 1.7; color: #6a5050; }

  @media (max-width: 960px) {
    .wc-hero-inner { grid-template-columns: 1fr; gap: 3rem; }
    .wc-what-grid { grid-template-columns: 1fr; }
    .wc-details-inner { grid-template-columns: 1fr; }
    .wc-format-grid { grid-template-columns: 1fr 1fr; }
    .wc-ring-outer { width: 260px; height: 260px; }
  }
  @media (max-width: 640px) {
    .wc-format-grid { grid-template-columns: 1fr; }
    .wc-why-grid { grid-template-columns: 1fr; }
    .wc-hero-ctas { flex-direction: column; }
    .wc-hero-ctas .btn { justify-content: center; }
    .wc-fw-rest  { top: 4%; left: 4%; }
    .wc-fw-speak { top: 4%; right: 4%; }
    .wc-fw-heal  { bottom: 4%; left: 4%; }
    .wc-fw-rise  { bottom: 4%; right: 4%; }
    .wc-ring-outer { width: 220px; height: 220px; }
  }

/* ============================================================
   SHARED COMPONENTS — CTA strips, mission card, lead text
   ============================================================ */

/* CTA strip (dark banner with radial-gradient glow) */
.cta-strip {
  background: var(--deep-burgundy);
  padding: 5rem 2rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-strip-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 50%, rgba(212,97,74,.18) 0%, transparent 70%);
}
.cta-strip-overlay.alt {
  background: radial-gradient(ellipse at 50% 50%, rgba(212,97,74,.15) 0%, transparent 70%);
}
.cta-strip-overlay.tight {
  background: radial-gradient(ellipse at 50% 50%, rgba(212,97,74,.18) 0%, transparent 65%);
}
.cta-strip-content {
  position: relative;
  z-index: 1;
}
.cta-strip-title {
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 3rem);
  color: #fff;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.cta-strip-title.sm {
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
}
.cta-strip-em {
  font-style: italic;
  color: var(--gold-light);
}
.cta-strip-text {
  font-size: .95rem;
  color: rgba(247,240,230,.6);
  margin: 0 auto 2.5rem;
  line-height: 1.8;
}

/* Lead / intro paragraph */
.lead-text {
  font-size: .95rem;
  line-height: 1.8;
}
.lead-text.tall { line-height: 1.85; }
.text-burgundy-soft { color: #5a3030; }
.text-burgundy-soft.alt { color: #5a4040; }
.text-cream-60 { color: rgba(247,240,230,.6); }
.text-cream-55 { color: rgba(247,240,230,.55); }
.mb-3 { margin-bottom: 2rem; }
.mb-4 { margin-bottom: 2.5rem; }
.mb-5 { margin-bottom: 3rem; }

/* Button row */
.btn-row {
  margin-top: 2rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

/* Decorative "mission" / brand card */
.mission-card {
  background: var(--deep-burgundy);
  padding: 3rem;
  position: relative;
  overflow: hidden;
}
.mission-card-deco-top {
  position: absolute; top: -30px; right: -30px;
  width: 140px; height: 140px;
  border: 2px solid var(--gold); border-radius: 50%; opacity: .2;
}
.mission-card-deco-bottom {
  position: absolute; bottom: -20px; left: -20px;
  width: 90px; height: 90px;
  background: var(--coral); opacity: .12; border-radius: 50%;
}
.eyebrow-gold-sm {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .62rem; letter-spacing: .5em; color: var(--gold);
  text-transform: uppercase; margin-bottom: 1rem;
}
.mission-quote {
  font-family: 'Playfair Display', serif;
  font-size: 1.4rem; font-style: italic; color: #fff;
  line-height: 1.55; margin-bottom: 2rem;
}
.mission-stats-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 1rem;
}
.mission-stat {
  border-top: 1px solid rgba(201,168,76,.3); padding-top: 1rem;
}
.mission-stat-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 2.5rem; font-weight: 800; color: var(--gold); line-height: 1;
}
.mission-stat-label {
  font-size: .78rem; color: rgba(247,240,230,.5);
  text-transform: uppercase; letter-spacing: .1em; margin-top: .3rem;
}

/* ============================================================
   SHARED COMPONENTS — forms & labels
   ============================================================ */
.section-pad-5 { padding: 5rem 2rem; }
.label-gold-soft { color: rgba(201,168,76,.8); }
.title-sm-light { font-size: clamp(1.8rem,3.5vw,2.8rem); color: #fff; }

.btn-sm { font-size: .7rem; padding: .75rem 1.4rem; }

.consent-label {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  font-size: .85rem;
  color: var(--mid-brown);
  cursor: pointer;
  line-height: 1.5;
}
.consent-checkbox {
  margin-top: .15rem;
  accent-color: var(--burgundy);
  flex-shrink: 0;
}
.btn-start-mt {
  align-self: flex-start;
  margin-top: .5rem;
}

/* ============================================================
   SHARED COMPONENTS — events list sections
   ============================================================ */
.section-warm-pad { background: var(--warm-white); padding: 5rem 2rem; }
.section-cream-pad-center { background: var(--cream); padding: 5rem 2rem; text-align: center; }
.section-header-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: .5rem;
}
.max-w-660.center-block { margin: 0 auto; }

.event-meta-item.muted { color: var(--mid-brown); }
.event-meta-item.muted svg { stroke: var(--mid-brown); }

.event-tag-muted {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .68rem; letter-spacing: .15em; text-transform: uppercase;
  color: var(--mid-brown);
  background: rgba(107,30,46,.06);
  padding: .4rem .8rem;
  border: 1px solid rgba(107,30,46,.12);
}

.event-thumb-placeholder.grad-1 { background: linear-gradient(135deg,#1a0a10,#4a1822); }
.event-thumb-placeholder.grad-2 { background: linear-gradient(135deg,#250d14,#4a1220); }
.event-thumb-placeholder.grad-3 { background: linear-gradient(135deg,#0d0508,#3d1220); }
.event-thumb-placeholder.grad-4 { background: linear-gradient(135deg,#2e1018,#6b1e2e); }

/* ============================================================
   SHARED COMPONENTS — buttons & signup form variants
   ============================================================ */
.btn-xs { font-size: .68rem; padding: .65rem 1.2rem; }
.signup-form.narrow { max-width: 460px; }
.signup-form.narrow button { padding: 1rem 1.4rem; }

/* ============================================================
   INDEX PAGE — component classes
   ============================================================ */
.hero-bg-6  { background-image: url('/hero/6.jpeg'); }
.hero-bg-7  { background-image: url('/hero/7.jpeg'); }
.hero-bg-8  { background-image: url('/hero/8.jpeg'); }
.hero-bg-9  { background-image: url('/hero/9.jpeg'); }
.hero-bg-10 { background-image: url('/hero/10.jpeg'); }

.welcome-card-body { font-size: .9rem; line-height: 1.7; color: rgba(247,240,230,.65); }
.runfest-body-text { font-size: .95rem; line-height: 1.8; color: rgba(247,240,230,.7); margin-bottom: 2rem; }
.cta-row-left {
  margin-top: 2.5rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.community-promise-box {
  background: rgba(201,168,76,.12);
  border: 1px solid rgba(201,168,76,.25);
  padding: 1.5rem;
  text-align: center;
}
.promise-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .7rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold); margin-bottom: .5rem;
}
.promise-quote { font-size: .9rem; color: rgba(247,240,230,.7); font-style: italic; }

.circle-body-text { font-size: .95rem; line-height: 1.8; color: #5a3030; margin-bottom: 1rem; }
.text-coral { color: var(--coral); }

.volunteer-promise-box {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  padding: 2.5rem;
  text-align: center;
}
.icon-center-mb { display: flex; justify-content: center; margin-bottom: 1rem; }
.promise-quote-light {
  font-family: 'Playfair Display', serif;
  font-style: italic; font-size: 1.1rem;
  color: rgba(247,240,230,.9); line-height: 1.5; margin-bottom: 1.5rem;
}
.promise-footnote { font-size: .85rem; color: rgba(247,240,230,.45); line-height: 1.7; }

.mb-6 { margin-bottom: 3.5rem; }

/* ============================================================
   PARTNER PAGE — promise card
   ============================================================ */
.promise-card {
  background: var(--deep-burgundy);
  padding: 3.5rem;
  border-left: 4px solid var(--gold);
  position: relative;
  overflow: hidden;
}
.promise-card-deco {
  position: absolute; top: -40px; right: -40px;
  width: 150px; height: 150px;
  border: 2px solid rgba(201,168,76,.15); border-radius: 50%;
}
.promise-card-quote {
  font-family: 'Playfair Display', serif;
  font-size: 1.25rem; font-style: italic; color: #fff;
  line-height: 1.6; margin-bottom: 2rem;
}
.promise-card-signature {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .65rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gold);
}
.promise-card-list {
  margin-top: 2.5rem; padding-top: 1.5rem;
  border-top: 1px solid rgba(201,168,76,.15);
  display: flex; flex-direction: column; gap: .7rem;
}
.promise-card-item {
  display: flex; align-items: center; gap: .8rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .82rem; letter-spacing: .1em; text-transform: uppercase;
  color: rgba(247,240,230,.65);
}

/* ============================================================
   RUNFEST PAGE — registration box & CTA band
   ============================================================ */
.mb-0 { margin-bottom: 0; }

.event-poster-frame {
  margin-bottom: 1.5rem;
  overflow: hidden;
  border: 1px solid rgba(201,168,76,.25);
  position: relative;
}
.event-poster-frame img {
  width: 100%;
  display: block;
  object-fit: cover;
  transition: transform .5s ease;
}

.btn-full { width: 100%; justify-content: center; }
.btn-full.boxed { box-sizing: border-box; margin-top: .75rem; }

.role-row {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  margin-top: .75rem;
}
.btn-flex-sm {
  flex: 1;
  justify-content: center;
  font-size: .7rem;
  padding: .8rem 1rem;
  box-sizing: border-box;
}

.history-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: start;
}

.rf-tl-dot.active { border-color: var(--gold); background: rgba(201,168,76,.15); }
.rf-tl-year.active,
.rf-tl-title.active { color: var(--gold-light); }

.cta-band-content { position: relative; z-index: 1; }
.label-white-mb { color: #fff; margin-bottom: 1rem; }
.cta-band-title {
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 3.2rem);
  color: #fff;
  text-transform: uppercase;
  margin-bottom: 1rem;
  line-height: 1.1;
}
.cta-band-em { font-style: italic; color: rgba(255,255,255,.8); }
.cta-band-text {
  font-size: .95rem;
  color: rgba(255,255,255,.75);
  line-height: 1.8;
  margin-bottom: 2.5rem;
}

/* ============================================================
   SHOP PAGE — closing CTA
   ============================================================ */
.shop-cta-section {
  background: linear-gradient(135deg, var(--deep-burgundy) 0%, var(--burgundy) 50%, var(--coral) 100%);
  padding: 5rem 2rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.shop-cta-border {
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(255,255,255,.12);
  pointer-events: none;
}
.label-cream-60 { color: rgba(255,255,255,.6); }
.shop-cta-text {
  font-size: .95rem;
  color: rgba(255,255,255,.7);
  line-height: 1.85;
  margin-bottom: 2.5rem;
}
.signup-form.xs { max-width: 400px; }
.signup-form.xs input[type="email"] { background: rgba(255,255,255,.15); }
.signup-form.xs button {
  background: var(--black);
  color: var(--gold);
  padding: 1rem 1.3rem;
  font-size: .72rem;
}

/* ============================================================
   VOLUNTEER PAGE — next opportunity box
   ============================================================ */
.mb-md { margin-bottom: 1rem; }
.text-cream-75 { color: rgba(247,240,230,.75); }

.next-opportunity-box {
  margin-top: 2rem;
  background: var(--soft-pink);
  padding: 2.5rem;
}
.next-opp-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .62rem; letter-spacing: .4em; text-transform: uppercase;
  color: var(--coral); margin-bottom: 1.2rem;
}
.next-opp-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.6rem; font-weight: 900; color: var(--deep-burgundy); margin-bottom: .4rem;
}
.next-opp-desc { font-size: .9rem; color: var(--mid-brown); margin-bottom: 1.5rem; }

.cta-strip-text.tall { line-height: 1.85; }
