:root {
  --ink: #12201b;
  --forest: #0e3326;
  --forest-2: #174938;
  --lime: #c9f54a;
  --mint: #dff7d2;
  --sky: #8bd3dd;
  --gold: #ffc857;
  --cream: #f5f1e7;
  --paper: #fffdf8;
  --muted: #65736c;
  --line: rgba(18, 32, 27, .14);
  --white: #ffffff;
  --radius: 22px;
  --shadow: 0 24px 70px rgba(16, 47, 35, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "DM Sans", sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.6;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.section { padding: 112px 0; }
.skip-link { position: fixed; left: 1rem; top: -60px; background: var(--lime); padding: .75rem 1rem; z-index: 1000; }
.skip-link:focus { top: 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  padding: 18px 0;
  transition: .25s ease;
}
.site-header.scrolled { background: rgba(255,253,248,.93); backdrop-filter: blur(14px); box-shadow: 0 8px 30px rgba(15,51,38,.08); }
.nav-wrap { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand img { width: 196px; }
.main-nav { display: flex; align-items: center; gap: 30px; font-weight: 600; }
.main-nav > a:not(.button) { position: relative; }
.main-nav > a:not(.button)::after { content:""; position:absolute; left:0; bottom:-7px; width:0; height:2px; background:var(--forest); transition:.2s; }
.main-nav > a:hover::after { width:100%; }
.nav-toggle { display:none; background:none; border:0; padding:8px; }
.nav-toggle span { display:block; width:26px; height:2px; background:var(--ink); margin:5px 0; transition:.2s; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 24px;
  background: var(--forest);
  color: white;
  border: 1px solid var(--forest);
  border-radius: 999px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .2s, box-shadow .2s, background .2s;
}
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 25px rgba(14,51,38,.2); background: var(--forest-2); }
.button-small { min-height: 44px; padding-inline: 20px; }
.button-light { background: var(--lime); color: var(--ink); border-color: var(--lime); }
.button-light:hover { background:#d5fb64; }
.text-link { font-weight: 700; display:inline-flex; gap:10px; align-items:center; }
.text-link span { transition: transform .2s; }
.text-link:hover span { transform: translate(3px,-3px); }

.eyebrow { margin:0 0 20px; font-size:.82rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--forest); display:flex; align-items:center; gap:10px; }
.eyebrow span { width:28px; height:2px; background:var(--lime); display:inline-block; }
.eyebrow.dark span { background:var(--forest); }
.eyebrow.light { color:var(--mint); }
.eyebrow.light span { background:var(--lime); }
h1,h2,h3 { font-family:"Space Grotesk",sans-serif; line-height:1.08; margin-top:0; }
h1 { font-size:clamp(3.8rem,8vw,7.2rem); letter-spacing:-.06em; margin-bottom:28px; }
h1 em { font-style:normal; color:var(--forest); }
h2 { font-size:clamp(2.5rem,5vw,4.4rem); letter-spacing:-.045em; margin-bottom:0; }
h3 { font-size:1.45rem; letter-spacing:-.025em; }

.hero { position:relative; padding-top:150px; background:var(--cream); overflow:hidden; }
.hero::before { content:""; position:absolute; width:520px; height:520px; border-radius:50%; background:rgba(201,245,74,.35); filter:blur(90px); top:-240px; right:-170px; }
.hero-grid-bg { position:absolute; inset:0; opacity:.45; background-image:linear-gradient(rgba(14,51,38,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(14,51,38,.06) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(to bottom,black,transparent 83%); }
.hero-layout { position:relative; display:grid; grid-template-columns:1.02fr .98fr; align-items:center; min-height:690px; padding-bottom:70px; gap:40px; }
.hero-copy { position:relative; z-index:2; }
.hero-lede { max-width:650px; font-size:1.2rem; color:#435249; margin:0 0 34px; }
.hero-actions { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.hero-proof { display:grid; grid-template-columns:repeat(3,1fr); max-width:590px; margin-top:58px; padding-top:24px; border-top:1px solid var(--line); }
.hero-proof div { display:flex; flex-direction:column; }
.hero-proof strong { font-size:1.25rem; color:var(--forest); }
.hero-proof span { color:var(--muted); font-size:.9rem; }

.hero-visual { position:relative; aspect-ratio:1; max-width:620px; width:100%; margin-inline:auto; }
.energy-core { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:220px; aspect-ratio:1; border-radius:50%; background:var(--forest); color:white; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:0 0 0 18px rgba(14,51,38,.08), var(--shadow); z-index:3; }
.core-label { font-size:.75rem; letter-spacing:.22em; color:var(--mint); }
.core-value { font-family:"Space Grotesk"; font-size:4.2rem; font-weight:700; line-height:1; color:var(--lime); }
.core-sub { font-size:.8rem; opacity:.75; }
.orbit { position:absolute; border:1px dashed rgba(14,51,38,.35); border-radius:50%; inset:8%; animation:spin 40s linear infinite; }
.orbit-two { inset:20%; animation-direction:reverse; animation-duration:28s; }
.node { position:absolute; width:130px; min-height:96px; padding:16px; background:rgba(255,253,248,.96); border:1px solid rgba(14,51,38,.14); border-radius:18px; box-shadow:0 16px 38px rgba(14,51,38,.1); z-index:4; }
.node span { font-size:.7rem; font-weight:700; color:var(--muted); display:block; margin-bottom:8px; }
.node strong { font-family:"Space Grotesk"; font-size:.93rem; line-height:1.15; }
.node-farm { top:5%; left:5%; transform:rotate(-4deg); }
.node-digester { top:10%; right:0; transform:rotate(3deg); }
.node-energy { right:3%; bottom:7%; transform:rotate(-3deg); }
.node-soil { left:2%; bottom:10%; transform:rotate(4deg); }
.flow-lines { position:absolute; inset:0; width:100%; height:100%; color:var(--forest); z-index:1; }
.flow-lines path { fill:none; stroke:currentColor; stroke-width:2; stroke-dasharray:7 9; marker-end:url(#arrow); opacity:.7; }
@keyframes spin { to { transform:rotate(360deg); } }
.hero-band { position:relative; background:var(--lime); border-top:1px solid rgba(14,51,38,.12); }
.band-grid { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; text-align:center; gap:24px; align-items:center; min-height:86px; text-transform:uppercase; font-size:.82rem; font-weight:700; letter-spacing:.13em; }

.split-heading { display:grid; grid-template-columns:1.4fr .6fr; gap:80px; align-items:end; margin-bottom:58px; }
.split-heading > p { margin:0; font-size:1.08rem; color:var(--muted); }
.split-heading.compact { align-items:end; }
.centered-heading { text-align:center; max-width:800px; margin-bottom:56px; }
.centered-heading .eyebrow { justify-content:center; }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.solution-card { position:relative; min-height:380px; padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:white; overflow:hidden; transition:.25s ease; }
.solution-card::before { content:""; position:absolute; width:180px; height:180px; border-radius:50%; right:-70px; top:-80px; opacity:.55; }
.solution-card:hover { transform:translateY(-8px); box-shadow:var(--shadow); }
.accent-lime::before { background:var(--lime); }
.accent-blue::before { background:var(--sky); }
.accent-gold::before { background:var(--gold); }
.card-number { font-size:.8rem; color:var(--muted); font-weight:700; }
.icon-wrap { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background:var(--cream); font-size:2rem; margin:55px 0 28px; }
.solution-card p { color:var(--muted); margin-bottom:32px; }
.solution-card a { position:absolute; left:32px; bottom:28px; font-weight:700; }
.solution-card a span { margin-left:6px; }

.process-section { background:var(--forest); color:white; position:relative; overflow:hidden; }
.process-section::after { content:"BIOGAS"; position:absolute; right:-70px; bottom:-80px; font-family:"Space Grotesk"; font-size:15rem; font-weight:700; color:rgba(255,255,255,.025); letter-spacing:-.08em; }
.process-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; position:relative; z-index:1; }
.process-copy p:not(.eyebrow) { color:#c9d7d0; max-width:520px; margin:30px 0 34px; }
.process-steps { list-style:none; margin:0; padding:0; }
.process-steps li { display:grid; grid-template-columns:70px 1fr; gap:22px; padding:28px 0; border-bottom:1px solid rgba(255,255,255,.15); }
.process-steps li:first-child { border-top:1px solid rgba(255,255,255,.15); }
.process-steps > li > span { color:var(--lime); font-family:"Space Grotesk"; font-weight:700; }
.process-steps h3 { margin:0 0 7px; }
.process-steps p { margin:0; color:#b9cbc2; }

.markets { background:var(--paper); }
.market-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.market-card { background:white; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:grid; grid-template-columns:210px 1fr; min-height:220px; transition:.25s; }
.market-card:hover { box-shadow:var(--shadow); transform:translateY(-5px); }
.market-art { position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:22px; font-family:"Space Grotesk"; font-weight:700; letter-spacing:.14em; font-size:.75rem; }
.market-art::before,.market-art::after { content:""; position:absolute; border-radius:50%; }
.market-art span { position:relative; z-index:2; }
.farm-art { background:var(--mint); }
.farm-art::before { width:180px; height:180px; background:var(--lime); right:-70px; top:-30px; }
.farm-art::after { width:90px; height:90px; background:var(--forest); left:30px; top:55px; border-radius:12px 12px 40px 40px; transform:rotate(12deg); }
.food-art { background:#ffe6bb; }
.food-art::before { width:150px; height:150px; background:var(--gold); left:-50px; top:-40px; }
.food-art::after { width:110px; height:150px; background:var(--forest); right:28px; top:28px; border-radius:55px 55px 18px 18px; }
.water-art { background:#d7f0f5; }
.water-art::before { width:260px; height:120px; background:var(--sky); left:-20px; bottom:-35px; border-radius:50%; }
.water-art::after { width:80px; height:120px; background:var(--forest); right:45px; top:35px; border-radius:50% 50% 45% 45%; }
.landfill-art { background:#e5e4d2; }
.landfill-art::before { width:230px; height:90px; background:#a4b17c; left:-20px; bottom:-20px; border-radius:50% 50% 0 0; }
.landfill-art::after { width:110px; height:110px; background:var(--forest); right:-20px; top:-20px; }
.market-content { padding:34px; align-self:center; }
.market-content h3 { margin-bottom:14px; }
.market-content p { margin:0; color:var(--muted); }

.impact-section { background:var(--ink); color:white; padding:95px 0; }
.impact-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.impact-list > div { display:grid; grid-template-columns:70px 1fr; gap:18px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.impact-list strong { color:var(--lime); }
.impact-list span { font-size:1.15rem; }

.insight-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:22px; }
.insight-card { min-height:330px; border:1px solid var(--line); border-radius:var(--radius); padding:30px; display:flex; flex-direction:column; background:white; }
.insight-card.featured { background:var(--mint); }
.tag { align-self:flex-start; border:1px solid var(--forest); padding:6px 10px; border-radius:999px; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-bottom:45px; }
.insight-card h3 { margin-bottom:18px; }
.insight-card p { color:var(--muted); }
.insight-card a { margin-top:auto; font-weight:700; }
.dark-link { color:var(--forest); }

.cta-section { padding:110px 0; background:var(--forest); color:white; }
.cta-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:85px; align-items:start; }
.cta-layout > div > p:not(.eyebrow) { color:#c0d0c8; font-size:1.05rem; }
.lead-form { padding:34px; border-radius:var(--radius); background:white; color:var(--ink); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.lead-form label { display:block; font-size:.82rem; font-weight:700; margin-bottom:18px; }
.lead-form input,.lead-form select,.lead-form textarea { width:100%; margin-top:8px; border:1px solid #d8ddd9; border-radius:12px; padding:13px 14px; background:#fcfcfa; color:var(--ink); outline:none; }
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus { border-color:var(--forest); box-shadow:0 0 0 3px rgba(14,51,38,.1); }
.form-note { font-size:.75rem; color:var(--muted); margin:14px 0 0; }

.site-footer { background:#081b14; color:white; padding:72px 0 26px; }
.footer-grid { display:grid; grid-template-columns:1.4fr .7fr .9fr 1.2fr; gap:60px; }
.footer-brand img { margin-bottom:22px; }
.footer-brand p,.footer-grid > div > p { color:#a9bbb2; }
.footer-grid h3 { font-size:.88rem; text-transform:uppercase; letter-spacing:.1em; color:var(--lime); margin-bottom:20px; }
.footer-grid a { display:block; color:#d8e2dd; margin:10px 0; }
.newsletter { display:flex; border-bottom:1px solid #5d6f66; }
.newsletter input { flex:1; background:transparent; border:0; padding:12px 0; color:white; outline:none; }
.newsletter button { background:none; border:0; color:var(--lime); font-size:1.4rem; cursor:pointer; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:52px; padding-top:24px; display:flex; justify-content:space-between; color:#869990; font-size:.82rem; }

@media (max-width: 980px) {
  .main-nav { position:fixed; inset:78px 20px auto; background:white; padding:28px; border-radius:18px; box-shadow:var(--shadow); display:none; flex-direction:column; align-items:stretch; }
  .main-nav.open { display:flex; }
  .nav-toggle { display:block; }
  .hero-layout,.process-layout,.cta-layout { grid-template-columns:1fr; }
  .hero-layout { padding-bottom:80px; }
  .hero-copy { padding-top:45px; }
  .hero-visual { max-width:560px; }
  .split-heading { grid-template-columns:1fr; gap:28px; }
  .card-grid { grid-template-columns:1fr; }
  .solution-card { min-height:310px; }
  .icon-wrap { margin-top:35px; }
  .market-card { grid-template-columns:170px 1fr; }
  .impact-grid { grid-template-columns:1fr; gap:50px; }
  .insight-grid { grid-template-columns:1fr 1fr; }
  .insight-card.featured { grid-column:1 / -1; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 680px) {
  .container { width:min(100% - 28px,1180px); }
  .section { padding:82px 0; }
  .site-header { padding:14px 0; }
  .brand img { width:170px; }
  .hero { padding-top:110px; }
  .hero-layout { min-height:unset; }
  h1 { font-size:clamp(3.25rem,18vw,5rem); }
  .hero-proof { grid-template-columns:1fr; gap:16px; }
  .hero-visual { transform:scale(.92); margin:-20px auto; }
  .node { width:112px; min-height:84px; padding:12px; }
  .node strong { font-size:.78rem; }
  .energy-core { width:180px; }
  .core-value { font-size:3.5rem; }
  .band-grid { grid-template-columns:1fr; gap:6px; padding:24px 0; }
  .band-grid b { transform:rotate(90deg); }
  .market-grid { grid-template-columns:1fr; }
  .market-card { grid-template-columns:1fr; }
  .market-art { min-height:170px; }
  .insight-grid { grid-template-columns:1fr; }
  .insight-card.featured { grid-column:auto; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .footer-grid { grid-template-columns:1fr; gap:34px; }
  .footer-bottom { flex-direction:column; gap:8px; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
