/*
Theme Name: The Peace Flyway
Theme URI: https://peaceflyway.org
Author: The Peace Flyway
Author URI: https://peaceflyway.org
Description: The Peace Flyway: the monarch's route from Michoacán up I-35 through Kansas City to the International Peace Garden, with historic cemeteries and gardens along the way as pollinator waystations and places of peace. Sister site to Pollinators Without Borders, Monarchs Without Borders and Give Peace a Chance.
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: peace-flyway
Tags: nonprofit, environment, one-column, two-columns, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   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; }

/* 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-monarch.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-gardening.jpg") center 40%/cover no-repeat !important; }
.page-template-template-route-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-species-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-helping-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-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-forests-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-cluster.jpg") center 40%/cover no-repeat !important; }
.page-template-template-heart-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-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-clearwing.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)); }
