/*
Theme Name: Heartland Waystation
Theme URI: https://heartlandwaystation.org
Author: Heartland Waystation
Description: Heartland Waystation, the Kansas City stop on The Peace Flyway: a proposed nature center for pollinators, peace, food, veterans and young leaders. Sister site to The Peace Flyway and Pollinators Without Borders.
Version: 1.3.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: heartland-waystation
*/
/* ==========================================================================
   1. CSS VARIABLES / DESIGN TOKENS
   ========================================================================== */
:root{
  --pwb-green-dark:#1b4332;
  --pwb-green:#2d6a4f;
  --pwb-green-mid:#40916c;
  --pwb-green-light:#95d5b2;
  --pwb-orange:#e8871e;
  --pwb-orange-dark:#c96f14;
  --pwb-gold:#d4a017;
  --pwb-cream:#faf6ee;
  --pwb-cream-2:#f2ead8;
  --pwb-text:#2b2b25;
  --pwb-text-light:#5c5c52;
  --pwb-white:#ffffff;
  --pwb-border:#e2dcc8;
  --pwb-shadow: 0 10px 30px rgba(27,67,50,0.10);
  --pwb-radius: 14px;
  --pwb-font-head: 'Poppins', 'Segoe UI', sans-serif;
  --pwb-font-body: 'Nunito Sans', 'Segoe UI', Arial, sans-serif;
  --pwb-maxw: 1180px;
}

/* ==========================================================================
   2. RESET & BASE
   ========================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--pwb-font-body);
  color:var(--pwb-text);
  background:var(--pwb-cream);
  line-height:1.7;
  font-size:17px;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--pwb-green); text-decoration:none; transition:color .2s ease; }
a:hover{ color:var(--pwb-orange); }
h1,h2,h3,h4,h5{
  font-family:var(--pwb-font-head);
  color:var(--pwb-green-dark);
  line-height:1.25;
  margin:0 0 .6em;
  font-weight:700;
}
h1{ font-size:2.6rem; }
h2{ font-size:2rem; }
h3{ font-size:1.4rem; }
p{ margin:0 0 1.1em; }
ul{ margin:0 0 1.1em 1.2em; padding:0; }
li{ margin-bottom:.4em; }
.container{ max-width:var(--pwb-maxw); margin:0 auto; padding:0 24px; }
.screen-reader-text{ position:absolute; left:-9999px; }

/* Buttons */
.btn{
  display:inline-block;
  background:var(--pwb-orange);
  color:var(--pwb-white);
  padding:.85em 1.8em;
  border-radius:50px;
  font-weight:700;
  font-family:var(--pwb-font-head);
  font-size:.95rem;
  letter-spacing:.02em;
  box-shadow:var(--pwb-shadow);
  border:2px solid transparent;
}
.btn:hover{ background:var(--pwb-orange-dark); color:var(--pwb-white); }
.btn-outline{
  background:transparent;
  border:2px solid var(--pwb-white);
  color:var(--pwb-white);
}
.btn-outline:hover{ background:var(--pwb-white); color:var(--pwb-green-dark); }
.btn-green{ background:var(--pwb-green); }
.btn-green:hover{ background:var(--pwb-green-dark); }

/* ==========================================================================
   3. HEADER
   ========================================================================== */
.site-header{
  background:var(--pwb-white);
  border-bottom:1px solid var(--pwb-border);
  position:sticky; top:0; z-index:500;
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:14px; padding-bottom:14px; gap:20px;
}
.site-branding{ display:flex; align-items:center; gap:12px; }
.site-branding .logo-mark{ width:44px; height:44px; flex-shrink:0; }
.site-branding .site-title{
  font-family:var(--pwb-font-head); font-weight:800; font-size:1.25rem;
  color:var(--pwb-green-dark); margin:0; line-height:1.1;
}
.site-branding .site-title span{ color:var(--pwb-orange); }
.site-branding .site-tagline{ font-size:.78rem; color:var(--pwb-text-light); margin:0; }

#primary-menu{
  list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:2px;
}
#primary-menu li{ margin:0; position:relative; }
#primary-menu a{
  display:block; padding:10px 14px; color:var(--pwb-green-dark);
  font-weight:600; font-size:.92rem; border-radius:8px;
}
#primary-menu a:hover, #primary-menu li.current-menu-item > a{
  background:var(--pwb-cream-2); color:var(--pwb-orange-dark);
}
.menu-toggle{ display:none; background:none; border:2px solid var(--pwb-green); color:var(--pwb-green-dark); border-radius:8px; padding:8px 12px; font-size:1.1rem; cursor:pointer; }

@media(max-width:900px){
  .menu-toggle{ display:block; }
  #primary-menu{ display:none; flex-direction:column; width:100%; padding-bottom:10px; }
  #primary-menu.is-open{ display:flex; }
  .site-header .container{ flex-wrap:wrap; }
}

/* ==========================================================================
   4. HERO
   ========================================================================== */
.hero{
  background:linear-gradient(160deg, var(--pwb-green-dark) 0%, var(--pwb-green) 55%, var(--pwb-green-mid) 100%);
  color:var(--pwb-white);
  padding:80px 0 90px;
  position:relative;
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(circle at 85% 20%, rgba(232,135,30,.35), transparent 45%),
              radial-gradient(circle at 10% 90%, rgba(212,160,23,.25), transparent 40%);
  pointer-events:none;
}
.hero .container{ position:relative; z-index:2; max-width:820px; text-align:center; margin:0 auto; }
.hero h1{ color:var(--pwb-white); font-size:2.9rem; margin-bottom:.4em; }
.hero p.lead{ font-size:1.2rem; color:#eafff0; max-width:660px; margin:0 auto 1.6em; }
.hero .hero-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.page-hero{
  background:linear-gradient(160deg, var(--pwb-green-dark), var(--pwb-green));
  color:var(--pwb-white); padding:60px 0 64px; text-align:center;
}
.page-hero h1{ color:var(--pwb-white); margin-bottom:.3em; }
.page-hero p{ color:#eafff0; max-width:720px; margin:0 auto; font-size:1.1rem; }
.breadcrumb-line{ color:var(--pwb-green-light); font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; margin-bottom:.6em; }

/* ==========================================================================
   5. SECTIONS / CARDS
   ========================================================================== */
.section{ padding:70px 0; }
.section-tight{ padding:44px 0; }
.section-alt{ background:var(--pwb-white); }
.section-cream2{ background:var(--pwb-cream-2); }
.section-head{ text-align:center; max-width:720px; margin:0 auto 44px; }
.eyebrow{
  display:inline-block; color:var(--pwb-orange-dark); font-weight:800;
  text-transform:uppercase; letter-spacing:.1em; font-size:.78rem; margin-bottom:.6em;
}

.grid{ display:grid; gap:28px; }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:900px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

.card{
  background:var(--pwb-white); border:1px solid var(--pwb-border); border-radius:var(--pwb-radius);
  padding:28px; box-shadow:var(--pwb-shadow);
}
.icon-card{ text-align:center; }
.icon-card .icon{
  width:60px; height:60px; margin:0 auto 16px; color:var(--pwb-orange);
}
.icon-card h3{ font-size:1.1rem; }
.icon-card p{ font-size:.95rem; color:var(--pwb-text-light); margin-bottom:0; }

.pillar-card{ display:flex; flex-direction:column; height:100%; }
.pillar-card .icon{ width:42px; height:42px; color:var(--pwb-green); margin-bottom:12px; }
.pillar-card p{ color:var(--pwb-text-light); flex-grow:1; }
.pillar-card a.more{ font-weight:700; color:var(--pwb-orange-dark); }

.two-col{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
@media(max-width:800px){ .two-col{ grid-template-columns:1fr; } }

/* Partner network cards */
.partner-card{
  background:var(--pwb-white); border:1px solid var(--pwb-border); border-radius:var(--pwb-radius);
  padding:24px; box-shadow:var(--pwb-shadow); display:flex; flex-direction:column; gap:10px;
}
.partner-card .tag{
  align-self:flex-start; font-size:.72rem; font-weight:800; text-transform:uppercase;
  letter-spacing:.06em; background:var(--pwb-cream-2); color:var(--pwb-green-dark);
  padding:4px 10px; border-radius:50px;
}
.partner-card h3 a{ color:var(--pwb-green-dark); }
.partner-card p{ color:var(--pwb-text-light); font-size:.95rem; margin-bottom:6px; }
.partner-card .visit{ font-weight:700; font-size:.9rem; }

/* Org directory tables */
.region-block{ margin-bottom:46px; }
.region-block h3{
  border-bottom:3px solid var(--pwb-orange); padding-bottom:8px; margin-bottom:18px;
  display:inline-block;
}
.org-table{ width:100%; border-collapse:collapse; background:var(--pwb-white); border-radius:var(--pwb-radius); overflow:hidden; box-shadow:var(--pwb-shadow); }
.org-table th, .org-table td{ text-align:left; padding:14px 16px; border-bottom:1px solid var(--pwb-border); vertical-align:top; font-size:.94rem; }
.org-table th{ background:var(--pwb-green-dark); color:var(--pwb-white); font-family:var(--pwb-font-head); font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; }
.org-table tr:last-child td{ border-bottom:none; }
.org-table tr:nth-child(even) td{ background:var(--pwb-cream); }
.org-table td a{ font-weight:700; }
@media(max-width:700px){
  .org-table thead{ display:none; }
  .org-table, .org-table tbody, .org-table tr, .org-table td{ display:block; width:100%; }
  .org-table tr{ margin-bottom:14px; border:1px solid var(--pwb-border); border-radius:10px; overflow:hidden; }
  .org-table td{ border-bottom:1px solid var(--pwb-border); }
  .org-table td::before{ content:attr(data-label); display:block; font-weight:800; color:var(--pwb-green); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:4px; }
}

/* Species / migration profile cards */
.species-card{ border-left:5px solid var(--pwb-orange); background:var(--pwb-white); border-radius:0 var(--pwb-radius) var(--pwb-radius) 0; padding:26px 28px; box-shadow:var(--pwb-shadow); margin-bottom:26px; }
.species-card h3{ margin-bottom:.3em; }
.species-card .meta{ font-size:.85rem; color:var(--pwb-orange-dark); font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:.8em; }
.stat-row{ display:flex; flex-wrap:wrap; gap:14px; margin:14px 0; }
.stat-pill{ background:var(--pwb-cream-2); border-radius:10px; padding:10px 16px; font-size:.88rem; font-weight:700; color:var(--pwb-green-dark); }

/* Action checklist */
.action-list{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.action-list li{
  background:var(--pwb-white); border:1px solid var(--pwb-border); border-radius:10px; padding:16px 18px 16px 50px; position:relative; font-size:.97rem;
}
.action-list li::before{
  content:"\2713"; position:absolute; left:16px; top:16px; color:var(--pwb-white);
  background:var(--pwb-green); width:22px; height:22px; border-radius:50%; font-size:.75rem;
  display:flex; align-items:center; justify-content:center; font-weight:800;
}

/* Map / SVG panel */
.map-panel{ background:var(--pwb-white); border:1px solid var(--pwb-border); border-radius:var(--pwb-radius); padding:20px; box-shadow:var(--pwb-shadow); }
.map-caption{ text-align:center; font-size:.85rem; color:var(--pwb-text-light); font-style:italic; margin-top:10px; }
.legend{ display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin-top:14px; font-size:.85rem; }
.legend span{ display:inline-flex; align-items:center; gap:6px; }
.legend i{ width:14px; height:14px; border-radius:3px; display:inline-block; }

/* Callout / CTA banner */
.cta-banner{
  background:linear-gradient(120deg, var(--pwb-orange), var(--pwb-gold));
  color:var(--pwb-white); border-radius:var(--pwb-radius); padding:44px; text-align:center;
}
.cta-banner h2{ color:var(--pwb-white); }
.cta-banner p{ color:#fff7ea; max-width:640px; margin:0 auto 1.4em; }

/* Zone/ecoregion grid */
.zone-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; }
.zone-card{ background:var(--pwb-white); border-radius:12px; padding:20px; border-top:5px solid var(--pwb-green); box-shadow:var(--pwb-shadow); }
.zone-card h4{ font-size:1rem; margin-bottom:.4em; color:var(--pwb-green-dark); }
.zone-card p{ font-size:.88rem; color:var(--pwb-text-light); margin-bottom:0; }

/* Table of contents / anchor nav */
.page-toc{ background:var(--pwb-cream-2); border-radius:12px; padding:20px 24px; margin-bottom:40px; }
.page-toc strong{ display:block; margin-bottom:8px; font-family:var(--pwb-font-head); color:var(--pwb-green-dark); }
.page-toc ul{ margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px 20px; }
.page-toc a{ font-weight:700; font-size:.9rem; }

/* ==========================================================================
   6. FOOTER
   ========================================================================== */
.site-footer{ background:var(--pwb-green-dark); color:#dfeee3; padding:56px 0 20px; margin-top:60px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:36px; }
@media(max-width:800px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }
.site-footer h4{ color:var(--pwb-white); font-size:1rem; margin-bottom:14px; }
.site-footer a{ color:#cfe9d6; }
.site-footer a:hover{ color:var(--pwb-orange); }
.site-footer ul{ list-style:none; margin:0; padding:0; }
.site-footer li{ margin-bottom:8px; font-size:.92rem; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.15); margin-top:40px; padding-top:18px; text-align:center; font-size:.82rem; color:#a9c9b1; }
.social-row{ display:flex; gap:12px; margin-top:10px; }
.social-row a{ width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; }
.social-row a:hover{ background:var(--pwb-orange); }

/* Utility */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.small{ font-size:.85rem; color:var(--pwb-text-light); }
.divider{ height:1px; background:var(--pwb-border); margin:40px 0; border:none; }

/* ==========================================================================
   PEACE FLYWAY ADDITIONS
   ========================================================================== */
:root{ --pf-sky:#2f6f9f; --pf-sky-light:#dcebf5; }
.site-branding .site-title span{ color:var(--pwb-orange); }
.peace-stops{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.peace-stop{ background:var(--pwb-white); border-radius:var(--pwb-radius); box-shadow:var(--pwb-shadow); padding:26px; border-top:5px solid var(--pwb-orange); }
.peace-stop .when{ font-family:var(--pwb-font-head); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--pf-sky); margin:0 0 6px; }
.peace-stop h3{ margin-bottom:.4em; }
.peace-stop.center{ border-top-color:var(--pwb-green); }
.peace-stop.north{ border-top-color:var(--pf-sky); }
.map-feature{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:36px; align-items:start; }
.map-feature .map-frame{ background:var(--pwb-white); border-radius:var(--pwb-radius); box-shadow:var(--pwb-shadow); padding:14px; }
.map-frame svg{ width:100%; height:auto; display:block; border-radius:8px; }
.map-key{ list-style:none; margin:14px 0; padding:0; }
.map-key li{ display:flex; gap:10px; align-items:center; margin-bottom:8px; }
.map-key i{ display:inline-block; flex-shrink:0; }
.k-peace{ width:16px; height:16px; border-radius:50%; background:var(--pwb-orange); box-shadow:0 0 0 3px rgba(232,135,30,.3); }
.k-pilot{ width:11px; height:11px; border-radius:50%; background:var(--pwb-green); }
.k-cand{ width:11px; height:11px; border-radius:50%; background:#fff; border:2px solid var(--pwb-orange); }
.k-route{ width:28px; height:4px; background:var(--pwb-orange); border-radius:2px; }
.k-branch{ width:28px; height:0; border-top:3px dashed var(--pwb-orange); }
.m-water{fill:#e3edf2}.m-land{fill:#fffdf8;stroke:#d9d3c4;stroke-width:.8}.m-state{fill:none;stroke:#d9d3c4;stroke-width:.5}
.m-ctry{font:600 9px var(--pwb-font-head);letter-spacing:.18em;fill:#8a8a7e}
.m-route{fill:none;stroke:#e8871e;stroke-width:3.2;stroke-linejoin:round;stroke-linecap:round}
.m-branch{fill:none;stroke:#e8871e;stroke-width:2;stroke-dasharray:5 4;stroke-linecap:round}
.m-dot{fill:#fff;stroke:#e8871e;stroke-width:1.6}.m-pilot{fill:#2d6a4f;stroke:#fff;stroke-width:1.2}
.m-peace{fill:#e8871e;stroke:#fff;stroke-width:2}.m-peace-ring{fill:none;stroke:#e8871e;stroke-width:1.5;stroke-opacity:.5}
.m-lbl{font:600 8.5px var(--pwb-font-body);fill:#5c5c52}.m-big{font:700 10.5px var(--pwb-font-head);fill:#1b4332}.m-sub{font:600 8px var(--pwb-font-body);fill:#c96f14}
.route-region{ margin:0 0 34px; }
.route-region h2{ font-size:1.45rem; border-bottom:2px solid var(--pwb-border); padding-bottom:6px; }
.route-region.center h2{ color:var(--pwb-orange-dark); }
.stop-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.stop-item{ background:var(--pwb-white); border:1px solid var(--pwb-border); border-radius:12px; padding:16px 18px; margin:0; }
.stop-item h3{ font-size:1.05rem; margin:0 0 2px; }
.stop-item .where{ font-size:.88rem; color:var(--pwb-text-light); margin:0 0 6px; }
.stop-item p{ font-size:.95rem; margin:0; }
.stop-tag{ display:inline-block; font-size:.7rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:2px 8px; border-radius:20px; margin:0 6px 6px 0; background:var(--pwb-cream-2); color:var(--pwb-text-light); }
.stop-tag.peace{ background:var(--pwb-orange); color:#fff; }
.stop-tag.pilot{ background:var(--pwb-green); color:#fff; }
.stop-tag.active{ background:#d8f3dc; color:var(--pwb-green-dark); }
.pillars{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.quote-band{ background:var(--pf-sky); color:#fff; border-radius:var(--pwb-radius); padding:34px 38px; }
.quote-band h2,.quote-band p{ color:#fff; }
@media(max-width:900px){ .peace-stops,.pillars,.map-feature,.stop-list{ grid-template-columns:1fr; } }

.sp-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.sp-card{ margin:0; background:var(--pwb-white); border-radius:var(--pwb-radius); overflow:hidden; box-shadow:var(--pwb-shadow); }
.sp-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.sp-card figcaption{ padding:14px 18px 18px; }
.sp-card h3{ font-size:1.08rem; margin:0; }
.sp-card .sci{ font-style:italic; color:var(--pwb-text-light); font-size:.88rem; margin:0 0 6px; }
.sp-card p{ font-size:.94rem; margin:0; }
.region-intro{ max-width:780px; }
.photo-strip{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
.photo-strip img{ width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; }
.hero-photo{ border-radius:var(--pwb-radius); overflow:hidden; box-shadow:var(--pwb-shadow); }
.hero-photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.rot-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.rot-list li{ background:var(--pwb-white); border-left:4px solid var(--pf-sky); border-radius:10px; padding:14px 16px; margin:0; }
.rot-list h4{ margin:0 0 2px; font-size:1rem; }
.rot-list .where{ font-size:.85rem; color:var(--pwb-text-light); margin:0 0 4px; }
.rot-list p{ font-size:.93rem; margin:0; }
.stat-big{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; text-align:center; }
.stat-big div{ background:var(--pwb-white); border-radius:var(--pwb-radius); padding:20px 12px; box-shadow:var(--pwb-shadow); }
.stat-big b{ display:block; font-family:var(--pwb-font-head); font-size:2rem; color:var(--pwb-orange-dark); line-height:1.1; }
.credits td,.credits th{ padding:6px 8px; border-bottom:1px solid var(--pwb-border); font-size:.88rem; text-align:left; vertical-align:top; }
.credits{ width:100%; border-collapse:collapse; }
@media(max-width:900px){ .sp-grid,.rot-list,.stat-big{ grid-template-columns:1fr 1fr; } .photo-strip{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:560px){ .sp-grid,.rot-list,.stat-big{ grid-template-columns:1fr; } }

/* ==========================================================================
   COLORFUL & FUN
   ========================================================================== */
:root{ --fun-orange:#ff7a1a; --fun-pink:#ff4f8b; --fun-purple:#8a4fff; --fun-sky:#22a7f0; --fun-teal:#14b8a6; --fun-sun:#ffc531; --fun-leaf:#3fbf5a; }
body{ background:#fffaf2; }
.hero{ background:linear-gradient(125deg,#ff7a1a 0%,#ff4f8b 38%,#8a4fff 70%,#22a7f0 100%); padding:96px 0 110px; }
.hero::after{ background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30'%3E%3Cpath d='M20 15C16 4 4 2 3 10C2 18 13 20 20 16C27 20 38 18 37 10C36 2 24 4 20 15Z' fill='%23ffffff' fill-opacity='.22'/%3E%3C/svg%3E") 8% 18%/70px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30'%3E%3Cpath d='M20 15C16 4 4 2 3 10C2 18 13 20 20 16C27 20 38 18 37 10C36 2 24 4 20 15Z' fill='%23ffffff' fill-opacity='.22'/%3E%3C/svg%3E") 88% 26%/110px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30'%3E%3Cpath d='M20 15C16 4 4 2 3 10C2 18 13 20 20 16C27 20 38 18 37 10C36 2 24 4 20 15Z' fill='%23ffffff' fill-opacity='.22'/%3E%3C/svg%3E") 72% 82%/56px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30'%3E%3Cpath d='M20 15C16 4 4 2 3 10C2 18 13 20 20 16C27 20 38 18 37 10C36 2 24 4 20 15Z' fill='%23ffffff' fill-opacity='.22'/%3E%3C/svg%3E") 22% 78%/90px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30'%3E%3Cpath d='M20 15C16 4 4 2 3 10C2 18 13 20 20 16C27 20 38 18 37 10C36 2 24 4 20 15Z' fill='%23ffffff' fill-opacity='.22'/%3E%3C/svg%3E") 50% 12%/44px no-repeat; animation:pf-float 9s ease-in-out infinite alternate; }
@keyframes pf-float{ from{ transform:translateY(0) } to{ transform:translateY(-14px) } }
@media (prefers-reduced-motion:reduce){ .hero::after{ animation:none; } }
.hero h1{ font-size:clamp(2.6rem,6vw,4.2rem); text-shadow:0 3px 18px rgba(80,0,60,.25); color:#fff; }
.hero .lead{ font-size:1.18rem; color:#fff; max-width:760px; }
.hero .breadcrumb-line{ color:#fff3c4; }
.page-hero{ background:linear-gradient(125deg,#ff7a1a,#ff4f8b 45%,#8a4fff); position:relative; overflow:hidden; }
.page-hero::after{ content:""; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30'%3E%3Cpath d='M20 15C16 4 4 2 3 10C2 18 13 20 20 16C27 20 38 18 37 10C36 2 24 4 20 15Z' fill='%23ffffff' fill-opacity='.22'/%3E%3C/svg%3E") 6% 30%/64px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30'%3E%3Cpath d='M20 15C16 4 4 2 3 10C2 18 13 20 20 16C27 20 38 18 37 10C36 2 24 4 20 15Z' fill='%23ffffff' fill-opacity='.22'/%3E%3C/svg%3E") 92% 60%/90px no-repeat; pointer-events:none; }
.page-hero .breadcrumb-line{ color:#fff3c4; }
.page-hero p{ color:#fff; }
.page-template-template-species-php .page-hero{ background:linear-gradient(125deg,#3fbf5a,#14b8a6 50%,#22a7f0); }
.page-template-template-peace-php .page-hero{ background:linear-gradient(125deg,#22a7f0,#8a4fff 55%,#ff4f8b); }
.page-template-template-forests-php .page-hero{ background:linear-gradient(125deg,#ff4f1a,#ff7a1a 45%,#ffc531); }
.page-template-template-helping-php .page-hero{ background:linear-gradient(125deg,#14b8a6,#3fbf5a 50%,#ffc531); }
.page-template-template-heart-php .page-hero{ background:linear-gradient(125deg,#ff4f8b,#ff7a1a 55%,#ffc531); }
.section-alt{ background:linear-gradient(180deg,#fff 0%,#fff3e6 100%); }
.section-cream2{ background:linear-gradient(135deg,#fff1d6 0%,#ffe3ef 50%,#e6f3ff 100%); }
.eyebrow{ background:linear-gradient(90deg,var(--fun-pink),var(--fun-orange)); -webkit-background-clip:text; background-clip:text; color:transparent; }
h2{ letter-spacing:-.01em; }
.btn{ background:linear-gradient(90deg,var(--fun-orange),var(--fun-pink)); transition:transform .15s ease, box-shadow .15s ease; }
.btn:hover{ transform:translateY(-2px) scale(1.03); background:linear-gradient(90deg,var(--fun-pink),var(--fun-purple)); }
.btn-green{ background:linear-gradient(90deg,var(--fun-leaf),var(--fun-teal)); }
.btn-outline{ background:rgba(255,255,255,.12); border-color:#fff; }
.card,.partner-card,.peace-stop,.sp-card,.stop-item{ border-radius:20px; transition:transform .18s ease, box-shadow .18s ease; }
.card:hover,.partner-card:hover,.sp-card:hover,.stop-item:hover{ transform:translateY(-4px) rotate(-.3deg); box-shadow:0 18px 40px rgba(138,79,255,.18); }
.grid > .card:nth-child(6n+1),.grid > .partner-card:nth-child(6n+1){ border-top:6px solid var(--fun-orange); }
.grid > .card:nth-child(6n+2),.grid > .partner-card:nth-child(6n+2){ border-top:6px solid var(--fun-pink); }
.grid > .card:nth-child(6n+3),.grid > .partner-card:nth-child(6n+3){ border-top:6px solid var(--fun-purple); }
.grid > .card:nth-child(6n+4),.grid > .partner-card:nth-child(6n+4){ border-top:6px solid var(--fun-sky); }
.grid > .card:nth-child(6n+5),.grid > .partner-card:nth-child(6n+5){ border-top:6px solid var(--fun-teal); }
.grid > .card:nth-child(6n),.grid > .partner-card:nth-child(6n){ border-top:6px solid var(--fun-sun); }
.pillars .icon-card:nth-child(1) .icon{ color:var(--fun-orange); }
.pillars .icon-card:nth-child(2) .icon{ color:var(--fun-pink); }
.pillars .icon-card:nth-child(3) .icon{ color:var(--fun-purple); }
.peace-stop{ border-top:8px solid var(--fun-orange); }
.peace-stop.center{ border-top-color:var(--fun-pink); }
.peace-stop.north{ border-top-color:var(--fun-sky); }
.peace-stop .when{ color:var(--fun-purple); }
.sp-grid .sp-card:nth-child(6n+1){ border-bottom:6px solid var(--fun-orange); }
.sp-grid .sp-card:nth-child(6n+2){ border-bottom:6px solid var(--fun-pink); }
.sp-grid .sp-card:nth-child(6n+3){ border-bottom:6px solid var(--fun-purple); }
.sp-grid .sp-card:nth-child(6n+4){ border-bottom:6px solid var(--fun-sky); }
.sp-grid .sp-card:nth-child(6n+5){ border-bottom:6px solid var(--fun-teal); }
.sp-grid .sp-card:nth-child(6n){ border-bottom:6px solid var(--fun-sun); }
.sp-card img{ transition:transform .4s ease; }
.sp-card:hover img{ transform:scale(1.06); }
.photo-strip img{ border-radius:18px; border:4px solid #fff; box-shadow:0 8px 22px rgba(255,79,139,.18); transition:transform .2s ease; }
.photo-strip img:nth-child(odd){ transform:rotate(-2deg); }
.photo-strip img:nth-child(even){ transform:rotate(2deg); }
.photo-strip img:hover{ transform:rotate(0) scale(1.06); }
.rot-list li:nth-child(4n+1){ border-left-color:var(--fun-orange); }
.rot-list li:nth-child(4n+2){ border-left-color:var(--fun-pink); }
.rot-list li:nth-child(4n+3){ border-left-color:var(--fun-purple); }
.rot-list li:nth-child(4n){ border-left-color:var(--fun-teal); }
.stat-big div{ border-radius:20px; }
.stat-big div:nth-child(1) b{ color:var(--fun-orange); }
.stat-big div:nth-child(2) b{ color:var(--fun-pink); }
.stat-big div:nth-child(3) b{ color:var(--fun-purple); }
.stat-big div:nth-child(4) b{ color:var(--fun-sky); }
.quote-band{ background:linear-gradient(135deg,var(--fun-purple),var(--fun-sky)); border-radius:24px; }
.cta-banner{ background:linear-gradient(120deg,var(--fun-orange),var(--fun-pink),var(--fun-purple)); border-radius:24px; }
.stop-tag.peace{ background:linear-gradient(90deg,var(--fun-orange),var(--fun-pink)); }
.stop-tag.pilot{ background:var(--fun-leaf); }
.route-region.center h2{ color:var(--fun-pink); }
.site-header{ border-bottom:4px solid transparent; border-image:linear-gradient(90deg,var(--fun-orange),var(--fun-pink),var(--fun-purple),var(--fun-sky),var(--fun-teal)) 1; }
#primary-menu a:hover, #primary-menu li.current-menu-item > a{ background:linear-gradient(90deg,#fff1d6,#ffe3ef); color:var(--fun-pink); }
.site-footer{ background:linear-gradient(160deg,#2a1b5c 0%,#3b1f73 50%,#173d6b 100%); }
.site-footer a:hover{ color:var(--fun-sun); }
.social-row a:hover{ background:var(--fun-pink); }
#primary-menu a{ padding:8px 9px; font-size:.86rem; }
.site-branding .site-tagline{ white-space:nowrap; }
.map-frame{ border:4px solid #fff; box-shadow:0 14px 36px rgba(34,167,240,.2); border-radius:22px; }

/* ===== HEARTLAND WAYSTATION: prairie-sunshine palette ===== */
.hero{ background:linear-gradient(125deg,#ffc531 0%,#ff7a1a 35%,#ff4f8b 62%,#3fbf5a 100%); }
.page-hero{ background:linear-gradient(125deg,#ff7a1a,#ffc531 50%,#3fbf5a); }
.page-template-template-peace-php .page-hero{ background:linear-gradient(125deg,#22a7f0,#8a4fff 55%,#ff4f8b); }
.page-template-template-grow-php .page-hero{ background:linear-gradient(125deg,#3fbf5a,#14b8a6 55%,#ffc531); }
.page-template-template-nursery-php .page-hero{ background:linear-gradient(125deg,#ff4f8b,#ffc531 55%,#3fbf5a); }
.page-template-template-veterans-php .page-hero{ background:linear-gradient(125deg,#173d6b,#22a7f0 55%,#ffc531); }
.page-template-template-youth-php .page-hero{ background:linear-gradient(125deg,#8a4fff,#22a7f0 50%,#3fbf5a); }
.page-template-template-rotary-php .page-hero{ background:linear-gradient(125deg,#1f4fa3,#22a7f0 50%,#ffc531); }
.way-grid{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.way{ background:#fff; border-radius:20px; padding:20px 16px; text-align:center; box-shadow:var(--pwb-shadow); }
.way .em{ font-size:2.2rem; line-height:1; display:block; margin-bottom:8px; }
.way h3{ font-size:1rem; margin:0 0 4px; } .way p{ font-size:.9rem; margin:0; color:var(--pwb-text-light); }
.way:nth-child(1){ border-top:6px solid var(--fun-orange); } .way:nth-child(2){ border-top:6px solid var(--fun-sky); } .way:nth-child(3){ border-top:6px solid var(--fun-leaf); } .way:nth-child(4){ border-top:6px solid var(--fun-purple); } .way:nth-child(5){ border-top:6px solid var(--fun-pink); }
.feat{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:36px; align-items:center; }
.feat + .feat{ margin-top:46px; } .feat.flip > :first-child{ order:2; }
.pill{ display:inline-block; background:var(--fun-sun); color:#4a3200; font-weight:800; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding:3px 10px; border-radius:20px; margin-bottom:8px; }
.timeline{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
@media(max-width:900px){ .way-grid{ grid-template-columns:1fr 1fr; } .feat,.timeline{ grid-template-columns:1fr; } .feat.flip > :first-child{ order:0; } }

/* Contact form */
.contact-form label{ display:block; font-weight:700; font-family:var(--pwb-font-head); margin-bottom:4px; }
.contact-form input,.contact-form select,.contact-form textarea{ width:100%; padding:12px 14px; border:2px solid var(--pwb-border); border-radius:12px; font:inherit; background:#fff; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{ outline:none; border-color:var(--fun-purple); }
.contact-form button{ border:0; cursor:pointer; }
.contact-form .hp{ position:absolute; left:-9999px; }

/* ===== Photo headers (replace gradients) ===== */
.hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-gardening.jpg") center 40%/cover no-repeat !important; }
.page-hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-monarch.jpg") center 40%/cover no-repeat !important; padding:80px 0 86px; }
.hero::after,.page-hero::after{ opacity:.45; }
.page-hero h1,.hero h1{ text-shadow:0 3px 18px rgba(0,0,0,.35); }
.page-hero p,.hero .lead{ text-shadow:0 1px 8px rgba(0,0,0,.35); }
.page-template-template-about-php .page-hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-prairie.jpg") center 40%/cover no-repeat !important; }
.page-template-template-peace-php .page-hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-peacegarden.jpg") center 40%/cover no-repeat !important; }
.page-template-template-grow-php .page-hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-queen.jpg") center 40%/cover no-repeat !important; }
.page-template-template-nursery-php .page-hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-clearwing.jpg") center 40%/cover no-repeat !important; }
.page-template-template-veterans-php .page-hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-fritillary.jpg") center 40%/cover no-repeat !important; }
.page-template-template-youth-php .page-hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-paintedlady.jpg") center 40%/cover no-repeat !important; }
.page-template-template-rotary-php .page-hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-swallowtail.jpg") center 40%/cover no-repeat !important; }
.page-template-template-get-involved-php .page-hero{ background:linear-gradient(120deg,rgba(18,14,40,.68) 0%,rgba(18,14,40,.42) 60%,rgba(10,40,40,.30) 100%), url("assets/photos/hdr-monarch.jpg") center 40%/cover no-repeat !important; }

/* ===== Blue accents (replace orange) ===== */
:root{ --fun-orange:#1f6fe5; --pwb-orange:#1f6fe5; --pwb-orange-dark:#1550b8; --fun-pink:#7b5cff; }
.btn{ background:linear-gradient(90deg,#1f6fe5,#22a7f0) !important; color:#fff; }
.btn:hover{ background:linear-gradient(90deg,#1550b8,#7b5cff) !important; }
.btn-green{ background:linear-gradient(90deg,#1f9d6b,#14b8a6) !important; }
.btn-outline{ background:rgba(255,255,255,.14) !important; border-color:#fff; }
.eyebrow{ background:linear-gradient(90deg,#1f6fe5,#14b8a6) !important; -webkit-background-clip:text !important; background-clip:text !important; color:transparent !important; }
.site-branding .site-title span{ color:#1f6fe5 !important; }
.pill{ background:#dbeafe !important; color:#1550b8 !important; }
.cta-banner,.quote-band{ background:linear-gradient(120deg,#1550b8,#1f6fe5 50%,#14b8a6) !important; }
.stop-tag.peace{ background:linear-gradient(90deg,#1f6fe5,#7b5cff) !important; }
.peace-stop{ border-top-color:#1f6fe5 !important; } .peace-stop.center{ border-top-color:#14b8a6 !important; } .peace-stop.north{ border-top-color:#7b5cff !important; }
.peace-stop .when{ color:#1550b8 !important; }
.stat-big div:nth-child(1) b,.hex .em+h3{ color:inherit; }
.stat-big div:nth-child(1) b{ color:#1f6fe5 !important; }
#primary-menu a:hover, #primary-menu li.current-menu-item > a{ background:#e8f1ff !important; color:#1550b8 !important; }
a:hover{ color:#1f6fe5; }
.site-header{ border-image:linear-gradient(90deg,#1f6fe5,#14b8a6,#7b5cff) 1 !important; }
.m-route,.m-branch{ stroke:#1f6fe5 !important; } .m-dot{ stroke:#1f6fe5 !important; } .m-peace{ fill:#1f6fe5 !important; } .m-peace-ring{ stroke:#1f6fe5 !important; } .m-sub{ fill:#1550b8 !important; }
.k-peace{ background:#1f6fe5 !important; box-shadow:0 0 0 3px rgba(31,111,229,.3) !important; } .k-cand{ border-color:#1f6fe5 !important; } .k-route{ background:#1f6fe5 !important; } .k-branch{ border-top-color:#1f6fe5 !important; }
.section-cream2{ background:linear-gradient(135deg,#eef5ff 0%,#f3efff 50%,#e9fbf7 100%) !important; }
.section-alt{ background:linear-gradient(180deg,#fff 0%,#f2f7ff 100%) !important; }
body{ background:#f8fbff !important; }

/* ===== More photos: card photos + page galleries ===== */
.card-photo{ display:block; width:calc(100% + 56px); max-width:none; margin:-28px -28px 18px; aspect-ratio:16/10; object-fit:cover; border-radius:20px 20px 0 0; }
.hex .card-photo{ width:calc(100% + 36px); margin:-22px -18px 14px; }
.partner-card .card-photo{ width:calc(100% + 48px); margin:-24px -24px 6px; }
.peace-stop .card-photo{ width:calc(100% + 52px); margin:-26px -26px 16px; }
.card:has(.card-photo),.hex:has(.card-photo),.partner-card:has(.card-photo),.peace-stop:has(.card-photo){ overflow:hidden; }
.mosaic{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:190px; gap:12px; margin-top:18px; }
.mosaic figure{ margin:0; position:relative; overflow:hidden; border-radius:18px; box-shadow:var(--pwb-shadow); }
.mosaic figure:nth-child(1),.mosaic figure:nth-child(6){ grid-column:span 2; grid-row:span 2; }
.mosaic img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.mosaic figure:hover img{ transform:scale(1.07); }
.mosaic figcaption{ position:absolute; left:0; right:0; bottom:0; padding:22px 12px 9px; color:#fff; font-size:.82rem; font-weight:700; background:linear-gradient(transparent,rgba(0,0,0,.65)); }
@media(max-width:900px){ .mosaic{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:160px; } }

.site-branding .logo-mark{ width:50px !important; height:50px !important; filter:drop-shadow(0 2px 4px rgba(0,0,0,.12)); }
