/*
Theme Name: Mexiquito
Version: 0.3.0
Requires PHP: 7.4
*/
@font-face{font-family:"DM Sans Variable";src:url(fonts/dm-sans.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces Variable";src:url(fonts/fraunces.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root {
  --blue: #165a9e;
  --blue-dark: #124574;
  --sky: #cfeff7;
  --green: #72b643;
  --ink: #24313a;
  --muted: #58656c;
  --paper: #fffdf8;
  --line: #dce2df;
  --font-body: "DM Sans Variable", sans-serif;
  --font-title: "Fraunces Variable", Georgia, serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a {
  color: inherit;
  text-decoration: none;
}
button {
  font: inherit;
  cursor: pointer;
}
button,
a,
input,
summary {
  touch-action: manipulation;
}
button {
  color: inherit;
}
a,
button,
summary {
  outline-offset: 5px;
}
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--blue);
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
svg {
  flex-shrink: 0;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1,
h2 {
  font-family: var(--font-title);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1.08;
}
h1 {
  font-size: clamp(42px, 4.7vw, 72px);
  white-space: pre-line;
}
h2 {
  font-size: clamp(32px, 3.1vw, 47px);
}
h3 {
  font-weight: 600;
  line-height: 1.3;
}
p {
  color: var(--muted);
}
.container {
  width: min(1240px, calc(100% - 96px));
  margin-inline: auto;
}
.eyebrow {
  display: block;
  color: #437055;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.01em;
  margin-bottom: 18px;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  background: var(--blue);
  color: #fff;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 15px 23px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  transition:
    background 0.18s,
    transform 0.18s;
}
.button:hover {
  background: var(--blue-dark);
  transform: translateY(-2px);
}
.button-small {
  padding: 11px 17px;
}
.button-light {
  background: var(--paper);
  color: var(--blue-dark);
}
.button-light:hover {
  background: #dceace;
}
.quiet-link {
  font-size: 14px;
  font-weight: 600;
  display: inline-flex;
  gap: 14px;
  align-items: center;
  padding: 7px 0;
  border-bottom: 1px solid currentColor;
  width: fit-content;
}
.quiet-link:hover {
  color: var(--blue);
}
.skip-link {
  position: fixed;
  top: -100px;
  left: 20px;
  background: #fff;
  padding: 15px;
  z-index: 100;
}
.skip-link:focus {
  top: 10px;
}
.header {
  background: rgba(255, 253, 248, 0.97);
  position: sticky;
  top: 0;
  z-index: 30;
  border-bottom: 1px solid #24313a12;
}
.header-inner {
  width: min(1344px, calc(100% - 64px));
  height: 100px;
  margin: auto;
  display: flex;
  align-items: center;
  gap: 30px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  flex-shrink: 0;
}
.brand-symbol {
  width: 43px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1.8px solid var(--blue);
  border-radius: 18px 18px 6px 6px;
  color: var(--blue);
  transform: rotate(-5deg);
}
.brand strong {
  font-size: 31px;
  letter-spacing: -1.8px;
  font-weight: 650;
  line-height: 1.1;
  display: block;
  color: var(--blue);
}
.brand small {
  font-size: 9px;
  display: block;
  letter-spacing: 0.35px;
  margin-top: 4px;
}
.brand-dot {
  color: var(--green);
}
.navigation {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-left: auto;
  font-size: 12px;
  font-weight: 550;
}
.navigation a {
  padding-block: 12px;
  white-space: nowrap;
}
.navigation a:hover,
.navigation a[aria-current] {
  color: var(--blue);
}
.menu-toggle {
  display: none;
  background: transparent;
  border: 0;
  padding: 8px;
}
.hero {
  padding-top: 64px;
  padding-bottom: 75px;
  display: grid;
  grid-template-columns: 1.02fr 1fr;
  align-items: center;
  gap: 54px;
  min-height: 650px;
}
.location {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  margin-bottom: 25px;
  color: #486c51;
  font-weight: 550;
}
.location > span {
  width: 7px;
  height: 7px;
  background: var(--green);
  border-radius: 50%;
}
.hero h1 {
  font-size: clamp(46px, 4.25vw, 65px);
  line-height: 1.09;
  letter-spacing: -0.045em;
}
.hero-intro {
  max-width: 420px;
  font-size: 16px;
  line-height: 1.8;
  margin: 25px 0 29px;
}
.hero-actions {
  display: flex;
  gap: 23px;
  align-items: center;
  flex-wrap: wrap;
}
.hero-actions .quiet-link {
  font-size: 12px;
  gap: 12px;
}
.hero-footnote {
  display: flex;
  gap: 9px;
  align-items: center;
  font-size: 11px;
  color: #627168;
  margin-top: 36px;
}
.tiny-flower {
  color: var(--green);
  font-size: 24px;
  line-height: 1;
}
.hero-art {
  position: relative;
  padding: 5px 0 0 10px;
}
.hero-photo-wrap {
  position: relative;
  transform: rotate(2deg);
  border-radius: 190px 190px 20px 20px;
  overflow: hidden;
  background: #e3e9dc;
  aspect-ratio: 1.06;
}
.hero-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 45% center;
}
.photo-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: white;
  background: linear-gradient(transparent, #152c27b3);
  padding: 40px 15px 22px;
  font-size: 11px;
}
.caption-dot {
  background: #b9df8d;
  width: 5px;
  height: 5px;
  border-radius: 50%;
}
.hero-sticker {
  position: absolute;
  bottom: -23px;
  left: -27px;
  background: #e6efce;
  padding: 18px 20px;
  border-radius: 9px;
  transform: rotate(-8deg);
  display: flex;
  align-items: center;
  gap: 11px;
  box-shadow: 0 5px 15px #10200c0a;
  font-size: 12px;
  line-height: 1.6;
  color: #385439;
}
.hero-sticker svg {
  color: #62833c;
}
.hero-sticker strong {
  font-weight: 600;
}
.hero-scribble {
  position: absolute;
  right: -22px;
  top: -28px;
  color: #eaae41;
  font-size: 100px;
  line-height: 1;
  transform: rotate(12deg);
}
.values-ribbon {
  background: #eaf0df;
  border-block: 1px solid #dce6d4;
}
.values-ribbon > .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: 22px;
  font-size: 13px;
  color: #405840;
  font-weight: 500;
}
.values-ribbon span[aria-hidden] {
  font-size: 24px;
  color: #76a756;
  line-height: 1;
}
.introduction {
  padding-block: 110px;
  display: grid;
  grid-template-columns: 0.95fr 1.5fr;
  gap: 110px;
}
.intro-heading h2 {
  margin-bottom: 26px;
  max-width: 350px;
}
.large-copy {
  font-size: 17px;
  line-height: 1.85;
}
.pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  margin-top: 38px;
}
.pillar-icon {
  display: grid;
  place-items: center;
  width: 45px;
  height: 45px;
  margin-bottom: 16px;
  border-radius: 50%;
  color: #4c7050;
  background: #ebf0dd;
}
.icon-1 {
  color: #a87836;
  background: #fff0cd;
}
.icon-2 {
  color: #396d83;
  background: #e1f0f4;
}
.pillars h3 {
  font-size: 18px;
  margin-bottom: 9px;
}
.pillars p {
  font-size: 13px;
  line-height: 1.7;
}
.spaces-section {
  padding: 75px 0 84px;
  background: #f4f5ee;
}
.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 55px;
  margin-bottom: 35px;
}
.section-heading > p {
  max-width: 310px;
  font-size: 14px;
  line-height: 1.7;
}
.section-heading .eyebrow {
  margin-bottom: 13px;
}
.spaces-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
}
.spaces-grid figure {
  margin: 0;
}
.spaces-grid img {
  width: 100%;
  aspect-ratio: 1.47;
  object-fit: cover;
  border-radius: 8px;
}
.spaces-grid figure:nth-child(2) img {
  border-radius: 85px 8px 8px 8px;
}
.spaces-grid figcaption {
  display: flex;
  justify-content: space-between;
  margin-top: 17px;
  font-size: 14px;
  font-weight: 500;
}
.help-section {
  padding-block: 100px;
  scroll-margin-top: 95px;
}
.help-module {
  display: grid;
  grid-template-columns: 0.85fr 1.4fr;
  background: #edf3f6;
  border-radius: 13px;
  overflow: hidden;
  min-height: 438px;
}
.help-options {
  display: flex;
  flex-direction: column;
  padding: 38px 25px;
  background: #e3edf1;
  gap: 9px;
}
.help-options button {
  display: flex;
  align-items: center;
  gap: 17px;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 7px;
  padding: 22px;
  text-align: left;
  font-size: 14px;
}
.help-options button > span:last-child {
  margin-left: auto;
  font-size: 21px;
}
.help-options button svg {
  color: #617580;
}
.help-options button[aria-selected="true"] {
  background: var(--paper);
  box-shadow: 0 4px 10px #1b4c6410;
  color: var(--blue);
  border-color: #d8e0e5;
}
.help-options button:hover {
  background: #fffdf877;
}
.help-panels {
  padding: 48px 60px;
}
.help-panels h3 {
  font-family: var(--font-title);
  font-size: 38px;
  font-weight: 450;
  line-height: 1.14;
  letter-spacing: -0.04em;
  margin: 12px 0 16px;
}
.help-panels p {
  font-size: 14px;
  max-width: 450px;
}
.help-panels .button {
  margin-top: 25px;
}
.little-note {
  font-size: 12px;
  color: #476f8c;
}
.payment-note {
  font-size: 11px !important;
  margin-top: 18px;
  line-height: 1.9;
}
.bank-details {
  margin-top: 26px;
  font-size: 12px;
  border-top: 1px solid #ccdbe1;
  padding-top: 18px;
}
.bank-details summary {
  cursor: pointer;
  font-weight: 550;
  list-style-position: outside;
  margin-left: 13px;
}
.bank-details p {
  margin-top: 15px;
  font-size: 12px;
}
.bank-details a {
  text-decoration: underline;
  color: var(--blue);
}
.bank-details dl {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 8px;
  margin-block: 18px;
}
.bank-details dt {
  color: var(--muted);
}
.bank-details dd {
  margin: 0;
}
.clabe {
  font-variant-numeric: tabular-nums;
}
.text-button {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 0;
  background: none;
  padding: 5px 0;
  text-decoration: underline;
  color: var(--blue);
}
.history-teaser {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 100px;
  padding: 15px 70px 100px;
  align-items: center;
}
.history-date {
  position: relative;
  text-align: center;
  color: #557340;
  padding: 30px 20px;
  background: #edf0df;
  border-radius: 50%;
  aspect-ratio: 1.35;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.history-date > span {
  font-size: 12px;
}
.history-date strong {
  font-family: var(--font-title);
  font-size: 90px;
  font-weight: 400;
  letter-spacing: -5px;
  line-height: 1.1;
}
.history-date .date-flower {
  position: absolute;
  right: 0;
  bottom: 5px;
  font-size: 70px;
  line-height: 1;
  color: #e3ac41;
}
.history-teaser h2 {
  max-width: 450px;
}
.history-teaser p {
  margin: 22px 0;
  font-size: 15px;
}
.trust-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 28px 0;
  border-top: 1px solid var(--line);
  margin-bottom: 60px;
}
.trust-strip > div {
  display: flex;
  gap: 18px;
  align-items: center;
}
.trust-strip svg {
  color: #577645;
}
.trust-strip strong {
  display: block;
  font-size: 15px;
  margin-bottom: 3px;
  font-weight: 600;
}
.trust-strip span span {
  font-size: 12px;
  color: var(--muted);
}
.closing {
  background: #164d72;
  color: var(--paper);
  text-align: center;
  padding: 75px 0;
  overflow: hidden;
}
.closing .container {
  position: relative;
}
.closing .eyebrow {
  color: #d2e6bb;
}
.closing h2 {
  font-size: clamp(38px, 4vw, 60px);
}
.closing p {
  color: #d0dfe5;
  font-size: 15px;
  margin: 22px 0 26px;
}
.closing-location {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  color: #c9dbe3;
  margin-top: 28px;
}
.closing-flower {
  position: absolute;
  left: 6%;
  top: 25%;
  color: #94b466;
  font-size: 150px;
  transform: rotate(-16deg);
  line-height: 1;
}
.footer {
  padding-top: 65px;
  background: #fffdf8;
}
.footer-main {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.3fr;
  gap: 48px;
  padding-bottom: 55px;
}
.footer-main h3 {
  font-size: 12px;
  margin: 7px 0 18px;
}
.footer-main > div > a:not(.brand) {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--muted);
  margin: 9px 0;
}
.footer-main > div > a:hover {
  color: var(--blue);
  text-decoration: underline;
}
.footer-brand p {
  font-size: 12px;
  line-height: 1.8;
  margin-top: 20px;
}
.footer-contact p {
  font-size: 11px;
  line-height: 1.8;
  margin-top: 15px;
}
.footer-bottom {
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: 30px;
  padding-block: 24px;
  font-size: 10px;
  color: var(--muted);
}
.footer-bottom > span {
  margin-right: auto;
}
.preview-banner {
  background: #e6d191;
  text-align: center;
  font-size: 13px;
  padding: 10px;
  position: relative;
  z-index: 35;
}
.preview-banner a {
  text-decoration: underline;
  margin-left: 20px;
}
.page-hero {
  padding: 60px 0 65px;
  max-width: 1100px;
}
.page-hero.with-photo {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 70px;
  align-items: center;
}
.breadcrumb {
  display: block;
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 38px;
}
.breadcrumb span {
  margin-left: 7px;
}
.page-hero h1 {
  font-size: clamp(40px, 4.5vw, 66px);
  max-width: 810px;
}
.page-hero > div > p {
  max-width: 690px;
  margin-top: 25px;
  font-size: 18px;
  line-height: 1.8;
}
.page-hero .button {
  margin-top: 25px;
}
.page-photo img {
  width: 100%;
  height: 390px;
  object-fit: cover;
  border-radius: 120px 120px 12px 12px;
}
.page-sections {
  max-width: 1100px;
  padding: 0 0 55px;
}
.content-section {
  display: grid;
  grid-template-columns: 0.8fr 1.4fr;
  gap: 70px;
  border-top: 1px solid var(--line);
  padding-block: 45px;
}
.content-section h2 {
  font-size: 34px;
  line-height: 1.2;
}
.section-body > p {
  margin-bottom: 20px;
  font-size: 16px;
  line-height: 1.9;
}
.section-body > img {
  border-radius: 8px;
  margin: 25px 0;
}
.content-items,
.steps-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px;
  margin-top: 30px;
}
.content-items h3,
.steps-grid h3 {
  font-size: 18px;
  margin: 0 0 9px;
}
.content-items p,
.steps-grid p {
  font-size: 14px;
}
.content-items > div {
  border-left: 2px solid #a7c884;
  padding-left: 20px;
}
.steps-grid > div {
  background: #f0f4eb;
  border-radius: 8px;
  padding: 25px;
}
.step-number {
  display: block;
  color: #658347;
  font-family: var(--font-title);
  font-size: 30px;
  margin-bottom: 17px;
}
.work-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-bottom: 45px;
  max-width: 1100px;
}
.work-nav a {
  font-size: 12px;
  display: flex;
  gap: 10px;
  align-items: center;
  border: 1px solid #d8e0d1;
  padding: 10px 15px;
  border-radius: 40px;
}
.work-nav a:hover,
.work-nav a[aria-current] {
  background: #e7efdd;
}
.timeline {
  padding-left: 55px;
  position: relative;
}
.timeline:before {
  content: "";
  position: absolute;
  top: 30px;
  bottom: 80px;
  left: 15px;
  width: 1px;
  background: #b4c99b;
}
.timeline .content-section {
  position: relative;
  border-top: 0;
  padding: 35px 0;
}
.timeline-dot {
  position: absolute;
  left: -45px;
  top: 48px;
  background: #78a74b;
  border: 4px solid var(--paper);
  outline: 1px solid #a6c487;
  width: 12px;
  height: 12px;
  border-radius: 50%;
}
.contact-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 50px;
  margin-bottom: 80px;
  max-width: 1100px;
}
.contact-panel {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 40px;
}
.contact-panel h2 {
  font-size: 36px;
  margin-bottom: 30px;
}
.contact-row {
  display: flex;
  gap: 17px;
  align-items: center;
  padding: 23px 0;
  border-top: 1px solid var(--line);
  color: var(--blue);
}
.contact-row > svg {
  width: 20px;
}
.contact-row > svg:last-child {
  margin-left: auto;
  width: 17px;
}
.contact-row small {
  display: block;
  color: var(--muted);
  font-size: 11px;
}
.contact-row strong {
  display: block;
  font-weight: 500;
  font-size: 15px;
  overflow-wrap: anywhere;
}
.visit-panel {
  padding: 40px;
  background: #eaf0df;
  border-radius: 12px;
  color: #456141;
}
.visit-panel h2 {
  font-size: 36px;
  margin: 20px 0;
}
.visit-panel p {
  margin: 20px 0;
  font-size: 14px;
}
.page-cta {
  max-width: 1100px;
  border-radius: 12px;
  background: #e5eef4;
  padding: 40px;
  display: flex;
  align-items: center;
  gap: 35px;
  justify-content: space-between;
  margin-bottom: 80px;
}
.page-cta h2 {
  font-size: 33px;
  max-width: 620px;
}
.page-cta .button {
  flex-shrink: 0;
}
.page-cta .eyebrow {
  margin-bottom: 12px;
}
.document-list {
  max-width: 1100px;
  margin-bottom: 70px;
}
.document-list h2 {
  font-size: 30px;
  margin-bottom: 25px;
}
.document-list > a {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 0;
  border-block: 1px solid var(--line);
}
.document-list > a > span {
  flex: 1;
}
.document-list small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}
.document-list p {
  font-size: 13px;
}
.ally-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin-bottom: 70px;
}
.ally-grid img {
  height: 100px;
  object-fit: contain;
  margin-bottom: 20px;
}
.ally-grid h3 {
  font-size: 18px;
}
.ally-grid p {
  font-size: 13px;
}
.not-found {
  min-height: 60vh;
  padding-block: 100px;
}
.not-found p {
  margin: 25px 0;
}
@media (min-width: 1500px) {
  .hero {
    padding-block: 85px 100px;
  }
  .header-inner {
    gap: 40px;
  }
  .navigation {
    gap: 28px;
  }
  .hero h1 {
    font-size: 70px;
  }
}
@media (max-width: 1180px) {
  .navigation {
    gap: 14px;
    font-size: 11px;
  }
  .header-inner {
    gap: 20px;
    width: calc(100% - 40px);
  }
  .brand strong {
    font-size: 27px;
  }
  .brand small {
    font-size: 8px;
  }
  .brand-symbol {
    width: 35px;
    height: 42px;
  }
  .hero {
    gap: 35px;
  }
  .hero h1 {
    font-size: 51px;
  }
  .introduction {
    gap: 60px;
  }
  .container {
    width: calc(100% - 64px);
  }
  .hero-actions {
    gap: 15px;
  }
  .help-panels {
    padding: 40px;
  }
  .history-teaser {
    padding-inline: 25px;
    gap: 60px;
  }
  .footer-main {
    gap: 30px;
  }
}
@media (max-width: 960px) {
  .navigation {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 80px;
    background: var(--paper);
    padding: 18px 30px 28px;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 12px 20px #24313a09;
    font-size: 15px;
  }
  .navigation.open {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .navigation a {
    padding: 14px;
    border-bottom: 1px solid var(--line);
  }
  .menu-toggle {
    display: block;
  }
  .header-donate {
    margin-left: auto;
  }
  .header-inner {
    height: 80px;
  }
  .hero {
    padding-top: 45px;
    min-height: unset;
    gap: 30px;
  }
  .hero h1 {
    font-size: 46px;
  }
  .hero-intro {
    font-size: 15px;
  }
  .hero-art {
    padding: 0;
  }
  .hero-sticker {
    left: -13px;
    font-size: 10px;
    padding: 13px;
  }
  .hero-scribble {
    font-size: 75px;
    right: -15px;
  }
  .hero-actions .quiet-link {
    margin-top: 3px;
  }
  .hero-footnote {
    margin-top: 24px;
  }
  .introduction {
    gap: 35px;
    grid-template-columns: 1fr 1.4fr;
    padding-block: 75px;
  }
  .pillars {
    gap: 15px;
  }
  .help-options {
    padding: 25px 15px;
  }
  .help-options button {
    padding: 18px 13px;
    gap: 10px;
    font-size: 12px;
  }
  .help-panels {
    padding: 30px;
  }
  .help-panels h3 {
    font-size: 34px;
  }
  .footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 35px;
  }
  .closing-flower {
    left: 1%;
    font-size: 100px;
  }
  .page-hero.with-photo {
    gap: 35px;
  }
  .page-photo img {
    height: 340px;
  }
  .content-section {
    gap: 35px;
  }
  .page-cta h2 {
    font-size: 28px;
  }
  .history-date strong {
    font-size: 75px;
  }
  .history-teaser {
    gap: 45px;
  }
  .trust-strip {
    margin-bottom: 40px;
  }
}
@media (max-width: 700px) {
  .container {
    width: calc(100% - 40px);
  }
  .header-inner {
    width: calc(100% - 32px);
    gap: 12px;
    height: 76px;
  }
  .brand-symbol {
    width: 32px;
    height: 38px;
  }
  .brand {
    gap: 8px;
  }
  .brand strong {
    font-size: 25px;
  }
  .brand small {
    font-size: 7px;
  }
  .header-donate {
    padding: 10px 12px;
    font-size: 12px;
    gap: 6px;
  }
  .header-donate svg {
    width: 13px;
  }
  .menu-toggle {
    padding: 5px;
  }
  .navigation {
    top: 76px;
  }
  .hero {
    grid-template-columns: 1fr;
    gap: 37px;
    padding: 37px 0 58px;
  }
  .location {
    margin-bottom: 21px;
    font-size: 11px;
  }
  .hero h1 {
    font-size: clamp(42px, 10.4vw, 62px);
    max-width: 520px;
  }
  .hero-intro {
    margin: 22px 0 25px;
    max-width: 470px;
    line-height: 1.8;
  }
  .hero-actions {
    gap: 20px;
  }
  .hero-footnote {
    margin-top: 23px;
    font-size: 10px;
  }
  .hero-art {
    width: 92%;
    margin-inline: auto;
  }
  .hero-photo-wrap {
    aspect-ratio: 1.2;
    border-radius: 140px 140px 12px 12px;
  }
  .hero-sticker {
    bottom: -16px;
    left: -9px;
    padding: 13px 17px;
    font-size: 11px;
  }
  .hero-scribble {
    font-size: 75px;
    top: -20px;
    right: -15px;
  }
  .photo-caption {
    font-size: 10px;
  }
  .values-ribbon > .container {
    width: calc(100% - 25px);
    gap: 12px;
    padding: 19px 0;
    justify-content: center;
  }
  .values-ribbon span:not([aria-hidden]) {
    font-size: 10px;
    text-align: center;
    max-width: 82px;
    line-height: 1.5;
  }
  .values-ribbon span[aria-hidden] {
    font-size: 16px;
  }
  .values-ribbon span:last-child {
    display: none;
  }
  .introduction {
    grid-template-columns: 1fr;
    gap: 27px;
    padding-block: 62px;
  }
  .intro-heading h2 {
    max-width: 330px;
    margin-bottom: 18px;
  }
  .large-copy {
    font-size: 15px;
  }
  .pillars {
    gap: 18px;
    margin-top: 28px;
  }
  .pillars h3 {
    font-size: 16px;
  }
  .pillars p {
    font-size: 12px;
  }
  .pillar-icon {
    width: 39px;
    height: 39px;
    margin-bottom: 12px;
  }
  .section-heading {
    display: block;
    margin-bottom: 25px;
  }
  .section-heading > p {
    margin-top: 19px;
    font-size: 14px;
    max-width: 400px;
  }
  .spaces-section {
    padding-block: 54px;
  }
  .spaces-grid {
    grid-template-columns: 1fr;
    gap: 27px;
  }
  .spaces-grid img {
    aspect-ratio: 1.6;
  }
  .spaces-grid figure:nth-child(2) img {
    border-radius: 8px 70px 8px 8px;
  }
  .spaces-grid figcaption {
    margin-top: 12px;
    font-size: 13px;
  }
  .help-section {
    padding-block: 58px;
  }
  .help-module {
    grid-template-columns: 1fr;
    min-height: unset;
  }
  .help-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 13px;
    gap: 8px;
  }
  .help-options button {
    padding: 14px 11px;
    font-size: 11px;
    gap: 9px;
  }
  .help-options button > span:last-child {
    display: none;
  }
  .help-options button svg {
    width: 17px;
    height: 17px;
  }
  .help-panels {
    padding: 30px 24px;
  }
  .help-panels h3 {
    font-size: 34px;
  }
  .help-panels p {
    font-size: 13px;
  }
  .payment-note {
    font-size: 10px !important;
  }
  .help-panels .button {
    font-size: 13px;
  }
  .history-teaser {
    grid-template-columns: 1fr;
    padding: 0 5px 60px;
    gap: 37px;
  }
  .history-date {
    width: 75%;
    max-width: 320px;
    margin-inline: auto;
  }
  .history-date strong {
    font-size: 90px;
  }
  .history-teaser h2 {
    max-width: 350px;
  }
  .trust-strip {
    display: block;
    padding-top: 24px;
    margin-bottom: 40px;
  }
  .trust-strip .quiet-link {
    margin-top: 18px;
    margin-left: 45px;
    font-size: 12px;
  }
  .trust-strip strong {
    font-size: 14px;
  }
  .trust-strip span span {
    font-size: 11px;
  }
  .trust-strip > div {
    gap: 15px;
  }
  .closing {
    padding-block: 60px;
  }
  .closing h2 {
    font-size: 40px;
  }
  .closing .eyebrow {
    font-size: 11px;
  }
  .closing-flower {
    font-size: 80px;
    opacity: 0.18;
    left: -25px;
    top: 10%;
  }
  .closing p {
    font-size: 14px;
  }
  .footer {
    padding-top: 40px;
  }
  .footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 30px 20px;
    padding-bottom: 35px;
  }
  .footer-brand {
    grid-column: 1/-1;
  }
  .footer-contact {
    grid-column: 1/-1;
  }
  .footer-main h3 {
    font-size: 12px;
  }
  .footer-contact p {
    max-width: 280px;
  }
  .footer-bottom {
    flex-wrap: wrap;
    gap: 12px 25px;
    padding-block: 20px;
  }
  .footer-bottom > span {
    width: 100%;
    font-size: 9px;
  }
  .page-hero {
    padding: 30px 0 45px;
  }
  .page-hero.with-photo {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .breadcrumb {
    margin-bottom: 30px;
    font-size: 10px;
  }
  .page-hero h1 {
    font-size: 43px;
  }
  .page-hero > div > p {
    font-size: 16px;
    margin-top: 20px;
  }
  .page-photo {
    max-width: 500px;
    width: 100%;
  }
  .page-photo img {
    height: 280px;
    border-radius: 100px 100px 10px 10px;
  }
  .content-section {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-block: 30px;
  }
  .content-section h2 {
    font-size: 30px;
  }
  .section-body > p {
    font-size: 15px;
  }
  .page-sections {
    padding-bottom: 30px;
  }
  .content-items,
  .steps-grid {
    gap: 20px;
  }
  .content-items h3,
  .steps-grid h3 {
    font-size: 16px;
  }
  .content-items p,
  .steps-grid p {
    font-size: 13px;
  }
  .content-items > div {
    padding-left: 12px;
  }
  .steps-grid > div {
    padding: 20px;
  }
  .work-nav {
    gap: 8px;
    padding-bottom: 30px;
  }
  .work-nav a {
    font-size: 11px;
    padding: 9px 12px;
  }
  .timeline {
    padding-left: 33px;
  }
  .timeline:before {
    left: 6px;
  }
  .timeline-dot {
    left: -32px;
    top: 40px;
  }
  .timeline .content-section {
    gap: 16px;
    padding-block: 25px;
  }
  .timeline .content-section h2 {
    font-size: 27px;
  }
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 25px;
    margin-bottom: 50px;
  }
  .contact-panel,
  .visit-panel {
    padding: 28px 23px;
  }
  .contact-row {
    gap: 12px;
  }
  .contact-row strong {
    font-size: 13px;
  }
  .contact-row svg {
    width: 17px;
  }
  .contact-panel h2,
  .visit-panel h2 {
    font-size: 33px;
  }
  .page-cta {
    display: block;
    padding: 27px;
    margin-bottom: 45px;
  }
  .page-cta h2 {
    font-size: 30px;
  }
  .page-cta .button {
    margin-top: 25px;
  }
  .ally-grid {
    grid-template-columns: 1fr 1fr;
  }
  .preview-banner {
    font-size: 11px;
  }
  .preview-banner a {
    display: block;
    margin: 5px 0 0;
  }
  .not-found {
    padding-block: 65px;
  }
  .bank-details dl {
    grid-template-columns: 80px 1fr;
    font-size: 11px;
  }
  .clabe {
    overflow-wrap: anywhere;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
  }
  .button:hover {
    transform: none;
  }
}

.hero-scribble {
  width: 95px;
  height: auto;
  right: -20px;
  top: -28px;
  transform: rotate(-10deg);
}
@media (max-width: 700px) {
  .hero-scribble {
    width: 70px;
    right: -10px;
    top: -20px;
  }
}

/* Equipo: agrupación institucional, sin jerarquías inventadas. */
.team-directory { padding-bottom: 5rem; }
.team-index { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid #d7ded6; margin-bottom: 3rem; }
.team-index a { padding: 1.5rem 1rem; display: flex; justify-content: space-between; gap: 1rem; color: var(--ink); }
.team-index a:hover { background: #eaf0df; }
.team-group { display: grid; grid-template-columns: 1fr 1.3fr; gap: 4rem; padding: 3rem 0; border-bottom: 1px solid #d7ded6; scroll-margin-top: 6rem; }
.team-group h2 { font-size: clamp(1.8rem,3vw,2.7rem); margin: .6rem 0 1rem; }
.team-group p { line-height: 1.8; }
.team-person { display: flex; align-items: center; gap: 1.5rem; padding: 1rem 0; }
.team-person img { width: 130px; height: 150px; object-fit: cover; border-radius: 70px 70px 12px 12px; }
.team-person h3 { font-size: 1.5rem; margin: .5rem 0; }
.team-monogram { flex-shrink: 0; width: 100px; height: 120px; border-radius: 60px 60px 12px 12px; background: #dcebd3; color: #165a9e; display: grid; place-items: center; font-size: 2rem; }
.team-invitation { margin-top: 3rem; padding: 2.5rem; background: #e9f1e3; display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
@media(max-width:700px) { .team-index { grid-template-columns: 1fr 1fr; } .team-group { grid-template-columns: 1fr; gap: 1rem; } .team-person { align-items: flex-start; } .team-invitation { flex-direction: column; align-items: flex-start; } }

.history-interactive { padding-block: 1rem 5rem; }
.history-guide { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.4rem; }
.history-years { display:flex; overflow-x:auto; gap:.5rem; border-bottom:2px solid #c8d8c6; padding-bottom:1.2rem; }
.history-years button { flex-shrink:0; padding:.9rem 1.3rem; border:1px solid #c8d8c6; border-radius:40px; background:transparent; cursor:pointer; font:inherit; color:inherit; }
.history-years button[aria-selected=true] { background:#165a9e; color:white; border-color:#165a9e; }
.history-event:not([hidden]) { display:grid; grid-template-columns:1fr 2fr; gap:3rem; padding-block:3rem; }
.history-date { font-family:var(--font-display),serif; font-size:clamp(2.5rem,6vw,5.5rem); color:#538342; line-height:1.1; overflow-wrap:anywhere; }
.history-copy h2 { font-size:clamp(1.8rem,3vw,3rem); margin-bottom:1.5rem; }
.history-copy p { line-height:1.9; margin-bottom:1.2rem; max-width:70ch; }
.history-copy img { width:100%; height:auto; margin-top:1rem; border-radius:12px; }
.history-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-top:1px solid #c8d8c6; padding-top:1.5rem; }
.history-controls button { padding:.8rem 1rem; border:1px solid #c8d8c6; border-radius:6px; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.history-controls button:disabled { opacity:.4; cursor:default; }
@media(max-width:700px) { .history-event:not([hidden]) { grid-template-columns:1fr; gap:1.5rem; } .history-guide { display:block; } .history-years button { padding:.7rem 1rem; } }

.photo-story { margin-block:4rem 6rem; }
.photo-story-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2rem; }
.photo-story-heading h2 { font-size:clamp(2rem,3.5vw,3.5rem); margin-top:.8rem; }
.photo-story-heading p { max-width:24ch; color:var(--muted); line-height:1.7; }
.photo-story-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem 2rem; align-items:start; }
.photo-story-grid figure { margin:0; min-width:0; }
.photo-story-grid figure:nth-child(3n+1) { grid-column:1 / -1; }
.gallery-open { position:relative; border:0; background:#edf0e5; padding:0; display:block; width:100%; cursor:zoom-in; border-radius:16px; overflow:hidden; }
.gallery-open img { display:block; width:100%; height:auto; max-height:650px; object-fit:contain; }
.gallery-open span { position:absolute; bottom:1rem; right:1rem; background:var(--paper,#fffdf8); color:#165a9e; border-radius:50%; width:40px; height:40px; display:grid; place-items:center; font-size:1.4rem; }
.photo-story-grid figcaption { line-height:1.7; font-size:.9rem; margin-top:.8rem; color:var(--muted); }
.photo-lightbox { width:min(1150px,95vw); max-width:95vw; max-height:95dvh; border:0; border-radius:15px; padding:1rem; background:#fffdf8; color:#24313a; }
.photo-lightbox::backdrop { background:rgba(20,31,29,.88); }
.photo-lightbox>img { display:block; width:100%; height:auto; max-height:72dvh; object-fit:contain; }
.lightbox-toolbar,.lightbox-footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.lightbox-toolbar { padding-bottom:1rem; }
.lightbox-footer { padding-top:1rem; }
.lightbox-toolbar button,.lightbox-footer button { border:1px solid #c8d8c6; background:white; color:inherit; border-radius:8px; padding:.7rem 1rem; font:inherit; cursor:pointer; }
.lightbox-footer p { margin:0; text-align:center; line-height:1.5; }
.section-body>img { height:auto; max-height:650px; object-fit:contain; }
@media(max-width:700px) { .photo-story-heading { display:block; } .photo-story-heading p { max-width:none; margin-top:1rem; } .photo-story-grid { grid-template-columns:1fr; gap:2rem; } .photo-story-grid figure:nth-child(3n+1) { grid-column:auto; } .photo-lightbox { padding:.75rem; } .lightbox-footer p { font-size:.85rem; } }

.quick-contact { display:flex; justify-content:flex-end; padding-top:.9rem; }
.social-links { display:flex; gap:.7rem 1.4rem; flex-wrap:wrap; }
.social-links a { display:inline-flex; align-items:center; gap:.4rem; font-weight:600; color:#165a9e; font-size:.9rem; }
.location-map { display:grid; grid-template-columns:1fr 1.2fr; gap:3rem; margin-block:4rem 6rem; align-items:center; }
.location-map h2 { font-size:clamp(2rem,3vw,3rem); margin:1rem 0; }
.location-map p { line-height:1.8; margin-bottom:1.5rem; }
.location-map iframe { width:100%; height:380px; border:0; border-radius:18px; background:#e4ece3; }
.allies-showcase { margin-block:5rem; }
.allies-strip { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1.5rem; align-items:center; }
.allies-strip a { text-align:center; display:flex; flex-direction:column; align-items:center; gap:.8rem; }
.allies-strip img { width:100%; height:130px; object-fit:contain; }
.allies-strip span { font-size:.8rem; color:var(--muted); }
.annual-report .content-section:nth-child(-n+3) .content-items h3 { font-family:var(--font-display),serif; font-size:3.5rem; color:#165a9e; }
.annual-report .section-body>p { white-space:pre-line; }
.team-group { display:block; }
.team-group-intro { max-width:700px; margin-bottom:2rem; }
.team-people { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.team-person { display:block; padding:0; }
.team-person img { width:100%; height:320px; object-fit:contain; background:#edf0e5; border-radius:120px 120px 14px 14px; margin-bottom:1rem; }
.team-monogram { width:100%; height:320px; margin-bottom:1rem; border-radius:120px 120px 14px 14px; }
@media(max-width:900px) { .team-people { grid-template-columns:repeat(2,minmax(0,1fr)); } .allies-strip { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) { .quick-contact { justify-content:flex-start; } .location-map { grid-template-columns:1fr; gap:2rem; } .location-map iframe { height:310px; } .allies-strip { grid-template-columns:repeat(2,minmax(0,1fr)); } .team-people { grid-template-columns:1fr 1fr; gap:1rem; } .team-person img,.team-monogram { height:215px; } .team-person h3 { font-size:1.2rem; overflow-wrap:anywhere; } .team-person .eyebrow { font-size:.68rem; letter-spacing:.04em; } }

.official-logo { width:72px; height:72px; object-fit:contain; flex-shrink:0; }
.facebook-mark { background:#165a9e; color:white; width:18px; height:18px; display:inline-grid; place-items:center; border-radius:4px; font:bold 18px Arial,sans-serif; }
@media(max-width:700px){.official-logo {width:48px;height:48px;} .brand strong {font-size:1.15rem;} .brand small {font-size:.52rem;} }

/* Complete navigation: desktop panels and mobile accordions. */
.site-header { background:#fffdf8; box-shadow:0 3px 18px #174e6807; }
.site-header .header-inner { gap:20px; }
.site-nav { margin-left:auto; display:flex; align-items:center; gap:4px; }
.nav-trigger,.site-nav > a { font:inherit; font-size:12px; font-weight:550; color:var(--ink); border:0; background:none; padding:14px 10px; display:flex; align-items:center; gap:6px; white-space:nowrap; border-radius:7px; }
.nav-trigger { cursor:pointer; }
.nav-trigger:hover,.nav-trigger[aria-expanded=true],.nav-trigger[data-current],.site-nav > a:hover,.site-nav a[aria-current] { color:var(--blue); background:#e8f1f5; }
.nav-trigger[aria-expanded=true] svg { transform:rotate(180deg); }
.site-nav .nav-admin { font-size:10px; padding-inline:10px; border-left:1px solid var(--line); border-radius:0; margin-left:5px; }
.site-nav .nav-home,.nav-mobile-heading { display:none; }
.nav-panel { position:absolute; top:100%; left:0; right:0; background:#fffdf8; border-top:1px solid var(--line); box-shadow:0 20px 35px #173e6820; padding:32px max(32px,calc((100vw - 1200px)/2)); display:grid; grid-template-columns:250px 1fr; gap:48px; }
.nav-panel[hidden] { display:none; }
.nav-panel-intro { border-right:1px solid var(--line); padding-right:28px; }
.nav-panel-intro > span { font-size:11px; color:var(--green); }
.nav-panel-intro h2 { font-size:30px; line-height:1.15; margin:12px 0; }
.nav-panel-intro p { font-size:13px; color:var(--muted); line-height:1.7; }
.nav-panel-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 20px; align-content:start; }
.nav-panel-links a { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 16px; border-radius:8px; }
.nav-panel-links a:hover { background:#edf3e6; color:var(--blue); }
.nav-panel-links strong { display:block; font-size:15px; font-weight:600; }
.nav-panel-links small { display:block; font-size:12px; color:var(--muted); margin-top:4px; line-height:1.5; }
.nav-panel-links svg { flex-shrink:0; color:var(--blue); }
@media(min-width:961px) and (max-width:1250px) {
  .site-header .brand strong { font-size:25px; }
  .site-header .brand small { font-size:7px; }
  .site-header .official-logo { width:54px; height:54px; }
  .site-header .header-inner { gap:12px; width:calc(100% - 32px); }
  .nav-trigger,.site-nav > a { font-size:11px; padding-inline:7px; }
  .site-nav .nav-admin span { display:none; }
  .site-nav .nav-admin { width:32px; height:40px; }
}
@media(max-width:960px) {
  .site-nav { display:none; position:absolute; top:100%; left:0; right:0; background:#fffdf8; padding:16px 24px 24px; max-height:calc(100dvh - 80px); overflow-y:auto; overscroll-behavior:contain; border-bottom:1px solid var(--line); box-shadow:0 15px 25px #173e681a; }
  .site-nav.is-open { display:block; }
  .nav-mobile-heading { display:block; color:var(--green); font-size:12px; padding:6px 10px 15px; }
  .site-nav .nav-home { display:flex; }
  .nav-trigger,.site-nav > a { width:100%; font-size:15px; padding:15px 10px; border-radius:0; border-bottom:1px solid var(--line); justify-content:space-between; }
  .nav-panel { position:static; display:block; padding:0 0 12px; border:0; box-shadow:none; }
  .nav-panel-intro { display:none; }
  .nav-panel-links { display:block; padding:4px 0 0 10px; border-left:2px solid #a5c9dc; margin-left:10px; }
  .nav-panel-links a { padding:12px; }
  .nav-panel-links strong { font-size:14px; }
  .site-nav .nav-admin { margin:14px 0 0; padding:12px 10px; font-size:12px; border:0; justify-content:flex-start; gap:8px; }
}
@media(max-width:700px) { .site-header .header-inner { gap:10px; } .site-nav { max-height:calc(100dvh - 76px); } }
@media(max-width:700px) {
  .page-hero > div,.content-section > div { min-width:0; }
  .page-hero h1,.content-section h2 { overflow-wrap:anywhere; }
  .site-header .brand { min-width:0; flex-shrink:1; }
  .site-header .brand strong { font-size:23px; }
  .site-header .brand small { font-size:6px; }
  .site-header .header-donate,.site-header .menu-toggle { flex-shrink:0; }
}
@media(max-width:360px) {
  .site-header .official-logo { width:38px; height:38px; }
  .site-header .brand strong { font-size:21px; }
  .site-header .brand small { max-width:100px; }
  .site-header .header-inner { width:calc(100% - 24px); gap:7px; }
  .site-header .header-donate { padding:10px; }
  .page-hero h1 { font-size:36px; }
}
@media(max-width:500px) {
  .steps-grid { grid-template-columns:minmax(0,1fr); }
  .steps-grid > div { min-width:0; overflow-wrap:anywhere; }
}

/* Persistent, keyboard-accessible language selection. */
.language-switcher { display:inline-flex; flex-shrink:0; gap:2px; padding:3px; border:1px solid var(--line); border-radius:999px; background:#fffdf8; }
.language-switcher button { font:inherit; font-size:11px; font-weight:700; line-height:1; min-width:29px; min-height:30px; border:0; border-radius:999px; background:transparent; color:var(--ink); cursor:pointer; }
.language-switcher button[aria-pressed="true"] { background:var(--blue); color:white; }
.language-switcher button:focus-visible { outline:2px solid var(--green); outline-offset:2px; }
@media(min-width:961px) { .site-header .header-inner { gap:10px; } }
@media(max-width:960px) { .site-header .language-switcher { margin-left:auto; } }
@media(max-width:500px) {
  .site-header .header-inner { gap:6px; }
  .site-header .brand { gap:5px; }
  .site-header .brand small { display:none; }
  .site-header .official-logo { width:34px; height:34px; }
  .site-header .brand strong { font-size:20px; }
  .site-header .header-donate { font-size:11px; padding:9px 7px; gap:3px; }
  .site-header .header-donate svg { display:none; }
  .site-header .menu-toggle { width:30px; padding:3px; }
  .language-switcher { padding:2px; gap:0; }
  .language-switcher button { min-width:25px; min-height:30px; font-size:10px; }
}
@media(max-width:500px) {
  .team-index { grid-template-columns:minmax(0,1fr); }
  .team-index a { min-width:0; overflow-wrap:anywhere; }
}
/* Keep the original signature separate and intact beside the approved portrait. */
.letter-signoff{display:flex;align-items:center;gap:2rem;flex-wrap:wrap;margin-block:2rem}
.letter-signoff>img:first-child{width:200px;height:auto;object-fit:contain;border-radius:12px}
.letter-signoff>img:not(:first-child){width:62px;max-width:100%;height:auto;object-fit:contain}
.financial-chart{display:grid;grid-template-columns:minmax(160px,1fr) minmax(220px,1.3fr);align-items:center;gap:1.5rem;margin:2rem 0;padding:1.5rem;border:1px solid #d8dfd5;border-radius:16px;background:#fff}
.financial-chart svg{display:block;width:100%;max-width:280px;margin:auto}
.financial-year{font:700 22px sans-serif;fill:#263238}.financial-total{font:14px sans-serif;fill:#52615e}
.financial-chart h3{font-size:1.35rem;margin:0}.financial-chart figcaption>p{font-size:.85rem}
.financial-chart ul{list-style:none;padding:0;margin:1rem 0 0}.financial-chart li{display:grid;grid-template-columns:12px 1fr auto;gap:.6rem;align-items:center;margin:.8rem 0;font-size:.9rem;line-height:1.4}
.financial-swatch{width:12px;height:12px;border-radius:3px}.financial-chart strong{white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:700px){.financial-chart{grid-template-columns:1fr;padding:1rem;gap:1rem}.financial-chart svg{max-width:230px}}

/* Timeline labels must not inherit the oval decoration used on the homepage. */
.history-event:not([hidden]){grid-template-columns:120px minmax(0,1fr);align-items:start;gap:2rem}
.history-event[hidden]{display:none}
.history-year-label{font-family:var(--font-title);font-size:2.6rem;line-height:1.2;color:#538342;padding:0;max-width:100%;overflow-wrap:anywhere}
.history-copy{min-width:0}
.history-copy img{display:block;width:auto;max-width:100%;height:auto;max-height:420px;object-fit:contain;border-radius:8px;margin-top:1.5rem}
@media(max-width:700px){.history-event:not([hidden]){grid-template-columns:minmax(0,1fr);gap:1rem;padding-block:1.5rem}.history-year-label{font-size:2rem}.history-copy img{max-height:360px}}

.volunteer-programs figure{margin:2rem 0}.volunteer-programs img{display:block;width:100%;height:auto;border-radius:8px}.volunteer-programs figcaption{margin-top:.75rem;font-weight:600}

.history-memorial{padding-block:2rem 4rem}.history-memorial>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}.history-memorial figure{margin:0;min-width:0}.history-memorial img{display:block;width:100%;height:320px;object-fit:contain;border-radius:8px;background:#f3f0e7}.history-memorial figcaption{margin-top:1rem;line-height:1.6;color:var(--ink)}
@media(max-width:700px){.history-memorial>div{grid-template-columns:1fr;gap:2rem}.history-memorial img{height:320px}}

/* Approved help prose, presented as an editorial sequence. */
.help-editorial .help-opening{grid-template-columns:1fr;gap:1.5rem;padding-block:2rem 4rem;border-top:0}
.help-opening .content-section-heading h2{font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--blue);margin:0}
.help-opening .section-body{max-width:940px}
.help-opening .section-body p:first-child{font-family:var(--font-title);font-size:clamp(3rem,5.5vw,5.2rem);line-height:1.06;margin:0 0 1.5rem;color:var(--blue-dark)}
.help-opening .section-body p:nth-child(2){font-size:1rem;color:var(--muted);margin-bottom:2rem}
.help-opening .section-body p:last-child{font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.55;max-width:48ch;color:var(--ink)}
.help-editorial .help-purpose{background:var(--blue-dark);color:white;padding:3rem;border-radius:8px;grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr);gap:3rem;border-top:0;margin-bottom:2rem}
.help-purpose .content-section-heading h2{color:white;font-size:clamp(2rem,3vw,2.8rem)}
.help-purpose .section-body p{color:white;font-size:1.15rem;line-height:1.8;margin:0}
.help-editorial .help-impact{padding-block:4rem;gap:4rem;border-top:0}
.help-impact .content-section-heading h2{font-size:clamp(2rem,3vw,2.9rem);line-height:1.2;max-width:17ch}
.help-impact-index{list-style:none;margin:2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem 1.3rem;max-width:26rem;color:var(--blue-dark);font-weight:600;font-size:.95rem}
.help-impact-index li{border-bottom:3px solid var(--green);padding-bottom:.3rem}
.help-impact .section-body p{font-size:1.08rem;line-height:1.85;max-width:65ch}
.help-impact .section-body p:last-child{font-family:var(--font-title);font-size:1.55rem;line-height:1.5;color:var(--blue-dark);border-left:4px solid var(--green);padding-left:1.5rem;margin-top:2rem}
@media(max-width:700px){.help-editorial .help-purpose{grid-template-columns:1fr;padding:1.6rem;gap:1.5rem}.help-editorial .help-impact{gap:2rem;padding-block:2.5rem}.help-opening .section-body p:first-child{font-size:2.8rem}.help-impact .content-section-heading h2{max-width:none}.help-impact-index{margin-top:1.4rem}.help-impact .section-body p:last-child{font-size:1.35rem}}

.volunteer-programs{padding-block:3rem 4rem}.volunteer-programs-heading{display:grid;grid-template-columns:1.1fr 1fr;align-items:end;gap:3rem;margin-bottom:2rem}.volunteer-programs-heading h2{font-size:clamp(2.5rem,4vw,4rem);line-height:1.1;color:var(--blue-dark);max-width:13ch}.volunteer-programs-heading p{max-width:30ch;font-size:1.2rem}.volunteer-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:4rem}.volunteer-options article{padding:2rem 0;border-top:1px solid var(--line);max-width:60ch}.volunteer-options h3{font-size:1.5rem;color:var(--blue-dark);margin:0 0 .5rem}.volunteer-options .volunteer-name{font-family:var(--font-title);font-size:1.2rem;color:#416b2a;margin:0 0 1rem}.volunteer-options article>p:last-child{line-height:1.75;margin:0}.volunteer-document-links{display:flex;align-items:center;gap:2rem;flex-wrap:wrap;background:var(--blue-dark);color:white;padding:2rem;margin-top:2rem;border-radius:8px}.volunteer-document-links>div{flex:1;min-width:220px}.volunteer-document-links h3{color:white;font-size:1.35rem}.volunteer-document-links p{color:white;margin:.5rem 0 0}.volunteer-document-links a{color:white;font-weight:600;text-decoration:underline;text-underline-offset:5px}.volunteer-amount-note{max-width:85ch;font-size:.9rem;margin-top:1rem}.volunteer-editorial>.content-section:first-child{padding-top:1.5rem}.volunteer-editorial>.content-section:first-child h2{color:var(--blue-dark);font-size:3rem}
@media(max-width:700px){.volunteer-programs-heading{grid-template-columns:1fr;gap:1rem}.volunteer-programs-heading h2{max-width:none}.volunteer-options{grid-template-columns:1fr}.volunteer-options article{padding:1.5rem 0}.volunteer-document-links{padding:1.5rem;gap:1.2rem}}

.report-overview{padding-block:1rem 3rem;max-width:1000px}.report-overview-heading{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;margin-bottom:2rem}.report-overview-heading h2{font-size:clamp(2rem,3.4vw,3.4rem);color:var(--blue-dark);line-height:1.15}.report-tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--line);margin-bottom:1rem}.report-tabs button{min-height:48px;padding:.8rem 1.5rem;border:0;background:transparent;color:var(--blue-dark);font:inherit;font-weight:600;cursor:pointer;border-bottom:4px solid transparent}.report-tabs button[aria-selected=true]{border-bottom-color:var(--blue);background:#eaf2f7}.report-overview .financial-chart{margin:0}.report-overview [hidden]{display:none}.report-reading-note{font-size:.9rem;margin-block:1rem}.annual-report .report-detail{display:block;padding:0;border-top:1px solid var(--line);margin:0}.report-detail>summary{display:list-item;cursor:pointer;padding:1.3rem .5rem;min-height:60px;color:var(--blue-dark)}.report-detail>summary h2{display:inline;font-family:var(--font-body);font-size:1.2rem;line-height:1.5}.report-detail>.section-body{padding:0 2rem 2rem;max-width:850px;margin:auto}.report-detail>.section-body>p{max-width:68ch}.report-detail .photo-story{width:100%;padding-inline:0}.annual-report{scroll-margin-top:110px}
@media(max-width:700px){.report-overview-heading{grid-template-columns:1fr;gap:1rem}.report-detail>.section-body{padding:0 .5rem 1.5rem}.report-detail>summary h2{font-size:1.05rem}.report-tabs button{flex:1}.report-overview .financial-chart{padding:1rem}.report-detail .content-items{grid-template-columns:1fr}}

/* Keep WordPress wrappers neutral; source composition owns spacing. */
#wp-skip-link{display:none!important}.wp-site-blocks{padding:0}.wp-site-blocks>*,.entry-content>*{margin-block-start:0}body .heateor_sss_sharing_container,body .heateor_sss_mobile_footer{display:none!important}.mex-cf7{max-width:1100px;margin:40px auto;padding:20px}.mex-cf7 input,.mex-cf7 textarea{max-width:100%}
