/* SAFI — The Savannah Futures Institute (Visual Website Specification) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');

:root {
  --color-primary: #285C45;
  --color-primary-light: #347a5a;
  --color-primary-dark: #1F2A24;
  --color-accent: #C7953E;
  --color-accent-light: #d4aa5c;
  --color-sage: #7C967D;
  --color-earth: #8b3a2e;
  --color-bg: #F7F3EA;
  --color-bg-alt: #efe9dc;
  --color-surface: #ffffff;
  --color-text: #1F2A24;
  --color-text-muted: #4a554f;
  --color-text-light: rgba(255, 255, 255, 0.95);
  --color-border: rgba(31, 42, 36, 0.1);
  --font-display: "Manrope", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --header-height: 76px;
  --container: 1240px;
  --font-yellow-heading: clamp(1.05rem, 1.9vw, 1.4rem);
  --radius: 10px;
  --radius-lg: 12px;
  --shadow: 0 4px 24px rgba(27, 67, 50, 0.08);
  --shadow-lg: 0 16px 48px rgba(27, 67, 50, 0.14);
  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-height); overflow-x: clip; }
body {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}
#main p:not(.people-profile-role-banner),
#main li,
.content-body p,
.content-body li,
.lead,
.section-header p,
.hero-intro p,
.page-hero .lead,
.stat-card p,
.centre-card-body p,
.programme-card-home-body p,
.pillar-card p,
.impact-feature-body p,
.impact-livestock-copy p,
.people-directory-intro p,
.people-profile-bio p,
.split-media figcaption,
.info-box p,
.process-step p,
.knowledge-tile p,
.media-video-header p,
.footer-brand p:not(.footer-tagline-inline),
#main .section-label ~ p,
#main .section-subtitle ~ p,
.page-content p,
.topic-list .topic-tag,
.impact-metric span {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  text-wrap: pretty;
}
.section-header p {
  text-wrap: balance;
}
.proposition-bar p,
.brand-statement,
.cta-band p,
.cta-hero p,
.hero-minimal .hero-motto,
.hero-minimal .hero-safi-wordmark,
.section-label,
.section-subtitle,
.section-header h2,
h1, h2, h3, h4,
.btn,
.stat-card h3,
.people-empty p { text-align: inherit; hyphens: manual; }
body.menu-open { overflow: hidden; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--color-primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--color-primary-light); }
ul { list-style: none; }

.container { width: min(100% - 2.5rem, var(--container)); margin-inline: auto; }

.skip-link {
  position: absolute; top: -100%; left: 1rem; z-index: 9999;
  padding: 0.75rem 1.25rem; background: var(--color-primary); color: #fff; border-radius: var(--radius);
}
.skip-link:focus { top: 1rem; }

/* Typography — primary section titles (yellow) larger than subtitles (dark) */
.section-label {
  display: block;
  font-family: var(--font-display);
  font-size: var(--font-yellow-heading);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--color-accent);
  margin: 0 0 1rem;
}
.section-label--eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 0.65rem;
}
.section-label-lg { font-size: var(--font-yellow-heading); letter-spacing: 0.02em; text-transform: none; }
.section-label-light { color: var(--color-accent-light); }
.section-subtitle,
.section-header h2 {
  font-family: var(--font-display);
  font-size: clamp(1.0625rem, 2vw, 1.3125rem);
  font-weight: 600;
  line-height: 1.35;
  color: var(--color-primary-dark);
  margin: 0 0 1rem;
}
.section-header { max-width: none; margin-bottom: 3rem; }
.section-header p {
  color: var(--color-text-muted); font-size: 1.125rem;
  text-align: justify; text-justify: inter-word; hyphens: auto; text-wrap: balance;
}
.lead {
  font-size: 1.2rem; color: var(--color-text-muted); margin-bottom: 1.25rem;
  text-align: justify; text-justify: inter-word; hyphens: auto; text-wrap: pretty;
}

.content-body h2 {
  font-family: var(--font-display);
  font-size: var(--font-yellow-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-accent);
  margin: 2.5rem 0 1rem;
}
.content-body h2:first-child { margin-top: 0; }
.content-body h3 {
  font-size: 1.125rem; font-weight: 600; color: var(--color-primary);
  margin: 1.75rem 0 0.75rem;
}
.content-body p {
  color: var(--color-text-muted); margin-bottom: 1rem;
  text-align: justify; text-justify: inter-word; hyphens: auto; text-wrap: pretty;
}
.content-body li { text-align: justify; text-justify: inter-word; hyphens: auto; }
.content-body ul, .content-body ol { margin: 0 0 1.25rem 1.25rem; color: var(--color-text-muted); }
.content-body li { margin-bottom: 0.5rem; padding-left: 0.25rem; }
.content-body ul { list-style: disc; }
.content-body ol { list-style: decimal; }

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.875rem 1.75rem; font-family: var(--font-body); font-size: 0.9375rem;
  font-weight: 600; letter-spacing: 0.02em; border-radius: var(--radius);
  border: 2px solid transparent; cursor: pointer; transition: all var(--transition);
}
.btn-primary { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.btn-primary:hover { background: var(--color-primary-light); border-color: var(--color-primary-light); color: #fff; transform: translateY(-1px); }
.btn-outline-dark { background: transparent; color: var(--color-primary); border-color: var(--color-primary); }
.btn-outline-dark:hover { background: rgba(40, 92, 69, 0.08); color: var(--color-primary); }
.btn-outline { background: transparent; color: #fff; border-color: rgba(255,255,255,0.6); }
.btn-outline:hover { background: rgba(255,255,255,0.12); border-color: #fff; color: #fff; }
.btn-secondary { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.btn-secondary:hover { background: var(--color-primary-light); border-color: var(--color-primary-light); color: #fff; transform: translateY(-1px); }
.btn-full { width: 100%; }

/* Header — fixed shell stays above all page sections */
#site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1200;
  height: var(--header-height);
}
.site-header {
  position: relative; width: 100%;
  height: var(--header-height); transition: background var(--transition), box-shadow var(--transition);
}
.site-header:not(.scrolled):not(.header-solid):not(.nav-open) {
  background: linear-gradient(180deg, rgba(13, 40, 24, 0.82) 0%, rgba(13, 40, 24, 0.35) 70%, transparent 100%);
}
.site-header.scrolled,
.site-header.header-solid {
  background: rgba(247, 244, 239, 0.98); backdrop-filter: blur(12px); box-shadow: 0 2px 16px rgba(31, 42, 36, 0.12);
}
.site-header.scrolled .logo-mark,
.site-header.header-solid .logo-mark { color: var(--color-accent); text-shadow: none; }
.site-header.scrolled .logo-text,
.site-header.header-solid .logo-text { color: var(--color-accent); text-shadow: none; }
.site-header.scrolled .main-nav a,
.site-header.scrolled .main-nav .nav-dropdown-toggle,
.site-header.header-solid .main-nav a,
.site-header.header-solid .main-nav .nav-dropdown-toggle { color: var(--color-primary-dark); }
.site-header.scrolled .main-nav .nav-chevron,
.site-header.header-solid .main-nav .nav-chevron { color: var(--color-primary-dark); }
.site-header.scrolled .nav-cta,
.site-header.header-solid .nav-cta { background: var(--color-primary) !important; color: #fff !important; }
.site-header.nav-open {
  background: var(--color-primary-dark);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08);
}
.site-header.nav-open .logo-mark,
.site-header.nav-open .nav-toggle span { color: #fff; }
.site-header.nav-open .nav-toggle span { background: #fff; }

.header-inner {
  display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 0.75rem;
  overflow: visible;
}
.main-nav { flex: 1 1 auto; min-width: 0; display: flex; justify-content: flex-end; }
.main-nav > ul { flex-wrap: nowrap; }
.logo { display: flex; align-items: center; gap: 0.65rem; text-decoration: none; min-width: 0; }
.logo-img { width: 44px; height: 44px; flex-shrink: 0; object-fit: contain; }
.logo-text-wrap { display: flex; flex-direction: column; gap: 0.05rem; min-width: 0; }
.logo-mark {
  font-family: var(--font-display); font-size: clamp(1.625rem, 3.5vw, 2.25rem); font-weight: 900;
  letter-spacing: 0.1em; color: #f5d054; line-height: 1; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45);
}
.logo-text { font-size: clamp(0.5625rem, 1.2vw, 0.625rem); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #f5d054; line-height: 1.25; }

.main-nav > ul { display: flex; align-items: center; gap: 0.1rem; justify-content: flex-end; list-style: none; margin: 0; padding: 0; }
.main-nav a,
.main-nav .nav-dropdown-toggle {
  display: flex; align-items: center; gap: 0.35rem;
  padding: 0.4rem 0.4rem; font-family: var(--font-body); font-size: 0.6875rem; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
  color: rgba(255,255,255,0.92); border-radius: var(--radius); border: none; background: none;
  cursor: pointer; text-decoration: none; white-space: nowrap;
}
.site-header:not(.scrolled):not(.header-solid):not(.nav-open) .main-nav a:hover,
.site-header:not(.scrolled):not(.header-solid):not(.nav-open) .main-nav .nav-dropdown-toggle:hover,
.site-header:not(.scrolled):not(.header-solid):not(.nav-open) .main-nav a.active,
.site-header:not(.scrolled):not(.header-solid):not(.nav-open) .main-nav .nav-dropdown-toggle.active {
  color: #fff; background: rgba(255,255,255,0.12);
}
.site-header.scrolled .main-nav a:hover,
.site-header.scrolled .main-nav .nav-dropdown-toggle:hover,
.site-header.header-solid .main-nav a:hover,
.site-header.header-solid .main-nav .nav-dropdown-toggle:hover {
  background: rgba(27,67,50,0.08); color: var(--color-primary);
}
.site-header.scrolled .main-nav a.active,
.site-header.scrolled .main-nav .nav-dropdown-toggle.active,
.site-header.header-solid .main-nav a.active,
.site-header.header-solid .main-nav .nav-dropdown-toggle.active {
  color: var(--color-primary); background: rgba(27, 67, 50, 0.12); font-weight: 700;
}
.main-nav a.active, .main-nav .nav-dropdown-toggle.active { font-weight: 600; }
.nav-submenu a.active { font-weight: 600; color: var(--color-primary) !important; }
.nav-cta { background: var(--color-primary) !important; color: #fff !important; margin-left: 0.25rem; }
.nav-cta:hover { background: var(--color-primary-light) !important; color: #fff !important; }

/* Dropdown navigation — desktop */
.nav-dropdown { position: relative; }
.nav-dropdown-link-mobile { display: none !important; }
.nav-chevron { transition: transform var(--transition); flex-shrink: 0; }
.nav-submenu {
  position: absolute; top: calc(100% + 0.35rem); left: 0; min-width: 220px;
  background: var(--color-surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
  padding: 0.5rem 0; opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
  z-index: 1100; list-style: none; margin: 0; border: 1px solid var(--color-border);
}
.nav-dropdown:hover .nav-submenu,
.nav-dropdown:focus-within .nav-submenu,
.nav-dropdown.open .nav-submenu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.nav-dropdown:hover .nav-chevron,
.nav-dropdown.open .nav-chevron { transform: rotate(180deg); }
.nav-submenu a {
  display: block; padding: 0.65rem 1.1rem; font-size: 0.8125rem; font-weight: 500;
  color: var(--color-text) !important; background: transparent !important; white-space: normal;
  line-height: 1.4;
}
.nav-submenu a:hover { background: var(--color-bg) !important; color: var(--color-primary) !important; }

.nav-toggle {
  display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer;
  padding: 0.5rem; min-width: 44px; min-height: 44px; align-items: center; justify-content: center;
}
.nav-toggle span { display: block; width: 24px; height: 2px; background: #fff; transition: var(--transition); }
.site-header.scrolled .nav-toggle span,
.site-header.header-solid .nav-toggle span { background: var(--color-primary); }

/* Hero — Home */
.hero { position: relative; min-height: 92vh; min-height: 92dvh; display: flex; align-items: center; overflow: hidden; }
.hero-media { position: absolute; inset: 0; }
.hero-media img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 40%;
  filter: brightness(0.38) saturate(0.72);
  transform: scale(1.02);
}
.hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to bottom, rgba(13,40,24,0.72) 0%, rgba(13,40,24,0.88) 50%, rgba(13,40,24,0.94) 100%),
    linear-gradient(105deg, rgba(13,40,24,0.92) 0%, rgba(13,40,24,0.55) 55%, rgba(27,67,50,0.45) 100%);
}
.hero-content { position: relative; z-index: 2; padding: calc(var(--header-height) + 2.5rem) 0 3.5rem; width: 100%; }
.hero-panel {
  max-width: 820px;
  padding: clamp(1.75rem, 4vw, 2.75rem);
  background: rgba(13, 40, 24, 0.9);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
}
.hero-eyebrow {
  font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--color-accent-light); margin-bottom: 1rem;
}
.hero h1 {
  font-family: var(--font-display); font-size: clamp(2.35rem, 5.5vw, 4.125rem); font-weight: 800;
  line-height: 1.05; color: #fff; margin-bottom: 0.85rem;
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.55), 0 1px 0 rgba(0, 0, 0, 0.2);
}
.hero-tagline {
  font-family: var(--font-body); font-size: clamp(1.0625rem, 2vw, 1.25rem); font-weight: 500;
  color: #fff; margin-bottom: 1.75rem; line-height: 1.65;
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.4);
}
.hero-tagline strong { font-weight: 700; color: #fff; }
.hero-lead {
  font-size: clamp(1rem, 1.8vw, 1.125rem); line-height: 1.7; font-weight: 500;
  color: rgba(255, 255, 255, 0.98); margin-bottom: 1rem;
}
.hero-lead-secondary { margin-bottom: 1.75rem !important; opacity: 0.92; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.875rem; }
.hero-actions .btn { font-weight: 700; min-height: 48px; padding-inline: 1.5rem; }
.hero-actions .btn-outline {
  border-color: rgba(255, 255, 255, 0.85); color: #fff;
  background: rgba(255, 255, 255, 0.08);
}
.hero-actions .btn-outline:hover {
  background: rgba(255, 255, 255, 0.18); border-color: #fff; color: #fff;
}

/* Hero — Home (minimal photo-first) */
.hero-minimal {
  min-height: min(88vh, 820px); min-height: min(88dvh, 820px);
  align-items: center; justify-content: center;
}
.hero-minimal .hero-media img {
  filter: brightness(0.88) saturate(1.08);
  object-position: center 40%;
}
.hero-minimal .hero-overlay {
  background:
    linear-gradient(to top, rgba(13, 40, 24, 0.88) 0%, rgba(13, 40, 24, 0.5) 42%, rgba(13, 40, 24, 0.15) 72%, rgba(13, 40, 24, 0.35) 100%);
}
.hero-content--minimal {
  padding: calc(var(--header-height) + 4.25rem) 0 3rem;
  text-align: center; max-width: 920px; margin-inline: auto;
  width: 100%; display: flex; flex-direction: column; align-items: center;
}
.hero-motto {
  font-family: var(--font-display); font-size: clamp(1.0625rem, 2.6vw, 1.375rem); font-weight: 600;
  color: var(--color-accent-light); margin: 0 0 1.25rem; line-height: 1.35;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.45);
  text-align: center; width: 100%;
}
.hero-motto--primary {
  font-size: 36px; font-weight: 700; line-height: 1.25;
  color: #f5d054; margin: 0.75rem auto 1.5rem; max-width: 18em; width: 100%;
  white-space: normal; text-wrap: balance;
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.65);
  text-align: center;
  letter-spacing: 0.02em;
}
/* Override .hero h1 display size — motto is a single line, not a page title */
.hero h1.hero-motto--primary,
.hero-minimal h1.hero-motto--primary {
  font-size: 36px;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 1.5rem;
}
@media (min-width: 900px) {
  .hero-motto--primary { white-space: nowrap; max-width: none; }
}
.site-header--home .logo-text {
  display: block;
  font-family: var(--font-body);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #f5d054;
  line-height: 1.15;
  white-space: nowrap;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
}
.site-header--home.scrolled .logo-text,
.site-header--home.header-solid .logo-text {
  color: var(--color-accent);
  text-shadow: none;
}
.site-header--home.nav-open .logo-text {
  color: #f5d054;
  text-shadow: none;
}
.hero-intro-heading {
  font-family: var(--font-display); font-weight: 700; color: var(--color-accent);
  font-size: var(--font-yellow-heading); line-height: 1.25;
  margin: 0 0 1.25rem; text-align: left; text-wrap: balance;
}
.btn-row {
  display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; justify-content: center;
}
.hero-scroll-hint {
  display: inline-flex; align-items: center; gap: 0.35rem;
  font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85); padding: 0.5rem 0.75rem;
  border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(13, 40, 24, 0.35); backdrop-filter: blur(6px);
}
.hero-scroll-hint:hover { color: #fff; border-color: rgba(255, 255, 255, 0.6); }

.hero-intro {
  padding: 3.5rem 0 0.65rem; background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}
.hero-intro > .container {
  /* Match #why-savannas / site .container so left edges align */
  width: min(100% - 2.5rem, var(--container));
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 0;
}
.hero-intro-inner {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  text-align: left;
}
.hero-intro-inner .section-label.section-label--eyebrow {
  display: block;
  width: 100%;
  text-align: center;
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.65vw, 1.9rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--color-accent);
  margin: 0 0 0.85rem;
}
.hero-intro-inner p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  text-wrap: pretty;
}
.hero-intro .hero-actions { justify-content: center; margin-top: 1.75rem; }
.hero-intro .hero-actions .btn-outline-dark { border-color: var(--color-primary); color: var(--color-primary); }

.home-photo-strip {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.85rem;
  padding: 2.5rem 0 3rem; margin-top: 0;
  border-top: 1px solid var(--color-border);
}
.home-photo-strip figure { margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.home-photo-strip img {
  width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.home-photo-strip figcaption {
  font-family: var(--font-display); font-size: 0.8125rem; font-weight: 700;
  color: var(--color-accent); text-align: center; line-height: 1.3;
}
.content-figure {
  margin: 1.75rem 0 2.25rem; border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow);
}
.content-figure img {
  width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block;
  object-position: center 40%;
}
.content-figure figcaption {
  padding: 0.75rem 1rem; font-size: 0.8125rem; font-weight: 600;
  color: var(--color-primary-dark); background: var(--color-bg-alt);
  text-align: justify;
}
.media-video {
  margin: 2rem 0 2.5rem; border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow-lg); background: var(--color-primary-dark);
}
.media-video video { width: 100%; display: block; max-height: 480px; object-fit: contain; background: #0a0f0c; }
.media-video figcaption {
  padding: 0.85rem 1.15rem; font-size: 0.875rem; color: var(--color-text-muted);
  background: var(--color-bg-alt); font-style: italic; text-align: justify;
}
.food-video-feature,
.health-video-feature { padding: 3.5rem 0 4rem; }
.health-video-feature .split-media--honey {
  margin: 0 auto 2.5rem;
  max-width: 52rem;
}
.health-video-feature .split-media--honey img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 42%;
}
.content-body .split-media--honey,
.content-body .split-media--climate,
.content-body .split-media--food,
.content-body .split-media--peace,
.content-body .split-media--knowledge,
.content-body .split-media--platforms,
.content-body .split-media--partnerships {
  margin: 0 0 2rem;
  max-width: none;
  width: 100%;
}
.content-body .split-media--honey img,
.content-body .split-media--climate img,
.content-body .split-media--food img,
.content-body .split-media--peace img,
.content-body .split-media--knowledge img,
.content-body .split-media--platforms img,
.content-body .split-media--partnerships img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 42%;
}
.content-body .split-media--climate img {
  object-position: center 45%;
}
.content-body .split-media--food img {
  object-position: center 40%;
}
.content-body .split-media--peace img {
  object-position: center 35%;
}
.content-body .split-media--knowledge img {
  object-position: center 48%;
}
.content-body .split-media--platforms img {
  object-position: center 42%;
}
.topic-media-split .split-media--platforms-inline,
.topic-media-split .split-media--partnerships-inline {
  margin: 0;
  width: 100%;
  max-width: none;
}
.topic-media-split .split-media--platforms-inline img,
.topic-media-split .split-media--partnerships-inline img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center 42%;
  box-shadow: var(--shadow);
}
.topic-media-split .split-media--platforms-inline figcaption,
.topic-media-split .split-media--partnerships-inline figcaption {
  margin-top: 0.65rem;
}
.content-body .split-media--partnerships img {
  object-position: center 35%;
}
.topic-media-split-copy .topic-media-title {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  font-weight: 700;
  color: var(--color-primary-dark);
  line-height: 1.3;
  margin: 0 0 0.85rem;
}
.content-body .topic-media-split-copy h2.topic-media-title {
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  color: #000;
  margin: 1.35rem 0 0.85rem;
}
.content-body .topic-media-split-copy h2.topic-media-title:first-of-type {
  margin-top: 0;
  color: var(--color-primary-dark);
}
.content-body h2.topic-heading-dark {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  font-weight: 700;
  color: #000;
  line-height: 1.3;
  margin: 2rem 0 0.85rem;
}
.media-video--portrait {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.media-video--portrait video {
  width: auto;
  max-width: min(100%, 22rem);
  max-height: min(560px, 72vh);
  margin-inline: auto;
  object-fit: contain;
}
.media-video--portrait figcaption {
  max-width: 36rem;
  margin-inline: auto;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}
.media-video-header { max-width: 640px; margin: 0 auto 2rem; text-align: left; }
.media-video-header .section-label { margin-bottom: 0.65rem; }
.media-video-header h2.section-subtitle { margin-bottom: 0.75rem; }
.media-video-header p { color: var(--color-text-muted); margin: 0; text-align: justify; }
.media-video--feature {
  margin: 0 auto; max-width: min(100%, 420px);
  border: 1px solid var(--color-border);
}
.media-video--feature video {
  max-height: min(72vh, 720px);
  width: 100%;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  vertical-align: middle;
}
@media (min-width: 768px) {
  .media-video--feature { max-width: 480px; }
}

.topic-media-split {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 1.75rem;
  align-items: start;
  margin: 1rem 0 1rem;
}
.topic-media-split .media-video--inline {
  margin: 0;
  max-width: none;
  justify-self: start;
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #0a0f0c;
}
.topic-media-split .media-video--inline video {
  width: 100%;
  max-height: 420px;
  aspect-ratio: 9 / 16;
  display: block;
  object-fit: contain;
  background: #0a0f0c;
  vertical-align: middle;
}
.topic-media-split .media-video--inline figcaption {
  margin: 0;
  padding: 0.65rem 0.85rem 0.75rem;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  font-style: italic;
  line-height: 1.45;
  background: var(--color-surface);
}
.topic-media-split-copy .topic-media-kicker {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin: 0 0 0.75rem;
}
.content-body .topic-media-split-copy h2 {
  margin: 1.25rem 0 0.65rem;
}
.content-body .topic-media-split-copy h2:first-child {
  margin-top: 0;
}
.topic-media-split-copy p {
  margin: 0 0 0.85rem;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}
.topic-media-split-copy p:last-child {
  margin-bottom: 0;
}
@media (max-width: 900px) {
  .topic-media-split {
    grid-template-columns: 1fr;
    gap: 1.15rem;
  }
  .topic-media-split .media-video--inline video {
    max-height: 360px;
  }
}

/* Page hero — inner pages */
.page-hero {
  position: relative; padding: calc(var(--header-height) + 4rem) 0 4rem;
  background: var(--color-primary-dark); color: #fff; overflow: hidden;
  text-align: left;
}
.page-hero.has-image { padding: calc(var(--header-height) + 5rem) 0 5rem; }
.page-hero-bg { position: absolute; inset: 0; }
.page-hero-bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.35; }
.page-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(13,40,24,0.75), rgba(13,40,24,0.92)); }
.page-hero .container {
  position: relative;
  z-index: 2;
  max-width: none;
  width: min(100% - 2.5rem, var(--container));
}
.page-hero .breadcrumbs,
.page-hero h1,
.page-hero .lead {
  text-align: left;
  text-justify: auto;
  hyphens: manual;
  text-wrap: wrap;
}
.page-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.5vw, 2.65rem);
  font-weight: 600;
  line-height: 1.15;
  margin-bottom: 1rem;
}
.page-hero .lead { color: rgba(255,255,255,0.85); margin-bottom: 0; font-size: 1.125rem; }
.health-feature-intro,
.content-body .health-feature-intro {
  max-width: none;
  width: 100%;
  margin: 0 0 1.5rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-text-muted);
  text-align: left;
}
.content-body .climate-feature-intro {
  max-width: none;
  margin: 0 0 1.5rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-text);
  text-align: left;
}
.content-body .climate-feature-intro p {
  margin: 0 0 0.85rem;
  color: var(--color-text-muted);
}
.content-body .climate-feature-intro p:last-child {
  margin-bottom: 0;
}
.content-body .split-media--climate + h2 {
  margin-top: 0.5rem;
}
.content-body .topic-media-split + h2 {
  margin-top: 1.25rem;
}
#main .page-hero .lead {
  text-align: left;
  text-justify: auto;
  hyphens: manual;
  text-wrap: wrap;
}

.breadcrumbs { font-size: 0.8125rem; margin-bottom: 1rem; color: rgba(255,255,255,0.6); }
.breadcrumbs a { color: var(--color-accent-light); }
.breadcrumbs span { margin: 0 0.4rem; }
.breadcrumbs--light { color: var(--color-text-muted); }
.breadcrumbs--light a { color: var(--color-primary); }
.breadcrumbs--light a:hover { color: var(--color-primary-light); }

/* Status badge */
.status-badge {
  display: inline-block; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; padding: 0.35rem 0.75rem; border-radius: 999px; margin-bottom: 1rem;
}
.status-developing { background: rgba(196,163,90,0.25); color: var(--color-accent-light); border: 1px solid rgba(196,163,90,0.4); }
.status-proposed { background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.9); border: 1px solid rgba(255,255,255,0.25); }
.status-light { background: rgba(27,67,50,0.08); color: var(--color-primary); border: 1px solid rgba(27,67,50,0.15); }

a.centre-card, a.programme-card-home { text-decoration: none; color: inherit; display: flex; flex-direction: column; }
a.centre-card:hover .card-link, a.programme-card-home:hover .card-link { color: var(--color-accent); }
.centre-card--with-video { display: flex; flex-direction: column; }
.centre-card-top {
  display: flex; flex-direction: column; flex: 1; text-decoration: none; color: inherit;
}
.centre-card-video {
  padding: 0 1rem 0.85rem; border-top: 1px solid var(--color-border);
  background: var(--color-bg);
}
.centre-card-explore {
  display: block;
  margin-top: 0;
  padding: 0 1rem 1.15rem;
  text-decoration: none;
  background: var(--color-bg);
}
.centre-card-explore:hover { color: var(--color-accent); }
.centre-video-label {
  font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--color-accent); margin: 0.85rem 0 0.5rem; text-align: center;
}
.centre-video-title {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--color-primary-dark);
  margin: 0 0 0.65rem;
  text-align: justify;
  text-justify: inter-word;
  hyphens: manual;
  text-wrap: pretty;
}
.centre-card-video video {
  width: 100%; display: block; border-radius: var(--radius);
  background: #0a0f0c; aspect-ratio: 9 / 16; max-height: 320px; object-fit: contain;
}
.centre-video-more {
  display: block; margin-top: 0.5rem; font-size: 0.75rem; font-weight: 600;
  text-align: center; color: var(--color-primary);
}
.centre-video-more:hover { color: var(--color-accent); }

/* Sections */
.section { padding: 5.5rem 0; }
.section-alt { background: var(--color-bg); }
.section-dark { background: var(--color-primary-dark); color: #fff; }
.section-dark .section-header h2 { color: #fff; }
.section-dark .section-header p { color: rgba(255,255,255,0.75); }

/* Tagline / pillars strip */
.tagline-strip { background: var(--color-primary); padding: 3.5rem 0; }
.tagline-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
.tagline-item { text-align: center; padding: 0 0.5rem; }
.tagline-icon { display: block; color: var(--color-accent); font-size: 0.625rem; margin-bottom: 0.75rem; }
.tagline-item h2 { font-family: var(--font-display); font-size: 1.2rem; font-weight: 600; color: #fff; margin-bottom: 0.5rem; line-height: 1.3; }
.tagline-item p { font-size: 0.875rem; color: rgba(255,255,255,0.72); line-height: 1.5; }

/* Cards */
.card-grid { display: grid; gap: 1.5rem; }
.card-grid-2 { grid-template-columns: repeat(2, 1fr); }
.card-grid { align-items: stretch; }
.card-grid-3 { grid-template-columns: repeat(3, 1fr); }
.card-grid-5 { grid-template-columns: repeat(5, 1fr); }
.card-grid-6 { grid-template-columns: repeat(6, 1fr); }
.section-header--what-we-do p { text-align: justify; max-width: none; }
.programme-tier {
  font-family: var(--font-display); font-size: 1.25rem; font-weight: 700;
  color: var(--color-primary-dark); margin: 2.5rem 0 1.25rem;
}
.programme-tier:first-of-type { margin-top: 0; }
.status-active { background: rgba(40, 92, 69, 0.12); color: var(--color-primary); border: 1px solid rgba(40, 92, 69, 0.25); }

.centre-card, .programme-card-home, .platform-card, .partner-card {
  background: var(--color-surface); border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow); transition: transform var(--transition), box-shadow var(--transition);
  display: flex; flex-direction: column;
}
.centre-card:hover, .programme-card-home:hover, .platform-card:hover {
  transform: translateY(-4px); box-shadow: var(--shadow-lg);
}
.centre-card img, .programme-card-home img {
  width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: center 42%;
}
.centre-card img.img-focus-top,
.programme-card-home img.img-focus-top { object-position: center 22%; }
.centre-card img.img-focus-aerial,
.programme-card-home img.img-focus-aerial { object-position: center 45%; }
.centre-card img.img-focus-people,
.programme-card-home img.img-focus-people { object-position: center 30%; }
.centre-card img.img-focus-wide,
.programme-card-home img.img-focus-wide { object-position: center 50%; }
.page-hero-bg img { object-position: center 40%; }
.page-hero-bg img.img-focus-top { object-position: center 25%; }
.page-hero-bg img.img-focus-center { object-position: center 50%; }
.page-hero-bg img.img-focus-aerial { object-position: center 45%; }
.page-hero--about.page-hero--split {
  padding: calc(var(--header-height) + 2.75rem) 0 3rem;
  background: linear-gradient(105deg, var(--color-primary-dark) 0%, #163528 52%, #1a3d2e 100%);
}
.page-hero-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, min(42vw, 400px));
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.page-hero-split-copy {
  min-width: 0;
}
.page-hero-split-media {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
.page-hero-split-media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(520px, 72vh);
  object-fit: contain;
  object-position: center center;
  border-radius: var(--radius-lg);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.page-hero-split-caption {
  margin: 0.75rem 0 0;
  font-size: 0.8125rem;
  font-style: italic;
  color: rgba(255, 255, 255, 0.72);
  text-align: center;
  line-height: 1.45;
}
.about-intro-split {
  display: grid;
  grid-template-columns: minmax(0, 48%) minmax(0, 1fr);
  gap: clamp(1.25rem, 3vw, 2.75rem);
  align-items: start;
  margin: 2rem 0;
}
.about-intro-split .about-intro-copy {
  min-width: 0;
}
.about-intro-split .about-intro-copy p:last-child {
  margin-bottom: 0;
}
.split-media--about-landscape {
  width: fit-content;
  max-width: 100%;
  margin-inline: 0;
}
.about-intro-split .split-media--about-landscape {
  margin: 0;
  width: 100%;
  max-width: 100%;
  justify-self: stretch;
}
.about-intro-split .split-media--about-landscape img.img-about-landscape-full {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 6 / 5;
  height: auto;
  max-height: min(32rem, 62vh);
  object-fit: cover;
  object-position: center 24%;
  display: block;
  margin: 0;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.split-media--about-landscape img.img-about-landscape-full {
  aspect-ratio: auto;
  width: auto;
  max-width: min(22.5rem, 100%);
  height: auto;
  max-height: min(32rem, 62vh);
  object-fit: contain;
  object-position: left center;
  display: block;
  margin: 0;
  background: transparent;
  vertical-align: top;
}
.centre-card-body, .programme-card-home-body, .platform-card-body {
  padding: 1.5rem; flex: 1; display: flex; flex-direction: column;
}
.centre-card-body h3, .programme-card-home-body h3, .platform-card-body h3 {
  font-family: var(--font-display); font-size: 1.2rem; font-weight: 600;
  color: var(--color-primary-dark); margin-bottom: 0.5rem; line-height: 1.3;
}
.centre-card-body p, .programme-card-home-body p, .platform-card-body p {
  font-size: 0.875rem; color: var(--color-text-muted); line-height: 1.6; flex: 1; margin-bottom: 1rem;
}
.programme-card-home-body {
  text-align: left;
}
.programme-card-home-body .status-badge {
  align-self: flex-start;
  margin-bottom: 0.85rem;
}
.programme-card-home-body h3 {
  text-align: left;
  font-size: 1.0625rem;
  line-height: 1.35;
  margin-bottom: 0.5rem;
}
.programme-card-home-body .programme-card-tagline {
  display: block;
  width: 100%;
  font-size: 0.96875rem;
  font-weight: 600;
  color: var(--color-primary-dark);
  line-height: 1.55;
  letter-spacing: 0.035em;
  margin: 0 0 0.85rem;
  flex: 0 0 auto;
  text-align: center;
  hyphens: manual;
  text-wrap: pretty;
}
.programme-card-home-body p:not(.programme-card-tagline) {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  text-wrap: pretty;
}
.programme-card-home-body p:last-of-type {
  flex: 1;
  margin-bottom: 1rem;
}
.card-link { font-size: 0.8125rem; font-weight: 600; color: var(--color-primary); margin-top: auto; }
.card-link-sub { margin-top: 0.35rem; font-size: 0.75rem; }
.card-link-sub a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; }
.card-link:hover { color: var(--color-accent); }

/* Process steps */
.approach-pathway-header {
  width: 100%;
  max-width: none;
  text-align: left;
  margin-bottom: 3rem;
}
.approach-pathway-header .section-label {
  text-align: left;
}
.approach-pathway-header p {
  max-width: none;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  text-wrap: pretty;
  color: var(--color-text-muted);
  font-size: 1.125rem;
  line-height: 1.65;
  margin: 0;
}

.process-flow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
.process-step {
  text-align: center; padding: 1.5rem 1rem; background: var(--color-surface);
  border-radius: var(--radius-lg); box-shadow: var(--shadow);
}
#main .process-step p { text-align: center; text-justify: auto; hyphens: manual; }
.process-step-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%; background: var(--color-primary);
  color: #fff; font-weight: 700; font-size: 0.875rem; margin-bottom: 0.75rem;
}
.process-step h4 { font-size: 0.875rem; font-weight: 600; color: var(--color-primary-dark); margin-bottom: 0.35rem; }
.process-step p { font-size: 0.8125rem; color: var(--color-text-muted); line-height: 1.45; }

/* Two column layouts */
.split-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
.split-grid-center { align-items: start; }
.split-media img { border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.split-media img.img-natural {
  aspect-ratio: auto;
  height: auto;
  object-fit: contain;
}
#academy.section {
  padding-top: 2.25rem;
}
#academy .split-grid {
  gap: 2.5rem;
  align-items: start;
}
#academy .split-media img {
  aspect-ratio: unset;
  height: auto;
  object-fit: unset;
  display: block;
}
.split-media figcaption { font-size: 0.8125rem; color: var(--color-text-muted); margin-top: 0.75rem; font-style: italic; }

/* Content page layout */
.page-content { padding: 4rem 0 5rem; }
.page-layout { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 7.5rem; align-items: start; }
.page-sidebar {
  position: sticky; top: calc(var(--header-height) + 2rem);
  background: var(--color-surface); padding: 1.5rem; border-radius: var(--radius-lg);
  box-shadow: var(--shadow); font-size: 0.875rem;
  justify-self: end;
  width: 100%;
  margin-left: 1rem;
}
.page-sidebar h4 { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); margin-bottom: 1rem; }
.page-sidebar ul { list-style: none; margin: 0; padding: 0; }
.page-sidebar li { margin-bottom: 0.5rem; }
.page-sidebar a { color: var(--color-text-muted); font-size: 0.875rem; }
.page-sidebar a:hover, .page-sidebar a.active { color: var(--color-primary); font-weight: 600; }

.topic-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; margin: 1.5rem 0; }
.topic-tag {
  padding: 0.75rem 1rem; background: var(--color-bg); border-radius: var(--radius);
  font-size: 0.875rem; color: var(--color-text-muted); border-left: 3px solid var(--color-accent);
}

.cta-band {
  background: var(--color-primary); color: #fff; padding: 4rem 0; text-align: center;
}
.cta-band h2 { font-family: var(--font-display); font-size: clamp(1.75rem, 3vw, 2.25rem); margin-bottom: 1rem; }
.cta-band p { color: rgba(255,255,255,0.85); max-width: 560px; margin: 0 auto 1.75rem; }
.cta-band .btn-primary { margin: 0 0.5rem; }

.info-box {
  background: var(--color-bg-alt); border-left: 4px solid var(--color-accent);
  padding: 1.25rem 1.5rem; border-radius: 0 var(--radius) var(--radius) 0; margin: 1.5rem 0;
}
.info-box p { margin: 0; font-size: 0.9375rem; color: var(--color-text-muted); }

/* Contact */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.contact-form { background: var(--color-surface); padding: 2rem; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.form-row { margin-bottom: 1.25rem; }
.form-row label { display: block; font-size: 0.8125rem; font-weight: 600; color: var(--color-primary); margin-bottom: 0.4rem; }
.form-row input, .form-row select, .form-row textarea {
  width: 100%; padding: 0.75rem 1rem; font-family: var(--font-body); font-size: 0.9375rem;
  border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-bg); color: var(--color-text);
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus {
  outline: none; border-color: var(--color-primary-light); box-shadow: 0 0 0 3px rgba(45,106,79,0.15);
}
.form-row textarea { resize: vertical; min-height: 140px; }
.form-note { margin-top: 1rem; font-size: 0.75rem; color: var(--color-text-muted); }
.contact-detail { margin-bottom: 1.25rem; }
.contact-detail strong { display: block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); margin-bottom: 0.25rem; }

/* People placeholder */
.team-notice {
  background: var(--color-surface); padding: 3rem; border-radius: var(--radius-lg);
  text-align: center; box-shadow: var(--shadow); border: 1px dashed var(--color-border);
}
.team-notice p { color: var(--color-text-muted); max-width: 520px; margin: 0 auto; }

/* People page — editorial + SEI-style directory */
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.people-page-head {
  padding: calc(var(--header-height) + 2rem) 0 1.25rem;
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}
.people-page-head h1 {
  font-family: var(--font-display); font-size: var(--font-yellow-heading);
  font-weight: 700; color: var(--color-accent); margin: 0; line-height: 1.15;
}

.people-listing-section { padding: 0 0 4rem; background: var(--color-surface); }
.people-listing-panel-wrap {
  background: linear-gradient(180deg, rgba(196, 220, 208, 0.55) 0%, rgba(220, 236, 228, 0.75) 100%);
  border-bottom: 1px solid rgba(40, 92, 69, 0.12); padding: 1.75rem 0 1.5rem; margin-bottom: 2rem;
}
.people-listing-panel-wrap .people-listing-panel {
  margin-bottom: 0; background: transparent; padding: 0; border-radius: 0;
}
.people-listing-body { padding-bottom: 2rem; }
.people-listing-panel {
  background: linear-gradient(180deg, rgba(196, 220, 208, 0.45) 0%, rgba(232, 240, 236, 0.65) 100%);
  border-radius: var(--radius-lg); padding: 1.75rem 1.75rem 1.5rem; margin-bottom: 1.75rem;
}
.people-search {
  display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: stretch; margin-bottom: 1.25rem;
}
.people-search input[type="search"] {
  flex: 1 1 16rem; min-width: 0; padding: 0.75rem 1rem; font-family: var(--font-body);
  font-size: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius);
  background: #fff; color: var(--color-text);
}
.people-search input[type="search"]:focus {
  outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(40, 92, 69, 0.12);
}
.people-search .btn { flex-shrink: 0; min-height: 48px; padding-left: 1.75rem; padding-right: 1.75rem; }
.people-filters-row {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem 1.25rem;
}
.people-results-bar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1rem 1.5rem; margin-bottom: 1.75rem;
}
.people-meta { font-size: 0.9375rem; color: var(--color-text); margin: 0; }
.people-meta strong { font-weight: 700; color: var(--color-primary-dark); }
.people-meta-sep { color: var(--color-text-muted); margin: 0 0.35rem; }
.people-results-bar .people-sort { flex-direction: row; align-items: center; gap: 0.65rem; }
.people-results-bar .people-sort label { margin: 0; white-space: nowrap; }
.people-results-bar .people-sort select { min-width: 9.5rem; }
.people-photo-mosaic {
  display: grid; grid-template-columns: repeat(12, 1fr); gap: 0.75rem; margin-top: 2.5rem;
}
.people-photo-mosaic figure { margin: 0; overflow: hidden; border-radius: var(--radius); }
.people-photo-mosaic img {
  width: 100%; height: 100%; object-fit: cover; min-height: 140px;
  transition: transform 0.5s ease;
}
.people-photo-mosaic figure:hover img { transform: scale(1.04); }
.people-photo-mosaic .mosaic-a { grid-column: span 5; grid-row: span 2; }
.people-photo-mosaic .mosaic-b { grid-column: span 4; }
.people-photo-mosaic .mosaic-c { grid-column: span 3; }
.people-photo-mosaic .mosaic-d { grid-column: span 4; }
.people-photo-mosaic .mosaic-e { grid-column: span 8; }
.people-photo-mosaic figcaption {
  font-size: 0.75rem; color: var(--color-text-muted); padding: 0.5rem 0.25rem 0; line-height: 1.4;
}

.people-governance-block { margin-bottom: 3.5rem; padding-bottom: 3.5rem; border-bottom: 1px solid var(--color-border); }
.people-governance-block:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

.people-directory-section { padding-top: 0; }
.people-directory-intro { max-width: 680px; margin-bottom: 2rem; }
.people-directory-intro p { color: var(--color-text-muted); margin-bottom: 0.75rem; }

.people-toolbar {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 1rem 1.5rem; padding: 1.25rem 1.5rem; background: var(--color-surface);
  border-radius: var(--radius-lg); box-shadow: var(--shadow); margin-bottom: 1.25rem;
}
.people-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem; flex: 1; }
.people-filter label {
  display: block; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--color-text-muted); margin-bottom: 0.35rem;
}
.people-filter select {
  min-width: 11rem; padding: 0.55rem 2rem 0.55rem 0.75rem; font-family: var(--font-body);
  font-size: 0.875rem; border: 1px solid var(--color-border); border-radius: var(--radius);
  background: var(--color-bg); color: var(--color-text); cursor: pointer;
}
.people-filter select:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(40, 92, 69, 0.12); }
.people-filter-actions { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.people-filter-actions .btn { padding: 0.55rem 1.25rem; font-size: 0.8125rem; min-height: 40px; }
.people-reset {
  font-size: 0.8125rem; font-weight: 600; color: var(--color-primary); background: none;
  border: none; cursor: pointer; padding: 0.5rem 0.25rem; text-decoration: underline;
  text-underline-offset: 3px;
}
.people-reset:hover { color: var(--color-primary-light); }
.people-sort { display: flex; flex-direction: column; align-items: flex-end; gap: 0.35rem; }
.people-sort label {
  font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-text-muted);
}
.people-directory { display: flex; flex-direction: column; gap: 2.25rem; }
.people-band-title {
  font-family: var(--font-display); font-size: 1.35rem; font-weight: 700;
  color: var(--color-primary-dark); margin: 0 0 0.35rem;
}
.people-page .people-listing-panel-wrap,
.people-page .people-results-bar { display: none; }
.people-page .people-listing-body { padding-top: 0.75rem; }
/* Portraits are withheld for now. Remove this rule to show them again. */
.people-page .people-feature-photo,
.people-page .people-card-photo,
.people-profile-page .people-profile-photo {
  display: none;
}
.people-org {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: clamp(1.25rem, 2.5vw, 2.25rem);
  container-type: inline-size;
}
.people-page .people-org {
  width: calc(100% + 3.25rem);
}
.people-research-innovation-heading {
  flex: 0 0 100%;
  margin: 0 0 1rem;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2.2vw, 1.55rem);
  font-weight: 800;
  line-height: 1.2;
  color: #000;
  text-align: center;
}
.people-research-innovation-heading::after {
  content: "";
  display: block;
  width: 3.25rem;
  height: 4px;
  margin: 0.55rem auto 0;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--color-accent) 0%, var(--color-primary) 100%);
}
.people-lead-row {
  flex: 0 0 100%;
  display: grid;
  grid-template-columns: minmax(0, 27rem) minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2.25rem);
  align-items: stretch;
}
.people-org-main {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
}
.people-org-lower > .people-org-main {
  grid-column: 1 / -1;
  grid-row: 3;
  width: min(100%, 27rem);
  max-width: 27rem;
}
.people-org-lower {
  flex: 0 0 100%;
  display: grid;
  grid-template-columns: minmax(0, 27rem) minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2.25rem);
  align-items: stretch;
}
.people-flat-lead {
  display: flex;
  justify-content: flex-start;
  width: 100%;
  margin: 0;
}
.people-institutional {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
  max-width: none;
  margin: 3rem 0 0;
}
@media (max-width: 900px) {
  .people-page .people-org {
    width: 100%;
  }
  .people-lead-row,
  .people-org-lower {
    grid-template-columns: 1fr;
  }
  .people-org-main,
  .people-institutional {
    grid-column: 1;
    grid-row: auto;
    width: min(100%, 27rem);
    max-width: 27rem;
    margin-top: 0;
  }
  .people-institutional-row {
    grid-template-columns: 1fr;
  }
  .people-institutional-row > .people-executive-card {
    grid-column: auto;
    transform: none;
  }
  .people-institutional-heading {
    transform: none;
  }
}
.people-institutional-heading {
  width: fit-content;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2.2vw, 1.55rem);
  font-weight: 800;
  line-height: 1.2;
  color: var(--color-primary-dark);
  text-align: center;
  margin: 0 0 1rem;
  transform: translateX(calc(50cqi - 50%));
}
.people-institutional-heading::after {
  content: "";
  display: block;
  width: 3.25rem;
  height: 4px;
  margin: 0.55rem auto 0;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--color-accent) 0%, var(--color-primary) 100%);
}
.people-institutional-row {
  display: grid;
  grid-template-columns: minmax(0, 27rem) minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  gap: clamp(1.25rem, 2.5vw, 2.25rem);
  width: 100%;
}
.people-institutional-row > .people-executive-card:first-child {
  grid-column: 1;
}
.people-institutional-row > .people-executive-card:nth-child(2) {
  grid-column: 2;
}
.people-institutional-row > .people-executive-card:nth-child(3) {
  grid-column: 3;
}
.people-org-column {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
  width: 100%;
}
.people-institutional-row .people-executive-card,
.people-org-column .people-executive-card,
.people-flat-lead .people-executive-card,
.people-lead-row .people-executive-card,
.people-lead-row .people-flat-lead,
.people-org-lower > .people-executive-card {
  flex: none;
  width: 100%;
  max-width: none;
}
.people-lead-row .people-flat-lead,
.people-lead-row .people-executive-card,
.people-org-lower > .people-executive-card {
  height: 100%;
}
.people-page .people-executive-card.people-feature--lead {
  align-items: flex-start;
  text-align: left;
  padding: 1.15rem 1.35rem 1.2rem;
  background: linear-gradient(90deg, rgba(40, 92, 69, 0.1) 0%, #fff 42%);
  border: 2px solid rgba(40, 92, 69, 0.26);
  border-left: 4px solid var(--color-accent);
  box-shadow: var(--shadow-lg);
}
.people-page .people-feature.people-feature--lead .people-feature-name {
  font-weight: 800;
}
.people-page .people-feature.people-feature--lead .people-feature-role {
  font-weight: 700;
  color: var(--color-primary-dark);
}
.people-page .people-feature.people-feature--lead .people-feature-body,
.people-page .people-executive-card.people-feature--lead.people-executive-card--center .people-feature-body {
  text-align: left;
  width: 100%;
}
.people-page .people-flat-lead .people-executive-card.people-feature--lead.people-executive-card--center {
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  max-width: none;
  padding: 1.15rem 1.35rem 1.2rem;
}
.people-feature-role-line {
  display: block;
}
.people-feature-role-line + .people-feature-role-line {
  margin-top: 0.15rem;
}
body.people-page #main .people-feature--lead .people-feature-body p,
body.people-page #main .people-executive-card--center .people-feature-body p {
  text-align: left;
  text-justify: auto;
  hyphens: manual;
}
.people-executive-block { text-align: center; }
.people-executive-heading {
  font-family: var(--font-display);
  font-size: clamp(1.875rem, 4vw, 2.75rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: 0.02em;
  color: var(--color-primary-dark);
  margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
  text-align: center;
}
.people-executive-heading::after {
  content: "";
  display: block;
  width: min(5.5rem, 28vw);
  height: 5px;
  margin: 1rem auto 0;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--color-accent) 0%, var(--color-primary) 100%);
}
.people-executive-org {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: clamp(2rem, 7vw, 4.5rem);
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 clamp(0.25rem, 2vw, 1rem);
}
.people-executive-org-slot--left { justify-self: start; }
.people-executive-org-slot--center { justify-self: center; }
.people-executive-org-slot--right { justify-self: end; }
.people-directory-below {
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
  padding-top: clamp(2rem, 4vw, 2.75rem);
  border-top: 1px solid var(--color-border);
}
.people-directory-band { margin-bottom: clamp(2rem, 4vw, 2.75rem); }
.people-directory-band:last-child { margin-bottom: 0; }
.people-directory-heading {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.8vw, 1.875rem);
  font-weight: 800;
  line-height: 1.15;
  color: var(--color-primary-dark);
  text-align: center;
  margin: 0 0 1.5rem;
}
.people-research-operations-heading {
  margin-top: clamp(2rem, 4vw, 2.75rem);
  margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}
.people-research-operations-heading::after {
  content: "";
  display: block;
  width: min(4.5rem, 24vw);
  height: 4px;
  margin: 0.85rem auto 0;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--color-accent) 0%, var(--color-primary) 100%);
}
.people-heads-heading {
  margin-top: 0.25rem;
  margin-bottom: 1.25rem;
}
.people-executive-grid.people-heads-row {
  display: grid;
  flex-wrap: unset;
  grid-template-columns: repeat(2, minmax(0, 17.5rem));
  justify-content: center;
  align-items: stretch;
  width: 100%;
  max-width: min(var(--container), 100%);
  margin: 0 auto clamp(1.75rem, 3.5vw, 2.5rem);
  gap: clamp(0.75rem, 2vw, 1.75rem);
}
.people-heads-row .people-executive-card {
  justify-self: center;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  flex: unset;
}
.people-operations-tier-headings {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: end;
  width: 100%;
  max-width: min(var(--container), 100%);
  margin: 0 auto;
  gap: clamp(0.5rem, 2vw, 1.5rem);
}
.people-operations-tier-column { min-width: 0; }
.people-operations-subheading {
  font-family: var(--font-display);
  font-size: clamp(0.975rem, 1.9vw, 1.22rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-primary-dark);
  margin: 0;
}
.people-operations-tier-status {
  margin: 0.45rem 0 0;
  font-size: clamp(0.75rem, 1.25vw, 0.875rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-primary);
}
.people-operations-tier-column--1 { text-align: left; justify-self: start; }
.people-operations-tier-column--2 {
  text-align: left;
  justify-self: start;
  transform: translateX(clamp(0.35rem, 2vw, 1rem));
}
.people-operations-tier-column--3 { text-align: center; justify-self: center; }
.people-operations-tier-column--4 { text-align: right; justify-self: end; }
.people-operations-recruiting-summary {
  max-width: 40rem;
  margin: clamp(1.35rem, 3vw, 1.85rem) auto 0;
  font-size: clamp(0.9375rem, 1.5vw, 1.0625rem);
  line-height: 1.6;
  color: var(--color-text-muted);
  text-align: center;
  text-wrap: balance;
}
.people-operations-recruiting-summary a {
  font-weight: 600;
  color: var(--color-primary);
}
.people-operations-recruiting-summary a:hover {
  color: var(--color-primary-light);
}
#main .people-operations-tier-status,
#main .people-operations-recruiting-summary {
  text-align: inherit;
  text-justify: auto;
  hyphens: manual;
}
#main .people-operations-recruiting-summary { text-align: center; }
#main .people-operations-tier-column--1 .people-operations-tier-status,
#main .people-operations-tier-column--1 .people-operations-subheading { text-align: left; }
#main .people-operations-tier-column--2 .people-operations-tier-status,
#main .people-operations-tier-column--2 .people-operations-subheading { text-align: left; }
#main .people-operations-tier-column--3 .people-operations-tier-status,
#main .people-operations-tier-column--3 .people-operations-subheading { text-align: center; }
#main .people-operations-tier-column--4 .people-operations-tier-status,
#main .people-operations-tier-column--4 .people-operations-subheading { text-align: right; }
.people-executive-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 1.35rem 1.75rem;
}
.people-executive-grid .people-executive-card {
  flex: 0 1 17.5rem;
  width: 100%;
  max-width: 17.5rem;
}
.people-executive-grid.people-research-centre-row {
  display: grid;
  flex-wrap: unset;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: stretch;
  width: 100%;
  max-width: min(var(--container), 100%);
  margin: 0 auto;
  gap: clamp(0.5rem, 1.25vw, 1rem);
}
.people-research-centre-row .people-executive-card {
  justify-self: center;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  flex: unset;
  padding: 1.05rem 0.65rem 1.2rem;
}
.people-research-centre-row .people-feature.people-feature--lead .people-feature-photo {
  width: 92px;
  height: 92px;
}
.people-research-centre-row .people-feature.people-feature--lead .people-feature-photo .people-avatar-placeholder svg {
  width: 38px;
  height: 38px;
}
.people-research-centre-row .people-feature.people-feature--lead .people-feature-name {
  font-size: clamp(0.9rem, 1.35vw, 1.0625rem);
}
.people-research-centre-row .people-feature.people-feature--lead .people-feature-role {
  font-size: 0.75rem;
  line-height: 1.35;
}
.people-executive-card {
  text-align: center;
  width: 100%;
  max-width: 17.5rem;
  padding: 1.35rem 1.25rem 1.5rem;
  background: linear-gradient(165deg, rgba(40, 92, 69, 0.07) 0%, rgba(255, 255, 255, 0.98) 42%, #fff 100%);
  border: 1px solid rgba(40, 92, 69, 0.16);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.people-feature {
  display: grid; grid-template-columns: 168px minmax(0, 1fr); gap: 1.25rem 1.75rem;
  align-items: center; padding: 0.25rem 0 1.75rem; border-bottom: 1px solid var(--color-border);
}
.people-feature.people-feature--lead {
  display: flex; flex-direction: column; align-items: center; gap: 0.75rem;
  padding: 0; border-bottom: none;
}
.people-feature.people-feature--lead .people-feature-body { text-align: center; }
.people-feature.people-feature--lead .people-feature-photo {
  width: 112px; height: 112px; border-width: 2px;
}
.people-feature.people-feature--lead .people-feature-photo .people-avatar-placeholder svg {
  width: 44px; height: 44px;
}
.people-feature.people-feature--lead .people-feature-name {
  font-family: var(--font-display); font-size: clamp(1.125rem, 2vw, 1.35rem);
  font-weight: 700; line-height: 1.25; margin: 0 0 0.25rem; color: var(--color-primary-dark);
}
.people-feature.people-feature--lead .people-feature-name a {
  color: var(--color-primary); text-decoration: none;
}
.people-feature.people-feature--lead .people-feature-name a:hover {
  color: var(--color-primary-light); text-decoration: underline;
}
.people-feature.people-feature--lead .people-feature-photo {
  text-decoration: none; transition: box-shadow var(--transition), transform var(--transition);
}
.people-feature.people-feature--lead .people-feature-photo:hover {
  box-shadow: 0 8px 28px rgba(40, 92, 69, 0.22);
  transform: scale(1.02);
}
.people-feature.people-feature--lead .people-feature-role {
  margin: 0; font-size: 0.875rem; line-height: 1.4; font-weight: 600;
}
.people-lead-row > .people-executive-card.people-feature--lead .people-feature-role {
  margin-top: 0.7rem;
}
/* Executive Director — wider horizontal card; same photo height as flanking cards */
.people-executive-card.people-feature--lead.people-executive-card--center {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 1.15rem;
  width: min(100%, 34rem);
  max-width: none;
  padding: 1.35rem 1.65rem 1.35rem 1.35rem;
  background: linear-gradient(90deg, rgba(40, 92, 69, 0.1) 0%, rgba(255, 255, 255, 1) 38%);
  border: 2px solid rgba(40, 92, 69, 0.26);
  border-left: 4px solid var(--color-accent);
  box-shadow: var(--shadow-lg);
}
.people-executive-card.people-feature--lead.people-executive-card--center .people-feature-photo {
  width: 112px;
  height: 112px;
  flex-shrink: 0;
  border-width: 3px;
  border-color: rgba(40, 92, 69, 0.22);
}
.people-executive-card.people-feature--lead.people-executive-card--center .people-feature-body {
  text-align: left;
  flex: 1;
  min-width: 0;
}
.people-executive-card.people-feature--lead.people-executive-card--center .people-feature-name {
  font-size: clamp(1.2rem, 2.1vw, 1.45rem);
  font-weight: 800;
}
.people-executive-card.people-feature--lead.people-executive-card--center .people-feature-role {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-primary-dark);
}
.people-executive-card.people-feature--lead.people-executive-card--center .people-feature-photo:hover {
  box-shadow: 0 10px 32px rgba(40, 92, 69, 0.26);
}
#main .people-executive-card.people-executive-card--center .people-feature-body p {
  text-align: left;
  text-justify: auto;
  hyphens: manual;
}
.people-feature-photo {
  width: 168px; height: 168px; border-radius: 50%; overflow: hidden; display: block;
  border: 3px solid rgba(40, 92, 69, 0.12); background: var(--color-bg-alt);
}
.people-feature-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 22%;
}
.people-feature-photo .people-avatar-placeholder {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  color: var(--color-sage); background: linear-gradient(145deg, #e8e4da, #f7f3ea);
}
.people-feature-photo .people-avatar-placeholder svg { width: 64px; height: 64px; opacity: 0.55; }
.people-feature-body h2 {
  font-family: var(--font-display); font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 700; line-height: 1.2; margin: 0 0 0.4rem; color: var(--color-primary-dark);
}
.people-feature-body h2 a { color: var(--color-primary); text-decoration: none; }
.people-feature-body h2 a:hover { color: var(--color-primary-light); text-decoration: underline; }
.people-feature-role { font-size: 1.0625rem; font-weight: 700; margin: 0 0 0.2rem; color: var(--color-text); }
.people-feature-also { margin: 0 0 0.2rem; color: var(--color-text); }
.people-feature-title { margin: 0.35rem 0 0.85rem; color: var(--color-text-muted); font-size: 0.9375rem; }
.people-feature-summary { margin: 0 0 0.85rem; max-width: 42rem; color: var(--color-text); line-height: 1.6; }
.people-feature-more { margin: 0; }
.people-feature-more a { font-weight: 700; }
.people-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 2.5rem;
}
.people-card {
  padding: 1.25rem 0; border-bottom: 1px solid var(--color-border);
}
.people-card-inner { display: flex; gap: 1rem; align-items: flex-start; }
.people-card-photo {
  flex-shrink: 0; width: 72px; height: 72px; border-radius: 50%; overflow: hidden;
  background: var(--color-bg-alt); border: 2px solid rgba(40, 92, 69, 0.15);
}
.people-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.people-card-photo .people-avatar-placeholder {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  color: var(--color-sage); background: linear-gradient(145deg, #e8e4da, #f7f3ea);
}
.people-card-photo .people-avatar-placeholder svg { width: 36px; height: 36px; opacity: 0.55; }
.people-card-body { min-width: 0; flex: 1; }
.people-card-body h3 {
  font-family: var(--font-display); font-size: 1.0625rem; font-weight: 700;
  line-height: 1.3; margin: 0 0 0.35rem; color: var(--color-primary-dark);
}
.people-card-body h3 a { color: var(--color-primary); text-decoration: none; }
.people-card-body h3 a:hover { color: var(--color-primary-light); text-decoration: underline; }
#main .people-card-body p,
#main .people-feature-body p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  text-wrap: pretty;
}
#main .people-feature--lead .people-feature-body p { text-align: center; }
.people-card-role { font-size: 0.875rem; color: var(--color-text); margin: 0 0 0.25rem; line-height: 1.45; }
#main .people-card-role { font-size: 0.875rem; line-height: 1.45; margin-bottom: 0.25rem; }
.people-card-appointment {
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--color-primary); margin: 0 0 0.45rem;
}
#main .people-card-appointment { font-size: 0.75rem; line-height: 1.4; margin-bottom: 0.45rem; }
#main .people-card-contact { font-size: 0.8125rem; line-height: 1.5; margin-bottom: 0.15rem; }
#main .people-profile-hero:not(.people-profile-spec-hero) p:not(.people-profile-role-banner),
#main .people-profile-contact li,
#main .people-profile-appointment-list li,
#main .people-profile-bio .people-field-pending {
  text-align: start; text-justify: auto; hyphens: manual;
}
.people-card-unit { font-size: 0.8125rem; color: var(--color-text-muted); margin: 0 0 0.15rem; }
.people-card-location { font-size: 0.8125rem; color: var(--color-text-muted); margin: 0; }
.people-card-contact { margin: 0.15rem 0 0; font-size: 0.8125rem; line-height: 1.5; }
.people-card-contact a { color: var(--color-primary); font-weight: 600; text-decoration: none; }
.people-card-contact a:hover { text-decoration: underline; }
.people-field-pending { color: var(--color-text-muted); font-weight: 500; font-style: italic; }

.people-empty {
  grid-column: 1 / -1; text-align: center; padding: 3rem 2rem; background: var(--color-surface);
  border-radius: var(--radius-lg); box-shadow: var(--shadow); border: 1px dashed var(--color-border);
}
.people-empty h3 {
  font-family: var(--font-display); font-size: 1.35rem; color: var(--color-primary-dark);
  margin-bottom: 0.75rem;
}
.people-empty p { color: var(--color-text-muted); max-width: 520px; margin: 0 auto 0.5rem; font-size: 0.9375rem; }

.people-pagination {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 0.5rem; margin-top: 2.5rem;
}
.people-pagination button {
  min-width: 2.5rem; height: 2.5rem; padding: 0 0.65rem; font-family: var(--font-body);
  font-size: 0.875rem; font-weight: 600; border: 1px solid var(--color-border);
  border-radius: var(--radius); background: var(--color-surface); color: var(--color-text);
  cursor: pointer; transition: background var(--transition), border-color var(--transition);
}
.people-pagination button:hover:not(:disabled) {
  border-color: var(--color-primary); color: var(--color-primary);
}
.people-pagination button[aria-current="page"] {
  background: var(--color-primary); border-color: var(--color-primary); color: #fff;
}
.people-pagination button:disabled { opacity: 0.4; cursor: not-allowed; }

.people-banner {
  position: relative; border-radius: var(--radius-lg); overflow: hidden; margin: 3rem 0;
  min-height: 220px; display: flex; align-items: center;
}
.people-banner img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.55) saturate(0.9);
}
.people-banner-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, rgba(31, 42, 36, 0.92) 0%, rgba(31, 42, 36, 0.55) 55%, rgba(31, 42, 36, 0.35) 100%);
}
.people-banner-content {
  position: relative; z-index: 2; padding: 2.5rem 3rem; max-width: 560px; color: #fff;
}
.people-banner-content h2 {
  font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700; margin-bottom: 0.75rem; color: #fff;
}
.people-banner-content p { color: rgba(255, 255, 255, 0.88); margin: 0; font-size: 1rem; line-height: 1.65; }

.people-governance-block h3 {
  font-family: var(--font-display); font-size: 1.35rem; font-weight: 700;
  color: var(--color-primary-dark); margin-bottom: 0.75rem;
}

.people-profile-hero {
  padding: calc(var(--header-height) + 2rem) 0 3rem;
  background: var(--color-bg-alt); border-bottom: 1px solid var(--color-border);
}
.people-profile-hero-grid {
  display: grid; grid-template-columns: 1fr min(280px, 32vw); gap: 2.5rem 3rem; align-items: start;
}
.people-profile-hero .breadcrumbs { margin-bottom: 1.25rem; font-size: 0.8125rem; }
.people-profile-hero h1 {
  font-family: var(--font-display); font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 700; color: var(--color-primary-dark); margin: 0 0 0.5rem; line-height: 1.15;
}
.people-profile-role { font-size: 1.125rem; font-weight: 700; margin: 0 0 0.35rem; color: var(--color-text); }
.people-profile-fullname { margin: -0.15rem 0 0.65rem; font-size: 0.9375rem; color: var(--color-text-muted); }
.people-profile-dept { font-size: 1rem; color: var(--color-text); margin: 0 0 0.35rem; }
.people-profile-title { margin: 0.15rem 0 0; font-size: 1rem; color: var(--color-text-muted); }
.people-profile-details { margin-top: 1.5rem; }
.people-profile-appointment-list { list-style: none; margin: 0; padding: 0; }
.people-profile-appointment-list li {
  margin: 0 0 0.75rem; font-weight: 600; color: var(--color-primary-dark);
}
.people-profile-appointment-list li:last-child { margin-bottom: 0; }
.people-profile-appointment-label {
  display: block; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--color-text-muted); margin-bottom: 0.2rem;
}
.people-profile-details {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem 2.5rem;
}
.people-profile-detail-block h2 {
  font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-text-muted); margin: 0 0 0.5rem;
}
.people-profile-detail-block p { margin: 0; font-weight: 600; color: var(--color-primary-dark); }
.people-profile-detail-block p.people-field-pending { font-weight: 500; }
.people-profile-contact { list-style: none; margin: 0; padding: 0; }
.people-profile-contact li { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; font-size: 0.9375rem; }
.people-contact-icon {
  display: inline-flex; align-items: center; justify-content: center; width: 1.25rem;
  font-size: 0.75rem; color: var(--color-text-muted);
}
.people-profile-photo {
  width: 100%; max-width: 280px; aspect-ratio: 1; border-radius: 50%; overflow: hidden;
  margin-left: auto; border: 3px solid rgba(40, 92, 69, 0.12); background: var(--color-surface);
}
.people-profile-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.people-profile-photo .people-avatar-placeholder { width: 100%; height: 100%; }
.people-profile-photo .people-avatar-placeholder svg { width: 48%; height: 48%; }
.people-profile-bio { max-width: 720px; }
.people-profile-bio p { color: var(--color-text-muted); line-height: 1.75; margin-bottom: 1.25rem; }
.people-profile-back { margin-top: 2rem; }

/* People profile — CV layout matching updated profile documents */
.people-profile-page {
  font-size: 1.125rem;
}
.people-profile-page #people-profile-root {
  background: var(--color-bg);
}
.people-profile-page .people-profile-hero {
  background: transparent;
  border-bottom: none;
}
.people-profile-cv-hero {
  padding-bottom: 3rem;
}
.people-profile-cv-hero .breadcrumbs {
  margin-bottom: 1.25rem;
  font-size: 0.875rem;
}
.people-profile-cv-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(168px, 220px);
  column-gap: 2.75rem;
  row-gap: 1.25rem;
  align-items: start;
}
.people-profile-cv-main {
  min-width: 0;
}
.people-profile-cv-intro {
  min-width: 0;
  padding-top: 0.15rem;
  margin-bottom: 1.35rem;
}
.people-profile-cv-name {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.8vw, 2.55rem);
  font-weight: 700;
  line-height: 1.12;
  color: var(--color-primary-dark);
  margin: 0 0 0.55rem;
  text-align: left;
}
.people-profile-cv-tagline {
  margin: 0 0 0.45rem;
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  font-weight: 600;
  line-height: 1.45;
  color: var(--color-text);
  text-align: left;
}
.people-profile-cv-roleline {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-text-muted);
  text-align: left;
}
.people-profile-cv-aside {
  justify-self: end;
  width: 100%;
  max-width: 220px;
  position: sticky;
  top: calc(var(--header-height) + 1rem);
}
.people-profile-photo-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.people-profile-role-banner {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0.75rem auto 0;
  width: 100%;
  max-width: 220px;
  padding: 0;
  text-align: center;
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.7vw, 1.1rem);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.3;
}
.people-profile-role-banner-line {
  display: block;
  white-space: nowrap;
}
.people-profile-photo.people-profile-photo--spec {
  width: 100%;
  max-width: 220px;
  margin: 0;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius);
  border: 1px solid rgba(40, 92, 69, 0.14);
  box-shadow: var(--shadow);
}
.people-profile-photo--spec img {
  object-position: center 15%;
}
.people-profile-cv-content {
  max-width: none;
}
.people-profile-page .people-profile-back {
  margin-top: 2rem;
}
.people-profile-cv-section {
  margin-bottom: 1.85rem;
}
.people-profile-cv-section:last-child {
  margin-bottom: 0;
}
.people-profile-cv-heading {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-primary-dark);
  margin: 0 0 0.65rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(40, 92, 69, 0.18);
}
.people-profile-cv-subheading {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--color-primary-dark);
  margin: 1.1rem 0 0.55rem;
}
.people-profile-cv-section-body > .people-profile-cv-subheading:first-child {
  margin-top: 0;
}
.people-profile-cv-section-body p {
  margin: 0 0 0.95rem;
  color: var(--color-text);
  font-size: 1.0625rem;
  line-height: 1.75;
}
.people-profile-cv-section-body p:last-child {
  margin-bottom: 0;
}
.people-profile-cv-list {
  margin: 0;
  padding: 0 0 0 1.2rem;
  list-style: disc;
}
.people-profile-cv-list li {
  margin: 0 0 0.45rem;
  padding: 0;
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--color-text);
}
.people-profile-cv-list li:last-child {
  margin-bottom: 0;
}
.people-profile-cv-list strong {
  font-weight: 700;
  color: var(--color-primary-dark);
}
.people-profile-cv-table-wrap {
  width: 100%;
  overflow-x: auto;
  margin-top: 0.25rem;
  border: 1px solid rgba(40, 92, 69, 0.14);
  border-radius: var(--radius);
  background: var(--color-surface);
}
.people-profile-cv-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9875rem;
  line-height: 1.5;
}
.people-profile-cv-table th,
.people-profile-cv-table td {
  padding: 0.7rem 0.9rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid rgba(40, 92, 69, 0.1);
}
.people-profile-cv-table thead th {
  background: rgba(40, 92, 69, 0.07);
  color: var(--color-primary-dark);
  font-weight: 700;
  white-space: nowrap;
}
.people-profile-cv-table tbody th {
  width: 8.5rem;
  font-weight: 600;
  color: var(--color-primary-dark);
  white-space: nowrap;
  background: rgba(247, 243, 234, 0.55);
}
.people-profile-cv-table tbody tr:last-child th,
.people-profile-cv-table tbody tr:last-child td {
  border-bottom: none;
}
.people-profile-link-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.people-profile-link-list li {
  margin-bottom: 0.45rem;
}
.people-profile-link-list a {
  font-weight: 600;
  color: var(--color-primary);
}
.people-profile-link-list a:hover {
  color: var(--color-primary-light);
}
.people-profile-page #main .people-profile-cv-section-body,
.people-profile-page #main .people-profile-cv-section-body p,
.people-profile-page #main .people-profile-cv-list li,
.people-profile-page #main .people-profile-cv-table td,
.people-profile-page #main .people-profile-bio p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  text-wrap: wrap;
  max-width: none;
}
.people-profile-page #main .people-profile-cv-name,
.people-profile-page #main .people-profile-cv-tagline,
.people-profile-page #main .people-profile-cv-roleline,
.people-profile-page #main .people-profile-cv-heading,
.people-profile-page #main .people-profile-cv-subheading,
.people-profile-page #main .people-profile-cv-table thead th,
.people-profile-page #main .people-profile-cv-table tbody th {
  text-align: left;
  text-justify: auto;
  hyphens: manual;
  -webkit-hyphens: none;
}
.people-profile-page #main .people-profile-role-banner,
#main .people-profile-role-banner {
  text-align: center;
  text-justify: auto;
  hyphens: manual;
  -webkit-hyphens: none;
}
#main .people-profile-cv-section-body .people-field-pending {
  text-align: start;
  color: var(--color-text-muted);
  font-weight: 500;
}

@media (max-width: 860px) {
  .people-profile-cv-layout {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  .people-profile-cv-main {
    width: 100%;
    display: contents;
  }
  .people-profile-cv-intro {
    width: 100%;
    order: 1;
    text-align: center;
    margin-bottom: 0.5rem;
  }
  .people-profile-cv-aside {
    order: 2;
    justify-self: center;
    position: static;
    margin: 0.35rem 0 1rem;
  }
  .people-profile-cv-content {
    order: 3;
    width: 100%;
    text-align: left;
  }
  .people-profile-cv-name,
  .people-profile-cv-tagline,
  .people-profile-cv-roleline {
    text-align: center;
  }
  .people-profile-page .people-profile-back {
    order: 4;
  }
}

@media (max-width: 768px) {
  .people-profile-hero-grid { grid-template-columns: 1fr; }
  .people-profile-photo { margin: 0 auto; }
  .people-grid { grid-template-columns: 1fr; }
  .people-feature:not(.people-feature--lead) { grid-template-columns: 1fr; justify-items: start; }
  .people-feature:not(.people-feature--lead) .people-feature-photo { margin: 0 auto 0.25rem; }
  .people-executive-org {
    grid-template-columns: 1fr;
    row-gap: 1.25rem;
    max-width: 17.5rem;
  }
  .people-executive-org-slot--left,
  .people-executive-org-slot--center,
  .people-executive-org-slot--right { justify-self: center; }
  .people-research-centre-row {
    grid-template-columns: 1fr;
    max-width: 17.5rem;
  }
  .people-research-centre-row .people-executive-card { justify-self: center; max-width: 17.5rem; }
  .people-heads-row {
    grid-template-columns: 1fr;
    max-width: 17.5rem;
  }
  .people-heads-row .people-executive-card { justify-self: center; max-width: 17.5rem; }
  .people-operations-tier-headings {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 0.75rem;
  }
  .people-operations-tier-column--1,
  .people-operations-tier-column--2,
  .people-operations-tier-column--3,
  .people-operations-tier-column--4 {
    text-align: center;
    justify-self: center;
    transform: none;
  }
  #main .people-operations-tier-column--1 .people-operations-tier-status,
  #main .people-operations-tier-column--1 .people-operations-subheading,
  #main .people-operations-tier-column--2 .people-operations-tier-status,
  #main .people-operations-tier-column--2 .people-operations-subheading,
  #main .people-operations-tier-column--3 .people-operations-tier-status,
  #main .people-operations-tier-column--3 .people-operations-subheading,
  #main .people-operations-tier-column--4 .people-operations-tier-status,
  #main .people-operations-tier-column--4 .people-operations-subheading {
    text-align: center;
  }
  .people-executive-card.people-feature--lead.people-executive-card--center {
    flex-direction: column;
    width: 100%;
    max-width: 17.5rem;
    padding: 1.35rem 1.25rem 1.5rem;
    border-left: 1px solid rgba(40, 92, 69, 0.16);
    border-top: 4px solid var(--color-accent);
  }
  .people-executive-card.people-feature--lead.people-executive-card--center .people-feature-body {
    text-align: center;
  }
  #main .people-executive-card.people-executive-card--center .people-feature-body p {
    text-align: center;
  }
  .people-flat-lead .people-executive-card.people-feature--lead.people-executive-card--center {
    flex-direction: row;
    align-items: center;
    width: 100%;
    max-width: none;
    border-left: 4px solid var(--color-accent);
    border-top: 1px solid rgba(40, 92, 69, 0.16);
  }
  .people-flat-lead .people-executive-card.people-feature--lead.people-executive-card--center .people-feature-body,
  #main .people-flat-lead .people-executive-card.people-executive-card--center .people-feature-body p {
    text-align: left;
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  .people-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Empty state */
.empty-state {
  text-align: center; padding: 4rem 2rem; background: var(--color-surface);
  border-radius: var(--radius-lg); box-shadow: var(--shadow);
}
.empty-state h3 { font-family: var(--font-display); font-size: 1.5rem; color: var(--color-primary-dark); margin-bottom: 0.75rem; }
.empty-state p { color: var(--color-text-muted); max-width: 480px; margin: 0 auto; }
.centre-detail-soon .section-label { display: block; margin-bottom: 0.75rem; }
.centre-detail-soon-actions { margin-top: 1.75rem !important; display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; max-width: none !important; }

/* Footer */
.site-footer { background: var(--color-primary-dark); color: rgba(255,255,255,0.75); padding-top: 4rem; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 2.5rem; padding-bottom: 3rem; border-bottom: 1px solid rgba(255,255,255,0.1); }
.footer-brand .logo-mark { font-family: var(--font-display); font-size: 2rem; font-weight: 700; color: #fff; display: block; margin-bottom: 1rem; }
.footer-logo-img {
  display: block;
  width: 56px;
  height: 56px;
  margin-bottom: 1rem;
  object-fit: contain;
}
.footer-brand p { font-size: 0.9375rem; line-height: 1.65; margin-bottom: 0.75rem; }
.footer-tagline-inline { font-style: italic; color: rgba(255,255,255,0.5) !important; font-size: 0.875rem !important; }
.footer-links h4 { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-accent); margin-bottom: 1rem; }
.footer-links a { display: block; padding: 0.3rem 0; font-size: 0.875rem; color: rgba(255,255,255,0.7); }
.footer-links a:hover { color: #fff; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding: 1.5rem 0 2rem; font-size: 0.8125rem; }
.footer-bottom-copy { max-width: 46rem; }
.footer-bottom-copy p { margin: 0 0 0.35rem; }
.footer-registration { color: rgba(255,255,255,0.55); }
.footer-registration code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  color: rgba(255,255,255,0.78);
}
.footer-registration a { color: var(--color-accent-light); text-decoration: underline; text-underline-offset: 2px; }
.footer-registration a:hover { color: #fff; }
.footer-legal { color: rgba(255,255,255,0.45); }

.registration-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 1.5rem 0 0.5rem;
  align-items: stretch;
}
.registration-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: 1.25rem 1.35rem 1.35rem;
}
.registration-card h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-primary-dark);
  margin: 0 0 1rem;
  line-height: 1.35;
  min-height: 1.35em;
}
.registration-list {
  display: grid;
  gap: 0.75rem;
  margin: 0;
}
.registration-list > div {
  display: grid;
  grid-template-columns: 8.75rem minmax(0, 1fr);
  gap: 0.65rem 1rem;
  align-items: start;
}
.registration-list dt {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-accent);
  line-height: 1.45;
}
.registration-list dd {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 0.9375rem;
  line-height: 1.5;
  text-align: left;
  text-justify: auto;
  hyphens: manual;
}
.registration-list code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary-dark);
  letter-spacing: 0.02em;
  word-break: break-word;
}
.registration-note {
  margin: 0.9rem 0 0;
  color: var(--color-text-muted);
  font-size: 0.9375rem;
  line-height: 1.55;
}
.registration-card--municipal {
  display: block;
  grid-row: auto;
  grid-template-rows: none;
  margin-top: 1.25rem;
}
.registration-card--municipal .registration-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1.75rem;
  margin: 0;
}
@media (max-width: 900px) {
  .registration-grid { grid-template-columns: 1fr; row-gap: 1.25rem; }
  .registration-card { display: block; grid-row: auto; }
  .registration-list { display: grid; gap: 0.75rem; margin: 0; }
  .registration-card--municipal .registration-list { grid-template-columns: 1fr; }
  .registration-list > div { grid-template-columns: 1fr; gap: 0.2rem; }
}

/* Homepage — specification sections */
.proposition-bar {
  background: var(--color-primary-dark); color: #fff; text-align: center;
  padding: 1.25rem 1.5rem; font-size: 1.0625rem; font-weight: 500;
}
.proposition-bar strong { color: var(--color-accent); font-weight: 700; }

.section-header-lead {
  max-width: 52rem; margin-inline: auto; text-wrap: pretty;
  text-align: justify; text-justify: inter-word; hyphens: auto;
}
.section-header--priorities .section-header-lead {
  max-width: none;
  width: 100%;
  margin-inline: 0;
  text-align: justify;
  text-justify: inter-word;
  text-wrap: normal;
  hyphens: none;
  word-spacing: normal;
  line-height: 1.65;
}
.section-header--priorities .section-header-lead a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.section-header--priorities .section-header-lead a:hover {
  color: var(--color-accent);
}
.section-header--priorities .section-header p {
  text-wrap: normal;
  hyphens: none;
}
#why-savannas.section {
  padding-top: 0.65rem;
  padding-bottom: 1.75rem;
}
/* Two white sections in a row were each adding a full padding, so the gap
   between them was twice the normal section break. Share one break instead. */
.section-white:has(+ .section-alt),
.section-alt:has(+ .section-white) {
  padding-bottom: 2.75rem;
}
.section-white + .section-alt,
.section-alt + .section-white {
  padding-top: 2.75rem;
}
#what-we-do.section {
  padding-top: 2.75rem;
  padding-bottom: 2.75rem;
}
#approach.section-alt {
  padding-top: 2.75rem;
  padding-bottom: 2.75rem;
}
#academy.section {
  padding-bottom: 2.75rem;
}
#impact.section {
  padding-top: 2.75rem;
  padding-bottom: 2.75rem;
}
#knowledge.section {
  padding-top: 2.75rem;
}
#knowledge.section-white:has(+ #partners.section-alt) {
  padding-bottom: 3rem;
}
#partners.section-alt {
  padding-top: 3rem;
}
#why-savannas .btn-outline-dark {
  margin-top: 1.75rem;
}
#who-we-are.section {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  background:
    linear-gradient(180deg, rgba(40, 92, 69, 0.05) 0%, rgba(247, 243, 234, 0.35) 48%, rgba(255, 255, 255, 0.9) 100%),
    var(--color-surface);
  border-block: 1px solid var(--color-border);
}
#who-we-are .btn {
  margin-top: 1.25rem;
}
#centres.section {
  padding-top: 1.5rem;
  padding-bottom: 2.5rem;
}
#programmes.section {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
#learn.section {
  padding-top: 2.5rem;
  padding-bottom: 2.75rem;
}
#learn .split-grid {
  gap: 2.5rem;
  align-items: start;
}
#learn .split-media img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center 35%;
}
#learn .btn {
  margin-top: 1.25rem;
}
.section-cta {
  text-align: center;
  margin-top: 2rem;
}
.centre-grid--home .centre-card img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.programme-card-home--compact .programme-card-home-body {
  padding-bottom: 1.35rem;
}
.programme-card-home--compact .programme-card-tagline {
  margin-bottom: 1rem;
  text-align: left;
  letter-spacing: 0.01em;
}
.programme-card-home--compact .card-link {
  margin-top: 0;
}
.home-learn-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-top: 1.5rem;
}
.home-learn-grid--single {
  grid-template-columns: 1fr;
  max-width: 36rem;
  margin-inline: auto;
}
.home-learn-card {
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  color: inherit;
  height: 100%;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.home-learn-card:hover {
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
.home-learn-card:hover .card-link {
  color: var(--color-accent);
}
.home-learn-card img {
  width: 100%;
  aspect-ratio: 2 / 1;
  object-fit: cover;
}
.home-learn-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.35rem 1.35rem 1.5rem;
}
.home-learn-card-body h3 {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-primary-dark);
  margin: 0 0 0.5rem;
  line-height: 1.3;
}
.home-learn-card-body p {
  font-size: 0.9375rem;
  color: var(--color-text-muted);
  line-height: 1.55;
  margin: 0 0 1rem;
  flex: 1;
}
#strategic-priorities.section {
  padding-top: 1.75rem;
  padding-bottom: 1.5rem;
}
#strategic-priorities .section-header--priorities {
  margin-bottom: 2rem;
}
.priority-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.75rem; margin-top: 2.5rem;
}
.priority-card {
  display: flex; flex-direction: column; background: var(--color-surface);
  border: 1px solid var(--color-border); border-radius: var(--radius-lg);
  overflow: hidden; box-shadow: var(--shadow-sm); height: 100%;
}
.priority-card-media { display: block; line-height: 0; }
.priority-card-media img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
}
/* The community and sweet-potato photos share this frame so they stay aligned
   and the potato is visible from tip to base. */
.priority-card-media--full img {
  aspect-ratio: 531 / 539;
  object-position: center;
}
.priority-card-body {
  display: flex; flex-direction: column; flex: 1; padding: 1.35rem 1.35rem 1.5rem;
}
.priority-card-body h3 {
  font-family: var(--font-display); font-size: clamp(1.05rem, 1.8vw, 1.2rem);
  font-weight: 700; color: var(--color-primary-dark); line-height: 1.3; margin: 0 0 0.75rem;
}
.priority-card-body p {
  font-size: 0.9375rem; color: var(--color-text); line-height: 1.6; margin: 0 0 0.75rem;
  text-align: justify; text-justify: inter-word; hyphens: auto;
}
.priority-card-caption {
  font-size: 0.8125rem !important;
  font-style: italic;
  font-weight: 400;
  color: var(--color-text-muted) !important;
  margin: 0 0 0.5rem !important;
  text-align: left;
  text-justify: auto;
  hyphens: manual;
  line-height: 1.45;
}
.priority-card-body p:not(.priority-card-caption) {
  flex: 1;
}
.priority-card-body .card-link { margin-top: auto; font-weight: 600; }
.priority-note {
  margin: 1rem 0 0;
  padding: 1.1rem 1.35rem 1.15rem;
  max-width: none;
  background: rgba(40, 92, 69, 0.06);
  border: none;
  border-top: 1px solid var(--color-border);
  border-left: 3px solid var(--color-accent);
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: none;
}
.priority-note p {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--color-text);
  line-height: 1.65;
  text-align: left;
  text-wrap: pretty;
}
.priority-note a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.priority-note a:hover {
  color: var(--color-accent);
}
.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2rem; }
.stat-card {
  background: var(--color-surface); padding: 1.5rem; border-radius: var(--radius);
  border: 1px solid var(--color-border); box-shadow: var(--shadow);
}
.stat-card h3 { font-family: var(--font-display); font-size: 1rem; font-weight: 700; color: var(--color-primary); margin-bottom: 0.35rem; }
.stat-card p { font-size: 0.8125rem; color: var(--color-text-muted); line-height: 1.5; margin: 0; }

.pillar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.35rem; }
.pillar-card {
  background: var(--color-surface); padding: 1.75rem 1.5rem; border-radius: var(--radius-lg);
  border: 1px solid var(--color-border); box-shadow: var(--shadow); height: 100%;
}
.pillar-card--photo {
  padding: 0; overflow: hidden; display: flex; flex-direction: column;
}
.pillar-card--photo > img {
  width: 100%; aspect-ratio: 3 / 2; object-fit: cover;
}
.pillar-card-body { padding: 1.25rem 1.35rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.pillar-card .pillar-icon {
  width: 40px; height: 40px; border-radius: 50%; background: rgba(40, 92, 69, 0.12);
  color: var(--color-primary); display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 0.875rem; margin-bottom: 1rem;
}
.pillar-card h3 {
  font-family: var(--font-display); font-size: 1.0625rem; font-weight: 700;
  margin: 0 0 0.4rem; color: var(--color-primary-dark);
  text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.9375rem;
}
.pillar-tagline {
  font-size: 0.9375rem !important; font-weight: 600; color: var(--color-primary) !important;
  margin: 0 0 0.65rem !important; line-height: 1.4 !important;
}
.pillar-card-body > p:last-child {
  font-size: 0.875rem; color: var(--color-text-muted); line-height: 1.55; margin: 0;
  text-align: justify; text-justify: inter-word; hyphens: none;
}
.pillar-card p { font-size: 0.875rem; color: var(--color-text-muted); line-height: 1.55; margin: 0; }

.centre-card .centre-icon {
  display: inline-block; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--color-accent); margin-bottom: 0.5rem;
}

.knowledge-tile-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.knowledge-tile-grid--home { grid-template-columns: repeat(3, 1fr); }
.knowledge-tile {
  background: var(--color-surface); padding: 1.75rem 1.25rem; border-radius: var(--radius-lg);
  border: 1px solid var(--color-border); text-align: center; transition: transform var(--transition), box-shadow var(--transition);
  display: block; color: inherit; text-decoration: none;
}
.knowledge-tile:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); color: inherit; }
.knowledge-tile h3 { font-size: 0.9375rem; font-weight: 700; color: var(--color-primary-dark); margin-bottom: 0.35rem; }
.knowledge-tile p { font-size: 0.8125rem; color: var(--color-text-muted); margin: 0; }

.partner-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem; }
.partner-cat {
  padding: 1rem 1.25rem; background: var(--color-bg); border-radius: var(--radius);
  font-size: 0.875rem; font-weight: 600; color: var(--color-text); border-left: 3px solid var(--color-primary);
}

.impact-feature {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 2rem; align-items: stretch;
  background: var(--color-surface); border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow-lg); border: 1px solid var(--color-border);
}
.impact-feature > img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; }
.impact-feature-body { padding: 2rem; }

.impact-feature--livestock {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 2rem;
}
.impact-livestock-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.impact-livestock-row {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 1.75rem;
  align-items: center;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--color-border);
}
.impact-livestock-row:last-child { border-bottom: none; }
.impact-livestock-row img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
  border-radius: var(--radius);
}
.impact-livestock-copy h4 {
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-primary-dark);
  margin: 0 0 0.5rem;
}
.impact-livestock-copy p {
  margin: 0;
  font-size: 1.0625rem;
  color: var(--color-text-muted);
  line-height: 1.65;
}
.impact-feature-cta {
  margin: 1.5rem 0 0;
  padding-top: 0.25rem;
}
.impact-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
.impact-metric {
  text-align: center; padding: 1.25rem; background: var(--color-surface); border-radius: var(--radius);
  border: 1px solid var(--color-border);
}
.impact-metric strong { display: block; font-family: var(--font-display); font-size: 1.5rem; color: var(--color-accent); margin-bottom: 0.25rem; }
.impact-metric span { font-size: 0.8125rem; color: var(--color-text-muted); line-height: 1.4; }

.cta-hero {
  position: relative; padding: 5rem 0; text-align: center; color: #fff; overflow: hidden;
}
.cta-hero-bg { position: absolute; inset: 0; }
.cta-hero-bg img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.45); }
.cta-hero-overlay { position: absolute; inset: 0; background: rgba(31, 42, 36, 0.75); }
.cta-hero .container { position: relative; z-index: 2; max-width: 640px; }
.cta-hero h2 { font-family: var(--font-display); font-size: clamp(1.35rem, 3vw, 1.875rem); font-weight: 700; margin-bottom: 1rem; }
.cta-hero p { color: rgba(255,255,255,0.9); margin-bottom: 1.75rem; font-size: 1.0625rem; }

.brand-statement {
  text-align: center; padding: 2.5rem 1rem; background: var(--color-bg-alt);
  font-family: var(--font-display); font-size: clamp(1.125rem, 2.5vw, 1.375rem);
  font-weight: 700; color: var(--color-primary-dark); letter-spacing: 0.02em;
}

.section-dark { background: var(--color-primary-dark); }
.section-white { background: var(--color-surface); }

/* Reveal */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* Responsive */
@media (max-width: 1280px) {
  .nav-toggle { display: flex; z-index: 1101; position: relative; }
  .logo { gap: 0.45rem; min-width: 0; }
  .logo-img { width: 40px; height: 40px; }
  .logo-mark { font-size: 1.35rem; letter-spacing: 0.08em; }
  .logo-text,
  .site-header--home .logo-text,
  .site-header.scrolled .logo-text,
  .site-header.header-solid .logo-text,
  .site-header--home.scrolled .logo-text,
  .site-header--home.header-solid .logo-text,
  .site-header.nav-open .logo-text,
  .site-header--home.nav-open .logo-text {
    display: block;
    color: #f5d054;
    text-shadow: none;
    font-size: clamp(0.5rem, 2.65vw, 0.6875rem);
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.15;
    white-space: nowrap;
  }
  .main-nav { display: block; flex: none; }
  .site-header:not(.scrolled):not(.header-solid):not(.nav-open) {
    background: linear-gradient(180deg, rgba(13, 40, 24, 0.9) 0%, rgba(13, 40, 24, 0.5) 100%);
  }
  .site-header.scrolled,
  .site-header.header-solid,
  .site-header.nav-open { background: var(--color-primary-dark); }
  .site-header.scrolled .logo-mark,
  .site-header.header-solid .logo-mark { color: #f5d054; }
  .site-header.scrolled .nav-toggle span,
  .site-header.header-solid .nav-toggle span { background: #fff; }
  .main-nav {
    position: fixed; top: var(--header-height); left: 0; right: 0; bottom: 0;
    background: var(--color-primary-dark); padding: 0.75rem 1rem 2rem;
    transform: translateX(100%); opacity: 1; transition: transform var(--transition);
    pointer-events: none; overflow-y: auto; -webkit-overflow-scrolling: touch; z-index: 1100;
  }
  .main-nav.open { transform: translateX(0); pointer-events: auto; }
  .main-nav > ul { flex-direction: column; align-items: stretch; gap: 0; }
  .main-nav > ul > li > a,
  .main-nav .nav-dropdown-toggle {
    padding: 0.95rem 1rem; color: #fff !important; font-size: 1rem; width: 100%;
    justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,0.08);
    min-height: 48px;
  }
  .nav-cta { margin-left: 0 !important; margin-top: 0.75rem; justify-content: center !important; border: none !important; }
  .nav-submenu {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: none; background: rgba(0,0,0,0.2);
    border-radius: 0; padding: 0; max-height: 0; overflow: hidden;
    transition: max-height 0.35s ease;
  }
  .nav-dropdown.open .nav-submenu { max-height: min(70vh, 520px); padding: 0.25rem 0 0.5rem; overflow-y: auto; }
  .nav-dropdown .nav-dropdown-toggle span { flex: 1; text-align: left; }
  .nav-submenu a {
    padding: 0.85rem 1rem 0.85rem 1.75rem !important; color: rgba(255,255,255,0.88) !important;
    font-size: 0.9375rem !important; border-bottom: 1px solid rgba(255,255,255,0.05);
  }
  .nav-submenu a:hover { background: rgba(255,255,255,0.06) !important; color: #fff !important; }
  .nav-submenu a.active { color: #fff !important; font-weight: 700; background: rgba(255,255,255,0.08) !important; }
  .site-header:not(.scrolled):not(.header-solid):not(.nav-open) .logo-mark { color: #f5d054; }
}
@media (max-width: 1100px) {
  .card-grid-5, .card-grid-6 { grid-template-columns: repeat(2, 1fr); }
  .process-flow { grid-template-columns: repeat(3, 1fr); }
  .knowledge-tile-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .tagline-grid { grid-template-columns: repeat(2, 1fr); }
  .people-grid { grid-template-columns: repeat(2, 1fr); gap: 1.75rem; }
  .people-toolbar { flex-direction: column; align-items: stretch; }
  .people-sort { align-items: flex-start; }
  .people-photo-mosaic { grid-template-columns: repeat(2, 1fr); }
  .people-photo-mosaic .mosaic-a,
  .people-photo-mosaic .mosaic-b,
  .people-photo-mosaic .mosaic-c,
  .people-photo-mosaic .mosaic-d,
  .people-photo-mosaic .mosaic-e { grid-column: span 1; grid-row: span 1; }
  .card-grid-3, .split-grid, .contact-grid, .page-layout, .about-intro-split { grid-template-columns: 1fr; }
  .card-grid-2, .home-learn-grid { grid-template-columns: 1fr; }
  .home-learn-card img { aspect-ratio: 16 / 9; }
  .page-sidebar { position: static; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .priority-grid { grid-template-columns: 1fr; gap: 1.25rem; }
  .stat-grid, .pillar-grid, .partner-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .impact-feature:not(.impact-feature--livestock) { grid-template-columns: 1fr; }
  .impact-feature > img { min-height: 200px; max-height: 280px; }
  .impact-feature--livestock { padding: 1.25rem; }
  .impact-livestock-row {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1.25rem 0;
  }
  .impact-metrics { grid-template-columns: 1fr; }
  .hero-motto--primary { white-space: normal; text-wrap: balance; max-width: 14em; }
}

@media (max-width: 768px) {
  :root { --header-height: 64px; }
  .nav-toggle.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
  .nav-toggle.open span:nth-child(2) { opacity: 0; }
  .nav-toggle.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

  .hero { min-height: auto; align-items: flex-end; }
  .hero-minimal { min-height: min(72vh, 560px); min-height: min(72dvh, 560px); }
  .hero-content { padding: calc(var(--header-height) + 1.5rem) 0 2rem; }
  .hero-content--minimal { padding: calc(var(--header-height) + 2.5rem) 0 2rem; }
  .hero-motto--primary,
  .hero h1.hero-motto--primary {
    white-space: normal; text-wrap: balance; max-width: 12em;
    padding-inline: 0; font-size: 36px; margin-top: 0.5rem;
  }
  .home-photo-strip { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; padding-bottom: 2rem; }
  .home-photo-strip figcaption { font-size: 0.75rem; }
  .hero-panel {
    padding: 1.5rem 1.25rem; border-radius: var(--radius);
    background: rgba(13, 40, 24, 0.94);
  }
  .hero h1 { font-size: clamp(1.875rem, 8vw, 2.35rem); font-weight: 800; }
  .hero-tagline { font-size: 1rem; margin-bottom: 1.35rem; line-height: 1.6; }
  .hero-lead { font-size: 0.9375rem; line-height: 1.65; }
  .hero-lead-secondary { display: none; }
  .hero-actions, .btn-row, .centre-detail-soon-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn, .btn-row .btn, .centre-detail-soon-actions .btn,
  .cta-band .btn, .empty-state .btn { width: 100%; justify-content: center; margin-left: 0; margin-right: 0; }
  .proposition-bar { padding: 1rem; font-size: 0.9375rem; line-height: 1.55; }
  .page-hero { padding: calc(var(--header-height) + 2.25rem) 0 2.25rem; }
  .page-hero.has-image { padding: calc(var(--header-height) + 2.5rem) 0 2.5rem; }
  .page-hero h1 { font-size: clamp(1.65rem, 7vw, 2rem); }
  .page-hero-split {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .page-hero-split-media img {
    max-height: min(480px, 65vh);
  }
  .page-content { padding: 2.5rem 0 3rem; }
  .cta-band { padding: 2.75rem 1rem; }
  .cta-hero { padding: 3.25rem 0; }
  .centre-card-video video { max-height: 280px; }
  .form-row input, .form-row select, .form-row textarea { font-size: 16px; }

  .tagline-grid, .process-flow, .card-grid-2, .card-grid-3, .card-grid-5, .card-grid-6 { grid-template-columns: 1fr; }
  .stat-grid, .pillar-grid, .knowledge-tile-grid, .partner-cat-grid, .topic-list { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; text-align: center; }
  .section { padding: 3rem 0; }
  #why-savannas.section { padding-top: 0.5rem; padding-bottom: 1.25rem; }
  .hero-intro { padding-bottom: 0.5rem; }
  .hero-intro > .container { width: min(100% - 2rem, var(--container)); }
  #strategic-priorities.section { padding-top: 1.25rem; padding-bottom: 1rem; }
  .section-white:has(+ .section-alt),
  .section-alt:has(+ .section-white) { padding-bottom: 1.75rem; }
  .section-white + .section-alt,
  .section-alt + .section-white { padding-top: 1.5rem; }
  #who-we-are.section { padding-top: 1rem; padding-bottom: 1rem; }
  #who-we-are .btn { margin-top: 1rem; }
  #what-we-do.section { padding-top: 1.5rem; padding-bottom: 1.5rem; }
  #centres.section { padding-top: 1rem; padding-bottom: 1.5rem; }
  #approach.section-alt { padding-top: 1.5rem; padding-bottom: 2rem; }
  #academy.section { padding-top: 1.5rem; padding-bottom: 1.5rem; }
  #programmes.section { padding-top: 1.5rem; padding-bottom: 1.5rem; }
  #learn.section { padding-top: 1.5rem; padding-bottom: 1.75rem; }
  #impact.section { padding-top: 1.5rem; padding-bottom: 1.5rem; }
  #knowledge.section { padding-top: 1.5rem; }
  #knowledge.section-white:has(+ #partners.section-alt) { padding-bottom: 2rem; }
  #partners.section-alt { padding-top: 2rem; }
  .split-grid { gap: 1.75rem; }
  .people-grid { grid-template-columns: 1fr; }
  .people-banner-content { padding: 2rem 1.5rem; }
  .container { width: min(100% - 2rem, var(--container)); }
}
/* Reinforce justified body copy (layout wrappers must not reset alignment) */
#main .section-header p,
#main .page-content p,
#main .page-content li,
#main .split-grid > div p,
#main .split-grid > div li,
#main .content-body p,
#main .content-body li,
#main .health-video-feature p,
#main .food-video-feature p,
#main .climate-video-feature p,
#main .knowledge-video-feature p,
#main .org-intro,
#main .org-section .content-body p,
#main .empty-state p,
#main .centre-detail-soon p,
#main .priority-card-body p,
#main .pillar-card p,
#main .impact-feature-body p,
#main .impact-livestock-copy p,
#main .platform-card-body p,
#main .partner-card p,
#main .contact-grid p,
#main .info-box p,
#main .stat-card p,
#main .centre-card-body p,
#main .approach-pathway-header p,
#main .media-video-header p,
#main .media-video figcaption,
#main .media-video--portrait figcaption,
#main .split-media figcaption,
#main .people-card-body p,
#main .people-feature-body p,
#main .people-directory-intro p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}
#main .programme-card-home-body h3 {
  text-align: left;
}
#main .programme-card-home-body p:not(.programme-card-tagline) {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}
#main .programme-card-home-body .programme-card-tagline {
  text-align: center;
}

@media (max-width: 767px) {
  /* Body copy stays justified on small screens (matches desktop) */
  #main .section-header p,
  #main .section-label ~ p,
  #main .section-subtitle ~ p,
  #main .hero-intro p,
  #main .hero-intro-inner p,
  #main .page-content p,
  #main .page-content li,
  #main .split-grid > div p,
  #main .split-grid > div li,
  #main .content-body p,
  #main .content-body li,
  #main .health-video-feature p,
  #main .food-video-feature p,
  #main .priority-card-body p,
  #main .pillar-card p,
  #main .centre-card-body p,
  #main .split-media figcaption,
  #main .media-video-header p,
  #main .org-intro,
  #main .people-card-body p,
  #main .people-feature-body p,
  #main .centre-video-title,
  .content-body p,
  .content-body li,
  #main .content-body .lead {
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
  }
  .people-profile-page #main .people-profile-cv-section-body,
  .people-profile-page #main .people-profile-cv-section-body p,
  .people-profile-page #main .people-profile-cv-list li {
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
    -webkit-hyphens: auto;
    text-wrap: wrap;
  }
  #main .programme-card-home-body p:not(.programme-card-tagline) {
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
  }
  #main .programme-card-home-body .programme-card-tagline {
    text-align: center;
  }
  #main .people-feature--lead .people-feature-body p {
    text-align: center;
  }
  #main .impact-metric span {
    text-align: center;
  }
}

#main .knowledge-tile p,
#main .page-content .knowledge-tile p {
  text-align: center;
  text-justify: auto;
  hyphens: manual;
}

/* Proposed governance organogram */
.org-section {
  padding: 3.5rem 0 1rem;
  background: var(--color-bg);
}
.org-section h2 {
  font-family: var(--font-display);
  font-size: var(--font-yellow-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-accent);
  margin: 2.75rem 0 0.75rem;
}
.org-section h2:first-child { margin-top: 0; }
#main .org-intro {
  max-width: 68rem;
  margin: 0 0 1.75rem;
  color: var(--color-text-muted);
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}
.org {
  --org-line: rgba(40, 92, 69, 0.55);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.org-level, .org-lead-row, .org-pair {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  position: relative;
  gap: 0;
}
.org-lead-row,
.org-pair {
  flex-wrap: wrap;
  max-width: 100%;
}
.org-lead-row--institutional {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  width: 100%;
  gap: 0;
}
.org-lead-row--institutional > .org-card--lead {
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  z-index: 1;
  width: min(100%, 20rem);
  padding: 1.05rem 1.15rem 1.15rem;
  border-width: 2px;
  border-color: var(--color-primary);
  background: linear-gradient(180deg, #f2f8f4 0%, #e0ece4 100%);
  box-shadow: 0 12px 36px rgba(40, 92, 69, 0.2);
}
.org-lead-row--institutional > .org-card--lead h3 {
  font-size: 1.05rem;
  color: var(--color-primary);
}
.org-lead-row--institutional > .org-card--lead .org-person {
  font-size: 0.9rem;
}
.org-lead-row__right {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-self: start;
  width: max-content;
  max-width: 100%;
  min-width: 0;
}
.org-lead-row__right .org-link-dashed {
  flex: 0 0 clamp(1.25rem, 3vw, 2.5rem);
  width: clamp(1.25rem, 3vw, 2.5rem);
  min-width: 1rem;
  max-width: 2.5rem;
}
.org-lead-row__right .org-card--aside {
  width: min(100%, 15.5rem);
  flex: 0 0 auto;
}
.org-down {
  width: 2px;
  height: 1.65rem;
  background: var(--org-line);
}
.org-down--dashed {
  width: 0;
  background: none;
  border-left: 2px dashed var(--org-line);
}
.org-row {
  display: grid;
  width: 100%;
  position: relative;
  padding-top: 1.35rem;
  gap: 0.85rem;
}
.org-row--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.org-row--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.org-row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 52rem; }
.org-row::before {
  content: "";
  position: absolute;
  top: 0;
  border-top: 2px solid var(--org-line);
}
.org-row--4::before { left: 12.5%; right: 12.5%; }
.org-row--5::before { left: 10%; right: 10%; }
.org-row--2::before { left: 25%; right: 25%; }
.org-col { position: relative; min-width: 0; }
.org-stem {
  position: absolute;
  top: -1.35rem;
  left: calc(50% - 1px);
  width: 2px;
  height: 1.35rem;
  background: var(--org-line);
}
.org-card {
  background: var(--color-surface);
  border: 1px solid rgba(40, 92, 69, 0.18);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 0.85rem 0.9rem 0.95rem;
  text-align: center;
  height: 100%;
}
.org-card h3 {
  font-family: var(--font-display);
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-primary-dark);
  margin: 0 0 0.35rem;
}
#main .org-card p {
  margin: 0;
  text-align: center;
  text-justify: auto;
  hyphens: manual;
}
.org-duty {
  color: var(--color-text-muted);
  font-size: 0.78rem;
  line-height: 1.4;
}
.org-person {
  margin-top: 0.4rem;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.35;
}
.org-person a { color: var(--color-primary); text-decoration: none; }
.org-person a:hover { text-decoration: underline; }
.org-pending {
  margin-top: 0.35rem;
  color: var(--color-text-muted);
  font-size: 0.78rem;
  font-style: italic;
}
.org-card--board,
.org-card--lead {
  width: min(100%, 18rem);
  border-color: var(--color-primary);
}
.org-card--board {
  background: var(--color-primary);
  color: #fff;
}
.org-card--board h3 { color: #fff; margin: 0; }
.org-card--lead { background: #f4f8f5; }
.org-card--wide { width: min(100%, 28rem); }
.org-card--dashed { border-style: dashed; border-color: var(--color-sage); background: var(--color-bg-alt); box-shadow: none; }
.org-card--aside {
  width: min(16.5rem, 42vw);
  flex: 0 0 auto;
}
.org-link-dashed {
  flex: 0 0 clamp(2rem, 5vw, 4.5rem);
  width: clamp(2rem, 5vw, 4.5rem);
  height: 0;
  border: 0;
  border-top: 2px dashed var(--org-line);
  align-self: center;
  margin: 0;
}
.org-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  color: var(--color-text-muted);
  font-size: 0.8125rem;
}
#main .org-legend li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  text-align: start;
  text-justify: auto;
  hyphens: manual;
}
.org-swatch {
  width: 1.75rem;
  height: 0;
  border-top: 2px solid var(--color-primary);
}
.org-swatch--dashed { border-top-style: dashed; }

@media (max-width: 1100px) {
  .org-card--aside {
    width: min(100%, 28rem);
  }
  .org-lead-row, .org-pair { flex-direction: column; align-items: center; }
  .org-lead-row--institutional {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
  }
  .org-lead-row--institutional > .org-card--lead {
    grid-column: auto;
    grid-row: auto;
    width: min(100%, 20rem);
  }
  .org-lead-row__right {
    grid-column: auto;
    grid-row: auto;
    flex-direction: column;
    width: 100%;
    max-width: min(100%, 28rem);
    justify-self: center;
  }
  .org-lead-row__right .org-link-dashed {
    flex: 0 0 auto;
    width: 0;
    min-width: 0;
    max-width: none;
    height: clamp(1.25rem, 4vw, 2rem);
    border-top: 0;
    border-left: 2px dashed var(--org-line);
  }
  .org-lead-row__right .org-card--aside {
    width: min(100%, 18rem);
  }
  .org-lead-row .org-link-dashed,
  .org-pair .org-link-dashed {
    flex: 0 0 auto;
    width: 0;
    height: clamp(1.25rem, 4vw, 2rem);
    border-top: 0;
    border-left: 2px dashed var(--org-line);
  }
  .org-row--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .org-row--5::before { display: none; }
  .org-row--5 .org-stem { display: none; }
  .org-row--5 { padding-top: 0; }
}

@media (max-width: 720px) {
  .org-section { padding-top: 2.25rem; }
  .org-row,
  .org-row--4,
  .org-row--2,
  .org-row--5 { grid-template-columns: 1fr; padding-top: 0; }
  .org-row::before, .org-stem, .org-down, .org-link-dashed { display: none; }
  .org-card--board, .org-card--lead, .org-card--wide, .org-card--aside { width: 100%; }
  .org-card { text-align: center; }
  #main .org-card p { text-align: center; }
  .org + .org-legend { margin-top: 1rem; }
}
