:root{
  --forest:#122a1e;--green:#2d6a3f;--sage:#5a9068;--mint:#a8d5b5;
  --earth:#6b4226;--sky:#2a5f8f;--gold:#b8860b;--red:#c0392b;
  --white:#fdfcf9;--bg:#f4f1eb;--muted:#6b6558;--border:#ddd8cc;
  --ocean:#0c1e2e;--deep:#091520;--coast:#1a3a4a;
}
*{box-sizing:border-box;margin:0;padding:0}
/* global minimum font size: 13.5pt = 18px */
html,body{height:100%;overflow:hidden;font-family:'DM Sans',sans-serif;background:#111;color:#fff;
  -webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}

/* dither overlay to eliminate gradient banding */
.slide::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='256' height='256' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  background-repeat:repeat;background-size:180px;
  mix-blend-mode:overlay;opacity:.5;
}
.slide>*{position:relative;z-index:2}

/* ── SITE HEADER ── */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:150;height:72px;
  display:flex;align-items:center;justify-content:center;
  padding:0 28px;
  background:transparent;
}
.header-pages{display:flex;gap:clamp(6px,1vw,10px);align-items:center}
.hp{
  font-family:'Poppins',sans-serif;font-size:max(13.5pt,clamp(.88rem,1.1vw,1.05rem));
  color:rgba(255,255,255,.4);cursor:pointer;letter-spacing:.08em;
  text-transform:uppercase;font-weight:500;
  padding:8px clamp(12px,1.5vw,20px);border-radius:999px;
  background:rgba(255,255,255,.04);transition:all .25s;
}
.hp:hover{color:rgba(255,255,255,.8);background:rgba(255,255,255,.08)}

/* hamburger */
.hamburger{
  display:none;position:absolute;right:16px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;padding:6px;z-index:160;
}
.hamburger span{
  display:block;width:22px;height:2px;background:#fff;margin:5px 0;
  border-radius:2px;transition:all .25s;
}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.mobile-menu{
  display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:145;
  background:rgba(9,21,32,.95);backdrop-filter:blur(16px);
  flex-direction:column;align-items:center;justify-content:center;gap:12px;
  opacity:0;transition:opacity .3s;
}
.mobile-menu.open{display:flex;opacity:1}
.mobile-menu .mm-item{
  font-family:'Poppins',sans-serif;font-size:1.3rem;text-transform:uppercase;font-weight:500;letter-spacing:.08em;
  color:rgba(255,255,255,.6);cursor:pointer;padding:12px 32px;
  border-radius:999px;transition:all .2s;letter-spacing:.03em;
}
.mobile-menu .mm-item:hover,.mobile-menu .mm-item.active{color:#fff;background:rgba(45,106,63,.3)}
.hp.active{color:#fff;background:rgba(45,106,63,.3);box-shadow:0 0 12px rgba(45,106,63,.2)}

/* ── SITE FOOTER ── */
.site-footer{
  position:fixed;bottom:0;left:0;right:0;z-index:150;
  background:rgba(9,21,32,.9);backdrop-filter:blur(12px);
  border-top:1px solid rgba(255,255,255,.06);
  font-size:11pt;color:rgba(255,255,255,.35);
  transition:height .3s ease;overflow:hidden;
}
.footer-bar{
  height:32px;display:flex;align-items:center;justify-content:space-between;
  padding:0 28px;
}
.footer-toggle{
  background:none;border:none;color:var(--mint);cursor:pointer;
  font-size:11pt;font-family:'DM Sans',sans-serif;letter-spacing:.06em;
}
.footer-expanded{
  display:none;padding:14px 28px 18px;
  grid-template-columns:repeat(3,1fr);gap:28px;
}
.site-footer.expanded .footer-expanded{display:grid}
.site-footer.expanded{height:auto}
.footer-col h4{font-size:11pt;letter-spacing:.1em;text-transform:uppercase;color:var(--mint);margin-bottom:6px}
.footer-col p,.footer-col a{font-size:11pt;color:rgba(255,255,255,.4);line-height:1.7;text-decoration:none;display:block}
.footer-col a:hover{color:var(--mint)}

/* ── SLIDE CONTAINER ── */
.deck{width:100vw;height:100vh;position:relative}
.slide{
  position:absolute;inset:0;
  display:flex;flex-direction:column;
  opacity:0;pointer-events:none;
  transition:opacity .5s ease;
  overflow:hidden;
}
.slide.active{opacity:1;pointer-events:all}


/* ── EDIT MODE ── */
.edit-toggle{
  position:fixed;top:20px;left:24px;z-index:200;
  padding:8px 16px;border-radius:8px;font-size:max(13.5pt,.78rem);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.4);cursor:pointer;font-family:'DM Sans',sans-serif;
  transition:all .2s;display:none;
}
.edit-toggle:hover{background:rgba(255,255,255,.15);color:#fff}
.edit-toggle.active{background:rgba(45,106,63,.3);border-color:var(--sage);color:var(--mint)}
.edit-bar{
  position:fixed;top:60px;left:24px;z-index:200;
  display:none;gap:8px;
}
.edit-bar.visible{display:flex}
.edit-bar button{
  padding:8px 18px;border-radius:8px;font-size:max(13.5pt,.78rem);
  border:none;cursor:pointer;font-family:'DM Sans',sans-serif;
  transition:all .15s;
}
.edit-save{background:var(--sage);color:#fff}
.edit-save:hover{background:var(--green)}
.edit-exit{background:rgba(255,255,255,.1);color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.15) !important}
.edit-exit:hover{color:#fff}

[contenteditable="true"]{
  outline:none;
  border:1px dashed rgba(168,213,181,.35);
  border-radius:4px;
  padding:2px 4px;
  transition:border-color .2s;
}
[contenteditable="true"]:focus{
  border-color:var(--mint);
  box-shadow:0 0 8px rgba(168,213,181,.2);
}

/* ── SHARED TYPOGRAPHY ── */
.slide-label{font-size:max(13.5pt,.7rem);letter-spacing:.15em;text-transform:uppercase;
  color:var(--mint);margin-bottom:16px;opacity:.7}
.glass-card{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);
  border-radius:14px;padding:22px;transition:all .2s;
}
.glass-card:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}

/* ══════════════════════════════════════
   P1 — HERO
══════════════════════════════════════ */
.p1{
  background:radial-gradient(ellipse at 50% 35%, rgba(30,80,110,.4) 0%, transparent 55%),
             radial-gradient(ellipse at 30% 70%, rgba(45,106,63,.25) 0%, transparent 50%),
             linear-gradient(160deg,var(--deep) 0%,var(--ocean) 50%,#0a1a12 100%);
  align-items:center;justify-content:center;text-align:center;
}
.p1-inner{max-width:900px;width:100%;padding:72px 24px 32px;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;margin:0 auto;text-align:center}
.p1-earth{
  width:clamp(220px,46vh,600px);height:clamp(220px,46vh,600px);
  border-radius:50%;margin:0 auto .5vh;flex-shrink:0;
  position:relative;overflow:hidden;
  box-shadow:0 0 80px rgba(30,80,110,.4),0 0 160px rgba(42,95,143,.2);
}
.p1-earth video{
  height:115%;width:auto;
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
}
.p1-pillars{
  display:flex;gap:clamp(16px,3vw,48px);justify-content:center;
  margin-top:2vh;margin-bottom:2vh;width:100%;
  max-width:820px;margin-left:auto;margin-right:auto;
}
.pillar-word{
  font-family:'DM Serif Display',serif;
  font-size:clamp(1.2rem,2.5vw,2rem);
  margin-bottom:4px;
}
.pillar-word{color:var(--mint)}
.p1 h1{
  font-family:'DM Serif Display',serif;
  font-size:clamp(1.8rem,4.5vw,3.8rem);
  line-height:1.05;margin-bottom:1vh;
  background:linear-gradient(135deg,#fff 0%,var(--mint) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.p1-sub{font-size:max(13.5pt,clamp(1.05rem,2vw,1.6rem));
  margin:10px auto 1.5vh;font-weight:500;letter-spacing:.04em;word-spacing:.2em;
  text-align:center;font-family:'DM Sans',sans-serif;white-space:nowrap;
  color:rgba(255,255,255,.7);text-transform:uppercase;
  width:100%}

/* ══════════════════════════════════════
   P-FW — FRAMEWORK
══════════════════════════════════════ */
.pfw{
  background:radial-gradient(ellipse at 35% 45%, rgba(30,80,110,.35) 0%, transparent 55%),
             radial-gradient(ellipse at 60% 70%, rgba(45,106,63,.2) 0%, transparent 45%),
             linear-gradient(160deg,var(--deep) 0%,#0c1a1e 50%,#0e1a14 100%);
  align-items:center;justify-content:center;padding:72px 24px 32px;
}
.pfw-inner{max-width:1200px;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,1.5vh,20px)}

/* top tagline */
.pfw-tagline{
  font-family:'DM Serif Display',serif;font-style:italic;
  font-size:max(13.5pt,clamp(1.5rem,3.5vw,2.8rem));color:rgba(255,255,255,.9);
  letter-spacing:.04em;text-align:center;
}

/* middle row: donut left + text right */
.pfw-mid{display:flex;align-items:center;gap:clamp(24px,4vw,60px);width:100%}
.pfw-left{display:flex;flex-direction:column;align-items:center;flex:0 0 auto}
.pfw-doughnut{
  width:clamp(250px,42vh,440px);height:clamp(250px,42vh,440px);
  flex-shrink:0;
}
.pfw-doughnut canvas{width:100%;height:100%}
.pfw-right-text{flex:1;min-width:0}
.pfw-prose{
  font-family:'DM Sans',sans-serif;font-size:max(13.5pt,clamp(.85rem,1vw,.95rem));
  color:rgba(255,255,255,.55);line-height:1.75;margin-bottom:1.5vh;
}
.pfw-principles{
  display:flex;gap:clamp(4px,.8vw,10px);justify-content:center;
  width:100%;margin-top:30px;
}
.pfw-p-btn{
  font-family:'Poppins',sans-serif;font-weight:600;
  font-size:max(13.5pt,clamp(.75rem,1vw,.9rem));color:var(--mint);
  letter-spacing:.05em;cursor:pointer;
  padding:6px 16px;border-radius:999px;
  background:rgba(168,213,181,.08);border:1px solid rgba(168,213,181,.2);
  transition:all .25s;
}
.pfw-p-btn:hover{background:rgba(168,213,181,.18);color:#fff;border-color:rgba(168,213,181,.4)}
.pfw-p-btn.active{background:rgba(168,213,181,.2);color:#fff;border-color:var(--mint);box-shadow:0 0 12px rgba(168,213,181,.2)}
.pfw-content-area{
  height:clamp(200px,28vh,320px);
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.pfw-prose{transition:opacity .25s ease;text-align:left}

/* bottom: horizontal carousel */
.pfw-carousel-wrap{
  width:100%;height:70px;margin-top:24px;
  overflow:hidden;position:relative;z-index:2;
  mask-image:linear-gradient(90deg,transparent 0%,#000 6%,#000 94%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 6%,#000 94%,transparent 100%);
}
.pfw-carousel{
  display:flex;flex-direction:row;gap:clamp(14px,2vw,24px);
  animation:carouselLeft 30s linear infinite;
  will-change:transform;width:max-content;
}
.pfw-carousel:hover{animation-play-state:paused}
@keyframes carouselLeft{
  0%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(-50%,0,0)}
}
.fw-card{
  flex-shrink:0;height:50px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:10px;padding:0 24px;
  transition:all .25s;cursor:pointer;
  display:flex;align-items:center;
}
.fw-card:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22)}
.fw-card h3{
  font-family:'Poppins',sans-serif;font-weight:500;font-size:max(13.5pt,clamp(.82rem,1vw,.95rem));
  color:rgba(255,255,255,.7);margin:0;line-height:1;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.fw-card:hover h3{color:#fff}
.fw-card p{display:none}


/* ══════════════════════════════════════
   P2 — FIVE PROGRAMS
══════════════════════════════════════ */
.p2{
  background:linear-gradient(160deg,var(--deep) 0%,#0c1a1e 60%,#0e1a10 100%);
  align-items:center;justify-content:center;padding:4vh 24px;
}
.p2-inner{max-width:1100px;width:100%}
.p2 h2{font-family:'DM Serif Display',serif;font-size:clamp(1.4rem,3vw,2.4rem);
  color:#fff;margin-bottom:1vh;line-height:1.15}
.p2-sub{font-size:max(13.5pt,clamp(.75rem,1vw,.88rem));color:rgba(255,255,255,.4);margin-bottom:3vh}
.prog-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(8px,1vw,14px)}
.prog-card .prog-ico{font-size:clamp(1.2rem,2vw,1.8rem);margin-bottom:1vh}
.prog-card h3{font-size:max(13.5pt,clamp(.82rem,1vw,1rem));color:#fff;margin-bottom:6px;font-weight:500;
  font-family:'DM Serif Display',serif}
.prog-card p{font-size:max(13.5pt,clamp(.7rem,.9vw,.82rem));color:rgba(255,255,255,.5);line-height:1.5}

/* ══════════════════════════════════════
   P3 — GEOTREE PREVIEW
══════════════════════════════════════ */
.p3{
  background:radial-gradient(ellipse at 50% 70%, rgba(30,80,110,.25) 0%, transparent 60%),
             linear-gradient(160deg,#0a1520 0%,var(--ocean) 50%,#0c1e18 100%);
  align-items:center;justify-content:center;padding:4vh 24px;
}
.p3-inner{max-width:1000px;width:100%;display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(24px,3vw,48px);align-items:center}
.p3 h2{font-family:'DM Serif Display',serif;font-size:clamp(1.4rem,3vw,2.4rem);
  color:#fff;margin-bottom:2vh;line-height:1.15}
.p3-desc{font-size:max(13.5pt,clamp(.75rem,1vw,.88rem));color:rgba(255,255,255,.5);line-height:1.6;margin-bottom:2vh}
.p3-powered{font-size:max(13.5pt,.72rem);color:rgba(255,255,255,.3);letter-spacing:.08em;margin-top:12px}
.p3-preview{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  border-radius:16px;overflow:hidden;aspect-ratio:16/10;
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.p3-preview iframe{width:100%;height:100%;border:none;border-radius:16px}
.p3-preview-placeholder{
  text-align:center;color:rgba(255,255,255,.3);
  font-family:'DM Serif Display',serif;font-size:1.2rem;
}
.p3-enter{
  display:inline-block;padding:14px 28px;border-radius:10px;
  background:var(--sage);color:#fff;font-family:'DM Serif Display',serif;
  font-size:max(13.5pt,.95rem);cursor:pointer;transition:all .2s;text-decoration:none;
}
.p3-enter:hover{background:var(--green);transform:translateY(-2px)}

/* ══════════════════════════════════════
   P4 — IMPACT (rebuilt)
══════════════════════════════════════ */
.p4{
  background:linear-gradient(160deg,var(--deep) 0%,#0e1820 60%,#101a10 100%);
  position:relative;
}
/* map background — pinned to all four edges */
.p4-bg{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:12in;height:8in;
  z-index:0;overflow:hidden;opacity:.65;
  border-radius:16px;
  -webkit-mask-image:
    linear-gradient(to right, transparent 0%, #000 2%, #000 98%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 2%, #000 98%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(to right, transparent 0%, #000 2%, #000 98%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 2%, #000 98%, transparent 100%);
  mask-composite:intersect;
}
.p4-bg .leaflet-control-attribution,
.p4-bg .leaflet-control-zoom{display:none!important}
.p4-bg .leaflet-container{background:transparent!important}
#p4Map{background:transparent!important}

/* content — centered via the slide's own flex-column */
.p4-content{
  position:relative;z-index:2;
  max-width:900px;width:100%;
  margin:auto;
  padding:clamp(80px,12vh,120px) 24px clamp(60px,8vh,100px);
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;
  min-height:100vh;box-sizing:border-box;
}
.p4-heading{
  font-family:'DM Serif Display',serif;font-size:clamp(1.5rem,3.2vw,2.6rem);
  color:#fff;margin-bottom:clamp(16px,2.5vh,28px);line-height:1.15;text-align:center;
}

/* metric carousel */
.p4-metrics-wrap{
  width:100%;overflow:hidden;margin-bottom:clamp(20px,3vh,36px);
  mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
}
.p4-metrics-track{
  display:flex;gap:clamp(16px,2.5vw,32px);
  animation:metricsScroll 28s linear infinite;
  width:max-content;will-change:transform;
}
.p4-metrics-track:hover{animation-play-state:paused}
@keyframes metricsScroll{
  0%{transform:translate3d(0,0,0)}
  100%{transform:translate3d(-50%,0,0)}
}
.p4-metric{
  flex-shrink:0;text-align:center;
  padding:clamp(12px,1.5vh,20px) clamp(16px,2vw,28px);
  background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.15);
  border-radius:12px;min-width:clamp(120px,14vw,170px);
}
.p4-metric:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15)}
.p4-metric-num{
  font-family:'DM Serif Display',serif;font-size:clamp(1.6rem,2.8vw,2.4rem);
  color:var(--mint);margin-bottom:4px;
}
.p4-metric-label{
  font-family:'Poppins',sans-serif;font-size:max(13.5pt,.7rem);font-weight:500;
  color:rgba(255,255,255,.45);letter-spacing:.04em;
}

/* body text */
.p4-body{
  font-family:'DM Sans',sans-serif;font-size:max(13.5pt,clamp(.85rem,1vw,.95rem));
  color:#111;line-height:1.75;text-align:center;
  max-width:800px;
}

/* ══════════════════════════════════════
   P5 — PRODUCTS & SERVICES (v4)
══════════════════════════════════════ */
.p5{
  background:linear-gradient(160deg,#0a1520 0%,var(--ocean) 50%,#0e1a10 100%);
  align-items:center;justify-content:center;
  padding:clamp(56px,8vh,80px) 24px clamp(36px,4vh,52px);
}
.p5-top{text-align:center;margin-bottom:clamp(10px,1.8vh,18px);flex-shrink:0}
.p5-eyebrow{font-family:'Poppins',sans-serif;font-size:max(13.5pt,.7rem);font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:6px}
.p5 h2{font-family:'Poppins',sans-serif;font-weight:600;font-size:clamp(1.4rem,3vw,2.4rem);
  color:#fff;margin-bottom:clamp(10px,1.5vh,16px);line-height:1.2;letter-spacing:-.01em}
.p5-filters{display:flex;gap:clamp(8px,1.2vw,14px);justify-content:center;flex-wrap:wrap}
.filter-tab{
  display:flex;align-items:center;justify-content:center;
  padding:clamp(8px,1vh,12px) clamp(18px,2vw,28px);
  border-radius:999px;cursor:pointer;transition:all .25s;
  border:none;position:relative;
  box-shadow:inset 0 2px 4px rgba(255,255,255,.15),inset 0 -2px 4px rgba(0,0,0,.3),0 3px 8px rgba(0,0,0,.3);
}
.filter-tab:hover{transform:translateY(-2px);box-shadow:inset 0 2px 4px rgba(255,255,255,.2),inset 0 -2px 4px rgba(0,0,0,.3),0 6px 16px rgba(0,0,0,.4)}
.filter-tab[data-active="true"]{transform:translateY(-2px);box-shadow:inset 0 2px 6px rgba(255,255,255,.25),inset 0 -2px 4px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.4)}
.tab-label{font-family:'Poppins',sans-serif;font-size:max(13.5pt,clamp(.75rem,.95vw,.88rem));font-weight:600;color:rgba(255,255,255,.85);letter-spacing:.06em;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.filter-tab.land{background:linear-gradient(180deg,#9a7228,#6b4e18)}
.filter-tab.water{background:linear-gradient(180deg,#3070a0,#1a4a70)}
.filter-tab.farms{background:linear-gradient(180deg,#3a7a4a,#1e4a28)}
.filter-tab.vitality{background:linear-gradient(180deg,#6e4498,#3d2260)}
.filter-tab.energy{background:linear-gradient(180deg,#c09020,#8a6210)}
.p5-carousel{
  flex:none;height:460px;overflow:hidden;max-width:700px;width:100%;
  mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
}
.p5-chev-row{display:flex;justify-content:center;width:100%}
.p5-chev-top,.p5-chev-bot{
  width:40px;height:22px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.4);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:.7rem;transition:all .2s;border-radius:8px;
}
.p5-chev-top:hover,.p5-chev-bot:hover{background:rgba(255,255,255,.14);color:#fff}
.carousel-track{display:flex;flex-direction:column;gap:clamp(24px,3.4vh,34px);
  animation:prodFloat var(--float-dur,60s) linear infinite;will-change:transform;padding:clamp(6px,.8vh,10px) 0}
.carousel-track:hover{animation-play-state:paused}
.carousel-track.no-animate{animation:none !important}
@keyframes prodFloat{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(0,-50%,0)}}
/* product cards — colored by shelf */
.p5 .prod-card{border-radius:11px;padding:16px clamp(26px,3vw,42px);cursor:pointer;transition:all .25s;display:flex;align-items:center;gap:clamp(12px,1.5vw,20px);flex-shrink:0;height:84px}
.p5 .prod-card:hover{transform:translateX(5px)}
.prod-info{flex:1;min-width:0}
.p5 .prod-card h3{font-family:'DM Serif Display',serif;font-size:max(13.5pt,clamp(.8rem,1vw,.92rem));color:#fff;margin-bottom:2px;line-height:1.2}
.prod-short{font-size:max(13.5pt,.68rem);line-height:1.4}
.prod-arrow{display:none}
.p5 .prod-card.land{background:linear-gradient(135deg,#3a2a10,#4a3818,#5a4420);border:1px solid rgba(184,134,11,.25)}
.p5 .prod-card.land:hover{border-color:rgba(184,134,11,.45)}.prod-card.land .prod-short{color:rgba(255,245,220,.45)}
.p5 .prod-card.water{background:linear-gradient(135deg,#102838,#183a50,#1e4a60);border:1px solid rgba(42,95,143,.3)}
.p5 .prod-card.water:hover{border-color:rgba(42,95,143,.5)}.prod-card.water .prod-short{color:rgba(210,235,255,.4)}
.p5 .prod-card.farms{background:linear-gradient(135deg,#102818,#183822,#1e4a2a);border:1px solid rgba(45,106,63,.3)}
.p5 .prod-card.farms:hover{border-color:rgba(45,106,63,.5)}.prod-card.farms .prod-short{color:rgba(210,245,220,.4)}
.p5 .prod-card.vitality{background:linear-gradient(135deg,#28183a,#32204a,#3a2858);border:1px solid rgba(140,80,180,.25)}
.p5 .prod-card.vitality:hover{border-color:rgba(140,80,180,.45)}.prod-card.vitality .prod-short{color:rgba(230,210,255,.4)}
.p5 .prod-card.energy{background:linear-gradient(135deg,#3a2a06,#4a380a,#5a4410);border:1px solid rgba(184,134,11,.25)}
.p5 .prod-card.energy:hover{border-color:rgba(184,134,11,.45)}.prod-card.energy .prod-short{color:rgba(255,240,200,.4)}
/* product modal */
.prod-modal-overlay{position:fixed;inset:0;z-index:500;background:rgba(10,20,12,.75);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.prod-modal-overlay.open{opacity:1;pointer-events:all}
.prod-modal-box{width:min(560px,92vw);max-height:88vh;overflow-y:auto;border-radius:20px;padding:clamp(24px,4vw,36px);transform:scale(.96) translateY(12px);transition:transform .3s}
.prod-modal-overlay.open .prod-modal-box{transform:scale(1) translateY(0)}
.prod-modal-box.land{background:linear-gradient(160deg,#2a1e0e,#1f1a0e);border:1px solid rgba(184,134,11,.3)}
.prod-modal-box.water{background:linear-gradient(160deg,#0e1e2e,#0c1824);border:1px solid rgba(42,95,143,.35)}
.prod-modal-box.farms{background:linear-gradient(160deg,#0e201a,#0c1a14);border:1px solid rgba(45,106,63,.35)}
.prod-modal-box.vitality{background:linear-gradient(160deg,#1c182a,#161220);border:1px solid rgba(140,80,180,.3)}
.prod-modal-box.energy{background:linear-gradient(160deg,#221a08,#1a1406);border:1px solid rgba(184,134,11,.35)}
.prod-modal-box.featured{background:linear-gradient(160deg,#1a2a1e,#152520);border:1px solid rgba(168,213,181,.15)}
.pmod-shelf{font-size:max(13.5pt,.62rem);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;opacity:.8}
.pmod-shelf.land{color:#c9a84c}.pmod-shelf.water{color:#5ba4d9}.pmod-shelf.farms{color:var(--mint)}.pmod-shelf.vitality{color:#b48cdb}.pmod-shelf.energy{color:#d4a830}.pmod-shelf.featured{color:var(--mint)}
.pmod-title{font-family:'DM Serif Display',serif;font-size:clamp(1.2rem,2.5vw,1.6rem);color:#fff;margin-bottom:14px;line-height:1.2}
.pmod-desc{font-size:max(13.5pt,.88rem);color:rgba(255,255,255,.55);line-height:1.75;margin-bottom:20px}
.pmod-link{display:inline-block;padding:8px 20px;border-radius:999px;font-size:max(13.5pt,.75rem);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;text-decoration:none;transition:all .2s;margin-bottom:16px}
.pmod-link:hover{background:rgba(255,255,255,.18)}

/* ══════════════════════════════════════
   P6 — TEAM, RESEARCH, ABOUT
══════════════════════════════════════ */
.p6{
  background:radial-gradient(ellipse at 50% 60%, rgba(30,80,110,.2) 0%, transparent 65%),
             linear-gradient(160deg,var(--deep) 0%,var(--ocean) 50%,#0c1a14 100%);
  position:relative;
}
.p6-inner{
  position:relative;z-index:2;
  max-width:900px;width:100%;
  margin:auto;
  padding:clamp(80px,12vh,120px) 24px clamp(60px,8vh,100px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:100vh;box-sizing:border-box;
}
.p6 h2{font-family:'DM Serif Display',serif;font-size:clamp(1.4rem,3vw,2.4rem);
  color:#fff;margin-bottom:10px;line-height:1.15;text-align:center}
.p6-sub{font-size:max(13.5pt,clamp(.75rem,1vw,.88rem));color:rgba(255,255,255,.4);margin-bottom:clamp(24px,4vh,40px);text-align:center}

/* Team chips — compact rectangular cards */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.2vw,16px);width:100%}
.team-chip{
  cursor:pointer;
  padding:clamp(14px,1.8vh,20px) clamp(16px,1.5vw,24px);
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:10px;transition:all .2s ease;
}
.team-chip:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);transform:translateY(-2px)}
.tc-org{font-family:'DM Serif Display',serif;font-size:max(13.5pt,.95rem);color:#fff;margin-bottom:4px}
.tc-line{font-size:max(12pt,.75rem);color:rgba(255,255,255,.4);line-height:1.4}

/* ══════════════════════════════════════
   LANDSERVE SLIDE
══════════════════════════════════════ */
.ls-slide{
  background:linear-gradient(160deg,var(--deep) 0%,#0e1820 60%,#101a10 100%);
  align-items:center;justify-content:center;
}
.ls-wrap{
  position:relative;z-index:2;
  width:min(880px,90vw);
  height:calc(100vh - 140px);
  margin:auto;
  padding:8px;
  border-radius:12px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  overflow:hidden;
}
.ls-frame{
  width:100%;height:100%;border:none;border-radius:8px;
}

/* ── MODAL ── */
.modal-overlay{
  position:fixed;inset:0;z-index:500;
  background:rgba(10,20,12,.7);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .3s ease;
}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal-box{
  width:min(700px,90vw);max-height:80vh;overflow-y:auto;
  background:#1a2a1e;border:1px solid rgba(255,255,255,.1);
  border-radius:20px;padding:36px;
  transform:scale(.96) translateY(12px);transition:transform .3s ease;
}
.modal-overlay.open .modal-box{transform:scale(1) translateY(0)}
.modal-close{
  float:right;width:32px;height:32px;border-radius:50%;
  background:rgba(255,255,255,.08);border:none;color:#fff;
  cursor:pointer;font-size:max(13.5pt,1rem);display:flex;align-items:center;justify-content:center;
}
.modal-close:hover{background:rgba(255,255,255,.15)}
.modal-eyebrow{font-size:max(13.5pt,.68rem);letter-spacing:.12em;text-transform:uppercase;color:var(--mint);margin-bottom:8px}
.modal-title{font-family:'DM Serif Display',serif;font-size:1.5rem;color:#fff;margin-bottom:16px}
.modal-body{font-size:max(13.5pt,.9rem);color:rgba(255,255,255,.6);line-height:1.8}
.modal-body strong{color:#fff}

/* ── PILLAR CARDS (Connect/Grow/Share) ── */
.pillar-card{
  cursor:pointer;
  width:clamp(150px,18vw,220px);
  border-radius:16px;padding:clamp(12px,1.5vh,20px) 18px;
  display:flex;flex-direction:column;align-items:center;text-align:center;
  background:linear-gradient(145deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.03) 100%);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 8px 32px rgba(0,0,0,.3),0 1px 0 rgba(255,255,255,.06) inset;
  transition:all .25s;
}
.pillar-card:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);transform:translateY(-3px)}
.pillar-card.active{border-color:rgba(168,213,181,.4);background:rgba(45,106,63,.15)}
.pillar-card .p-ico{font-size:1.6rem;margin-bottom:6px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}
.pillar-card .pillar-word{
  font-family:'DM Serif Display',serif;
  font-size:clamp(1.2rem,2.2vw,1.8rem);font-weight:400;color:var(--mint);
  text-shadow:0 2px 8px rgba(0,0,0,.3);
}

/* expanded panel — sits between globe and cards */
.p1-pillars{position:relative}
.pillar-expand{
  position:absolute;bottom:50%;
  left:50%;transform:translateX(-50%);
  width:calc(3 * clamp(150px,18vw,220px) + 2 * clamp(16px,3vw,48px));
  height:clamp(135px,18vh,210px);
  perspective:900px;
  pointer-events:none;z-index:10;
}
.pillar-expand-inner{
  width:100%;height:100%;
  transform-style:preserve-3d;
  transform:rotateY(90deg) scale(.6);
  opacity:0;
  transition:transform .6s cubic-bezier(.4,.2,.2,1), opacity .4s ease;
}
.pillar-expand.open .pillar-expand-inner{
  transform:rotateY(0deg) scale(1);
  opacity:1;
}
.pillar-expand-face{
  width:100%;height:100%;
  background:linear-gradient(145deg,rgba(120,85,30,.85) 0%,rgba(150,105,35,.8) 50%,rgba(170,120,40,.75) 100%);
  border:1px solid rgba(184,134,11,.35);
  border-radius:16px;
  box-shadow:0 8px 32px rgba(0,0,0,.3),0 1px 0 rgba(200,160,60,.12) inset;
  display:flex;align-items:center;justify-content:center;
  padding:clamp(14px,2vh,24px) clamp(20px,3vw,36px);
  text-align:center;
  pointer-events:all;
}
.pillar-expand.open{pointer-events:all}
.pillar-expand-face p{
  font-size:max(13.5pt,1rem);color:#fff;line-height:1.6;font-weight:500;
}


/* ── RESPONSIVE ── */

/* tablet */
@media(max-width:1024px){
  .prog-grid{grid-template-columns:repeat(3,1fr)}
  .team-grid{grid-template-columns:repeat(3,1fr)}
  .header-pages{gap:clamp(2px,.6vw,6px)}
  .hp{padding:6px clamp(8px,1.2vw,14px);font-size:max(13.5pt,clamp(.78rem,.95vw,.9rem))}
}

/* small tablet / large phone */
@media(max-width:768px){
  /* header — hamburger */
  .site-header{height:56px;padding:0 14px}
  .header-pages{display:none}
  .hamburger{display:block}

  /* P1 hero */
  .p1-inner{padding:56px 16px 24px}
  .p1-earth{width:clamp(180px,38vh,320px);height:clamp(180px,38vh,320px)}
  .p1 h1{font-size:clamp(1.5rem,6vw,2.4rem)}
  .p1-sub{font-size:max(13.5pt,clamp(.85rem,3vw,1.1rem));letter-spacing:.1em;white-space:normal;text-align:center;text-indent:.1em}
  .p1-pillars{gap:12px}
  .pillar-card{width:clamp(120px,28vw,180px)}

  /* PFW framework */
  .pfw{padding:56px 16px 24px}
  .pfw-mid{flex-direction:column;gap:16px}
  .pfw-left{flex:none;width:100%}
  .pfw-tagline{font-size:max(13.5pt,clamp(.95rem,4vw,1.4rem));margin-bottom:1vh}
  .pfw-doughnut{width:clamp(180px,30vh,260px);height:clamp(180px,30vh,260px)}
  .pfw-carousel-wrap{height:60px}
  .fw-card{height:44px;padding:0 12px}
  .fw-card h3{font-size:max(13.5pt,.82rem)}

  /* P2 programs */
  .prog-grid{grid-template-columns:repeat(2,1fr)}

  /* P3 geotree */
  .p3-inner{grid-template-columns:1fr}

  /* P4 impact */

  /* P5 products */

  /* P6 team */
  .team-grid{grid-template-columns:1fr 1fr}

  /* modal */
  .modal-box{width:92vw;max-height:85vh;padding:24px 20px}

  /* footer */
  .footer-expanded{grid-template-columns:1fr}
  .footer-bar{padding:0 14px}
}

/* phone */
@media(max-width:480px){
  /* header */
  .site-header{height:48px;padding:0 8px}
  .hp{padding:4px 7px;font-size:max(13.5pt,.68rem)}

  /* P1 hero */
  .p1-inner{padding:48px 12px 16px}
  .p1-earth{width:clamp(150px,34vh,240px);height:clamp(150px,34vh,240px)}
  .p1 h1{font-size:clamp(1.3rem,7vw,2rem)}
  .p1-sub{font-size:max(13.5pt,clamp(.75rem,3.2vw,.95rem));letter-spacing:.08em}
  .pillar-card{width:clamp(100px,26vw,150px)}

  /* PFW */
  .pfw{padding:48px 10px 16px}
  .pfw-doughnut{width:clamp(150px,28vh,220px);height:clamp(150px,28vh,220px)}
  .pfw-carousel-wrap{height:50px}
  .fw-card{height:38px;padding:0 10px}
  .fw-card h3{font-size:max(13.5pt,.74rem)}

  /* grids */
  .prog-grid{grid-template-columns:1fr 1fr}
  .team-grid{grid-template-columns:1fr}
  .p3-inner{gap:16px}
  .p3-preview{aspect-ratio:4/3}

  /* modal */
  .modal-box{width:96vw;padding:20px 16px}
  .modal-title{font-size:1.2rem}
  .modal-body{font-size:max(13.5pt,.82rem)}
}

/* landscape phones */
@media(max-height:500px){
  .site-header{height:44px}
  .p1-inner{padding:44px 16px 12px}
  .p1-earth{width:clamp(80px,22vh,180px);height:clamp(80px,22vh,180px);margin-bottom:1vh}
  .p1 h1{font-size:clamp(1.2rem,3vw,2rem)}
  .p1-pillars{margin-bottom:1vh}
  .pillar-card{width:clamp(100px,16vw,160px)}
  .p1-sub{font-size:max(13.5pt,clamp(.7rem,2vw,.9rem))}
  .pfw{padding:44px 16px 12px}
  .pfw-doughnut{width:clamp(120px,24vh,200px);height:clamp(120px,24vh,200px)}
  .pfw-carousel-wrap{height:44px}
}
