/* ===================================================================
   InovaGreen Kenya — Maji Yetu · Our Water
   Custom CSS, mobile-first. No external dependency (except fonts).
   =================================================================== */

/* ---------- Variables ---------- */
:root{
  --forest:#1B5E20;          /* deep green */
  --leaf:#388E3C;            /* leaf green */
  --water:#29B6F6;           /* water blue */
  --sky:#4FC3F7;             /* light water blue */
  --amber:#E8A33D;           /* savanna amber — rare accent */
  --offwhite:#FBFBF7;        /* background */
  --mist:#EEF3F0;
  --ink:#13241b;             /* main text */
  --ink-soft:#46594f;        /* secondary text */
  --line:#e3e9e4;
  --forest-deep:#0f3d16;

  --sh-sm:0 2px 10px rgba(15,36,25,.06);
  --sh-md:0 12px 32px rgba(15,36,25,.10);
  --sh-lg:0 24px 60px rgba(15,36,25,.16);
  --r-sm:10px; --r-md:16px; --r-lg:24px;
  --maxw:1180px;
  --pad:clamp(1.1rem,4vw,2rem);
  --ff-display:"Sora","Segoe UI",system-ui,sans-serif;
  --ff-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --t-fast:.25s cubic-bezier(.4,0,.2,1);
  --t-med:.5s cubic-bezier(.4,0,.2,1);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ font-family:var(--ff-body); color:var(--ink); background:var(--offwhite);
  line-height:1.65; font-size:clamp(1rem,.96rem + .2vw,1.075rem); overflow-x:hidden; }
img,svg,video{ display:block; max-width:100%; }
a{ color:var(--leaf); text-decoration:none; transition:color var(--t-fast); }
a:hover{ color:var(--forest); }
h1,h2,h3,h4{ font-family:var(--ff-display); line-height:1.12; color:var(--forest); font-weight:700; letter-spacing:-.015em; }
h2{ font-size:clamp(1.7rem,1.2rem + 2.2vw,2.55rem); }
h3{ font-size:clamp(1.12rem,1rem + .6vw,1.35rem); }
strong{ font-weight:600; color:var(--ink); }
::selection{ background:var(--amber); color:#3a2600; }
.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.narrow{ max-width:820px; }
.center{ text-align:center; }

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{ outline:3px solid var(--water); outline-offset:2px; border-radius:4px; }
.skip-link{ position:absolute; left:-999px; top:0; z-index:1000; background:var(--forest); color:#fff; padding:.7rem 1.1rem; border-radius:0 0 var(--r-sm) 0; }
.skip-link:focus{ left:0; color:#fff; }

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--ff-display); font-weight:600; font-size:.98rem; padding:.85rem 1.5rem;
  border-radius:999px; border:2px solid transparent; cursor:pointer;
  transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast),color var(--t-fast); }
.btn-primary{ background:var(--amber); color:#3a2600; box-shadow:0 8px 20px rgba(232,163,61,.35); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(232,163,61,.5); color:#3a2600; }
.btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.btn-ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; color:#fff; transform:translateY(-2px); }
.btn-block{ width:100%; }

/* ---------- Header ---------- */
.site-header{ position:fixed; inset:0 0 auto 0; z-index:100; padding:.55rem 0;
  transition:background var(--t-med),box-shadow var(--t-med),padding var(--t-med); }
.site-header.scrolled{ background:rgba(251,251,247,.93); backdrop-filter:blur(10px); box-shadow:var(--sh-sm); padding:.25rem 0; }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand-logo{ height:50px; width:auto; transition:height var(--t-med); filter:drop-shadow(0 2px 6px rgba(0,0,0,.5)); }
.site-header.scrolled .brand-logo{ height:42px; filter:none; }
.main-nav ul{ list-style:none; display:flex; align-items:center; gap:.3rem; }
.main-nav a{ font-family:var(--ff-display); font-weight:500; font-size:.93rem; color:#fff; padding:.5rem .8rem; border-radius:999px; text-shadow:0 1px 4px rgba(0,0,0,.5); transition:color var(--t-fast),background var(--t-fast); }
.main-nav a:hover{ background:rgba(255,255,255,.14); color:#fff; }
.site-header.scrolled .main-nav a{ color:var(--ink); text-shadow:none; }
.site-header.scrolled .main-nav a:hover{ background:var(--mist); color:var(--forest); }
.nav-cta{ background:var(--forest); color:#fff !important; text-shadow:none !important; }
.nav-cta:hover{ background:var(--leaf) !important; }
.site-header.scrolled .nav-cta{ color:#fff !important; }
.burger{ display:none; flex-direction:column; gap:5px; width:44px; height:44px; align-items:center; justify-content:center; background:transparent; border:0; cursor:pointer; }
.burger span{ width:26px; height:2.5px; background:#fff; border-radius:2px; box-shadow:0 1px 3px rgba(0,0,0,.4); transition:transform var(--t-fast),opacity var(--t-fast); }
.site-header.scrolled .burger span{ background:var(--forest); box-shadow:none; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; color:#fff; overflow:hidden; }
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-img{ width:100%; height:100%; object-fit:cover; }
.hero-overlay{ position:absolute; inset:0; background:
  linear-gradient(180deg, rgba(10,30,18,.62) 0%, rgba(10,30,18,.35) 38%, rgba(7,33,15,.82) 100%),
  radial-gradient(120% 80% at 70% 25%, rgba(27,94,32,.18), rgba(8,24,15,.55)); }
.hero-content{ position:relative; z-index:2; padding-top:6rem; padding-bottom:5rem; max-width:820px; }
.hero-eyebrow{ font-family:var(--ff-display); font-weight:700; text-transform:uppercase; letter-spacing:.2em; font-size:.82rem; color:var(--amber); margin-bottom:1rem; }
.hero-title{ color:#fff; font-weight:800; letter-spacing:-.02em; font-size:clamp(2.5rem,1.6rem + 5.5vw,5rem); line-height:1; margin-bottom:1.2rem; }
.hero-sub{ font-size:clamp(1.05rem,1rem + .55vw,1.4rem); font-weight:500; color:rgba(255,255,255,.94); max-width:46ch; margin-bottom:1.8rem; }
.hero-stats{ list-style:none; display:flex; flex-wrap:wrap; gap:1.6rem 2.2rem; margin-bottom:2rem; }
.hero-stats li{ display:flex; flex-direction:column; }
.hero-stats strong{ font-family:var(--ff-display); font-weight:700; font-size:clamp(1.3rem,1.1rem + 1vw,1.8rem); color:#fff; }
.hero-stats span{ font-size:.84rem; color:rgba(255,255,255,.78); }
.hero-actions{ display:flex; flex-wrap:wrap; gap:.9rem; }
.hero-scroll{ position:absolute; bottom:24px; left:50%; transform:translateX(-50%); z-index:2; width:26px; height:42px; border:2px solid rgba(255,255,255,.6); border-radius:14px; }
.hero-scroll span{ position:absolute; top:8px; left:50%; width:4px; height:8px; margin-left:-2px; background:#fff; border-radius:2px; animation:scrollDot 1.8s infinite; }
@keyframes scrollDot{ 0%{opacity:0;transform:translateY(0);} 40%{opacity:1;} 80%{opacity:0;transform:translateY(12px);} 100%{opacity:0;} }

/* ---------- Sections ---------- */
.section{ padding:clamp(3.5rem,2.5rem + 5vw,6.5rem) 0; }
.section-alt{ background:linear-gradient(180deg,#fff,var(--mist)); }
.section-head{ max-width:760px; margin:0 auto clamp(2rem,1.5rem + 2vw,3rem); text-align:center; }
.section-intro{ color:var(--ink-soft); font-size:1.06rem; margin-top:.7rem; }
.lead{ color:var(--ink-soft); font-size:1.1rem; }
.lead + .lead{ margin-top:1rem; }
.kicker{ display:inline-block; font-family:var(--ff-display); font-weight:600; text-transform:uppercase; letter-spacing:.16em; font-size:.76rem; color:var(--leaf); margin-bottom:.6rem; }
.kicker::before{ content:""; display:inline-block; width:22px; height:2px; background:var(--amber); vertical-align:middle; margin-right:.55rem; }
.kicker-light{ color:var(--sky); }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem,1rem + 3vw,3.2rem); align-items:center; }
.micro{ font-size:.9rem; color:var(--ink-soft); margin-top:1rem; }
p + p{ margin-top:.9rem; }
.section p{ color:var(--ink-soft); }

.media-card{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-md); background:var(--mist); }
.media-card img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; transition:transform .9s ease; }
.media-card:hover img{ transform:scale(1.04); }

.tick{ list-style:none; display:grid; gap:.6rem; margin:1.2rem 0; }
.tick li{ position:relative; padding-left:1.6rem; color:var(--ink-soft); }
.tick li::before{ content:"✓"; position:absolute; left:0; color:var(--leaf); font-weight:700; }

/* ---------- How it works: video ---------- */
.video-wrap{ position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-lg); background:#08210f; margin-bottom:2.6rem; aspect-ratio:16/9; }
.how-video{ width:100%; height:100%; object-fit:cover; display:block; }
.video-play{ position:absolute; inset:0; width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.4rem;
  background:radial-gradient(60% 60% at 50% 50%, rgba(8,33,15,.35), rgba(8,33,15,.6)); color:#fff; border:0; cursor:pointer; transition:background var(--t-fast); }
.video-play:hover{ background:radial-gradient(60% 60% at 50% 50%, rgba(8,33,15,.25), rgba(8,33,15,.5)); }
.video-play.hidden{ display:none; }
.vp-icon{ width:74px; height:74px; border-radius:50%; background:var(--amber); color:#3a2600; display:flex; align-items:center; justify-content:center; font-size:1.7rem; padding-left:6px; box-shadow:0 10px 30px rgba(0,0,0,.35); transition:transform var(--t-fast); }
.video-play:hover .vp-icon{ transform:scale(1.08); }
.vp-label{ font-family:var(--ff-display); font-weight:700; font-size:1.15rem; margin-top:.6rem; text-shadow:0 2px 8px rgba(0,0,0,.5); }
.vp-hint{ font-size:.85rem; color:rgba(255,255,255,.85); text-shadow:0 1px 4px rgba(0,0,0,.5); }

/* Steps */
.steps{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; }
.step{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:1.4rem 1.2rem; box-shadow:var(--sh-sm); transition:transform var(--t-fast),box-shadow var(--t-fast); }
.step:hover{ transform:translateY(-4px); box-shadow:var(--sh-md); }
.step-num{ font-family:var(--ff-display); font-weight:800; font-size:1.9rem; line-height:1; color:transparent; -webkit-text-stroke:1.5px var(--sky); display:block; margin-bottom:.6rem; }
.step:hover .step-num{ -webkit-text-stroke:1.5px var(--amber); }
.step h3{ font-size:1.02rem; margin-bottom:.3rem; }
.step p{ font-size:.9rem; color:var(--ink-soft); }
.star{ color:var(--amber); }
.result-line{ margin:2rem auto 0; max-width:820px; text-align:center; background:linear-gradient(135deg,var(--forest),var(--leaf)); color:#fff !important; padding:1rem 1.3rem; border-radius:var(--r-md); font-weight:500; box-shadow:var(--sh-md); }
.infographic{ margin-top:2.4rem; border-radius:var(--r-lg); overflow:hidden; background:#fff; border:1px solid var(--line); box-shadow:var(--sh-sm); }
.infographic img{ width:100%; height:auto; }
.infographic figcaption{ text-align:center; font-size:.9rem; color:var(--ink-soft); padding:.8rem; }

/* ---------- Product range ---------- */
.range-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
.range-card{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:1.6rem 1.3rem; box-shadow:var(--sh-sm); transition:transform var(--t-fast),box-shadow var(--t-fast); }
.range-card:hover{ transform:translateY(-5px); box-shadow:var(--sh-lg); }
.range-card.featured{ border-color:var(--amber); box-shadow:0 12px 32px rgba(232,163,61,.18); }
.range-badge{ position:absolute; top:-11px; left:1.3rem; background:var(--amber); color:#3a2600; font-family:var(--ff-display); font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; padding:.25rem .7rem; border-radius:999px; }
.range-emoji{ font-size:1.8rem; display:block; margin-bottom:.5rem; }
.range-card h3{ font-size:1.2rem; }
.range-use{ font-size:.86rem; color:var(--ink-soft); margin:.2rem 0 .6rem; min-height:2.4em; }
.range-prod{ font-family:var(--ff-display); font-weight:700; color:var(--forest); margin-bottom:.7rem; }
.range-meta{ list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; }
.range-meta li{ font-size:.78rem; background:var(--mist); color:var(--ink-soft); padding:.2rem .6rem; border-radius:999px; }
.range-allnote{ text-align:center; margin-top:1.6rem; font-size:.9rem; color:var(--ink-soft); }
.range-media{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:2rem; }

/* ---------- Sectors ---------- */
.sector-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
.sector-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-sm); display:flex; flex-direction:column; transition:transform var(--t-fast),box-shadow var(--t-fast); }
.sector-card:hover{ transform:translateY(-4px); box-shadow:var(--sh-md); }
.sector-media{ overflow:hidden; background:var(--mist); aspect-ratio:16/9; }
.sector-media img{ width:100%; height:100%; object-fit:cover; transition:transform .9s ease; }
.sector-card:hover .sector-media img{ transform:scale(1.05); }
.sector-body{ padding:1.4rem; }
.sector-body h3{ font-size:1.12rem; margin-bottom:.4rem; }
.sector-body p{ font-size:.94rem; }
.sector-text{ background:linear-gradient(180deg,#fff,var(--mist)); }
.sector-cta{ background:linear-gradient(135deg,var(--forest),var(--leaf)); color:#fff; }
.sector-cta h3{ color:#fff; }
.sector-cta p{ color:rgba(255,255,255,.92); }
.link-arrow{ display:inline-block; margin-top:.6rem; font-family:var(--ff-display); font-weight:600; color:var(--amber); }
.link-arrow:hover{ color:#fff; }

/* ---------- Programme (dark) ---------- */
.section-dark{ background:radial-gradient(120% 100% at 50% 0%, var(--forest) 0%, var(--forest-deep) 60%, #07210f 100%); color:#fff; }
.section-head-light h2{ color:#fff; }
.section-intro-light{ color:rgba(255,255,255,.82); }
.counters{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; max-width:760px; margin:0 auto 2.6rem; }
.counter{ text-align:center; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:var(--r-lg); padding:1.6rem 1rem; }
.count{ font-family:var(--ff-display); font-weight:800; font-size:clamp(2.2rem,1.6rem + 2.5vw,3.4rem); color:var(--amber); line-height:1; display:block; }
.count-label{ font-size:.9rem; color:rgba(255,255,255,.82); margin-top:.4rem; display:block; }
.prog-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.prog-card{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:var(--r-lg); padding:1.6rem; transition:transform var(--t-fast),background var(--t-fast); }
.prog-card:hover{ transform:translateY(-4px); background:rgba(255,255,255,.1); }
.prog-n{ font-family:var(--ff-display); font-weight:800; font-size:1.6rem; color:var(--sky); }
.prog-card h3{ color:#fff; font-size:1.1rem; margin:.3rem 0 .4rem; }
.prog-card p{ color:rgba(255,255,255,.8); font-size:.94rem; }
.prog-foot{ margin-top:1.8rem; text-align:center; color:rgba(255,255,255,.7); font-size:.9rem; max-width:820px; margin-inline:auto; }

/* ---------- Why Kenya bars ---------- */
.why-bars{ display:grid; gap:1rem; margin:1.8rem auto 0; max-width:620px; }
.why-bar{ display:grid; grid-template-columns:140px 1fr auto; align-items:center; gap:.8rem; }
.why-label{ font-size:.86rem; color:var(--ink-soft); text-align:right; }
.why-val{ font-family:var(--ff-display); font-weight:600; font-size:.86rem; color:var(--forest); }
.bar{ height:12px; background:var(--mist); border-radius:999px; overflow:hidden; }
.bar i{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--sky),var(--water)); border-radius:999px; transition:width 1.1s cubic-bezier(.4,0,.2,1); }
.why-bar.in .bar i{ width:var(--w); }
.why-hi .bar i{ background:linear-gradient(90deg,var(--leaf),var(--amber)); }

/* ---------- Quality ---------- */
.quality-badges{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.qbadge{ background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:1.3rem; text-align:center; box-shadow:var(--sh-sm); transition:transform var(--t-fast); }
.qbadge:hover{ transform:translateY(-3px); box-shadow:var(--sh-md); }
.qbadge strong{ display:block; font-family:var(--ff-display); font-size:1.2rem; color:var(--forest); }
.qbadge span{ font-size:.85rem; color:var(--ink-soft); }
.standards{ margin-top:1rem; font-size:.92rem; color:var(--ink-soft); }

/* ---------- SDG grid ---------- */
.sdg-grid{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.sdg{ display:flex; gap:.9rem; align-items:flex-start; background:#fff; border:1px solid var(--line); border-left:5px solid var(--sdg); border-radius:var(--r-md); padding:1.1rem 1.1rem; box-shadow:var(--sh-sm); transition:transform var(--t-fast),box-shadow var(--t-fast); }
.sdg:hover{ transform:translateY(-4px); box-shadow:var(--sh-md); }
.sdg-n{ flex:0 0 auto; width:40px; height:40px; border-radius:8px; background:var(--sdg); color:#fff; font-family:var(--ff-display); font-weight:800; display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.sdg-t{ font-family:var(--ff-display); font-weight:600; font-size:.95rem; color:var(--ink); display:flex; flex-direction:column; }
.sdg-t small{ font-family:var(--ff-body); font-weight:400; font-size:.8rem; color:var(--ink-soft); margin-top:.15rem; }

/* ---------- Vision + map ---------- */
.vision-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,1rem + 3vw,3rem); align-items:center; }
.vision-list{ list-style:none; display:grid; gap:.8rem; }
.vision-list li{ position:relative; padding-left:1.8rem; color:rgba(255,255,255,.88); }
.vision-list li::before{ content:"✓"; position:absolute; left:0; color:var(--amber); font-weight:700; }
.map-wrap{ background:rgba(0,0,0,.18); border:1px solid rgba(255,255,255,.08); border-radius:var(--r-lg); padding:.7rem; box-shadow:var(--sh-lg); }
.map-wrap svg{ width:100%; height:auto; border-radius:var(--r-md); }
.map-cap{ text-align:center; color:var(--sky); font-size:.88rem; margin-top:.6rem; font-family:var(--ff-display); font-weight:500; }
.ea-country path{ fill:#14525c; stroke:rgba(255,255,255,.12); stroke-width:1; opacity:.35; transition:opacity .6s ease, fill .6s ease; }
.ea-country text{ fill:#fff; font-family:var(--ff-display); font-size:13px; font-weight:600; text-anchor:middle; opacity:0; transition:opacity .6s ease; }
.ea-kenya path{ fill:var(--leaf); opacity:.9; }
.map-wrap.is-live .ea-country path{ opacity:.8; }
.map-wrap.is-live .ea-country text{ opacity:1; }
.map-wrap.is-live .ea-country[data-c="uganda"] path{ transition-delay:.3s; }
.map-wrap.is-live .ea-country[data-c="rwanda"] path{ transition-delay:.6s; }
.map-wrap.is-live .ea-country[data-c="tanzania"] path{ transition-delay:.45s; }
.map-wrap.is-live .ea-country[data-c="ethiopia"] path{ transition-delay:.75s; }
.ea-kenya path{ stroke:var(--amber); stroke-width:2; }
.ea-pin{ fill:var(--amber); }
.ea-pin-halo{ fill:var(--amber); opacity:.3; transform-box:fill-box; transform-origin:center; }
.map-wrap.is-live .ea-pin-halo{ animation:pin 2.2s ease-in-out infinite; }
@keyframes pin{ 0%,100%{ opacity:.1; transform:scale(.6);} 50%{ opacity:.35; transform:scale(2.4);} }

/* ---------- Team ---------- */
.team{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:2rem; }
.team-card{ display:flex; gap:1rem; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:1.2rem 1.4rem; box-shadow:var(--sh-sm); }
.team-avatar{ flex:0 0 auto; width:56px; height:56px; border-radius:50%; background:linear-gradient(135deg,var(--forest),var(--leaf)); color:#fff; font-family:var(--ff-display); font-weight:700; display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.team-card h3{ font-size:1.08rem; }
.team-card p{ font-size:.9rem; color:var(--ink-soft); }

/* ---------- Contact ---------- */
.contact-grid{ align-items:start; }
.contact-list{ list-style:none; margin-top:1.4rem; display:grid; gap:.8rem; }
.contact-list li{ display:flex; gap:.8rem; align-items:center; color:var(--ink-soft); }
.ci{ flex:0 0 auto; width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; background:var(--mist); border-radius:50%; }
.contact-form{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.4rem,1rem + 2vw,2.2rem); box-shadow:var(--sh-md); }
.field{ margin-bottom:1rem; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field label{ display:block; font-weight:600; font-size:.9rem; color:var(--forest); margin-bottom:.4rem; }
.field input,.field textarea{ width:100%; font-family:var(--ff-body); font-size:1rem; color:var(--ink); background:var(--offwhite); border:1.5px solid var(--line); border-radius:var(--r-sm); padding:.75rem .9rem; transition:border-color var(--t-fast),box-shadow var(--t-fast); }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--water); box-shadow:0 0 0 3px rgba(41,182,246,.18); }
.field textarea{ resize:vertical; }
.form-status{ margin-top:.9rem; font-size:.92rem; font-weight:500; min-height:1.2em; }
.form-status.ok{ color:var(--leaf); }
.form-status.err{ color:#c0392b; }
.contact-cta{ background:linear-gradient(150deg,var(--forest),var(--leaf)); color:#fff; border-radius:var(--r-lg); padding:clamp(1.6rem,1.2rem + 2vw,2.4rem); box-shadow:var(--sh-md); }
.contact-cta h3{ color:#fff; font-size:1.4rem; margin-bottom:.5rem; }
.contact-cta p{ color:rgba(255,255,255,.9); }
.contact-cta .btn-primary{ margin-top:1.2rem; }
.contact-cta-or{ text-align:center; font-size:.85rem; color:rgba(255,255,255,.7); margin-top:1.1rem; text-transform:uppercase; letter-spacing:.1em; }
.contact-cta-mails{ list-style:none; display:grid; gap:.3rem; text-align:center; margin-top:.4rem; }
.contact-cta-mails a{ color:#fff; font-weight:600; }
.contact-cta-mails a:hover{ color:var(--amber); }

/* ---------- Footer ---------- */
.site-footer{ background:var(--forest-deep); color:rgba(255,255,255,.78); }
.footer-inner{ display:grid; grid-template-columns:1.6fr 1fr 1.3fr; gap:2rem; padding-top:3.2rem; padding-bottom:2.4rem; }
.footer-logo{ height:58px; width:auto; margin-bottom:.9rem; }
.footer-brand p{ font-size:.92rem; max-width:36ch; color:rgba(255,255,255,.7); }
.site-footer h4{ color:#fff; margin-bottom:.8rem; font-size:.95rem; text-transform:uppercase; letter-spacing:.08em; }
.footer-nav ul,.footer-contact ul{ list-style:none; display:grid; gap:.5rem; }
.site-footer a{ color:rgba(255,255,255,.8); font-size:.93rem; }
.site-footer a:hover{ color:var(--amber); }
.footer-contact li{ font-size:.93rem; color:rgba(255,255,255,.7); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); }
.footer-bottom-inner{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.1rem var(--pad); flex-wrap:wrap; }
.footer-bottom p{ font-size:.86rem; color:rgba(255,255,255,.6); }
.footer-bottom a{ font-size:.86rem; }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1); }
.reveal.in{ opacity:1; transform:none; }
[data-reveal-delay="1"]{ transition-delay:.1s; }
[data-reveal-delay="2"]{ transition-delay:.2s; }
[data-reveal-delay="3"]{ transition-delay:.3s; }
[data-reveal-delay="4"]{ transition-delay:.4s; }

/* ===================================================================
   RESPONSIVE
   =================================================================== */
@media (max-width:1024px){
  .steps{ grid-template-columns:repeat(2,1fr); }
  .range-cards{ grid-template-columns:repeat(2,1fr); }
  .sdg-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-inner{ grid-template-columns:1fr 1fr; }
}
@media (max-width:880px){
  .burger{ display:flex; }
  .main-nav{ position:fixed; inset:0 0 0 auto; width:min(80vw,320px); background:var(--forest-deep); padding:5.5rem 1.5rem 2rem; transform:translateX(100%); transition:transform var(--t-med); box-shadow:var(--sh-lg); }
  .main-nav.open{ transform:translateX(0); }
  .main-nav ul{ flex-direction:column; align-items:stretch; gap:.2rem; }
  .main-nav a{ color:#fff; text-shadow:none; display:block; padding:.85rem 1rem; font-size:1.05rem; border-radius:var(--r-sm); }
  .site-header.scrolled .main-nav a{ color:#fff; }
  .nav-cta{ margin-top:.6rem; text-align:center; }
  body.nav-open{ overflow:hidden; }
  .nav-backdrop{ position:fixed; inset:0; background:rgba(7,33,15,.5); opacity:0; visibility:hidden; transition:opacity var(--t-med); z-index:99; }
  .nav-backdrop.show{ opacity:1; visibility:visible; }
  .grid-2,.vision-grid{ grid-template-columns:1fr; }
  .sector-grid{ grid-template-columns:1fr; }
  .counters,.prog-cards{ grid-template-columns:1fr; }
  .quality-badges{ grid-template-columns:1fr 1fr; }
  .team{ grid-template-columns:1fr; }
  .grid-2 > .media-card{ order:2; }
}
@media (max-width:560px){
  .steps,.range-cards{ grid-template-columns:1fr; }
  .sdg-grid{ grid-template-columns:1fr; }
  .range-media{ grid-template-columns:1fr; }
  .field-row{ grid-template-columns:1fr