html,body{margin:0;padding:0}
.eh-skip{position:absolute;left:-9999px;top:8px;z-index:1000;background:#fff;color:#15240f;padding:10px 16px;border-radius:8px;font:600 1rem/1.2 Outfit,system-ui,sans-serif}
.eh-skip:focus{left:8px;outline:3px solid #f2b705}
/* Layout: a storybook told in spreads — one bold opener (the Eco Heroes logo wheel), then quiet pages, each edged by a goal colour. */
:root{
  --paper:#f7f8f2; --page:#ffffff; --ink:#15240f; --mute:#566550; --line:#dfe5d6;
  --forest:#1a3a0d; --leaf:#2d6e1a; --sun:#f2b705; --chip:#edf4e7; --onforest:#eef6e8; --forestmute:#b9d3a8;
  --display:"DM Serif Display",Georgia,"Times New Roman",serif;
  --body:Outfit,"Segoe UI",system-ui,sans-serif;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;
  --r:18px; --ease:cubic-bezier(.2,.7,.2,1);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0e1709; --page:#162212; --ink:#ecf3e6; --mute:#a6b79c; --line:#2a3a24;
  --forest:#0b1606; --leaf:#86cf6c; --sun:#f5c63a; --chip:#1f2f1a; --onforest:#eef6e8; --forestmute:#9fbf8c; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#0e1709; --page:#162212; --ink:#ecf3e6; --mute:#a6b79c; --line:#2a3a24;
  --forest:#0b1606; --leaf:#86cf6c; --sun:#f5c63a; --chip:#1f2f1a; --onforest:#eef6e8; --forestmute:#9fbf8c; color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased}
a{color:var(--leaf);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}
.wrap{max-width:1120px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{text-wrap:balance;margin:0}
h2{font:400 clamp(1.9rem,4.2vw,2.9rem)/1.08 var(--display);letter-spacing:-.01em}
h3{font:700 1.12rem/1.3 var(--body)}
p{margin:0}
.eyebrow{font:700 .78rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf)}
.lede{color:var(--mute);max-width:60ch;font-size:1.06rem}

/* ---------- hero ---------- */
.hero{background:var(--forest);color:var(--onforest);overflow:hidden}
.hero .wrap{padding-block:var(--s7) var(--s8);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--s6);align-items:center}
.hero .eyebrow{color:var(--sun)}
.hero h1{font:400 clamp(2.4rem,6vw,4.4rem)/1.02 var(--display);margin-block:var(--s4) var(--s5);letter-spacing:-.015em}
.hero h1 em{font-style:italic;color:var(--sun)}
.hero p.lede{color:var(--forestmute);font-size:1.12rem}
.cta{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s6)}
.btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:999px;font:700 1rem/1 var(--body);text-decoration:none;transition:transform .25s var(--ease),background .25s}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:var(--sun);color:#1a2a0c}
.btn.ghost{border:2px solid var(--forestmute);color:var(--onforest)}
.brandbar{background:#ffffff}
.brandbar .wrap{padding-block:12px;display:flex;align-items:center}
.brandbar img{height:44px;width:auto;display:block}
.logo-badge{margin:0;justify-self:center;display:grid;justify-items:center;gap:var(--s4)}
.logo-badge img{width:min(78vw,340px);height:auto;aspect-ratio:1;object-fit:contain;background:#ffffff;border-radius:50%;padding:12%;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.logo-badge figcaption{font:700 .9rem/1.2 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--sun)}
@media (prefers-reduced-motion:no-preference){
  .logo-badge img{animation:arrive 1.1s var(--ease) both}
  @keyframes arrive{from{transform:rotate(-24deg) scale(.92)}to{transform:none}}
}
/* ---------- sections ---------- */
section.sp{padding-block:var(--s8)}
.head{display:grid;gap:var(--s3);margin-bottom:var(--s6)}
.rule{height:6px;border-radius:3px;background:linear-gradient(90deg,#E5243B,#DDA63A,#4C9F38,#C5192D,#FF3A21,#26BDE2,#FCC30B,#A21942,#FD6925,#DD1367,#FD9D24,#BF8B2E,#3F7E44,#0A97D9,#56C02B,#00689D,#19486A);max-width:220px}

/* whys */
.whys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.why{display:grid;gap:var(--s3);align-content:start}
.why .q{font:400 1.55rem/1.15 var(--display)}
.why p{color:var(--mute)}
.why .tag{font:700 .8rem/1 var(--body);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;border-bottom:3px solid var(--c);padding-bottom:4px;align-self:start;width:max-content}

/* journey stepper */
.journey{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s6);align-items:start}
.steps{display:grid;gap:var(--s2);list-style:none;margin:0;padding:0}
.step{display:flex;gap:var(--s4);align-items:center;padding:var(--s4) var(--s5);border-radius:var(--r);border:2px solid transparent;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer;width:100%;transition:background .3s,border-color .3s}
.step:hover{background:var(--chip)}
.step[aria-selected="true"]{background:var(--page);border-color:var(--line)}
.step .n{flex:0 0 44px;height:44px;border-radius:50%;display:grid;place-items:center;font:800 1rem/1 var(--body);background:var(--chip);color:var(--leaf);transition:background .3s,color .3s}
.step[aria-selected="true"] .n{background:var(--leaf);color:var(--page)}
.step b{display:block;font-size:1.08rem}
.step small{color:var(--mute);font-size:.92rem}
.stage{background:var(--page);border:1px solid var(--line);border-radius:24px;padding:var(--s6);min-height:330px;display:grid;gap:var(--s4);align-content:start;position:relative;overflow:hidden}
.stage .big{font:400 clamp(1.7rem,3.4vw,2.3rem)/1.1 var(--display)}
.stage p{color:var(--mute)}
.stage ul{margin:0;padding-inline-start:1.1rem;color:var(--ink);display:grid;gap:6px}
.stage .art{position:absolute;inset-inline-end:-30px;inset-block-end:-30px;width:180px;height:180px;border-radius:50%;background:var(--c,#E5243B);opacity:.13;transition:background .5s}
@media (prefers-reduced-motion:no-preference){.stage .pane{animation:rise .5s var(--ease) both}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
.progress{height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.progress i{display:block;height:100%;width:0;background:var(--leaf)}

/* numbers */
.nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.num{background:var(--page);padding:var(--s5) var(--s5) var(--s6);display:grid;gap:6px}
.num b{font:400 clamp(2.4rem,5vw,3.4rem)/1 var(--display);font-variant-numeric:tabular-nums;color:var(--leaf)}
.num span{font-weight:700}
.num small{color:var(--mute);font-size:.92rem}

/* strengths */
.strengths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6) var(--s7)}
.str{display:grid;grid-template-columns:52px minmax(0,1fr);gap:var(--s4);align-items:start}
.str .dot{width:52px;height:52px;border-radius:16px;background:var(--c);display:grid;place-items:center;color:#fff;font:800 1.05rem/1 var(--body)}
.str h3{margin-bottom:6px}
.str p{color:var(--mute)}

/* benchmarks */
.bench{display:grid;gap:var(--s5)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s2)}
.chip{min-height:44px;padding:10px 18px;border-radius:999px;border:2px solid var(--line);background:var(--page);color:var(--ink);font:700 .95rem/1 var(--body);cursor:pointer;transition:all .25s var(--ease)}
.chip:hover{border-color:var(--leaf)}
.chip[aria-selected="true"]{background:var(--leaf);border-color:var(--leaf);color:var(--page)}
.compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s4)}
.card{background:var(--page);border:1px solid var(--line);border-radius:24px;padding:var(--s5) var(--s6);display:grid;gap:var(--s3);align-content:start}
.card.us{background:var(--forest);border-color:var(--forest);color:var(--onforest)}
.card.us .k{color:var(--sun)}
.card .k{font:700 .76rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--leaf)}
.card .t{font:400 1.7rem/1.1 var(--display)}
.card dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;margin:0}
.card dt{font-weight:700;font-size:.92rem}
.card dd{margin:0;color:var(--mute);font-size:.95rem}
.card.us dd{color:var(--forestmute)}
.card.us ul{margin:0;padding-inline-start:1.1rem;display:grid;gap:8px}
.together{font:400 clamp(1.3rem,2.6vw,1.7rem)/1.3 var(--display);max-width:44ch}
.together em{color:var(--leaf)}
.tablebox{overflow-x:auto;border:1px solid var(--line);border-radius:20px;background:var(--page)}
table{border-collapse:collapse;width:100%;min-width:760px;font-size:.94rem}
th,td{padding:14px 16px;text-align:start;border-bottom:1px solid var(--line);vertical-align:top}
thead th{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
tbody th{font-weight:700;width:26%}
td.eh{background:var(--chip);font-weight:700;color:var(--leaf)}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
.fine{color:var(--mute);font-size:.86rem}

/* quality */
.quality{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.q{background:var(--page);border:1px solid var(--line);border-radius:20px;padding:var(--s5);display:grid;gap:var(--s3);align-content:start}
.q ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.q li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;font-size:.93rem;align-items:baseline}
.pill{font:800 .68rem/1 var(--body);letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:999px;white-space:nowrap}
.pill.done{background:var(--chip);color:var(--leaf)}
.pill.prog{background:color-mix(in srgb,var(--sun) 22%,transparent);color:var(--ink)}

/* audiences */
.tabs{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s4)}
.aud{background:var(--page);border:1px solid var(--line);border-radius:24px;padding:var(--s6);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s6)}
.aud .t{font:400 clamp(1.6rem,3vw,2.1rem)/1.1 var(--display)}
.aud ul{margin:0;padding-inline-start:1.1rem;display:grid;gap:8px}

/* close */
.close{background:var(--forest);color:var(--onforest)}
.close .wrap{padding-block:var(--s8);display:grid;gap:var(--s4);justify-items:start}
.close h2{color:var(--onforest);max-width:22ch}
.close p{color:var(--forestmute);max-width:58ch}
.mail{font-weight:700;color:var(--sun);user-select:all}
.sources{padding-block:var(--s6) var(--s7)}
.sources ol{color:var(--mute);font-size:.86rem;display:grid;gap:4px;padding-inline-start:1.2rem;margin:var(--s3) 0 0}

@media (prefers-reduced-motion:no-preference){
  .reveal{transition:transform .7s var(--ease)}
  .reveal.pre{transform:translateY(18px)}
}
@media (max-width:900px){
  .hero .wrap,.journey,.compare,.aud{grid-template-columns:minmax(0,1fr)}
  .whys,.strengths{grid-template-columns:minmax(0,1fr)}
  .quality{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nums{grid-template-columns:repeat(2,minmax(0,1fr))}
  .logo-badge img{width:min(70vw,260px)}
}
@media (max-width:520px){.quality,.nums{grid-template-columns:minmax(0,1fr)}section.sp{padding-block:var(--s7)}}
