/* =====================================================================
   v3 redesign (client/anne-v3, 2 Oct 2026): follows the client's six page mockups and footer mockup.
   Loaded last on every page; it overrides the earlier layers.
   ===================================================================== */
:root {
  --o-bright: #F37321;   /* big emotional accents and display words */
  --o-burnt: #C2560C;    /* small buttons and text, where contrast matters */
  --o-pale: #FFF1E3;     /* chips, hovers, quiet backgrounds */
  --o-donate: #E96F12;
  --v3-ink: #1B2440;
  --v3-serif: "Merriweather", Georgia, "Times New Roman", serif;
  --v3-sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* ---------------- header: larger logo and menu, flat modern Donate ---------------- */
html body .gh-logo img:not(#v):not(#w) { height: clamp(52px, 5.8vw, 120px) !important; }
@media (min-width: 1241px) {
  html body .gh-link:not(#v):not(#w):not(#x) { font-family: var(--v3-sans) !important; font-weight: 500 !important; font-size: clamp(15px, 1.08vw, 20px) !important; color: var(--v3-ink); }
  html body .gh-item.is-current > .gh-link:not(#v):not(#w):not(#x) { color: var(--o-bright) !important; }
  html body .gh-item.is-current > .gh-link::after { background: var(--o-bright) !important; height: 2px !important; }
  html body .gh-item:is(:hover, :focus-within) > .gh-link:not(#v):not(#w):not(#x) { background: var(--o-burnt) !important; color: #fff !important; }
  html body .gh-sub:not(#v):not(#w) { background: var(--o-burnt) !important; }
  html body .gh-sub a:not(#v):not(#w):not(#x) { font-family: var(--v3-sans) !important; }
}
html body .gh-donate:not(#v):not(#w):not(#x) { background: var(--o-donate) !important; filter: none !important; border-radius: 8px !important;
  box-shadow: 0 6px 16px rgba(164, 77, 10, .18) !important; font-family: var(--v3-sans) !important; font-weight: 700 !important; letter-spacing: .04em !important; }
html body .gh-donate:not(#v):not(#w):not(#x):hover { background: var(--o-burnt) !important; transform: translateY(-1px); }

/* ---------------- heroes: one editorial look on every page ---------------- */
html body :is(.hero, .page-hero) .crumbs:not(#v) { display: none !important; }
html body .page-hero:not(.page-hero--plain) > .media::before:not(#v) { display: none !important; }
html body .page-hero:not(.page-hero--plain) > .media::before { display: none !important; }
html body :is(.hero, .page-hero) :is(.sparkles, .hero-dust):not(#v) { display: none !important; }
html body .page-hero > .media::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(90deg, rgba(18, 10, 5, .74) 0%, rgba(18, 10, 5, .48) 36%, rgba(18, 10, 5, .1) 68%, rgba(18, 10, 5, 0) 100%); }
html body .hero .hero-scrim:not(#v):not(#w) { background: linear-gradient(90deg, rgba(18, 10, 5, .72) 0%, rgba(18, 10, 5, .4) 38%, rgba(18, 10, 5, 0) 70%) !important; opacity: 1 !important; }

html body :is(.hero, .page-hero) .hero-eyebrow:not(#v):not(#w) { margin: 0 0 16px; font: 700 clamp(12px, .9vw, 15px)/1.2 var(--v3-sans) !important; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255, 255, 255, .88) !important; -webkit-text-fill-color: currentColor !important; }
html body :is(.hero, .page-hero) h1.v3-title:not(#v):not(#w):not(#x):not(#y) {
  margin: 0; max-width: 16ch; font: 700 clamp(40px, 4.5vw, 80px)/1.08 var(--v3-serif) !important; letter-spacing: -.01em !important;
  color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; background: none !important; filter: none !important; animation: none !important;
  text-shadow: 0 3px 10px rgba(0, 0, 0, .25) !important; font-variation-settings: normal !important; text-transform: none !important; }
html body :is(.hero, .page-hero) h1.v3-title .accent:not(#v):not(#w):not(#x) { color: var(--o-bright) !important; -webkit-text-fill-color: var(--o-bright) !important; background: none !important; }
html body :is(.hero, .page-hero) .lead:not(#v):not(#w):not(#x) { margin-top: 20px !important; max-width: 34em !important; font: 500 clamp(17px, 1.35vw, 22px)/1.55 var(--v3-sans) !important;
  color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; text-shadow: 0 1px 6px rgba(0, 0, 0, .3); }

/* buttons in heroes: one orange primary, white outline secondary, plain text link */
html body :is(.hero, .page-hero) .hero-actions:not(#v) { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 16px; margin-top: 28px !important; }
html body :is(.hero, .page-hero) .btn:not(.btn--ghost):not(#v):not(#w):not(#x) { background: var(--o-bright) !important; color: #fff !important; -webkit-text-fill-color: #fff !important;
  border: 1.5px solid var(--o-bright) !important; border-radius: 999px !important; box-shadow: 0 8px 20px -10px rgba(150, 60, 0, .6) !important; font-family: var(--v3-sans) !important; font-weight: 700 !important; }
html body :is(.hero, .page-hero) .btn:not(.btn--ghost):not(#v):not(#w):not(#x):hover { background: var(--o-burnt) !important; border-color: var(--o-burnt) !important; }
html body :is(.hero, .page-hero) .btn--ghost:not(#v):not(#w):not(#x):not(#y) { background: rgba(0, 0, 0, .15) !important; color: #fff !important; -webkit-text-fill-color: #fff !important;
  border: 1.5px solid rgba(255, 255, 255, .85) !important; border-radius: 999px !important; font-family: var(--v3-sans) !important; font-weight: 700 !important; box-shadow: none !important; }
html body :is(.hero, .page-hero) .btn--ghost:not(#v):not(#w):not(#x):not(#y):hover { background: #fff !important; color: #2B1206 !important; -webkit-text-fill-color: #2B1206 !important; }
html body .hero-textlink { color: #fff; font: 700 15px var(--v3-sans); text-decoration: underline; text-underline-offset: 5px; }
html body .hero-textlink:hover { color: #FFD3AE; }

/* section pills: the first one orange, the others white outlines */
html body .page-hero .v3-pills:not(#v) { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px !important; }
html body .page-hero .v3-pills a:not(#v):not(#w):not(#x) { background: rgba(0, 0, 0, .15) !important; border: 1.5px solid rgba(255, 255, 255, .85) !important; color: #fff !important;
  -webkit-text-fill-color: #fff !important; border-radius: 999px !important; padding: 10px 20px !important; font: 700 15px/1 var(--v3-sans) !important; box-shadow: none !important; }
html body .page-hero .v3-pills a.is-first:not(#v):not(#w):not(#x) { background: var(--o-bright) !important; border-color: var(--o-bright) !important; }
html body .page-hero .v3-pills a:not(#v):not(#w):not(#x):hover { background: var(--o-burnt) !important; border-color: var(--o-burnt) !important; }

/* Contact: quick ways in the hero; the hero is shorter so the form arrives sooner */
html body .hero-quick { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
html body .hero-quick a { display: inline-flex; align-items: center; gap: 10px; padding: 11px 20px; border-radius: 999px; border: 1.5px solid rgba(255, 255, 255, .85);
  background: rgba(0, 0, 0, .18); color: #fff; font: 700 15px/1 var(--v3-sans); text-decoration: none; }
html body .hero-quick a:hover { background: var(--o-bright); border-color: var(--o-bright); }
html body .hero-quick .icon { width: 18px; height: 18px; }
html body main[data-page="contact"] .page-hero:not(#v):not(#w) { min-height: 0 !important; }
@media (min-width: 900px) { html body main[data-page="contact"] .page-hero > .wrap:not(#v):not(#w) { padding-top: calc(var(--header-h) + clamp(44px, 5vw, 84px)) !important; padding-bottom: clamp(48px, 5vw, 84px) !important; } }

/* slideshow dots only show when the pointer is over the photo (always on for touch screens) */
@media (hover: hover) {
  html body :is(.hero, .page-hero) :is(.hero-dots, .ph-dots, .hero-pause) { opacity: 0; transition: opacity .3s; }
  html body :is(.hero, .page-hero):hover :is(.hero-dots, .ph-dots, .hero-pause) { opacity: 1; }
}

/* ---------------- Home: facts strip under the hero ---------------- */
html body .v3-facts { background: #FBF7F2; border-bottom: 1px solid #F0E4D6; }
html body .v3-facts ul { list-style: none; margin: 0 auto; padding: clamp(26px, 3vw, 44px) var(--gutter, 24px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
html body .v3-facts li { display: flex; align-items: center; gap: 16px; padding: 4px clamp(14px, 2vw, 34px); border-left: 1px solid #EBDCCB; }
html body .v3-facts li:first-child { border-left: 0; padding-left: 0; }
html body .v3-facts .icon { flex: 0 0 auto; width: 38px; height: 38px; color: var(--o-bright); }
html body .v3-facts b { display: block; font: 700 clamp(20px, 1.7vw, 28px)/1.1 var(--v3-serif); color: #1F1A17; }
html body .v3-facts span { display: block; margin-top: 4px; font: 500 15px/1.35 var(--v3-sans); color: #5B5650; }
@media (max-width: 899px) { html body .v3-facts ul { grid-template-columns: 1fr 1fr; row-gap: 22px; } html body .v3-facts li:nth-child(3) { border-left: 0; padding-left: 0; } }

/* ---------------- About: More than schools ---------------- */
html body .v3-more-in { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
html body .v3-more h2:not(#v) { font-family: var(--v3-serif) !important; font-weight: 700 !important; color: #1F1A17 !important; -webkit-text-fill-color: currentColor !important; }
html body .v3-torn { margin: 0; transform: rotate(-2deg); filter: drop-shadow(0 18px 30px rgba(80, 30, 0, .25));
  clip-path: polygon(0 3%, 6% 0, 14% 2%, 24% 0, 36% 3%, 48% 0, 60% 2%, 72% 0, 84% 3%, 94% 0, 100% 2%, 98% 14%, 100% 30%, 97% 46%, 100% 62%, 98% 80%, 100% 97%, 90% 100%, 76% 97%, 62% 100%, 48% 98%, 34% 100%, 20% 97%, 8% 100%, 0 97%, 2% 80%, 0 62%, 3% 44%, 0 26%, 2% 12%); }
html body .v3-torn img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 30%; }
@media (max-width: 799px) { html body .v3-more-in { grid-template-columns: 1fr; } }

/* ---------------- Get Involved: three cards ---------------- */
html body .v3-cards ul { list-style: none; margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
html body .v3-cards li { background: #fff; border: 1px solid #F0E4D6; border-radius: 14px; padding: clamp(22px, 2.4vw, 34px); box-shadow: 0 16px 34px -26px rgba(90, 40, 0, .4); }
html body .v3-cards .icon { width: 36px; height: 36px; color: var(--o-bright); }
html body .v3-cards h3:not(#v) { margin: 14px 0 8px; font: 700 clamp(19px, 1.5vw, 23px)/1.2 var(--v3-serif) !important; color: #1F1A17 !important; -webkit-text-fill-color: currentColor !important; }
html body .v3-cards p { margin: 0 0 16px; color: #5B5650; font: 500 16px/1.5 var(--v3-sans); }
html body .v3-cards a { color: var(--o-burnt); font: 700 15px var(--v3-sans); text-decoration: none; }
html body .v3-cards a:hover { text-decoration: underline; }
@media (max-width: 799px) { html body .v3-cards ul { grid-template-columns: 1fr; } }

/* ---------------- Contact: Get in touch / Other ways to connect ---------------- */
html body main[data-page="contact"] .form-card :is(label[for="c-name"], label[for="c-last"], label[for="c-email"], label[for="c-msg"]) {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
html body main[data-page="contact"] .form-sub { margin: 6px 0 18px; color: #5B5650; font: 500 16px var(--v3-sans); }
html body main[data-page="contact"] .form-card h2:not(#v) { font-family: var(--v3-serif) !important; font-weight: 700 !important; }
html body main[data-page="contact"] .connect-h:not(#v) { margin: 0 0 18px; font: 700 clamp(19px, 1.5vw, 23px) var(--v3-serif) !important; }
html body main[data-page="contact"] .contact-details li .icon { color: #fff; background: var(--o-bright); border-radius: 50%; padding: 9px; width: 40px; height: 40px; }
html body main[data-page="contact"] .follow-icons { display: flex; gap: 10px; margin: 8px 0 0; }
html body main[data-page="contact"] .follow-icons .gf-soc { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: var(--o-bright); color: #fff; }
html body main[data-page="contact"] .follow-icons .icon { width: 18px; height: 18px; }

/* ---------------- footer (from the client's footer mockup) ---------------- */
html body .v3f:not(#v):not(#w) { background: #FDF3E8 !important; color: #2B3550; font-family: var(--v3-serif); margin: 0; padding: 0; border: 0; }
html body .v3f .v3f-top { position: relative; overflow: hidden; min-height: clamp(300px, 25vw, 470px);
  background: radial-gradient(40% 70% at 0% 100%, rgba(247, 149, 74, .35), transparent 70%), linear-gradient(90deg, #FFF6EC 0%, #FDEBD8 45%, #FCE3C8 100%); }
html body .v3f .v3f-photo { position: absolute; top: 0; right: 0; bottom: 0; width: 60%; -webkit-mask: linear-gradient(90deg, transparent 0%, #000 24%); mask: linear-gradient(90deg, transparent 0%, #000 24%); }
html body .v3f .v3f-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; }
html body .v3f .v3f-copy { position: relative; z-index: 2; max-width: min(52%, 820px); padding: clamp(34px, 3.4vw, 64px) 0 clamp(80px, 8vw, 140px) max(24px, calc((100% - 1272px) / 2)); }
html body .v3f .v3f-eyebrow:not(#v) { margin: 0; font: 700 clamp(12px, .95vw, 16px)/1 var(--v3-serif) !important; letter-spacing: .3em; text-transform: uppercase; color: #D85A14 !important; }
html body .v3f .v3f-title:not(#v):not(#w) { margin: 18px 0 0; font: 700 clamp(28px, 3vw, 54px)/1.14 var(--v3-serif) !important; color: var(--v3-ink) !important;
  -webkit-text-fill-color: currentColor !important; background: none !important; filter: none !important; text-shadow: none !important; letter-spacing: -.01em; }
html body .v3f .v3f-title span { color: #EA6A12; -webkit-text-fill-color: #EA6A12; }
html body .v3f .v3f-p:not(#v) { margin: 18px 0 0; max-width: 40em; font: 400 clamp(16px, 1.2vw, 20px)/1.55 var(--v3-serif) !important; color: #2B3550 !important; }
html body .v3f .v3f-wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: clamp(56px, 6vw, 110px); z-index: 3; display: block; }

html body .v3f .v3f-band { background: #FDF3E8; }
html body .v3f .v3f-in { max-width: 1320px; margin: 0 auto; padding: clamp(28px, 3vw, 48px) 24px clamp(32px, 3.4vw, 52px);
  display: grid; grid-template-columns: 1.2fr .85fr .95fr .95fr 1.7fr; gap: 0; }
html body .v3f .v3f-in > * { padding: 0 clamp(14px, 2vw, 34px); border-left: 1px solid #EAD9C6; }
html body .v3f .v3f-in > :first-child { border-left: 0; padding-left: 0; text-align: center; }
html body .v3f .v3f-logo img { width: min(100%, 300px); height: auto; display: block; margin: 0 auto; }
html body .v3f .v3f-tag:not(#v) { margin: 14px 0 0; font: 400 clamp(17px, 1.3vw, 21px)/1.35 var(--v3-serif) !important; color: var(--v3-ink) !important; }
html body .v3f .v3f-social { display: flex; justify-content: center; gap: 12px; margin-top: 18px; }
html body .v3f .v3f-social .gf-soc { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #FBE5D2; color: var(--v3-ink); }
html body .v3f .v3f-social .gf-soc svg { width: 20px; height: 20px; fill: currentColor; }
html body .v3f a.gf-soc:hover { background: var(--o-bright); color: #fff; }
html body .v3f .v3f-h:not(#v) { margin: 0 0 22px; position: relative; font: 700 clamp(18px, 1.4vw, 23px)/1.2 var(--v3-serif) !important; color: var(--v3-ink) !important; }
html body .v3f .v3f-h::after { content: ""; position: absolute; left: 0; bottom: -10px; width: 34px; height: 3px; border-radius: 2px; background: #EA6A12; }
html body .v3f .v3f-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
html body .v3f .v3f-col a:not(#v) { color: #2B3550 !important; text-decoration: none; font: 400 clamp(16px, 1.2vw, 19px)/1.3 var(--v3-serif) !important; }
html body .v3f .v3f-col a:hover { color: #D85A14 !important; text-decoration: underline; text-underline-offset: 4px; }
html body .v3f .v3f-sub:not(#v) { margin: 0 0 16px; font: 400 clamp(15px, 1.15vw, 18px)/1.45 var(--v3-serif) !important; color: #2B3550 !important; }
html body .v3f .v3f-form { display: flex; flex-wrap: wrap; }
html body .v3f .v3f-form input { flex: 1 1 200px; min-width: 0; height: 52px; padding: 0 18px; border: 1px solid #E5D3C0; border-right: 0; border-radius: 8px 0 0 8px; background: #fff;
  font: 400 16px var(--v3-serif); color: var(--v3-ink); }
html body .v3f .v3f-form button { height: 52px; padding: 0 24px; border: 0; border-radius: 0 8px 8px 0; background: #F07A1E; color: #fff; font: 700 17px var(--v3-serif);
  display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
html body .v3f .v3f-form button:hover { background: var(--o-burnt); }
html body .v3f .v3f-form button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
html body .v3f .v3f-form :is(.field-error, .form-status) { flex: 1 0 100%; margin: 6px 0 0; font-size: 14px; }
html body .v3f .v3f-motto:not(#v) { display: flex; align-items: center; gap: 12px; margin: 20px 0 0; font: 400 clamp(15px, 1.15vw, 18px) var(--v3-serif) !important; color: #3A4258 !important; }
html body .v3f .v3f-leaf { flex: 0 0 auto; width: 30px; height: 30px; fill: none; stroke: #EA6A12; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

html body .v3f .v3f-legal { position: relative; display: grid; grid-template-columns: minmax(180px, 24%) 1fr auto auto; align-items: center; gap: clamp(16px, 2.4vw, 44px);
  background: #1B2440; color: #F3EDE6; border-top: 3px solid #F07A1E; padding-right: max(24px, calc((100% - 1320px) / 2)); min-height: 78px; }
html body .v3f .v3f-kente { align-self: stretch; min-height: 78px; background: url("pattern/strip-2.svg") 0 50% / auto 140% repeat-x, #D85A14;
  clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%); }
html body .v3f .v3f-legal p:not(#v) { margin: 0; font: 400 clamp(14px, 1.05vw, 17px)/1.4 var(--v3-serif) !important; color: #F3EDE6 !important; }
html body .v3f .v3f-links { display: flex; align-items: center; gap: 16px; }
html body .v3f .v3f-links a { color: #F3EDE6 !important; text-decoration: none; }
html body .v3f .v3f-links a:hover { color: #FFC08A !important; text-decoration: underline; }
html body .v3f .v3f-links span { color: #F07A1E; }
html body .v3f .v3f-ein { display: flex; align-items: center; gap: 12px; }
html body .v3f .v3f-ein span { color: #F3EDE6; }

@media (max-width: 1100px) {
  html body .v3f .v3f-in { grid-template-columns: 1fr 1fr 1fr; row-gap: 30px; }
  html body .v3f .v3f-in > :first-child, html body .v3f .v3f-join { grid-column: 1 / -1; border-left: 0; padding-left: 0; }
  html body .v3f .v3f-in > :nth-child(2) { border-left: 0; padding-left: 0; }
}
@media (max-width: 759px) {
  html body .v3f .v3f-top { min-height: 0; }
  html body .v3f .v3f-photo { position: relative; width: 100%; height: 240px; -webkit-mask: linear-gradient(180deg, #000 70%, transparent); mask: linear-gradient(180deg, #000 70%, transparent); }
  html body .v3f .v3f-copy { max-width: none; padding: 8px 20px 90px; }
  html body .v3f .v3f-in { grid-template-columns: 1fr 1fr; }
  html body .v3f .v3f-in > :nth-child(4) { grid-column: 1 / -1; border-left: 0; padding-left: 0; }
  html body .v3f .v3f-in > :nth-child(3) { border-left: 1px solid #EAD9C6; }
  html body .v3f .v3f-legal { grid-template-columns: 1fr; padding: 0 20px 22px; gap: 12px; }
  html body .v3f .v3f-kente { margin: 0 -20px; min-height: 40px; clip-path: none; }
}

/* fine-tuning */
html body :is(.hero, .page-hero) .hero-eyebrow:not(#v):not(#w) { letter-spacing: .22em !important; }
html body .v3f .v3f-eyebrow:not(#v) { letter-spacing: .3em !important; }
html body :is(.hero, .page-hero) .btn--ghost::after, html body :is(.hero, .page-hero) .btn--ghost .icon { display: none !important; }
@media (min-width: 1241px) { html body .gh-item.gh-has-sub > .gh-link .gh-caret { display: none !important; } }

html body .v3f .v3f-form input { flex: 1 1 0 !important; }
html body .v3f .v3f-form button { flex: 0 0 auto; }
html body .v3f .v3f-photo { -webkit-mask: linear-gradient(90deg, transparent 0%, transparent 8%, #000 34%) !important; mask: linear-gradient(90deg, transparent 0%, transparent 8%, #000 34%) !important; }
@media (max-width: 759px) { html body .v3f .v3f-photo { -webkit-mask: linear-gradient(180deg, #000 70%, transparent) !important; mask: linear-gradient(180deg, #000 70%, transparent) !important; } }
html body .hero .lead .lead-more:not(#v):not(#w):not(#x) { font: inherit !important; color: inherit !important; }

/* ---------------- About first screen (exact mockup) ---------------- */
html body .v3-kente { height: clamp(30px, 3.2vw, 46px); background: url("pattern/kente-band.png") 0 50% / auto 100% repeat-x, #13304A; position: relative; z-index: 3; }
html body main[data-page="about"] .v3-more:not(#v) { background: #FCF9F3 !important; }
html body .v3-torn2 { margin: 0; }
html body .v3-torn2 img { display: block; width: 100%; height: auto; }
html body .v3-more h2:not(#v):not(#w) { font: 700 clamp(30px, 3.2vw, 54px)/1.05 var(--v3-serif) !important; color: #141414 !important; letter-spacing: -.02em; }
html body .v3-more .lead:not(#v):not(#w) { margin-top: 20px; font: 400 clamp(17px, 1.35vw, 22px)/1.5 var(--v3-sans) !important; color: #4A4A4A !important; max-width: 30em; }
html body .v3-cards-list { list-style: none; margin: clamp(26px, 3vw, 44px) auto 0; padding: 0 var(--gutter, 24px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.5vw, 22px); }
html body .v3-cards-list li { background: #fff; border: 1px solid #ECE6DD; border-radius: 12px; padding: clamp(22px, 2.4vw, 36px); }
html body .v3-ic { width: 52px; height: 52px; fill: none; stroke: #F26A1B; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
html body .v3-ic--fill { fill: #F26A1B; stroke: none; }
html body .v3-cards-list h3:not(#v):not(#w) { margin: 16px 0 10px; font: 700 clamp(20px, 1.7vw, 28px)/1.15 var(--v3-serif) !important; color: #141414 !important; letter-spacing: -.01em; }
html body .v3-cards-list p { margin: 0 0 18px; font: 400 clamp(16px, 1.25vw, 20px)/1.35 var(--v3-sans); color: #6A6A6A; max-width: 18em; }
html body .v3-cards-list a { color: #F26A1B; font: 600 clamp(16px, 1.2vw, 19px) var(--v3-sans); text-decoration: none; }
html body .v3-cards-list a:hover { text-decoration: underline; }
@media (max-width: 799px) { html body .v3-cards-list { grid-template-columns: 1fr; } }

/* hero scale taken from the mockups: big title, big lead, big buttons; hero about 57% as tall as it is wide */
@media (min-width: 720px) {
  html body .page-hero:not(.page-hero--plain):not(#v):not(#w) { min-height: 0 !important; height: clamp(520px, 57vw, 88svh) !important; display: flex; align-items: center; }
  html body .page-hero:not(.page-hero--plain) > .wrap:not(#v):not(#w):not(#x) { padding-top: var(--header-h) !important; padding-bottom: 0 !important; width: 100%; }
  html body :is(.hero, .page-hero) h1.v3-title:not(#v):not(#w):not(#x):not(#y):not(#z) { font-size: clamp(44px, 6.6vw, 104px) !important; line-height: 1.02 !important; max-width: 13ch; }
  html body :is(.hero, .page-hero) .hero-eyebrow:not(#v):not(#w):not(#x) { font-size: clamp(13px, 1.5vw, 22px) !important; letter-spacing: .06em !important; margin-bottom: clamp(10px, 1.4vw, 20px) !important; }
  html body :is(.hero, .page-hero) .lead:not(#v):not(#w):not(#x):not(#y) { font-size: clamp(18px, 2.2vw, 32px) !important; line-height: 1.38 !important; max-width: 19.5em !important; margin-top: clamp(12px, 1.6vw, 24px) !important; }
  html body :is(.hero, .page-hero) :is(.btn, .v3-pills a, .hero-quick a):not(#v):not(#w):not(#x):not(#y) { font-size: clamp(16px, 1.75vw, 24px) !important; padding: clamp(12px, 1.2vw, 18px) clamp(26px, 3.4vw, 50px) !important; }
}
html body main[data-page="contact"] .page-hero:not(#v):not(#w):not(#x) { height: clamp(460px, 46vw, 74svh) !important; }
@media (min-width: 720px) {
  html body .page-hero:not(.page-hero--plain) > .wrap:not(#v):not(#w):not(#x) { max-width: 1320px !important; margin-inline: auto !important; padding-inline: clamp(24px, 4.2vw, 64px) !important; box-sizing: border-box; }
}
html body .page-hero > .media.ph-reel::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(90deg, rgba(16, 9, 4, .78) 0%, rgba(16, 9, 4, .55) 30%, rgba(16, 9, 4, .16) 62%, rgba(16, 9, 4, 0) 100%) !important; }
html body main[data-page="about"] .v3-more:not(#v):not(#w) { background-image: none !important; }
html body main[data-page="about"] .v3-more::before, html body main[data-page="about"] .v3-more::after, html body main[data-page="about"] .v3-more > .bgword { display: none !important; }
html body .v3-cards-list p:not(#v) { font-family: var(--v3-sans) !important; }

/* ---------------- footer (2nd mockup): Get Involved call to action over the sunset photo ---------------- */
html body .v3f .v3f-top--cta { min-height: clamp(360px, 26vw, 470px) !important;
  background: linear-gradient(180deg, #1B1006 0%, #4A2508 45%, #C2580E 82%, #F5761A 100%) !important; }
html body .v3f .v3f-top--cta .v3f-photo { width: 58% !important; -webkit-mask: linear-gradient(90deg, transparent 0%, #000 22%) !important; mask: linear-gradient(90deg, transparent 0%, #000 22%) !important; }
html body .v3f .v3f-top--cta .v3f-photo img { object-position: 50% 40%; }
html body .v3f .v3f-top--cta .v3f-copy { padding-top: clamp(30px, 3.4vw, 64px) !important; padding-bottom: clamp(90px, 8vw, 150px) !important; max-width: min(56%, 860px) !important; }
html body .v3f .v3f-top--cta .v3f-eyebrow:not(#v):not(#w) { color: #F5A040 !important; letter-spacing: .32em !important; }
html body .v3f .v3f-top--cta .v3f-title:not(#v):not(#w) { color: #FFFFFF !important; -webkit-text-fill-color: #fff !important; font-size: clamp(34px, 4.1vw, 76px) !important; line-height: 1.02 !important; margin-top: 10px !important; text-shadow: 0 3px 10px rgba(0, 0, 0, .25) !important; }
html body .v3f .v3f-top--cta .v3f-title span { color: #F7801E !important; -webkit-text-fill-color: #F7801E !important; }
html body .v3f .v3f-top--cta .v3f-p:not(#v) { color: #FFF6EC !important; font-size: clamp(16px, 1.5vw, 26px) !important; margin-top: 14px !important; }
html body .v3f .v3f-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: clamp(18px, 2vw, 30px); }
html body .v3f .v3f-btn { display: inline-flex; align-items: center; gap: 12px; padding: clamp(12px, 1.1vw, 17px) clamp(22px, 2.3vw, 36px); border-radius: 10px;
  border: 2px solid #fff; color: #fff; text-decoration: none; font: 600 clamp(15px, 1.25vw, 21px)/1 var(--v3-sans); background: rgba(0, 0, 0, .12); }
html body .v3f .v3f-btn--main { background: linear-gradient(180deg, #F98A2A, #EE6A10); border-color: transparent; box-shadow: 0 8px 20px -8px rgba(150, 60, 0, .7); }
html body .v3f .v3f-btn:hover { background: #fff; color: #2B1206; }
html body .v3f .v3f-btn--main:hover { background: var(--o-burnt); color: #fff; }
html body .v3f .v3f-band { position: relative; background: #FBF8F0 !important; }
html body .v3f .v3f-band::after { content: ""; position: absolute; right: 2%; top: 4%; width: clamp(120px, 10vw, 200px); aspect-ratio: .82; pointer-events: none; opacity: .5;
  background: url("pattern/africa.svg") no-repeat center / contain; }
html body .v3f .v3f-legal:not(#v) { background: #0B1E3F !important; border-top: 3px solid #F58A1F !important; }
html body .v3f .v3f-kente:not(#v) { background: url("pattern/footer-kente.png") 0 50% / cover no-repeat !important; clip-path: polygon(0 0, 100% 0, 86% 100%, 0 100%) !important; }
html body .v3f .v3f-links span:not(#v) { color: #F58A1F !important; }
@media (max-width: 759px) {
  html body .v3f .v3f-top--cta .v3f-photo { width: 100% !important; height: 230px !important; position: relative !important; -webkit-mask: linear-gradient(180deg, #000 70%, transparent) !important; mask: linear-gradient(180deg, #000 70%, transparent) !important; }
  html body .v3f .v3f-top--cta .v3f-copy { max-width: none !important; padding: 0 20px 90px !important; margin-top: -40px; }
}
@media (min-width: 760px) {
  html body .v3f .v3f-top--cta .v3f-copy:not(#v) { max-width: 62% !important; padding-left: max(24px, 5.4%) !important; }
  html body .v3f .v3f-top--cta .v3f-title:not(#v):not(#w):not(#x) { font-size: clamp(34px, 4.4vw, 82px) !important; }
}
html body .v3f .v3f-btn:not(#v) { font-family: var(--v3-sans) !important; white-space: nowrap; }
html body .v3f .v3f-in:not(#v) { max-width: none !important; padding-inline: max(24px, 5%) !important; }
html body .v3f .v3f-top--cta .v3f-p:not(#v):not(#w) { max-width: 31em !important; }
html body .v3f .v3f-band::after { top: auto !important; bottom: 10% !important; right: 1.5% !important; opacity: .35 !important; z-index: 0; }
html body .v3f .v3f-in { position: relative; z-index: 1; }

/* ---------------- Contact and Get Involved first screens (exact mockups) ---------------- */
html body .v3-kente { background-image: url("pattern/kente-band-about.jpg") !important; background-size: auto 100% !important; background-repeat: repeat-x !important; }
html body .v3-kente--contact { background-image: url("pattern/kente-band-contact.jpg") !important; height: clamp(34px, 3.8vw, 56px); }
html body .v3-kente--give { background-image: url("pattern/kente-band-give.jpg") !important; height: clamp(34px, 3.8vw, 56px); }
html body .v3-plain:not(#v):not(#w) { background: #FCFAF5 !important; background-image: none !important; }
html body .v3-plain::before, html body .v3-plain::after, html body .v3-plain > .bgword, html body .v3-plain > .afro-v { display: none !important; }
html body .v3-plain .v3-cards-list { margin-top: 0; }
html body :is(.hero, .page-hero) .btn::after { display: none !important; }

/* hero quick buttons with icons */
html body .hero-quick a:not(#v):not(#w):not(#x):not(#y):not(#z) { gap: 14px; padding: clamp(10px, 1vw, 15px) clamp(22px, 2.6vw, 40px) clamp(10px, 1vw, 15px) clamp(16px, 1.8vw, 26px) !important; border-width: 2px; }
html body .hq-ic { display: grid; place-items: center; width: 1.9em; height: 1.9em; border-radius: 50%; flex: 0 0 auto; }
html body .hq-ic--disc { background: #fff; }
html body .hq-ic svg { width: 1.25em; height: 1.25em; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
html body .hq-ic--disc svg { stroke: #141414; width: 1.1em; height: 1.1em; }
html body .hq-ic svg .fill { fill: #fff; stroke: none; }

/* Get in touch + Other ways to connect */
html body .v3-contact-in { display: grid; grid-template-columns: 1.75fr 1fr; gap: 0; align-items: start; }
html body .v3-form { padding-right: clamp(20px, 2.8vw, 44px); }
html body .v3-form h2:not(#v):not(#w) { margin: 0; font: 700 clamp(34px, 4.3vw, 62px)/1.05 var(--v3-serif) !important; color: #141414 !important; letter-spacing: -.02em; }
html body .v3-form .form-sub:not(#v) { margin: 12px 0 22px !important; font: 400 clamp(17px, 1.75vw, 25px)/1.4 var(--v3-sans) !important; color: #2A2A2A !important; }
html body .v3-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
html body .v3-form .field { margin: 0 0 18px; display: block; }
html body .v3-form :is(input, textarea):not(#v) { width: 100%; box-sizing: border-box; padding: clamp(13px, 1.3vw, 19px) clamp(16px, 1.6vw, 24px); border: 1.5px solid #D9D5CE; border-radius: 8px; background: #FDFCFA;
  font: 400 clamp(16px, 1.45vw, 21px) var(--v3-sans) !important; color: #1F1F1F; }
html body .v3-form :is(input, textarea)::placeholder { color: #767676; }
html body .v3-form :is(input, textarea):focus { outline: none; border-color: #F26A1B; box-shadow: 0 0 0 3px rgba(242, 106, 27, .18); }
html body .v3-form textarea { min-height: clamp(150px, 13vw, 190px); resize: vertical; }
html body .v3-send { display: inline-flex; align-items: center; gap: 14px; margin-top: 4px; padding: clamp(15px, 1.5vw, 22px) clamp(32px, 3.6vw, 52px); border: 0; border-radius: 999px;
  background: #F26A1B; color: #fff; font: 600 clamp(18px, 1.75vw, 26px)/1 var(--v3-sans); cursor: pointer; }
html body .v3-send:hover { background: var(--o-burnt); }
html body .v3-form .form-consent { margin-top: 16px; font: 400 14px var(--v3-sans); color: #6A6A6A; }
html body .v3-ways { border-left: 1.5px solid #E6E1D8; padding-left: clamp(22px, 3vw, 46px); min-height: 100%; }
html body .v3-ways h2:not(#v):not(#w) { margin: 6px 0 clamp(22px, 2.6vw, 38px); font: 700 clamp(22px, 2.3vw, 34px)/1.15 var(--v3-serif) !important; color: #141414 !important; letter-spacing: -.01em; }
html body .v3-ways ul { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(24px, 3vw, 42px); }
html body .v3-ways li { display: flex; align-items: center; gap: clamp(16px, 2vw, 30px); }
html body .v3-disc { flex: 0 0 auto; display: grid; place-items: center; width: clamp(54px, 5.4vw, 76px); aspect-ratio: 1; border-radius: 50%; background: #F26A1B; }
html body .v3-disc svg { width: 52%; height: 52%; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
html body .v3-disc svg .fill { fill: #fff; stroke: none; }
html body .v3-ways h3:not(#v):not(#w) { margin: 0 0 4px; font: 700 clamp(18px, 1.75vw, 25px)/1.2 var(--v3-sans) !important; color: #141414 !important; }
html body .v3-ways p:not(#v) { margin: 0; font: 400 clamp(16px, 1.6vw, 22px)/1.35 var(--v3-sans) !important; color: #2A2A2A !important; }
html body .v3-ways a { color: inherit; text-decoration: none; }
html body .v3-ways a:hover { color: #F26A1B; text-decoration: underline; }
html body .v3-follow { display: flex; gap: 10px; margin-top: 6px !important; }
html body .v3-follow span { display: grid; place-items: center; width: clamp(34px, 3.2vw, 44px); aspect-ratio: 1; border-radius: 8px; background: #F26A1B; }
html body .v3-follow svg { width: 62%; height: 62%; fill: none; stroke: #fff; stroke-width: 2; }
html body .v3-follow svg .fill { fill: #fff; stroke: none; }
html body .v3-follow svg .inv { fill: #F26A1B; }
html body .v3-follow span:last-child svg rect { fill: #fff; stroke: none; }
@media (max-width: 859px) {
  html body .v3-contact-in { grid-template-columns: 1fr; gap: 36px; }
  html body .v3-form { padding-right: 0; }
  html body .v3-ways { border-left: 0; padding-left: 0; border-top: 1.5px solid #E6E1D8; padding-top: 28px; }
  html body .v3-row { grid-template-columns: 1fr; gap: 0; }
}
html body .v3-form .field[hidden] { display: none !important; }
html body main[data-page="contact"] .page-hero:not(#v):not(#w):not(#x):not(#y) { height: clamp(520px, 55vw, 86svh) !important; }
@media (min-width: 900px) { html body main[data-page="contact"] .page-hero > .wrap:not(#v):not(#w):not(#x):not(#y) { padding-top: var(--header-h) !important; padding-bottom: 0 !important; } }
html body .hero-textlink:not(#v) { font: 600 clamp(15px, 1.7vw, 23px) var(--v3-sans) !important; text-underline-offset: 6px; text-shadow: 0 1px 6px rgba(0, 0, 0, .4); margin-left: clamp(6px, 1vw, 16px); }

/* wide, short screens: the hero grows to fit its words, and the words scale with screen height too, so nothing is cut off */
@media (min-width: 720px) {
  html body .page-hero:not(.page-hero--plain):not(#v):not(#w):not(#x):not(#y):not(#z) { height: auto !important; min-height: clamp(480px, 55vw, 86svh) !important; }
  html body .page-hero:not(.page-hero--plain) > .wrap:not(#v):not(#w):not(#x):not(#y):not(#z) { padding-top: calc(var(--header-h) + clamp(20px, 3svh, 44px)) !important; padding-bottom: clamp(28px, 5svh, 64px) !important; }
  html body :is(.hero, .page-hero) h1.v3-title:not(#v):not(#w):not(#x):not(#y):not(#z):not(#a) { font-size: clamp(40px, min(6.6vw, 11.5svh), 104px) !important; }
  html body :is(.hero, .page-hero) .lead:not(#v):not(#w):not(#x):not(#y):not(#z) { font-size: clamp(17px, min(2.2vw, 3.9svh), 32px) !important; }
  html body :is(.hero, .page-hero) .hero-eyebrow:not(#v):not(#w):not(#x):not(#y) { font-size: clamp(13px, min(1.5vw, 2.6svh), 22px) !important; }
  html body :is(.hero, .page-hero) :is(.btn, .v3-pills a, .hero-quick a):not(#v):not(#w):not(#x):not(#y):not(#z) { font-size: clamp(15px, min(1.75vw, 3svh), 24px) !important; padding-block: clamp(10px, min(1.2vw, 2svh), 18px) !important; }
  html body :is(.hero, .page-hero) :is(.hero-actions, .v3-pills, .hero-quick):not(#v):not(#w) { margin-top: clamp(16px, 3.2svh, 30px) !important; }
}

/* ---------------- Impact and Programs first screens (exact mockups) ---------------- */
html body .v3-kente--impact { background-image: url("pattern/kente-band-impact.jpg") !important; height: clamp(28px, 2.5vw, 40px); }
html body .v3-kente--programs { background-image: url("pattern/kente-band-programs.jpg") !important; height: clamp(34px, 3.2vw, 50px); }
html body :is(.hero, .page-hero) .hero-eyebrow--orange:not(#v):not(#w):not(#x) { color: #F5A040 !important; letter-spacing: .16em !important; }

/* Impact: "Education changes the story." with the torn portrait and a quote */
html body .v3-story:not(#v):not(#w) { background: #FDFBF5 !important; background-image: none !important; padding: clamp(20px, 2.4vw, 40px) 0 clamp(28px, 3vw, 48px) !important; min-height: 0 !important; height: auto !important; }
html body .v3-story::before, html body .v3-story::after, html body .v3-story > .bgword { display: none !important; }
html body .v3-story-in { max-width: 1500px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 90px); display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(16px, 2vw, 40px); align-items: center; }
html body .v3-story .window-stage:not(#v) { padding: 0 !important; margin: 0 !important; min-height: 0 !important; text-align: left !important; display: block !important; max-width: none !important; }
html body .v3-story .window-words:not(#v):not(#w) { display: block !important; margin: 0 !important; text-align: left !important; line-height: .9 !important; font-size: clamp(64px, 11vw, 190px) !important; letter-spacing: -.03em !important;
  opacity: 1 !important; transform: none !important; }
html body .v3-story .ww-big { display: block; }
html body .v3-story .ww-rest { display: block; margin-top: .04em; font: 700 .42em/1.05 var(--v3-serif); letter-spacing: -.02em; color: #14224A; -webkit-text-fill-color: #14224A; background: none; }
html body .v3-story-p { margin: clamp(12px, 1.4vw, 22px) 0 0; max-width: 32em; font: 400 clamp(17px, 1.6vw, 26px)/1.3 var(--v3-sans); color: #2B3A5C; }
html body .v3-story-fig { margin: 0; display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; background: radial-gradient(60% 70% at 70% 50%, #FBE3BE 0%, #FBE3BE 55%, rgba(251, 227, 190, 0) 72%); }
html body .v3-story-fig img { width: 100%; height: auto; display: block; }
html body .v3-story-fig figcaption { padding: 0 clamp(8px, 1vw, 20px) 0 clamp(6px, .8vw, 14px); }
html body .v3-qm { display: block; font: 700 clamp(56px, 5.4vw, 96px)/.6 var(--v3-serif); color: #F26A1B; height: .5em; }
html body .v3-quote:not(#v) { margin: 14px 0 0; font: 400 clamp(17px, 1.6vw, 27px)/1.25 var(--v3-serif) !important; font-style: italic !important; color: #14224A !important; }
html body .v3-cite:not(#v) { margin: clamp(10px, 1.2vw, 20px) 0 0; font: 400 clamp(15px, 1.2vw, 21px)/1.3 var(--v3-serif) !important; color: #14224A !important; }
html body .v3-story-sub:not(#v):not(#w) { max-width: 1500px !important; margin: clamp(18px, 2vw, 32px) auto 0 !important; padding: 0 clamp(20px, 5vw, 90px) !important; text-align: left !important; font: 400 clamp(16px, 1.2vw, 20px)/1.55 var(--v3-sans) !important; color: #4A5163 !important; opacity: 1 !important; transform: none !important; box-sizing: border-box; }
@media (max-width: 899px) { html body .v3-story-in { grid-template-columns: 1fr; } }

/* Programs: Our Approach with the Kenya map */
html body .v3-approach:not(#v):not(#w):not(#x) { background: url("media/acacia-deco.png") right bottom / auto 100% no-repeat, #FBF8F2 !important; padding-block: clamp(26px, 3vw, 54px) !important; }
html body .v3-approach-in { display: grid; grid-template-columns: 1.55fr .9fr .75fr; gap: clamp(14px, 2vw, 36px); align-items: center; max-width: 1500px !important; }
html body .v3-kicker { margin: 0 0 8px; font: 700 clamp(12px, 1vw, 16px) var(--v3-sans); letter-spacing: .26em; text-transform: uppercase; color: #F0531A; }
html body .v3-approach h2:not(#v):not(#w) { margin: 0; font: 700 clamp(28px, 3.3vw, 56px)/1.04 var(--v3-serif) !important; color: #14224A !important; -webkit-text-fill-color: currentColor !important; letter-spacing: -.02em; max-width: 14.500em; }
html body .v3-approach-lead { margin: clamp(10px, 1.2vw, 18px) 0 0; font: 400 clamp(17px, 1.75vw, 29px)/1.25 var(--v3-serif); color: #4A5570; max-width: 24em; }
html body .v3-map { width: 100%; height: auto; display: block; }
html body .v3-approach-side { margin: 0; font: 400 clamp(15px, 1.1vw, 19px)/1.4 var(--v3-sans); color: #14224A; }
@media (max-width: 999px) { html body .v3-approach-in { grid-template-columns: 1fr 1fr; } html body .v3-approach-in > :first-child { grid-column: 1 / -1; } html body .v3-approach:not(#v):not(#w):not(#x) { background: #FBF8F2 !important; } }
@media (max-width: 599px) { html body .v3-approach-in { grid-template-columns: 1fr; } }
html body .v3-pills a span { margin-left: .5em; }
html body main :is(.v3-story-p, .v3-approach-side, .v3-kicker):not(#v):not(#w):not(#x) { font-family: var(--v3-sans) !important; }
html body .v3-kicker:not(#v):not(#w):not(#x) { font-weight: 700 !important; font-size: clamp(12px, 1vw, 16px) !important; letter-spacing: .26em !important; }
html body .v3-approach-side:not(#v):not(#w):not(#x) { font-size: clamp(15px, 1.1vw, 19px) !important; line-height: 1.4 !important; color: #14224A !important; }
html body .v3-approach-lead:not(#v):not(#w) { font: 400 clamp(17px, 1.75vw, 29px)/1.25 var(--v3-serif) !important; color: #4A5570 !important; }
html body .v3-story-p:not(#v):not(#w):not(#x) { font-size: clamp(17px, 1.6vw, 26px) !important; line-height: 1.3 !important; color: #2B3A5C !important; }
html body .v3-story-in { grid-template-columns: 1.15fr 1fr !important; }
html body .v3-story-fig { grid-template-columns: 1.2fr 1fr !important; }
@media (max-width: 899px) { html body .v3-story-in { grid-template-columns: 1fr !important; } }
html body .v3-story-in { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr) !important; padding-inline: clamp(20px, 4vw, 70px) !important; max-width: 1640px !important; }
html body .v3-story .window-words:not(#v):not(#w):not(#x) { font-size: clamp(56px, 9.2vw, 160px) !important; }
html body .v3-story-p:not(#v):not(#w):not(#x):not(#y) { padding: 0 !important; margin-left: 0 !important; text-align: left !important; }
html body .v3-story-fig { grid-template-columns: 1.3fr 1fr !important; }
html body .v3-story-fig img { transform: scale(1.06); transform-origin: right center; }
html body .v3-quote:not(#v):not(#w) { font-size: clamp(16px, 1.5vw, 26px) !important; }
html body .v3-approach h2:not(#v):not(#w):not(#x) { max-width: none !important; font-size: clamp(28px, 3.1vw, 54px) !important; }
html body .v3-approach-in { grid-template-columns: 1.7fr .9fr .75fr !important; }
@media (max-width: 899px) { html body .v3-story-in { grid-template-columns: 1fr !important; } }
@media (max-width: 999px) { html body .v3-approach-in { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 599px) { html body .v3-approach-in { grid-template-columns: 1fr !important; } }

/* ---------------- Home: "Every girl…" as a full-width banner; "One Girl… One Generation." larger ---------------- */
html body .manifesto:not(#v):not(#w) { padding-top: 0 !important; }
html body .manifesto > .manifesto-stage:not(#v) { display: block; gap: 0; }
html body .manifesto > .manifesto-stage > .wrap:not(#v):not(#w) { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
html body .manifesto .manifesto-lines:not(#v):not(#w):not(#x) { width: 100% !important; max-width: none !important; box-sizing: border-box; border-radius: 0 !important; box-shadow: none !important;
  padding: clamp(34px, 4.6vw, 80px) max(24px, calc((100% - 1272px) / 2)) clamp(40px, 5.2vw, 90px) max(44px, calc((100% - 1272px) / 2)) !important; }
html body .manifesto .manifesto-lines::before { width: clamp(16px, 1.6vw, 26px) !important; }
html body .manifesto > .bgword { display: none !important; }
@media (min-width: 700px) { html body .manifesto .manifesto-lines:not(#v):not(#w):not(#x):not(#y) { font-size: clamp(2rem, 5.3vw, 6.2rem) !important; } }

html body .ripple .ripple-line:not(#v):not(#w) { font-size: calc(clamp(1.5rem, 3.3vw, 3.4rem) * (1 + var(--i, 0) * .3)) !important; line-height: .98 !important; }
@media (min-width: 900px) { html body .ripple :is(.ripple-stack, .ripple-note):not(#v) { max-width: 56% !important; } }
@media (max-width: 599px) { html body .ripple .ripple-line:not(#v):not(#w) { font-size: calc(clamp(1.25rem, 5.6vw, 1.9rem) * (1 + var(--i, 0) * .22)) !important; } }
@media (max-width: 699px) { html body .manifesto .manifesto-lines:not(#v):not(#w):not(#x):not(#y) { font-size: 6.5vw !important; padding: 30px 12px 34px 34px !important; } }

/* "Every girl…" banner: the African strip runs along all four sides */
html body .manifesto .mf-edge { position: absolute; z-index: 2; pointer-events: none; }
html body .manifesto .mf-edge--r { top: 0; bottom: 0; right: 0; width: clamp(16px, 1.6vw, 26px); background: url("pattern/strip-v.svg") 0 0 / 100% auto repeat-y, #2B1206; }
html body .manifesto .mf-edge--b { left: 0; right: 0; bottom: 0; height: clamp(16px, 1.6vw, 26px); background: url("pattern/strip-2.svg") 0 0 / auto 100% repeat-x, #2B1206; z-index: 3; }
html body .manifesto .manifesto-lines:not(#v):not(#w):not(#x):not(#y):not(#z) { padding-bottom: calc(clamp(40px, 5.2vw, 90px) + 20px) !important; }
html body .manifesto .mf-sym.s1 { right: calc(clamp(16px, 1.6vw, 26px) + 14px) !important; }
html body .manifesto .mf-sym.s2 { bottom: calc(clamp(16px, 1.6vw, 26px) + 12px) !important; }

/* plain page tops (Privacy, Page Not Found) sit on a light ground: dark words, no photo shading */
html body .page-hero.page-hero--plain :is(.lead, p, li, a:not(.btn), .crumbs, .crumbs a):not(#v):not(#w):not(#x):not(#y):not(#z) { color: #3A2A20 !important; -webkit-text-fill-color: #3A2A20 !important; text-shadow: none !important; }
html body .page-hero.page-hero--plain > .media::after { display: none !important; }

/* ---------- Build a School: featured project (2 Oct 2026) ---------- */
html body .v3-school-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
html body .v3-school h2:not(#v):not(#w) { margin: 0; font: 700 clamp(30px, 3.2vw, 54px)/1.06 var(--v3-serif) !important; color: #141414 !important; -webkit-text-fill-color: currentColor !important; letter-spacing: -.02em; }
html body .v3-school :is(.v3-school-lead, .v3-school-sub, .v3-school-note):not(#v):not(#w) { font-family: var(--v3-sans) !important; margin-bottom: 0; }
html body .v3-school .v3-school-lead:not(#v):not(#w) { margin-top: 20px; font-size: clamp(17px, 1.35vw, 22px); line-height: 1.5; color: #3F3A35; max-width: 32em; }
html body .v3-school .v3-school-sub:not(#v):not(#w) { margin-top: 20px; font-size: clamp(16px, 1.15vw, 19px); line-height: 1.5; color: #3F3A35; max-width: 34em; }
html body .v3-school .v3-school-note:not(#v):not(#w) { margin-top: 20px; padding-left: 14px; border-left: 3px solid var(--o-bright); font-size: clamp(15px, 1.05vw, 17px); line-height: 1.5; color: #6A625A; max-width: 34em; }
html body .v3-school .checks:not(#v) { margin: 20px 0 0; gap: 12px 24px; }
html body .v3-school .checks li:not(#v):not(#w) { font: 600 clamp(16px, 1.15vw, 18px)/1.4 var(--v3-sans) !important; color: #1F1A17; }
html body .v3-school-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
html body .v3-school .btn--ghost:not(#v):not(#w) { color: #1F1A17 !important; border-color: #1F1A17 !important; background: transparent !important; }
html body .v3-school .btn--ghost:not(#v):not(#w):hover { color: #fff !important; background: #1F1A17 !important; }
html body .v3-school-fig { margin: 0; position: relative; }
html body .v3-school-fig img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 18px; border: 2px solid var(--o-bright); box-shadow: 0 30px 60px -34px rgba(90, 40, 0, .5); }
html body .v3-school-fig figcaption { margin-top: 10px; font: 500 14px var(--v3-sans); color: #7A7168; text-align: right; }
@media (max-width: 859px) { html body .v3-school-in { grid-template-columns: 1fr; } html body #build-school .v3-school-fig { order: -1; } }
/* four ways-to-give cards, the school first and marked */
html body .v3-cards ul.v3-cards-list--4:not(#v) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
html body .v3-cards-list .v3-card--lead { border: 2px solid var(--o-bright); background: #FFF7EE; position: relative; }
html body .v3-tag { display: inline-block; margin-top: 14px; padding: 4px 10px; border-radius: 999px; background: var(--o-bright); color: #fff; font: 700 12px var(--v3-sans); letter-spacing: .08em; text-transform: uppercase; }
html body .v3-cards-list .v3-tag + h3:not(#v):not(#w) { margin-top: 10px; }
@media (max-width: 1099px) { html body .v3-cards ul.v3-cards-list--4:not(#v) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { html body .v3-cards ul.v3-cards-list--4:not(#v) { grid-template-columns: 1fr; } }
/* Programs: the plan and the need */
html body .project-stage { padding-left: 14px; border-left: 3px solid var(--o-bright); color: #6A625A; }
html body .school-plan { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 64px); align-items: center; margin-top: clamp(32px, 4vw, 56px); }
html body .school-plan .checks { margin: 20px 0 28px; }
html body .school-need { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(12px, 1.6vw, 22px); }
html body .school-need .media { overflow: hidden; border-radius: 14px; border: 2px solid var(--o-bright); aspect-ratio: 4 / 3; }
html body .school-need img { width: 100%; height: 100%; object-fit: cover; display: block; }
html body .school-need span { display: block; margin-top: 10px; font: 600 15px/1.35 var(--v3-sans); color: #3F3A35; }
@media (max-width: 899px) { html body .school-plan { grid-template-columns: 1fr; } }
/* pledge form: purpose of the gift */
html body .fund { margin-bottom: 18px; }

/* ---------- Her Journey: heading readable on the light ground, and close to its photos (2 Oct 2026) ---------- */
html body .journey:not(#v) { padding-top: clamp(20px, 2.4vw, 32px) !important; }
html body .journey > .wrap { position: relative; z-index: 3; }
html body .journey > .wrap h2:not(#v):not(#w):not(#x) { color: #2B1206 !important; -webkit-text-fill-color: currentColor !important; }
html body .journey > .wrap .kicker:not(#v):not(#w):not(#x) { color: #B4460A !important; -webkit-text-fill-color: currentColor !important; }
@media (min-width: 900px) {
  html body .journey .hz.pinned { margin-top: -96px; }
  html body .journey .hz.pinned .hz-pin { align-items: flex-start; }
}

/* ---------- v4: funder readiness (results, how we work, measures, accountability, partners) (3 Oct 2026) ---------- */
/* Impact: results and goals share the white card in the goals band */
html body .goals.goals--3:not(#v) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
html body .v4-goals { margin-top: clamp(44px, 6vw, 76px); padding-top: clamp(40px, 5vw, 64px); border-top: 1.5px dashed rgba(194, 86, 12, .35); }
@media (max-width: 599px) { html body .goals.goals--3:not(#v) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 10px; } }

/* How We Create Change: six steps in a row, wrapping to three, then two */
html body .v4-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; counter-reset: none; }
html body .v4-steps > li { display: grid; gap: 8px; align-content: start; padding: 22px 18px 24px; border-radius: 18px; background: var(--o-pale); border-top: 4px solid var(--o-bright); min-width: 0; }
html body .v4-step-n { font-family: var(--v3-sans); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--o-burnt); }
html body .v4-steps h3 { color: #2B1206; margin: 0; }
html body .v4-steps p { margin: 0; color: var(--slate); font-size: .97rem; }
@media (max-width: 1099px) { html body .v4-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599px) { html body .v4-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } html body .v4-steps > li { padding: 18px 14px 20px; } }

/* Measuring What Matters: a plain two-column table */
html body .v4-measure { overflow-x: auto; background: #FFFFFF; border-radius: 20px; box-shadow: 0 0 0 1px rgba(194, 86, 12, .14), 0 18px 40px -26px rgba(120, 45, 0, .35); }
html body .v4-measure table { width: 100%; border-collapse: collapse; min-width: 520px; font-family: var(--v3-sans); }
html body .v4-measure :is(th, td) { text-align: left; padding: 16px 24px; border-bottom: 1px solid #F1E4D6; vertical-align: top; }
html body .v4-measure thead th { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--o-burnt); background: #FFF8F1; }
html body .v4-measure tbody th { font-weight: 700; color: #2B1206; width: 34%; }
html body .v4-measure tbody td { color: var(--slate); }
html body .v4-measure tbody tr:last-child :is(th, td) { border-bottom: 0; }

/* Stories and Results: the six parts every story will report */
html body .v4-format { list-style: none; margin: 0 0 clamp(48px, 6vw, 80px); padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
html body .v4-format > li { display: grid; gap: 6px; align-content: start; padding: 22px 22px 24px; border-radius: 18px; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(194, 86, 12, .16); min-width: 0; }
html body .v4-format h3 { margin: 0; color: #2B1206; }
html body .v4-format p { margin: 0; color: var(--slate); }
@media (max-width: 899px) { html body .v4-format { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479px) { html body .v4-format { grid-template-columns: 1fr; } }

/* About: How Your Gift Is Handled */
html body .v4-gift { margin-top: clamp(40px, 5vw, 64px); padding: clamp(26px, 3.5vw, 40px); border-radius: 22px; background: var(--o-pale); }
html body .v4-gift h3 { margin: 0; color: #2B1206; }
html body .v4-gift .checks:not(#v) { grid-template-columns: 1fr; margin: 22px 0 0; gap: 14px; max-width: 72ch; }

/* Get Involved: partner types and the named-fund note */
html body .v4-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
html body .v4-chips li { font-family: var(--v3-sans); font-weight: 700; color: #2B1206; background: var(--o-pale); border: 1px solid rgba(194, 86, 12, .22); border-radius: 999px; padding: 9px 18px; }
html body .v4-fund-note { margin: -4px 0 18px; font-size: .95rem; color: var(--slate); }

/* Home: For Funders and Partners */
html body .v4-funders-list { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
html body .v4-funders-list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 100%; padding: 20px 22px; border-radius: 16px;
  background: #FFFFFF; box-shadow: 0 0 0 1px rgba(194, 86, 12, .2); color: #2B1206; font-family: var(--v3-sans); font-weight: 700; text-decoration: none; transition: background .2s, box-shadow .2s; }
html body .v4-funders-list a:hover, html body .v4-funders-list a:focus-visible { background: var(--o-pale); box-shadow: 0 0 0 1.5px var(--o-burnt); }
html body .v4-funders-list .icon { flex: none; width: 20px; height: 20px; color: var(--o-burnt); }
/* v4: rings sized to fit phone rows (3 results across, goals 2 by 2) */
@media (max-width: 899px) { html body section.band#goals .v4-goals .goal:has(.number.word):not(#v) { grid-column: auto; } }
@media (max-width: 599px) {
  html body section.band#goals .goals.goals--3 .goal-ring:not(#v) { width: min(25vw, 100px); margin-bottom: 8px; }
  html body section.band#goals .goals.goals--3 .goal-ring .number:not(#v) { font-size: 1.1rem !important; }
  html body section.band#goals .v4-goals .goal-ring:not(#v) { width: min(36vw, 136px); margin-bottom: 8px; }
  html body section.band#goals .v4-goals .goal-ring .number:not(#v) { font-size: 1.35rem !important; }
  html body section.band#goals .v4-goals .goal-ring .number.word:not(#v) { font-size: .95rem !important; }
  html body section.band#goals .goal-label:not(#v) { font-size: 11px; letter-spacing: .08em; line-height: 1.45; overflow-wrap: anywhere; }
  html body section.band#goals .goals:not(#v) { gap: 28px 12px; }
}
/* v4: Measuring table stacks on phones (label above its measure), no sideways scroll */
@media (max-width: 599px) {
  html body .v4-measure table:not(#v) { min-width: 0; }
  html body .v4-measure thead:not(#v) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  html body .v4-measure tbody tr:not(#v) { display: block; padding: 14px 20px; border-bottom: 1px solid #F1E4D6; }
  html body .v4-measure tbody tr:last-child:not(#v) { border-bottom: 0; }
  html body .v4-measure tbody :is(th, td):not(#v) { display: block; width: auto; padding: 0; border: 0; }
  html body .v4-measure tbody th:not(#v) { margin-bottom: 4px; }
}

/* ---------- v4: sponsorship fixes (3 Oct 2026) ---------- */
/* numbers in the results and goals rings: Bodoni's small-size cut so hairlines (the 4 in 450) stay visible */
html body section.band#goals .goal .number:not(#v):not(#w) { font-optical-sizing: none !important; font-variation-settings: "opsz" 6 !important; -webkit-text-stroke: .5px currentColor; }
/* Home facts: keep 501(c)(3) on one line */
html body .v3-facts li:first-child b:not(#v) { white-space: nowrap; }
@media (max-width: 599px) {
  html body .v3-facts li:not(#v) { flex-direction: column; align-items: flex-start; gap: 6px; padding: 4px 12px; min-width: 0; }
  html body .v3-facts .icon:not(#v) { width: 28px; height: 28px; }
  html body .v3-facts b:not(#v) { font-size: 16px; }
  html body .v3-facts span:not(#v) { font-size: 13px; }
}

/* Get Involved: proof line, actions, how sponsorship works */
html body .v4-proof:not(#v) { margin: 0 0 24px; padding: 12px 16px; border-radius: 12px; background: var(--o-pale); font: 700 16px/1.45 var(--v3-sans); color: #2B1206; }
html body .v4-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }
html body .v4-howsponsor { margin-top: clamp(48px, 6vw, 80px); }
html body .v4-howsponsor > h3 { margin: 0 0 22px; color: #2B1206; }
html body .v4-steps.v4-steps--3:not(#v) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
html body .v4-steps h4 { margin: 0; color: #2B1206; }
@media (max-width: 767px) { html body .v4-steps.v4-steps--3:not(#v) { grid-template-columns: 1fr; } }

/* Questions Sponsors Ask */
html body .v4-faq { display: grid; gap: 10px; max-width: 860px; }
html body .v4-faq details { background: #FFFFFF; border-radius: 14px; box-shadow: 0 0 0 1px rgba(194, 86, 12, .18); }
html body .v4-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 22px; font: 700 clamp(16px, 1.2vw, 19px)/1.35 var(--v3-sans); color: #2B1206; }
html body .v4-faq summary::-webkit-details-marker { display: none; }
html body .v4-faq summary::after { content: "+"; flex: none; font: 700 24px/1 var(--v3-sans); color: var(--o-burnt); transition: transform .2s; }
html body .v4-faq details[open] summary::after { transform: rotate(45deg); }
html body .v4-faq summary:focus-visible { outline: 2px solid var(--o-burnt); outline-offset: 2px; border-radius: 14px; }
html body .v4-faq details p { margin: 0; padding: 0 22px 20px; color: var(--slate); max-width: 72ch; }

/* For Organizations: three partner cards, then what a partner receives */
html body .v4-org { list-style: none; margin: clamp(48px, 6vw, 72px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
html body .v4-org > li { display: grid; gap: 12px; align-content: start; padding: 26px 24px; border-radius: 20px; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(194, 86, 12, .14), 0 18px 40px -30px rgba(120, 45, 0, .35); min-width: 0; }
html body .v4-org > li > .icon { width: 34px; height: 34px; color: var(--o-bright); }
html body .v4-org h3 { margin: 0; color: #2B1206; }
html body .v4-org .checks:not(#v), html body .v4-receive .checks:not(#v) { grid-template-columns: 1fr; margin: 4px 0 0; gap: 10px; }
html body .v4-receive { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); padding: clamp(24px, 3vw, 36px); border-radius: 20px; background: var(--o-pale); }
html body .v4-receive h3 { margin: 0 0 12px; color: #2B1206; }
@media (max-width: 899px) { html body .v4-org { grid-template-columns: 1fr; } html body .v4-receive { grid-template-columns: 1fr; } }

/* More ways to help: four across, two by two on tablets */
html body .ways.v4-ways--4:not(#v) { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px; }
@media (max-width: 1099px) { html body .ways.v4-ways--4:not(#v) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { html body .ways.v4-ways--4:not(#v) { grid-template-columns: 1fr; } }

/* Home: our results */
html body .v4-stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
html body .v4-stats li { padding: clamp(22px, 3vw, 36px) 20px; border-radius: 20px; background: var(--o-pale); text-align: center; }
html body .v4-stats b { display: block; font: 700 clamp(40px, 5vw, 68px)/1 var(--v3-serif); color: var(--o-burnt); font-variant-numeric: tabular-nums; }
html body .v4-stats span { display: block; margin-top: 10px; font: 700 13px/1.4 var(--v3-sans); letter-spacing: .12em; text-transform: uppercase; color: #3F3A35; }
@media (max-width: 599px) { html body .v4-stats { gap: 8px; } html body .v4-stats li { padding: 18px 8px; } html body .v4-stats span { font-size: 11px; letter-spacing: .06em; } }

/* Contact: visible topic choice and the new optional fields */
html body .v3-form .field > label:not(.sr-only) { display: block; margin: 0 0 6px; font: 600 14px/1.3 var(--v3-sans); color: #3F3A35; }
html body .v3-form select:not(#v) { width: 100%; box-sizing: border-box; padding: clamp(13px, 1.3vw, 19px) clamp(16px, 1.6vw, 24px); border: 1.5px solid #D9D5CE; border-radius: 8px; background: #FDFCFA; font: 400 16px/1.3 var(--v3-sans); color: #1F1A17; }
html body .v3-form select:focus { outline: none; border-color: #F26A1B; box-shadow: 0 0 0 3px rgba(242, 106, 27, .18); }

/* ---------- v4: Funder Summary page and About tidy (3 Oct 2026) ---------- */
html body .pillars.v4-pillars--3:not(#v) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 899px) { html body .pillars.v4-pillars--3:not(#v) { grid-template-columns: 1fr; } }
html body .v4-fs-print { margin-top: 22px; }
html body .v4-fs-sheet { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
html body .v4-fs-block { padding: clamp(20px, 2.4vw, 30px); border-radius: 18px; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(194, 86, 12, .16); min-width: 0; }
html body .v4-fs-wide { grid-column: 1 / -1; }
html body .v4-fs-block h2 { margin: 0 0 12px; color: #2B1206; }
html body .v4-fs-block p { margin: 0 0 10px; max-width: 80ch; }
html body .v4-fs-block p:last-child { margin-bottom: 0; }
html body .v4-fs-nums { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
html body .v4-fs-nums li { padding: 14px 8px; border-radius: 12px; background: var(--o-pale); text-align: center; }
html body .v4-fs-nums b { display: block; font: 700 clamp(26px, 2.6vw, 36px)/1 var(--v3-serif); color: var(--o-burnt); }
html body .v4-fs-nums span { display: block; margin-top: 6px; font: 700 11px/1.35 var(--v3-sans); letter-spacing: .08em; text-transform: uppercase; color: #3F3A35; }
html body .v4-fs-steps, html body .v4-fs-list { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
html body .v4-fs-dl { margin: 0; display: grid; gap: 8px; }
html body .v4-fs-dl div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; }
html body .v4-fs-dl dt { font: 700 13px/1.4 var(--v3-sans); color: #6A625A; }
html body .v4-fs-dl dd { margin: 0; font-weight: 600; }
html body .v4-fs-note { font-size: .9rem; color: #6A625A; }
@media (max-width: 799px) { html body .v4-fs-sheet { grid-template-columns: 1fr; } html body .v4-fs-dl div { grid-template-columns: 1fr; gap: 0; } }
@media print {
  @page { size: letter; margin: 12mm; }
  html body :is(.gh, .gfoot, .pv-badge, .v4-fs-print, .crumbs, .skip-link) { display: none !important; }
  html body, html body main { background: #FFFFFF !important; }
  html body .v4-fs-hero { padding: 0 0 8px !important; min-height: 0 !important; }
  html body .v4-fs-hero .d1 { font-size: 26px !important; }
  html body .v4-fs-hero .lead { font-size: 12px !important; }
  html body .v4-fs { padding: 0 !important; }
  html body .v4-fs-sheet { grid-template-columns: 1fr 1fr; gap: 8px; }
  html body .v4-fs-block { padding: 10px 12px; box-shadow: none; border: 1px solid #E6D6C4; break-inside: avoid; font-size: 10.5px; line-height: 1.4; }
  html body .v4-fs-block h2 { font-size: 14px !important; margin-bottom: 6px; }
  html body .v4-fs-nums b { font-size: 20px; }
  html body .v4-fs-nums li { padding: 6px 4px; }
  html body .v4-fs-nums span { font-size: 8px; }
  html body .v4-fs-dl div { grid-template-columns: 110px 1fr; }
  html body .v4-fs-dl dt { font-size: 9.5px; }
}
@media print {
  html body :is(.bgword, .afro-v, .afro-strip, .afro-zigzag):not(#v) { display: none !important; }
  html body main :is(section, .wrap):not(#v):not(#w) { background: #FFFFFF !important; background-image: none !important; }
  html body main section:not(#v)::before, html body main section:not(#v)::after, html body main .wrap:not(#v)::before, html body main .wrap:not(#v)::after { display: none !important; }
  html body .v4-fs-hero:not(#v):not(#w):not(#x) { padding: 0 0 6px !important; margin: 0 !important; min-height: 0 !important; }
  html body .v4-fs-hero .d1:not(#v):not(#w):not(#x) { font-size: 22px !important; margin: 0 0 4px !important; }
  html body .v4-fs-hero .lead:not(#v):not(#w):not(#x) { font-size: 11px !important; max-width: none !important; margin: 0 !important; }
  html body .v4-fs:not(#v):not(#w):not(#x) { padding: 0 !important; }
  html body .v4-fs-sheet:not(#v) { gap: 6px; }
  html body .v4-fs-block:not(#v) { padding: 8px 11px; font-size: 9.6px; line-height: 1.35; }
  html body .v4-fs-block p:not(#v) { margin-bottom: 5px; }
  html body .v4-fs-block h2:not(#v):not(#w) { font-size: 12.5px !important; margin-bottom: 4px !important; }
  html body .v4-fs-steps, html body .v4-fs-list { gap: 2px; }
  html body .v4-fs-note:not(#v) { font-size: 9px !important; }
  html body .wrap:not(#v):not(#w) { width: 100% !important; max-width: none !important; padding-inline: 0 !important; }
}
html body .v4-fs-printhead { display: none; }
@media print {
  html body .v4-fs-hero:not(#v) { display: none !important; }
  html body main:not(#v):not(#w) { padding-top: 0 !important; margin-top: 0 !important; }
  html body .v4-fs-printhead:not(#v) { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 2px 6px; border-bottom: 2px solid #F37321; margin-bottom: 2px; }
  html body .v4-fs-printhead img { width: 150px; height: auto; }
  html body .v4-fs-printhead p { margin: 0; text-align: right; }
  html body .v4-fs-printhead b { display: block; font: 700 18px/1.1 var(--v3-serif); color: #2B1206; }
  html body .v4-fs-printhead span { font: 500 9.5px/1.3 var(--v3-sans); color: #6A625A; }
}

/* ---------- v4: Anne's answers (3 Oct 2026): sponsorship levels, four results ---------- */
html body .v4-levels { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
html body .v4-levels > li { padding: 24px 22px; border-radius: 20px; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(194, 86, 12, .18), 0 18px 40px -30px rgba(120, 45, 0, .35); border-top: 4px solid var(--o-bright); min-width: 0; }
html body .v4-level-name:not(#v) { margin: 0; font: 700 13px/1.3 var(--v3-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--o-burnt); }
html body .v4-level-price:not(#v) { margin: 10px 0 0; font: 600 17px/1.2 var(--v3-sans); color: #2B1206; }
html body .v4-level-price b { font: 700 clamp(34px, 3.4vw, 46px)/1 var(--v3-serif); color: #2B1206; margin-right: 4px; }
html body .v4-level-month:not(#v) { margin: 6px 0 16px; font: 500 15px/1.3 var(--v3-sans); color: #6A625A; }
html body .v4-levels dl { margin: 0; display: grid; gap: 0; border-top: 1px solid #F1E4D6; }
html body .v4-levels dl div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid #F1E4D6; font: 500 14.5px/1.35 var(--v3-sans); }
html body .v4-levels dt { color: #3F3A35; }
html body .v4-levels dd { margin: 0; font-weight: 700; color: #2B1206; font-variant-numeric: tabular-nums; }
@media (max-width: 899px) { html body .v4-levels { grid-template-columns: 1fr; } }
html body .v4-levels--pkg { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 20px; }
html body .v4-levels--pkg .v4-level-month:not(#v) { margin-bottom: 0; }
@media (max-width: 1099px) { html body .v4-levels--pkg { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { html body .v4-levels--pkg { grid-template-columns: 1fr; } }
html body .v4-stats:not(#v) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
html body .v4-stats-note:not(#v) { margin: 14px 0 0; font: 500 15px/1.4 var(--v3-sans); color: #6A625A; }
@media (max-width: 599px) {
  html body .v4-stats:not(#v) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body section.band#goals .v4-results-in .goal-ring:not(#v) { width: min(36vw, 136px); margin-bottom: 8px; }
  html body section.band#goals .v4-results-in .goal-ring .number:not(#v) { font-size: 1.35rem !important; }
}
html body .v4-fs-nums:not(#v) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 110px), 1fr)); gap: 6px; }
html body .v4-fs-nums span { overflow-wrap: anywhere; }
@media print { html body .v4-fs-nums:not(#v) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media print { html body .v4-fs-nums b:not(#v) { font-size: 17px; } }
@media print {
  html body .v4-fs-block:not(#v):not(#w) { font-size: 9px; line-height: 1.32; padding: 7px 10px; }
  html body .v4-fs-sheet:not(#v):not(#w) { gap: 5px; }
}
@media print { html body .v4-fs-noprint:not(#v) { display: none !important; } }
@media print { html body .v4-fs-printhead span:not(#v) { display: block; } }

/* ---------- v4: results compared with goals, one row per measure (3 Oct 2026) ---------- */
html body section.band#goals .v4-results-in > .kicker:not(#v) { text-align: center; display: block; }
html body section.band#goals .band-title:not(#v) { max-width: 22ch; }
html body section.band#goals .v4-cmp-lead:not(#v):not(#w) { max-width: 60ch; margin: 18px auto 0; text-align: center; font: 500 clamp(16px, 1.25vw, 19px)/1.5 var(--v3-sans) !important; color: #5B5650 !important; }
html body .v4-cmp { list-style: none; margin: clamp(32px, 4vw, 52px) 0 0; padding: 0; display: grid; gap: 14px; }
html body .v4-cmp-row { display: grid; grid-template-columns: minmax(150px, 1fr) auto minmax(0, 2.4fr) auto; grid-template-areas: "label now track goal"; align-items: center; gap: clamp(14px, 2vw, 28px); padding: clamp(16px, 2vw, 22px) clamp(16px, 2.4vw, 30px); border-radius: 18px; background: #FFF8F1; box-shadow: 0 0 0 1px rgba(194, 86, 12, .14); }
html body .v4-cmp-label { grid-area: label; font: 800 13px/1.3 var(--v3-sans); letter-spacing: .12em; text-transform: uppercase; color: #2B1206; }
html body .v4-cmp-now { grid-area: now; } html body .v4-cmp-goal { grid-area: goal; }
html body :is(.v4-cmp-now, .v4-cmp-goal) { display: grid; justify-items: center; gap: 4px; min-width: 104px; padding: 10px 14px; border-radius: 14px; }
html body .v4-cmp-now { background: #FFFFFF; box-shadow: 0 0 0 1.5px var(--o-bright); }
html body .v4-cmp-goal { background: #2B1206; }
html body :is(.v4-cmp-now, .v4-cmp-goal) b { font: 700 clamp(24px, 2.4vw, 34px)/1 var(--v3-serif); font-variant-numeric: tabular-nums; white-space: nowrap; }
html body .v4-cmp-now b { color: var(--o-burnt); }
html body .v4-cmp-goal b { color: #FFFFFF; }
html body :is(.v4-cmp-now, .v4-cmp-goal) > span { font: 700 10.5px/1 var(--v3-sans); letter-spacing: .14em; text-transform: uppercase; }
html body .v4-cmp-now > span { color: #8A5A2B; } html body .v4-cmp-goal > span { color: #F6C08F; }
html body .v4-cmp-track { grid-area: track; position: relative; display: block; height: 14px; border-radius: 999px; background: #F1E1CF; }
html body .v4-cmp-track i { position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--p, 0) * 100%); border-radius: inherit; background: linear-gradient(90deg, #FFB46A, var(--o-bright) 70%, var(--o-burnt)); transform-origin: left center; transform: scaleX(0); transition: transform 1.4s cubic-bezier(.2, .8, .2, 1) calc(var(--d, 0s) + .2s); }
html body .v4-cmp-track i::after { content: ""; position: absolute; right: -7px; top: 50%; width: 20px; height: 20px; margin-top: -10px; border-radius: 50%; background: #FFFFFF; box-shadow: 0 0 0 4px var(--o-burnt); }
html body .v4-cmp-row.is-in .v4-cmp-track i, html:not(.js) body .v4-cmp-track i { transform: scaleX(1); }
html body .v4-cmp-track em { position: absolute; left: 0; right: 0; top: calc(100% + 8px); font: 600 13px/1.3 var(--v3-sans); font-style: normal; color: #6A625A; text-align: center; }
/* open-ended measures: no percentage, an arrow toward the goal instead */
html body .v4-cmp-row--open .v4-cmp-track { background: repeating-linear-gradient(90deg, #E8C9A6 0 10px, transparent 10px 18px); height: 4px; }
html body .v4-cmp-row--open .v4-cmp-track i { display: none; }
html body .v4-cmp-row--open .v4-cmp-track::after { content: ""; position: absolute; right: -2px; top: 50%; width: 10px; height: 10px; margin-top: -5px; border-top: 3px solid #C2560C; border-right: 3px solid #C2560C; transform: rotate(45deg); }
html body .v4-cmp-row--open .v4-cmp-track em { top: calc(100% + 10px); }
html body .v4-cmp-row { padding-bottom: clamp(26px, 2.8vw, 34px); }
@media (prefers-reduced-motion: reduce) { html body .v4-cmp-track i { transition: none; transform: scaleX(1); } }
@media (max-width: 1023px) {
  html body .v4-cmp-row { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "label label label" "now track goal"; row-gap: 14px; column-gap: 12px; padding-bottom: 36px; }
  html body :is(.v4-cmp-now, .v4-cmp-goal) { min-width: 0; padding: 8px 10px; }
  html body :is(.v4-cmp-now, .v4-cmp-goal) b { font-size: 21px; }
  html body .v4-cmp-track em { font-size: 11.5px; }
}
html body section.band#goals .v4-results-in > .kicker:not(#v):not(#w):not(#x) { color: var(--o-burnt) !important; }
/* aligned columns: every track starts and ends at the same place */
html body .v4-cmp-row:not(#v) { grid-template-columns: 170px 124px minmax(0, 1fr) 190px; }
html body :is(.v4-cmp-now, .v4-cmp-goal):not(#v) { width: 100%; box-sizing: border-box; }
@media (max-width: 1023px) {
  html body .v4-cmp-row:not(#v) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "label label" "now goal" "track track"; row-gap: 12px; column-gap: 10px; padding-bottom: 38px; }
  html body .v4-cmp-goal b:not(#v) { font-size: 21px; }
}
html body .v4-cmp-goal b.v4-cmp-word:not(#v):not(#w) { font-size: clamp(19px, 1.7vw, 25px); padding-block: 4px; }
@media (max-width: 1023px) { html body .v4-cmp-goal b.v4-cmp-word:not(#v):not(#w) { font-size: 17px; } }

/* ---------- v4: Mwende's story and her quote on Get Involved (3 Oct 2026) ---------- */
html body .v4-story { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 64px); align-items: start; margin-bottom: clamp(28px, 3.5vw, 44px); }
html body .v4-story-fig { margin: 0; position: sticky; top: 110px; }
html body .v4-story-fig img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 30%; border-radius: 22px; border: 2px solid var(--o-bright); box-shadow: 0 30px 60px -34px rgba(90, 40, 0, .5); }
html body .v4-story-fig figcaption { margin-top: 8px; font: 500 13px var(--v3-sans); color: #6A625A; text-align: right; }
html body .v4-story-body h3 { margin: 12px 0 0; color: #2B1206; }
html body .v4-story-text { margin-top: 20px; display: grid; gap: 14px; max-width: 64ch; }
html body .v4-story-text p { margin: 0; font-size: clamp(16px, 1.2vw, 18px); line-height: 1.7; color: #3F3A35; }
html body .v4-story-more { margin-top: 18px; }
html body .v4-story-more summary { cursor: pointer; display: inline-flex; align-items: center; gap: 10px; font: 700 16px var(--v3-sans); color: var(--o-burnt); list-style: none; border-bottom: 2px solid var(--o-bright); padding-bottom: 2px; }
html body .v4-story-more summary::-webkit-details-marker { display: none; }
html body .v4-story-more summary::after { content: "+"; font-size: 20px; line-height: 1; }
html body .v4-story-more[open] summary::after { content: "\2212"; }
html body .v4-story-more[open] summary { margin-bottom: 4px; }
html body .v4-format--story > li { background: #FFF8F1; }
@media (max-width: 899px) { html body .v4-story { grid-template-columns: 1fr; } html body .v4-story-fig { position: static; } html body .v4-story-fig img { aspect-ratio: 4 / 3; } }
html body .v4-quote { margin: 0 0 24px; padding: 18px 22px; border-left: 4px solid var(--o-bright); border-radius: 0 14px 14px 0; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(194, 86, 12, .12); }
html body .v4-quote blockquote:not(#v):not(#w) { margin: 0; font: 700 clamp(18px, 1.5vw, 22px)/1.4 var(--v3-serif) !important; font-style: normal !important; color: #2B1206; }
html body .v4-quote figcaption { margin-top: 10px; font: 600 14px var(--v3-sans); color: #6A625A; }

/* ---------- v4: full review (3 Oct 2026): level buttons, home sponsor band, story ask ---------- */
html body .v4-level-actions { display: grid; gap: 10px; justify-items: start; margin-top: 18px; }
html body .v4-level-actions .btn:not(#v) { width: 100%; justify-content: center; }
html body .v4-levels > li { display: grid; align-content: start; }
html body .v4-homesponsor-in { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); align-items: center; }
html body .v4-quote--big:not(#v) { margin: 0; padding: clamp(24px, 3vw, 36px); }
html body .v4-quote--big blockquote:not(#v):not(#w) { font-size: clamp(22px, 2.2vw, 32px) !important; }
@media (max-width: 899px) { html body .v4-homesponsor-in { grid-template-columns: 1fr; } }
html body .v4-story-ask { margin: 0 0 clamp(40px, 5vw, 64px); }
html body .v4-contact-who:not(#v) { margin: 2px 0 0; font: 500 14px/1.3 var(--v3-sans); color: #6A625A; }
html body .v4-levels > li:not(#v) { display: flex; flex-direction: column; }
html body .v4-level-actions:not(#v) { margin-top: auto; padding-top: 18px; }
