/* AXIS Renew Africa — shared design tokens, components and responsive layouts. */
:root {
  --navy:#102e4d;
  --navy-deep:#0a2036;
  --ink:#233f5b;
  --muted:#596e80;
  --cyan:#19ace3;
  --cyan-light:#6ad0f4;
  --pale:#edf4f8;
  --line:#d8e4ed;
  --white:#fff;
  --container:1160px;
  --header:92px;
  --space:clamp(64px,7.5vw,110px);
}
*,*::before,*::after {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header) + 20px);
}
body {
  margin:0;
  color:var(--ink);
  background:var(--white);
  font-family:Arial,Helvetica,sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p,ul,ol,dl {
  margin:0;
}
h1,h2,h3,h4 {
  color:inherit;
  line-height:1.15;
  letter-spacing:-.035em;
  text-wrap:balance;
}
h1 {
  font-size:clamp(38px,4.25vw,62px);
  font-weight:700;
  max-width:720px;
}
h2 {
  font-size:clamp(30px,3.1vw,44px);
  max-width:840px;
}
h3 {
  font-size:20px;
  letter-spacing:-.025em;
}
h4 {
  font-size:14px;
}
p {
  color:var(--muted);
}
a {
  color:inherit;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}
button,input,textarea,select {
  font:inherit;
}
button,a,input,textarea,select,summary {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
button:disabled {
  cursor:default;
}
img,svg {
  max-width:100%;
  height:auto;
  display:block;
}
button {
  color:inherit;
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid var(--cyan);
  outline-offset:5px;
}
input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:2px solid var(--cyan);
  outline-offset:2px;
}
::selection {
  background:#bceaff;
  color:var(--navy);
}
.container {
  width:min(var(--container),calc(100% - 96px));
  margin-inline:auto;
}
.section {
  padding-block:var(--space);
}
.section-pale {
  background:var(--pale);
}
.section-dark {
  background:var(--navy);
  color:white;
}
.section-dark p {
  color:#bfd0df;
}
.eyebrow {
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:#48748f;
  line-height:1.6;
  margin-bottom:14px;
}
.section-dark .eyebrow,.hero .eyebrow {
  color:var(--cyan-light);
}
.section-heading h2 {
  margin-bottom:22px;
}
.section-intro {
  max-width:800px;
  font-size:17px;
  line-height:1.75;
}
.section-heading {
  margin-bottom:35px;
}
.skip-link {
  position:fixed;
  top:12px;
  left:16px;
  z-index:100;
  background:white;
  color:var(--navy);
  padding:10px 20px;
  transform:translateY(-160%);
}
.skip-link:focus {
  transform:translateY(0);
}
/* Navigation */
.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid #e8eff4;
}
.header-inner {
  min-height:var(--header);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
}
.brand {
  display:inline-block;
  width:150px;
  flex-shrink:0;
}
.brand img {
  width:100%;
  mix-blend-mode:multiply;
}
.site-nav {
  display:flex;
  align-items:center;
  gap:26px;
}
.site-nav>a {
  font-size:12px;
  font-weight:600;
  text-decoration:none;
  position:relative;
  padding-block:16px;
  color:var(--ink);
  white-space:nowrap;
}
.site-nav>a::after {
  position:absolute;
  content:"";
  bottom:9px;
  left:0;
  right:100%;
  height:2px;
  background:var(--cyan);
  transition:right .2s;
}
.site-nav>a:hover::after,.site-nav>a[aria-current="location"]::after {
  right:0;
}
.languages {
  display:flex;
  align-items:center;
  gap:3px;
  border-left:1px solid var(--line);
  padding-left:15px;
}
.languages a {
  font-size:11px;
  text-decoration:none;
  padding:5px 7px;
  min-width:31px;
  text-align:center;
}
.languages [aria-current="page"] {
  color:white;
  background:var(--navy);
  border-radius:3px;
}
.menu-toggle {
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  align-items:center;
  width:46px;
  height:46px;
  background:none;
  border:1px solid var(--line);
  border-radius:3px;
}
.menu-toggle span {
  display:block;
  width:20px;
  height:2px;
  background:var(--navy);
  transition:transform .2s,opacity .2s;
}
/* Hero and shared buttons */
.hero {
  color:white;
  background:var(--navy);
  padding-top:clamp(48px,5.5vw,80px);
}
.hero-grid {
  display:grid;
  grid-template-columns:1.13fr 1fr;
  align-items:center;
  gap:55px;
  min-height:510px;
}
.hero-copy {
  padding-block:24px 45px;
}
.hero .eyebrow {
  font-size:9px;
  letter-spacing:.16em;
  max-width:100%;
  margin-bottom:25px;
}
.hero-description {
  font-size:16px;
  line-height:1.75;
  color:#c3d1df;
  max-width:570px;
  margin-top:28px;
}
.button-group {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:32px;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  padding:14px 19px;
  min-height:48px;
  border:1px solid transparent;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  line-height:1.4;
  transition:background .2s,transform .2s;
}
.button:hover {
  transform:translateY(-2px);
}
.button-primary {
  background:var(--cyan);
  color:var(--navy-deep);
}
.button-primary:hover {
  background:#5fcaf2;
}
.button-outline {
  color:white;
  border-color:#89a1b7;
  background:transparent;
}
.button-outline:hover {
  background:#244565;
}
.button-navy {
  background:var(--navy);
  color:white;
}
.button-navy:hover {
  background:#254d72;
}
.hero-art {
  position:relative;
  align-self:stretch;
  display:flex;
  align-items:stretch;
  min-height:490px;
  margin-bottom:50px;
}
.hero-art img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.art-caption {
  position:absolute;
  bottom:20px;
  right:22px;
  font-size:8px;
  color:#7896af;
  letter-spacing:.25em;
}
.audiences {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  border-top:1px solid #22a5d5;
  padding-block:26px 32px;
}
.audiences h2 {
  font-size:13px;
  letter-spacing:0;
  margin-bottom:10px;
}
.audiences p {
  font-size:12px;
  line-height:1.65;
  color:#bfccda;
}
/* Reusable cards, callouts and step sequences */
.callout {
  border-left:3px solid var(--cyan);
  padding:15px 22px;
  background:white;
}
.callout h3 {
  font-size:15px;
  margin-bottom:7px;
}
.callout p {
  font-size:14px;
  line-height:1.65;
}
.mission {
  max-width:900px;
  background:transparent;
  padding-block:0;
  color:var(--ink);
  font-size:18px;
  font-weight:600;
  line-height:1.6;
  margin-top:30px;
}
.team-block {
  margin-top:50px;
  max-width:960px;
  padding-top:35px;
  border-top:1px solid var(--line);
}
.team-block h3 {
  margin-bottom:15px;
  font-size:23px;
}
.team-block>p:not(.eyebrow) {
  font-size:15px;
}
.accent-list {
  padding-left:18px;
  margin-top:15px;
  color:var(--muted);
  font-size:14px;
}
.accent-list li {
  padding-left:3px;
  margin-block:7px;
}
.accent-list li::marker {
  color:var(--cyan);
}
.structure {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:34px;
  align-items:center;
  margin-top:42px;
}
.structure-node {
  padding:22px 18px;
  text-align:center;
  background:var(--pale);
  position:relative;
  min-height:116px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.structure-node .eyebrow {
  font-size:9px;
  margin-bottom:9px;
}
.structure-node h3 {
  font-size:15px;
  letter-spacing:0;
}
.structure-node p:not(.eyebrow) {
  font-size:12px;
  margin-top:4px;
}
.structure-node+.structure-node::before {
  content:"";
  position:absolute;
  left:-34px;
  top:50%;
  width:34px;
  border-top:1px solid #9bb5c9;
}
.node-0 {
  background:var(--navy);
  color:white;
}
.node-0 .eyebrow,.node-0 p {
  color:#b6ccdd;
}
.node-1 {
  border:1px solid var(--cyan);
  background:white;
}
.three-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.card {
  padding:25px;
  background:white;
  min-width:0;
}
.card h3 {
  font-size:20px;
  margin-bottom:13px;
}
.card p {
  font-size:14px;
  line-height:1.75;
}
.card-number {
  display:block;
  font-size:11px;
  letter-spacing:.14em;
  color:#63849d;
  margin-bottom:25px;
}
.solution-grid {
  display:grid;
  grid-template-columns:1.55fr 1fr 1fr;
  gap:22px;
  margin-top:28px;
}
.solution-card {
  border-top:3px solid var(--navy);
  padding:26px 24px 30px;
}
.solution-card .accent-list {
  font-size:13px;
}
.metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  background:var(--navy-deep);
  color:white;
  margin-block:44px 32px;
  padding:24px 28px;
}
.metrics dt {
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.15em;
  color:var(--cyan-light);
  margin-bottom:8px;
}
.metrics dd {
  font-size:15px;
  line-height:1.5;
  margin:0;
  font-weight:600;
}
.steps {
  list-style:none;
  padding:0;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  margin-block:30px 32px;
}
.steps li {
  padding:19px 20px 10px 0;
  position:relative;
  border-top:2px solid var(--ink);
  min-width:0;
}
.steps li+li {
  padding-left:20px;
  border-left:1px solid var(--line);
}
.step-number {
  display:block;
  font-size:13px;
  line-height:1;
  color:#167bab;
  font-weight:700;
  letter-spacing:.08em;
  margin-bottom:16px;
}
.steps h3 {
  font-size:15px;
  line-height:1.3;
  margin-bottom:9px;
  letter-spacing:-.015em;
}
.steps p {
  font-size:12px;
  line-height:1.7;
}
.certificate-steps li {
  border-top-color:#218ac0;
}
.certificate-steps .step-number {
  position:relative;
  background:white;
  border:1px solid #218ac0;
  padding:5px;
  display:inline-block;
  margin-top:-33px;
  font-size:9px;
  vertical-align:top;
}
.certificate-steps h3 {
  margin-top:10px;
}
.disclosure {
  background:white;
  margin-top:22px;
  padding:0 24px;
}
.disclosure summary {
  font-size:15px;
  font-weight:700;
  padding:21px 24px 21px 0;
  cursor:pointer;
  list-style:none;
  position:relative;
  line-height:1.5;
}
.disclosure summary::-webkit-details-marker {
  display:none;
}
.disclosure summary::after {
  content:"+";
  position:absolute;
  right:0;
  top:18px;
  color:#157bac;
  font-size:22px;
  font-weight:400;
}
.disclosure[open] summary::after {
  content:"−";
}
.disclosure>.accent-list {
  margin-top:0;
  padding-bottom:20px;
}
.governance-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px 40px;
  padding-block:5px 27px;
}
.governance-card {
  padding:0;
}
.governance-card h3 {
  font-size:14px;
  margin-bottom:8px;
}
.governance-card p {
  font-size:13px;
  line-height:1.8;
}
.market-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.market-card {
  border:1px solid #34516d;
  padding:30px 27px;
}
.market-card .eyebrow {
  font-size:9px;
  color:#b9cddd;
  display:flex;
  gap:8px;
  align-items:center;
  margin-bottom:15px;
}
.market-card h3 {
  font-size:24px;
  margin-bottom:16px;
}
.market-card>p:last-child {
  font-size:14px;
}
.status-dot {
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--cyan);
  flex-shrink:0;
}
.dot-1 {
  background:#92abc1;
}
.dot-2 {
  background:#53718b;
}
.principle-grid {
  margin-top:36px;
}
.principle-card {
  border:1px solid var(--line);
  padding:25px 23px;
}
.principle-card h3 {
  font-size:15px;
}
.principle-card p {
  font-size:13px;
}
.acceleration {
  margin-top:58px;
}
.acceleration>h3 {
  font-size:22px;
  max-width:750px;
}
.levers {
  padding:0;
  list-style:none;
  margin-top:25px;
}
.levers li {
  display:grid;
  grid-template-columns:45px 250px 1fr;
  gap:18px;
  padding:21px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.levers li>span {
  font-size:14px;
  font-weight:700;
  color:#167bab;
}
.levers h4 {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.07em;
  line-height:1.6;
}
.levers p {
  font-size:14px;
  line-height:1.65;
}
.value-statement {
  font-size:19px;
  font-weight:600;
  color:var(--ink);
  line-height:1.65;
  margin-top:45px;
  padding-block:0;
  max-width:1000px;
}
.framework-label {
  font-size:13px;
  margin-top:25px;
}
.frameworks {
  display:flex;
  list-style:none;
  padding:0;
  flex-wrap:wrap;
  gap:12px;
  margin-top:15px;
}
.frameworks li {
  padding:9px 16px;
  border:1px solid #c7d8e5;
  color:#355875;
  font-size:14px;
  font-weight:700;
}
.role {
  max-width:900px;
  margin-top:30px;
}
.impact-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:65px;
  align-items:center;
}
.impact .section-heading {
  margin-bottom:0;
}
.impact h2 {
  font-size:clamp(28px,2.8vw,39px);
}
.impact-art img {
  width:100%;
}
/* Contact and footer */
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:65px;
  align-items:start;
}
.contact h2 {
  font-size:clamp(30px,3vw,42px);
}
.email-card {
  position:relative;
  border:1px solid var(--line);
  padding:25px 80px 25px 23px;
  margin-top:30px;
  max-width:480px;
}
.email-card .eyebrow {
  font-size:9px;
  margin-bottom:7px;
}
.email-card h3 {
  font-size:16px;
  margin-bottom:8px;
}
.email-card>a {
  font-size:14px;
  color:#127caa;
  overflow-wrap:anywhere;
}
.copy-button {
  position:absolute;
  right:16px;
  top:22px;
  background:white;
  color:var(--muted);
  font-size:11px;
  padding:8px 10px;
  border:1px solid var(--line);
  min-height:36px;
}
.contact-form {
  padding:30px;
  background:var(--pale);
}
.form-required {
  font-size:11px;
  margin-bottom:20px;
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.form-field {
  min-width:0;
}
.form-field label {
  font-size:12px;
  display:block;
  font-weight:600;
  margin-bottom:7px;
}
.form-field label span {
  color:#157cae;
}
.form-field input,.form-field select,.form-field textarea {
  width:100%;
  max-width:100%;
  min-height:44px;
  border:1px solid #cadbe7;
  border-radius:0;
  background:white;
  color:var(--ink);
  padding:10px 11px;
  font-size:15px;
  line-height:1.4;
}
.form-field textarea {
  resize:vertical;
  min-height:140px;
}
.field-full {
  grid-column:1/-1;
}
.contact-form>.button {
  margin-top:22px;
}
.form-note {
  font-size:11px;
  line-height:1.8;
  margin-top:16px;
}
.form-note a {
  display:inline-block;
  color:#167ba6;
}
.form-status {
  font-size:13px;
  line-height:1.7;
  margin-top:12px;
  color:var(--ink);
}
.site-footer {
  background:var(--navy-deep);
  color:white;
  padding-block:40px 24px;
}
.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  margin-bottom:24px;
}
.footer-brand {
  width:155px;
  background:white;
  padding:7px 8px;
}
.site-footer p {
  font-size:11px;
  line-height:1.9;
  color:#aabed1;
  max-width:900px;
}
.back-top {
  font-size:11px;
  color:#bccfdf;
  text-decoration:none;
}
.back-top span {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  border:1px solid #39556d;
  width:32px;
  height:32px;
  margin-left:10px;
}
.footer-bottom {
  border-top:1px solid #2b435a;
  margin-top:25px;
  padding-top:19px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.footer-links {
  display:flex;
  flex-wrap:wrap;
  gap:22px;
}
.footer-links a {
  font-size:11px;
  color:#b7cadb;
  text-decoration:none;
}
.footer-links a:hover {
  text-decoration:underline;
}
.info-dialog {
  max-width:min(600px,calc(100% - 36px));
  border:0;
  padding:32px;
  color:var(--ink);
  box-shadow:0 20px 80px #0004;
}
.info-dialog::backdrop {
  background:#091c30b8;
}
.dialog-heading {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:20px;
  margin-bottom:22px;
}
.dialog-heading h2 {
  font-size:28px;
}
.dialog-close {
  width:38px;
  height:38px;
  background:var(--pale);
  border:0;
  font-size:26px;
  line-height:1;
}
.info-dialog>p {
  font-size:15px;
  line-height:1.8;
}
.info-dialog>a {
  display:inline-block;
  margin-top:20px;
  color:#127ba6;
  font-size:14px;
}
/* Tablet */
@media(min-width:1600px) {
  :root {
    --container:1240px;
  }
  .hero-grid {
    min-height:560px;
  }
  .hero-art {
    min-height:540px;
  }
}
@media(max-width:1100px) {
  .site-nav {
    gap:17px;
  }
  .container {
    width:calc(100% - 64px);
  }
  .brand {
    width:135px;
  }
  .hero-grid {
    gap:32px;
  }
  .hero-art {
    min-height:440px;
  }
  .hero-grid {
    min-height:470px;
  }
  .button {
    font-size:11px;
    padding:13px 15px;
  }
  .contact-grid,.impact-grid {
    gap:38px;
  }
  .levers li {
    grid-template-columns:35px 210px 1fr;
  }
  .solution-grid {
    gap:15px;
  }
  .solution-card {
    padding:23px 19px;
  }
  .site-nav>a {
    font-size:11px;
  }
}
@media(max-width:900px) {
  :root {
    --header:80px;
  }
  .header-inner {
    gap:20px;
  }
  .site-nav {
    gap:13px;
  }
  .site-nav>a {
    font-size:10px;
  }
  .languages {
    padding-left:9px;
  }
  .brand {
    width:116px;
  }
  .hero-grid {
    grid-template-columns:1.15fr .85fr;
    gap:28px;
    min-height:430px;
  }
  .hero-art {
    min-height:400px;
    margin-bottom:35px;
  }
  .hero-description {
    font-size:15px;
  }
  .hero h1 {
    font-size:42px;
  }
  .audiences {
    gap:20px;
  }
  .solution-grid {
    grid-template-columns:1fr 1fr;
  }
  .solution-card:first-child {
    grid-column:1/-1;
  }
  .solution-card:first-child .accent-list {
    columns:2;
    column-gap:35px;
  }
  .steps li,.steps li+li {
    padding-right:12px;
    padding-left:12px;
  }
  .steps li:first-child {
    padding-left:0;
  }
  .steps h3 {
    font-size:13px;
  }
  .steps p {
    font-size:11px;
  }
  .market-card {
    padding:25px 20px;
  }
  .market-card h3 {
    font-size:21px;
  }
  .contact-grid {
    grid-template-columns:1fr 1.1fr;
    gap:28px;
  }
  .contact-form {
    padding:23px;
  }
  .email-card {
    padding:23px 20px;
  }
  .copy-button {
    position:static;
    margin-top:15px;
    display:block;
  }
  .contact h2 {
    font-size:32px;
  }
  .impact-grid {
    gap:30px;
  }
  .structure {
    gap:22px;
  }
  .structure-node+.structure-node::before {
    left:-22px;
    width:22px;
  }
}
/* Mobile navigation uses progressive enhancement: links remain available without JavaScript. */
@media(max-width:760px) {
  :root {
    --header:76px;
    --space:64px;
  }
  .container {
    width:calc(100% - 40px);
  }
  .header-inner {
    flex-wrap:wrap;
    gap:0;
    position:relative;
  }
  .brand {
    width:127px;
    margin-block:13px;
  }
  .site-nav {
    width:100%;
    padding-block:8px 20px;
    flex-wrap:wrap;
    gap:8px 20px;
  }
  .site-nav>a {
    font-size:12px;
    padding:8px 0;
  }
  .languages {
    margin-left:auto;
  }
  .js .menu-toggle {
    display:flex;
  }
  .js .site-nav {
    display:none;
  }
  .js .nav-open .site-nav {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    padding:10px 0 22px;
    gap:0;
  }
  .js .nav-open .site-nav>a {
    padding:12px 4px;
    border-top:1px solid var(--line);
    font-size:14px;
    white-space:normal;
  }
  .js .nav-open .languages {
    border-left:0;
    padding:12px 0 0;
    margin-left:0;
    align-self:start;
    gap:6px;
  }
  .js .nav-open .languages a {
    padding:9px 12px;
    min-width:44px;
  }
  .js .site-nav>a::after {
    display:none;
  }
  .nav-open .menu-toggle span:nth-child(1) {
    transform:translateY(7px) rotate(45deg);
  }
  .nav-open .menu-toggle span:nth-child(2) {
    opacity:0;
  }
  .nav-open .menu-toggle span:nth-child(3) {
    transform:translateY(-7px) rotate(-45deg);
  }
  .hero {
    padding-top:35px;
  }
  .hero-grid {
    grid-template-columns:1fr;
    gap:28px;
  }
  .hero-copy {
    padding-block:16px 0;
  }
  .hero h1 {
    font-size:clamp(37px,7.2vw,53px);
    max-width:610px;
  }
  .hero .eyebrow {
    font-size:9px;
    margin-bottom:22px;
    max-width:340px;
  }
  .hero-description {
    margin-top:22px;
    max-width:600px;
  }
  .hero-art {
    min-height:0;
    height:240px;
    margin:0 0 30px;
  }
  .hero-art img {
    object-position:center 57%;
  }
  .art-caption {
    bottom:14px;
    font-size:8px;
  }
  .button-group {
    margin-top:26px;
    gap:10px;
  }
  .button {
    font-size:12px;
    padding:13px 16px;
  }
  .audiences {
    grid-template-columns:1fr 1fr;
    gap:25px 24px;
    padding-top:25px;
  }
  .audiences h2 {
    font-size:13px;
  }
  .audiences p {
    font-size:12px;
  }
  .section-heading {
    margin-bottom:28px;
  }
  .section-heading h2 {
    margin-bottom:18px;
  }
  .section-intro {
    font-size:15px;
    line-height:1.8;
  }
  h2 {
    font-size:32px;
  }
  .eyebrow {
    font-size:9px;
  }
  .mission {
    font-size:16px;
    line-height:1.75;
    padding-left:18px;
  }
  .team-block {
    margin-top:35px;
    padding-top:28px;
  }
  .team-block h3 {
    font-size:21px;
  }
  .team-block>p:not(.eyebrow) {
    font-size:14px;
  }
  .structure {
    grid-template-columns:1fr;
    max-width:440px;
    margin-inline:auto;
    gap:22px;
    margin-top:32px;
  }
  .structure-node {
    min-height:102px;
  }
  .structure-node+.structure-node::before {
    left:50%;
    top:-23px;
    width:0;
    height:22px;
    border:0;
    border-left:1px solid #9bb5c9;
  }
  .solution-grid {
    grid-template-columns:1fr;
    gap:20px;
  }
  .solution-card:first-child {
    grid-column:auto;
  }
  .solution-card:first-child .accent-list {
    columns:auto;
  }
  .solution-card {
    padding:25px;
  }
  .card h3 {
    font-size:21px;
  }
  .card-number {
    margin-bottom:18px;
  }
  .metrics {
    grid-template-columns:1fr 1fr;
    padding:24px;
    gap:25px;
    margin-block:30px;
  }
  .metrics dt {
    font-size:9px;
  }
  .metrics dd {
    font-size:14px;
  }
  .steps {
    grid-template-columns:1fr;
    margin-block:30px;
  }
  .steps li,.steps li+li {
    border:0;
    border-left:1px solid #9eb8cd;
    margin-left:13px;
    padding:0 0 25px 30px;
    display:grid;
    grid-template-columns:1fr;
    gap:0;
  }
  .steps li:last-child {
    padding-bottom:0;
    border-left-color:transparent;
  }
  .steps .step-number {
    position:absolute;
    left:-14px;
    top:0;
    background:white;
    border:1px solid #8ab6d0;
    min-width:27px;
    height:27px;
    display:grid;
    place-items:center;
    font-size:10px;
    margin:0;
    padding:0;
  }
  .steps h3 {
    font-size:16px;
    margin-bottom:8px;
    line-height:1.5;
  }
  .steps p {
    font-size:13px;
    max-width:490px;
  }
  .certificate-steps .step-number {
    background:var(--pale);
  }
  .callout {
    padding:15px 18px;
  }
  .mission,.value-statement {
    padding-block:0;
  }
  .callout p {
    font-size:13px;
  }
  .disclosure {
    padding:0 18px;
  }
  .disclosure summary {
    font-size:14px;
  }
  .governance-grid {
    grid-template-columns:1fr;
    gap:25px;
  }
  .governance-card h3 {
    font-size:15px;
  }
  .market-grid,.three-grid {
    grid-template-columns:1fr;
    gap:18px;
  }
  .market-card {
    padding:27px;
  }
  .market-card h3 {
    font-size:23px;
  }
  .market-card>p:last-child {
    font-size:14px;
  }
  .principle-card {
    padding:23px;
  }
  .principle-card h3 {
    font-size:17px;
  }
  .acceleration {
    margin-top:40px;
  }
  .acceleration>h3 {
    font-size:22px;
  }
  .levers li {
    grid-template-columns:30px 1fr;
    gap:7px 13px;
    padding-block:20px;
  }
  .levers h4 {
    font-size:12px;
    align-self:center;
  }
  .levers p {
    grid-column:2;
    font-size:13px;
  }
  .value-statement {
    font-size:17px;
    margin-top:32px;
    line-height:1.7;
  }
  .frameworks {
    gap:9px;
  }
  .frameworks li {
    font-size:13px;
    padding:8px 12px;
  }
  .impact-grid {
    grid-template-columns:1fr;
    gap:32px;
  }
  .impact h2 {
    font-size:32px;
  }
  .impact-art {
    height:210px;
    overflow:hidden;
  }
  .impact-art img {
    height:100%;
    object-fit:cover;
    object-position:center 70%;
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:32px;
  }
  .email-card {
    max-width:none;
    padding:23px 82px 23px 20px;
  }
  .copy-button {
    position:absolute;
    top:22px;
    right:13px;
    margin:0;
  }
  .contact-form {
    padding:25px 22px;
  }
  .form-grid {
    gap:18px 14px;
  }
  .footer-top {
    align-items:center;
  }
  .footer-brand {
    width:140px;
  }
  .footer-bottom {
    flex-direction:column;
    align-items:start;
    gap:17px;
  }
  .footer-links {
    gap:14px 20px;
  }
  .site-footer {
    padding-block:33px 25px;
  }
  .back-top {
    font-size:10px;
  }
  .info-dialog {
    padding:25px;
  }
  .dialog-heading h2 {
    font-size:25px;
  }
  .info-dialog>p {
    font-size:14px;
  }
}
@media(max-width:380px) {
  .container {
    width:calc(100% - 32px);
  }
  .hero h1 {
    font-size:34px;
  }
  .button-group {
    flex-direction:column;
    align-items:stretch;
  }
  .button {
    width:100%;
  }
  .hero-art {
    height:200px;
  }
  .audiences {
    gap:22px 18px;
  }
  .form-grid {
    grid-template-columns:1fr;
  }
  .form-field {
    grid-column:1/-1;
  }
  .contact-form {
    padding:22px 18px;
  }
  .email-card {
    padding-right:20px;
  }
  .copy-button {
    position:static;
    margin-top:14px;
  }
  .footer-top {
    align-items:flex-start;
  }
  .back-top {
    max-width:100px;
  }
  .back-top span {
    margin:8px 0 0;
    display:flex;
  }
  .metrics {
    padding:20px;
    gap:22px 18px;
  }
  h2,.contact h2,.impact h2 {
    font-size:29px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
  .button:hover {
    transform:none;
  }
}
@media print {
  .site-header {
    position:static;
  }
  .site-nav,.menu-toggle,.hero-art,.impact-art,.button-group,.contact-form,.back-top,.copy-button {
    display:none!important;
  }
  .container {
    width:100%;
  }
  .section {
    padding-block:25px;
  }
  .hero,.section-dark,.site-footer {
    background:white;
    color:#102e4d;
  }
  .hero p,.section-dark p,.site-footer p {
    color:#334b60;
  }
  .hero-grid,.impact-grid,.contact-grid {
    display:block;
    min-height:0;
  }
  .hero-copy {
    padding:0 0 20px;
  }
  .hero {
    padding-top:20px;
  }
  .card,.market-card,.structure-node {
    break-inside:avoid;
  }
  .metrics {
    background:#edf4f8;
    color:#102e4d;
  }
  .site-footer {
    padding:20px 0;
  }
  a {
    text-decoration:none;
  }
  .footer-links,.info-dialog {
    display:none;
  }
  h1 {
    font-size:38px;
  }
  h2 {
    font-size:27px;
  }
}

/* Multi-page navigation and compact shared header. */
:root { --header: 70px; }
.header-inner { min-height: calc(var(--header) - 1px); }
.site-header .brand { width: 120px; margin-block: 9px; }
.site-nav > a[aria-current="page"]::after { right: 0; }
.site-nav > a[aria-current="page"] { color: #137ca8; }
.mini-hero { position: relative; overflow: hidden; background: var(--navy); color: white; }
.mini-hero::after { content: ""; position: absolute; width: 38%; right: 0; top: 0; bottom: 0; background: url('/assets/images/energy-flow.svg') center / cover no-repeat; opacity: .3; pointer-events: none; }
.mini-hero-inner { position: relative; z-index: 1; padding-block: 24px 52px; }
.breadcrumbs { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; color: #bed0df; font-size: 11px; margin-bottom: 34px; }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }
.mini-hero .eyebrow { color: var(--cyan-light); font-size: 9px; margin-bottom: 12px; }
.mini-hero h1 { font-size: clamp(34px, 3.5vw, 48px); max-width: 850px; }
.mini-hero-description { color: #bed0df; margin-top: 20px; font-size: 15px; line-height: 1.75; max-width: 830px; }
.overview-intro { max-width: 880px; font-size: 16px; margin-top: 24px; }
.overview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin-top: 40px; }
.overview-card { display: flex; flex-direction: column; padding: 26px 23px; text-decoration: none; border: 1px solid var(--line); border-top: 3px solid var(--navy); transition: border-color .2s, background .2s; }
.overview-card:hover { border-color: var(--cyan); background: var(--pale); }
.overview-card h3 { font-size: 20px; margin-bottom: 14px; }
.overview-card p { font-size: 14px; line-height: 1.7; margin-bottom: 25px; }
.overview-link { margin-top: auto; font-size: 12px; font-weight: 700; color: #137ca8; display: flex; justify-content: space-between; gap: 12px; }
.contact-cta { padding-block: 48px; background: var(--pale); }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.contact-cta .eyebrow { margin-bottom: 10px; }
.contact-cta h2 { font-size: clamp(25px, 2.5vw, 34px); }
.footer-navigation { display: flex; flex-wrap: wrap; gap: 14px 25px; margin-top: 25px; }
.footer-navigation a { font-size: 12px; color: #bed0df; text-decoration: none; }
.footer-navigation a:hover { text-decoration: underline; }
@media (max-width: 900px) {
  .overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  :root { --header: 64px; }
  .site-header .brand { width: 108px; margin-block: 9px; }
  .menu-toggle { width: 40px; height: 40px; }
  .mini-hero-inner { padding-block: 20px 36px; }
  .breadcrumbs { margin-bottom: 26px; font-size: 10px; }
  .mini-hero h1 { font-size: 34px; }
  .mini-hero-description { font-size: 14px; margin-top: 17px; }
  .mini-hero::after { width: 55%; opacity: .16; }
  .overview-grid { gap: 18px; margin-top: 30px; }
  .overview-card { padding: 23px 20px; }
  .overview-card h3 { font-size: 19px; }
  .overview-intro { font-size: 15px; }
  .cta-inner { flex-direction: column; align-items: start; gap: 23px; }
  .contact-cta { padding-block: 36px; }
}
@media (max-width: 480px) {
  .overview-grid { grid-template-columns: 1fr; }
}
@media print {
  .mini-hero { background: white; color: var(--navy); }
  .mini-hero::after, .breadcrumbs, .contact-cta { display: none; }
  .mini-hero-description { color: var(--ink); }
  .mini-hero-inner { padding-block: 20px; }
}

/* Market cards remain dark while the page content stays distinct from its mini hero. */
.section-markets .market-card { background: var(--navy); color: white; }
.section-markets .market-card > p:last-child { color: #bed0df; }

/* Server-side contact protection: honeypot remains outside the accessible form. */
.contact-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.captcha-field { margin-top:20px; max-width:290px; }
.captcha-field input { max-width:100px; }
.cf-turnstile { margin-top:20px; }
.contact-feedback { padding:14px; margin-bottom:18px; font-size:14px; border-left:3px solid var(--cyan); background:white; color:var(--ink); }
.feedback-error { border-color:#a43131; }
