/* ===========================================================
   Jessica O'Neal-Slisz for Missouri — "Warm Rural Missouri"
   Static site stylesheet
   Palette: deep pine green · wheat gold · cream · barn red
   =========================================================== */

:root {
  --green-900: #1c2f22;
  --green-800: #243d2b;
  --green-700: #2f4a33;
  --green-600: #3b5a40;
  --green-500: #4d6e52;
  --gold:      #c8932f;
  --gold-600:  #b07e22;
  --gold-300:  #e6c87e;
  --cream:     #faf6ea;
  --cream-2:   #f2e9d4;
  --cream-3:   #ece0c6;
  --barn:      #9a3b2c;
  --barn-600:  #84301f;
  --ink:       #24211b;
  --ink-soft:  #4a463c;
  --line:      #ddd0b4;
  --white:     #ffffff;
  --navy:      #1c3a63;
  --blue:      #2f5d97;
  --blue-300:  #9cc0e6;
  --blue-100:  #dce8f6;

  --maxw: 1180px;
  --radius: 14px;
  --radius-lg: 22px;
  --shadow-sm: 0 2px 10px rgba(28, 47, 34, .08);
  --shadow:    0 12px 34px rgba(28, 47, 34, .14);
  --shadow-lg: 0 26px 60px rgba(28, 47, 34, .22);

  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.65;
  font-size: 18px;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: var(--green-700); text-decoration: none; transition: color .18s ease; }
a:hover { color: var(--barn); }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.12;
  color: var(--green-900);
  margin: 0 0 .5em;
  letter-spacing: -.01em;
}
h1 { font-size: clamp(2.3rem, 5.2vw, 4rem); font-weight: 650; }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.85rem); }
h3 { font-size: 1.35rem; }
p  { margin: 0 0 1.1em; }

/* ---------- Layout helpers ---------- */
.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: 24px; }
.section { padding: 86px 0; }
.section--tight { padding: 60px 0; }
.center { text-align: center; }
.eyebrow {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-weight: 700;
  font-size: .82rem;
  color: var(--gold-600);
  margin: 0 0 .9rem;
  display: inline-block;
}
.lead { font-size: 1.22rem; color: var(--ink-soft); }
.measure { max-width: 720px; }
.measure-center { max-width: 760px; margin-inline: auto; }

/* ---------- Buttons ---------- */
.btn {
  --bg: var(--green-700); --fg: #fff; --bd: transparent;
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--font-body); font-weight: 700;
  font-size: 1.02rem; line-height: 1;
  padding: .92rem 1.6rem; border-radius: 999px;
  background: var(--bg); color: var(--fg);
  border: 2px solid var(--bd);
  cursor: pointer; transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
  box-shadow: var(--shadow-sm);
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow); color: var(--fg); }
.btn--donate { --bg: var(--barn); }
.btn--donate:hover { background: var(--barn-600); }
.btn--gold { --bg: var(--gold); --fg: var(--green-900); }
.btn--gold:hover { background: var(--gold-300); }
.btn--ghost { --bg: transparent; --fg: var(--green-800); --bd: var(--green-600); box-shadow: none; }
.btn--ghost:hover { background: var(--green-700); --fg: #fff; }
.btn--light { --bg: rgba(255,255,255,.12); --fg: #fff; --bd: rgba(255,255,255,.6); box-shadow: none; backdrop-filter: blur(4px); }
.btn--light:hover { background: #fff; --fg: var(--green-900); }
.btn--lg { font-size: 1.1rem; padding: 1.05rem 2rem; }
.btn svg { width: 18px; height: 18px; }

/* ---------- Header ---------- */
.topbar {
  background: var(--green-900); color: var(--cream-2);
  font-size: .86rem; letter-spacing: .02em;
}
.topbar .container { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-block: 8px; }
.topbar a { color: var(--cream-2); }
.topbar a:hover { color: var(--gold-300); }
.topbar__social { display: flex; gap: 16px; align-items: center; }
.topbar__social svg { width: 16px; height: 16px; vertical-align: middle; }

.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(250, 246, 234, .92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.site-header .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 12px; }
.brand { display: flex; align-items: center; gap: 14px; }
.brand img { width: 52px; height: 52px; object-fit: contain; }
.brand__name { font-family: var(--font-display); font-weight: 650; font-size: 1.18rem; color: var(--green-900); line-height: 1.05; }
.brand__name span { display: block; font-family: var(--font-body); font-weight: 600; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-600); }

.nav { display: flex; align-items: center; gap: 4px; }
.nav a {
  font-weight: 600; color: var(--green-800);
  padding: .55rem .85rem; border-radius: 8px; font-size: 1rem;
}
.nav a:hover { background: var(--cream-2); color: var(--green-900); }
.nav a.is-active { color: var(--barn); }
.nav a.is-active::after { content: ""; display: block; height: 2px; background: var(--barn); margin-top: 3px; border-radius: 2px; }
.header-cta { display: flex; align-items: center; gap: 10px; }

.nav-toggle {
  display: none; background: none; border: 0; cursor: pointer;
  padding: 8px; border-radius: 8px;
}
.nav-toggle svg { width: 28px; height: 28px; stroke: var(--green-900); }

/* ---------- Hero ---------- */
.hero { position: relative; color: #fff; overflow: hidden; }
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero__bg::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(105deg, rgba(20,38,27,.94) 0%, rgba(28,47,34,.86) 42%, rgba(28,47,34,.45) 100%),
    linear-gradient(0deg, rgba(20,38,27,.55), rgba(20,38,27,.05));
}
.hero__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center;
  padding: 96px 0 104px;
}
.hero h1 { color: #fff; max-width: 14ch; }
.hero__sub { font-size: 1.28rem; color: #f3ead2; max-width: 46ch; margin-bottom: 1.8rem; }
.hero__tag {
  display: inline-flex; align-items: center; gap: .55rem;
  font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: .82rem;
  color: var(--gold-300); margin-bottom: 1.2rem;
}
.hero__tag::before { content: ""; width: 34px; height: 2px; background: var(--gold); display: inline-block; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 14px; }
.hero__portrait {
  justify-self: center; position: relative;
}
.hero__portrait img {
  width: min(360px, 80vw); aspect-ratio: 3/3.4; object-fit: cover; object-position: top center;
  border-radius: 220px 220px 18px 18px;
  border: 6px solid rgba(255,255,255,.85);
  box-shadow: var(--shadow-lg);
}
.hero__portrait::after {
  content: ""; position: absolute; inset: -16px -16px 22px 18px; z-index: -1;
  border: 2px solid var(--gold); border-radius: 220px 220px 18px 18px; opacity: .55;
}

/* ---------- Intro / Voice ---------- */
.voice { background: var(--cream); }
.voice__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: center; }
.voice__media { position: relative; }
.voice__media img { border-radius: var(--radius-lg); box-shadow: var(--shadow); width: 100%; height: 420px; object-fit: cover; }
.voice__badge {
  position: absolute; left: -18px; bottom: -18px;
  background: var(--gold); color: var(--green-900);
  font-family: var(--font-display); font-weight: 600;
  padding: 14px 20px; border-radius: 14px; box-shadow: var(--shadow);
  line-height: 1.1;
}
.voice__badge strong { display: block; font-size: 1.5rem; }
.voice__badge span { font-family: var(--font-body); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.pill-list { list-style: none; margin: 1.4rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.pill-list li {
  background: var(--white); border: 1px solid var(--line); color: var(--green-800);
  padding: .5rem 1rem; border-radius: 999px; font-weight: 600; font-size: .98rem;
  box-shadow: var(--shadow-sm);
}

/* ---------- Section headers ---------- */
.section-head { max-width: 760px; margin: 0 auto 56px; text-align: center; }

/* ---------- Issues grid ---------- */
.issues { background: var(--green-900); color: var(--cream); position: relative; }
.issues::before {
  content: ""; position: absolute; inset: 0; opacity: .07; pointer-events: none;
  background-image: radial-gradient(var(--gold-300) 1px, transparent 1px);
  background-size: 26px 26px;
}
.issues .eyebrow { color: var(--gold-300); }
.issues h2 { color: #fff; }
.issues .section-head p { color: #e7dcc2; }
.issue-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; position: relative; }
.issue-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(230, 200, 126, .22);
  border-radius: var(--radius); padding: 30px 26px;
  transition: transform .18s ease, background .2s ease, border-color .2s ease;
}
.issue-card:hover { transform: translateY(-4px); background: rgba(255,255,255,.07); border-color: var(--gold); }
.issue-card__icon {
  width: 50px; height: 50px; border-radius: 12px;
  display: grid; place-items: center; margin-bottom: 16px;
  background: linear-gradient(150deg, var(--gold), var(--gold-600));
  color: var(--green-900);
}
.issue-card__icon svg { width: 26px; height: 26px; }
.issue-card h3 { color: #fff; margin-bottom: .5rem; }
.issue-card p { color: #ddd2ba; font-size: 1rem; margin: 0; }

/* ---------- Issues (detailed page) ---------- */
.issue-list { display: grid; gap: 28px; max-width: 920px; margin-inline: auto; }
.issue-row {
  display: grid; grid-template-columns: 84px 1fr; gap: 26px; align-items: start;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow-sm);
  border-left: 6px solid var(--gold);
}
.issue-row__icon { width: 64px; height: 64px; border-radius: 16px; display: grid; place-items: center; background: var(--cream-2); color: var(--green-700); }
.issue-row__icon svg { width: 34px; height: 34px; }
.issue-row h3 { color: var(--green-900); }
.issue-row p { margin-bottom: 0; color: var(--ink-soft); }

/* ---------- About ---------- */
.about-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 56px; align-items: start; }
.about-photo { position: relative; }
.about-photo img { border-radius: var(--radius-lg); box-shadow: var(--shadow); width: 100%; }
.about-photo__frame { position: absolute; inset: 16px -16px -16px 16px; z-index: -1; border-radius: var(--radius-lg); background: var(--cream-2); border: 2px solid var(--gold); }
.prose p { font-size: 1.12rem; }
.prose p:first-of-type::first-letter {
  font-family: var(--font-display); font-size: 3.4rem; line-height: .8;
  float: left; margin: .08em .12em 0 0; color: var(--barn); font-weight: 650;
}
.fact-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 18px; }
.fact { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; text-align: center; box-shadow: var(--shadow-sm); }
.fact strong { font-family: var(--font-display); display: block; font-size: 1.05rem; color: var(--green-900); }
.fact span { font-size: .9rem; color: var(--ink-soft); }

/* ---------- District / map band ---------- */
.district { background: var(--cream-2); }
.district__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.district__grid img { border-radius: var(--radius); border: 1px solid var(--line); box-shadow: var(--shadow-sm); width: 100%; }

/* ---------- Get involved cards ---------- */
.action-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; max-width: 940px; margin-inline: auto; }
.action-card {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 34px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column;
  transition: transform .18s ease, box-shadow .2s ease;
}
.action-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.action-card__icon { width: 56px; height: 56px; border-radius: 14px; background: var(--cream-2); color: var(--green-700); display: grid; place-items: center; margin-bottom: 18px; }
.action-card__icon svg { width: 30px; height: 30px; }
.action-card h3 { margin-bottom: .35rem; }
.action-card p { color: var(--ink-soft); flex: 1; }
.action-card .btn { align-self: flex-start; margin-top: 8px; }

/* ---------- CTA band ---------- */
.cta-band { position: relative; color: #fff; text-align: center; overflow: hidden; }
.cta-band__bg { position: absolute; inset: 0; z-index: 0; }
.cta-band__bg img { width: 100%; height: 100%; object-fit: cover; }
.cta-band__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20,38,27,.92), rgba(28,47,34,.82)); }
.cta-band .container { position: relative; z-index: 1; padding-block: 90px; }
.cta-band h2 { color: #fff; }
.cta-band p { color: #ece1c8; font-size: 1.2rem; max-width: 60ch; margin-inline: auto; }
.cta-band .hero__cta { justify-content: center; margin-top: 1.6rem; }

/* ---------- Events ---------- */
.events-empty {
  max-width: 640px; margin: 0 auto; text-align: center;
  background: var(--white); border: 1px dashed var(--line); border-radius: var(--radius-lg);
  padding: 56px 32px; box-shadow: var(--shadow-sm);
}
.events-empty__icon { width: 72px; height: 72px; margin: 0 auto 18px; border-radius: 50%; background: var(--cream-2); color: var(--green-700); display: grid; place-items: center; }
.events-empty__icon svg { width: 38px; height: 38px; }
.filter-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 36px; }
.chip { background: var(--white); border: 1px solid var(--line); border-radius: 999px; padding: .5rem 1.1rem; font-weight: 600; font-size: .92rem; color: var(--green-800); }

/* ---------- Legal pages ---------- */
.legal { max-width: 800px; margin-inline: auto; }
.legal h2 { font-size: 1.5rem; margin-top: 2rem; }
.legal p, .legal li { color: var(--ink-soft); }

/* ---------- Footer ---------- */
.site-footer { background: var(--green-900); color: #d9d0bb; padding-top: 64px; position: relative; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; padding-bottom: 40px; }
.site-footer h4 { color: #fff; font-family: var(--font-body); font-weight: 700; letter-spacing: .04em; font-size: .95rem; text-transform: uppercase; margin-bottom: 1rem; }
.site-footer a { color: #d9d0bb; }
.site-footer a:hover { color: var(--gold-300); }
.footer-brand { display: flex; gap: 14px; align-items: center; margin-bottom: 16px; }
.footer-brand img { width: 56px; height: 56px; }
.footer-brand strong { font-family: var(--font-display); font-size: 1.2rem; color: #fff; }
.footer-contact { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.footer-contact li { display: flex; gap: 10px; align-items: flex-start; }
.footer-contact svg { width: 18px; height: 18px; color: var(--gold-300); flex: none; margin-top: 3px; }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.footer-social { display: flex; gap: 12px; margin-top: 6px; }
.footer-social a { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); display: grid; place-items: center; }
.footer-social a:hover { background: var(--gold); border-color: var(--gold); }
.footer-social svg { width: 18px; height: 18px; color: #fff; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.14); padding: 22px 0 30px; font-size: .86rem; color: #b9b09a; }
.footer-bottom .container { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; align-items: center; }
.footer-bottom .container > span + span::before { content: "\00b7"; margin-right: 16px; color: #b9b09a; }
.footer-disclaimer { background: rgba(0,0,0,.22); text-align: center; font-size: .82rem; color: #c9c0aa; padding: 14px; }
.footer-credit { color: #b9b09a; }
.footer-credit strong { color: var(--gold-300); font-weight: 600; }

/* ---------- Reveal animation ---------- */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  .hero__inner { grid-template-columns: 1fr; gap: 36px; padding: 70px 0 80px; }
  .hero__portrait { order: -1; }
  .hero__portrait img { width: min(280px, 70vw); }
  .voice__grid, .about-grid, .district__grid { grid-template-columns: 1fr; gap: 36px; }
  .voice__media img { height: 320px; }
  .issue-grid { grid-template-columns: repeat(2, 1fr); }
  .fact-strip { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  body { font-size: 17px; }
  .section { padding: 64px 0; }
  .topbar { display: none; }
  .nav, .header-cta .btn--ghost { display: none; }
  .nav-toggle { display: inline-flex; }
  .site-header.open .nav {
    display: flex; flex-direction: column; align-items: stretch;
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--cream); border-bottom: 1px solid var(--line);
    padding: 12px 24px 20px; gap: 4px; box-shadow: var(--shadow);
  }
  .site-header.open .nav a { padding: .8rem .6rem; border-bottom: 1px solid var(--line); }
  .issue-grid { grid-template-columns: 1fr; }
  .action-grid { grid-template-columns: 1fr; }
  .issue-row { grid-template-columns: 1fr; }
  .issue-row__icon { width: 54px; height: 54px; }
  .fact-strip { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .voice__badge { left: 0; }
}

/* ===========================================================
   REVAMP — slogans, ticker, values, Kingdom of Callaway, stats
   =========================================================== */

/* Brand slogan lockup */
.brand__name em { display:block; font-family:var(--font-body); font-style:normal; font-weight:700; font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; color:var(--green-600); margin-top:2px; }

/* Slogan ticker strip */
.slogan-strip { background:var(--gold); color:var(--green-900); overflow:hidden; border-top:1px solid var(--gold-600); border-bottom:3px solid var(--gold-600); }
.marquee { display:flex; width:max-content; white-space:nowrap; will-change:transform; animation:marquee 40s linear infinite; }
.slogan-strip:hover .marquee { animation-play-state:paused; }
.marquee span { font-family:var(--font-display); font-weight:600; font-size:1.02rem; letter-spacing:.02em; padding:.55rem 0; display:inline-flex; align-items:center; }
.marquee span b { font-weight:600; padding:0 1.15rem; }
.marquee .star { color:var(--barn); font-size:.7rem; transform:translateY(-1px); }
@keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee { animation:none; } }

/* Hero slogan emphasis */
.hero h1 .work { color:var(--gold-300); position:relative; white-space:nowrap; }
.hero h1 .work::after { content:""; position:absolute; left:0; right:0; bottom:.02em; height:.13em; background:var(--gold); opacity:.65; border-radius:3px; }
.hero__slogan { display:inline-flex; align-items:center; gap:.6rem; margin-bottom:1.5rem; font-family:var(--font-display); font-weight:600; color:#fff; font-size:1.05rem; }
.hero__slogan::before, .hero__slogan::after { content:""; width:26px; height:2px; background:var(--gold); }

/* Values band */
.values { background:var(--cream-2); }
.values__grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.value-card { background:var(--white); border:1px solid var(--line); border-left:6px solid var(--gold); border-radius:var(--radius-lg); padding:32px 34px; box-shadow:var(--shadow-sm); transition:transform .18s ease, box-shadow .2s ease; }
.value-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.value-card__tag { font-family:var(--font-display); font-size:1.6rem; color:var(--green-900); margin-bottom:.5rem; display:flex; align-items:center; gap:.6rem; }
.value-card__tag svg { width:30px; height:30px; color:var(--gold-600); }
.value-card p { margin:0; color:var(--ink-soft); }

/* Identity / stat band */
.stat-band { background:var(--green-800); color:var(--cream); position:relative; }
.stat-band::before { content:""; position:absolute; inset:0; opacity:.06; background-image:radial-gradient(var(--gold-300) 1px, transparent 1px); background-size:24px 24px; }
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; text-align:center; position:relative; }
.stat { padding:10px; }
.stat strong { font-family:var(--font-display); font-size:2.4rem; display:block; color:var(--gold-300); line-height:1; }
.stat span { font-size:.92rem; color:#d9d0bb; letter-spacing:.03em; }

/* Who makes Missouri work — chips */
.work-chips { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:6px; }
.work-chips span { background:rgba(255,255,255,.06); border:1px solid rgba(230,200,126,.3); color:#fff; padding:.55rem 1.15rem; border-radius:999px; font-weight:600; font-size:1rem; }

/* Kingdom of Callaway / district section */
.homeroots { background:var(--cream); }
.homeroots__grid { display:grid; grid-template-columns:1.05fr .95fr; gap:54px; align-items:center; }
.homeroots__media { position:relative; }
.homeroots__media img { width:100%; border-radius:var(--radius-lg); box-shadow:var(--shadow); border:1px solid var(--line); }
.homeroots__tag { position:absolute; top:16px; left:16px; background:var(--barn); color:#fff; font-family:var(--font-display); font-weight:600; padding:8px 16px; border-radius:999px; box-shadow:var(--shadow-sm); font-size:.95rem; }
.town-tags { list-style:none; padding:0; margin:1.4rem 0 0; display:flex; flex-wrap:wrap; gap:10px; }
.town-tags li { background:var(--white); border:1px solid var(--line); color:var(--green-800); padding:.45rem .95rem; border-radius:8px; font-weight:600; font-size:.95rem; box-shadow:var(--shadow-sm); }

/* Wheat divider */
.divider { height:7px; background:repeating-linear-gradient(90deg, var(--gold) 0 18px, var(--gold-600) 18px 22px); opacity:.9; }

/* Slogan pull band */
.slogan-band { background:var(--green-900); color:#fff; text-align:center; position:relative; overflow:hidden; }
.slogan-band p { font-family:var(--font-display); font-weight:600; font-size:clamp(1.7rem,3.6vw,2.7rem); line-height:1.18; max-width:20ch; margin:0 auto; color:#fff; }
.slogan-band p .gold { color:var(--gold-300); }
.slogan-band small { display:block; margin-top:1.1rem; letter-spacing:.2em; text-transform:uppercase; font-family:var(--font-body); font-weight:700; font-size:.82rem; color:var(--gold); }

@media (max-width:880px) {
  .values__grid { grid-template-columns:1fr; }
  .stat-grid { grid-template-columns:repeat(2,1fr); gap:28px; }
  .homeroots__grid { grid-template-columns:1fr; gap:34px; }
}

/* ===========================================================
   Logo display + page reset (rural photo aesthetic)
   =========================================================== */
body { padding-left:0; background:var(--cream); }
.topnav__brand img { height:64px; width:auto; display:block; }
.footer-logo { height:66px; width:auto; display:block; filter:brightness(0) invert(1); }
@media (max-width:940px) { .topnav__brand img { height:52px; } }

/* (vertical nav rail removed — using top nav bar) */

/* (decorative grass, pollen, and cute motion removed) */

/* ===========================================================
   TikTok section
   =========================================================== */
.tiktok-section { background:var(--cream-2); }
.tiktok-wrap { background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px 26px 30px; box-shadow:var(--shadow-sm); max-width:880px; margin-inline:auto; }
.tiktok-embed { margin:0 auto !important; }
.tiktok-fallback { text-align:center; color:var(--ink-soft); padding:18px 0; }
.tiktok-fallback strong { color:var(--green-900); font-family:var(--font-display); }

/* ============================================================
   Top nav + ballot section (rural photo aesthetic)
   ============================================================ */

/* ---------- Top navigation bar ---------- */
.topnav { position:sticky; top:0; z-index:100; background:rgba(255,255,255,.82); backdrop-filter:blur(12px); border-bottom:1px solid rgba(255,255,255,.7); box-shadow:0 6px 22px rgba(28,47,34,.09); }
.topnav__inner { display:flex; align-items:center; gap:16px; padding:9px 0; }
.topnav__brand { display:flex; align-items:center; gap:12px; margin-right:auto; }
.topnav__brand .logo-badge { width:50px; height:50px; }
.topnav__name { font-family:var(--font-display); font-weight:650; color:var(--green-900); line-height:1.05; font-size:1.1rem; }
.topnav__name span { display:block; font-family:var(--font-body); font-weight:700; font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-600); }
.topnav__links { display:flex; align-items:center; gap:3px; }
.topnav__links > a { font-weight:600; color:var(--green-800); padding:.5rem .68rem; border-radius:10px; font-size:.98rem; white-space:nowrap; }
.topnav__links > a:hover { background:var(--cream-2); color:var(--green-900); }
.topnav__links a.is-active { color:var(--barn); }
.topnav__links a.is-active::after { content:""; display:block; height:2px; background:var(--barn); border-radius:2px; margin-top:2px; }
.topnav__social { display:flex; align-items:center; gap:5px; margin-left:6px; }
.topnav__social a { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; color:var(--green-700); border:1px solid var(--line); flex:none; transition:.18s ease; }
.topnav__social a:hover { background:var(--green-700); color:#fff; border-color:var(--green-700); transform:translateY(-1px); }
.topnav__social svg { width:16px; height:16px; }
.topnav .btn--donate { color:#fff; margin-left:8px; }
.nav-toggle { display:none; background:none; border:0; cursor:pointer; padding:8px; border-radius:8px; margin-left:auto; }
.nav-toggle svg { width:28px; height:28px; stroke:var(--green-900); }
@media (max-width:940px) {
  .nav-toggle { display:inline-flex; }
  .topnav__links { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:2px; background:rgba(255,255,255,.98); padding:12px 24px 18px; border-bottom:1px solid var(--line); box-shadow:var(--shadow); }
  .topnav.open .topnav__links { display:flex; }
  .topnav__links > a { padding:.85rem .6rem; border-bottom:1px solid var(--line); }
  .topnav__links a.is-active::after { display:none; }
  .topnav .btn--donate { align-self:flex-start; margin:10px 0 0; }
  .topnav__social { align-self:flex-start; margin:10px 0 0; }
}

/* (pastoral hero overrides removed — using the photo hero) */

/* sky: sun + clouds (unused) */
.hero__sky { position:absolute; inset:0; z-index:0; pointer-events:none; }
.sun { position:absolute; top:40px; right:7%; width:116px; height:116px; border-radius:50%; background:radial-gradient(circle, #fff7cf 0%, #ffdf86 52%, rgba(255,223,134,0) 70%); animation:sunpulse 7s ease-in-out infinite; }
@keyframes sunpulse { 0%,100% { transform:scale(1); opacity:.95; } 50% { transform:scale(1.07); opacity:1; } }
.cloud { position:absolute; height:24px; width:92px; background:#fff; border-radius:40px; opacity:.95; box-shadow:0 8px 18px rgba(80,120,150,.12); animation:drift linear infinite; }
.cloud::before, .cloud::after { content:""; position:absolute; background:#fff; border-radius:50%; }
.cloud::before { width:44px; height:44px; top:-19px; left:13px; }
.cloud::after { width:30px; height:30px; top:-11px; right:15px; }
.cloud--1 { top:12%; animation-duration:58s; }
.cloud--2 { top:24%; transform:scale(.7);  animation-duration:78s; animation-delay:-26s; opacity:.85; }
.cloud--3 { top:7%;  transform:scale(1.25); animation-duration:98s; animation-delay:-60s; opacity:.9; }
@keyframes drift { from { left:-180px; } to { left:calc(100vw + 200px); } }

/* hills + field of cows + grass tufts */
.hero__hills, .hero__field { position:absolute; left:0; right:0; bottom:0; height:240px; }
.hero__hills { z-index:1; }
.hero__hills svg { width:100%; height:100%; display:block; }
.hero__field { z-index:2; pointer-events:none; }
.cow { position:absolute; bottom:30px; width:120px; height:82px; filter:drop-shadow(0 6px 4px rgba(0,0,0,.12)); animation:cowbob 8s ease-in-out infinite; }
.cow svg { width:100%; height:100%; overflow:visible; }
.cow--flip svg { transform:scaleX(-1); }
.cow__head { transform-origin:28px 42px; animation:graze 5.5s ease-in-out infinite; }
@keyframes graze { 0%,40%,100% { transform:rotate(0); } 60%,85% { transform:rotate(13deg); } }
@keyframes cowbob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
.cow--a { left:5%;  width:130px; }
.cow--b { left:31%; width:94px; bottom:22px; animation-delay:-2.5s; }
.cow--c { right:13%; width:110px; animation-delay:-4.5s; }
.tuft { position:absolute; bottom:20px; width:62px; height:48px; }
.tuft svg { width:100%; height:100%; display:block; }
.tuft--a { left:19%; } .tuft--b { left:47%; width:48px; bottom:24px; } .tuft--c { right:5%; } .tuft--d { left:63%; width:74px; }

/* realistic layered grass silhouette (two parallax layers that gently sway) */
.grass { height:72px; z-index:6; }
.grass i { display:none; }
.grass::before, .grass::after { content:""; position:absolute; left:-3%; right:-3%; bottom:0; height:100%; background-repeat:repeat-x; background-position:bottom center; transform-origin:bottom center; will-change:transform; }
.grass::before { background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNDAgNjQnIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUnPjxyZWN0IHg9JzAnIHk9JzU4JyB3aWR0aD0nMjQwJyBoZWlnaHQ9JzYnIGZpbGw9JyMyZjVhMjYnLz48cGF0aCBmaWxsPScjM2M3NzMzJyBkPSdNLTMsNjQgUTEsNDUuOCAxMywzMSBRMSw0NS44IDUsNjQgWicvPjxwYXRoIGZpbGw9JyMyZjVhMjYnIGQ9J00xMSw2NCBRMTUsMzEgMTEsNCBRMTUsMzEgMTksNjQgWicvPjxwYXRoIGZpbGw9JyMzYzc3MzMnIGQ9J00xMi41LDY0IFExOCw0Mi42IDUsMjUgUTE4LDQyLjYgMjMuNSw2NCBaJy8+PHBhdGggZmlsbD0nIzJmNWEyNicgZD0nTTE4LDY0IFEyNCwzMi4xIDM0LDYgUTI0LDMyLjEgMzAsNjQgWicvPjxwYXRoIGZpbGw9JyMzYzc3MzMnIGQ9J00yOSw2NCBRMzUsMzIuNiAyNCw3IFEzNSwzMi42IDQxLDY0IFonLz48cGF0aCBmaWxsPScjM2M3NzMzJyBkPSdNMzkuNSw2NCBRNDMsMzkuOCA1MiwyMCBRNDMsMzkuOCA0Ni41LDY0IFonLz48cGF0aCBmaWxsPScjMzU2YTJjJyBkPSdNNDgsNjQgUTU0LDM2LjUgNTQsMTQgUTU0LDM2LjUgNjAsNjQgWicvPjxwYXRoIGZpbGw9JyMyZjVhMjYnIGQ9J001Niw2NCBRNjEsMzguMiA1NSwxNyBRNjEsMzguMiA2Niw2NCBaJy8+PHBhdGggZmlsbD0nIzNjNzczMycgZD0nTTY3LjUsNjQgUTcxLDQ0LjggNzMsMjkgUTcxLDQ0LjggNzQuNSw2NCBaJy8+PHBhdGggZmlsbD0nIzNjNzczMycgZD0nTTY4LjUsNjQgUTczLDQ0LjIgODAsMjggUTczLDQ0LjIgNzcuNSw2NCBaJy8+PHBhdGggZmlsbD0nIzNjNzczMycgZD0nTTgxLDY0IFE4NSw0Mi42IDk1LDI1IFE4NSw0Mi42IDg5LDY0IFonLz48cGF0aCBmaWxsPScjMzU2YTJjJyBkPSdNODYsNjQgUTkwLDQ0LjggODEsMjkgUTkwLDQ0LjggOTQsNjQgWicvPjxwYXRoIGZpbGw9JyMzNTZhMmMnIGQ9J005NS41LDY0IFExMDAsMzIuNiAxMDEsNyBRMTAwLDMyLjYgMTA0LjUsNjQgWicvPjxwYXRoIGZpbGw9JyMyZjVhMjYnIGQ9J00xMDUsNjQgUTEwOSw0MS40IDExMCwyMyBRMTA5LDQxLjQgMTEzLDY0IFonLz48cGF0aCBmaWxsPScjMmY1YTI2JyBkPSdNMTEwLDY0IFExMTUsNDIgMTIyLDI0IFExMTUsNDIgMTIwLDY0IFonLz48cGF0aCBmaWxsPScjMzU2YTJjJyBkPSdNMTE3LjUsNjQgUTEyMiwzMy44IDExNiw5IFExMjIsMzMuOCAxMjYuNSw2NCBaJy8+PHBhdGggZmlsbD0nIzJmNWEyNicgZD0nTTEyNC41LDY0IFExMjksNDcgMTQwLDMzIFExMjksNDcgMTMzLjUsNjQgWicvPjxwYXRoIGZpbGw9JyMyZjVhMjYnIGQ9J00xMzUuNSw2NCBRMTM5LDQyIDE0MSwyNCBRMTM5LDQyIDE0Mi41LDY0IFonLz48cGF0aCBmaWxsPScjMzU2YTJjJyBkPSdNMTQzLjUsNjQgUTE0OCw0MiAxNTksMjQgUTE0OCw0MiAxNTIuNSw2NCBaJy8+PHBhdGggZmlsbD0nIzJmNWEyNicgZD0nTTE0Nyw2NCBRMTUyLDMzLjIgMTM5LDggUTE1MiwzMy4yIDE1Nyw2NCBaJy8+PHBhdGggZmlsbD0nIzM1NmEyYycgZD0nTTE2MCw2NCBRMTY2LDMxIDE2OSw0IFExNjYsMzEgMTcyLDY0IFonLz48cGF0aCBmaWxsPScjMzU2YTJjJyBkPSdNMTY2LDY0IFExNzEsMzYgMTc4LDEzIFExNzEsMzYgMTc2LDY0IFonLz48cGF0aCBmaWxsPScjMmY1YTI2JyBkPSdNMTc0LDY0IFExODAsMzMuOCAxODQsOSBRMTgwLDMzLjggMTg2LDY0IFonLz48cGF0aCBmaWxsPScjMmY1YTI2JyBkPSdNMTgyLjUsNjQgUTE4NywzOC43IDE4NSwxOCBRMTg3LDM4LjcgMTkxLjUsNjQgWicvPjxwYXRoIGZpbGw9JyMzNTZhMmMnIGQ9J00xODksNjQgUTE5NCw0My4xIDE5MSwyNiBRMTk0LDQzLjEgMTk5LDY0IFonLz48cGF0aCBmaWxsPScjMmY1YTI2JyBkPSdNMTk1LjUsNjQgUTIwMSwzMC40IDE5MSwzIFEyMDEsMzAuNCAyMDYuNSw2NCBaJy8+PHBhdGggZmlsbD0nIzM1NmEyYycgZD0nTTIwNyw2NCBRMjExLDQzLjYgMjAwLDI3IFEyMTEsNDMuNiAyMTUsNjQgWicvPjxwYXRoIGZpbGw9JyMzYzc3MzMnIGQ9J00yMTIuNSw2NCBRMjE4LDQ0LjIgMjE2LDI4IFEyMTgsNDQuMiAyMjMuNSw2NCBaJy8+PHBhdGggZmlsbD0nIzM1NmEyYycgZD0nTTIyNiw2NCBRMjMwLDMzLjggMjE2LDkgUTIzMCwzMy44IDIzNCw2NCBaJy8+PHBhdGggZmlsbD0nIzJmNWEyNicgZD0nTTIzMi41LDY0IFEyMzgsNDAuOSAyNDYsMjIgUTIzOCw0MC45IDI0My41LDY0IFonLz48L3N2Zz4="); background-size:auto 100%; animation:grasswave 6.5s ease-in-out infinite; }
.grass::after  { background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNDAgNTYnIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUnPjxyZWN0IHg9JzAnIHk9JzUwJyB3aWR0aD0nMjQwJyBoZWlnaHQ9JzYnIGZpbGw9JyM1NzlhNDMnLz48cGF0aCBmaWxsPScjNjdhZDRlJyBkPSdNMC42LDU2IFE2LjYsMzYuOCAxOS42LDIxIFE2LjYsMzYuOCAxMi42LDU2IFonLz48cGF0aCBmaWxsPScjNmZiODUzJyBkPSdNOS44LDU2IFExNC44LDM1LjYgMjEuOCwxOSBRMTQuOCwzNS42IDE5LjgsNTYgWicvPjxwYXRoIGZpbGw9JyM2N2FkNGUnIGQ9J00xNy42LDU2IFEyMy4xLDQwIDE5LjEsMjcgUTIzLjEsNDAgMjguNiw1NiBaJy8+PHBhdGggZmlsbD0nI2M4OTMyZicgZD0nTTI1LjgsNTYgUTI5LjMsNDMuOSAyOS4zLDM0IFEyOS4zLDQzLjkgMzIuOCw1NiBaJy8+PHBhdGggZmlsbD0nIzY3YWQ0ZScgZD0nTTM0LjUsNTYgUTQwLjUsMzUuNiA1Mi41LDE5IFE0MC41LDM1LjYgNDYuNSw1NiBaJy8+PHBhdGggZmlsbD0nIzY3YWQ0ZScgZD0nTTUwLjMsNTYgUTUzLjgsNDMuNCA0NS44LDMzIFE1My44LDQzLjQgNTcuMyw1NiBaJy8+PHBhdGggZmlsbD0nI2M4OTMyZicgZD0nTTUzLjUsNTYgUTU3LDMxLjIgNTIsMTEgUTU3LDMxLjIgNjAuNSw1NiBaJy8+PHBhdGggZmlsbD0nIzZmYjg1MycgZD0nTTY1LjIsNTYgUTY5LjIsMzAuNyA3Ny4yLDEwIFE2OS4yLDMwLjcgNzMuMiw1NiBaJy8+PHBhdGggZmlsbD0nIzY3YWQ0ZScgZD0nTTcxLDU2IFE3NC41LDQwLjYgNjguNSwyOCBRNzQuNSw0MC42IDc4LDU2IFonLz48cGF0aCBmaWxsPScjYzg5MzJmJyBkPSdNODAuNyw1NiBRODYuNywzNS42IDg3LjcsMTkgUTg2LjcsMzUuNiA5Mi43LDU2IFonLz48cGF0aCBmaWxsPScjNmZiODUzJyBkPSdNODguOSw1NiBROTMuOSwzNS4xIDk4LjksMTggUTkzLjksMzUuMSA5OC45LDU2IFonLz48cGF0aCBmaWxsPScjNjdhZDRlJyBkPSdNOTguMiw1NiBRMTA0LjIsMzUuMSAxMDUuMiwxOCBRMTA0LjIsMzUuMSAxMTAuMiw1NiBaJy8+PHBhdGggZmlsbD0nIzY3YWQ0ZScgZD0nTTExMC45LDU2IFExMTUuNCwzNi44IDExMS40LDIxIFExMTUuNCwzNi44IDExOS45LDU2IFonLz48cGF0aCBmaWxsPScjNmZiODUzJyBkPSdNMTIxLjEsNTYgUTEyNS42LDQxLjcgMTI1LjYsMzAgUTEyNS42LDQxLjcgMTMwLjEsNTYgWicvPjxwYXRoIGZpbGw9JyNjODkzMmYnIGQ9J00xMjcuOCw1NiBRMTMxLjgsMzIuOSAxNDMuOCwxNCBRMTMxLjgsMzIuOSAxMzUuOCw1NiBaJy8+PHBhdGggZmlsbD0nI2M4OTMyZicgZD0nTTEzNS4xLDU2IFExNDAuMSwzNy44IDE0MC4xLDIzIFExNDAuMSwzNy44IDE0NS4xLDU2IFonLz48cGF0aCBmaWxsPScjNTc5YTQzJyBkPSdNMTQ1LjMsNTYgUTE1MC4zLDQxLjcgMTQ2LjMsMzAgUTE1MC4zLDQxLjcgMTU1LjMsNTYgWicvPjxwYXRoIGZpbGw9JyM2ZmI4NTMnIGQ9J00xNTgsNTYgUTE2Mi41LDM5LjUgMTY5LjUsMjYgUTE2Mi41LDM5LjUgMTY3LDU2IFonLz48cGF0aCBmaWxsPScjNTc5YTQzJyBkPSdNMTYxLjMsNTYgUTE2Ni44LDI5IDE2MC44LDcgUTE2Ni44LDI5IDE3Mi4zLDU2IFonLz48cGF0aCBmaWxsPScjYzg5MzJmJyBkPSdNMTc0LjUsNTYgUTE4MCwzMC4yIDE2Nyw5IFExODAsMzAuMiAxODUuNSw1NiBaJy8+PHBhdGggZmlsbD0nIzZmYjg1MycgZD0nTTE4Mi43LDU2IFExODcuMiw0Mi44IDE5OC4yLDMyIFExODcuMiw0Mi44IDE5MS43LDU2IFonLz48cGF0aCBmaWxsPScjNjdhZDRlJyBkPSdNMTkzLjUsNTYgUTE5OC41LDM5IDIxMC41LDI1IFExOTguNSwzOSAyMDMuNSw1NiBaJy8+PHBhdGggZmlsbD0nIzU3OWE0MycgZD0nTTIwNi4yLDU2IFEyMTAuNywyOSAyMTIuNyw3IFEyMTAuNywyOSAyMTUuMiw1NiBaJy8+PHBhdGggZmlsbD0nIzZmYjg1MycgZD0nTTIwOS45LDU2IFEyMTUuOSwyOSAyMDYuOSw3IFEyMTUuOSwyOSAyMjEuOSw1NiBaJy8+PHBhdGggZmlsbD0nIzZmYjg1MycgZD0nTTIxOS43LDU2IFEyMjUuMiwzMi45IDIzNy4yLDE0IFEyMjUuMiwzMi45IDIzMC43LDU2IFonLz48cGF0aCBmaWxsPScjNTc5YTQzJyBkPSdNMjI4LjQsNTYgUTIzNC40LDI5IDI0Ni40LDcgUTIzNC40LDI5IDI0MC40LDU2IFonLz48cGF0aCBkPSdNNDYsNTYgUTQzLDM0IDQ2LDEyJyBzdHJva2U9JyMzYzc3MzMnIHN0cm9rZS13aWR0aD0nMi41JyBmaWxsPSdub25lJy8+PGNpcmNsZSBjeD0nNDYnIGN5PScxMicgcj0nNS41JyBmaWxsPScjZTdiMjNhJy8+PGNpcmNsZSBjeD0nNDYnIGN5PScxMicgcj0nMicgZmlsbD0nI2ZmZjdkNicvPjxwYXRoIGQ9J00xMjAsNTYgUTExNywzNiAxMjAsMTYnIHN0cm9rZT0nIzNjNzczMycgc3Ryb2tlLXdpZHRoPScyLjUnIGZpbGw9J25vbmUnLz48Y2lyY2xlIGN4PScxMjAnIGN5PScxNicgcj0nNS41JyBmaWxsPScjZmZmZmZmJy8+PGNpcmNsZSBjeD0nMTIwJyBjeT0nMTYnIHI9JzInIGZpbGw9JyNmZmY3ZDYnLz48cGF0aCBkPSdNMTk2LDU2IFExOTMsMzMgMTk2LDEwJyBzdHJva2U9JyMzYzc3MzMnIHN0cm9rZS13aWR0aD0nMi41JyBmaWxsPSdub25lJy8+PGNpcmNsZSBjeD0nMTk2JyBjeT0nMTAnIHI9JzUuNScgZmlsbD0nI2I1NDYyZicvPjxjaXJjbGUgY3g9JzE5NicgY3k9JzEwJyByPScyJyBmaWxsPScjZmZmN2Q2Jy8+PC9zdmc+"); background-size:auto 82%; animation:grasswave 5s ease-in-out infinite reverse; }
.grass--top { height:64px; }
@keyframes grasswave { 0%,100% { transform:skewX(-1.6deg); } 50% { transform:skewX(1.6deg); } }
@media (prefers-reduced-motion: reduce) { .grass::before, .grass::after { animation:none; } }

/* ---------- Native signup (Mailchimp) form ---------- */
.signup { max-width:640px; margin-inline:auto; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:30px 32px; box-shadow:var(--shadow); text-align:left; }
.signup__row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.signup__field { display:block; margin-bottom:15px; }
.signup__field span { display:block; font-weight:700; font-size:.92rem; color:var(--green-800); margin-bottom:6px; }
.signup__field b { color:var(--barn); }
.signup__field input { width:100%; padding:.82rem 1rem; border:1px solid var(--line); border-radius:12px; font:inherit; background:var(--cream); color:var(--ink); transition:border-color .2s, box-shadow .2s, background .2s; }
.signup__field input:focus { outline:none; border-color:var(--green-600); box-shadow:0 0 0 3px rgba(59,90,64,.16); background:#fff; }
.signup__btn { width:100%; justify-content:center; margin-top:2px; }
.signup__note { font-size:.84rem; color:var(--ink-soft); text-align:center; margin:13px 0 0; }
@media (max-width:560px) { .signup__row { grid-template-columns:1fr; } }

/* ---------- 2026 Ballot / Voter Guide ---------- */
.amendments { background:var(--cream); }
.amend-group { max-width:1000px; margin:0 auto 10px; }
.amend-group__head { display:flex; align-items:center; gap:14px; margin:0 0 20px; }
.amend-group__head h2 { margin:0; font-size:1.7rem; }
.amend-group__when { background:var(--blue); color:#fff; font-weight:700; font-size:.82rem; letter-spacing:.04em; padding:.4rem .9rem; border-radius:999px; white-space:nowrap; }
.amend-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-bottom:46px; }
.amend-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px 26px; box-shadow:var(--shadow-sm); border-top:5px solid var(--blue); transition:transform .18s ease, box-shadow .2s ease; }
.amend-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.amend-card__no { display:inline-flex; align-items:center; gap:9px; font-family:var(--font-display); font-weight:650; color:var(--navy); font-size:1.05rem; margin-bottom:8px; }
.amend-card__no b { background:var(--blue); color:#fff; width:34px; height:34px; border-radius:9px; display:grid; place-items:center; font-size:1.05rem; }
.amend-card h3 { font-size:1.15rem; margin-bottom:.4rem; }
.amend-card p { color:var(--ink-soft); margin:0; font-size:1rem; }
.amend-note { max-width:860px; margin:8px auto 0; text-align:center; font-size:.92rem; color:var(--ink-soft); background:var(--cream-2); border:1px solid var(--line); border-radius:var(--radius); padding:18px 22px; }
.ballot-teaser { background:linear-gradient(135deg, var(--blue-100), #eaf3fb); border:1px solid var(--blue-300); border-radius:var(--radius-lg); padding:34px; display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; box-shadow:var(--shadow-sm); }
.ballot-teaser h2 { margin:0 0 .4rem; color:var(--navy); }
.ballot-teaser p { margin:0; color:#33475a; max-width:60ch; }
@media (max-width:760px) { .amend-grid { grid-template-columns:1fr; } .amend-group__head h2 { font-size:1.4rem; } .ballot-teaser { grid-template-columns:1fr; text-align:center; } }

/* ===========================================================
   Facebook + TikTok embeds (Follow Along)
   =========================================================== */
.social-embeds { background:var(--cream-2); }
.embed-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:1060px; margin-inline:auto; align-items:start; }
.embed-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; align-items:center; text-align:center; }
.embed-card h3 { margin-bottom:16px; display:flex; align-items:center; gap:9px; }
.embed-card h3 svg { width:22px; height:22px; }
.embed-card .embed-body { width:100%; display:flex; justify-content:center; min-height:120px; }
.embed-card iframe, .embed-card blockquote { max-width:100% !important; }
.embed-card .fb-frame { width:100%; max-width:500px; height:560px; border-radius:12px; background:var(--cream); }
.embed-card .btn { margin-top:18px; }
.embed-fallback { color:var(--ink-soft); padding:18px; font-size:.95rem; }
@media (max-width:820px) { .embed-grid { grid-template-columns:1fr; } }

/* static slogan bar (no marquee) */
.slogan-strip__inner { display:flex; flex-wrap:wrap; gap:10px 16px; justify-content:center; align-items:center; padding:.5rem 24px; font-family:var(--font-display); font-weight:600; font-size:1.02rem; color:var(--green-900); text-align:center; }
.slogan-strip__dot { color:var(--barn); }

/* ===========================================================
   Page transitions + staggered section reveals
   =========================================================== */
@keyframes pageIn { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@keyframes fadeInPage { from { opacity:0; } to { opacity:1; } }
.page.active { animation:pageIn .5s cubic-bezier(.2,.7,.2,1) both; }
body { animation:fadeInPage .5s ease both; }
.reveal { transition-timing-function:cubic-bezier(.2,.7,.2,1); }
.issue-grid .reveal:nth-child(2), .amend-grid .reveal:nth-child(2), .action-grid .reveal:nth-child(2), .values__grid .reveal:nth-child(2), .embed-grid .reveal:nth-child(2) { transition-delay:.09s; }
.issue-grid .reveal:nth-child(3), .amend-grid .reveal:nth-child(3) { transition-delay:.18s; }
.issue-grid .reveal:nth-child(4) { transition-delay:.27s; }
.issue-grid .reveal:nth-child(5) { transition-delay:.36s; }
.issue-grid .reveal:nth-child(6) { transition-delay:.45s; }

/* ===========================================================
   Donation popup
   =========================================================== */
.donate-pop { position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:20px; }
.donate-pop.show { display:flex; }
.donate-pop__backdrop { position:absolute; inset:0; background:rgba(20,38,27,.55); backdrop-filter:blur(3px); }
.donate-pop__card { position:relative; z-index:1; background:var(--cream); border:1px solid var(--line); border-top:6px solid var(--barn); border-radius:var(--radius-lg); max-width:466px; width:100%; padding:34px 32px 26px; box-shadow:var(--shadow-lg); text-align:center; animation:popIn .42s cubic-bezier(.2,.8,.25,1); }
@keyframes popIn { from { opacity:0; transform:translateY(26px) scale(.95); } to { opacity:1; transform:none; } }
.donate-pop__close { position:absolute; top:10px; right:14px; background:none; border:0; font-size:1.7rem; line-height:1; color:var(--ink-soft); cursor:pointer; }
.donate-pop__close:hover { color:var(--barn); }
.donate-pop__icon { width:62px; height:62px; margin:0 auto 14px; border-radius:50%; background:var(--barn); color:#fff; display:grid; place-items:center; }
.donate-pop__icon svg { width:30px; height:30px; }
.donate-pop h3 { font-size:1.5rem; margin-bottom:.55rem; max-width:18ch; margin-inline:auto; }
.donate-pop p { color:var(--ink-soft); margin:0 0 1rem; font-size:1.02rem; }
.donate-pop__actions { display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.donate-pop__actions .btn { width:100%; justify-content:center; }
.donate-pop__later { background:none; border:0; color:var(--ink-soft); font-weight:600; cursor:pointer; padding:6px; font-size:.95rem; }
.donate-pop__later:hover { color:var(--barn); }
.donate-pop__note { font-size:.76rem; color:var(--ink-soft); margin-top:13px; }
@media (prefers-reduced-motion: reduce) { .page.active, body, .donate-pop__card { animation:none; } }

/* ===========================================================
   Accessibility — skip link + focus + contrast
   =========================================================== */
.skip-link { position:absolute; left:-9999px; top:0; z-index:300; background:var(--green-900); color:#fff; padding:10px 18px; border-radius:0 0 12px 0; font-weight:700; text-decoration:none; }
.skip-link:focus { left:0; }
:focus-visible { outline:3px solid var(--barn); outline-offset:2px; border-radius:4px; }
.btn:focus-visible, .topnav__links a:focus-visible, .topnav__social a:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.eyebrow { color:#8a6512; }
.issues .eyebrow, .cta-band .eyebrow, .stat-band .eyebrow, .donate-asks .eyebrow { color:var(--gold-300); }

/* ===========================================================
   Donation "asks" module
   =========================================================== */
.donate-asks { background:var(--green-900); color:#fff; position:relative; }
.donate-asks .section-head h2 { color:#fff; }
.donate-asks .section-head p { color:#e7dcc2; }
.ask-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:640px; margin:0 auto 16px; }
.ask-btn { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:18px 8px; border-radius:14px; background:rgba(255,255,255,.06); border:2px solid rgba(230,200,126,.35); color:#fff; font-family:var(--font-display); font-weight:650; font-size:1.55rem; transition:transform .15s ease, background .2s ease, border-color .2s ease; }
.ask-btn small { font-family:var(--font-body); font-weight:600; font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; color:var(--gold-300); }
.ask-btn:hover { background:var(--barn); border-color:var(--barn); color:#fff; transform:translateY(-3px); }
.ask-btn--other { grid-column:span 3; flex-direction:row; gap:8px; font-size:1.1rem; }
.ask-monthly { display:flex; justify-content:center; margin:4px auto 0; }
.ask-monthly label { display:inline-flex; align-items:center; gap:9px; color:#e7dcc2; font-weight:600; cursor:pointer; background:rgba(255,255,255,.06); border:1px solid rgba(230,200,126,.3); padding:.6rem 1.1rem; border-radius:999px; }
.ask-monthly input { width:18px; height:18px; accent-color:var(--gold); }
.ask-note { text-align:center; color:#c9c0aa; font-size:.85rem; margin-top:16px; max-width:54ch; margin-inline:auto; }

/* ===========================================================
   Vote 2026 module + countdown
   =========================================================== */
.vote-module { background:var(--cream-2); }
.vote-wrap { max-width:1000px; margin:0 auto; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); overflow:hidden; }
.vote-top { background:var(--navy); color:#fff; padding:24px 30px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; }
.vote-top h3 { color:#fff; margin:0; font-size:1.4rem; }
.vote-top p { margin:.25rem 0 0; color:#cfe0f3; font-size:.95rem; }
.countdown { display:flex; gap:10px; }
.countdown div { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:10px 12px; text-align:center; min-width:62px; }
.countdown b { display:block; font-family:var(--font-display); font-size:1.7rem; line-height:1; color:var(--gold-300); }
.countdown span { font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:#cfe0f3; }
.vote-actions { display:grid; grid-template-columns:repeat(3,1fr); }
.vote-action { padding:24px 22px; text-align:center; border-right:1px solid var(--line); }
.vote-action:last-child { border-right:0; }
.vote-action__icon { width:48px; height:48px; margin:0 auto 12px; border-radius:12px; background:var(--cream-2); color:var(--green-700); display:grid; place-items:center; }
.vote-action__icon svg { width:26px; height:26px; }
.vote-action h4 { margin:0 0 5px; font-family:var(--font-display); font-size:1.06rem; color:var(--green-900); }
.vote-action p { margin:0 0 14px; font-size:.9rem; color:var(--ink-soft); }
.vote-dates { display:flex; gap:18px; justify-content:center; padding:16px; flex-wrap:wrap; background:var(--cream); border-top:1px solid var(--line); }
.vote-dates span { font-size:.92rem; color:var(--green-800); font-weight:600; }
.vote-dates b { color:var(--barn); }
@media (max-width:760px) { .vote-actions { grid-template-columns:1fr; } .vote-action { border-right:0; border-bottom:1px solid var(--line); } .vote-action:last-child { border-bottom:0; } .countdown b { font-size:1.35rem; } .countdown div { min-width:54px; } }

/* ===========================================================
   Volunteer / yard-sign forms (extends .signup)
   =========================================================== */
.checks { display:grid; grid-template-columns:1fr 1fr; gap:8px 16px; margin:2px 0 10px; }
.checks label { display:flex; align-items:center; gap:9px; font-weight:600; color:var(--green-800); font-size:.96rem; cursor:pointer; }
.checks input { width:18px; height:18px; accent-color:var(--green-700); }
.form-ok { display:none; margin-top:14px; padding:12px 14px; background:#e8f3e2; border:1px solid #b7d9ab; border-radius:12px; color:#2f4a33; font-weight:600; text-align:center; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; max-width:1000px; margin-inline:auto; }
@media (max-width:820px) { .form-grid { grid-template-columns:1fr; } }
@media (max-width:560px) { .checks { grid-template-columns:1fr; } }

/* ===========================================================
   Sticky mobile donate/volunteer bar
   =========================================================== */
.mobilebar { display:none; }
@media (max-width:760px) {
  .mobilebar { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:150; gap:8px; padding:8px 12px calc(8px + env(safe-area-inset-bottom)); background:rgba(250,246,234,.98); border-top:1px solid var(--line); box-shadow:0 -4px 16px rgba(28,47,34,.14); }
  .mobilebar .btn { flex:1; justify-content:center; padding:.8rem 1rem; font-size:.98rem; }
  body { padding-bottom:72px; }
}

/* ===========================================================
   Prominent, alluring Donate button
   =========================================================== */
.btn--donate { background:linear-gradient(135deg, #be4230, var(--barn-600)); box-shadow:0 4px 14px rgba(154,59,44,.35); }
.btn--donate:hover { background:linear-gradient(135deg, #ab3a2a, #6f2718); }
.btn--donate svg { width:18px; height:18px; }
.topnav .btn--donate { font-weight:800; letter-spacing:.01em; padding:.68rem 1.5rem; animation:donatePulse 2.6s ease-in-out infinite; }
.topnav .btn--donate svg { width:17px; height:17px; }
.topnav .btn--donate:hover { transform:translateY(-2px) scale(1.03); }
.mobilebar .btn--donate { animation:donatePulse 2.6s ease-in-out infinite; }
@keyframes donatePulse {
  0%, 100% { box-shadow:0 4px 14px rgba(154,59,44,.45), 0 0 0 0 rgba(200,147,47,.6); }
  70% { box-shadow:0 7px 20px rgba(154,59,44,.5), 0 0 0 10px rgba(200,147,47,0); }
}
@media (prefers-reduced-motion: reduce) { .topnav .btn--donate, .mobilebar .btn--donate { animation:none; } }

/* ===========================================================
   "Seeds on the Missouri Wind" — canvas particle intro
   Particles drift in like dandelion seeds, form a ★ SLISZ seal,
   then a gust scatters them off to reveal the page.
   =========================================================== */
.seed-intro {
  position: fixed; inset: 0; z-index: 4000;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  background:
    radial-gradient(120% 90% at 50% 18%, #fffdf6 0%, #fbf4e2 34%, #f2e7c9 62%, #e7d9b2 100%);
  /* Pure-CSS safety net: even if JS never runs, the overlay clears itself
     so the site is never left hidden. JS removes it sooner. */
  animation: seedSafety 6500ms ease forwards;
}
.seed-intro::after {
  /* soft field/horizon at the bottom + warm sun glow up top */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(70% 42% at 50% 12%, rgba(232,196,93,.40), rgba(232,196,93,0) 70%),
    linear-gradient(to top, rgba(59,90,64,.30) 0%, rgba(59,90,64,.06) 14%, rgba(59,90,64,0) 26%);
}
.seed-intro__canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.seed-intro__cap {
  position: relative; z-index: 2; text-align: center; padding: 0 24px;
  transform: translateY(29vh);
  opacity: 0; transition: opacity .8s ease;
  pointer-events: none;
}
.seed-intro__cap.is-in { opacity: 1; }
.seed-intro__slogan {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1rem, 3.4vw, 1.5rem); color: var(--green-800);
  letter-spacing: .02em; text-shadow: 0 1px 0 rgba(255,255,255,.6);
}
.seed-intro__slogan b { color: var(--gold-600); font-weight: 600; }
.seed-intro.is-done { opacity: 0; visibility: hidden; transition: opacity .85s ease, visibility 0s linear .85s; }
@keyframes seedSafety {
  0%, 86% { opacity: 1; visibility: visible; }
  100%    { opacity: 0; visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .seed-intro { display: none !important; }
}

/* ===========================================================
   AESTHETIC PASS v2 — golden-hour polish & micro-motion
   Threads the "seeds / field / golden light" motif through
   the whole site. All decorative motion respects reduced-motion.
   =========================================================== */

/* Text selection in brand gold */
::selection { background: var(--gold); color: var(--green-900); }

/* Scroll-progress bar (reading position) */
.scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 300;
  background: linear-gradient(90deg, var(--gold-600), var(--gold) 55%, var(--gold-300));
  box-shadow: 0 0 10px rgba(200,147,47,.55);
  pointer-events: none; transition: width .12s linear;
}

/* Sticky nav lifts once you start scrolling */
.topnav { transition: background .3s ease, box-shadow .3s ease, padding .3s ease; }
.topnav.scrolled { background: rgba(255,255,255,.95); box-shadow: 0 12px 30px rgba(28,47,34,.16); }
.topnav.scrolled .topnav__inner { padding-block: 5px; }

/* Hero: slow Ken Burns drift on the pasture photo + drifting pollen */
.hero__bg img { animation: kenburns 26s ease-in-out infinite alternate; transform-origin: 60% 40%; }
@keyframes kenburns { from { transform: scale(1.03); } to { transform: scale(1.13) translate(-1.6%, -1.2%); } }
.hero-dust { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.cta-band__bg img { animation: kenburns 34s ease-in-out infinite alternate; }

/* Hero "Work" — animated gold light sweeping through the word */
.hero h1 .work {
  background: linear-gradient(100deg, var(--gold-300) 18%, #fff6d6 40%, var(--gold) 50%, var(--gold-300) 70%);
  background-size: 230% 100%;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  animation: workShine 6.5s ease-in-out infinite;
}
@keyframes workShine { 0% { background-position: 130% 0; } 58%, 100% { background-position: -30% 0; } }

/* Section-heading flourish — a gold underline that draws in on reveal */
/* Keep the small eyebrow label on its own line above the inline-block heading */
.section-head > .eyebrow, .pagehead .eyebrow { display: block; }
.section-head h2 { position: relative; display: inline-block; }
.section-head h2::after {
  content: ""; position: absolute; left: 50%; bottom: -15px;
  width: 78px; height: 3px; border-radius: 3px;
  transform: translateX(-50%) scaleX(0); transform-origin: center;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  transition: transform .75s cubic-bezier(.2,.8,.25,1) .12s;
}
.section-head.in h2::after { transform: translateX(-50%) scaleX(1); }

/* Buttons — a glossy light sweep on hover */
.btn { position: relative; overflow: hidden; }
.btn > * { position: relative; z-index: 1; }
.btn::after {
  content: ""; position: absolute; top: 0; left: -130%; width: 55%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.5), transparent);
  transform: skewX(-18deg); pointer-events: none; z-index: 0;
}
.btn:hover::after { animation: btnShine .75s ease; }
@keyframes btnShine { from { left: -130%; } to { left: 150%; } }

/* Card micro-interactions — smoother lift, gold accent, icon life */
.value-card, .action-card, .issue-card, .issue-row, .amend-card, .fact, .embed-card {
  transition: transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.value-card:hover, .action-card:hover, .embed-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.amend-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.fact:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--gold); }
.issue-row:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-left-color: var(--barn); }
.issue-card__icon, .action-card__icon { transition: transform .25s ease, color .25s ease; }
.issue-card:hover .issue-card__icon { transform: rotate(-7deg) scale(1.08); }
.action-card:hover .action-card__icon { transform: translateY(-3px) scale(1.06); color: var(--gold-600); }
.value-card__tag svg { transition: transform .3s ease; }
.value-card:hover .value-card__tag svg { transform: rotate(-8deg) scale(1.1); }

/* Tag pills warm up on hover */
.town-tags li, .pill-list li { transition: transform .18s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease; cursor: default; }
.town-tags li:hover, .pill-list li:hover { transform: translateY(-2px); background: var(--gold); color: var(--green-900); border-color: var(--gold); box-shadow: var(--shadow-sm); }

/* Photo cards breathe slightly on hover */
.voice__media img, .homeroots__media img, .about-photo img { transition: transform .55s ease, box-shadow .4s ease; }
.voice__media:hover img, .homeroots__media:hover img, .about-photo:hover img { transform: scale(1.025); box-shadow: var(--shadow-lg); }

/* Reveal cascade for grids */
.issue-grid .reveal:nth-child(3n+2) { transition-delay: .08s; }
.issue-grid .reveal:nth-child(3n+3) { transition-delay: .16s; }
.values__grid .reveal:nth-child(2) { transition-delay: .1s; }
.action-grid .reveal:nth-child(2n) { transition-delay: .1s; }
.amend-grid .reveal:nth-child(2n) { transition-delay: .1s; }
.embed-grid .reveal:nth-child(2) { transition-delay: .12s; }

/* Slogan pull-bands — drifting starlight + a slow light sweep */
.slogan-band::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background:
    radial-gradient(1.4px 1.4px at 18% 32%, rgba(230,200,126,.7), transparent 60%),
    radial-gradient(1.2px 1.2px at 72% 58%, rgba(230,200,126,.55), transparent 60%),
    radial-gradient(1.2px 1.2px at 46% 80%, rgba(230,200,126,.45), transparent 60%),
    radial-gradient(1.2px 1.2px at 88% 24%, rgba(230,200,126,.5), transparent 60%),
    radial-gradient(1.2px 1.2px at 30% 68%, rgba(230,200,126,.4), transparent 60%);
}
.slogan-band::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -45%; width: 45%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(230,200,126,.14), transparent);
  animation: slogShine 8s ease-in-out infinite;
}
@keyframes slogShine { 0% { left: -45%; } 55%, 100% { left: 125%; } }
.slogan-band .gold { position: relative; }

/* Count-up numbers shouldn't reflow as they tick */
.stat strong { font-variant-numeric: tabular-nums; }

/* Interior page headers — richer "golden hour" banner instead of a flat block */
.pagehead { position: relative; overflow: hidden; padding-block: 88px; border-bottom: 3px solid var(--gold); }
.pagehead > .container { position: relative; z-index: 2; }
.pagehead::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(95% 130% at 50% -12%, rgba(232,196,93,.22), rgba(232,196,93,0) 60%),
    radial-gradient(60% 80% at 86% 8%, rgba(232,196,93,.13), transparent 70%),
    radial-gradient(1.4px 1.4px at 16% 30%, rgba(230,200,126,.55), transparent 60%),
    radial-gradient(1.2px 1.2px at 70% 22%, rgba(230,200,126,.45), transparent 60%),
    radial-gradient(1.2px 1.2px at 44% 70%, rgba(230,200,126,.4), transparent 60%),
    radial-gradient(1.2px 1.2px at 86% 62%, rgba(230,200,126,.45), transparent 60%),
    radial-gradient(1.2px 1.2px at 28% 84%, rgba(230,200,126,.32), transparent 60%),
    radial-gradient(1.2px 1.2px at 60% 50%, rgba(230,200,126,.3), transparent 60%);
}
.pagehead--navy::before {
  background:
    radial-gradient(95% 130% at 50% -12%, rgba(156,192,230,.22), transparent 60%),
    radial-gradient(60% 80% at 86% 8%, rgba(232,196,93,.12), transparent 70%),
    radial-gradient(1.4px 1.4px at 16% 30%, rgba(220,232,246,.5), transparent 60%),
    radial-gradient(1.2px 1.2px at 70% 22%, rgba(220,232,246,.4), transparent 60%),
    radial-gradient(1.2px 1.2px at 44% 70%, rgba(232,196,93,.4), transparent 60%),
    radial-gradient(1.2px 1.2px at 86% 62%, rgba(220,232,246,.4), transparent 60%),
    radial-gradient(1.2px 1.2px at 28% 84%, rgba(220,232,246,.32), transparent 60%);
}
.pagehead h1 { position: relative; display: inline-block; }
.pagehead h1::after {
  content: ""; position: absolute; left: 50%; bottom: -16px; width: 92px; height: 3px; border-radius: 3px;
  transform: translateX(-50%); background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.pagehead .lead { margin-top: 1.6rem; }

/* Subtle paper grain over the whole page for a warm, printed feel */
body::after {
  content: ""; position: fixed; inset: 0; z-index: 1; pointer-events: none; opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Page transition — a gold "wind" wipe that sweeps between pages */
.page-wipe {
  position: fixed; inset: 0; z-index: 3000; pointer-events: none;
  transform: translateX(-100%); will-change: transform;
  background: linear-gradient(100deg, var(--green-900) 0%, var(--green-700) 36%, var(--gold-600) 72%, var(--gold) 100%);
}
.page-wipe::after {
  content: "\2605"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  color: rgba(255,255,255,.16); font-size: 22vmin; line-height: 1;
}
.page-wipe.cover { animation: wipeCover .46s cubic-bezier(.7,0,.3,1) forwards; }
.page-wipe.reveal { animation: wipeReveal .58s cubic-bezier(.7,0,.3,1) forwards; }
@keyframes wipeCover { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@keyframes wipeReveal { from { transform: translateX(0); } to { transform: translateX(100%); } }

/* ===========================================================
   AESTHETIC PASS v3 — photo grade, hill/seed dividers, rich btns
   =========================================================== */

/* (1) Warm "golden hour" grade so every photo reads as one set */
.hero__bg img, .cta-band__bg img,
.hero__portrait img, .voice__media img, .about-photo img, .homeroots__media img {
  filter: saturate(1.07) contrast(1.03) brightness(1.02) sepia(.10);
}
.voice__media, .homeroots__media, .about-photo { position: relative; }
.voice__media img, .homeroots__media img, .about-photo img { position: relative; z-index: 0; }
.voice__media::after, .homeroots__media::after, .about-photo::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  border-radius: var(--radius-lg);
  background:
    linear-gradient(155deg, rgba(255,214,140,.22), transparent 48%),
    linear-gradient(0deg, rgba(58,40,20,.20), transparent 34%);
  mix-blend-mode: soft-light;
}
.voice__badge, .homeroots__tag { z-index: 2; }

/* (2) Rolling-hill transitions where a light section meets a dark one */
.hilltop { position: relative; height: 54px; margin-bottom: -1px; pointer-events: none; line-height: 0; }
.hilltop::before {
  content: ""; position: absolute; inset: 0;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%2054'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,54%20L0,32%20C110,18%20210,16%20310,26%20C410,36%20470,10%20580,16%20C690,22%20740,42%20860,37%20C960,33%201040,14%201140,22%20C1170,24%201188,30%201200,28%20L1200,54%20Z'%20fill='%23000'/%3E%3C/svg%3E") bottom/100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%2054'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,54%20L0,32%20C110,18%20210,16%20310,26%20C410,36%20470,10%20580,16%20C690,22%20740,42%20860,37%20C960,33%201040,14%201140,22%20C1170,24%201188,30%201200,28%20L1200,54%20Z'%20fill='%23000'/%3E%3C/svg%3E") bottom/100% 100% no-repeat;
}
.hilltop--green900::before { background: var(--green-900); }
.hilltop--green800::before { background: var(--green-800); }

/* (2b) Star + wheat divider motif between light sections */
.seedsep { display: flex; align-items: center; justify-content: center; gap: 16px; max-width: 560px; margin: 14px auto; padding: 0 24px; color: var(--gold-600); }
.seedsep__rule { height: 2px; flex: 1; max-width: 170px; border-radius: 2px; background: linear-gradient(90deg, transparent, var(--gold)); }
.seedsep__rule:last-child { background: linear-gradient(90deg, var(--gold), transparent); }
.seedsep__mark { width: 60px; height: auto; flex: none; color: var(--gold-600); }

/* (3) Richer buttons — soft gloss + depth on solid variants */
.btn:not(.btn--ghost):not(.btn--light) {
  box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.2), inset 0 -3px 7px rgba(0,0,0,.13);
}
.btn:not(.btn--ghost):not(.btn--light):hover {
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.22), inset 0 -3px 7px rgba(0,0,0,.14);
}
.btn:not(.btn--ghost):not(.btn--light)::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.24), rgba(255,255,255,0) 46%, rgba(0,0,0,.05));
}
.btn--ghost { transition: transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.btn--ghost:hover { box-shadow: 0 6px 18px rgba(47,74,51,.22); }

/* (3b) Animated underline-grow on nav + footer links */
.topnav__links > a:not(.is-active) { position: relative; }
.topnav__links > a:not(.is-active)::after {
  content: ""; position: absolute; left: .6rem; right: .6rem; bottom: .26rem; height: 2px; border-radius: 2px;
  background: var(--gold); transform: scaleX(0); transform-origin: center; transition: transform .25s ease;
}
.topnav__links > a:not(.is-active):hover::after { transform: scaleX(1); }
.footer-links a, .footer-contact a, .footer-bottom a {
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat; background-position: left 100%; background-size: 0 1px;
  transition: background-size .26s ease, color .18s ease;
}
.footer-links a:hover, .footer-contact a:hover, .footer-bottom a:hover { background-size: 100% 1px; }

@media (prefers-reduced-motion: reduce) {
  .hero__bg img, .cta-band__bg img { animation: none; }
  .hero h1 .work { animation: none; -webkit-text-fill-color: var(--gold-300); }
  .btn:hover::after { animation: none; }
  .slogan-band::after { animation: none; }
  .scroll-progress { transition: none; }
  .page-wipe { display: none !important; }
}
