:root {
  --navy: #041c3b;
  --navy-2: #082956;
  --blue: #0758bd;
  --green: #56ad22;
  --lime: #8ed038;
  --cream: #f6f5ee;
  --paper: #ffffff;
  --ink: #0a1930;
  --muted: #5e6a7b;
  --line: rgba(10, 25, 48, 0.13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  min-height: 86px;
  padding: 12px clamp(22px, 5vw, 76px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  background: rgba(246, 245, 238, 0.93);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}

.brand { display: flex; align-items: center; gap: 13px; min-width: 0; }
.brand img { width: 58px; height: 58px; object-fit: contain; }
.brand > span { display: flex; flex-direction: column; max-width: 250px; color: #637080; font-size: 9px; font-weight: 700; line-height: 1.35; letter-spacing: 0.08em; text-transform: uppercase; }
.brand strong { color: var(--navy); font-size: 18px; letter-spacing: 0.12em; }

.desktop-nav { display: flex; align-items: center; gap: clamp(16px, 2.2vw, 32px); color: #39485c; font-size: 12px; font-weight: 700; }
.desktop-nav a { transition: color 180ms ease; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { color: var(--green); }
.desktop-nav a.active { color: var(--green); }
.nav-cta { padding: 12px 18px; border-radius: 999px; background: var(--navy); color: white !important; }
.mobile-menu { display: none; position: relative; }
.mobile-menu summary { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--navy); font-size: 0; cursor: pointer; list-style: none; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary::before { content: "☰"; font-size: 21px; line-height: 1; }
.mobile-menu[open] summary::before { content: "×"; font-size: 29px; font-weight: 300; }
.mobile-menu nav { position: absolute; top: 55px; right: 0; width: min(290px, calc(100vw - 36px)); padding: 14px; display: grid; gap: 4px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); box-shadow: 0 24px 70px rgba(4,28,59,.18); }
.mobile-menu nav a { padding: 12px 14px; border-radius: 10px; color: #39485c; font-size: 12px; font-weight: 800; }
.mobile-menu nav a:hover { background: var(--cream); color: var(--green); }

.hero {
  position: relative;
  min-height: calc(100svh - 86px);
  padding: clamp(70px, 10vh, 118px) clamp(24px, 7vw, 110px);
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr);
  align-items: center;
  gap: clamp(54px, 8vw, 130px);
  background:
    linear-gradient(rgba(7, 88, 189, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(7, 88, 189, 0.045) 1px, transparent 1px),
    radial-gradient(circle at 82% 24%, rgba(7, 88, 189, .11) 0, transparent 38%),
    #ffffff;
  background-size: 44px 44px, 44px 44px, auto, auto;
  color: var(--navy);
}

.hero-glow { position: absolute; width: 700px; height: 700px; right: -410px; bottom: -420px; border: 1px solid rgba(7,88,189,.13); border-radius: 50%; box-shadow: 0 0 0 80px rgba(142,208,56,.04), 0 0 0 180px rgba(7,88,189,.03); }
.hero-copy, .hero-visual { position: relative; z-index: 2; }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 30px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow span { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--green); }
.hero h1 { max-width: 900px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.7rem, 7vw, 7.6rem); font-weight: 400; line-height: .91; letter-spacing: -.055em; }
.hero h1 em { color: var(--green); font-weight: 400; }
.hero-lead { max-width: 650px; margin: 34px 0 0; color: var(--muted); font-size: clamp(1rem, 1.35vw, 1.18rem); line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 26px; margin-top: 36px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 50px; padding: 0 22px; border-radius: 999px; font-size: 12px; font-weight: 800; }
.button-primary { background: var(--lime); color: var(--navy); }
.button-primary span { font-size: 18px; }
.text-link { color: var(--navy); font-size: 12px; font-weight: 800; }
.text-link span { margin-left: 8px; color: var(--green); }

.hero-visual { min-height: 560px; display: grid; place-items: center; }
.logo-stage { position: relative; z-index: 2; width: min(430px, 80vw); aspect-ratio: 1; display: grid; place-items: center; }
.logo-stage img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 28px 32px rgba(4,28,59,.15)); }
.orbit { position: absolute; border: 1px solid rgba(7,88,189,.14); border-radius: 50%; }
.orbit-one { width: 520px; height: 520px; }
.orbit-two { width: 630px; height: 630px; }
.hero-motto { position: absolute; z-index: 3; right: -20px; bottom: 28px; margin: 0; padding: 13px 17px; border-radius: 12px; background: var(--green); color: white; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; transform: rotate(-3deg); }

.stat-band { min-height: 138px; padding: 30px clamp(24px, 7vw, 110px); display: grid; grid-template-columns: repeat(3, minmax(110px, 170px)) 1fr; align-items: center; gap: 28px; background: var(--paper); border-bottom: 1px solid var(--line); }
.stat { display: flex; align-items: baseline; gap: 10px; }
.stat strong { color: var(--blue); font-family: Georgia, serif; font-size: clamp(1.2rem, 2vw, 1.75rem); font-weight: 400; }
.stat span { max-width: 70px; color: var(--muted); font-size: 9px; font-weight: 800; line-height: 1.3; letter-spacing: .08em; text-transform: uppercase; }
.stat-band > p { max-width: 380px; margin: 0 0 0 auto; color: var(--navy); font-family: Georgia, serif; font-size: 1.2rem; line-height: 1.35; }

.section { padding: clamp(90px, 12vw, 170px) clamp(24px, 7vw, 110px); scroll-margin-top: 88px; }
.page-hero { position: relative; overflow: hidden; padding: clamp(92px, 12vw, 158px) clamp(24px, 7vw, 110px); background: radial-gradient(circle at 85% 30%, rgba(7,88,189,.36), transparent 35%), var(--navy); color: white; }
.page-hero::after { content: ""; position: absolute; width: 520px; height: 520px; right: -220px; bottom: -330px; border: 1px solid rgba(142,208,56,.18); border-radius: 50%; box-shadow: 0 0 0 70px rgba(142,208,56,.03), 0 0 0 145px rgba(7,88,189,.04); }
.page-hero-grid { position: relative; z-index: 2; max-width: 1180px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr); align-items: end; gap: 90px; }
.page-hero h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(3.8rem, 7vw, 7.8rem); font-weight: 400; line-height: .91; letter-spacing: -.055em; }
.page-hero-grid > p { margin: 0 0 7px; color: rgba(255,255,255,.66); font-size: 1rem; line-height: 1.75; }
.section-label { display: flex; align-items: center; gap: 12px; margin-bottom: 48px; color: #68758a; font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.section-label::after { content: ""; width: 60px; height: 1px; background: var(--line); }
.section-label.light { color: rgba(255,255,255,.55); }
.section-label.light::after { background: rgba(255,255,255,.16); }
.kicker { margin: 0 0 20px; color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.about-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(350px, 1.1fr); gap: clamp(60px, 10vw, 160px); align-items: start; }
.about-grid h2 { max-width: 660px; margin: 0; font-family: Georgia, serif; font-size: clamp(2.8rem, 5vw, 5.7rem); font-weight: 400; line-height: .98; letter-spacing: -.045em; }
.about-copy { padding-top: 6px; color: var(--muted); font-size: 1rem; line-height: 1.8; }
.about-copy p { margin: 0 0 24px; }
.about-copy .lead-copy { color: var(--navy); font-size: 1.2rem; line-height: 1.65; }
.inline-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 8px; color: var(--blue); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.inline-link::after { content: "→"; font-size: 18px; color: var(--green); transition: transform 180ms ease; }
.inline-link:hover::after { transform: translateX(4px); }

.home-direction { background: var(--navy); color: white; }
.home-direction .vision-grid { max-width: 1380px; margin: 0 auto; }

.home-programmes { padding: clamp(90px, 11vw, 150px) clamp(24px, 7vw, 110px); background: var(--navy); color: white; }
.home-section-heading { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 30px; margin-bottom: 55px; }
.home-section-heading .section-label { grid-column: 1 / -1; margin-bottom: 10px; }
.home-section-heading h2 { max-width: 820px; margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 5vw, 5.8rem); font-weight: 400; line-height: .96; letter-spacing: -.045em; }
.home-programmes .inline-link, .home-leadership .inline-link { color: var(--lime); }
.programme-preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.15); border-left: 1px solid rgba(255,255,255,.15); }
.programme-preview-grid article { min-height: 330px; padding: 34px; display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.025); }
.programme-preview-grid h3 { margin: auto 0 18px; font-family: Georgia, serif; font-size: clamp(1.8rem, 2.7vw, 2.8rem); font-weight: 400; line-height: 1; }
.programme-preview-grid p { margin: 0; color: rgba(255,255,255,.58); font-size: .9rem; line-height: 1.68; }

.home-leadership { background: var(--cream); }
.leadership-preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.leadership-preview-grid article { background: white; border: 1px solid var(--line); }
.leadership-preview-grid .team-photo { height: 285px; }
.leadership-preview-grid h3 { margin: 0; padding: 28px 28px 8px; font-family: Georgia, serif; font-size: 1.8rem; font-weight: 400; }
.leadership-preview-grid .team-role { padding: 0 28px 28px; color: var(--green); }
.home-cta, .page-cta { padding: clamp(76px, 9vw, 120px) clamp(24px, 7vw, 110px); display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 55px; background: var(--green); color: white; }
.home-cta > p, .page-cta > p { grid-column: 1 / -1; margin: 0; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.home-cta > div { max-width: 390px; }
.home-cta > div p { margin: 0 0 25px; color: rgba(255,255,255,.82); line-height: 1.7; }
.home-cta h2, .page-cta h2 { max-width: 1040px; margin: 0; font-family: Georgia, serif; font-size: clamp(3.1rem, 6vw, 6.5rem); font-weight: 400; line-height: .92; letter-spacing: -.05em; }
.home-cta .button, .page-cta .button { flex: 0 0 auto; background: var(--navy); color: white; }

.home-value-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.home-value-grid article { min-height: 230px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.42); }
.home-value-grid h3 { margin: 45px 0 15px; font-family: Georgia, serif; font-size: 2rem; font-weight: 400; }
.home-value-grid p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.65; }

.home-contact-band { padding: clamp(80px, 10vw, 135px) clamp(24px, 7vw, 110px); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .6fr); gap: clamp(60px, 10vw, 150px); align-items: end; background: var(--blue); color: white; }
.home-contact-band h2 { max-width: 850px; margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 5.5vw, 6.2rem); font-weight: 400; line-height: .94; letter-spacing: -.05em; }
.home-contact-band address { margin: 0; font-style: normal; }
.home-contact-band address p { margin: 0 0 24px; color: rgba(255,255,255,.78); font-size: 1rem; line-height: 1.75; }
.home-contact-band address a:not(.button) { color: white; font-weight: 800; }

.value-strip { padding: clamp(70px, 9vw, 120px) clamp(24px, 7vw, 110px); background: var(--green); color: white; }
.value-strip > p:first-child { margin: 0 0 25px; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.value-strip h2 { max-width: 1050px; margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 6vw, 6.8rem); font-weight: 400; line-height: .94; letter-spacing: -.05em; }
.value-strip h2 em { color: var(--navy); font-weight: 400; }
.value-copy { max-width: 780px; margin: 36px 0 0 auto; color: rgba(255,255,255,.82); font-size: 1.06rem; line-height: 1.75; }

.vision-section { background: var(--navy); color: white; }
.vision-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.14); }
.vision-grid article { position: relative; min-height: 520px; padding: clamp(34px, 5vw, 76px); background: var(--navy); }
.vision-grid article:last-child { background: var(--navy-2); }
.vision-grid article > p:first-of-type { margin: 34px 0 36px; color: var(--lime); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.vision-grid h2 { max-width: 560px; margin: 0; font-family: Georgia, serif; font-size: clamp(2.4rem, 4vw, 4.8rem); font-weight: 400; line-height: 1; letter-spacing: -.04em; }
.vision-grid article > p:last-child { max-width: 560px; margin: 40px 0 0; color: rgba(255,255,255,.65); line-height: 1.75; }

.section-heading-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .5fr); align-items: end; gap: 70px; margin-bottom: 70px; }
.section-heading-row h2 { max-width: 850px; margin: 0; font-family: Georgia, serif; font-size: clamp(2.8rem, 5vw, 5.8rem); font-weight: 400; line-height: .97; letter-spacing: -.045em; }
.section-heading-row p { margin: 0; color: var(--muted); line-height: 1.7; }
.values-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.values-grid article { min-height: 280px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.35); transition: background 180ms ease, transform 180ms ease; }
.values-grid article:hover { background: white; transform: translateY(-3px); }
.values-grid h3 { margin: 28px 0 16px; font-family: Georgia, serif; font-size: 2rem; font-weight: 400; }
.values-grid p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.65; }

.programmes-section { padding: clamp(90px, 12vw, 170px) clamp(24px, 7vw, 110px); display: grid; grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr); gap: clamp(60px, 10vw, 150px); background: #061f41; color: white; scroll-margin-top: 88px; }
.programmes-intro { position: sticky; top: 130px; align-self: start; }
.programmes-intro h2 { max-width: 630px; margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 5vw, 6rem); font-weight: 400; line-height: .95; letter-spacing: -.05em; }
.programmes-intro > p { max-width: 510px; margin: 34px 0 0; color: rgba(255,255,255,.58); line-height: 1.75; }
.programmes-list { border-top: 1px solid rgba(255,255,255,.17); }
.programmes-list article { display: grid; grid-template-columns: minmax(170px, .72fr) minmax(240px, 1fr); gap: 28px; padding: 30px 0; border-bottom: 1px solid rgba(255,255,255,.17); }
.programmes-list h3 { margin: 0; font-family: Georgia, serif; font-size: 1.55rem; font-weight: 400; line-height: 1.18; text-transform: capitalize; }
.programmes-list p { margin: 0; color: rgba(255,255,255,.58); font-size: .88rem; line-height: 1.7; }
.programme-page-list { padding-top: clamp(90px, 10vw, 140px); padding-bottom: clamp(90px, 10vw, 140px); }

.objectives-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(420px, 1.15fr); gap: clamp(70px, 10vw, 150px); }
.objectives-layout h2 { max-width: 680px; margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 5vw, 5.8rem); font-weight: 400; line-height: .98; letter-spacing: -.045em; }
.objectives-layout ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.objectives-layout li { display: grid; grid-template-columns: 14px 1fr; gap: 18px; padding: 19px 0; border-bottom: 1px solid var(--line); }
.objectives-layout li::before { content: ""; width: 8px; height: 8px; margin-top: 8px; border-radius: 50%; background: var(--green); }
.objectives-layout li p { margin: 0; color: #344156; line-height: 1.5; }

.focus-section { padding: clamp(90px, 12vw, 160px) clamp(24px, 7vw, 110px); display: grid; grid-template-columns: minmax(300px, .7fr) minmax(0, 1.3fr); gap: clamp(60px, 10vw, 150px); background: var(--blue); color: white; scroll-margin-top: 88px; }
.focus-heading h2 { max-width: 560px; margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 5vw, 6rem); font-weight: 400; line-height: .95; letter-spacing: -.05em; }
.focus-cloud { display: flex; align-content: flex-start; flex-wrap: wrap; gap: 11px; }
.focus-cloud > span { display: inline-flex; align-items: center; padding: 13px 17px; border: 1px solid rgba(255,255,255,.21); border-radius: 999px; color: rgba(255,255,255,.87); font-size: 12px; font-weight: 700; }

.projects-section { padding: clamp(90px, 12vw, 165px) clamp(24px, 7vw, 110px); background: var(--cream); scroll-margin-top: 88px; }
.projects-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .55fr); align-items: end; gap: clamp(50px, 9vw, 140px); margin-bottom: 70px; }
.projects-heading .section-label { margin-bottom: 32px; }
.projects-heading h2 { max-width: 930px; margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 5.6vw, 6.4rem); font-weight: 400; line-height: .94; letter-spacing: -.05em; }
.projects-heading > p { margin: 0 0 7px; color: var(--muted); font-size: 1rem; line-height: 1.75; }
.projects-list { display: grid; gap: 24px; }
.project-card { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr); overflow: hidden; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 24px 70px rgba(4,28,59,.06); }
.project-visual { min-height: 430px; display: grid; place-items: center; overflow: hidden; background: var(--navy); }
.project-logo-stack { width: 100%; height: 100%; display: grid; place-items: center; }
.project-logo-stack img { display: block; width: calc(100% - 64px); max-height: 330px; object-fit: contain; }
.pap-visual { background: #020202; }
.pap-visual .project-logo-stack img { width: 100%; height: 100%; max-height: none; object-fit: contain; }
.nnpc-visual { background: #193441; }
.nnpc-visual .project-logo-stack img { width: 100%; height: 100%; max-height: none; object-fit: cover; }
.esso-visual { background: #f6f7f5; }
.esso-visual .project-logo-stack { align-content: center; gap: 30px; padding: 48px 30px; }
.esso-visual .project-logo-stack img:first-child { width: min(55%, 220px); }
.esso-visual .project-logo-stack img:last-child { width: min(82%, 330px); }
.marine-visual { position: relative; background: radial-gradient(circle at 78% 15%, rgba(7,88,189,.55), transparent 34%), linear-gradient(145deg, #03162f, #0758bd); }
.marine-visual::after { content: ""; position: absolute; width: 330px; height: 330px; right: -160px; bottom: -190px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; box-shadow: 0 0 0 58px rgba(255,255,255,.025), 0 0 0 118px rgba(142,208,56,.035); }
.marine-visual .project-logo-stack { position: relative; z-index: 1; grid-template-columns: 1fr 1fr; }
.marine-visual .project-logo-stack img { width: 100%; height: 100%; max-height: none; object-fit: cover; }
.project-visual-words { position: relative; z-index: 1; width: 100%; padding: 48px; display: grid; gap: 12px; color: white; }
.project-visual-words span { font-family: Georgia, serif; font-size: clamp(2rem, 3.6vw, 4.3rem); line-height: .98; letter-spacing: -.035em; }
.project-visual-words span:nth-child(2) { color: var(--lime); }
.project-content { padding: clamp(34px, 5vw, 66px); align-self: center; }
.project-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 18px; margin-bottom: 30px; color: var(--blue); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.project-meta strong { padding: 8px 11px; border: 1px solid rgba(86,173,34,.28); border-radius: 999px; background: rgba(86,173,34,.09); color: #397d13; font-size: inherit; }
.project-content h3 { max-width: 800px; margin: 0; color: var(--navy); font-family: Georgia, serif; font-size: clamp(2rem, 3.3vw, 3.8rem); font-weight: 400; line-height: 1.02; letter-spacing: -.04em; }
.project-quote { position: relative; max-width: 850px; margin: 27px 0 0; padding: 27px 30px 25px 54px; border: 1px solid #e1b900; border-left: 6px solid #041c3b; border-radius: 3px; background: #ffd83d; box-shadow: 0 13px 28px rgba(4,28,59,.12); color: #041c3b; font-family: Georgia, serif; font-size: clamp(1.05rem, 1.35vw, 1.3rem); font-weight: 700; line-height: 1.58; }
.project-quote::before { content: "“"; position: absolute; top: 9px; left: 16px; color: #0758bd; font-size: 3.3rem; line-height: 1; }
.project-intro { max-width: 820px; margin: 25px 0 0; color: var(--muted); font-size: .98rem; line-height: 1.75; }
.project-content details { margin-top: 32px; border-top: 1px solid var(--line); }
.project-content summary { padding: 21px 0 0; display: flex; align-items: center; justify-content: space-between; cursor: pointer; color: var(--navy); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; list-style: none; }
.project-content summary::-webkit-details-marker { display: none; }
.project-content summary span { color: var(--green); font-size: 18px; transition: transform 180ms ease; }
.project-content details[open] summary span { transform: rotate(45deg); }
.project-details { padding-top: 25px; color: #4f5d70; font-size: .92rem; line-height: 1.76; }
.project-details p { margin: 0 0 18px; }
.project-details h4 { margin: 30px 0 14px; color: var(--navy); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.project-details ul { margin: 0 0 25px; padding: 0; display: grid; gap: 11px; list-style: none; }
.project-details li { position: relative; padding-left: 20px; }
.project-details li::before { content: ""; position: absolute; width: 7px; height: 7px; left: 0; top: .65em; border-radius: 50%; background: var(--green); }
.project-details .project-closing { margin: 27px 0 0; padding: 22px; border-left: 3px solid var(--green); background: rgba(86,173,34,.07); color: var(--navy); }
.projects-commitment { margin-top: 24px; padding: clamp(38px, 6vw, 75px); display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr); gap: 30px clamp(50px, 9vw, 140px); background: var(--green); color: white; }
.projects-commitment > p { grid-column: 1 / -1; margin: 0; font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.projects-commitment h3 { margin: 0; font-family: Georgia, serif; font-size: clamp(2.5rem, 4.5vw, 5rem); font-weight: 400; line-height: .96; letter-spacing: -.045em; }
.projects-commitment > div { display: grid; gap: 18px; align-content: start; }
.projects-commitment > div p { margin: 0; color: rgba(255,255,255,.84); line-height: 1.72; }
.project-disclaimer { max-width: 900px; margin: 24px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.65; }

.partnerships-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(400px, 1.2fr); gap: clamp(70px, 11vw, 170px); }
.partnerships-grid h2 { max-width: 650px; margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 5vw, 5.8rem); font-weight: 400; line-height: .98; letter-spacing: -.045em; }
.partnership-copy { max-width: 590px; margin: 32px 0 0; color: var(--muted); line-height: 1.75; }
.partner-list { display: grid; grid-template-columns: 1fr 1fr; align-content: start; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.partner-list div { min-height: 96px; padding: 23px; display: flex; align-items: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: #344156; font-size: .9rem; line-height: 1.4; }
.partnership-model { margin-top: 90px; }
.partnership-model { padding: 0 clamp(24px, 7vw, 110px) clamp(90px, 11vw, 150px); }
.partnership-model > p { margin: 0 0 35px; color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.partnership-model > div { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.partnership-model article { min-height: 270px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.35); }
.partnership-model h3 { margin: 24px 0 15px; font-family: Georgia, serif; font-size: 1.8rem; font-weight: 400; }
.partnership-model article p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.65; }

.team-page-section { padding: clamp(80px, 10vw, 140px) clamp(24px, 7vw, 110px); background: var(--navy); color: white; }
.profile-row { max-width: 1240px; margin: 0 auto; padding: 64px 0; display: grid; grid-template-columns: minmax(250px, .52fr) minmax(0, 1.48fr); gap: clamp(50px, 8vw, 110px); align-items: start; border-bottom: 1px solid rgba(255,255,255,.14); }
.profile-row:first-child { padding-top: 0; }
.profile-row:last-child { padding-bottom: 0; border-bottom: 0; }
.profile-row:nth-child(even) .profile-photo { order: 2; }
.profile-photo { position: sticky; top: 120px; width: 100%; max-width: 340px; height: 405px; overflow: hidden; background: #e8e7df; }
.profile-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.profile-photo .victor-photo { object-position: center 20%; }
.profile-photo .ifiok-photo { object-position: center 20%; }
.profile-photo .moses-photo { object-position: left top; transform: scale(2.02); transform-origin: 0 22%; }
.profile-content { padding-top: 18px; }
.profile-content h2 { max-width: 720px; margin: 13px 0 30px; font-family: Georgia, serif; font-size: clamp(2.8rem, 5vw, 5.4rem); font-weight: 400; line-height: .96; letter-spacing: -.045em; }
.profile-intro { color: var(--lime); font-size: 1.05rem; line-height: 1.75; }
.profile-content > p:not(.team-role):not(.profile-intro) { margin: 0 0 21px; color: rgba(255,255,255,.64); line-height: 1.8; }

.contact-section { padding: clamp(90px, 11vw, 150px) clamp(24px, 7vw, 110px); display: grid; grid-template-columns: minmax(280px, .7fr) minmax(420px, 1.3fr); gap: clamp(60px, 11vw, 160px); background: var(--cream); }
.contact-details h2 { max-width: 620px; margin: 0 0 28px; font-family: Georgia, serif; font-size: clamp(3rem, 5vw, 5.6rem); font-weight: 400; line-height: .96; letter-spacing: -.045em; }
.contact-details > p { max-width: 560px; color: var(--muted); line-height: 1.75; }
.contact-details dl { margin: 52px 0 0; border-top: 1px solid var(--line); }
.contact-details dl > div { padding: 20px 0; border-bottom: 1px solid var(--line); }
.contact-details dt { margin-bottom: 8px; color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.contact-details dd { margin: 0; color: var(--navy); font-size: .98rem; line-height: 1.5; overflow-wrap: anywhere; }
.contact-form { padding: clamp(30px, 5vw, 58px); background: white; border: 1px solid var(--line); box-shadow: 0 30px 80px rgba(4,28,59,.08); }
.contact-form label { display: grid; gap: 9px; color: var(--navy); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: 14px 15px; border: 1px solid var(--line); border-radius: 0; outline: 0; background: #fbfbf8; color: var(--ink); font: inherit; font-size: .95rem; text-transform: none; transition: border-color 180ms ease, box-shadow 180ms ease; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(86,173,34,.12); }
.contact-form textarea { min-height: 170px; resize: vertical; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contact-form > label, .contact-form > .form-row { margin-bottom: 20px; }
.contact-form .button { border: 0; cursor: pointer; }
.form-note { margin: 18px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.website-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-status { margin: 0 0 24px; padding: 14px 16px; border-left: 4px solid var(--green); background: rgba(86,173,34,.09); color: #265c0c; font-size: .9rem; line-height: 1.55; }
.form-status.error { border-color: #bd2d2d; background: rgba(189,45,45,.08); color: #7d1919; }

.team-section { padding: clamp(90px, 12vw, 160px) clamp(24px, 7vw, 110px); background: var(--navy); color: white; scroll-margin-top: 88px; }
.team-heading { display: grid; grid-template-columns: .45fr 1fr; gap: 60px; align-items: end; margin-bottom: 70px; }
.team-heading .section-label { margin: 0; }
.team-heading h2 { max-width: 920px; margin: 0; font-family: Georgia, serif; font-size: clamp(3rem, 5.5vw, 6.5rem); font-weight: 400; line-height: .93; letter-spacing: -.05em; }
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.team-card { overflow: hidden; background: #0b2b56; border: 1px solid rgba(255,255,255,.1); }
.team-photo { position: relative; height: 250px; overflow: hidden; background: #e8e7df; }
.team-photo::after { content: ""; position: absolute; inset: auto 0 0; height: 35%; background: linear-gradient(transparent, rgba(4,28,59,.25)); pointer-events: none; }
.team-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.team-photo .victor-photo { object-position: center 22%; }
.team-photo .ifiok-photo { object-position: center 20%; }
.team-photo .moses-photo { object-position: left top; transform: scale(2.05); transform-origin: 0 23%; }
.team-photo .iniobong-photo { object-position: center 18%; }
.team-photo .samuel-photo { object-position: center 18%; }
.team-photo .kinsley-photo { object-position: center 16%; }
.team-content { padding: 30px; }
.team-role { margin: 0 0 13px; color: var(--lime); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.team-content h3 { margin: 0; font-family: Georgia, serif; font-size: clamp(1.65rem, 2.3vw, 2.5rem); font-weight: 400; line-height: 1.08; }
.team-intro { min-height: 125px; margin: 22px 0 0; color: rgba(255,255,255,.6); font-size: .88rem; line-height: 1.68; }
.team-content details { margin-top: 26px; border-top: 1px solid rgba(255,255,255,.15); }
.team-content summary { padding: 18px 0 0; display: flex; align-items: center; justify-content: space-between; cursor: pointer; color: white; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; list-style: none; }
.team-content summary::-webkit-details-marker { display: none; }
.team-content details[open] summary span { transform: rotate(45deg); }
.team-content details div { padding-top: 18px; color: rgba(255,255,255,.57); font-size: .84rem; line-height: 1.7; }
.team-content details div p { margin: 0 0 17px; }

.commitment-section { padding: clamp(90px, 12vw, 160px) clamp(24px, 7vw, 110px); background: var(--green); color: white; }
.commitment-section > p { margin: 0 0 28px; font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.commitment-section h2 { max-width: 1200px; margin: 0; font-family: Georgia, serif; font-size: clamp(3.4rem, 7vw, 8rem); font-weight: 400; line-height: .9; letter-spacing: -.055em; }
.commitment-section h2 em { color: var(--navy); font-weight: 400; }
.commitment-section > div { max-width: 920px; margin: 56px 0 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; color: rgba(255,255,255,.84); line-height: 1.75; }
.commitment-section > div p { margin: 0; }

.site-footer { padding: 40px clamp(24px, 7vw, 110px); display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 30px clamp(20px, 3vw, 48px); background: #03162f; color: rgba(255,255,255,.48); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.footer-brand { display: flex; align-items: center; gap: 12px; }
.footer-brand img { width: 54px; height: 54px; padding: 3px; object-fit: contain; background: white; border-radius: 8px; }
.footer-brand div { display: flex; flex-direction: column; gap: 4px; }
.footer-brand strong { color: white; font-size: 14px; letter-spacing: .14em; }
.site-footer > p { margin: 0; text-align: right; }
.footer-links { display: flex; align-items: center; gap: 22px; }
.footer-links a:hover { color: var(--lime); }
.footer-contact { grid-column: 1 / 3; padding-top: 24px; display: flex; flex-wrap: wrap; gap: 10px 34px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.58); font-style: normal; line-height: 1.5; }
.footer-contact a { color: white; }
.site-footer > span { justify-self: end; }

@media (max-width: 1120px) {
  .desktop-nav { display: none; }
  .mobile-menu { display: block; }
}

@media (max-width: 980px) {
  .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .hero { grid-template-columns: 1fr; }
  .hero-visual { min-height: 500px; }
  .stat-band { grid-template-columns: repeat(3, 1fr); }
  .stat-band > p { grid-column: 1 / -1; margin: 0; }
  .about-grid { grid-template-columns: 1fr; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .programmes-section, .focus-section { grid-template-columns: 1fr; }
  .programmes-intro { position: static; }
  .objectives-layout, .partnerships-grid { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: 1fr; }
  .team-card { display: grid; grid-template-columns: 230px 1fr; }
  .team-photo { height: 260px; min-height: 0; }
  .team-intro { min-height: 0; }
  .page-hero-grid { grid-template-columns: 1fr; gap: 30px; }
  .programme-preview-grid { grid-template-columns: 1fr; }
  .programme-preview-grid article { min-height: 260px; }
  .leadership-preview-grid { grid-template-columns: 1fr; }
  .leadership-preview-grid article { display: grid; grid-template-columns: minmax(270px, .7fr) 1fr; align-items: center; }
  .leadership-preview-grid .team-photo { height: 300px; grid-row: 1 / 3; }
  .profile-row { grid-template-columns: minmax(260px, .7fr) 1.3fr; gap: 45px; }
  .profile-photo { position: static; height: 380px; }
  .contact-section { grid-template-columns: 1fr; }
  .partnership-model > div { grid-template-columns: repeat(2, 1fr); }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer > p { text-align: left; }
  .footer-contact { grid-column: auto; }
  .site-footer > span { justify-self: start; }
  .home-value-grid { grid-template-columns: repeat(2, 1fr); }
  .home-contact-band { grid-template-columns: 1fr; }
  .projects-heading { grid-template-columns: 1fr; }
  .project-card { grid-template-columns: 1fr; }
  .project-visual { min-height: 320px; }
}

@media (max-width: 720px) {
  .topbar { min-height: 74px; padding: 10px 18px; }
  .brand > span { max-width: 175px; }
  .hero { min-height: auto; padding-top: 68px; }
  .hero h1 { font-size: clamp(3.35rem, 16vw, 5.5rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-visual { min-height: 420px; }
  .logo-stage { width: min(350px, 84vw); }
  .orbit-one { width: 390px; height: 390px; }
  .orbit-two { width: 470px; height: 470px; }
  .hero-motto { right: 0; bottom: 8px; }
  .stat-band { grid-template-columns: 1fr; }
  .stat-band > p { grid-column: auto; }
  .vision-grid { grid-template-columns: 1fr; }
  .vision-grid article { min-height: auto; }
  .section-heading-row, .team-heading { grid-template-columns: 1fr; }
  .programmes-list article { grid-template-columns: 1fr; }
  .programmes-list p { grid-column: auto; }
  .values-grid { grid-template-columns: 1fr; }
  .values-grid article { min-height: 230px; }
  .values-grid h3 { margin-top: 28px; }
  .partner-list { grid-template-columns: 1fr; }
  .team-card { display: block; }
  .team-photo {
    height: clamp(360px, 105vw, 440px);
    min-height: 0;
    background: #dfe4e1;
  }
  .team-photo .victor-photo,
  .team-photo .ifiok-photo {
    object-fit: contain;
    object-position: center;
    transform: none;
  }
  .team-photo .moses-photo {
    object-position: left top;
    transform: scale(1.9);
    transform-origin: 0 18%;
  }
  .commitment-section > div { grid-template-columns: 1fr; }
  .home-section-heading, .home-cta, .page-cta { grid-template-columns: 1fr; align-items: start; }
  .leadership-preview-grid article { display: block; }
  .leadership-preview-grid .team-photo { height: 285px; }
  .profile-row { grid-template-columns: 1fr; padding: 55px 0; }
  .profile-row:nth-child(even) .profile-photo { order: initial; }
  .profile-photo { height: 370px; }
  .form-row { grid-template-columns: 1fr; }
  .partnership-model > div { grid-template-columns: 1fr; }
  .footer-links { flex-wrap: wrap; gap: 15px 20px; }
  .home-value-grid { grid-template-columns: 1fr; }
  .projects-commitment { grid-template-columns: 1fr; }
  .projects-commitment > p { grid-column: auto; }
  .project-visual { min-height: 250px; }
  .project-content { padding: 30px 24px; }
  .project-visual-words { padding: 32px 24px; }
}

@media (max-width: 560px) {
  .brand > span { display: none; }
  .brand img { width: 50px; height: 50px; }
  .nav-cta { padding: 10px 12px; }
  .programmes-list article { grid-template-columns: 1fr; gap: 14px; }
  .programmes-list h3 { font-size: 1.35rem; }
  .team-photo { height: clamp(360px, 105vw, 420px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; }
}
