:root{
  --bg:#f4fbf5;
  --paper:#ffffff;
  --paper-soft:#f9fef9;
  --ink:#173324;
  --muted:#667a6e;
  --brand:#4f9f69;
  --brand-dark:#2f7d4a;
  --brand-2:#78b98c;
  --accent:#dff3e5;
  --accent-2:#eef9f1;
  --warm:#f7d99a;
  --line:#d9eadf;
  --shadow:0 22px 60px rgba(42,94,60,.10);
  --shadow-soft:0 12px 35px rgba(42,94,60,.07);
  --radius:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif;
  background:
    radial-gradient(circle at 8% 5%,rgba(178,226,190,.38),transparent 28rem),
    radial-gradient(circle at 92% 18%,rgba(224,244,229,.65),transparent 25rem),
    var(--bg);
  color:var(--ink);
  line-height:1.75;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.container{width:min(1140px,calc(100% - 32px));margin-inline:auto}
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(247,253,248,.88);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(202,229,210,.82);
  box-shadow:0 4px 24px rgba(50,102,67,.04);
}
.nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{
  width:48px;height:48px;border-radius:17px;
  display:grid;place-items:center;
  color:white;font-weight:900;font-size:24px;
  background:linear-gradient(145deg,var(--brand-2),var(--brand-dark));
  box-shadow:0 12px 28px rgba(47,125,74,.22),inset 0 1px 0 rgba(255,255,255,.35);
}
.brand strong{display:block;font-size:17px;line-height:1.2}
.brand small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.nav-links{display:flex;align-items:center;gap:7px}
.nav-links a{padding:10px 14px;border-radius:999px;color:#31503d;font-weight:750;font-size:14px;transition:.2s}
.nav-links a:hover{background:var(--accent);color:var(--brand-dark)}
.nav-cta{background:var(--brand-dark)!important;color:white!important;box-shadow:0 9px 22px rgba(47,125,74,.18)}
.menu-btn{display:none;border:1px solid var(--line);background:white;color:var(--brand-dark);border-radius:14px;padding:8px 12px;font-size:22px;box-shadow:var(--shadow-soft)}
.hero{position:relative;overflow:hidden;padding:84px 0 66px}
.hero:before{content:"";position:absolute;inset:22px auto auto 5%;width:110px;height:110px;border:20px solid rgba(125,190,143,.10);border-radius:34px;transform:rotate(18deg)}
.hero-bg:before,.hero-bg:after{content:"";position:absolute;border-radius:999px;pointer-events:none}
.hero-bg:before{width:480px;height:480px;background:radial-gradient(circle,#cdebd5 0,#eaf7ed 55%,transparent 72%);top:-190px;left:-125px;opacity:.95}
.hero-bg:after{width:390px;height:390px;background:radial-gradient(circle,#f5e7bd 0,#fbf4df 52%,transparent 72%);bottom:-210px;right:-70px;opacity:.8}
.hero-grid{position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:40px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:9px;margin:0 0 13px;color:var(--brand-dark);font-weight:900;font-size:14px;letter-spacing:.2px}
.eyebrow:before{content:"";width:29px;height:4px;background:linear-gradient(90deg,var(--brand),var(--warm));border-radius:999px}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(35px,5vw,63px);line-height:1.16;margin-bottom:20px;letter-spacing:-1.5px;color:#183b28}
h2{font-size:clamp(27px,3vw,42px);line-height:1.24;margin-bottom:14px;letter-spacing:-.7px}
h3{font-size:20px;margin-bottom:8px}
.hero-text{font-size:19px;color:var(--muted);max-width:700px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:29px 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:13px 23px;font-weight:900;cursor:pointer;transition:.22s transform,.22s box-shadow,.22s background}
.btn:hover{transform:translateY(-3px)}
.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:white;box-shadow:0 13px 30px rgba(47,125,74,.22)}
.btn.soft{background:white;color:var(--brand-dark);border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.btn.soft:hover{background:var(--accent-2)}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:580px}
.hero-stats div{background:rgba(255,255,255,.84);border:1px solid rgba(205,231,212,.95);border-radius:23px;padding:17px;text-align:center;box-shadow:var(--shadow-soft)}
.hero-stats strong{display:block;font-size:29px;color:var(--brand-dark);line-height:1}
.hero-stats span{font-size:13px;color:var(--muted);font-weight:750}
.hero-card{background:linear-gradient(160deg,#fff,#f2fbf4);border:1px solid #cfe7d5;border-radius:34px;padding:32px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.hero-card:before{content:"";position:absolute;top:-35px;left:-35px;width:110px;height:110px;border-radius:50%;background:rgba(118,185,137,.12)}
.hero-card:after{content:"";position:absolute;inset:auto -45px -85px auto;width:190px;height:190px;border-radius:50%;background:rgba(247,217,154,.20)}
.hero-card-icon{width:66px;height:66px;border-radius:23px;background:linear-gradient(145deg,#e2f5e7,#fff);border:1px solid #d1ead8;display:grid;place-items:center;font-size:31px;margin-bottom:18px;box-shadow:0 10px 25px rgba(71,139,90,.10)}
.hero-card p{color:var(--muted)}
.hero-card ul{padding:0;margin:19px 0 0;list-style:none;display:grid;gap:10px}
.hero-card li{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:17px;padding:11px 14px;font-weight:800;color:#31503d;box-shadow:0 7px 18px rgba(47,125,74,.04)}
.section{padding:80px 0}
.tinted{background:linear-gradient(180deg,#f8fdf9,#edf8f0);border-block:1px solid var(--line)}
.split{display:grid;grid-template-columns:.84fr 1.16fr;gap:38px;align-items:start}
.section-intro p,.section-head p{color:var(--muted);font-size:18px}
.centered{text-align:center;max-width:800px;margin:0 auto 34px}
.centered .eyebrow{justify-content:center}
.centered .eyebrow:after{content:"";width:29px;height:4px;background:linear-gradient(90deg,var(--warm),var(--brand));border-radius:999px}
.value-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}
.value-grid article,.steps article,.project-card{background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:var(--radius);padding:23px;box-shadow:var(--shadow-soft);transition:.25s transform,.25s box-shadow,.25s border-color}
.value-grid article:hover,.steps article:hover,.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#bddfc6}
.value-grid span{font-size:33px;display:inline-grid;width:56px;height:56px;place-items:center;background:var(--accent-2);border-radius:18px;margin-bottom:10px}
.value-grid p,.steps p,.project-card p{color:var(--muted)}
.section-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:24px}
.section-head p{max-width:520px;margin-bottom:0}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
.filter-btn{border:1px solid var(--line);background:white;color:#355541;border-radius:999px;padding:10px 16px;font-weight:900;cursor:pointer;transition:.2s}
.filter-btn.active,.filter-btn:hover{background:var(--brand-dark);color:white;border-color:var(--brand-dark);box-shadow:0 9px 20px rgba(47,125,74,.15)}
.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}
.project-card{display:flex;flex-direction:column;min-height:330px;position:relative;overflow:hidden}
.project-card:before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:linear-gradient(90deg,var(--brand-dark),var(--brand-2),var(--warm))}
.project-icon{width:58px;height:58px;border-radius:20px;background:linear-gradient(145deg,#e6f6ea,#fff);border:1px solid #d4ebda;display:grid;place-items:center;font-size:29px;margin-bottom:16px}
.project-meta{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.tag{background:#edf8f0;border:1px solid #d6ebdc;color:#41614d;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:900}
.project-card .open-project{margin-top:auto;align-self:start}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}
.steps b{width:46px;height:46px;border-radius:16px;background:linear-gradient(145deg,var(--brand),var(--brand-dark));color:white;display:grid;place-items:center;margin-bottom:16px;font-size:20px;box-shadow:0 10px 22px rgba(47,125,74,.18)}
.activities{position:relative;overflow:hidden;background:linear-gradient(135deg,#397e50,#67a979);color:white}
.activities:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.08);left:-130px;bottom:-190px}
.activities .container{position:relative;z-index:1}
.activities .eyebrow,.activities .section-head p{color:#ecfff1}
.activities .eyebrow:before{background:#f7dfa5}
.activity-strip{display:flex;flex-wrap:wrap;gap:12px}
.activity-strip span{padding:13px 17px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);font-weight:900;backdrop-filter:blur(6px)}
.submit{background:linear-gradient(180deg,transparent,#eef8f1)}
.submit-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;align-items:center;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:34px;padding:34px;box-shadow:var(--shadow)}
.idea-form{display:grid;gap:12px}
.idea-form input,.idea-form select,.idea-form textarea{width:100%;border:1px solid var(--line);background:#fbfefb;border-radius:18px;padding:14px 16px;outline:none;color:var(--ink);transition:.2s}
.idea-form textarea{min-height:120px;resize:vertical}
.idea-form input:focus,.idea-form select:focus,.idea-form textarea:focus{border-color:var(--brand);background:white;box-shadow:0 0 0 4px rgba(79,159,105,.12)}
.contact{background:white}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center}
.contact-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.contact-card{background:var(--paper-soft);border:1px solid var(--line);border-radius:22px;padding:19px;text-align:center;font-weight:900;box-shadow:var(--shadow-soft);transition:.2s}
.contact-card:hover{background:var(--accent);transform:translateY(-3px);border-color:#bedfc7}
.footer{background:#193424;color:white;padding:24px 0}
.footer-inner{display:flex;justify-content:space-between;gap:16px;align-items:center}
.footer p{margin:0;color:#dcece0}.footer a{color:#fff;font-weight:900}
.modal{position:fixed;inset:0;display:none;z-index:100}.modal.open{display:block}
.modal-backdrop{position:absolute;inset:0;background:rgba(10,29,18,.62);backdrop-filter:blur(7px)}
.modal-card{position:relative;width:min(780px,calc(100% - 28px));max-height:88vh;overflow:auto;margin:6vh auto;background:var(--paper);border:1px solid #d7eadc;border-radius:32px;padding:29px;box-shadow:0 30px 90px rgba(14,47,25,.25)}
.modal-close{position:sticky;top:0;float:left;border:1px solid var(--line);background:#eff8f1;color:var(--brand-dark);border-radius:14px;padding:8px 12px;cursor:pointer;font-weight:900}
.modal-card .project-icon{margin-bottom:10px}
.modal-card dl{display:grid;grid-template-columns:150px 1fr;gap:10px 14px;background:#f4fbf6;border:1px solid var(--line);border-radius:20px;padding:17px}
.modal-card dt{font-weight:900}.modal-card dd{margin:0;color:var(--muted)}
.modal-card ol{padding-right:22px}.modal-card li{margin-bottom:8px}
.reveal{opacity:0;transform:translateY(18px);animation:rise .7s ease forwards}.delay-1{animation-delay:.12s}@keyframes rise{to{opacity:1;transform:none}}
.project-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 18px}
.gallery-item{display:block;overflow:hidden;border-radius:19px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-soft)}
.gallery-item img{display:block;width:100%;height:145px;object-fit:cover;transition:.25s transform}.gallery-item:hover img{transform:scale(1.045)}
@media (max-width:920px){
  .menu-btn{display:block}.nav-links{position:absolute;top:76px;left:16px;right:16px;display:none;flex-direction:column;align-items:stretch;background:white;border:1px solid var(--line);border-radius:23px;padding:12px;box-shadow:var(--shadow)}.nav-links.open{display:flex}
  .hero-grid,.split,.submit-card,.contact-grid{grid-template-columns:1fr}.projects-grid{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.section-head{display:block}.contact-actions{grid-template-columns:1fr}
}
@media (max-width:620px){
  .container{width:min(100% - 22px,1140px)}.hero{padding-top:44px}.hero-stats{grid-template-columns:1fr}.value-grid,.projects-grid,.steps{grid-template-columns:1fr}.brand strong{font-size:14px}.brand small{display:none}.section{padding:54px 0}.submit-card{padding:21px}.modal-card dl{grid-template-columns:1fr}.footer-inner{display:block;text-align:center}.hero-actions .btn{width:100%}.project-gallery{grid-template-columns:1fr 1fr}.gallery-item img{height:130px}
}

/* Community project suggestion form */
.idea-form .website-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.form-status{min-height:1.7em;margin:0;text-align:center;font-weight:800;color:var(--muted)}
.form-status.success{color:#166534;background:#ecfdf3;border:1px solid #bbf7d0;border-radius:16px;padding:10px 14px}
.form-status.error{color:#9f1239;background:#fff1f2;border:1px solid #fecdd3;border-radius:16px;padding:10px 14px}
.idea-form button:disabled{opacity:.65;cursor:not-allowed;transform:none}

/* Prevent accidental horizontal page overflow */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

/* Allow grid/flex children to shrink instead of expanding the viewport */
.nav > *,
.hero-grid > *,
.split > *,
.section-head > *,
.projects-grid > *,
.steps > *,
.submit-card > *,
.contact-grid > *{
  min-width:0;
}

/* Keep dynamic project content and media inside their cards */
.project-card,
.project-card-body,
.modal-card,
.section-intro,
.hero-content{
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
}

img,
video,
iframe{
  max-width:100%;
}

@media (max-width:620px){
  .container{
    width:calc(100% - 22px);
    max-width:1140px;
  }
}
