/*
Theme Name: AltowGro Foundation
Theme URI: https://www.altowgro.com
Author: Frank Martha
Author URI: https://www.altowgro.com
Description: Official WordPress theme for AltowGro Foundation — Growing Value. Building Futures. A single-page agricultural NGO theme with dark/light mode, scroll animations, and full Customizer editing support.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: Proprietary — All Rights Reserved
Text Domain: altowgro
Tags: agriculture, nonprofit, dark-mode, single-page, kenya, customizer
*/

/* ═══════════════════════════════════════════════════════
   BRAND PALETTE — locked, never deviated from
   #2A2E2E  Primary Charcoal
   #D8D8D4  Primary Ash
   #A66A42  Primary Copper
═══════════════════════════════════════════════════════ */

/* ── DARK MODE (default) ── */
/* ── LIGHT MODE (global default) ── */
:root,[data-theme="light"]{
  --c0:#FFFFFF;   /* page background — bright ash white */
  --c1:#F0F0EF;   /* alt section background */
  --c2:#E8E8E7;   /* deeper alt section */
  --c3:#D8D8D4;   /* card / button surface — Primary Ash */
  --c4:#CCCBC5;   /* hover surface */
  --c5:#BFBEB8;   /* deeper hover */

  --a0:#2A2E2E;   /* primary text — Primary Charcoal */
  --a1:rgba(42,46,46,.82);
  --a2:rgba(42,46,46,.58);
  --a3:rgba(42,46,46,.36);
  --a4:rgba(42,46,46,.13);
  --a5:rgba(42,46,46,.07);

  --cu:   #A66A42;   /* Primary Copper */
  --cu1:  rgba(166,106,66,.50);
  --cu2:  rgba(166,106,66,.14);
  --cu3:  rgba(166,106,66,.07);

  --pf:    saturate(.44) brightness(.78) contrast(1.05);
  --pfh:   saturate(.72) brightness(.94);
  --pfbg:  saturate(.26) brightness(.60) contrast(1.06);
  --pfh2:  saturate(.30) brightness(.64) contrast(1.04);

  --nav-bg: rgba(255,255,255,.97);
  --nav-on: rgba(255,255,255,1);
}

/* ── DARK MODE ── */
[data-theme="dark"]{
  --c0:#131618;
  --c1:#181B1F;
  --c2:#1E2228;
  --c3:#2A2E2E;
  --c4:#2B3038;
  --c5:#353D47;

  --a0:#F0EFEB;
  --a1:rgba(240,239,235,.94);
  --a2:rgba(240,239,235,.70);
  --a3:rgba(240,239,235,.44);
  --a4:rgba(240,239,235,.13);
  --a5:rgba(240,239,235,.06);

  --cu:   #A66A42;
  --cu1:  rgba(166,106,66,.50);
  --cu2:  rgba(166,106,66,.14);
  --cu3:  rgba(166,106,66,.07);

  --pf:    saturate(.36) brightness(.64) contrast(1.12);
  --pfh:   saturate(.60) brightness(.80);
  --pfbg:  saturate(.20) brightness(.36) contrast(1.14);
  --pfh2:  saturate(.22) brightness(.42) contrast(1.10);

  --nav-bg: rgba(19,22,24,.96);
  --nav-on: rgba(19,22,24,1);
}

/* ─── RESET ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{
  background:var(--c0);color:var(--a0);
  font-family:'DM Sans',sans-serif;font-weight:300;
  line-height:1.86;overflow-x:hidden;
  transition:background .5s,color .5s
}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
::-webkit-scrollbar{width:2px}
::-webkit-scrollbar-track{background:var(--c0)}
::-webkit-scrollbar-thumb{background:var(--cu)}

/* ─── LAYOUT ─── */
.W {max-width:1360px;margin:0 auto;padding:0 88px}
.W2{max-width:960px; margin:0 auto;padding:0 88px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}

/* ─── EYEBROW ─── */
.eye{
  display:inline-flex;align-items:center;gap:18px;
  font-size:.68rem;font-weight:500;letter-spacing:.46em;text-transform:uppercase;
  color:var(--a2);transition:color .4s
}
.eye::before{
  content:'';display:block;
  width:28px;height:1px;
  background:var(--cu);opacity:.7;flex-shrink:0
}
.eye + .cu-line{
  display:block;width:52px;height:1px;
  background:var(--cu);opacity:.6;
  margin:22px 0 32px
}

/* ─── REVEALS ─── */
.rv {opacity:0;transform:translateY(24px);transition:opacity 1.05s cubic-bezier(.16,1,.3,1),transform 1.05s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
.rl {opacity:0;transform:translateX(-24px);transition:opacity 1.05s cubic-bezier(.16,1,.3,1),transform 1.05s cubic-bezier(.16,1,.3,1)}
.rl.in{opacity:1;transform:none}
.rr {opacity:0;transform:translateX(24px);transition:opacity 1.05s cubic-bezier(.16,1,.3,1),transform 1.05s cubic-bezier(.16,1,.3,1)}
.rr.in{opacity:1;transform:none}

/* ─── TYPOGRAPHY ─── */
.serif{font-family:'Cormorant Garamond',serif}
.h-xl{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(4rem,9vw,8.8rem);
  font-weight:600;line-height:.92;
  color:var(--a0);letter-spacing:-.025em
}
.h-xl .slant{
  display:block;font-style:italic;font-weight:300;
  color:var(--a2);font-size:.76em;margin-top:14px
}
.h-sec{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.6rem,4.4vw,4rem);
  font-weight:600;line-height:1.06;letter-spacing:-.015em;
  color:var(--a0);margin-bottom:28px;transition:color .4s
}
.h-sec.on-ash{color:#D8D8D4}
[data-theme="dark"] .h-sec.on-ash{color:#2A2E2E}

.body{font-size:.975rem;color:var(--a1);line-height:1.92;margin-bottom:22px;transition:color .4s}
.body strong{color:var(--a0);font-weight:500}
.body.on-ash{color:rgba(216,216,212,.80)}
[data-theme="dark"] .body.on-ash{color:rgba(42,46,46,.72)}
.body.on-ash strong{color:#D8D8D4}
[data-theme="dark"] .body.on-ash strong{color:#2A2E2E}

/* ─── BUTTONS ─── */
.btn{
  display:inline-flex;align-items:center;gap:14px;
  font-family:'DM Sans',sans-serif;
  font-size:.58rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;
  padding:15px 42px;cursor:pointer;position:relative;overflow:hidden;
  transition:border-color .3s,color .3s
}
.btn-ch{
  background:var(--c3);color:var(--a0);
  border:1px solid var(--a4)
}
.btn-ch::before{
  content:'';position:absolute;inset:0;
  background:var(--c4);transform:translateX(-101%);
  transition:transform .4s cubic-bezier(.16,1,.3,1)
}
.btn-ch:hover::before{transform:translateX(0)}
.btn-ch:hover{border-color:var(--a3)}
.btn-ch span,.btn-ch svg{position:relative;z-index:1}
.btn-gh{
  background:transparent;color:var(--a0);
  border:1px solid var(--a4)
}
.btn-gh:hover{border-color:var(--a3);background:var(--a5)}
.btn-cu-o{
  background:transparent;color:var(--a0);
  border:1px solid var(--cu1)
}
.btn-cu-o:hover{border-color:var(--cu);background:var(--cu3)}
.btn svg{width:13px;height:13px;opacity:.55;transition:transform .3s,opacity .3s;flex-shrink:0}
.btn:hover svg{transform:translateX(5px);opacity:1}

/* ─── THEME TOGGLE ─── */
.n-brand-group{display:flex;align-items:center;justify-self:center}
.n-right{display:flex;align-items:center;gap:16px;justify-self:end}
.tog{
  width:34px;height:34px;border-radius:50%;
  background:var(--c3);border:1px solid var(--a4);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;
  transition:background .3s,border-color .3s,transform .25s;
  color:var(--a2)
}
.tog:hover{background:var(--c4);border-color:var(--cu1);transform:scale(1.1);color:var(--a0)}
.tog svg{width:15px;height:15px;display:block;pointer-events:none;transition:opacity .25s}
/* Moon shown in dark mode; sun shown in light mode */
.tog-moon{display:none}
.tog-sun{display:block}
[data-theme="dark"] .tog-sun{display:none}
[data-theme="dark"] .tog-moon{display:block}

/* ─── IMAGE FRAMES ─── */
.fr{position:relative;overflow:hidden}
.fr img{
  width:100%;height:100%;object-fit:cover;
  filter:var(--pf);
  transition:transform 1.8s cubic-bezier(.16,1,.3,1),filter 1s
}
.fr:hover img{transform:scale(1.04);filter:var(--pfh)}
.fr-off{
  position:absolute;bottom:-16px;right:-16px;
  width:calc(100% - 32px);height:calc(100% - 32px);
  border:1px solid var(--a4);pointer-events:none;z-index:2
}
.fr-cu-l{
  position:absolute;top:0;left:0;width:2px;height:100%;
  background:linear-gradient(to bottom,var(--cu) 0%,rgba(166,106,66,0) 60%);
  opacity:.75
}
.fr-cu-tr::before{
  content:'';position:absolute;top:0;right:0;
  width:40px;height:40px;
  border-top:1px solid var(--cu1);
  border-right:1px solid var(--cu1);
  z-index:3;pointer-events:none
}

/* ═══════════════════════════════════════════════════════
   NAV
═══════════════════════════════════════════════════════ */
nav{
  position:fixed;inset:0 0 auto;z-index:999;
  height:70px;
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:0 88px;
  background:var(--nav-bg);
  backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
  border-bottom:1px solid var(--a5);
  transition:background .4s,border-color .4s,box-shadow .4s
}
nav.scrolled{
  background:var(--nav-on);
  border-bottom-color:var(--cu1);
  box-shadow:0 2px 40px rgba(0,0,0,.28)
}
.n-brand{display:flex;align-items:center;gap:15px}
.n-logo{width:52px;height:52px;flex-shrink:0}
.n-name{
  font-family:'Cormorant Garamond',serif;
  font-size:1.38rem;font-weight:600;
  color:var(--a0);letter-spacing:.05em;
  transition:color .4s
}
.n-name em{font-style:normal;color:var(--cu)}
.n-links{display:flex;gap:44px;list-style:none}
.n-links a{
  font-size:.54rem;font-weight:500;letter-spacing:.24em;
  text-transform:uppercase;color:var(--a2);
  position:relative;transition:color .22s;padding-bottom:3px
}
.n-links a::after{
  content:'';position:absolute;bottom:0;left:0;right:100%;
  height:1px;background:var(--cu);transition:right .32s ease
}
.n-links a:hover{color:var(--a0)}
.n-links a:hover::after{right:0}
.n-cta{
  font-size:.54rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;
  color:var(--a0);padding:9px 24px;
  border:1px solid var(--a4);cursor:pointer;background:transparent;
  transition:all .28s
}
.n-cta:hover{background:var(--c4);border-color:var(--a3)}

/* WordPress menu reset — ensure .n-links works as expected */
.n-links li { list-style: none; }
.n-links li a { display: block; }

/* ═══════════════════════════════════════════════════════
   HERO
═══════════════════════════════════════════════════════ */
/* ─── HERO EDITORIAL SPLIT ─── */
#hero{background:var(--c0);padding:110px 0 90px;border-bottom:1px solid var(--a5);}
.h-ed{display:grid;grid-template-columns:1.15fr 1fr;gap:88px;align-items:center;}
.h-ed-lbl{
  display:block;font-size:.44rem;font-weight:500;letter-spacing:.4em;text-transform:uppercase;
  color:var(--cu);margin-bottom:26px;
  opacity:0;animation:rise 1.1s .15s forwards
}
.h-ed-h{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3.2rem,5.4vw,5.6rem);
  font-weight:600;line-height:1.02;color:var(--a0);
  margin:0 0 22px;
  opacity:0;animation:rise 1.1s .3s forwards
}
.h-ed-sub{
  font-size:1.08rem;font-style:italic;font-weight:300;
  color:var(--a1);line-height:1.78;margin:0 0 20px;
  opacity:0;animation:rise 1.1s .44s forwards
}
.h-ed-text .body{
  opacity:0;animation:rise 1.1s .56s forwards
}
.h-ed-ctas{
  display:flex;gap:14px;flex-wrap:wrap;margin-top:36px;
  opacity:0;animation:rise 1.1s .68s forwards
}
.h-ed-img{opacity:0;animation:rise 1.1s .42s forwards}
.h-ed-frame{position:relative;border:1px solid var(--a4);}
.h-ed-frame img{
  width:100%;height:540px;object-fit:cover;display:block;
  filter:var(--pf);transition:transform 9s ease,filter .6s
}
.h-ed-frame:hover img{transform:scale(1.03)}
.h-ed-cap{
  position:absolute;bottom:0;left:0;right:0;
  padding:12px 18px;
  font-size:.44rem;letter-spacing:.28em;text-transform:uppercase;
  color:rgba(216,216,212,.55);
  background:linear-gradient(to top,rgba(19,22,24,.5),transparent)
}
/* Keep shared animations from other heroes still in use */
#cap-hero .h-xl,
#par-hero .h-xl{color:#D8D8D4}
#cap-hero .h-sub,
#par-hero .h-sub{color:rgba(216,216,212,.82)}
#cap-hero .h-tag,
#par-hero .h-tag,
#cap-hero .h-tl,
#par-hero .h-tl{color:rgba(216,216,212,.55)}
.scroll-g{display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0;animation:rise 1.1s 1.32s forwards}
.scroll-g span{font-size:.48rem;letter-spacing:.38em;text-transform:uppercase;color:var(--a3);writing-mode:vertical-rl}
.s-line{width:1px;height:56px;background:linear-gradient(to bottom,var(--cu),transparent);animation:pulse 2.4s ease infinite}
@keyframes pulse{0%{opacity:.22;transform:scaleY(.6)}50%{opacity:.9;transform:scaleY(1)}100%{opacity:.22;transform:scaleY(.6)}}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* ─── PROGRAMMES DROPDOWN ─── */
#nav{position:relative}
.prog-drop{
  position:fixed;top:70px;left:0;right:0;
  background:var(--nav-on);
  border-top:2px solid var(--cu);
  border-bottom:1px solid var(--a4);
  box-shadow:0 16px 56px rgba(0,0,0,.22);
  z-index:998;
  opacity:0;transform:translateY(-8px);
  transition:opacity .22s,transform .22s;
  pointer-events:none
}
.prog-drop.open{opacity:1;transform:none;pointer-events:auto}
.prog-drop-inner{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--a5);
  padding:0
}
.prog-drop-card{
  display:flex;flex-direction:column;
  background:var(--c0);padding:0 0 28px;
  text-decoration:none;
  transition:background .22s
}
.prog-drop-card:hover{background:var(--c1)}
.prog-drop-img{height:220px;overflow:hidden;background:var(--c3);flex-shrink:0}
.prog-drop-img img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 6s ease}
.prog-drop-card:hover .prog-drop-img img{transform:scale(1.04)}
.prog-drop-img--ph{
  display:flex;align-items:center;justify-content:center;
  background:var(--c2)
}
.prog-drop-num{
  font-family:'Bebas Neue',sans-serif;
  font-size:1.3rem;color:var(--cu);
  padding:16px 24px 0;opacity:.7
}
.prog-drop-title{
  font-family:'Cormorant Garamond',serif;
  font-size:1.08rem;font-weight:600;
  color:var(--a0);padding:6px 24px 6px
}
.prog-drop-sub{
  font-size:.82rem;color:var(--a2);
  padding:0 24px;line-height:1.65;flex:1
}
.prog-drop-cta{
  font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cu);padding:14px 24px 0
}

/* ─── STATS BAND ─── */
.stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  background:var(--c2);
  border-top:1px solid var(--cu1);
  border-bottom:1px solid var(--a5);
  transition:background .5s
}
.st{
  padding:36px 28px;text-align:center;
  border-right:1px solid var(--a5);
  position:relative;transition:background .3s
}
.st:last-child{border-right:none}
.st:hover{background:var(--c4)}
.st-n{
  font-family:'Cormorant Garamond',serif;
  font-size:3rem;font-weight:600;line-height:1;
  letter-spacing:-.03em;color:var(--a0);
  margin-bottom:10px;transition:color .4s
}
.st-l{
  font-size:.53rem;font-weight:500;letter-spacing:.24em;
  text-transform:uppercase;color:var(--a2);transition:color .4s
}
.st::after{
  content:'';position:absolute;bottom:0;left:50%;
  transform:translateX(-50%);width:0;height:1px;
  background:var(--cu);transition:width .38s ease
}
.st:hover::after{width:44px}

/* ─── SECTION BACKGROUNDS ─── */
.sA{background:var(--c1);padding:130px 0;transition:background .5s}
.sB{background:var(--c0);padding:130px 0;transition:background .5s}
.sC{background:var(--c2);padding:130px 0;transition:background .5s}
.sX{padding:130px 0;transition:background .5s}
/* .sX = intentional flip — always dark in light mode, always light in dark mode */
.sX{background:#2A2E2E}
[data-theme="dark"] .sX{background:#D8D8D4}

/* ─── INVERTED TEXT OVERRIDES ─── */
.sX .eye{color:rgba(216,216,212,.65)}
[data-theme="dark"] .sX .eye{color:rgba(42,46,46,.55)}
.sX .h-sec{color:#D8D8D4 !important}
[data-theme="dark"] .sX .h-sec{color:#131618 !important}
.sX .body{color:rgba(216,216,212,.80) !important}
[data-theme="dark"] .sX .body{color:rgba(19,22,24,.78) !important}
.sX .body strong{color:#D8D8D4 !important}
[data-theme="dark"] .sX .body strong{color:#131618 !important}
.sX .cu-line{background:rgba(166,106,66,.5)}
[data-theme="dark"] .sX .cu-line{background:rgba(42,46,46,.25)}
#what-building .eye{color:rgba(216,216,212,.65)}
[data-theme="dark"] #what-building .eye{color:rgba(42,46,46,.55)}
/* Mission/Vision + Where We Work cards inside .sX */
.sX .rp-c{background:rgba(255,255,255,.04);border:1px solid rgba(216,216,212,.14)}
[data-theme="dark"] .sX .rp-c{background:rgba(42,46,46,.05);border:1px solid rgba(42,46,46,.13)}
/* rp-h and rp-ul inside .sX flip sections need light text in light mode */
.sX .rp-h{color:#D8D8D4}
[data-theme="dark"] .sX .rp-h{color:#2A2E2E}
.sX .rp-ul li{color:rgba(216,216,212,.72);border-bottom-color:rgba(216,216,212,.12)}
[data-theme="dark"] .sX .rp-ul li{color:rgba(42,46,46,.72);border-bottom-color:rgba(42,46,46,.11)}

/* ═══════════════════════════════════════════════════════
   WHY NOW
═══════════════════════════════════════════════════════ */
#why-now .fr{height:580px}

/* ═══════════════════════════════════════════════════════
   WHO WE ARE
═══════════════════════════════════════════════════════ */
#who-we-are{position:relative;overflow:hidden}
#who-we-are::after{
  content:'AG';position:absolute;bottom:-28px;right:-12px;
  font-family:'Cormorant Garamond',serif;
  font-size:14rem;font-weight:700;
  color:var(--a5);pointer-events:none;line-height:1;
  letter-spacing:-.03em;transition:color .5s
}
#who-we-are .fr{height:640px}
.pullq{
  margin-top:40px;padding:28px 34px;
  background:var(--c4);
  border-left:2px solid var(--cu);
  position:relative;overflow:hidden;
  transition:background .4s
}
.pullq::before{
  content:'\201C';position:absolute;top:-16px;left:24px;
  font-family:'Cormorant Garamond',serif;
  font-size:3.2rem;font-weight:600;
  color:var(--cu);opacity:.35;line-height:1
}
.pullq p{
  font-family:'Cormorant Garamond',serif;
  font-size:1.22rem;font-style:italic;font-weight:400;
  color:var(--a0);line-height:1.68;transition:color .4s
}

/* ═══════════════════════════════════════════════════════
   CROP STRIP
═══════════════════════════════════════════════════════ */
.crops{
  display:grid;grid-template-columns:repeat(3,1fr);
  background:var(--c0);transition:background .5s;
  border-top:1px solid var(--cu1)
}
.crop{position:relative;height:420px;overflow:hidden;cursor:pointer}
.crop img{
  width:100%;height:100%;object-fit:cover;
  filter:var(--pf);
  transition:transform 1.8s cubic-bezier(.16,1,.3,1),filter 1s
}
.crop:hover img{transform:scale(1.07);filter:var(--pfh)}
.crop-ov{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(19,22,24,.96) 0%,rgba(19,22,24,.32) 56%,transparent 100%);
  transition:opacity .4s
}
.crop:hover .crop-ov{opacity:.85}
.crop-body{position:absolute;bottom:0;left:0;right:0;padding:40px 32px 30px}
.crop-cu{
  width:20px;height:1px;background:var(--cu);
  margin-bottom:16px;opacity:.85;
  transition:width .44s cubic-bezier(.16,1,.3,1)
}
.crop:hover .crop-cu{width:42px}
.crop-n{
  font-family:'Cormorant Garamond',serif;
  font-size:1.78rem;font-weight:600;
  color:#D8D8D4;line-height:1;margin-bottom:7px;letter-spacing:.01em
}
.crop-s{
  font-size:.52rem;font-weight:500;letter-spacing:.3em;
  text-transform:uppercase;color:rgba(216,216,212,.7)
}
.crop + .crop{border-left:1px solid var(--a5)}

/* ═══════════════════════════════════════════════════════
   WHAT WE ARE BUILDING
═══════════════════════════════════════════════════════ */
#what-building{padding:0 0 130px;transition:background .5s}
#what-building{background:#2A2E2E}         /* always dark-background (flip section) */
[data-theme="dark"] #what-building{background:#D8D8D4}
.banner{width:100%;height:540px;overflow:hidden;position:relative}
.banner img{
  width:100%;height:100%;object-fit:cover;
  filter:var(--pf);transform:scale(1.06);
  transition:transform 12s ease,filter 1s
}
.banner:hover img{transform:scale(1)}
.banner::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(to right,var(--cu) 0%,transparent 55%);
  opacity:.55;z-index:2
}
.banner-cap{
  position:absolute;bottom:0;left:0;right:0;
  padding:80px 88px 44px;
  background:linear-gradient(to top,rgba(19,22,24,.94),transparent)
}
.banner-txt{
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(2.4rem,5.5vw,5.2rem);
  letter-spacing:.07em;color:#D8D8D4;line-height:1
}
.banner-txt em{color:rgba(216,216,212,.42);font-style:normal}

/* ═══════════════════════════════════════════════════════
   MOUNT ELGON
═══════════════════════════════════════════════════════ */
#mount-elgon{position:relative;overflow:hidden}
.ghost{
  position:absolute;bottom:-52px;right:-16px;
  font-family:'Bebas Neue',sans-serif;
  font-size:22rem;color:var(--a5);
  pointer-events:none;line-height:1;letter-spacing:-.03em;
  transition:color .5s
}
#mount-elgon .fr{height:680px}
.stg{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;margin-top:48px;background:var(--a4)
}
.sc{
  background:var(--c4);padding:30px 26px;
  position:relative;transition:background .3s,transform .3s
}
.sc:hover{background:var(--c5);transform:translateY(-3px)}
.sc::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:var(--cu);
  transform:scaleX(0);transform-origin:left;
  transition:transform .42s ease;opacity:.75
}
.sc:hover::before{transform:scaleX(1)}
.sc-n{
  font-family:'Cormorant Garamond',serif;
  font-size:2.9rem;font-weight:600;
  color:var(--a0);line-height:1;letter-spacing:-.025em;
  margin-bottom:9px;transition:color .4s
}
.sc-n sup{font-size:.9rem;font-weight:400;vertical-align:super}
.sc-l{font-size:.73rem;color:var(--a2);line-height:1.56;transition:color .4s}

/* ═══════════════════════════════════════════════════════
   FLAGSHIP: THE SCIENCE HUB
═══════════════════════════════════════════════════════ */
#flagship{
  background:var(--c0);
  padding:0 0 100px;
  border-top:1px solid var(--a5);
  border-bottom:1px solid var(--a5);
  transition:background .5s,border-color .4s
}
/* ── Flagship header block ── */
.fls-hd{
  padding:64px 0 52px;
  border-bottom:1px solid var(--a5);
  margin-bottom:64px;
  transition:border-color .4s
}
.fls-h{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.6rem,4.2vw,4rem);font-weight:600;
  line-height:1.04;letter-spacing:-.02em;
  color:var(--a0);margin:0 0 18px;
  transition:color .4s
}
.fls-h--xl{
  font-size:clamp(3.8rem,7vw,7.5rem);
  line-height:.94;letter-spacing:-.035em;
  margin:16px 0 0;
  font-family:'Cormorant Garamond',serif;font-weight:600;
  color:var(--a0);transition:color .4s
}
.fls-collab-l{
  font-size:.96rem;font-weight:600;
  color:var(--a1);margin-top:32px;line-height:1.4;
  transition:color .4s
}
.fls-collab-p{
  font-size:.96rem;font-weight:600;
  color:var(--a1);margin-top:4px;line-height:1.4;
  transition:color .4s
}
/* ── Flagship two-column panel (reused) ── */
.fls-panel{
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--a4);
  overflow:hidden;
  min-height:560px;
  transition:border-color .4s
}
.fls-img-col{
  position:relative;overflow:hidden;
  background:var(--c3);
  transition:background .4s
}
.fls-img-col img{
  width:100%;height:100%;object-fit:cover;
  filter:var(--pf);
  transition:transform 9s ease,filter .6s
}
.fls-panel:hover .fls-img-col img{transform:scale(1.04)}
.fls-img-cap{
  position:absolute;bottom:0;left:0;right:0;
  padding:14px 24px;
  font-size:.44rem;letter-spacing:.26em;text-transform:uppercase;
  color:rgba(216,216,212,.52);
  background:linear-gradient(to top,rgba(19,22,24,.68),transparent)
}
.fls-body{
  padding:68px 60px;
  background:var(--c0);
  display:flex;flex-direction:column;
  border-left:1px solid var(--a4);
  transition:background .5s,border-color .4s
}
.fls-lbl{
  font-size:.44rem;font-weight:500;letter-spacing:.38em;text-transform:uppercase;
  color:var(--cu);display:block;margin-bottom:20px
}
.fls-sub-h{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.55rem,2.6vw,2.3rem);font-weight:600;
  line-height:1.2;color:var(--a0);
  margin:0 0 22px;transition:color .4s
}
.fls-rule{
  width:44px;height:1px;background:var(--cu);
  margin-bottom:28px;opacity:.75
}
/* ── Core functions strip ── */
.fls-core{
  display:flex;align-items:baseline;flex-wrap:wrap;
  gap:6px 0;padding:24px 0;
  border-top:1px solid var(--a5);
  margin-top:64px;
  transition:border-color .4s
}
.fls-core-lbl{
  font-size:.5rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--a1);margin-right:14px;flex-shrink:0;white-space:nowrap;
  transition:color .4s
}
.fls-core-list{
  display:flex;flex-wrap:wrap;list-style:none;gap:8px
}
.fls-core-list li {
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: .04em;
    color: #E4E1DA;
    padding: 6px 14px;
    border: 1px solid #E4E1DA;
    background: #1E2228;
    transition: background .25s, border-color .25s, color .25s;
}
.fls-core-list li:hover{background:var(--c2);border-color:var(--cu1);color:var(--a0)}

/* ═══════════════════════════════════════════════════════
   REACH + PARTNERS
═══════════════════════════════════════════════════════ */
/* Regional Footprint body spacing */
.reg-body{max-width:840px;margin-top:32px}
.reg-body .body+.body{margin-top:20px}

/* Partner With Us two-column grid */
.ptw-grid{
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:88px;align-items:center
}
.ptw-frame{
  position:relative;border:1px solid var(--a4);
  overflow:hidden;transition:border-color .4s
}
.ptw-frame img{
  width:100%;height:540px;object-fit:cover;display:block;
  filter:var(--pf);transition:transform 9s ease,filter .6s
}
.ptw-frame:hover img{transform:scale(1.03)}
.ptw-placeholder{
  height:540px;background:var(--c2);
  display:flex;align-items:center;justify-content:center;
  transition:background .4s
}
.ptw-placeholder span{
  font-size:.5rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--a3);
  transition:color .4s
}
.ptw-cap{
  position:absolute;bottom:0;left:0;right:0;
  padding:12px 18px;
  font-size:.44rem;letter-spacing:.26em;text-transform:uppercase;
  color:rgba(216,216,212,.55);
  background:linear-gradient(to top,rgba(19,22,24,.5),transparent)
}
.rp-g{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.rp-c{padding:60px 56px;position:relative;transition:background .5s}
.rp-c{background:var(--c0);border:1px solid var(--a4)}
[data-theme="dark"] .rp-c{background:var(--c2)}
.rp-c::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:var(--cu);opacity:.42;transition:opacity .4s
}
.rp-c:hover::before{opacity:.75}
.rp-h{
  font-family:'Cormorant Garamond',serif;
  font-size:2rem;font-weight:600;line-height:1.14;
  margin:16px 0 32px;
  color:var(--a0);transition:color .4s
}
.rp-ul{list-style:none}
.rp-ul li{
  display:flex;gap:18px;padding:16px 0;
  font-size:.96rem;line-height:1.76;
  color:var(--a2);border-bottom:1px solid var(--a5);transition:color .4s,border-color .4s
}
[data-theme="dark"] .rp-ul li{color:rgba(216,216,212,.78)}
.rp-ul li:last-child{border-bottom:none}
.rp-ul li::before{
  content:'';flex-shrink:0;
  width:5px;height:5px;border-radius:50%;
  margin-top:12px;background:var(--cu);opacity:.65
}

/* ═══════════════════════════════════════════════════════
   PROGRAMME CARDS  (.prg-g / .prg-c)
═══════════════════════════════════════════════════════ */
.prg-g{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-top:8px;
  background:var(--a5)
}
.prg-c{
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
  transition:background .45s,box-shadow .35s
}
.prg-c{background:var(--c0);border:1px solid var(--a5)}
[data-theme="dark"] .prg-c{background:var(--c1)}
.prg-c--feat{background:#2A2E2E}        /* featured card always dark — kept for legacy */
[data-theme="dark"] .prg-c--feat{background:#1a2028}
.prg-c--feat::after{
  content:'';
  position:absolute;inset:0;
  border:2px solid var(--cu);opacity:.22;pointer-events:none
}
.prg-img{
  width:100%;height:260px;overflow:hidden;flex-shrink:0;
  background:var(--c3);transition:background .4s
}
.prg-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .55s ease
}
.prg-c:hover .prg-img img{transform:scale(1.04)}
.prg-body{
  display:flex;flex-direction:column;flex:1;
  padding:40px 44px 44px
}
.prg-num{
  font-family:'Bebas Neue',sans-serif;
  font-size:2.8rem;line-height:1;
  color:var(--cu);opacity:.72;
  margin-bottom:14px;display:block
}
.prg-title{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.45rem;font-weight:600;line-height:1.25;
  margin:0 0 8px;transition:color .5s
}
.prg-title{color:#2A2E2E}
[data-theme="dark"] .prg-title{color:#D8D8D4}
.prg-sub{
  font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  opacity:.62;margin:0 0 18px;transition:color .5s
}
.prg-sub{color:rgba(42,46,46,.68)}
[data-theme="dark"] .prg-sub{color:rgba(240,239,235,.62)}
.prg-body .body{
  font-size:.78rem;line-height:1.75;
  flex:1;margin-bottom:28px;transition:color .5s
}
.prg-body .body{color:rgba(42,46,46,.72)}
[data-theme="dark"] .prg-body .body{color:rgba(240,239,235,.72)}
.prg-areas{margin-top:auto;margin-bottom:0}
.prg-areas .eye{
  display:block;margin-bottom:10px;
  color:rgba(42,46,46,.52);font-size:.48rem
}
[data-theme="dark"] .prg-areas .eye{color:rgba(240,239,235,.45)}
/* View programme link */
.prg-view{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;margin-top:28px;
  font-size:.52rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  text-decoration:none;
  background:var(--a0);color:var(--c0);
  padding:14px 22px;
  transition:background .25s
}
.prg-view svg{width:13px;height:13px;stroke:var(--c0);flex-shrink:0;transition:transform .22s}
.prg-view:hover{background:var(--cu)}
.prg-view:hover svg{transform:translateX(4px)}
/* button reset for .prg-view--modal */
button.prg-view{border:none;cursor:pointer;width:100%}

/* Slim card body (no description / no key areas) */
.prg-body--slim{padding:28px 32px 32px;display:flex;flex-direction:column}
.prg-body--slim .prg-num{margin-bottom:10px}
.prg-body--slim .prg-sub{margin-bottom:0;flex:1}
.prg-body--slim .prg-view{margin-top:24px}
/* Increase card image height when body is slim */
.prg-c .prg-img{height:300px}

/* ── Programme detail modal ── */
.prog-modal{
  position:fixed;inset:0;z-index:2000;
  display:flex;align-items:center;justify-content:center;
  padding:20px
}
.prog-modal[hidden]{display:none}
.prog-modal__overlay{
  position:absolute;inset:0;
  background:rgba(32,36,36,.78);
  backdrop-filter:blur(4px)
}
.prog-modal__panel{
  position:relative;z-index:1;
  background:var(--c0);
  width:100%;max-width:780px;
  max-height:90vh;overflow-y:auto;
  display:flex;flex-direction:column;
  box-shadow:0 32px 80px rgba(0,0,0,.45)
}
.prog-modal__close{
  position:absolute;top:16px;right:16px;
  background:var(--a0);color:var(--c0);
  border:none;cursor:pointer;
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  z-index:2;transition:background .22s
}
.prog-modal__close:hover{background:var(--cu)}
.prog-modal__img-wrap{height:320px;overflow:hidden;flex-shrink:0}
.prog-modal__img-wrap img{width:100%;height:100%;object-fit:cover;object-position:center}
.prog-modal__body{padding:36px 44px 48px}
.prog-modal__num{
  font-family:'Bebas Neue',sans-serif;
  font-size:3rem;line-height:1;color:var(--cu);opacity:.7;
  display:block;margin-bottom:10px
}
.prog-modal__title{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.6rem,3vw,2.4rem);font-weight:600;
  color:var(--a0);margin:0 0 10px
}
.prog-modal__sub{
  font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(42,46,46,.62);margin:0 0 24px
}
[data-theme="dark"] .prog-modal__sub{color:rgba(240,239,235,.55)}
.prog-modal__text{
  font-size:.82rem;line-height:1.8;
  color:rgba(42,46,46,.78);margin-bottom:32px
}
[data-theme="dark"] .prog-modal__text{color:rgba(240,239,235,.75)}
.prog-modal__areas-lbl{display:block;margin-bottom:12px;font-size:.48rem}
.prog-modal__areas-list{margin:0;padding:0}

.sec-ctr{text-align:center;margin-bottom:76px}
.sec-ctr .h-sec{transition:color .5s}  /* colour inherits from .h-sec var(--a0) or .sX .h-sec override */
.sec-ctr .eye{justify-content:center}    /* colour inherits from .eye var(--a2) or .sX .eye override */
/* Programmes section italic sub-heading */
.prg-sub-h{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.8rem,3vw,2.8rem);font-weight:400;font-style:italic;
  color:var(--a1);text-align:center;
  margin:8px auto 32px;max-width:680px;line-height:1.18;
  transition:color .4s
}

/* ═══════════════════════════════════════════════════════
   HOW IT IS CARRIED
═══════════════════════════════════════════════════════ */
#how-carried .fr{height:540px}
.pillars{display:flex;flex-direction:column;margin-top:36px}
.pillar{
  display:flex;gap:22px;padding:24px 0;
  border-bottom:1px solid var(--a5);
  transition:border-color .3s
}
.pillar:last-child{border-bottom:none}
.pillar:hover{border-bottom-color:var(--cu1)}
.pillar-ico{
  flex-shrink:0;width:44px;height:44px;
  background:var(--c4);border:1px solid var(--a4);
  display:flex;align-items:center;justify-content:center;
  transition:background .3s,border-color .3s
}
.pillar:hover .pillar-ico{background:var(--c5);border-color:var(--cu1)}
.pillar-ico svg{width:17px;height:17px}
.pillar-nm{font-size:.86rem;font-weight:500;color:var(--a0);margin-bottom:5px;transition:color .4s}
.pillar-ds{font-size:.85rem;color:var(--a2);line-height:1.72;transition:color .4s}

/* ═══════════════════════════════════════════════════════
   IMPACT
═══════════════════════════════════════════════════════ */
#impact{position:relative;padding:220px 0;overflow:hidden}
#impact::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(to right,transparent 0%,var(--cu) 30%,var(--cu) 70%,transparent 100%);
  opacity:.32;z-index:2
}
.ibg{position:absolute;inset:0;filter:var(--pfbg)}
.ibg img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
#impact .inn{
  position:relative;z-index:2;text-align:center;
  max-width:920px;margin:0 auto;padding:0 88px
}
#impact h2{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3rem,6.5vw,5.8rem);font-weight:600;
  line-height:1.02;color:#D8D8D4;
  margin:18px 0 44px;letter-spacing:-.02em
}
#impact h2 em{font-style:italic;font-weight:300;color:rgba(216,216,212,.50)}
#impact p{
  font-size:1.04rem;color:rgba(216,216,212,.82);
  line-height:1.96;margin-bottom:22px
}

/* ═══════════════════════════════════════════════════════
   WHAT GUIDES IT
═══════════════════════════════════════════════════════ */
.top-c{text-align:center;margin-bottom:76px}
.top-c .h-sec{margin-top:14px}
.prg{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:var(--a5)
}
.pr{
  background:var(--c1);padding:44px 48px;
  display:flex;gap:22px;align-items:flex-start;
  transition:background .3s;position:relative;overflow:hidden
}
.pr:hover{background:var(--c4)}
.pr::before{
  content:'';position:absolute;top:0;left:0;
  width:1px;height:100%;background:var(--cu);
  transform:scaleY(0);transform-origin:top;
  transition:transform .42s ease;opacity:.65
}
.pr:hover::before{transform:scaleY(1)}
.pr-n{
  font-family:'Cormorant Garamond',serif;
  font-size:4rem;font-weight:600;
  color:var(--a4);line-height:1;flex-shrink:0;
  width:58px;transition:color .3s;letter-spacing:-.02em
}
.pr:hover .pr-n{color:var(--a3)}
.pr-t{font-size:.97rem;color:var(--a1);line-height:1.88;font-weight:300;transition:color .4s}
.pr.feat{
  background:var(--c4);grid-column:1/-1;
  border-top:1px solid rgba(166,106,66,.40)
}
.pr.feat .pr-n{color:var(--a3)}
.pr.feat .pr-t{font-size:1.08rem;color:var(--a0)}

/* ═══════════════════════════════════════════════════════
   IMAGINE
═══════════════════════════════════════════════════════ */
#imagine{position:relative;min-height:88vh;display:flex;align-items:center;overflow:hidden}
.im-bg{
  position:absolute;inset:0;filter:var(--pfbg);
  transform:scale(1.06);transition:transform 18s ease
}
.im-bg img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
#imagine:hover .im-bg{transform:scale(1)}
.im-ov{
  position:absolute;inset:0;
  background:linear-gradient(106deg,rgba(19,22,24,.98) 0%,rgba(19,22,24,.78) 48%,rgba(19,22,24,.18) 100%)
}
.im-vl{
  position:absolute;top:80px;bottom:80px;left:50%;
  width:1px;
  background:linear-gradient(to bottom,transparent,var(--cu) 28%,var(--cu) 72%,transparent);
  opacity:.2;z-index:3
}
#imagine .inn{position:relative;z-index:2;padding:0 88px;max-width:780px}
#imagine h2{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3rem,6vw,5.4rem);font-weight:600;
  line-height:1.04;color:#D8D8D4;
  margin:18px 0 36px;letter-spacing:-.02em
}
#imagine p{font-size:1.02rem;color:rgba(216,216,212,.80);line-height:1.96;margin-bottom:20px}

/* ═══════════════════════════════════════════════════════
   CLOSING
═══════════════════════════════════════════════════════ */
#closing{
  /* Always dark bg — lock text to light values regardless of theme */
  --a0:#F0EFEB;
  --a1:rgba(240,239,235,.94);
  --a2:rgba(240,239,235,.70);
  --a3:rgba(240,239,235,.44);
  --a4:rgba(240,239,235,.13);
  --a5:rgba(240,239,235,.06);
  position:relative;padding:220px 0 160px;overflow:hidden}
.cl-bg{position:absolute;inset:0;filter:var(--pfbg)}
.cl-bg img{width:100%;height:100%;object-fit:cover;object-position:center 62%}
.cl-ov{
  position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(19,22,24,.42),rgba(19,22,24,.95))
}
#closing .inn{
  position:relative;z-index:2;text-align:center;
  max-width:980px;margin:0 auto;padding:0 88px
}
.cl-div{
  width:44px;height:1px;background:var(--cu);
  margin:0 auto 48px;opacity:.65
}
.cl-s{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.55rem,3.4vw,2.55rem);
  font-weight:400;font-style:italic;line-height:1.66;
  color:var(--a1);margin-bottom:28px
}
.cl-s strong{font-style:normal;font-weight:600;color:var(--a0)}
.cl-call{
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(1rem,2vw,1.3rem);letter-spacing:.36em;
  color:rgba(166,106,66,.62);
  margin:60px 0 64px;line-height:1.56
}
.cl-btns{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}

/* ── Bank Transfer Panel — clean, discreet, document-style ── */
.bank-panel{
  margin:56px auto 0;
  max-width:540px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  text-align:left;
  position:relative;
  overflow:hidden
}
.bank-panel::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:1px;
  background:var(--cu);opacity:.45
}
.bank-panel__hd{
  padding:26px 32px 18px;
  border-bottom:1px solid rgba(255,255,255,.07)
}
.bank-panel__eyebrow{
  display:block;
  font-size:.42rem;font-weight:500;letter-spacing:.36em;text-transform:uppercase;
  color:var(--cu);opacity:.75;margin-bottom:8px
}
.bank-panel__bank{
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:400;
  color:rgba(216,216,212,.60);letter-spacing:.03em
}
.bank-panel__body{padding:0 32px}
.bank-panel__row{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:20px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06)
}
.bank-panel__row:last-child{border-bottom:none}
.bank-panel__row--accent{
  margin:0 -32px;padding:12px 32px;
  background:rgba(166,106,66,.04)
}
.bank-panel__row--accent .bank-panel__label{color:rgba(216,216,212,.44)}
.bank-panel__row--accent .bank-panel__value{color:rgba(216,216,212,.82)}
.bank-panel__label{
  font-size:.42rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(216,216,212,.36);white-space:nowrap;flex-shrink:0
}
.bank-panel__value{
  font-family:'DM Sans',sans-serif;font-size:.84rem;font-weight:400;
  color:rgba(216,216,212,.72);letter-spacing:.03em;text-align:right
}
.bank-panel__value--num{
  font-family:ui-monospace,'SFMono-Regular','Courier New',monospace;
  font-size:.79rem;font-weight:400;letter-spacing:.12em
}
.bank-panel__note{
  margin:0;padding:12px 32px 22px;
  border-top:1px solid rgba(255,255,255,.06);
  font-size:.69rem;color:rgba(216,216,212,.38);line-height:1.72;font-style:italic
}

/* ═══════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════ */
footer{
  background:var(--c0);
  border-top:1px solid var(--cu1);
  padding:100px 88px 52px;
  transition:background .5s
}
.f-g{
  max-width:1360px;margin:0 auto;
  display:grid;grid-template-columns:2.4fr 1fr 1fr;
  gap:96px;margin-bottom:72px
}
.f-br{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.f-nm{
  font-family:'Cormorant Garamond',serif;
  font-size:1.58rem;font-weight:600;
  color:var(--a0);letter-spacing:.04em;transition:color .4s
}
.f-tl{
  font-size:.52rem;font-weight:500;letter-spacing:.34em;text-transform:uppercase;
  color:var(--a2);margin-bottom:18px;transition:color .4s
}
.f-ds{font-size:.90rem;color:var(--a2);line-height:1.96;max-width:370px;transition:color .4s}
.f-ct{
  font-size:.52rem;font-weight:500;letter-spacing:.34em;text-transform:uppercase;
  color:var(--a2);margin-bottom:26px;transition:color .4s
}
.f-ls{list-style:none}
.f-ls li{margin-bottom:13px}
.f-ls a{font-size:.90rem;color:var(--a2);transition:color .25s}
.f-ls a:hover{color:var(--a0)}
.f-bot{
  max-width:1360px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;
  border-top:1px solid var(--a5);padding-top:28px;
  transition:border-color .4s
}
.f-cp{font-size:.73rem;color:var(--a2);transition:color .4s}

/* ─── MOBILE ─── */
@media(max-width:1080px){
  nav{display:flex;justify-content:space-between;padding-left:28px;padding-right:28px}
  footer{padding-left:28px;padding-right:28px}
  .W,.W2{padding:0 28px}
  .h-body,.h-foot,.banner-cap,#impact .inn,#imagine .inn,#closing .inn{padding-left:28px;padding-right:28px}
  .h-h1{font-size:clamp(3.2rem,11vw,5.5rem)}
  #hero::before,.im-vl{display:none}
  .stats{grid-template-columns:1fr}
  .st{border-right:none;border-bottom:1px solid var(--a5)}
  .st:last-child{border-bottom:none}
  .grid{grid-template-columns:1fr;gap:48px}
  #who-we-are .fr,#how-carried .fr{order:-1}
  #why-now .fr{height:300px}
  #who-we-are .fr{height:300px}
  #mount-elgon .fr,#how-carried .fr{height:280px}
  .banner{height:280px}
  .banner-cap{padding:28px}
  .crops{grid-template-columns:1fr}
  .crop{height:280px}
  .crop + .crop{border-left:none;border-top:1px solid var(--a5)}
  .rp-g{grid-template-columns:1fr}
  .rp-c{padding:44px 32px}
  .prg-g{grid-template-columns:1fr}
  .prg-body{padding:28px 28px 32px}
  .h-ed{grid-template-columns:1fr;gap:40px}
  .h-ed-frame img{height:280px}
  .fls-panel{grid-template-columns:1fr}
  .fls-img-col{height:280px}
  .fls-body{padding:36px 28px;border-left:none;border-top:1px solid var(--a4)}
  .stg{grid-template-columns:1fr 1fr}
  .ptw-grid{grid-template-columns:1fr;gap:40px}
  .ptw-frame img,.ptw-placeholder{height:280px}
  .fls-hd{padding:44px 0 36px}
  .prg{grid-template-columns:1fr}
  .pr.feat{grid-column:1}
  .f-g{grid-template-columns:1fr;gap:48px}
  .f-bot{flex-direction:column;gap:16px}
  .ghost,#who-we-are::after{display:none}
  .n-links{display:none}
}

/* ═══════════════════════════════════════════════════════
   ALTOWGRO CAPITAL — PAGE-SPECIFIC STYLES
═══════════════════════════════════════════════════════ */

/* ── Capital hero (reuses #hero, add id override) ── */
#cap-hero{
  position:relative;min-height:100vh;display:flex;flex-direction:column;overflow:hidden
}
#cap-hero .cap-hero-vid{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center 36%;
  filter:var(--pfh2);transition:filter .6s
}
#cap-hero .cap-hero-img{display:none}
@media(prefers-reduced-motion:reduce){
  #cap-hero .cap-hero-vid{display:none}
  #cap-hero .cap-hero-img{display:block}
}

/* ── Intro band ── */
.cap-band{
  background:var(--c2);
  border-top:1px solid var(--cu1);
  border-bottom:1px solid var(--a5);
  padding:52px 0;
  transition:background .5s
}
.cap-band-txt{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.22rem,2.4vw,1.78rem);
  font-weight:400;font-style:italic;
  color:var(--a0);line-height:1.72;
  text-align:center;
  transition:color .4s
}
.cap-band-txt strong{font-style:normal;font-weight:600;color:var(--cu)}

/* ── 6-card grid ── */
.cap-grid6{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--a5)
}
.cap-card{
  background:var(--c3);
  padding:44px 40px;
  position:relative;overflow:hidden;
  transition:background .3s
}
.cap-card:hover{background:var(--c4)}
.cap-card::before{
  content:'';position:absolute;top:0;left:0;
  width:100%;height:2px;background:var(--cu);
  transform:scaleX(0);transform-origin:left;
  transition:transform .46s ease;opacity:.75
}
.cap-card:hover::before{transform:scaleX(1)}
.cap-card-ico{
  width:52px;height:52px;
  background:var(--cu3);border:1px solid var(--cu1);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:28px;overflow:hidden;flex-shrink:0;
  transition:background .3s,border-color .3s
}
.cap-card:hover .cap-card-ico{background:rgba(166,106,66,.22);border-color:var(--cu)}
.cap-card-ico svg{width:20px;height:20px;opacity:.75;color:var(--cu);transition:opacity .3s}
.cap-card:hover .cap-card-ico svg{opacity:1;stroke:var(--cu)}
.cap-card-t{
  font-family:'Cormorant Garamond',serif;
  font-size:1.42rem;font-weight:600;
  color:var(--a0);margin-bottom:14px;line-height:1.15;
  transition:color .4s
}
.cap-card-b{
  font-size:.88rem;color:var(--a2);
  line-height:1.82;
  transition:color .4s
}

/* ── Two-case split ── */
.cap-cases{
  display:grid;grid-template-columns:1fr 1fr;
  gap:3px
}
.cap-case{
  background:var(--c3);
  padding:60px 56px;
  position:relative;
  transition:background .5s
}
.cap-case::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:1px;background:var(--a4);
  transition:background .4s
}
.cap-case-cu::before{background:var(--cu);opacity:.55}
.cap-case-cu:hover::before{opacity:1}
.cap-case-head{display:flex;flex-direction:column}
.cap-case-t{
  font-family:'Cormorant Garamond',serif;
  font-size:1.9rem;font-weight:600;
  color:var(--a0);margin-bottom:10px;line-height:1.1;
  transition:color .4s
}
.cap-case-sub{
  font-size:.78rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cu);
  margin-bottom:30px
}
.cap-case-p{
  font-size:.92rem;color:var(--a1);
  line-height:1.92;margin-bottom:18px;
  transition:color .4s
}

/* ── Partner types list ── */
.cap-partners{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:var(--a5);
  margin-bottom:52px
}
.cap-pt{
  background:var(--c1);
  padding:32px 38px;
  display:flex;gap:20px;align-items:flex-start;
  transition:background .3s;position:relative
}
.cap-pt:hover{background:var(--c4)}
.cap-pt::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:var(--cu);transform:scaleX(0);transform-origin:left;
  transition:transform .42s ease;opacity:.6
}
.cap-pt:hover::before{transform:scaleX(1)}
.cap-pt-dot{
  flex-shrink:0;width:6px;height:6px;border-radius:50%;
  background:var(--cu);margin-top:8px;opacity:.75
}
.cap-pt-t{
  font-size:.96rem;font-weight:500;
  color:var(--a0);margin-bottom:7px;
  transition:color .4s
}
.cap-pt-d{
  font-size:.86rem;color:var(--a2);
  line-height:1.76;
  transition:color .4s
}
.cap-found-label{
  text-align:center;
  font-family:'Cormorant Garamond',serif;
  font-size:1.32rem;font-style:italic;
  color:var(--a1);
  transition:color .4s
}
.cap-found-label strong{font-style:normal;color:var(--a0)}

/* ── Capital CTA section reuses #impact styles ── */
#cap-cta{position:relative;padding:220px 0;overflow:hidden}
#cap-cta::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(to right,transparent 0%,var(--cu) 30%,var(--cu) 70%,transparent 100%);
  opacity:.32;z-index:2
}
#cap-cta .ibg{position:absolute;inset:0;filter:var(--pfbg)}
#cap-cta .ibg img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
#cap-cta .inn{
  position:relative;z-index:2;text-align:center;
  max-width:920px;margin:0 auto;padding:0 88px
}
#cap-cta h2{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3rem,6.5vw,5.8rem);font-weight:600;
  line-height:1.02;color:#D8D8D4;
  margin:18px 0 32px;letter-spacing:-.02em
}
#cap-cta h2 em{font-style:italic;font-weight:300;color:rgba(216,216,212,.50)}
#cap-cta .eye{display:block;text-align:center}
#cap-cta .eye::before{display:none}

/* ── Capital mobile ── */
@media(max-width:1080px){
  .cap-grid6{grid-template-columns:1fr}
  .cap-cases{grid-template-columns:1fr}
  .cap-partners{grid-template-columns:1fr}
  .cap-case{padding:44px 28px}
  #cap-cta .inn{padding-left:28px;padding-right:28px}
  .cap-contact-grid{grid-template-columns:1fr}
  .cap-contact-col{padding:44px 28px}
  .par-grid{grid-template-columns:repeat(2,1fr)}
}

/* ═══════════════════════════════════════════════════════
   PARTNERS PAGE
═══════════════════════════════════════════════════════ */
#par-hero{position:relative;min-height:60vh;display:flex;flex-direction:column;overflow:hidden}
.par-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--a4);
  margin-top:64px
}
.par-logo-item{
  background:var(--c1);
  padding:44px 32px;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center;
  transition:background .3s;
  position:relative;overflow:hidden
}
.par-logo-item:hover{background:var(--c3)}
.par-logo-item::before{
  content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
  background:var(--cu);transform:scaleX(0);transform-origin:left;
  transition:transform .42s ease;opacity:.6
}
.par-logo-item:hover::before{transform:scaleX(1)}
.par-logo-item img{
  width:auto;height:52px;
  object-fit:contain;
  filter:grayscale(1) brightness(.8) contrast(1.05);
  opacity:.65;
  transition:filter .3s,opacity .3s
}
.par-logo-item:hover img{filter:none;opacity:1}
.par-logo-name{
  font-size:.68rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--a2);
  text-align:center;margin-top:14px;
  transition:color .4s
}

/* ── Contact section ── */
#cap-contact{background:var(--c1);padding:130px 0;transition:background .5s}
.cap-contact-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:var(--a5)
}
.cap-contact-col{
  background:var(--c2);
  padding:60px 64px;
  transition:background .5s
}
.cap-contact-lbl{
  display:block;
  font-size:.56rem;font-weight:500;letter-spacing:.34em;
  text-transform:uppercase;color:var(--cu);
  margin-bottom:16px
}
.cap-contact-name{
  font-family:'Cormorant Garamond',serif;
  font-size:1.82rem;font-weight:600;
  color:var(--a0);margin-bottom:32px;line-height:1.12;
  transition:color .4s
}
.cap-contact-item{
  display:flex;align-items:flex-start;gap:16px;
  margin-bottom:16px
}
.cap-contact-ico{flex-shrink:0;margin-top:3px;width:16px;height:16px;overflow:hidden}
.cap-contact-ico svg{width:16px;height:16px;display:block;opacity:.7;color:var(--cu)}
.cap-contact-txt{
  font-size:.92rem;color:var(--a1);
  line-height:1.72;
  transition:color .4s
}
.cap-contact-txt a{color:var(--cu);transition:color .3s}
.cap-contact-txt a:hover{color:var(--a0)}

/* ── Entity toggle in hero ── */
.cap-et{
  display:inline-flex;align-items:center;gap:16px;
  background:none;border:none;padding:0;cursor:pointer;
  font-family:'DM Sans',sans-serif;
  font-size:.52rem;font-weight:500;letter-spacing:.46em;text-transform:uppercase;
  margin-bottom:36px;opacity:0;animation:rise 1.1s .2s forwards;
  transition:opacity .3s
}
.cap-et::before{content:'';width:28px;height:1px;background:var(--cu);opacity:.6;flex-shrink:0}
.cap-et-a{color:var(--cu);transition:color .3s}
.cap-et-sep{color:rgba(216,216,212,.28)}
.cap-et-b{color:rgba(216,216,212,.42);transition:color .3s}
.cap-et:hover .cap-et-a,.cap-et:hover .cap-et-b{color:rgba(216,216,212,.72)}
.cap-et[data-active="b"] .cap-et-a{color:rgba(216,216,212,.42)}
.cap-et[data-active="b"] .cap-et-b{color:var(--cu)}

/* ── Entity distinction — Capital vs Foundation columns ── */
.col-capital{border-top:3px solid var(--cu)}
.col-foundation{border-top:3px solid #4A7C59}
.cap-entity-hdr{display:flex;align-items:flex-start;gap:18px;margin-bottom:32px}
.cap-entity-mono{
  width:48px;height:48px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:'Cormorant Garamond',serif;font-size:1.72rem;font-weight:700;
  background:var(--cu2);color:var(--cu);
  border:1px solid var(--cu1)
}
.cap-entity-mono-f{background:rgba(74,124,89,.12);color:#4A7C59;border-color:rgba(74,124,89,.28)}
.cap-entity-meta{display:flex;flex-direction:column;justify-content:center;gap:6px}
.cap-entity-type{
  display:inline-block;font-size:.44rem;font-weight:600;letter-spacing:.34em;
  text-transform:uppercase;padding:3px 9px;border-radius:2px
}
.type-capital{background:var(--cu2);color:var(--cu)}
.type-foundation{background:rgba(74,124,89,.12);color:#4A7C59}
.cap-entity-desc{
  font-size:.88rem;color:var(--a2);line-height:1.72;
  margin-bottom:28px;font-style:italic;
  border-left:2px solid var(--a5);padding-left:14px;
  transition:color .4s
}

/* ── Section ordering (Foundation page) ── */
#fnd-sections{display:flex;flex-direction:column}

/* ── Blog / News Cards ── */
.blog-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px}
.blog-c{display:flex;flex-direction:column;background:var(--c1);border:1px solid var(--a4);overflow:hidden;transition:transform .3s,box-shadow .3s}
.blog-c:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.12)}
.blog-img{height:220px;overflow:hidden}
.blog-img img{height:100%;width:100%;object-fit:cover;transition:transform .5s}
.blog-c:hover .blog-img img{transform:scale(1.04)}
.blog-body{padding:28px 32px 32px;flex:1;display:flex;flex-direction:column}
.blog-meta{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.blog-date{font-size:.75rem;letter-spacing:.06em;color:var(--a2);text-transform:uppercase}
.blog-cat{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cu);border:1px solid var(--cu1);padding:2px 8px}
.blog-title{font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-weight:500;line-height:1.3;margin-bottom:12px}
.blog-title a{color:inherit;text-decoration:none}
.blog-title a:hover{color:var(--cu)}
.blog-excerpt{font-size:.9rem;color:var(--a2);line-height:1.7;flex:1;margin-bottom:20px}
.blog-read-more{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cu);text-decoration:none;margin-top:auto}
.blog-read-more svg{width:14px;height:14px}
.fnd-blog-sec .blog-g,.land-articles .blog-g{margin-top:0}
.land-articles{padding:64px 0;width:100%;max-width:1100px;margin:0 auto}
.land-art-hd{text-align:center;margin-bottom:44px}

/* ── Single widget layout (when only one is visible) ── */
.widgets-single{grid-template-columns:1fr;max-width:620px;margin-left:auto;margin-right:auto}
