/* WORD — Women's Organisation for Resilience and Development
   Shared stylesheet */

:root{
  --ink:#241C15;
  --ink-muted: rgba(36,28,21,0.72);
  --ink-soft: rgba(36,28,21,0.55);
  --paper:#F1E9DA;
  --paper-soft:#E9DFC9;
  --indigo:#24304C;
  --indigo-deep:#1B2439;
  --clay:#A63D26;
  --clay-deep:#8B321F;
  --gold:#C4922E;
  --forest:#35513F;
  --line: rgba(36,28,21,0.14);
  --line-strong: rgba(36,28,21,0.22);
  --paper-faint: rgba(241,233,218,0.86);
  --paper-muted: rgba(241,233,218,0.68);
  --max: 1120px;
  --focus: #1C6DD0;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --header-h: 72px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Poppins', Helvetica, sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3{
  font-family:'Poppins', Helvetica, sans-serif;
  font-weight:600;
  margin:0;
  color:var(--ink);
  letter-spacing:-0.01em;
  text-wrap:balance;
}
h1{font-weight:700; letter-spacing:-0.03em;}
h2{font-weight:700; letter-spacing:-0.025em;}
p{margin:0 0 1em;}
a{color:inherit;}
img{max-width:100%; display:block; height:auto;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 clamp(20px, 4vw, 32px);}
ul{margin:0; padding:0;}
button{font:inherit;}

/* accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid var(--focus);
  outline-offset:2px;
}
.skip-link{
  position:absolute; left:-9999px; top:auto;
  background:var(--indigo); color:var(--paper);
  padding:12px 20px; z-index:100;
  font-size:14px; font-weight:600; text-decoration:none;
}
.skip-link:focus{
  left:16px; top:16px;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
  }
}

/* ---- woven motif ---- */
.weave{
  height:12px;
  width:100%;
  background-image:
    repeating-linear-gradient(115deg, currentColor 0 2px, transparent 2px 16px),
    repeating-linear-gradient(65deg, currentColor 0 2px, transparent 2px 16px);
  background-size:16px 12px;
  opacity:0.5;
}
.weave.on-indigo{color:var(--gold); background-color:var(--indigo);}
.weave.on-paper{color:var(--clay); opacity:0.35;}

/* ---- header ---- */
header.site-header{
  position:sticky; top:0; z-index:40;
  background:rgba(241,233,218,0.92);
  border-bottom:1px solid var(--line);
  backdrop-filter:saturate(140%) blur(10px);
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  transition:box-shadow 0.25s var(--ease), background 0.25s var(--ease);
}
header.site-header.is-scrolled{
  background:rgba(241,233,218,0.97);
  box-shadow:0 8px 24px rgba(36,28,21,0.06);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
  padding:12px clamp(20px, 4vw, 32px);
  max-width:var(--max); margin:0 auto;
  min-height:var(--header-h);
  position:relative;
}
.brand{display:flex; align-items:center; text-decoration:none; flex-shrink:1; min-width:0; transition:opacity 0.2s var(--ease);}
.brand:hover{opacity:0.88;}
.brand img{height:52px; width:auto; max-width:min(260px, 62vw);}
nav.main-nav{
  display:flex;
  align-items:center;
  gap:4px;
  font-size:14.5px;
  font-weight:500;
}
nav.main-nav a{
  text-decoration:none;
  color:var(--ink);
  padding:8px 12px;
  border-bottom:2px solid transparent;
  transition:color 0.2s var(--ease), border-color 0.2s var(--ease);
}
nav.main-nav a:hover{color:var(--clay);}
nav.main-nav a[aria-current="page"]{
  color:var(--clay);
  border-bottom-color:var(--clay);
  font-weight:600;
}
nav.main-nav a.nav-cta{
  margin-left:8px;
  padding:9px 16px;
  border:1px solid var(--clay);
  border-bottom-width:1px;
  color:var(--clay);
  font-weight:600;
}
nav.main-nav a.nav-cta:hover,
nav.main-nav a.nav-cta[aria-current="page"]{
  background:var(--clay);
  color:var(--paper);
  border-color:var(--clay);
}
.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:transparent;
  border:1px solid var(--line-strong);
  padding:10px 14px;
  font-size:13px;
  font-weight:600;
  letter-spacing:0.02em;
  cursor:pointer;
  color:var(--ink);
  transition:background 0.2s var(--ease), border-color 0.2s var(--ease);
}
.nav-toggle:hover{background:var(--paper-soft); border-color:var(--ink-soft);}
.nav-toggle-bars{
  display:flex;
  flex-direction:column;
  gap:4px;
  width:16px;
}
.nav-toggle-bars span{
  display:block;
  height:1.5px;
  background:currentColor;
  transition:transform 0.25s var(--ease), opacity 0.2s;
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(1){
  transform:translateY(5.5px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(3){
  transform:translateY(-5.5px) rotate(-45deg);
}

/* ---- hero ---- */
.hero{
  background:var(--indigo);
  color:var(--paper);
  padding:88px 0 72px;
  position:relative;
  overflow:hidden;
}
.hero.hero-sub{padding:68px 0 52px;}
.hero .wrap{position:relative; z-index:2;}
.hero-eyebrow{
  font-size:12px;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 18px;
  font-style:normal;
  font-family:'Poppins', Helvetica, sans-serif;
}
.hero h1{
  font-size:clamp(34px, 5.4vw, 56px);
  line-height:1.06;
  max-width:14ch;
  color:var(--paper);
  letter-spacing:-0.025em;
}
.hero p.lead{
  max-width:48ch;
  font-size:clamp(16px, 1.45vw, 18px);
  line-height:1.65;
  margin:24px 0 0;
  color:var(--paper-faint);
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px 28px;
  margin-top:32px;
}
.hero-actions .btn{margin-top:0;}
.hero-actions .preview-more{margin-top:0;}
body.nav-open{overflow:hidden;}
@media (min-width:821px){
  body.nav-open{overflow:visible;}
}
.hero-meta{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:20px 32px;
  margin-top:48px;
  padding-top:28px;
  border-top:1px solid rgba(241,233,218,0.2);
}
.hero-meta div{font-size:13.5px; color:var(--paper-muted); line-height:1.45;}
.hero-meta strong{
  display:block;
  font-family:'Poppins', Helvetica, sans-serif;
  font-size:17px;
  color:var(--paper);
  font-weight:500;
  margin-bottom:4px;
}
.hero-bg-mark{
  position:absolute; right:-60px; top:-40px; width:420px; height:420px;
  opacity:0.08;
  background-image:
    repeating-linear-gradient(115deg, currentColor 0 3px, transparent 3px 22px),
    repeating-linear-gradient(65deg, currentColor 0 3px, transparent 3px 22px);
  color:var(--gold);
  transform:rotate(8deg);
  pointer-events:none;
}
.hero-has-photo{padding:112px 0 96px; min-height:min(78vh, 720px); display:flex; align-items:center;}
.hero-has-photo .wrap{width:100%;}
.hero-photo{
  position:absolute; inset:0; z-index:0;
}
.hero-photo img{
  width:100%; height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center 42%;
  transform:scale(1.04);
  animation:heroZoom 18s var(--ease) forwards;
}
.hero-photo::after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(105deg, rgba(27,36,57,0.94) 0%, rgba(27,36,57,0.84) 42%, rgba(27,36,57,0.55) 100%),
    linear-gradient(to top, rgba(27,36,57,0.45) 0%, transparent 35%);
}
@keyframes heroZoom{
  from{transform:scale(1.08);}
  to{transform:scale(1);}
}

/* ---- documentary photos ---- */
figure.photo-banner,
figure.photo-card{margin:0;}
figure.photo-banner img,
figure.photo-card img{
  width:100%;
  display:block;
  border:1px solid var(--line);
  background:var(--paper-soft);
  transition:transform 0.6s var(--ease), filter 0.4s var(--ease);
}
figure.photo-banner:hover img,
figure.photo-card:hover img{
  filter:brightness(1.03);
}
figure.photo-banner figcaption,
figure.photo-card figcaption{
  font-family:'Poppins', Helvetica, sans-serif;
  font-style:italic;
  font-size:14.5px;
  line-height:1.45;
  color:var(--ink-muted);
  margin-top:12px;
  max-width:62ch;
}
.photo-pair{
  display:grid;
  grid-template-columns:1.2fr 0.8fr;
  gap:clamp(20px, 3vw, 28px);
  align-items:stretch;
}
.photo-card{display:flex; flex-direction:column;}
.photo-card img{
  aspect-ratio:4/3;
  object-fit:cover;
  flex:1;
}
.photo-pair .photo-card:first-child img{object-position:center 40%;}
.photo-banner img{
  aspect-ratio:21/9;
  object-fit:cover;
  object-position:center 28%;
}
.photo-follow{margin-top:clamp(36px, 5vw, 52px);}

/* ---- buttons & links ---- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-family:'Poppins', Helvetica, sans-serif;
  font-size:15px;
  font-weight:600;
  text-decoration:none;
  padding:13px 24px;
  border:1px solid var(--gold);
  color:var(--paper);
  background:transparent;
  margin-top:32px;
  cursor:pointer;
  transition:background 0.22s var(--ease), color 0.22s var(--ease), border-color 0.22s var(--ease), transform 0.22s var(--ease);
}
.btn:hover{
  background:var(--gold);
  color:var(--indigo-deep);
}
.btn:active{transform:translateY(1px);}
.btn:disabled,
.btn.is-loading{
  opacity:0.7;
  cursor:wait;
  pointer-events:none;
}
.btn-solid{
  background:var(--clay);
  color:var(--paper);
  border-color:var(--clay);
  margin-top:8px;
}
.btn-solid:hover{
  background:var(--clay-deep);
  border-color:var(--clay-deep);
  color:var(--paper);
}
.btn-ghost{
  border-color:rgba(241,233,218,0.45);
  color:var(--paper);
}
.btn-ghost:hover{
  background:rgba(241,233,218,0.12);
  border-color:var(--paper);
  color:var(--paper);
}
.preview-more{
  margin-top:28px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:15px;
  font-weight:500;
  text-decoration:none;
  color:var(--clay);
  border-bottom:1px solid transparent;
  padding-bottom:2px;
  transition:border-color 0.2s var(--ease), gap 0.2s var(--ease);
}
.preview-more:hover{border-bottom-color:var(--clay); gap:10px;}
.contact .preview-more,
.preview-more.on-dark{
  color:var(--gold);
}
.contact .preview-more:hover,
.preview-more.on-dark:hover{border-bottom-color:var(--gold);}

main{display:block;}
section{padding:clamp(64px, 9vw, 96px) 0;}
section.tight{padding:clamp(48px, 7vw, 72px) 0;}
.section-head{max-width:56ch; margin-bottom:clamp(36px, 5vw, 52px);}
.section-tag{
  font-family:'Poppins', Helvetica, sans-serif;
  font-style:normal;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--clay);
  font-size:12px;
  margin:0 0 14px;
}
.section-head h2{
  font-size:clamp(28px, 3.6vw, 40px);
  line-height:1.12;
  letter-spacing:-0.02em;
}

/* ---- credibility strip ---- */
.cred-band{
  background:var(--indigo);
  color:var(--paper);
  padding:0;
  border-bottom:1px solid rgba(241,233,218,0.12);
}
.cred-row{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:0;
}
.cred{
  padding:28px 24px;
  border-left:1px solid rgba(241,233,218,0.14);
}
.cred:first-child{border-left:none;}
.cred strong{
  display:block;
  font-size:clamp(16px, 1.6vw, 19px);
  font-weight:600;
  color:var(--paper);
  margin-bottom:4px;
  letter-spacing:-0.01em;
}
.cred span{
  font-size:13px;
  color:var(--paper-muted);
}

/* ---- who section ---- */
.section-who{background:var(--paper);}
.about-copy p{font-size:17.5px; line-height:1.7; color:var(--ink-muted); max-width:52ch;}
.about-copy .preview-more{margin-top:8px;}

/* ---- full-bleed photo ---- */
.photo-break{
  margin:0;
  position:relative;
  background:var(--indigo-deep);
}
.photo-break img{
  width:100%;
  max-width:none;
  height:min(52vh, 520px);
  object-fit:cover;
  object-position:center 30%;
  opacity:0.92;
}
/* Group portraits: keep heads in frame (subjects sit at the top of the image) */
.photo-break--group img{
  height:auto;
  max-height:min(70vh, 640px);
  width:100%;
  object-fit:cover;
  object-position:center top;
  opacity:0.95;
}
.photo-break figcaption{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:28px clamp(20px, 4vw, 32px);
  color:rgba(241,233,218,0.88);
  font-size:14px;
  font-style:italic;
  background:linear-gradient(transparent, rgba(27,36,57,0.85));
  max-width:none;
}

/* ---- explore band (distinct from pillars) ---- */
.explore-band{
  background:var(--paper);
  border-top:1px solid var(--line);
}
.explore-layout{
  display:grid;
  grid-template-columns:0.95fr 1.05fr;
  gap:clamp(36px, 6vw, 72px);
  align-items:start;
}
.explore-intro h2{margin-bottom:12px;}
.explore-intro > p{
  color:var(--ink-muted);
  max-width:40ch;
  margin:0 0 28px;
  font-size:16px;
}
.explore-photo{
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
}
.explore-photo img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform 0.8s var(--ease);
}
.explore-photo:hover img{transform:scale(1.03);}
.explore-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line);}
.explore-list li{border-bottom:1px solid var(--line);}
.explore-list a{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:22px 4px;
  text-decoration:none;
  transition:padding-left 0.25s var(--ease), color 0.2s var(--ease);
}
.explore-list a:hover{padding-left:12px; color:var(--clay);}
.explore-label{
  font-size:16px;
  font-weight:600;
  letter-spacing:-0.01em;
}
.explore-desc{
  font-size:14px;
  color:var(--ink-muted);
}
.explore-list a:hover .explore-desc{color:var(--ink-soft);}

/* ---- about / mission ---- */
.about-grid{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:clamp(32px, 5vw, 56px);
  align-items:start;
}
.about-grid p{margin:0 0 16px; max-width:62ch; color:var(--ink);}
.about-grid p:last-of-type{margin-bottom:0;}
.about-grid .preview-more{margin-top:20px;}

/* Open quote stack — not a card */
.quote-stack{
  position:sticky;
  top:calc(var(--header-h) + 16px);
  padding:0;
  background:transparent;
  border:none;
}
.quote-stack .item + .item{margin-top:28px;}
.quote-stack h3{
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--clay);
  font-weight:600;
  margin:0 0 12px;
}
.quote-stack p,
.quote-stack blockquote{
  margin:0;
  padding:16px 0 0;
  border-top:2px solid var(--gold);
  font-size:clamp(16px, 1.35vw, 18px);
  font-style:italic;
  font-weight:400;
  line-height:1.55;
  color:var(--ink);
  quotes:none;
}

/* Practical aside — rule, not box */
.side-panel{
  background:transparent;
  border:none;
  border-left:2px solid var(--clay);
  padding:4px 0 4px 24px;
  position:sticky;
  top:calc(var(--header-h) + 16px);
}
.side-panel .item + .item{
  margin-top:22px;
  padding-top:22px;
  border-top:1px solid var(--line);
}
.side-panel h3{
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--indigo);
  font-family:'Poppins', Helvetica, sans-serif;
  font-weight:600;
  margin-bottom:10px;
}
.side-panel p{
  margin:0;
  font-size:15px;
  font-style:normal;
  line-height:1.55;
  color:var(--ink-muted);
  max-width:none;
}
.side-panel a{color:var(--clay); font-weight:600; text-decoration:none;}
.side-panel a:hover{border-bottom:1px solid var(--clay);}

/* ---- pillars ---- */
.pillars-band{background:var(--paper-soft);}
.pillar-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.pillar{
  background:var(--paper-soft);
  padding:clamp(22px, 2.5vw, 28px);
  transition:background 0.25s var(--ease);
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:14px;
  row-gap:12px;
  align-items:center;
}
.pillar:hover{background:var(--paper);}
.pillar-icon{
  width:44px; height:44px;
  border:1px solid var(--clay);
  color:var(--clay);
  display:flex; align-items:center; justify-content:center;
  margin:0;
  flex-shrink:0;
  transition:background 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease);
}
.pillar-icon i{
  display:block;
  width:24px;
  height:24px;
  background:currentColor;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  -webkit-mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
  mask-size:contain;
}
.pillar-icon--fsl i{ -webkit-mask-image:url(icons/fsl.svg); mask-image:url(icons/fsl.svg); }
.pillar-icon--snfi i{ -webkit-mask-image:url(icons/snfi.svg); mask-image:url(icons/snfi.svg); }
.pillar-icon--edu i{ -webkit-mask-image:url(icons/edu.svg); mask-image:url(icons/edu.svg); }
.pillar-icon--wash i{ -webkit-mask-image:url(icons/wash.svg); mask-image:url(icons/wash.svg); }
.pillar-icon--gbv i{ -webkit-mask-image:url(icons/gbv.svg); mask-image:url(icons/gbv.svg); }
.pillar-icon--health i{ -webkit-mask-image:url(icons/health.svg); mask-image:url(icons/health.svg); }
.pillar-icon--nutrition i{ -webkit-mask-image:url(icons/nutrition.svg); mask-image:url(icons/nutrition.svg); }
.pillar-icon--peace i{ -webkit-mask-image:url(icons/peace.svg); mask-image:url(icons/peace.svg); }
.pillar:hover .pillar-icon,
.preview-card:hover .pillar-icon{
  background:var(--clay);
  color:var(--paper);
  border-color:var(--clay);
}
.pillar h3{font-size:18px; margin:0; font-weight:500; line-height:1.25;}
.pillar p{grid-column:1 / -1; margin:0; font-size:15px; color:var(--ink-muted); line-height:1.55;}

/* ---- approach ---- */
.approach-list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(28px, 4vw, 40px);
}
.approach-item{
  padding-top:18px;
  border-top:2px solid var(--gold);
  transition:border-color 0.25s var(--ease);
}
.approach-item:hover{border-top-color:var(--clay);}
.approach-item h3{font-size:20px; margin-bottom:12px; color:var(--indigo);}
.approach-item p{margin:0; font-size:15.5px; color:var(--ink-muted);}

/* ---- values ---- */
.values-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border-top:1px solid var(--line);
  list-style:none;
}
.value-row{
  display:grid;
  grid-template-columns:minmax(120px, 150px) 1fr;
  gap:18px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.value-row:nth-child(odd){padding-right:28px; border-right:1px solid var(--line);}
.value-row:nth-child(even){padding-left:28px;}
.value-row h3{font-size:16.5px; font-weight:500; color:var(--forest);}
.value-row p{margin:0; font-size:14.5px; color:var(--ink-muted);}

/* ---- stats ---- */
.stat-band{
  background:var(--paper-soft);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
.stat{
  padding:clamp(28px, 4vw, 40px) clamp(20px, 3vw, 28px);
  text-align:left;
  border-left:1px solid var(--line);
}
.stat:first-child{border-left:none;}
.stat strong{
  display:block;
  font-family:'Poppins', Helvetica, sans-serif;
  font-size:clamp(28px, 3vw, 34px);
  color:var(--indigo);
  margin-bottom:8px;
  letter-spacing:-0.02em;
  line-height:1;
}
.stat span{font-size:14px; color:var(--ink-muted); line-height:1.45;}

/* ---- program preview ---- */
.preview-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.preview-card{
  background:var(--paper);
  padding:22px 20px;
  transition:background 0.25s var(--ease);
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  color:inherit;
}
a.preview-card:hover{background:rgba(241,233,218,0.55); color:var(--clay);}
.preview-card:hover{background:rgba(241,233,218,0.55);}
.preview-card .pillar-icon{margin:0; flex-shrink:0;}
.preview-card h3{font-size:15.5px; margin:0; line-height:1.3; font-weight:500;}
.pillars-more{margin-top:28px; display:inline-flex;}
.pillar{scroll-margin-top:calc(var(--header-h) + 16px);}

/* ---- contact ---- */
.contact{background:var(--indigo); color:var(--paper);}
.contact .section-tag{color:var(--gold);}
.contact .section-head{margin-bottom:28px;}
.contact h2,
.contact .section-head h2{color:var(--paper);}
.contact-cta{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
  padding:clamp(8px, 1.5vw, 16px) 0;
}
.contact-cta h2{margin:0; max-width:18ch; font-size:clamp(28px, 3.4vw, 38px);}
.contact-cta .btn{margin-top:0; align-self:center;}
.contact p.intro,
.contact .intro{
  max-width:48ch;
  color:var(--paper-faint);
  font-size:16.5px;
  margin:0 0 8px;
  line-height:1.55;
}
.contact-cta .intro{margin:14px 0 0; max-width:46ch;}
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(32px, 5vw, 56px);
  align-items:start;
}
.contact-top{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(280px, 0.95fr);
  gap:clamp(28px, 5vw, 48px);
  align-items:start;
}
.side-map{
  border:1px solid rgba(241,233,218,0.22);
  background:rgba(241,233,218,0.04);
  overflow:hidden;
}
.side-map iframe{
  display:block;
  width:100%;
  height:min(420px, 55vw);
  min-height:280px;
  border:0;
  filter:grayscale(0.15) contrast(1.02);
}
.side-map-caption{
  margin:0;
  padding:12px 16px;
  font-size:13.5px;
  color:var(--paper-muted);
  border-top:1px solid rgba(241,233,218,0.16);
  font-family:'Poppins', Helvetica, sans-serif;
  font-style:italic;
}
.contact-top .contact-list{margin-top:22px;}
.contact-top .map-note{margin-top:22px;}
address{font-style:normal;}
.contact-list{list-style:none; margin:0; padding:0;}
.contact-list li{
  padding:18px 0;
  border-top:1px solid rgba(241,233,218,0.18);
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:20px;
  flex-wrap:wrap;
}
.contact-list li:last-child{border-bottom:1px solid rgba(241,233,218,0.18);}
.contact-list span.label{
  font-size:12px;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(241,233,218,0.5);
}
.contact-list a,
.contact-list .val{
  font-family:'Poppins', Helvetica, sans-serif;
  font-size:17px;
  color:var(--paper);
  text-decoration:none;
  transition:color 0.2s var(--ease);
}
.contact-list a:hover{color:var(--gold);}
.contact-kicker{
  font-family:'Poppins', Helvetica, sans-serif;
  font-style:italic;
  color:var(--gold);
  font-size:15px;
  margin:0 0 12px;
}
.contact .intro strong{
  display:block;
  font-family:'Poppins', Helvetica, sans-serif;
  font-size:20px;
  font-weight:500;
  font-style:normal;
  color:var(--paper);
  margin-bottom:6px;
}
.response-note{
  margin:18px 0 0;
  max-width:42ch;
  font-size:15px;
  line-height:1.55;
  color:var(--paper-faint);
}
.response-note strong{color:var(--gold); font-weight:600;}
.map-note{
  margin-top:28px;
  padding:18px 20px;
  border:1px solid rgba(241,233,218,0.22);
  background:rgba(241,233,218,0.04);
  font-size:14px;
  line-height:1.5;
  color:var(--paper-muted);
}
.map-link{
  display:inline-block;
  margin-top:12px;
  color:var(--gold);
  text-decoration:none;
  font-weight:500;
  border-bottom:1px solid transparent;
  transition:border-color 0.2s var(--ease);
}
.map-link:hover{border-bottom-color:var(--gold);}

/* ---- contact form ---- */
.form-section{background:var(--paper);}
.form-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.35fr) minmax(240px, 0.65fr);
  gap:clamp(36px, 6vw, 64px);
  align-items:start;
}
.form-lead{
  margin:14px 0 0;
  max-width:54ch;
  font-size:16px;
  color:var(--ink-muted);
  line-height:1.55;
}
.section-head .form-lead{margin-top:14px;}
.contact-form{max-width:760px;}
.form-privacy,
.form-fallback{
  margin:18px 0 0;
  max-width:54ch;
  font-size:13.5px;
  line-height:1.5;
  color:var(--ink-muted);
}
.form-fallback{margin-top:10px;}
.form-privacy a,
.form-fallback a{
  color:var(--clay);
  font-weight:500;
  text-decoration:none;
  border-bottom:1px solid rgba(166,61,38,0.35);
}
.form-privacy a:hover,
.form-fallback a:hover{border-bottom-color:var(--clay);}
.form-aside{
  background:var(--paper-soft);
  border:1px solid var(--line);
  padding:clamp(22px, 3vw, 28px);
  position:sticky;
  top:calc(var(--header-h) + 16px);
}
.form-aside h3{
  font-size:18px;
  margin:0 0 16px;
  color:var(--indigo);
}
.expect-list{
  margin:0;
  padding:0 0 0 1.15em;
  color:var(--ink-muted);
  font-size:14.5px;
  line-height:1.55;
}
.expect-list li + li{margin-top:10px;}
.aside-note{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:14.5px;
}
.aside-note strong{
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--indigo);
  margin-bottom:2px;
}
.aside-note a{
  color:var(--clay);
  text-decoration:none;
  font-family:'Poppins', Helvetica, sans-serif;
  font-size:16px;
}
.aside-note a:hover{text-decoration:underline;}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 24px;
}
.form-field{margin-bottom:22px;}
.form-field-full{max-width:none;}
.form-field label{
  display:block;
  font-size:13.5px;
  font-weight:600;
  color:var(--indigo);
  margin-bottom:8px;
}
.form-field label .optional{
  font-weight:400;
  color:var(--ink-soft);
}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%;
  font-family:'Poppins', Helvetica, sans-serif;
  font-size:16px;
  color:var(--ink);
  background:var(--paper);
  border:1px solid var(--line-strong);
  padding:12px 14px;
  border-radius:0;
  transition:border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), background 0.2s var(--ease);
}
.form-field input:hover,
.form-field select:hover,
.form-field textarea:hover{
  border-color:rgba(36,28,21,0.32);
}
.form-field input:focus-visible,
.form-field select:focus-visible,
.form-field textarea:focus-visible{
  outline:none;
  border-color:var(--indigo);
  box-shadow:0 0 0 3px rgba(36,48,76,0.15);
  background:#fffdf8;
}
.form-field textarea{resize:vertical; min-height:140px;}
.form-field select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2324304C' d='M1.4 0.6L6 5.2 10.6 0.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:40px;
}
.hp-field{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.form-status{
  margin:4px 0 14px;
  font-weight:600;
  font-size:14.5px;
  min-height:1.2em;
}
.form-status.success{color:var(--forest);}
.form-status.error{color:var(--clay);}
.error-message{
  color:var(--clay);
  font-size:13px;
  margin-top:8px;
  min-height:0;
}
.form-field input.error,
.form-field select.error,
.form-field textarea.error{
  border-color:var(--clay) !important;
  box-shadow:0 0 0 3px rgba(166,61,38,0.12);
}

/* ---- footer ---- */
footer.site-footer{
  background:var(--indigo-deep);
  color:rgba(241,233,218,0.58);
  padding:36px 0;
  font-size:13.5px;
}
.footer-inner{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:20px 32px;
}
.footer-brand{
  font-family:'Poppins', Helvetica, sans-serif;
  font-size:15px;
  color:rgba(241,233,218,0.88);
  margin-bottom:6px;
}
.footer-meta{line-height:1.55;}
.footer-inner a{
  color:rgba(241,233,218,0.8);
  text-decoration:none;
  transition:color 0.2s var(--ease);
}
.footer-inner a:hover{color:var(--gold);}
.footer-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  list-style:none;
}
.footer-nav a{font-weight:500;}

.page-title-only h1{
  font-size:clamp(32px, 4.8vw, 48px);
  max-width:16ch;
  line-height:1.08;
}
.page-title-only .lead{
  max-width:48ch;
  margin-top:18px;
  color:var(--paper-faint);
  font-size:clamp(15.5px, 1.35vw, 17.5px);
  line-height:1.6;
}

/* ---- impact / milestones ---- */
.milestone-rail{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.milestone{
  padding:clamp(28px, 4vw, 40px) clamp(18px, 2.5vw, 28px);
  border-left:1px solid var(--line);
}
.milestone:first-child{border-left:none;}
.milestone-phase{
  display:block;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--clay);
  margin-bottom:10px;
}
.milestone h3{font-size:18px; margin:0 0 8px; font-weight:600;}
.milestone p{margin:0; font-size:14.5px; color:var(--ink-muted); line-height:1.5; max-width:32ch;}
.outcome-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:0;
  border-top:1px solid var(--line);
  list-style:none;
}
.outcome-row{
  display:grid;
  grid-template-columns:minmax(140px, 180px) 1fr;
  gap:16px;
  padding:20px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.outcome-row:nth-child(odd){padding-right:28px; border-right:1px solid var(--line);}
.outcome-row:nth-child(even){padding-left:28px;}
.outcome-row h3{font-size:15px; font-weight:600; color:var(--indigo); margin:0;}
.outcome-row p{margin:0; font-size:14.5px; color:var(--ink-muted); line-height:1.5;}
.report-band{
  background:var(--paper-soft);
  border-top:1px solid var(--line);
}
.report-grid{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:clamp(28px, 5vw, 56px);
  align-items:start;
}
.report-grid p{color:var(--ink-muted); max-width:52ch;}

/* ---- numbered principles ---- */
.principle-list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(28px, 4vw, 40px);
}
.principle{
  padding-top:18px;
  border-top:2px solid var(--gold);
}
.principle-num{
  display:block;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.12em;
  color:var(--clay);
  margin-bottom:12px;
}
.principle h3{font-size:22px; margin-bottom:12px; color:var(--indigo);}
.principle p{margin:0; font-size:15.5px; color:var(--ink-muted);}

/* ---- donate steps ---- */
.step-list{
  list-style:none;
  margin:20px 0 28px;
  padding:0;
  border-top:1px solid var(--line);
  counter-reset:step;
}
.step-list li{
  counter-increment:step;
  display:grid;
  grid-template-columns:40px 1fr;
  gap:14px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
  color:var(--ink-muted);
  font-size:15.5px;
  line-height:1.55;
}
.step-list li::before{
  content:counter(step, decimal-leading-zero);
  font-size:13px;
  font-weight:700;
  letter-spacing:0.06em;
  color:var(--clay);
  padding-top:2px;
}
.step-list a{color:var(--clay); font-weight:600;}

/* ---- reveal motion ---- */
.reveal{
  opacity:0;
  transform:translateY(16px);
  transition:opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.reveal.is-visible{
  opacity:1;
  transform:none;
}

@media (max-width: 820px){
  .form-row{grid-template-columns:1fr;}
  nav.main-nav{
    display:none;
    position:absolute;
    top:100%;
    left:0; right:0;
    background:rgba(241,233,218,0.98);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:8px 0 16px;
    box-shadow:0 16px 32px rgba(36,28,21,0.08);
  }
  nav.main-nav.open{display:flex;}
  nav.main-nav a{
    padding:14px clamp(20px, 4vw, 32px);
    border-bottom:none;
    border-left:3px solid transparent;
  }
  nav.main-nav a[aria-current="page"]{
    border-left-color:var(--clay);
    border-bottom-color:transparent;
    background:rgba(166,61,38,0.06);
  }
  nav.main-nav a.nav-cta{
    margin:12px clamp(20px, 4vw, 32px) 4px;
    text-align:center;
    justify-content:center;
  }
  .nav-toggle{display:inline-flex;}
  .about-grid{grid-template-columns:1fr;}
  .side-panel{position:static;}
  .pillar-grid{grid-template-columns:1fr;}
  .preview-grid{grid-template-columns:1fr 1fr;}
  .approach-list{grid-template-columns:1fr; gap:28px;}
  .values-list{grid-template-columns:1fr;}
  .value-row{
    grid-template-columns:1fr;
    gap:6px;
  }
  .value-row:nth-child(odd){border-right:none; padding-right:0;}
  .value-row:nth-child(even){padding-left:0;}
  .contact-grid{grid-template-columns:1fr;}
  .contact-top{grid-template-columns:1fr;}
  .side-map iframe{height:280px; min-height:240px;}
  .form-layout{grid-template-columns:1fr;}
  .form-aside{position:static;}
  .stat-grid{grid-template-columns:1fr;}
  .stat{border-left:none; border-top:1px solid var(--line); padding-left:0; padding-right:0;}
  .stat:first-child{border-top:none;}
  .hero{padding:64px 0 48px;}
  .hero-has-photo{
    padding:80px 0 64px;
    min-height:0;
    display:block;
  }
  .hero-meta{grid-template-columns:1fr; gap:18px;}
  .photo-pair{grid-template-columns:1fr;}
  .photo-banner img{aspect-ratio:16/8;}
  .footer-inner{flex-direction:column;}
  .cred-row{grid-template-columns:1fr 1fr;}
  .cred{border-left:none; border-top:1px solid rgba(241,233,218,0.14); padding:22px 8px;}
  .cred:nth-child(1),
  .cred:nth-child(2){border-top:none;}
  .cred:nth-child(odd){padding-right:16px;}
  .cred:nth-child(even){padding-left:16px; border-left:1px solid rgba(241,233,218,0.14);}
  .explore-layout{grid-template-columns:1fr; gap:36px;}
  .photo-break img{height:min(42vh, 360px);}
  .photo-break--group img{
    height:auto;
    max-height:min(58vh, 480px);
    object-position:center top;
  }
  .contact-cta{align-items:flex-start;}
  .milestone-rail{grid-template-columns:1fr;}
  .milestone{border-left:none; border-top:1px solid var(--line); padding-left:0; padding-right:0;}
  .milestone:first-child{border-top:none;}
  .outcome-grid{grid-template-columns:1fr;}
  .outcome-row{
    grid-template-columns:1fr;
    gap:6px;
  }
  .outcome-row:nth-child(odd){border-right:none; padding-right:0;}
  .outcome-row:nth-child(even){padding-left:0;}
  .principle-list{grid-template-columns:1fr; gap:28px;}
  .report-grid{grid-template-columns:1fr;}
  .quote-stack{position:static;}
}

@media (max-width: 480px){
  .preview-grid{grid-template-columns:1fr;}
  .brand img{height:44px;}
  .hero h1{max-width:12ch;}
  .cred-row{grid-template-columns:1fr;}
  .cred:nth-child(even){border-left:none; padding-left:8px;}
  .cred{border-top:1px solid rgba(241,233,218,0.14);}
  .cred:first-child{border-top:none;}
}

/* ---- gap-closure components ---- */
.header-tools{display:flex; align-items:center; gap:12px; margin-left:auto;}
@media (min-width:821px){
  .header-tools{order:3; margin-left:16px;}
  .main-nav{margin-left:auto;}
  .header-inner{display:flex; flex-wrap:wrap;}
  .brand{order:1;}
  .main-nav{order:2;}
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(3, minmax(0, 1fr));
  gap:32px 28px;
}
.footer-col-title{
  font-size:12px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  color:rgba(241,233,218,0.55); margin-bottom:12px;
}
.footer-grid .footer-nav{display:flex; flex-direction:column; gap:8px;}
.footer-social{display:flex; flex-wrap:wrap; gap:12px 18px; margin-top:16px;}
.footer-social a{font-weight:600;}
.footer-social-note,
.channel-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:14px 0 0;
  font-size:12.5px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:rgba(241,233,218,0.5);
  max-width:42ch;
  line-height:1.45;
}
.channel-status::before,
.footer-social-note::before{
  content:"";
  width:7px; height:7px;
  border-radius:50%;
  background:var(--gold);
  opacity:0.75;
  flex-shrink:0;
}
.prose{max-width:68ch;}
.prose h2{font-size:24px; margin:36px 0 12px;}
.prose a{color:var(--clay);}
.inline-h{font-size:22px; margin:28px 0 12px; letter-spacing:-0.02em;}
.plain-list{list-style:disc; padding-left:1.2em; margin:0 0 16px;}
.plain-list li{margin:0 0 8px;}
.role-grid, .partner-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(24px, 3vw, 36px);
  background:transparent;
  border:none;
}
.partner-grid{grid-template-columns:repeat(2,1fr);}
.role-card, .partner-card{
  background:transparent;
  padding:18px 0 0;
  border-top:2px solid var(--gold);
}
.role-card h3, .partner-card h3{font-size:18px; margin-bottom:8px;}
.role-card p, .partner-card p{margin:0; font-size:15px; color:var(--ink-muted);}
.logo-reserve{
  margin-top:40px;
  padding:20px 0 8px;
  border-top:1px solid var(--line);
}
.logo-reserve-label{
  display:block;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-bottom:10px;
}
.logo-reserve p{margin:0; color:var(--ink-muted); font-size:14.5px; max-width:58ch; line-height:1.55;}
.logo-strip{margin-top:40px; padding:28px; border:1px dashed var(--line-strong); background:var(--paper-soft);}
.logo-strip-note{margin:0; color:var(--ink-muted); font-size:15px; max-width:62ch;}
.doc-list{list-style:none; border-top:1px solid var(--line);}
.doc-list li{
  display:flex; justify-content:space-between; gap:24px; align-items:center;
  padding:22px 0; border-bottom:1px solid var(--line); flex-wrap:wrap;
}
.doc-list h3{font-size:18px; margin-bottom:6px;}
.doc-list p{margin:0; font-size:14.5px; color:var(--ink-muted); max-width:52ch;}
.doc-action{
  display:inline-flex; padding:10px 16px; border:1px solid var(--clay); color:var(--clay);
  text-decoration:none; font-weight:600; font-size:14px; white-space:nowrap;
}
.doc-action:hover{background:var(--clay); color:var(--paper);}
.news-card{padding-bottom:28px; border-bottom:1px solid var(--line); max-width:68ch;}
.news-date{font-size:13.5px; color:var(--clay); margin-bottom:8px;}
.news-card h2{font-size:28px; margin-bottom:12px;}
.news-card h2 a{text-decoration:none;}
.news-card h2 a:hover{color:var(--clay);}
.vacancy-empty{padding:22px; border:1px solid var(--line); background:var(--paper-soft); margin-bottom:28px;}
.vacancy-empty p{margin:0; color:var(--ink-muted);}
.sitemap-columns{display:grid; grid-template-columns:repeat(3,1fr); gap:36px;}
.consent-banner{
  position:fixed; bottom:0; left:0; right:0; z-index:60;
  background:var(--indigo-deep); color:var(--paper);
  padding:16px 20px; border-top:1px solid rgba(241,233,218,0.2);
  transform:translateY(110%); transition:transform 0.35s var(--ease);
}
.consent-banner.is-visible{transform:none;}
.consent-inner{max-width:var(--max); margin:0 auto; display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between;}
.consent-inner p{margin:0; max-width:60ch; font-size:14px; color:var(--paper-faint);}
.consent-actions{display:flex; gap:10px; flex-wrap:wrap;}
.consent-actions button{
  font:inherit; font-size:14px; font-weight:600; cursor:pointer;
  padding:10px 16px; border:1px solid rgba(241,233,218,0.35); background:transparent; color:var(--paper);
}
.consent-actions .consent-accept{background:var(--gold); border-color:var(--gold); color:var(--indigo-deep);}
@media (max-width:820px){
  .footer-grid{grid-template-columns:1fr 1fr;}
  .role-grid, .partner-grid, .sitemap-columns{grid-template-columns:1fr;}
  .header-tools{margin-left:0;}
}
@media (max-width:520px){
  .footer-grid{grid-template-columns:1fr;}
}
