/* Kibale Ventures — match long-form editorial content to the established
   homepage/card/feature aesthetic without changing header, footer or forms.
   All dimensions use a 4/8px rhythm. 70/30 is a compositional guideline. */
:root {
  --kv8-navy: #17324d;
  --kv8-green: #176b4d;
  --kv8-gold: #e5aa45;
  --kv8-muted: #465568;
  --kv8-soft: #f7f9f6;
  --kv8-rule: #e4eae7;
}
.kv8-band {
  box-sizing: border-box;
  background: #fff;
  padding: clamp(56px, 6vw, 96px) 0;
  border-top: 1px solid var(--kv8-rule);
  color: var(--kv8-navy);
}
.kv8-band--opening,
.kv8-band--closing,
.kv8-band--fieldwork { background: var(--kv8-soft); }
.kv8-band .dce-container,
.kv8-band .dco-shell { min-width: 0; }
.kv8-band .kv6-editorial.kv7-editorial.kv8-editorial {
  box-sizing: border-box;
  display: block;
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  color: var(--kv8-muted);
  font-size: 16px;
  line-height: 1.72;
}
.kv8-band .kv6-editorial__inner.kv8-band__chapters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
  max-width: none;
  margin: 0;
}
.kv8-band .kv7-chapter,
.kv8-band .kv7-chapter:first-child,
.kv8-band .kv7-chapter:last-child {
  box-sizing: border-box;
  position: relative;
  display: block;
  grid-column: span 1;
  min-width: 0;
  margin: 0;
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid var(--kv8-rule);
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 26px rgb(23 50 77 / 4%);
}
.kv8-band .kv7-chapter:not(.kv7-chapter--media)::before {
  content: '';
  display: block;
  width: 40px;
  height: 3px;
  margin-bottom: 24px;
  border-radius: 3px;
  background: var(--kv8-gold);
}
.kv8-band .kv7-chapter .kv7-chapter__copy {
  width: 100%;
  max-width: 72ch;
  min-width: 0;
  margin: 0;
}
.kv8-band .kv7-chapter--media {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(24px, 4.5vw, 72px);
  align-items: center;
  padding: clamp(24px, 3.5vw, 48px);
  background: #fff;
}
.kv8-band .kv7-chapter--media:nth-child(even) .kv7-chapter__copy { order: 2; }
.kv8-band .kv7-chapter--media:nth-child(even) .kv7-figure { order: 1; }
.kv8-band .kv7-chapter h2 {
  max-width: 26ch;
  margin: 0 0 20px;
  padding: 0;
  border: 0;
  font-size: clamp(24px, 2.5vw, 32px);
  line-height: 1.24;
  letter-spacing: -.025em;
  font-weight: 750;
  text-wrap: balance;
  color: var(--kv8-navy);
}
.kv8-band .kv7-chapter h3 {
  margin: 24px 0 12px;
  max-width: 43ch;
  color: var(--kv8-green);
  font-size: clamp(18px, 1.8vw, 20px);
  line-height: 1.35;
  font-weight: 700;
}
.kv8-band .kv7-chapter p {
  max-width: 70ch;
  margin: 0 0 16px;
  font-size: clamp(16px, 1.15vw, 17px);
  line-height: 1.74;
  color: var(--kv8-muted);
}
.kv8-band .kv7-chapter p:last-child { margin-bottom: 0; }
.kv8-band .kv7-chapter a {
  font-weight: 650;
  color: var(--kv8-green);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.kv8-band .kv7-chapter a:hover { color: var(--kv8-navy); }
.kv8-band .kv7-chapter a:focus-visible { outline: 2px solid var(--kv8-green); outline-offset: 4px; }
.kv8-band .kv7-figure { width: 100%; margin: 0; min-width: 0; }
.kv8-band .kv7-figure img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 480px;
  aspect-ratio: 5 / 4;
  object-fit: cover;
  border-radius: 12px;
  background: #e7ede8;
}
.kv8-band .kv7-figure figcaption {
  margin: 12px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--kv8-muted);
}
.kv8-leading-brief,
.kv8-editor-preface {
  max-width: 76ch;
  margin: 32px 0;
  font-size: 16px;
  line-height: 1.7;
}
.kv8-editor-preface h2 {
  font-size: clamp(24px, 2vw, 30px);
  line-height: 1.3;
  color: var(--kv8-navy);
  margin: 32px 0 16px;
}
.kv8-editor-preface p { max-width: 72ch; margin: 0 0 16px; }
/* Homepage bands use exactly the same shell widths and section rhythm as
   the existing Who We Are, Programmes and Projects sections. */
body.home .kv8-band .kv6-editorial.kv7-editorial.kv8-editorial {
  padding: 0;
  margin: 0;
}
body.home .kv8-band--closing { border-bottom: 1px solid var(--kv8-rule); }
@media (max-width: 960px) {
  .kv8-band { padding-block: 64px; }
  .kv8-band .kv6-editorial__inner.kv8-band__chapters { gap: 20px; }
  .kv8-band .kv7-chapter,
  .kv8-band .kv7-chapter--media { padding: 28px; }
  .kv8-band .kv7-chapter--media { grid-template-columns: minmax(0, 1fr); }
  .kv8-band .kv7-chapter--media:nth-child(even) .kv7-chapter__copy,
  .kv8-band .kv7-chapter--media:nth-child(even) .kv7-figure { order: initial; }
  .kv8-band .kv7-figure img { aspect-ratio: 16 / 9; }
}
@media (max-width: 700px) {
  .kv8-band { padding-block: 48px; }
  .kv8-band .kv6-editorial__inner.kv8-band__chapters { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .kv8-band .kv7-chapter,
  .kv8-band .kv7-chapter--media { grid-column: 1; padding: 24px 20px; }
  .kv8-band .kv7-chapter h2 { font-size: 24px; margin-bottom: 16px; }
  .kv8-band .kv7-chapter h3 { margin-top: 24px; font-size: 19px; }
  .kv8-band .kv7-chapter p { font-size: 16px; line-height: 1.7; }
  .kv8-band .kv7-figure img { aspect-ratio: 4 / 3; }
}

/* KIBALE_PHASE09_START */
/* Phase 09 — donor-focused, calm editorial presentation.
   Uses original Phase 08 typography and colour tokens. 4/8 px rhythm;
   70/30 is a composition target, never an area/word percentage. */
.kv8-band:has(.kv9-chapter) {
  padding-block: clamp(48px, 6vw, 88px);
}
.kv8-band .kv6-editorial__inner.kv8-band__chapters {
  column-gap: clamp(32px, 4vw, 64px);
  row-gap: clamp(32px, 4vw, 56px);
  align-items: start;
}
.kv8-band .kv7-chapter.kv9-chapter,
.kv8-band .kv7-chapter.kv9-chapter:first-child,
.kv8-band .kv7-chapter.kv9-chapter:last-child {
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.kv8-band .kv7-chapter.kv9-chapter::before { display: none; }
.kv8-band .kv9-chapter .kv7-chapter__copy {
  max-width: 64ch;
}
.kv8-band .kv9-chapter h2 {
  max-width: 23ch;
  margin: 0 0 20px;
  font-size: clamp(24px, 2.3vw, 30px);
  line-height: 1.24;
  letter-spacing: -.026em;
}
.kv8-band .kv9-chapter h3 {
  margin: 24px 0 12px;
  font-size: clamp(18px, 1.5vw, 20px);
  font-weight: 700;
}
.kv8-band .kv9-chapter p {
  margin: 0 0 16px;
  max-width: 64ch;
  font-size: clamp(16px, 1.12vw, 17px);
  line-height: 1.75;
}
.kv8-band .kv9-chapter p:last-child { margin-bottom: 0; }
.kv8-band .kv7-chapter.kv9-chapter--media,
.kv8-band .kv7-chapter--media.kv9-chapter {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) minmax(0, .94fr);
  gap: clamp(32px, 4vw, 64px);
  align-items: center;
  padding-block: clamp(8px, 2vw, 24px);
}
.kv8-band .kv9-chapter .kv7-figure img {
  width: 100%;
  aspect-ratio: 5 / 4;
  max-height: 440px;
  object-fit: cover;
  border-radius: 12px 0 12px 0;
}
.kv8-band .kv9-chapter .kv7-figure figcaption {
  margin-top: 12px;
  max-width: 52ch;
  line-height: 1.5;
}
.kv8-band--closing:has(.kv9-chapter) { border-bottom: 1px solid var(--kv8-rule); }
/* A short Contact page should not generate a tall empty editorial band. */
body.page-id-35 .kv8-band:has(.kv9-chapter) {
  padding-block: clamp(32px, 4vw, 56px);
}
body.page-id-35 .kv8-band .kv9-chapter h2 { font-size: clamp(22px, 2vw, 28px); }
@media (max-width: 800px) {
  .kv8-band .kv6-editorial__inner.kv8-band__chapters { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .kv8-band .kv7-chapter--media.kv9-chapter {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  .kv8-band .kv7-chapter--media.kv9-chapter .kv7-chapter__copy,
  .kv8-band .kv7-chapter--media.kv9-chapter .kv7-figure { order: initial; }
}
@media (max-width: 600px) {
  .kv8-band:has(.kv9-chapter) { padding-block: 40px; }
  .kv8-band .kv6-editorial__inner.kv8-band__chapters { gap: 32px; }
  .kv8-band .kv9-chapter h2 { font-size: 24px; margin-bottom: 16px; }
  .kv8-band .kv9-chapter p { font-size: 16px; line-height: 1.7; }
  .kv8-band .kv9-chapter .kv7-figure img { aspect-ratio: 4 / 3; }
}

/* KIBALE_PHASE09_END */

/* KIBALE_PHASE10_START */
/* Kibale Phase 10 — context-specific photography and non-photographic programme panels.
   Existing visual hierarchy and 4/8px spacing unchanged. No !important. */
.dco-home .kv10-photo img { filter: saturate(.88) contrast(.99); }
.dco-home .kv10-abstract { position: relative; overflow: hidden; isolation: isolate; background: linear-gradient(145deg,#e5eee8 0%,#c6d8cd 58%,#f4ecd9 100%); }
.dco-home .kv10-abstract--nature { background: linear-gradient(140deg,#153e32,#5b8b70 64%,#b8cdb8); color: #fff; }
.dco-home .kv10-abstract--research { background: linear-gradient(142deg,#103049,#477b8a 65%,#b9d8d5); color: #fff; }
.dco-home .kv10-abstract--water { background: linear-gradient(135deg,#e4f2f0,#7bb6b4 60%,#1c6672); color: #123f48; }
.dco-home .kv10-abstract--sport { background: linear-gradient(135deg,#f4e7c8,#d8bc74 58%,#7b8655); color: #40391f; }
.dco-home .kv10-abstract--school { background: linear-gradient(135deg,#fff5de,#e8d9b5 60%,#b5bd9a); color: #4b482e; }
.dco-home .kv10-abstract::after { background: linear-gradient(140deg,transparent,rgba(255,255,255,.1)); }
.dco-home .kv10-abstract__orbit { position: absolute; display: block; width: min(60%, 205px); aspect-ratio: 1; top: -32%; right: -8%; border: 2px solid currentColor; border-radius: 50%; opacity: .2; box-shadow: 0 0 0 24px rgb(255 255 255 / 9%),0 0 0 52px rgb(255 255 255 / 6%); }
.dco-home .kv10-abstract__label { position: absolute; display: block; left: 20px; bottom: 20px; max-width: 70%; font-size: clamp(10px, .9vw, 12px); font-weight: 700; letter-spacing: .13em; line-height: 1.5; text-transform: uppercase; }
.kv10-context-figure img { filter: none; }
.dce-hero .dce-visual img { filter: saturate(.88) contrast(.98); }
@media(max-width:700px){ .dco-home .kv10-abstract__label {left:16px;bottom:16px;font-size:11px;} }

/* KIBALE_PHASE10_END */
