/*
Theme Name: Peace Envisioners
Theme URI: https://peaceenvisioners.org
Author: Peace Envisioners Nepal
Author URI: https://peaceenvisioners.org
Description: A custom, SEO-friendly, fully customizable WordPress theme built for Peace Envisioners Nepal — a peacebuilding NGO working with conflict-affected youth, ex-combatants and communities toward lasting peace, restorative justice and social harmony. Includes custom Programs, Team and Impact Story post types, a full Customizer setup (colors, logo, hero, contact info, socials), structured SEO markup (Open Graph, Twitter Cards, JSON-LD), and a prayer-flag-inspired visual identity.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: peace-envisioners
Tags: nonprofit, ngo, one-column, two-columns, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, accessibility-ready

Peace Envisioners WordPress Theme, Copyright 2026
Peace Envisioners is distributed under the terms of the GNU GPL.
*/

/* =========================================================
   DESIGN TOKENS
   Palette drawn directly from the Peace Envisioners logo: the
   dark forest-green wordmark, the leaf greens, and the bright
   teal-mint of the hummingbird/dove figure. The five-pennant
   prayer-flag motif is kept as the signature element, but its
   colors are pulled from the same brand-green family instead of
   the traditional five colors, so everything reads as one mark.
   ========================================================= */
:root{
  /* core palette — sampled from logo_peace_envisioners.jpg */
  --pe-forest:      #1F5D3B;   /* deep forest green — logo wordmark */
  --pe-forest-tint: #2C7A4E;
  --pe-leaf:        #2FA35B;   /* leaf green — logo leaves */
  --pe-leaf-tint:   #45BE72;
  --pe-teal:        #0FBE94;   /* bright teal-mint — bird body */
  --pe-teal-tint:   #4FE0C4;
  --pe-emerald:     #146C43;   /* rich emerald — CTA / hover / link accent */
  --pe-mint-pale:   #EAF7F0;   /* pale mint — echoes logo's white glow */
  --pe-paper:       #F6FBF8;   /* near-white, faint mint cast, like logo bg */
  --pe-paper-deep:  #DCEEE3;
  --pe-ink:         #1B241E;   /* near-black, warm-green cast */
  --pe-ink-soft:    #47554C;

  /* semantic aliases (overridable from Customizer) */
  --pe-color-primary:   var(--pe-forest);
  --pe-color-secondary: var(--pe-leaf);
  --pe-color-accent:    var(--pe-teal);
  --pe-color-earth:     var(--pe-emerald);
  --pe-color-bg:        var(--pe-paper);
  --pe-color-surface:   #FFFFFF;
  --pe-color-ink:       var(--pe-ink);
  --pe-color-ink-soft:  var(--pe-ink-soft);

  /* type */
  --pe-font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --pe-font-body: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --pe-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --pe-radius: 3px;
  --pe-container: 1180px;
  --pe-flag-1:#1F5D3B; --pe-flag-2:#2FA35B; --pe-flag-3:#0FBE94; --pe-flag-4:#6FE3C4; --pe-flag-5:#EAF7F0;
}

/* =========================================================
   RESET / BASE
   ========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}
body{
  margin:0;
  background:var(--pe-color-bg);
  color:var(--pe-color-ink);
  font-family:var(--pe-font-body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--pe-color-primary);text-decoration-thickness:1.5px;text-underline-offset:2px;}
a:hover{color:var(--pe-color-earth);}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid var(--pe-color-accent);outline-offset:2px;
}
.screen-reader-text{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.skip-link{position:absolute;left:0;top:-60px;background:var(--pe-color-primary);color:#fff;padding:.75em 1.25em;z-index:10000;transition:top .2s;}
.skip-link:focus{top:0;}

h1,h2,h3,h4{font-family:var(--pe-font-display);font-weight:600;line-height:1.12;margin:0 0 .5em;color:var(--pe-color-primary);letter-spacing:-0.01em;}
h1{font-size:clamp(2.1rem,4.2vw,3.4rem);font-optical-sizing:auto;}
h2{font-size:clamp(1.6rem,3vw,2.3rem);}
h3{font-size:1.3rem;}
p{margin:0 0 1.2em;}
.container{max-width:var(--pe-container);margin:0 auto;padding:0 24px;}
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--pe-font-body);font-weight:600;font-size:.95rem;
  padding:.85em 1.6em;border-radius:var(--pe-radius);border:2px solid var(--pe-color-primary);
  background:var(--pe-color-primary);color:#fff;cursor:pointer;text-decoration:none;
  transition:transform .15s ease, background .15s ease, color .15s ease;
}
.btn:hover{background:var(--pe-color-earth);border-color:var(--pe-color-earth);color:#fff;transform:translateY(-2px);}
.btn-outline{background:transparent;color:var(--pe-color-primary);}
.btn-outline:hover{background:var(--pe-color-primary);color:#fff;}
.btn-accent{background:var(--pe-color-accent);border-color:var(--pe-color-accent);color:var(--pe-ink);}
.btn-accent:hover{background:var(--pe-color-earth);border-color:var(--pe-color-earth);color:#fff;}
.eyebrow{
  font-family:var(--pe-font-mono);text-transform:uppercase;letter-spacing:.14em;
  font-size:.78rem;color:var(--pe-color-earth);display:block;margin-bottom:.6em;font-weight:600;
}

/* =========================================================
   PRAYER-FLAG SIGNATURE ELEMENT
   ========================================================= */
.flag-strand{display:flex;align-items:flex-start;justify-content:center;gap:2px;width:100%;overflow:hidden;line-height:0;}
.flag-strand .pennant{
  width:26px;height:34px;flex:0 0 auto;
  clip-path:polygon(0 0,100% 0,50% 100%);
  transform-origin:top center;
  animation:pe-sway 3.4s ease-in-out infinite;
}
.flag-strand .pennant:nth-child(5n+1){background:var(--pe-flag-1);}
.flag-strand .pennant:nth-child(5n+2){background:var(--pe-flag-2);}
.flag-strand .pennant:nth-child(5n+3){background:var(--pe-flag-3);}
.flag-strand .pennant:nth-child(5n+4){background:var(--pe-flag-4);}
.flag-strand .pennant:nth-child(5n+5){background:var(--pe-flag-5);}
.flag-strand .pennant:nth-child(2n){animation-delay:.4s;}
.flag-strand .pennant:nth-child(3n){animation-delay:.8s;}
.flag-strand .pennant:nth-child(5n){animation-delay:1.2s;}
@keyframes pe-sway{
  0%,100%{transform:rotate(-3deg);}
  50%{transform:rotate(3deg);}
}
.flag-divider{margin:0;padding:10px 0;background:var(--pe-color-surface);border-top:1px solid var(--pe-paper-deep);border-bottom:1px solid var(--pe-paper-deep);}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{background:var(--pe-color-surface);border-bottom:1px solid var(--pe-paper-deep);position:sticky;top:0;z-index:999;}
.site-header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:var(--pe-container);margin:0 auto;gap:20px;}
.site-branding{display:flex;align-items:center;gap:12px;text-decoration:none;}
.site-branding img{max-height:52px;width:auto;}
.site-branding .brand-text{display:flex;flex-direction:column;}
.site-title{font-family:var(--pe-font-display);font-size:1.35rem;font-weight:700;color:var(--pe-color-primary);margin:0;line-height:1.1;}
.site-title a{color:inherit;text-decoration:none;}
.site-description{font-family:var(--pe-font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--pe-color-ink-soft);margin:2px 0 0;}

.main-navigation{display:flex;align-items:center;gap:8px;}
.main-navigation ul{list-style:none;display:flex;gap:4px;margin:0;padding:0;}
.main-navigation li{position:relative;}
.main-navigation a{display:block;padding:10px 14px;color:var(--pe-color-ink);text-decoration:none;font-weight:600;font-size:.95rem;border-radius:var(--pe-radius);}
.main-navigation a:hover,.main-navigation .current-menu-item > a{color:var(--pe-color-earth);background:var(--pe-paper);}
.main-navigation .sub-menu{display:none;position:absolute;top:100%;left:0;background:var(--pe-color-surface);border:1px solid var(--pe-paper-deep);min-width:210px;padding:6px;box-shadow:0 12px 24px rgba(30,36,32,.12);}
.main-navigation li:hover > .sub-menu,.main-navigation li:focus-within > .sub-menu{display:block;}
.header-cta{margin-left:8px;}
.menu-toggle{display:none;background:none;border:2px solid var(--pe-color-primary);border-radius:var(--pe-radius);padding:8px 10px;cursor:pointer;}
.menu-toggle span{display:block;width:22px;height:2px;background:var(--pe-color-primary);margin:4px 0;}

@media (max-width:880px){
  .menu-toggle{display:block;}
  .main-navigation{position:fixed;inset:0 0 0 auto;width:80%;max-width:340px;background:var(--pe-color-surface);flex-direction:column;align-items:flex-start;padding:90px 24px 24px;transform:translateX(100%);transition:transform .25s ease;overflow-y:auto;}
  .main-navigation.is-open{transform:translateX(0);box-shadow:-12px 0 32px rgba(0,0,0,.18);}
  .main-navigation ul{flex-direction:column;width:100%;}
  .main-navigation .sub-menu{position:static;border:none;box-shadow:none;display:none;padding-left:14px;}
  .main-navigation li.submenu-open > .sub-menu{display:block;}
  .header-cta{margin:16px 0 0;}
}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;background:var(--pe-color-primary);color:#fff;overflow:hidden;}
.hero .flag-strand{padding-top:14px;}
.hero-inner{max-width:var(--pe-container);margin:0 auto;padding:56px 24px 84px;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;}
.hero h1{color:#fff;}
.hero .hero-lede{font-size:1.15rem;color:#E7E2D0;max-width:46ch;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:1.6em;}
.hero-visual{position:relative;aspect-ratio:4/3;border-radius:var(--pe-radius);overflow:hidden;background:linear-gradient(155deg,var(--pe-forest-tint),var(--pe-teal));}
.hero-visual img{width:100%;height:100%;object-fit:cover;}
.hero-visual .placeholder-mark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);font-family:var(--pe-font-mono);font-size:.8rem;text-align:center;padding:20px;}
@media (max-width:880px){.hero-inner{grid-template-columns:1fr;padding-bottom:56px;}}

/* =========================================================
   SECTIONS
   ========================================================= */
.section{padding:76px 0;}
.section-tight{padding:52px 0;}
.section-alt{background:var(--pe-color-surface);}
.section-head{max-width:640px;margin:0 auto 44px;text-align:center;}
.section-head.align-left{margin:0 0 44px;text-align:left;}

/* mission statement */
.mission-statement{font-family:var(--pe-font-display);font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.4;color:var(--pe-color-primary);max-width:820px;margin:0 auto;text-align:center;font-weight:500;}
.mission-statement strong{color:var(--pe-color-earth);font-weight:700;}

/* stats */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--pe-paper-deep);border:1px solid var(--pe-paper-deep);}
.stat-card{background:var(--pe-color-surface);padding:32px 20px;text-align:center;}
.stat-number{font-family:var(--pe-font-mono);font-size:2.4rem;font-weight:700;color:var(--pe-color-earth);display:block;}
.stat-label{font-size:.85rem;color:var(--pe-color-ink-soft);text-transform:uppercase;letter-spacing:.06em;margin-top:.4em;}
@media (max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr);}}

/* cards grid: programs / posts */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media (max-width:920px){.card-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.card-grid{grid-template-columns:1fr;}}
.pe-card{background:var(--pe-color-surface);border:1px solid var(--pe-paper-deep);border-radius:var(--pe-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease;}
.pe-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px rgba(30,36,32,.1);}
.pe-card .card-media{aspect-ratio:16/10;background:var(--pe-paper-deep);overflow:hidden;}
.pe-card .card-media img{width:100%;height:100%;object-fit:cover;}
.pe-card .card-body{padding:22px 22px 26px;flex:1;display:flex;flex-direction:column;}
.pe-card h3{margin-bottom:.4em;}
.pe-card h3 a{color:var(--pe-color-primary);text-decoration:none;}
.pe-card h3 a:hover{color:var(--pe-color-earth);}
.pe-card .card-meta{font-family:var(--pe-font-mono);font-size:.75rem;color:var(--pe-color-ink-soft);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.6em;}
.pe-card .card-excerpt{color:var(--pe-color-ink-soft);flex:1;}
.pe-card .card-link{margin-top:14px;font-weight:600;font-size:.9rem;}

/* timeline (history) — sequence, so numbering is warranted */
.timeline{max-width:760px;margin:0 auto;position:relative;padding-left:32px;border-left:2px solid var(--pe-paper-deep);}
.timeline-item{position:relative;padding-bottom:40px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-item::before{content:attr(data-year);position:absolute;left:-32px;top:0;transform:translateX(-100%);width:auto;font-family:var(--pe-font-mono);font-weight:700;color:var(--pe-color-earth);white-space:nowrap;padding-right:16px;}
.timeline-item::after{content:"";position:absolute;left:-5px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--pe-color-earth);border:2px solid var(--pe-color-bg);}
.timeline-item h3{margin-bottom:.3em;}
@media (max-width:560px){.timeline{padding-left:20px;}.timeline-item::before{position:static;transform:none;display:block;padding:0 0 6px;}.timeline-item::after{left:-24px;}}

/* testimonials */
.testimonial{background:var(--pe-color-primary);color:#fff;border-radius:var(--pe-radius);padding:40px;}
.testimonial blockquote{font-family:var(--pe-font-display);font-size:1.3rem;line-height:1.5;margin:0 0 1em;}
.testimonial cite{font-style:normal;font-family:var(--pe-font-mono);font-size:.8rem;color:var(--pe-color-accent);text-transform:uppercase;letter-spacing:.06em;}

/* CTA band */
.cta-band{background:var(--pe-color-earth);color:#fff;text-align:center;padding:64px 24px;}
.cta-band h2{color:#fff;}
.cta-band p{max-width:56ch;margin:0 auto 1.6em;color:#F3E4DE;}

/* team */
.team-card{text-align:center;}
.team-card .card-media{aspect-ratio:1/1;border-radius:50%;max-width:160px;margin:0 auto 14px;}
.team-role{font-family:var(--pe-font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--pe-color-earth);}

/* content / single / page */
.entry-header{max-width:820px;margin:0 auto 32px;}
.entry-header .eyebrow{text-align:center;}
.entry-title{text-align:center;}
.entry-meta{text-align:center;font-family:var(--pe-font-mono);font-size:.8rem;color:var(--pe-color-ink-soft);text-transform:uppercase;letter-spacing:.05em;}
.entry-thumbnail{max-width:var(--pe-container);margin:0 auto 40px;border-radius:var(--pe-radius);overflow:hidden;}
.entry-content{max-width:760px;margin:0 auto;}
.entry-content h2{margin-top:1.6em;}
.entry-content blockquote{border-left:4px solid var(--pe-color-accent);margin:1.5em 0;padding:.4em 0 .4em 1.4em;font-family:var(--pe-font-display);font-size:1.15rem;color:var(--pe-color-primary);}
.entry-content img{border-radius:var(--pe-radius);margin:1.4em 0;}
.entry-content ul,.entry-content ol{padding-left:1.4em;}
.entry-content a{text-decoration-line:underline;}
.entry-footer{max-width:760px;margin:40px auto 0;padding-top:24px;border-top:1px solid var(--pe-paper-deep);font-size:.9rem;color:var(--pe-color-ink-soft);}
.entry-footer a{margin-right:10px;}

.content-area{padding:64px 0;}
.two-col{display:grid;grid-template-columns:1fr 320px;gap:56px;max-width:var(--pe-container);margin:0 auto;}
@media (max-width:880px){.two-col{grid-template-columns:1fr;}}
.widget{margin-bottom:36px;background:var(--pe-color-surface);border:1px solid var(--pe-paper-deep);padding:24px;border-radius:var(--pe-radius);}
.widget-title{font-family:var(--pe-font-display);font-size:1.1rem;color:var(--pe-color-primary);margin-bottom:.8em;}
.widget ul{list-style:none;margin:0;padding:0;}
.widget li{padding:8px 0;border-bottom:1px solid var(--pe-paper-deep);}
.widget li:last-child{border-bottom:none;}

/* pagination */
.pe-pagination{display:flex;justify-content:center;gap:8px;margin-top:48px;flex-wrap:wrap;}
.pe-pagination a,.pe-pagination span{padding:.6em 1em;border:1px solid var(--pe-paper-deep);border-radius:var(--pe-radius);text-decoration:none;font-weight:600;font-size:.9rem;color:var(--pe-color-ink);}
.pe-pagination .current{background:var(--pe-color-primary);color:#fff;border-color:var(--pe-color-primary);}
.pe-pagination a:hover{background:var(--pe-paper);}

/* forms */
input[type=text],input[type=email],input[type=url],input[type=tel],input[type=search],textarea,select{
  width:100%;padding:.85em 1em;border:1px solid var(--pe-paper-deep);border-radius:var(--pe-radius);
  font-family:var(--pe-font-body);font-size:1rem;background:#fff;color:var(--pe-color-ink);
}
textarea{min-height:140px;resize:vertical;}
label{display:block;font-weight:600;margin-bottom:.4em;font-size:.92rem;}
.form-row{margin-bottom:20px;}
.search-form{display:flex;gap:8px;}

/* footer */
.site-footer{background:var(--pe-color-primary);color:#E7E2D0;}
.footer-top{padding:64px 0 40px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h3,.footer-grid .widget-title{color:#fff;font-family:var(--pe-font-display);font-size:1.05rem;margin-bottom:.9em;}
.footer-about img{max-height:44px;margin-bottom:14px;}
.footer-about p{color:#C9D0C6;font-size:.92rem;}
.site-footer a{color:#E7E2D0;}
.site-footer a:hover{color:var(--pe-color-accent);}
.footer-grid ul{list-style:none;margin:0;padding:0;}
.footer-grid li{margin-bottom:10px;font-size:.92rem;}
.social-links{display:flex;gap:10px;margin-top:14px;}
.social-links a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(231,226,208,.35);border-radius:50%;font-size:.85rem;}
.social-links a:hover{background:var(--pe-color-accent);color:var(--pe-ink);border-color:var(--pe-color-accent);}
.footer-bottom{border-top:1px solid rgba(231,226,208,.2);padding:22px 0;font-size:.85rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#C9D0C6;}
.footer-bottom a{color:#C9D0C6;}

/* utility */
.text-center{text-align:center;}
.mt-0{margin-top:0;}
.visually-hidden{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
::selection{background:var(--pe-color-accent);color:var(--pe-ink);}

/* WP core alignments */
.alignwide{max-width:1000px;margin-left:auto;margin-right:auto;}
.alignfull{max-width:none;width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;}
.wp-caption-text{font-size:.85rem;color:var(--pe-color-ink-soft);text-align:center;margin-top:.5em;}
