/* Homepage palette: forest anchors, sage surfaces and white breathing room. */
:root {
  --forest: #14723a;
  --deep: #073d24;
  --sage: #eef5ef;
  --mint: #50b848;
  --muted: #56645b;
  --line: #d6e3d9;
}

.sector-list h3 a { color: inherit; }
.sector-list h3 a:hover { color: var(--forest); }
.sector-list h3 a b { margin-left: 10px; color: var(--forest); font-weight: 400; }

.site-header {
  border-top: 3px solid var(--forest);
  background: rgba(255, 255, 255, .97);
}

.brand { width: 132px; }
.brand img { display: block; width: 100%; height: auto; }
.menu-button { border-color: var(--line); color: var(--forest); }
.menu-button:hover { background: var(--sage); }

/* Keep the navigation visible until its closing transition has finished. */
.site-header { transition: background-color .3s ease, color .3s ease; }
.site-header .brand img { transition: filter .3s ease; }
.menu-button { transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.site-header.menu-open .menu-button { background: transparent; color: white; }
.site-header.menu-open .menu-button:hover { background: #ffffff15; color: white; }
.menu-list .menu-partner-cta { margin-top: 18px; padding: 18px; min-height: 60px; border: 0; border-radius: 5px; background: #50b848; color: #073d24; }
.menu-list .menu-partner-cta span { color: #073d24; }
.menu-list .menu-partner-cta:hover { padding-left: 18px; background: #62c15b; color: #073d24; }
.menu-list .menu-programmes { padding: 8px 0 12px 22px; border-left: 2px solid #50b848; }
.menu-list .menu-programmes a { gap: 16px; min-height: 0; padding: 12px 0; border: 0; font-size: 15px; line-height: 1.4; }
.menu-list .menu-programmes a:hover { padding-left: 6px; }
.menu-list .menu-programmes a span { flex: none; }
.partner-wordmark { color: #073d24; font-size: clamp(30px, 4vw, 50px); letter-spacing: -.04em; }
.footer-office-hours { color: #c5d9cb; font-size: 12px; line-height: 1.6; }
.menu-overlay { opacity: 0; transform: translateY(-12px); pointer-events: none; transition: opacity .3s ease, transform .3s cubic-bezier(.22, 1, .36, 1); }
.menu-overlay.is-open { opacity: 1; transform: translateY(0); pointer-events: auto; }
.menu-layout { opacity: 0; transform: translateY(14px); transition: opacity .22s ease, transform .3s cubic-bezier(.22, 1, .36, 1); }
.menu-overlay.is-open .menu-layout { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .site-header, .site-header .brand img, .menu-button, .menu-icon span, .menu-overlay, .menu-layout { transition: none; }
  .menu-overlay, .menu-layout { transform: none; }
}

.hero { background: var(--deep); }
.hero h1 { letter-spacing: -.065em; }
.hero h1 em, .hero .text-link span { color: var(--mint); }
.hero-main p:not(.hero-kicker) { color: #edf5ef; }
.hero-link { background: var(--lime); color: var(--deep); }

.about { border-top: 0; }
.about-copy strong {
  padding-left: 18px;
  border-left: 3px solid var(--lime);
}
.about-details-link { display: inline-block; margin-top: 22px; color: var(--forest); font-size: 15px; }

.pillar-showcase { background: var(--sage); }
.pillar-showcase-heading { margin-bottom: 0; }
.pillar-showcase h2 { font-size: clamp(48px, 6vw, 92px); font-weight: 600; line-height: 1.05; letter-spacing: -.065em; }
.pillar-showcase h2 em { font-style: normal; font-weight: inherit; }
.pillar-showcase-heading h2,
.pillar-showcase-heading .section-intro { margin-inline: auto; }
.pillar-cards { align-items: stretch; }
.pillar-card {
  display: flex;
  flex-direction: column;
  aspect-ratio: auto;
  overflow: hidden;
  border-radius: 14px;
  transition: transform .25s ease, box-shadow .25s ease;
}
.pillar-card-image {
  position: relative;
  inset: auto;
  flex: none;
  width: 100%;
  aspect-ratio: 1.6;
  border-radius: 0;
}
.pillar-card-copy {
  position: relative;
  left: auto;
  bottom: auto;
  display: flex;
  flex: 1;
  flex-direction: column;
  width: 100%;
  min-height: 310px;
  padding: 28px;
  border-top: 3px solid var(--lime);
  border-radius: 0;
}
.pillar-card-copy small { margin: 0 0 14px; }
.pillar-card-copy strong { line-height: 1.12; letter-spacing: -.04em; }
.pillar-card-copy b { padding-top: 10px; }

.proof { background: var(--deep); color: #fff; border: 0; }
.proof-head h2 em { color: var(--mint); }
.proof-head > p:last-child { color: #d4e6d9; }
.proof-grid { border-color: #ffffff30; }
.proof-grid article {
  background: transparent;
  border-color: #ffffff30;
}
.proof-grid strong { color: var(--mint); }
.proof-grid p { color: #edf5ef; }

.innovation-map { background: #fff; }
.innovation-map-holder::after { background: rgba(7, 61, 36, .08); }
.innovation-map-object { filter: drop-shadow(0 16px 24px rgba(7, 61, 36, .10)); }

.sectors { background: var(--sage); }
.sector-list { border-top-color: var(--forest); }
.sector-list span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #dcecdf;
}

.partners-shell { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.partners-intro { min-width: 0; background: var(--deep); }
.partners-intro-bottom p { color: #e3ede5; }
.partners-intro h2 { font-size: clamp(44px, 4.8vw, 76px); }
.partners-intro h2 strong { color: var(--mint); }
.partners-cta { background: var(--mint); color: var(--deep); }
.partner-logo-cell:hover { background: var(--sage); }
.partner-logo {
  display: block;
  width: 100%;
  max-width: 240px;
  height: 160px;
  object-fit: contain;
}
.partner-logo-coat { max-width: 150px; height: 180px; }
.partner-logo-crdb { max-width: 260px; }
.footer { background: var(--deep); border-top: 1px solid #ffffff26; }
.footer .brand { width: 132px; }

@media (max-width: 1100px) and (min-width: 761px) {
  .pillar-cards { grid-template-columns: 1fr; }
  .pillar-card { flex-direction: row; }
  .pillar-card-image { width: 42%; aspect-ratio: auto; }
  .pillar-card-copy { min-height: 280px; border-top: 0; border-left: 3px solid var(--lime); }
}

@media (max-width: 900px) {
  .partners-shell { grid-template-columns: 1fr; }
  .partners-intro h2 { font-size: clamp(44px, 10vw, 76px); }
}

@media (max-width: 760px) {
  .brand { width: 108px; }
  .pillar-showcase-heading h2,
  .pillar-showcase-heading .section-intro { margin-inline: 0; }
  .hero h1 { font-size: clamp(44px, 10.8vw, 70px); }
  .pillar-card-copy { min-height: 0; padding: 26px 24px; }
  .pillar-card-copy strong { font-size: clamp(24px, 6vw, 32px); }
  .pillar-card-copy b { margin-top: 8px; }
  .proof-grid article { min-height: 190px; padding: 28px 24px; }
  .footer-inner .brand { width: 132px; }
}

@media (max-width: 560px) {
  .partner-logo { height: 110px; }
  .partner-logo-coat { max-width: 106px; height: 120px; }
}
