/* Hope Aid 247 — institutional visual system
   Deliberately grounded in the foundation's existing blue/green identity.
   Designed for donors, partners, and mobile-first community visitors. */
:root {
  --blue-600: #235d73;
  --blue-700: #184657;
  --blue-900: #112f3d;
  --green-500: #2d8567;
  --green-700: #185c46;
  --green-800: #153e34;
  --ivory: #f6f5f1;
  --white: #fff;
  --charcoal: #213542;
  --muted: #61717a;
  --line: rgba(21,48,59,.13);
  --shadow: 0 20px 45px rgba(13,43,58,.07);
  --shadow-soft: 0 10px 28px rgba(13,43,58,.05);
  --radius: 10px;
  --gold: #c8b58d;
}
html { scroll-padding-top: 7rem; }
body { background: var(--ivory); color: var(--charcoal); font-size: 16px; line-height: 1.72; }
.container { width: min(1240px, calc(100% - 3.5rem)); }
.page-shell { overflow: clip; }
a, button { -webkit-tap-highlight-color: transparent; }
::selection { background: rgba(45,133,103,.25); color: #082a1d; }
:focus-visible { outline: 3px solid #279671; outline-offset: 4px; }

.utility-bar {
  color: #e7f1ed;
  background: #102f38;
  font-size: .73rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.utility-bar .container { min-height: 34px; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.utility-bar a { color: #e1eacb; text-decoration:underline; text-underline-offset:3px; font-weight:700; }
.utility-bar a:hover { color:#fff; }

.site-header {
  background: rgba(255,255,255,.985);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: none;
  border-bottom: 1px solid #e9edeb;
}
.nav-shell { min-height: 87px; gap: 1.6rem; padding: .45rem 0; }
.brand { border-radius: 4px; }
.brand-logo { height: 64px; width: auto; max-width: 180px; object-fit: contain; }
.nav-menu { gap: 1rem 1.15rem; justify-content: flex-end; }
.nav-menu a {
  font-size: .8rem;
  color: #3a4c52;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1.5;
}
.nav-menu a::after { bottom: -.35rem; background:var(--green-500); height:2px; }
.nav-menu a:hover, .nav-menu a:focus-visible, .nav-menu a.is-active { color: #124634; }
.nav-actions { gap: .75rem; }
.button, .btn {
  min-height: 46px;
  border-radius: 5px;
  padding: .93rem 1.45rem;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .045em;
  text-align: center;
  text-transform: uppercase;
  box-shadow: none;
}
.button--primary, .btn--primary {
  color: #fff;
  background: var(--green-700);
  box-shadow: none;
}
.button--primary:hover, .btn--primary:hover { background: #0d4938; }
.button--secondary, .btn--secondary {
  color: var(--blue-900);
  background: #fff;
  border: 1px solid #cbd4d1;
}
.button--secondary:hover { background:#f6f6f1; }
.button--ghost { background:#e8efed; color:var(--blue-900); }
.button:disabled { opacity:.6; cursor:not-allowed; transform:none; }
.nav-actions > .button { white-space:nowrap; }
.nav-toggle { color: var(--blue-900); border-radius: 4px; font-size: .95rem; font-weight: 800; height:44px; width:62px; }

.hero {
  background-image: linear-gradient(95deg,rgba(7,28,36,.94) 0%,rgba(10,37,44,.83) 42%,rgba(10,32,40,.26) 100%),url('IMG-20261013-WA0034.jpg');
  background-position: center, center 36%;
  background-size: cover;
  min-height: 650px;
  border:0;
}
.hero--editorial { position:relative; }
.hero--editorial::after {
  content:"";
  position:absolute; bottom:0; left:0; right:0; height:6px;
  background:linear-gradient(90deg,#205b4b 0%,#3a886e 60%,#c8b58d 100%);
  pointer-events:none;
}
.hero-layout {
  display:grid;
  grid-template-columns: minmax(0,1.15fr) minmax(215px,.44fr);
  gap: 3rem;
  align-items:end;
  width:100%;
  min-height:650px;
}
.hero__content { padding: 6rem 0 6.6rem; max-width:790px; }
.kicker, .eyebrow {
  color:#d0e6db; font-size:.72rem; text-transform:uppercase;
  letter-spacing:.22em; font-weight:800; line-height:1.4;
}
.hero__content .kicker::before, .section-tag::before {
  content:""; display:inline-block; width:28px; height:2px;
  margin-right:12px; vertical-align:middle; background:var(--gold);
}
.display-heading {
  max-width:780px;
  font-size:clamp(3.55rem,6.35vw,6.5rem);
  font-weight:400;
  line-height:1.04;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.display-heading .accent { color:#e2ebd3; font-weight:normal; }
.hero__text { max-width:610px; font-size:1.12rem; line-height:1.75; color:#e4eeeb; }
.hero__actions { margin-top:2.4rem; gap:.8rem; }
.hero__actions .button--secondary {
  border-color:rgba(255,255,255,.72);
  background:transparent; color:#fff;
}
.hero__actions .button--secondary:hover { background:rgba(255,255,255,.12); }
.hero-note {
  align-self:end; margin: 0 0 5rem auto;
  width:min(100%,280px);
  padding:1.5rem 1.65rem;
  border-top:3px solid var(--gold);
  background:rgba(255,255,255,.96);
  color:var(--blue-900);
  box-shadow:0 16px 45px rgba(6,20,27,.2);
}
.hero-note__eyebrow { display:block; text-transform:uppercase; font-weight:800; font-size:.69rem; letter-spacing:.14em; color:var(--green-700); margin-bottom:.65rem; }
.hero-note strong { display:block; font:normal 1.65rem/1.12 'DM Serif Display',Georgia,serif; letter-spacing:-.02em; }
.hero-note p { font-size:.85rem; color:#53656b; margin:.65rem 0 0; }
.hero-trust { margin-top:3rem; display:flex; align-items:center; gap:1.6rem; flex-wrap:wrap; }
.hero-trust span { color:rgba(255,255,255,.84); text-transform:uppercase; font-size:.66rem; letter-spacing:.12em; font-weight:700; }
.hero-trust span + span { border-left:1px solid rgba(255,255,255,.4); padding-left:1.6rem; }
.editorial-strap { background:#123c44; color:#e4eee9; }
.editorial-strap__inner {
  padding: 1.15rem 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.editorial-strap strong { font-family:'DM Serif Display',Georgia,serif; font-size:1.22rem; font-weight:400; letter-spacing:.01em; }
.editorial-strap span { font-size:.69rem; letter-spacing:.15em; text-transform:uppercase; color:#d4e6db; }

.section { padding: 6.5rem 0; }
.section--soft { background:#f4f4ef; }
.section--light { background:#fff; }
.section--dark { background:var(--blue-900); color:#fff; }
.section--cream { background:#f3f2ec; }
.section-tag {
  color:var(--green-700); font-size:.7rem; letter-spacing:.17em;
  margin-bottom:1.15rem;
}
.section-title {
  color:var(--blue-900);
  font-size: clamp(2.55rem,4vw,4.4rem);
  letter-spacing:-.04em;
  line-height:1.12;
  font-weight:400;
  text-wrap:balance;
}
.section--dark .section-title { color:#fff; }
.section-header { margin-bottom:2.6rem; }
.section-header--center { max-width:750px; margin-left:auto; margin-right:auto; }
.section-lede { color:var(--muted); max-width:600px; margin:1.2rem 0 0; font-size:1.07rem; }
.section-header--center .section-lede { margin:1.2rem auto 0; }
.text-link { color:var(--green-700); text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; font-weight:800; font-size:.88rem; }

.intro-grid { grid-template-columns: .94fr 1.06fr; gap: clamp(2.5rem,6vw,7rem); }
.feature-photo { border-radius:3px; height:auto; box-shadow:none; position:relative; }
.feature-photo img { min-height:550px; height:100%; object-fit:cover; }
.feature-photo::after { content:""; position:absolute; right:0; bottom:0; height:10px; width:36%; background:var(--green-700); }
.intro-grid .rich-copy { padding: .75rem 0; }
.rich-copy { color:#51636b; font-size:1rem; }
.rich-copy .section-title { margin-bottom:1.4rem; }
.rich-copy p { margin-bottom:1.15rem; }
.highlight-list { grid-template-columns: 1fr; margin:1.8rem 0; gap:0; }
.highlight-card { border:0; box-shadow:none; border-top:1px solid #dbe1dc; background:transparent; border-radius:0; padding:1.05rem 0; display:grid; grid-template-columns:145px 1fr; gap:1rem; }
.highlight-card h3 { font-size:.86rem; text-transform:uppercase; letter-spacing:.065em; margin:0; }
.highlight-card p { font-size:.94rem; line-height:1.5; }

.program-grid, .feature-grid, .story-grid, .project-grid, .article-grid, .stat-grid, .value-grid, .grid-3 { gap:1.35rem; }
.program-card, .project-card, .article-card, .stat-card, .value-card,
.story-card, .info-card, .feature-card {
  border:1px solid #e2e7e3; border-radius:6px; box-shadow:none;
}
.program-card {
  min-height:300px; padding:2rem 1.85rem; position:relative;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.program-card:hover { transform:translateY(-3px); border-color:#acc5bb; box-shadow:0 18px 35px rgba(13,43,58,.07); }
.program-icon { width:auto; height:auto; display:block; font-size:.91rem; font-weight:800; letter-spacing:.12em; background:none; color:var(--green-700); margin-bottom:2.7rem; }
.program-card h3 { font:normal 1.48rem/1.22 'DM Serif Display',Georgia,serif; margin:0 0 .75rem; }
.program-card p { font-size:.91rem; line-height:1.65; margin-bottom:1.5rem; }
.program-card .meta-link { font-size:.79rem; text-transform:uppercase; letter-spacing:.06em; border-top:1px solid #e2e7e3; padding-top:1.2rem; }
.project-card img, .article-card img, .story-card img { height:270px; width:100%; object-fit:cover; }
.project-card .content, .article-card .content, .story-card .content { padding:1.8rem; }
.project-card h3, .article-card h3, .story-card h3 { font:normal 1.65rem/1.2 'DM Serif Display',Georgia,serif; }
.project-card p, .article-card p, .story-card p { font-size:.92rem; line-height:1.7; margin-bottom:1.05rem; }
.card-kicker { color:var(--green-700); letter-spacing:.13em; font-size:.7rem; }
.project-card .meta-link, .article-card .meta-link { padding-top:.75rem; font-size:.81rem; }
.value-card { padding:2rem 1.55rem; }
.value-card h3 { font:normal 1.4rem/1.3 'DM Serif Display',Georgia,serif; }
.info-card { padding:2.25rem; }

.pathways {
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,7rem);
  align-items:center;
}
.pathways-photo { min-height:550px; height:100%; width:100%; object-fit:cover; }
.pathways-list { counter-reset: pathway; margin:1.6rem 0 2rem; padding:0; list-style:none; }
.pathways-list li { display:grid; grid-template-columns:44px 1fr; gap:1rem; align-items:start; padding:1.25rem 0; border-top:1px solid #dae2dd; }
.pathways-list li::before { counter-increment:pathway; content:"0" counter(pathway); font-size:.78rem; letter-spacing:.1em; color:var(--green-700); font-weight:800; padding-top:.2rem; }
.pathways-list strong { color:var(--blue-900); display:block; margin-bottom:.2rem; }
.pathways-list span { color:var(--muted); line-height:1.55; font-size:.92rem; }

.accountability-panel { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,6vw,6rem); align-items:start; }
.accountability-panel .section-lede { color:#d0e0e1; }
.accountability-panel .section-tag { color:#e2ddc4; }
.accountability-panel .evidence-list { display:grid; gap:0; border-top:1px solid rgba(255,255,255,.24); }
.evidence-list a { color:#fff; padding:1.25rem 0; border-bottom:1px solid rgba(255,255,255,.22); font-size:.91rem; font-weight:800; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.evidence-list a::after { content:"↗"; font-size:1.35rem; color:var(--gold); }
.evidence-list a:hover { color:#d2e6da; }
.evidence-note { margin-top:1.7rem; color:#d0dfda; font-size:.89rem; line-height:1.7; }

.section--light .commission-banner, .section--cream .commission-banner { border-radius:6px; }
.commission-banner { background:#123a43; color:#fff; border-radius:6px; box-shadow:none; padding:clamp(2.3rem,5vw,4.6rem); }
.commission-banner::before { background:none; }
.commission-banner h2 { max-width:730px; font-size:clamp(2.5rem,4.5vw,4.8rem); line-height:1.1; }
.commission-banner p { font-size:1.03rem; line-height:1.75; }
.commission-banner .cta-row { margin-top:2rem; }

.stats-band { background:#f3f4f0; }
.stat-grid { gap:1rem; }
.stat-card { padding:2rem 1.2rem; background:#fff; text-align:left; }
.stat-card strong { font:normal 1.4rem 'DM Serif Display',Georgia,serif; color:var(--blue-900); letter-spacing:0; line-height:1.25; }
.stat-card span { margin-top:.8rem; font-size:.82rem; text-transform:uppercase; font-weight:800; letter-spacing:.04em; }

.page-hero {
  background-image:linear-gradient(90deg,rgba(9,39,48,.95) 0%, rgba(9,39,48,.82) 55%, rgba(9,39,48,.54) 100%), url('IMG-20261013-WA0032.jpg');
  background-position:center; padding: 6.2rem 0 5.7rem;
}
.page-hero .container { max-width:1240px; }
.page-hero__title { max-width:960px; font-size:clamp(2.8rem,5.15vw,5.4rem); letter-spacing:-.04em; line-height:1.08; text-wrap:balance; }
.page-hero__text { font-size:1.11rem; color:#e2eae6; max-width:720px; line-height:1.75; }
.page-hero__breadcrumbs { font-size:.7rem; letter-spacing:.16em; margin-bottom:1.7rem; color:#d4e5dc; }

.content-panel { padding:clamp(1.55rem,3vw,3rem); border-radius:6px; box-shadow:none; }
.side-panel { background:#eef2ed; border-radius:6px; padding:2rem; }
.two-col-grid { gap:2rem; }
.content-list { line-height:1.9; }
.content-panel h2:not(.section-title) { color:var(--blue-900); font:normal 1.9rem/1.2 'DM Serif Display',Georgia,serif; margin:1.8rem 0 .85rem; }
.content-panel h3 { color:var(--blue-900); }
.form-card { border-radius:6px; box-shadow:none; padding:clamp(1.6rem,4vw,3rem); }
.form-grid { gap:1.45rem; }
.field { padding:0; border:0; background:none; border-radius:0; }
.field label { text-transform:uppercase; letter-spacing:.055em; font-size:.75rem; }
.field input, .field select, .field textarea { border:1px solid #c9d3cf; border-radius:4px; background:#fcfdfa; padding:.95rem 1rem; width:100%; }
.field textarea { min-height:160px; }
.search-field { max-width:420px; border-radius:4px; border-color:#cad6d0; }
.filter-tag { background:#ecf3ef; border-radius:3px; }

.footer { background:#0e2936; background-image:none; padding-top:4.5rem; color:#dfebe7; }
.footer-grid { grid-template-columns: 1.4fr .85fr 1fr 1.1fr; gap:2.7rem; }
.footer h3 { font-size:.77rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#fff; margin-bottom:1.4rem; }
.footer ul { gap:.8rem; }
.footer a { color:#d7e3de; }
.footer a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.footer-copy { color:#c6d6d1; line-height:1.6; }
.footer-brand img { width:180px; border-radius:4px; padding:.2rem; }
.footer-meta { border-top-color:rgba(255,255,255,.17); margin-top:3.7rem; padding:1.7rem 0 2.25rem; font-size:.83rem; }
.newsletter { display:grid; grid-template-columns:1fr; }
.newsletter input { width:100%; border-radius:4px; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.25); }
.newsletter button { width:100%; }
.privacy-consent { font-size:.78rem; text-transform:none; letter-spacing:0; }
.footer .privacy-consent a { text-decoration:underline; }
.admin-entry { border-radius:6px; }

@media(max-width:1160px) {
  .nav-shell { min-height:76px; }
  .brand-logo { height:54px; max-width:165px; }
  .nav-toggle { display:inline-flex; align-items:center; justify-content:center; }
  .nav-menu {
    position:absolute; left:1.75rem; right:1.75rem; top:calc(100% + 2px);
    display:none; flex-direction:column; align-items:stretch; gap:0;
    background:#fff; border:1px solid #dce5e0; border-radius:6px;
    box-shadow:0 18px 35px rgba(8,40,48,.13);
    padding:.75rem 1.15rem; white-space:normal;
    max-height:calc(100dvh - 125px); overflow-y:auto;
  }
  .nav-menu.is-open { display:flex; }
  .nav-menu a { display:block; font-size:.95rem; padding:.85rem .4rem; border-bottom:1px solid #ecf0ed; }
  .nav-menu a:last-child { border-bottom:0; }
  .nav-menu a::after { display:none; }
  .nav-actions { margin-left:auto; }
  .program-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:940px) {
  .container { width:min(100% - 2.5rem,1240px); }
  .hero-layout { grid-template-columns:1fr; min-height:unset; }
  .hero { min-height:0; }
  .hero__content { padding:6rem 0 4.5rem; }
  .hero-note { display:none; }
  .intro-grid, .pathways, .accountability-panel { grid-template-columns:1fr; gap:2.5rem; }
  .feature-photo img { min-height:420px; max-height:520px; }
  .pathways-photo { min-height:390px; max-height:520px; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .value-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .project-grid, .article-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
  .container { width:calc(100% - 2rem); }
  .utility-bar { font-size:.64rem; }
  .utility-bar .container { min-height:32px; }
  .utility-bar a { display:none; }
  .site-header { padding:0; }
  .nav-shell { min-height:66px; gap:.6rem; }
  .brand-logo { height:42px; max-width:125px; }
  .nav-actions { flex-direction:row; align-items:center; }
  .nav-actions > .button { width:auto; min-height:39px; padding:.68rem .76rem; font-size:.64rem; }
  .nav-toggle { width:54px; height:39px; font-size:.78rem; }
  .nav-menu { left:1rem; right:1rem; }
  .hero { background-position: center, 58% center; }
  .hero__content { padding:5rem 0 4.2rem; }
  .display-heading { font-size:clamp(3.15rem,11vw,4.75rem); }
  .hero__text { font-size:1rem; }
  .hero-trust { gap:.55rem 1rem; margin-top:2rem; }
  .hero-trust span { font-size:.61rem; }
  .hero-trust span + span { padding-left:1rem; }
  .hero__actions { flex-direction:column; align-items:stretch; }
  .hero__actions .button { width:100%; }
  .editorial-strap__inner { display:block; }
  .editorial-strap span { display:block; margin-top:.35rem; }
  .section { padding:4.65rem 0; }
  .section-title { font-size:clamp(2.3rem,9vw,3.35rem); }
  .section-header--center { text-align:left; }
  .section-header--center .section-lede { margin-left:0; }
  .highlight-card { grid-template-columns:1fr; gap:.35rem; }
  .program-grid,.project-grid,.article-grid,.stat-grid,.value-grid,.footer-grid { grid-template-columns:1fr; }
  .program-card { min-height:unset; padding:1.8rem 1.5rem; }
  .program-icon { margin-bottom:1.5rem; }
  .feature-photo img { min-height:350px; }
  .page-hero { padding:4.7rem 0 4.1rem; }
  .page-hero__title { font-size:clamp(2.55rem,9.4vw,4rem); }
  .page-hero__text { font-size:1rem; }
  .commission-banner { padding:2.1rem 1.45rem; }
  .commission-banner h2 { font-size:2.4rem; }
  .footer { padding-top:3.3rem; }
  .footer-grid { gap:2.3rem; }
  .footer-meta { margin-top:2.5rem; }
  .form-grid { gap:.85rem; }
  .field--full { grid-column:auto; }
  .hero-trust span:last-child { display:none; }
}
@media(prefers-reduced-motion: reduce) {
  .program-card { transition:none; }
  .program-card:hover { transform:none; }
}

/* -----------------------------------------------------------------------
   Responsive hardening — fluid phones, small tablets and accessible menus
   ----------------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }
body { min-width: 0; }
main, .page-shell, .container, .nav-shell, .hero-layout,
.intro-grid, .pathways, .accountability-panel,
.program-grid, .project-grid, .article-grid, .story-grid,
.value-grid, .footer-grid, .form-grid, .two-col-grid,
.content-panel, .form-card, .side-panel, .program-card,
.project-card, .article-card, .highlight-card {
  min-width: 0;
}
img, video, iframe { max-width: 100%; }
img { height: auto; }
a, p, li, h1, h2, h3, h4 { overflow-wrap: break-word; }
.page-hero__title, .section-title, .display-heading {
  hyphens: auto;
  text-wrap: balance;
}
.content-panel a, .side-panel a, .footer a, .admin-entry {
  overflow-wrap: anywhere;
}
input, textarea, select, button { max-width: 100%; }
.field input, .field select, .field textarea, .search-field, .newsletter input {
  min-width: 0;
  font-size: 1rem; /* Prevent automatic zoom on iOS form focus. */
}
.form-grid > *, .footer-grid > *, .two-col-grid > *, .nav-shell > * {
  min-width: 0;
}
.nav-toggle { cursor: pointer; }
.mobile-support-link { display: none; }
.program-card a, .project-card a, .article-card a { min-height: 40px; }
.page-hero__breadcrumbs { max-width: 100%; }
.form-turnstile { max-width:100%; }
.form-status { overflow-wrap: anywhere; }
.admin-list { min-width: 0; }
.admin-entry { max-width: 100%; }
.admin-entry select { max-width: 100%; width: min(100%, 280px); }
.footer-grid { min-width:0; }
.newsletter input { max-width:100%; }
.newsletter .privacy-consent { width:100%; }

@media (max-width: 1160px) {
  .nav-toggle { min-width: 48px; min-height: 44px; }
  .nav-menu {
    z-index: 70;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    max-height: min(75dvh, 650px);
  }
  .nav-menu a { min-height: 44px; align-content: center; }
  .nav-menu a.is-active { color: var(--green-700); }
  .nav-menu .mobile-support-link {
    display: none;
    margin: .75rem 0 .35rem;
    padding: 1rem 1.15rem;
    color: #fff;
    background: var(--green-700);
    text-align: center;
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    border: 0;
    border-radius: 4px;
  }
  .nav-menu .mobile-support-link:hover,
  .nav-menu .mobile-support-link:focus-visible { color:#fff; background:var(--green-800); }
}

@media (max-width: 940px) {
  .hero-layout, .intro-grid, .pathways, .accountability-panel, .two-col-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .hero__content { max-width: 720px; }
  .intro-grid .feature-photo img {
    display: block;
    min-height: 0;
    max-height: none;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 3;
    object-fit: cover;
  }
  .pathways-photo {
    min-height: 0;
    max-height: none;
    height: auto;
    aspect-ratio: 5 / 3;
    object-fit: cover;
  }
}

@media (max-width: 720px) {
  .container { width: calc(100% - 2.25rem); }
  .program-grid, .project-grid, .article-grid, .value-grid,
  .stat-grid, .feature-grid, .story-grid, .grid-3,
  .form-grid, .form-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .section-title { font-size: clamp(2.15rem, 7vw, 3.5rem); }
  .page-hero__title { font-size: clamp(2.4rem, 7.7vw, 4.1rem); }
  .commission-banner h2 { font-size: clamp(2.15rem, 7vw, 3.35rem); }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid .field--full { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .site-header { position: sticky; top:0; }
  .nav-shell {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: .5rem;
    padding: .4rem 0;
    min-height: 66px;
  }
  .nav-shell > .brand { margin-right: auto; min-width: 0; }
  .brand-logo { width: auto; height: 46px; max-width: min(42vw, 150px); }
  .nav-actions { display: none; } /* Same CTA appears inside the open mobile menu. */
  .nav-menu .mobile-support-link { display:block; }
  .nav-toggle { width: 64px; min-width:64px; min-height:44px; height:44px; }
  .nav-menu {
    left: 0;
    right: 0;
    top:100%;
    max-height: calc(100dvh - 112px);
    border-radius: 0 0 8px 8px;
    box-shadow: 0 16px 26px rgba(9,36,45,.18);
  }
  .nav-menu a { padding: .72rem .4rem; font-size: .94rem; }
  .utility-bar .container { min-height: 32px; }
  .utility-bar span { line-height: 1.4; font-size: .62rem; }

  .hero-layout { display:block; }
  .hero { min-height: 0; }
  .hero__content { padding: 3.9rem 0 3.7rem; }
  .display-heading {
    font-size: clamp(2.55rem, 10vw, 4rem);
    letter-spacing: -.034em;
    line-height: 1.09;
    max-width: 100%;
  }
  .hero__text { margin-top: 1.25rem; font-size: 1rem; line-height: 1.62; }
  .hero-trust { gap: .55rem .75rem; margin-top: 1.65rem; }
  .hero-trust span, .hero-trust span:last-child { display: inline; font-size: .61rem; }
  .hero-trust span + span { padding-left: .65rem; }
  .hero__actions { gap: .75rem; margin-top:1.65rem; }
  .hero__actions .button { min-height: 48px; line-height:1.4; }
  .editorial-strap__inner { padding: .95rem 0; }
  .editorial-strap strong { font-size:1.08rem; }
  .editorial-strap span { letter-spacing:.085em; line-height:1.55; }

  .section { padding: 3.85rem 0; }
  .section-title { font-size: clamp(2.15rem, 8.3vw, 3.2rem); line-height:1.15; }
  .page-hero { padding: 3.6rem 0 3.4rem; }
  .page-hero__title { font-size: clamp(2.32rem, 8.75vw, 3.5rem); line-height:1.11; }
  .page-hero__text { font-size:1rem; line-height:1.65; }
  .page-hero__breadcrumbs { letter-spacing:.08em; margin-bottom:1.15rem; line-height:1.6; }
  .section-lede { font-size: 1rem; }
  .intro-grid { gap:2.1rem; }
  .intro-grid .feature-photo img, .pathways-photo { aspect-ratio: 4 / 3; min-height:0; }
  .highlight-card { grid-template-columns: minmax(0,1fr); gap:.3rem; }
  .pathways-list li { grid-template-columns: 34px minmax(0,1fr); gap:.8rem; }
  .evidence-list a { min-height:52px; padding:1rem 0; }
  .program-card { min-height:0; padding:1.65rem 1.35rem; }
  .program-card h3 { font-size:1.44rem; }
  .program-card .meta-link { min-height: 44px; }
  .project-card img, .article-card img, .story-card img { height: auto; aspect-ratio: 16 / 10; }
  .project-card .content, .article-card .content, .story-card .content { padding:1.45rem; }
  .content-panel, .side-panel, .form-card { padding: 1.25rem; }
  .commission-banner { padding:1.85rem 1.25rem; }
  .commission-banner h2 { font-size: clamp(2.05rem, 8vw, 3rem); }
  .commission-banner .cta-row { flex-direction:column; align-items:stretch; gap:.75rem; }
  .commission-banner .cta-row .button { width:100%; }
  .filter-bar { display:block; }
  .filter-tag { margin-bottom:.8rem; }
  .search-field { width:100%; max-width:none; }
  .form-grid, .form-row, .footer-grid { grid-template-columns:minmax(0,1fr); }
  .form-grid .field--full { grid-column: auto; }
  .field input, .field textarea, .field select { width:100%; }
  .form-turnstile { min-height:0; }
  .footer { padding-top:3rem; }
  .footer-grid { gap: 2rem; }
  .newsletter { grid-template-columns:minmax(0,1fr); }
  .footer-meta { display:block; line-height:1.85; }
  .footer-meta span { display:block; }
}

@media (max-width: 360px) {
  .container { width:calc(100% - 1.5rem); }
  .brand-logo { max-width: 43vw; height:40px; }
  .nav-toggle { min-width:55px; width:55px; }
  .display-heading { font-size: clamp(2.27rem, 10vw, 2.75rem); }
  .section-title { font-size:clamp(2.05rem, 9vw, 2.5rem); }
  .page-hero__title { font-size:clamp(2.13rem, 9vw, 2.7rem); }
  .kicker, .section-tag { letter-spacing:.11em; }
  .hero-trust span + span { border-left: 0; padding-left:0; }
  .hero-trust { column-gap:.9rem; }
  .form-card, .content-panel { padding:1rem; }
}

@media (max-height: 550px) and (max-width: 1160px) {
  .nav-menu { max-height:calc(100dvh - 90px); }
}


/* Short editorial and staff page headers use a compact wrap instead of a hamburger. */
@media(max-width:640px) {
  .nav-shell { flex-wrap: wrap; }
  .nav-shell > nav:not(.nav-menu) {
    display: flex;
    order: 3;
    flex: 1 1 100%;
    width: 100%;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: .5rem .8rem;
    padding: .25rem 0 .55rem;
    font-size: .86rem;
    line-height: 1.5;
  }
  .nav-shell > nav:not(.nav-menu) a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    overflow-wrap: anywhere;
    color: var(--blue-900);
    font-weight: 700;
  }
}


/* Discreet, responsive partner credit follows copyright and legal links. */
.footer .footer-meta { padding-bottom:1.2rem; }
.footer-credit {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-height:49px;
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:.75rem;
  padding-bottom:1.25rem;
  font-size:.78rem;
  line-height:1.6;
  letter-spacing:.015em;
  color:#cadad5;
}
.footer-credit a { color:#fff; font-weight:750; text-decoration:none; }
.footer-credit a:hover,
.footer-credit a:focus-visible { color:#e6f5e9; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:640px) {
  .footer-credit { justify-content:center; text-align:center; padding-bottom:1.5rem; }
}


/* Health & Nutrition — featured priorities ahead of the organisation overview */
.sector-feature {
  padding-block: clamp(3.4rem, 6.5vw, 6.5rem);
  border-bottom: 1px solid var(--line);
}
.sector-feature .section-header { max-width: 850px; }
.sector-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 2rem);
}
.sector-feature-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  min-height: 360px;
  padding: clamp(1.6rem, 3.5vw, 3.1rem);
  border-radius: 6px;
  border: 1px solid rgba(16, 47, 61, .16);
  background: #eef3ee;
  box-shadow: 0 12px 28px rgba(12, 42, 48, .045);
}
.sector-feature-card:nth-child(2) { background: #f5f1e9; }
.sector-feature-card__number {
  display: inline-block;
  color: var(--green-700);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .16em;
  margin-bottom: clamp(1.4rem, 2.8vw, 2.8rem);
}
.sector-feature-card h3 {
  margin: 0 0 .85rem;
  color: var(--blue-900);
  font: normal clamp(2rem, 3.15vw, 3rem) / 1.13 'DM Serif Display', Georgia, serif;
  letter-spacing: -.035em;
}
.sector-feature-card p {
  margin: 0 0 1.7rem;
  color: #485e63;
  font-size: 1.02rem;
  line-height: 1.7;
}
.sector-feature-card .text-link { margin-top: auto; }
.sector-feature-disclaimer {
  color: var(--muted);
  font-size: .83rem;
  margin: 1.3rem 0 0;
}
.program-detail-section:target {
  border-left: 4px solid var(--green-500);
  padding-left: clamp(.9rem, 2vw, 1.7rem);
  scroll-margin-top: 8.5rem;
}
.program-detail-section h2 {
  font: normal clamp(1.8rem, 3vw, 2.55rem) / 1.16 'DM Serif Display', Georgia, serif;
  color: var(--blue-900);
  margin: .7rem 0 1rem;
}
.program-detail-section p { max-width: 78ch; }
@media (max-width: 720px) {
  .sector-feature-grid { grid-template-columns: minmax(0, 1fr); }
  .sector-feature-card { min-height: 0; padding: 1.7rem 1.4rem; }
  .sector-feature-card__number { margin-bottom: 1.5rem; }
  .sector-feature-card h3 { font-size: 2.25rem; }
  .sector-feature-card p { font-size: .97rem; }
}


/* Foundation social channels: visible, accessible and compact on phones. */
.footer-social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
  margin-top: 1.45rem;
}
.footer-social a {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 44px;
  padding: .4rem .8rem .4rem .4rem;
  border: 1px solid rgba(255,255,255,.23);
  border-radius: 5px;
  color: #f0f7f4;
  background: rgba(255,255,255,.055);
  font-size: .84rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease;
}
.footer-social a:hover,
.footer-social a:focus-visible {
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.55);
  color: #fff;
  text-decoration: none;
}
.footer-social__mark {
  width: 29px;
  height: 29px;
  display: inline-grid;
  place-items: center;
  flex: none;
  border-radius: 4px;
  background: #e3ede7;
  color: #174f43;
  font: 800 1.15rem/1 Arial, sans-serif;
}
.compact-footer-social { padding-top: .5rem; padding-bottom: 1.25rem; }
.compact-footer-social .footer-social { margin-top: 0; }
@media(max-width:360px) {
  .footer-social { gap: .45rem; }
  .footer-social a { padding-right: .6rem; font-size: .81rem; }
}
@media(prefers-reduced-motion: reduce) {
  .footer-social a { transition: none; }
}
