:root{
  --leaf:#bdd25f; --leaf-deep:#8ea542; --leaf-soft:#dbe782;
  --bark:#2b2316; --bark-soft:#43381f;
  --cream:#fbfaf3; --cream-2:#f3f1e3;
  --ink:#2b2316; --muted:#6b6450;
  /* brand greens (from Brand Kit) — var names kept as --teal* to avoid churn */
  --teal:#3c8a3f; --teal-deep:#23601f;
  --white:#ffffff;
  --shadow:0 18px 40px -22px rgba(43,35,22,.45);
  --radius:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Nunito Sans',system-ui,sans-serif;
  color:var(--ink); background:var(--cream); line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.brand-word{font-family:'Fredoka',sans-serif;font-weight:700;line-height:1.08;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{display:block}

/* ICONS */
.ic{width:1.15em;height:1.15em;flex:0 0 auto;vertical-align:-0.18em;stroke-width:2}
.ic-lg{width:30px;height:30px;display:block}
.has-ic{display:inline-flex;align-items:center;gap:.55em}
.section{max-width:1120px;margin:0 auto;padding:96px 24px}
.kicker{font-family:'Fredoka',sans-serif;font-weight:600;color:var(--teal);text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;margin-bottom:10px}
.kicker.light{color:var(--leaf-soft)}
.section-head{text-align:center;max-width:680px;margin:0 auto 52px}
.section-head h2{font-size:clamp(1.8rem,4vw,2.6rem)}

/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;gap:.4em;justify-content:center;
  font-family:'Fredoka',sans-serif;font-weight:600;font-size:1rem;
  background:var(--bark);color:#fff;padding:13px 24px;border-radius:999px;
  border:2px solid var(--bark);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s;
}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-lg{font-size:1.08rem;padding:16px 30px}
.btn-sm{padding:9px 18px;font-size:.95rem}
.btn-block{width:100%}
.btn-ghost{background:transparent;color:var(--bark)}
.btn-ghost:hover{background:rgba(43,35,22,.06)}
.btn-light{background:var(--leaf);color:var(--bark);border-color:var(--leaf)}
.btn-light:hover{background:var(--leaf-soft);border-color:var(--leaf-soft)}

/* NAV */
.nav{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;max-width:1120px;margin:0 auto;
}
.nav::before{content:"";position:absolute;inset:0;background:rgba(251,250,243,.82);backdrop-filter:blur(10px);border-bottom:1px solid rgba(43,35,22,.07);z-index:-1}
.brand{display:flex;align-items:center;gap:11px}
.brand-mark{filter:drop-shadow(0 4px 8px rgba(43,35,22,.18))}
.brand-word{font-size:1.45rem;display:flex;align-items:baseline;gap:.34em;color:var(--bark)}
.brand-sub{font-size:.62em;font-weight:500;color:var(--teal);letter-spacing:.02em}
/* inline official "Treegens Foundation" logo (mascot + wordmark + Foundation) */
.brand-logo-host{display:block;line-height:0}
.brand-logo-host svg{height:42px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:24px;font-family:'Fredoka',sans-serif;font-weight:500;flex:0 0 auto}
.nav-links a{white-space:nowrap}
.nav-links a:not(.btn):hover{color:var(--teal)}

/* HERO */
.hero{position:relative;overflow:hidden;padding:72px 24px 60px}
.hero-bg{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(1100px 460px at 78% -10%, rgba(189,210,95,.55), transparent 60%),
    radial-gradient(800px 420px at 10% 110%, rgba(60,138,63,.20), transparent 60%),
    linear-gradient(180deg,#fefef6,#f3f1e3);
}
.hero-bg::after{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(43,35,22,.05) 1px,transparent 1px);background-size:22px 22px;opacity:.5}
.hero-inner{position:relative;z-index:1;max-width:1000px;margin:0 auto;text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:.5em;background:#fff;border:1px solid rgba(43,35,22,.1);color:var(--bark-soft);
  font-weight:700;padding:8px 18px;border-radius:999px;font-size:.9rem;margin-bottom:22px;box-shadow:var(--shadow)}
.eyebrow .ic{color:var(--teal)}
.hero h1{font-size:clamp(2.4rem,6.5vw,4.4rem);margin-bottom:20px}
.hero .hl{color:var(--teal);position:relative;white-space:nowrap}
.hero .hl::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.18em;background:var(--leaf);border-radius:4px;z-index:-1}
.lede{max-width:660px;margin:0 auto 30px;font-size:1.18rem;color:var(--bark-soft)}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:54px}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:760px;margin:0 auto}
.hero-stats > div{background:#fff;border:1px solid rgba(43,35,22,.08);border-radius:var(--radius);padding:22px 16px;box-shadow:var(--shadow)}
.hero-stats .num{display:block;font-family:'Fredoka',sans-serif;font-weight:700;font-size:2rem;color:var(--teal)}
.hero-stats .lbl{font-size:.9rem;color:var(--muted)}

/* TRUST STRIP */
.strip{background:var(--bark);color:var(--leaf-soft);display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:center;
  padding:18px 24px;font-family:'Fredoka',sans-serif;font-weight:500;font-size:.98rem}
.strip span{display:inline-flex;align-items:center;gap:.5em}
.strip .ic{color:var(--leaf)}

/* STORY */
.story-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:48px;align-items:start}
.story-body p{margin-bottom:18px;font-size:1.08rem;color:var(--bark-soft)}
.story-body .btn{margin-top:10px}
.story-card{background:#fff;border:1px solid rgba(43,35,22,.08);border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow);position:sticky;top:90px}
.timeline{display:flex;flex-direction:column;gap:18px}
.t-item{position:relative;padding-left:20px}
.t-item::before{content:"";position:absolute;left:0;top:7px;width:10px;height:10px;border-radius:50%;background:var(--leaf);box-shadow:0 0 0 4px rgba(189,210,95,.25)}
.t-item:not(:last-child)::after{content:"";position:absolute;left:4px;top:17px;bottom:-18px;width:2px;background:rgba(43,35,22,.12)}
.t-year{font-family:'Fredoka',sans-serif;font-weight:600;color:var(--teal);font-size:.95rem}
.t-item p{font-size:.98rem;color:var(--bark-soft)}

/* VALUES */
.values{background:linear-gradient(180deg,#fff,var(--cream-2));border-radius:0}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.value-card{background:#fff;border:1px solid rgba(43,35,22,.08);border-radius:var(--radius);padding:34px 28px;box-shadow:var(--shadow);transition:transform .18s}
.value-card:hover{transform:translateY(-4px)}
.value-icon{margin-bottom:18px;width:62px;height:62px;display:grid;place-items:center;
  background:linear-gradient(160deg,#eef7e1,#dcefc7);color:var(--teal-deep);border-radius:18px;
  box-shadow:inset 0 0 0 1px rgba(60,138,63,.14)}
.value-card h3{font-size:1.3rem;margin-bottom:10px}
.value-card p{color:var(--bark-soft)}

/* HOW */
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:30px}
.how-step{background:#fff;border:1px solid rgba(43,35,22,.08);border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow)}
.how-n{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--leaf);color:var(--bark);
  font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.3rem;margin-bottom:16px}
.how-step h3{font-size:1.25rem;margin-bottom:8px}
.how-step p{color:var(--bark-soft)}
/* WATCH / videos */
.watch{background:linear-gradient(180deg,#fff,var(--cream-2))}
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.video-card{margin:0}
.video-frame{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;
  background:#1d1810;box-shadow:0 24px 50px -26px rgba(43,35,22,.6);border:1px solid rgba(43,35,22,.08)}
.video-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:#1d1810}
.video-card figcaption{margin-top:16px;text-align:center;color:var(--bark-soft);font-size:1.02rem}
.video-card figcaption strong{color:var(--ink)}

.mangrove-note{background:var(--bark);color:#f4f3e7;border-radius:var(--radius);padding:26px 30px;font-size:1.08rem;
  display:flex;align-items:center;gap:18px;justify-content:center;text-align:left}
.mangrove-note .ic{width:34px;height:34px;color:var(--leaf);flex:0 0 auto}
.mangrove-note strong{color:var(--leaf-soft)}

/* DONATE */
.donate{padding-top:40px}
.donate-card{display:grid;grid-template-columns:.95fr 1.05fr;gap:0;background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 30px 70px -30px rgba(43,35,22,.55);border:1px solid rgba(43,35,22,.08)}
.donate-card > *{min-width:0}
.donate-intro{background:linear-gradient(160deg,var(--teal-deep),var(--teal));color:#eef7e6;padding:46px 40px}
.donate-intro h2{color:#fff;font-size:2rem;margin-bottom:12px}
.donate-lede{color:#cdeee5;margin-bottom:24px}
.donate-perks{list-style:none;display:flex;flex-direction:column;gap:13px;font-weight:600}
.donate-perks li{display:flex;align-items:center;gap:.7em}
.donate-perks .ic{color:var(--leaf-soft);width:20px;height:20px}
.demo-flag{margin-top:24px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);padding:11px 14px;border-radius:12px;font-size:.9rem;display:flex;align-items:center;gap:.6em}
.donate-form{padding:40px}
/* Zeffy embed column */
.donate-embed{padding:16px;display:flex;flex-direction:column;justify-content:center;min-height:500px;background:#fff}
.donate-embed [data-zeffy-embed]{width:100%}
.donate-embed iframe{border-radius:14px}
.secure.light{color:#d6efdf;justify-content:flex-start}
.secure.light .ic{color:var(--leaf-soft)}
.donate-tax{margin-top:8px;font-size:.82rem;color:#cdeee5}
.donate-tax strong{color:#fff;font-weight:700}
.freq-toggle{display:flex;gap:8px;background:var(--cream-2);padding:6px;border-radius:14px;margin-bottom:24px}
.freq{flex:1;border:none;background:transparent;cursor:pointer;padding:12px 10px;border-radius:10px;
  font-family:'Fredoka',sans-serif;font-weight:600;font-size:1rem;color:var(--muted);transition:.15s;display:flex;align-items:center;justify-content:center;gap:8px}
.freq.active{background:#fff;color:var(--bark);box-shadow:0 6px 16px -8px rgba(43,35,22,.4)}
.freq-tag{font-family:'Nunito Sans';font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  background:var(--leaf);color:var(--bark);padding:3px 8px;border-radius:999px}
.amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.amount{border:2px solid rgba(43,35,22,.12);background:#fff;border-radius:14px;padding:14px 6px;cursor:pointer;
  font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.15rem;color:var(--bark);transition:.15s}
.amount:hover{border-color:var(--leaf-deep)}
.amount.active{border-color:var(--teal);background:#eef7e3;color:var(--teal-deep);box-shadow:0 0 0 3px rgba(60,138,63,.14)}
.custom{display:block;margin-bottom:20px}
.custom > span{display:block;font-weight:700;font-size:.9rem;color:var(--muted);margin-bottom:8px}
.custom-input{display:flex;align-items:center;border:2px solid rgba(43,35,22,.12);border-radius:14px;padding:0 16px;transition:.15s}
.custom-input:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(60,138,63,.14)}
.custom-input .dollar{font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.2rem;color:var(--muted)}
.custom-input input{flex:1;border:none;outline:none;padding:14px 8px;font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.2rem;background:transparent;color:var(--bark);min-width:0}
.custom-input input::-webkit-outer-spin-button,.custom-input input::-webkit-inner-spin-button{-webkit-appearance:none}
.custom-input .per{font-weight:700;color:var(--muted);font-size:.92rem;white-space:nowrap}
.impact{background:var(--cream-2);border-radius:14px;padding:14px 18px;text-align:center;font-size:1.05rem;margin-bottom:20px}
.impact strong{color:var(--teal-deep)}
.secure{display:flex;align-items:center;justify-content:center;gap:.5em;color:var(--muted);font-size:.86rem;margin-top:14px}
.secure .ic{color:var(--teal)}

/* CTA BANNER */
.cta-banner{background:var(--bark);color:#fff;text-align:center;padding:80px 24px}
.cta-banner h2{font-size:clamp(1.6rem,4vw,2.4rem);max-width:760px;margin:0 auto 12px}
.cta-banner p{color:#cabfa6;margin-bottom:26px;font-size:1.1rem}

/* FOOTER */
.footer{background:#1d1810;color:#cabfa6;text-align:center;padding:56px 24px 40px}
.foot-brand{display:flex;align-items:center;justify-content:center;gap:11px;margin-bottom:12px}
.foot-brand .brand-logo-host svg{height:40px}
.foot-tag{margin-bottom:20px}
.foot-links{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:24px;font-family:'Fredoka',sans-serif;font-weight:500}
.foot-links a:hover{color:var(--leaf)}
.foot-501{font-size:.84rem;color:#a89e84;max-width:700px;margin:0 auto 8px;border-top:1px solid rgba(255,255,255,.08);padding-top:22px}
.foot-fine{font-size:.82rem;color:#8a8068;max-width:680px;margin:0 auto}

/* RESPONSIVE */
@media (max-width:960px){
  .nav-links a:not(.btn){display:none}
}
@media (max-width:900px){
  .story-grid{grid-template-columns:1fr}
  .story-card{position:static}
  .value-grid,.how-grid,.video-grid{grid-template-columns:1fr}
  .donate-card{grid-template-columns:1fr}
  .hero-stats{grid-template-columns:1fr;max-width:420px}
}
@media (max-width:620px){
  .nav{padding:12px 16px}
  .nav-links{gap:14px}
  .nav-links a:not(.btn){display:none}
  .brand .brand-logo-host svg{height:auto;width:min(54vw,300px)}
  .foot-brand .brand-logo-host svg{height:auto;width:min(64vw,280px)}
  .section{padding:64px 18px}
  .amounts{grid-template-columns:repeat(2,1fr)}
  .donate-intro,.donate-form{padding:30px 24px}
  .strip{font-size:.86rem;gap:10px 22px}
}
