/* Complete 2025 report content, shared by every concept direction. */
.endmatter.endmatter-2025 {
  --ref-ink: var(--ts-ink, #173b40);
  --ref-muted: var(--ts-muted, #536c6b);
  --ref-head: var(--ts-teal-deep, #145c63);
  --ref-accent: var(--ts-orange, #d96b1f);
  --ref-rule: color-mix(in srgb, var(--ref-head) 18%, transparent);
  --ref-paper: var(--ts-white, #fffdf7);
  --ref-tint: color-mix(in srgb, var(--ref-head) 5%, var(--ref-paper));
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(4rem, 8vw, 8rem) max(clamp(1.25rem, 5vw, 5rem), calc((100vw - 84rem) / 2));
  background: var(--ref-paper);
  color: var(--ref-ink);
  container-type: inline-size;
  font-family: "Open Sans", sans-serif;
}

.endmatter-2025[data-concept^="plants"] {
  --ref-head: var(--ts-green-deep, var(--deep, #264b36));
  --ref-accent: var(--ts-poppy-deep, var(--orange, #b85622));
  --ref-paper: var(--ts-white, #fffdf4);
}

.endmatter-2025 *, .endmatter-2025 *::before, .endmatter-2025 *::after { box-sizing: border-box; }
.endmatter-2025 .em-block { width: min(100%, 74rem); margin-inline: auto; }
.endmatter-2025 .em-block { padding: clamp(4rem, 8vw, 7.5rem) 0; border-top: 1px solid var(--ref-rule); }
.endmatter-2025 .em-block:first-of-type { border-top: 0; }
.endmatter-2025 :is(h2, h3, h4, p) { margin-top: 0; }
.endmatter-2025 h2 { max-width: 16ch; margin-bottom: clamp(1.5rem, 4vw, 3rem); color: var(--ref-head); font-family: "Archivo", sans-serif; font-size: clamp(2.35rem, 6vw, 5.6rem); font-weight: 900; letter-spacing: -.055em; line-height: .94; }
.endmatter-2025 h3 { color: var(--ref-head); font-family: "Archivo", sans-serif; }
.endmatter-2025 h4 { margin-bottom: .45rem; color: var(--ref-head); font-size: 1.08rem; }
.endmatter-2025 p { line-height: 1.68; }
.endmatter-2025 .em-section-label { margin: 0 0 .8rem; color: var(--ref-accent); font-size: .82rem; font-weight: 800; letter-spacing: .04em; }
.endmatter-2025 .em-intro, .endmatter-2025 .em-note { max-width: 66ch; color: var(--ref-muted); font-size: .94rem; }
.endmatter-2025 .em-intro { margin: -1.2rem 0 2.25rem; }
.endmatter-2025 .em-rich-text { max-width: 72ch; }
.endmatter-2025 .em-rich-text p { margin: 0 0 1.1rem; }
.endmatter-2025 .em-rich-text :is(ul, ol) { padding-left: 1.25rem; }
.endmatter-2025 .em-rich-text a { color: var(--ref-head); text-decoration-thickness: .08em; text-underline-offset: .18em; }
.endmatter-2025 .em-figure { margin: 0; }
.endmatter-2025 .em-figure img { display: block; width: 100%; height: auto; border-radius: .35rem; object-fit: cover; }
.endmatter-2025 .em-figure figcaption { margin-top: .55rem; color: var(--ref-muted); font-size: .82rem; line-height: 1.5; }

/* Leadership */
.em-leadership-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(9rem, .38fr) minmax(14rem, .62fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.em-letter { grid-column: 1 / span 2; }
.em-letter .em-rich-text { font-size: clamp(1rem, 1.35vw, 1.14rem); }
.em-letter .em-rich-text > p:first-child::first-letter { float: left; margin: .08em .12em 0 0; color: var(--ref-accent); font: 900 4.7em/.72 "Archivo", sans-serif; }
.em-signature-stack { display: grid; gap: 1.5rem; }
.em-signature-figure img { width: auto; max-width: 10rem; max-height: 4rem; object-fit: contain; object-position: left center; }
.em-signature-caption { margin: .45rem 0 0; font-size: .88rem; line-height: 1.35; }
.em-signature-caption strong, .em-signature-caption span { display: block; }
.em-founders-portrait img { aspect-ratio: 500 / 537; object-position: center top; }

/* Shared disclosure language */
.em-disclosures, .em-supporter-grid, .em-financial-groups { display: grid; gap: 0; border-top: 1px solid var(--ref-rule); }
.em-disclosure { border: 0; border-bottom: 1px solid var(--ref-rule); background: transparent; }
.em-disclosure > summary,
.em-dialog-trigger {
  position: relative;
  display: flex;
  gap: 1rem;
  align-items: center;
  min-height: 4.6rem;
  padding: 1rem .25rem;
  cursor: pointer;
  list-style: none;
}
.em-disclosure > summary::-webkit-details-marker { display: none; }
.em-dialog-trigger {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--ref-rule);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
}
.em-disclosure > summary::after,
.em-dialog-trigger::after {
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  margin-left: auto;
  border: 0;
  border-radius: 50%;
  color: var(--ref-accent);
  content: "+";
  font: 500 1.35rem/1.8rem "Open Sans", sans-serif;
  text-align: center;
  transition: background-color 180ms ease, color 180ms ease, transform 240ms cubic-bezier(0.23, 1, 0.32, 1);
}
.em-disclosure[open] > summary::after { background: var(--ref-accent); color: #fff; content: "–"; transform: rotate(180deg); }
.em-disclosure > summary:hover::after,
.em-dialog-trigger:hover::after { background: color-mix(in srgb, var(--ref-accent) 12%, transparent); }
.endmatter-2025 :is(summary, .em-dialog-trigger):focus-visible { border-radius: .2rem; outline: 3px solid var(--ref-accent); outline-offset: 4px; }
.em-disclosure-body { padding: .25rem 3.25rem 2.5rem 0; }

/* Impact stories */
.em-impact { display: grid; grid-template-columns: clamp(4.8rem, 9vw, 7.5rem) 2.25rem minmax(0, 1fr) auto; gap: clamp(.8rem, 2vw, 1.5rem); min-height: 8rem; }
.em-summary-thumb { overflow: hidden; aspect-ratio: 4 / 3; border-radius: .3rem; background: var(--ref-tint); }
.em-summary-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms cubic-bezier(0.23, 1, 0.32, 1); }
.em-impact:hover .em-summary-thumb img { transform: scale(1.035); }
.em-summary-index { color: var(--ref-accent); font-size: .8rem; font-variant-numeric: tabular-nums; font-weight: 800; letter-spacing: .08em; }
.em-summary-copy { min-width: 0; }
.em-disclosure summary small,
.em-dialog-trigger .em-summary-copy small { display: block; margin-bottom: .28rem; color: var(--ref-muted); font-size: .78rem; font-weight: 700; line-height: 1.35; }
.em-disclosure summary strong,
.em-dialog-trigger .em-summary-copy strong { display: block; max-width: 35ch; color: var(--ref-head); font-family: "Archivo", sans-serif; font-size: clamp(1.05rem, 2.1vw, 1.55rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.12; }
.em-read-label { display: block; margin-top: .55rem; color: var(--ref-accent); font-size: .8rem; font-weight: 800; }
.em-impact-copy > h2 { max-width: 28ch; font-size: clamp(1.65rem, 4vw, 2.7rem); letter-spacing: -.04em; line-height: 1.02; }
.em-impact-copy > :is(h3, h4) { margin-top: 2rem; }
.em-impact-copy .em-impact-figure { max-width: 46rem; margin: 1.5rem 0; }
.em-impact-figure + .em-impact-figure { margin-top: 1rem; }
.em-impact-figure img { max-height: 34rem; object-fit: contain; object-position: left center; }

/* Voices */
.em-supporter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; }
.em-supporter { min-height: 6.2rem; }
.em-supporter-summary { display: flex; gap: 1rem; align-items: center; min-width: 0; }
.em-supporter-summary img { flex: 0 0 4.1rem; width: 4.1rem; height: 4.1rem; border-radius: 50%; object-fit: cover; }
.em-supporter-summary strong { display: block; color: var(--ref-head); font-family: "Archivo", sans-serif; font-size: 1rem; line-height: 1.2; }
.em-supporter-summary small { display: block; max-width: 38ch; margin-top: .3rem; color: var(--ref-muted); font-size: .82rem; line-height: 1.4; }
.em-supporter .em-disclosure-body { display: grid; grid-template-columns: minmax(0, 1fr) 7rem; gap: 1.5rem; padding-right: 0; }
.em-supporter-figure { order: 2; }
.em-supporter-figure img { aspect-ratio: 1; border-radius: 50%; }

/* Reference stories use native dialogs while the trigger rows stay in flow. */
.em-reference-dialog {
  width: min(calc(100% - 2rem), 64rem);
  max-width: 64rem;
  max-height: min(90vh, 58rem);
  margin: auto;
  padding: 0;
  border: 1px solid var(--ref-rule);
  border-radius: .55rem;
  background: var(--ref-paper);
  color: var(--ref-ink);
  box-shadow: .8rem .8rem 0 var(--ref-accent);
}
.em-reference-dialog::backdrop { background: color-mix(in srgb, #071f24 72%, transparent); }
.em-reference-dialog-inner { max-height: min(90vh, 58rem); overflow: auto; padding: clamp(1.25rem, 4vw, 3.5rem); }
.em-reference-dialog [data-dialog-close] {
  position: sticky;
  z-index: 1;
  top: 0;
  float: right;
  width: 2.6rem;
  height: 2.6rem;
  margin: 0 0 .75rem .75rem;
  padding: 0;
  border: 1px solid var(--ref-rule);
  border-radius: 50%;
  background: var(--ref-head);
  color: var(--ref-paper);
  font: 500 1.35rem/1 "Open Sans", sans-serif;
  cursor: pointer;
}
.em-reference-dialog [data-dialog-close]:hover,
.em-reference-dialog [data-dialog-close]:focus-visible { background: var(--ref-accent); }
.em-reference-dialog h2 { max-width: 22ch; margin-bottom: 1.2rem; font-size: clamp(2rem, 5vw, 4rem); }
.em-dialog-meta, .em-dialog-byline { margin: 0 0 1.25rem; color: var(--ref-muted); font-size: .88rem; line-height: 1.5; }
.em-reference-dialog .em-impact-copy { max-width: 72ch; }
.em-reference-dialog .em-impact-copy > :first-child { margin-top: 0; }
.em-reference-dialog .em-supporter-dialog-body { display: grid; grid-template-columns: minmax(0, 1fr) 8rem; gap: 1.5rem; }
.em-reference-dialog .em-supporter-figure { order: 2; }

/* Financials */
.em-financial-groups { gap: .75rem; border-top: 0; }
.em-financial-group { border: 1px solid var(--ref-rule); border-radius: .35rem; background: var(--ref-tint); }
.em-financial-group > summary { padding: 1rem 1.25rem; }
.em-fin-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .18rem 1rem; width: 100%; align-items: end; }
.em-fin-summary small { grid-column: 1 / -1; }
.em-fin-summary > span { color: var(--ref-accent); font: 900 clamp(1.2rem, 3vw, 1.8rem)/1 "Archivo", sans-serif; font-variant-numeric: tabular-nums; }
.em-financial-group .em-disclosure-body { padding: 0 1.25rem 1.25rem; }
.em-financial-years { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.em-financial-year { padding: 1.15rem; border: 1px solid var(--ref-rule); background: var(--ref-paper); }
.em-fin-total { margin: .35rem 0 1.25rem; color: var(--ref-muted); font-size: .88rem; }
.em-fin-total strong { color: var(--ref-ink); font-variant-numeric: tabular-nums; }
.em-bars { display: grid; gap: .7rem; margin-bottom: 1.2rem; }
.em-bar-row { display: grid; gap: .28rem; }
.em-bar-label { display: flex; gap: .6rem; justify-content: space-between; color: var(--ref-ink); font-size: .82rem; line-height: 1.35; }
.em-bar-label span { max-width: 30ch; }
.em-bar-label strong { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.em-bar-track { height: .45rem; overflow: hidden; border-radius: 99px; background: color-mix(in srgb, var(--ref-rule) 70%, transparent); }
.em-bar-track span { display: block; width: var(--bar-size); height: 100%; border-radius: inherit; background: var(--ref-accent); }
.em-fin-table { width: 100%; border-collapse: collapse; font-size: .84rem; }
.em-fin-table caption { margin-bottom: .5rem; color: var(--ref-muted); text-align: left; }
.em-fin-table :is(th, td) { padding: .48rem .25rem; border-top: 1px solid var(--ref-rule); text-align: left; }
.em-fin-table td { text-align: right; font-variant-numeric: tabular-nums; }
.em-fin-table tfoot :is(th, td) { border-top: 3px double var(--ref-head); font-weight: 800; }

/* Donors and partners */
.em-donor-tiers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.em-tier { min-width: 0; border: 1px solid var(--ref-rule); background: var(--ref-tint); }
.em-tier > h3 { display: flex; gap: .75rem; align-items: baseline; justify-content: space-between; margin: 0; padding: .9rem 1rem; border-bottom: 1px solid var(--ref-rule); }
.em-tier > h3 > span { color: var(--ref-head); font: 800 1rem/1.25 "Archivo", sans-serif; }
.em-tier > h3 small { color: var(--ref-muted); font: 600 .82rem/1.3 "Open Sans", sans-serif; }
.em-tier ul, .em-partner-list, .em-people, .em-advisory-list { margin: 0; padding: 0; list-style: none; }
.em-tier ul { padding: 0 1rem 1rem; }
.em-donor { display: flex; min-height: 2.1rem; gap: .6rem; align-items: center; justify-content: space-between; border-bottom: 1px dotted var(--ref-rule); font-size: .88rem; }
.em-donor-name { min-width: 0; overflow-wrap: anywhere; }
.em-donor-badges { display: flex; flex: 0 0 auto; gap: .18rem; align-items: center; }
.em-badge { display: inline-flex; width: 1.35rem; height: 1.35rem; align-items: center; justify-content: center; }
.em-badge svg { width: 100%; height: 100%; }
.em-legend { display: flex; flex-wrap: wrap; gap: .75rem 1.4rem; margin: 1.25rem 0 0; color: var(--ref-muted); font-size: .84rem; }
.em-legend-item { display: inline-flex; gap: .35rem; align-items: center; }
.em-legend-star { color: #d96b1f; font-size: 1rem; }
.em-legend-three, .em-legend-new { display: inline-flex; width: 1.05rem; height: 1.05rem; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-size: .68rem; font-weight: 800; }
.em-legend-three { background: #168526; }
.em-legend-new { background: #176da0; }
.em-board-panel { border-top: 1px solid var(--ref-rule); }
.em-partner-list { columns: 3 14rem; column-gap: 2.25rem; padding: .5rem 0 1.5rem; }
.em-partner-list li, .em-advisory-list li { break-inside: avoid; padding: .42rem 0; border-bottom: 1px dotted var(--ref-rule); font-size: .88rem; line-height: 1.4; }

/* Team and boards */
.em-people { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 1.25rem; }
.em-person { display: flex; gap: .8rem; align-items: center; min-width: 0; }
.em-person img { flex: 0 0 4.5rem; width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; }
.em-person-copy { min-width: 0; }
.em-person strong, .em-person-copy > span { display: block; overflow-wrap: anywhere; }
.em-person strong { color: var(--ref-head); font-size: .92rem; line-height: 1.25; }
.em-person-copy > span { margin-top: .25rem; color: var(--ref-muted); font-size: .82rem; line-height: 1.35; }
.em-boards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; margin-top: 3rem; }
.em-board-panel > h3 { display: flex; gap: .5rem; align-items: baseline; margin: 0; padding: 1rem 0; color: var(--ref-head); font: 800 1.15rem/1.3 "Archivo", sans-serif; }
.em-board-panel > h3 small { color: var(--ref-muted); font: 600 .82rem/1.2 "Open Sans", sans-serif; }
.em-board-panel > :is(.em-people, .em-advisory-list) { padding: .5rem 0 1.5rem; }
.em-board-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.em-advisory-list { columns: 2; column-gap: 1.5rem; }
@container (max-width: 56rem) {
  .em-leadership-grid { grid-template-columns: minmax(0, 1fr) minmax(11rem, .45fr); }
  .em-letter { grid-column: 1 / -1; }
  .em-founders-portrait { max-width: 20rem; }
  .em-supporter-grid { grid-template-columns: 1fr; }
  .em-financial-years, .em-donor-tiers { grid-template-columns: 1fr; }
  .em-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .em-boards { grid-template-columns: 1fr; }
}

@container (max-width: 40rem) {
  .em-impact { grid-template-columns: 4.6rem 1.8rem minmax(0, 1fr) auto; }
  .em-disclosure-body { padding-right: 0; }
  .em-reference-dialog .em-supporter-dialog-body { grid-template-columns: 1fr; }
  .em-supporter-figure { display: none; }
  .em-people, .em-board-list { grid-template-columns: 1fr; }
  .em-partner-list, .em-advisory-list { columns: 1; }
}

@media (max-width: 31rem) {
  .endmatter.endmatter-2025 { padding-inline: 1rem; }
  .endmatter-2025 h2 { font-size: clamp(2.1rem, 13vw, 3.6rem); }
  .em-impact { grid-template-columns: 3.8rem 1.4rem minmax(0, 1fr) auto; gap: .65rem; }
  .em-summary-thumb { aspect-ratio: 1; }
  .em-read-label { display: none; }
  .em-disclosure > summary::after { flex-basis: 1.8rem; width: 1.8rem; height: 1.8rem; line-height: 1.6rem; }
  .em-fin-summary { grid-template-columns: 1fr; }
  .em-fin-summary > span { margin-top: .4rem; }
  .em-reference-dialog {
    width: calc(100% - 1rem);
    max-height: calc(100vh - 1rem);
    box-shadow: .5rem .5rem 0 var(--ref-accent);
  }
  .em-reference-dialog-inner { max-height: calc(100vh - 1rem); padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .em-summary-thumb img, .endmatter-2025 :is(summary, .em-dialog-trigger)::after { transition-duration: 120ms; transform: none !important; }
}

@media print {
  .endmatter.endmatter-2025 { padding: 1rem 0; background: #fff; color: #111; }
  .endmatter-2025 .em-block { break-inside: auto; padding: 1.5rem 0; }
  .endmatter-2025 details { break-inside: auto; }
  .endmatter-2025 details:not([open]) > *:not(summary) { display: block !important; }
  .endmatter-2025 summary::after { display: none !important; }
  .endmatter-2025 .em-dialog-trigger { display: none !important; }
  .endmatter-2025 .em-disclosures,
  .endmatter-2025 .em-supporter-grid { display: block; }
  .endmatter-2025 .em-reference-dialog,
  .endmatter-2025 .em-reference-dialog[open] {
    display: block !important;
    position: static;
    width: 100%;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 1.5rem 0;
    border: 0;
    border-top: 1px solid var(--ref-rule);
    border-radius: 0;
    box-shadow: none;
    background: #fff;
    color: #111;
    opacity: 1;
    transform: none;
    transition: none;
  }
  .endmatter-2025 .em-reference-dialog::backdrop { display: none; }
  .endmatter-2025 .em-reference-dialog-inner { max-height: none; overflow: visible; padding: 0; }
  .endmatter-2025 .em-reference-dialog [data-dialog-close] { display: none; }
  .endmatter-2025 .em-reference-dialog .em-supporter-dialog-body { display: block; }
  .endmatter-2025 .em-financial-year, .endmatter-2025 .em-person { break-inside: avoid; }
  .endmatter-2025 .em-bars { display: none; }
  .endmatter-2025 .em-summary-thumb { width: 4rem; }
}
