:root{
  --green:#59b078;
  --deep:#064c36;
  --bg:#ffffff;
  --ink:#0e2320;
  --muted:#5c6b65;
  --soft:#f4f9f6;
  --border:#e3eee8;
  --radius:16px;
  --shadow:0 12px 32px rgba(6,76,54,.14);
  --shadow-soft:0 6px 18px rgba(6,76,54,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--deep);text-decoration:none}
img{max-width:100%;display:block}
html{scroll-behavior:smooth}
:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:10px}

/* Background + noise */
body::before{
  content:"";position:fixed;inset:0;z-index:-2;
  background:
    radial-gradient(1200px 800px at 10% 0%, rgba(89,176,120,.18), transparent 60%),
    radial-gradient(900px 600px at 90% 20%, rgba(6,76,54,.10), transparent 60%),
    radial-gradient(700px 600px at 50% 100%, rgba(89,176,120,.12), transparent 60%),
    linear-gradient(#ffffff,#ffffff);
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.07;
  background-image:url('data:image/svg+xml;utf8,\
  <svg xmlns="http://www.w3.org/2000/svg" width="120" height="120" viewBox="0 0 120 120">\
  <filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="2" stitchTiles="stitch"/></filter>\
  <rect width="100%" height="100%" filter="url(%23n)" opacity="0.12"/></svg>');
  background-size:320px 320px;
}

/* Header/Nav */
.header{position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border);z-index:60}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--deep);letter-spacing:.2px}
.brand img{width:30px;height:30px;border-radius:50%;box-shadow:var(--shadow-soft)}

.nav a{
  padding:10px 14px;
  position:relative;
  font-weight:600;
  color:var(--deep);
  transition:color .25s ease;
}
.nav a::after{
  content:'';
  position:absolute;
  left:0;bottom:4px;
  width:0%;height:2px;
  background:linear-gradient(90deg,var(--green),#0a8a62);
  border-radius:1px;
  transition:width .25s ease;
}
.nav a:hover{color:var(--green)}
.nav a:hover::after{width:100%}
.header{box-shadow:0 2px 10px rgba(6,76,54,.08)}

.nav a:hover{background:var(--soft);transition:background .2s ease}

/* Sections, cards, buttons */
.section{padding:72px 0}
.p-lg{font-size:18px;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:12px;border:1px solid var(--deep);color:#fff;background:var(--deep);box-shadow:var(--shadow);font-weight:700;transform:translateY(0);transition:transform .15s ease, box-shadow .2s ease, opacity .2s;position:relative;overflow:hidden}
.btn:hover{transform:translateY(-1px);box-shadow:0 18px 40px rgba(6,76,54,.18)}
.btn.secondary{background:#fff;color:var(--deep)}
.btn.green{background:var(--green);border-color:var(--green)}
.card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow);transition:transform .2s ease, box-shadow .2s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 16px 44px rgba(6,76,54,.16)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.h1{font-size:44px;line-height:1.08;margin:14px 0 10px}

/* Reveal + loaders */
@keyframes floatUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(14px)}
.reveal.visible{animation:floatUp .6s ease forwards}
.preloader{position:fixed;inset:0;background:#fff;display:grid;place-items:center;z-index:1000;transition:opacity .35s ease, visibility .35s}
.spinner{width:44px;height:44px;border-radius:50%;border:4px solid #e6efe9;border-top-color:var(--green);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.preloader.hidden{opacity:0;visibility:hidden}
.loader-dots{display:inline-flex;gap:6px;align-items:center}
.loader-dots span{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;animation:bd 1s infinite ease-in-out}
.loader-dots span:nth-child(2){animation-delay:.15s}
.loader-dots span:nth-child(3){animation-delay:.3s}
@keyframes bd{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-6px);opacity:1}}
.skel{position:relative;background:linear-gradient(90deg,#f1f5f3 20%,#e8f2ec 40%,#f1f5f3 60%);background-size:200% 100%;animation:shimmer 1.2s infinite linear}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Idle animations */
@keyframes floatIdle{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.idle-float{animation:floatIdle 5s ease-in-out infinite}

/* Top load bar */
.progressbar{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--green),#8cdbaf);width:0%;z-index:80;box-shadow:0 0 12px rgba(89,176,120,.55)}

/* Banner */
.banner{position:relative;min-height:78vh;border-bottom:1px solid var(--border);overflow:hidden;display:grid;place-items:center;text-align:center}
.banner-canvas{position:absolute;inset:0;z-index:-1;background:radial-gradient(800px 400px at 20% 20%, rgba(6,76,54,.12), transparent 60%),radial-gradient(700px 360px at 80% 30%, rgba(89,176,120,.18), transparent 60%)}
@keyframes blob{0%{transform:translate(0,0) scale(1)}50%{transform:translate(12px,-18px) scale(1.05)}100%{transform:translate(0,0) scale(1)}}
.blob{position:absolute;filter:blur(28px);opacity:.25;border-radius:50%;animation:blob 8s ease-in-out infinite}
.blob.g1{width:280px;height:280px;background:#59b078;left:12%;top:18%}
.blob.g2{width:220px;height:220px;background:#064c36;right:14%;top:24%}
.blob.g3{width:260px;height:260px;background:#7fd0a0;left:40%;bottom:10%}
.huge{font-size: clamp(42px, 7vw, 86px);line-height:.95;font-weight:900;letter-spacing:-0.02em;background:linear-gradient(90deg,#064c36,#59b078,#064c36);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:shine 6s linear infinite;margin:0 12px}
@keyframes shine{0%{background-position:200% 0}100%{background-position:-200% 0}}
.tagline{font-size:18px;color:var(--muted);max-width:760px;margin:14px auto 0}
.scroll-cue{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font-size:12px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:8px}
.mouse{width:20px;height:30px;border:2px solid var(--muted);border-radius:12px;position:relative;opacity:.8}
.wheel{width:2px;height:6px;background:var(--muted);position:absolute;left:50%;top:6px;transform:translateX(-50%);border-radius:2px;animation:wheel 1.6s infinite ease-in-out}

/* Story heroes */
.story{min-height:80vh;display:grid;place-items:center;border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;padding:28px}
.story .content{max-width:900px}
.story h2{font-size: clamp(28px, 4vw, 44px);margin:0 0 10px}
.story p{font-size: clamp(16px, 2.2vw, 20px);color:var(--muted);margin:0 auto;max-width:760px}
.story .cta{justify-content:center;margin-top:16px}

/* Mission */
.mission{background:var(--soft);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:80px 0}
.mission .lead{max-width:920px;margin:0 auto 18px;text-align:center}
.mission .grid-3 .mcard{overflow:hidden;padding:0}
.mcard .cover{width:100%;aspect-ratio:4/3;position:relative;overflow:hidden}
.mcard .cover img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease}
.mcard .box{padding:16px}
.kpi{font-weight:900;font-size:32px;color:var(--deep)}
.sub{color:var(--muted);font-size:14px}

/* Extra animated section */
.features{padding:72px 0;border-top:1px solid var(--border)}
.feature{display:flex;gap:14px;align-items:flex-start}
.feature .icon{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#e8f6ee,#cfe8db);display:grid;place-items:center;box-shadow:var(--shadow-soft)}
.feature .icon span{font-weight:900;color:var(--deep)}
.feature:hover .icon{transform:translateY(-2px);transition:transform .2s ease}

/* Accordion with smooth open/close */
.accordion .item{border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-soft);overflow:hidden}
.accordion .head{padding:12px 14px;font-weight:700;display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.accordion .body{padding:0 14px;max-height:0;overflow:hidden;opacity:.4;transition:max-height .35s ease, opacity .35s ease, padding .35s ease}
.accordion .item.open .body{padding:12px 14px 16px;max-height:300px;opacity:1}

/* Footer XL with high-contrast buttons */
.footer-xl{margin-top:48px;background:#0f2b23;color:#d9efe5;border-top:1px solid #0e271f}
.footer-xl a{color:#d9efe5;opacity:.95}
.footer-xl .top{padding:40px 0}
.footer-xl .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px}
.footer-xl h4{margin:0 0 8px}
.footer-xl ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.news{display:flex;gap:8px}
.news input{flex:1;padding:12px;border-radius:10px;border:1px solid #2a4b3f;background:#f2f7f4;color:#111}
.news button{padding:12px 16px;border-radius:10px;border:1px solid #2a4b3f;background:#e6f3ed;color:#111;font-weight:800} /* black text */
.footer-xl .bottom{border-top:1px solid #123328;padding:16px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.badges{display:flex;flex-wrap:wrap;gap:8px}
.badge{display:inline-flex;align-items:center;gap:8px;background:#e6f3ed;border:1px solid #b7d7c6;padding:6px 10px;border-radius:999px;font-size:12px;color:#111;box-shadow:var(--shadow-soft)} /* black text */
.social{display:flex;gap:10px}
.social a{display:inline-flex;width:32px;height:32px;border-radius:999px;align-items:center;justify-content:center;background:#e6f3ed;color:#111;font-weight:800} /* black text */
.copy{opacity:.9;font-size:14px;color:#d9efe5}

/* Responsive */
@media (max-width:1100px){
  .partners{grid-template-columns:repeat(3,1fr)}
  .footer-xl .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .grid-4{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .partners{grid-template-columns:repeat(2,1fr)}
  .footer-xl .cols{grid-template-columns:1fr}
}
/* Footer badge links: force black text */
.footer-xl .badges a.badge{
  color:#111 !important;        /* override .footer-xl a */
  background:#e6f3ed;
  border:1px solid #b7d7c6;
}
.footer-xl .badges a.badge:hover{
  color:#111 !important;
  background:#d8ece2;
}
