/* ===== THEME TOKENS =====
 * Override any variable below to create a new template.
 * All component colors are derived from these tokens.
 */
:root {
  /* Core brand */
  --ink:   #17342d;
  --deep:  #123d32;
  --deep-2:#163029;
  --green: #237d58;
  --mint:  #dcefe1;
  --lime:  #b8d94c;
  --cream: #f5f1e7;
  --orange:#ee8750;
  --paper: #e8dfbf;
  --white: #fffdf7;
  --line:  #cbd5c9;

  /* Surfaces (sections) */
  --bg:           var(--cream);
  --bg-hero-from: #f5f1e7;
  --bg-hero-to:   #eaf1dd;
  --bg-materials: #e7eee1;
  --bg-pickup:    #d7e8d4;
  --bg-ticker:    var(--deep);
  --bg-business:  var(--deep);
  --bg-footer:    #102f28;
  --bg-card:      #f8f5ed;
  --bg-card-soft: #fffdf7;

  /* Material cards */
  --m-metal:   #d5c7ae;
  --m-paper:   #f0d7a7;
  --m-plastic: #9ec9b1;
  --m-ewaste:  #b9c9d4;

  /* Text colors */
  --text:        var(--ink);
  --text-muted:  #53645d;
  --text-soft:   #6b7770;
  --text-faint:  #748078;
  --text-faint-2:#758078;
  --text-on-deep:#c5d2ca;
  --text-on-deep-soft:#c1d0c7;
  --text-on-dark: #d5e0d9;
  --text-on-dark-muted:#8fa198;
  --text-on-dark-faint:#71847c;

  /* Accents */
  --accent:      var(--lime);
  --accent-2:    var(--orange);
  --highlight:   #de8b4b;
  --avatar-1:    #b8d94c;
  --avatar-2:    #8bb6a2;
  --avatar-3:    #e39c7a;
  --avatar-4:    #d1b68b;
  --pill:        #b9c9c0;

  /* Borders / dividers */
  --border:        var(--line);
  --border-soft:   #aebbb2;
  --border-input:  #ccd5ce;
  --border-on-dark: #ffffff20;
  --border-on-dark-soft:#ffffff15;
  --divider:      #bcc9bf;
  --rule:         #c7d0c8;

  /* Shadows */
  --shadow-soft:  rgba(23,52,45,.08);
  --shadow-card:  rgba(23,52,45,.12);
  --shadow-deep:  rgba(23,52,45,.20);
  --shadow-deep-soft:rgba(23,52,45,.18);
  --shadow-cta:   rgba(18,61,50,.25);
  --shadow-cta-strong:rgba(18,61,50,.30);
  --shadow-card-hover:rgba(18,61,50,.18);
  --shadow-deep-on-deep:rgba(18,61,50,.35);
  --shadow-deep-on-deep-2:rgba(18,61,50,.40);

  /* Overlays / tints */
  --tint-deep-08: rgba(23,52,45,.08);
  --tint-deep-12: rgba(23,52,45,.12);
  --tint-deep-15: rgba(23,52,45,.15);
  --tint-deep-18: rgba(23,52,45,.18);
  --tint-deep-20: rgba(23,52,45,.20);
  --tint-deep-25: rgba(23,52,45,.25);
  --tint-deep-30: rgba(23,52,45,.30);
  --tint-deep-35: rgba(23,52,45,.35);
  --tint-deep-50: rgba(23,52,45,.50);
  --tint-deep-75: rgba(23,52,45,.75);
  --tint-white-03:rgba(255,255,255,.03);
  --tint-white-06:rgba(255,255,255,.06);
  --tint-white-08:rgba(255,255,255,.08);
  --tint-white-92:rgba(255,255,255,.92);
  --tint-cream-92:rgba(245,241,231,.92);

  /* Theme-light halo colors (for pulse effects) */
  --pulse-1: rgba(204,234,200,.35);
  --pulse-2: rgba(204,234,200,.18);
  --pulse-3: rgba(204,234,200,.08);
  --pulse-1-hi: rgba(204,234,200,.5);
  --pulse-2-hi: rgba(204,234,200,.28);
  --pulse-3-hi: rgba(204,234,200,.12);

  /* Particle palette */
  --p-1:#17342d;
  --p-2:#237d58;
  --p-3:#b8d94c;
  --p-4:#de8b4b;
  --p-5:#7caf8d;
  --p-6:#eaf1dd;

  /* Brand-mark on dark surfaces */
  --brand-on-dark: var(--lime);

  /* Decorative blobs (hero) */
  --blob-a: var(--orange);
  --blob-b: #7caf8d;

  /* Sizing tokens (kept here for one-stop theming) */
  --radius-sm: 8px;
  --radius:    12px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --space-pad: 7vw;
  --shadow-glow-yellow: 0 0 14px rgba(242,215,93,.55);
  --shadow-glow-yellow-soft: 0 0 28px rgba(242,215,93,.25);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}a{text-decoration:none;color:inherit}.nav{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:var(--cream);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(23,52,45,.08)}.brand{font:700 25px "Space Grotesk";display:flex;align-items:center;gap:8px}.brand>span:last-child>span{color:var(--green)}.brand-mark{display:block;width:42px;height:42px;object-fit:contain;border-radius:8px}
/* ===== PAGE LOADER ===== */
.page-loader{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#f5f1e7 0%,#eaf1dd 100%);display:flex;align-items:center;justify-content:center;z-index:99999;transition:opacity .7s ease,visibility .7s ease;overflow:hidden}
.page-loader.loaded{opacity:0;visibility:hidden}
.scrap-rain{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}
.scrap-fall{position:absolute;top:-80px;background-size:contain;background-repeat:no-repeat;background-position:center;animation-name:scrapFall;animation-timing-function:cubic-bezier(.55,.05,.7,.95);animation-iteration-count:1;animation-fill-mode:forwards;filter:drop-shadow(0 4px 6px rgba(23,52,45,.35))}
@keyframes scrapFall{0%{transform:translateY(0) rotate(0deg);opacity:0}10%{opacity:1}100%{transform:translateY(110vh) rotate(540deg);opacity:1}}
.scrap-pile{position:absolute;bottom:0;left:0;width:100%;height:160px;pointer-events:none;z-index:2}
.scrap-pile::before{content:'';position:absolute;bottom:0;left:0;width:100%;height:30px;background:linear-gradient(180deg,transparent 0%,rgba(23,52,45,.25) 100%)}
.scrap-pile-item{position:absolute;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 3px 4px rgba(23,52,45,.3));animation:pileDrop .4s ease-out forwards}
@keyframes pileDrop{0%{opacity:0;transform:translateY(-30px) scale(.6)}100%{opacity:1;transform:translateY(0) scale(1)}}
.loader-inner{position:relative;z-index:5;text-align:center;animation:loaderFadeIn .8s ease}
@keyframes loaderFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.loader-logo{width:130px;height:130px;margin:0 auto 22px;border-radius:50%;background:rgba(245,241,231,.92);padding:16px;box-shadow:0 0 0 6px rgba(204,234,200,.35),0 0 0 14px rgba(204,234,200,.18),0 0 0 28px rgba(204,234,200,.08),0 15px 40px rgba(18,61,50,.4);display:flex;align-items:center;justify-content:center;animation:logoPulse 2s ease-in-out infinite;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);position:relative;z-index:1}
.loader-logo img{width:100%;height:100%;object-fit:contain}
@keyframes logoPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 6px rgba(204,234,200,.35),0 0 0 14px rgba(204,234,200,.18),0 0 0 28px rgba(204,234,200,.08),0 15px 40px rgba(18,61,50,.4)}50%{transform:scale(1.05);box-shadow:0 0 0 8px rgba(204,234,200,.5),0 0 0 18px rgba(204,234,200,.28),0 0 0 36px rgba(204,234,200,.12),0 18px 50px rgba(18,61,50,.5)}}
.loader-brand{font:800 20px/1 "DM Sans";letter-spacing:4px;color:var(--deep);margin-bottom:18px;text-transform:uppercase;text-shadow:0 2px 4px rgba(255,255,255,.5)}
.loader-text{font:700 13px "DM Sans";color:var(--green);letter-spacing:3px;text-transform:uppercase;background:rgba(255,255,255,.7);display:inline-flex;align-items:center;gap:2px;padding:8px 22px;border-radius:30px;box-shadow:0 4px 12px rgba(18,61,50,.15)}
.loader-dots span{display:inline-block;animation:loaderDotBounce 1.4s ease-in-out infinite;opacity:.35}
.loader-dots span:nth-child(2){animation-delay:.2s}
.loader-dots span:nth-child(3){animation-delay:.4s}
@keyframes loaderDotBounce{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(-4px);opacity:1}}
body.loading{overflow:hidden}
/* ===== GLOBAL SMOOTH ANIMATIONS ===== */
*{transition:color .35s ease,background-color .35s ease,border-color .35s ease,fill .35s ease,stroke .35s ease}
html{scroll-behavior:smooth}
.nav,.brand,a,button{transition:transform .35s cubic-bezier(.2,.8,.2,1),background-color .3s ease,box-shadow .3s ease,color .3s ease}
.nav-cta:hover,.primary:hover,.light-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 14px 30px rgba(18,61,50,.25)}
.ghost:hover{transform:translateX(4px)}
.material,.testimonial-card,.step-no{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease}
.material:hover,.testimonial-card:hover{transform:translateY(-8px) scale(1.015);box-shadow:0 22px 50px rgba(18,61,50,.18)}
.steps article{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease}
.steps article:hover{transform:translateY(-6px)}
.nav a{position:relative}
.nav a::after{content:'';position:absolute;left:50%;bottom:-6px;width:0;height:2px;background:var(--lime);transition:width .35s ease,left .35s ease}
.nav a:hover::after{width:100%;left:0}
.ticker > div{animation:marqueeScroll 30s linear infinite}
@keyframes marqueeScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.scrap-card,.business-stats > div,.impact-main{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.scrap-card:hover{transform:rotate(-2deg) scale(1.03)}
.float-soft{animation:floaty 6s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.floating-tag,.hero-blob{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.floating-tag{animation:tagFloat 7s ease-in-out infinite}
@keyframes tagFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}
.show{animation:revealUp .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes revealUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
.steps article.show:nth-child(1){animation-delay:.05s}
.steps article.show:nth-child(2){animation-delay:.2s}
.steps article.show:nth-child(3){animation-delay:.35s}
.material.show:nth-child(1){animation-delay:.1s}
.material.show:nth-child(2){animation-delay:.2s}
.material.show:nth-child(3){animation-delay:.3s}
.material.show:nth-child(4){animation-delay:.4s}
.testimonial-card.show{animation-delay:.15s}
.testimonial-card.show:nth-child(2){animation-delay:.25s}
.testimonial-card.show:nth-child(3){animation-delay:.35s}
.loader-brand,.loader-text,.loader-percent{animation:fadeUp .8s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001s !important;transition-duration:.001s !important;animation-iteration-count:1 !important}}.nav nav{display:flex;gap:32px;font-size:14px;font-weight:600}.nav nav a:hover{color:var(--green)}button{font:700 14px "DM Sans";cursor:pointer;border:0}.nav-cta{background:var(--deep);color:#fff;padding:13px 18px;border-radius:12px}.nav-cta b{color:var(--lime);margin-left:10px}.menu{display:none;background:none;font-size:22px}.hero{min-height:650px;padding:75px 7vw 70px;display:grid;grid-template-columns:1fr 1fr;gap:40px;overflow:hidden;background:linear-gradient(135deg,#f5f1e7 0%,#eaf1dd 100%)}.eyebrow,.section-label{font-size:11px;letter-spacing:1.8px;font-weight:800;color:var(--green)}.eyebrow i{display:inline-block;width:8px;height:8px;background:var(--orange);border-radius:50%;margin-right:8px}.hero h1{font:700 clamp(55px,6.4vw,94px)/.92 "Space Grotesk";letter-spacing:-4px;margin:23px 0}.hero h1 em{font-style:normal;color:var(--green)}.hero h1 strong{color:var(--orange)}.hero-copy>p{max-width:560px;font-size:17px;line-height:1.7;color:#53645d}.hero-actions{display:flex;gap:13px;margin:30px 0}.primary{background:var(--deep);color:white;border-radius:12px;padding:15px 21px;box-shadow:0 8px 25px #123d3220}.primary span{color:var(--lime);margin-left:18px;font-size:17px}.ghost{background:transparent;border:1px solid #aebbb2;border-radius:12px;padding:14px 19px;color:var(--ink)}.play{border:1px solid #aebbb2;border-radius:50%;padding:5px;font-size:9px;margin-right:8px}.trust{display:flex;align-items:center;gap:18px;margin-top:32px}.avatars{display:flex}.avatars span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#d1b68b;border:2px solid var(--cream);font-size:8px;font-weight:800;margin-left:-6px}.avatars span:first-child{margin-left:0;background:#b8d94c}.avatars span:nth-child(2){background:#8bb6a2}.avatars span:nth-child(3){background:#e39c7a}.trust b{font-size:14px}.trust small{display:block;color:#6b7770;font-size:10px}.rating{border-left:1px solid #c7d0c8;padding-left:18px}.rating b{color:#de8b4b;letter-spacing:2px}.hero-art{position:relative;min-height:500px}.sun{position:absolute;width:360px;height:360px;background:var(--lime);border-radius:50%;right:5%;top:30px;opacity:.85}.blob{position:absolute;border-radius:45% 55% 55% 45%;filter:blur(.2px)}.blob-a{width:300px;height:230px;background:var(--orange);right:0;bottom:10px;transform:rotate(-18deg);opacity:.92}.blob-b{width:230px;height:180px;background:#7caf8d;left:10%;bottom:40px;transform:rotate(20deg)}.circle-art{position:absolute;width:310px;height:310px;border-radius:50%;background:#dcefe1;right:18%;top:115px;display:grid;place-items:center;box-shadow:0 25px 50px #17342d25}.ring{font-size:115px;color:var(--green);font-family:"Space Grotesk";font-weight:700}.truck{position:absolute;font-size:105px;color:var(--deep);transform:rotate(-5deg);opacity:.9}.scrap-card{position:absolute;z-index:3;background:#fffdf7;border-radius:18px;padding:19px;width:210px;left:2%;top:70px;box-shadow:0 20px 45px #17342d20}.card-top{font-size:9px;color:#6c7771;display:flex;justify-content:space-between}.card-top b{color:var(--green)}.scrap-card>strong{display:block;font:700 43px "Space Grotesk";margin:13px 0 7px}.scrap-card>strong span{font-size:13px;color:#6c7771}.mini-bars{display:flex;gap:5px;align-items:end;height:40px}.mini-bars i{display:block;width:17px;background:var(--green);border-radius:4px 4px 0 0}.mini-bars i:nth-child(1){height:18px}.mini-bars i:nth-child(2){height:27px}.mini-bars i:nth-child(3){height:20px}.mini-bars i:nth-child(4){height:34px}.mini-bars i:nth-child(5){height:26px}.mini-bars i:nth-child(6){height:38px}.mini-bars i:nth-child(7){height:32px}.card-bottom{font-size:9px;color:#77817c;margin-top:9px}.card-bottom span{color:var(--green);font-weight:800}.floating-tag{position:absolute;z-index:5;background:#fffdf7;padding:12px 15px;border-radius:12px;box-shadow:0 14px 30px #17342d18;font-size:12px}.floating-tag b{display:block;margin-left:21px}.floating-tag small{display:block;color:#77817c;margin-left:21px;font-size:9px}.tag1{right:0;top:300px}.tag2{left:8%;bottom:15px}.ticker{height:62px;background:var(--deep);color:#dbe9d7;display:flex;align-items:center;justify-content:space-around;font:700 11px "Space Grotesk";letter-spacing:1.5px}.ticker div:nth-child(2n){color:var(--lime)}.intro{padding:115px 7vw 70px;display:grid;grid-template-columns:25% 40% 35%;align-items:end}.intro h2,.material-head h2,.business h2,.impact h2,.pickup h2{font:700 clamp(42px,5vw,72px)/.95 "Space Grotesk";letter-spacing:-3px;margin:0}.intro h2 span,.material-head h2 span,.business h2 span,.impact h2 span,.pickup h2 span{color:var(--green)}.intro>p{font-size:16px;line-height:1.7;max-width:390px;margin:0}.steps{padding:0 7vw 120px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.steps article{border:1px solid var(--line);padding:30px;border-radius:20px;min-height:270px;position:relative;background:#f8f5ed}.steps article.active{background:var(--deep);color:white;border-color:var(--deep);transform:translateY(-16px)}.step-no{font-size:10px;letter-spacing:1px;color:#758078}.active .step-no{color:#b8d94c}.icon{font-size:34px;margin:28px 0 15px}.steps h3{font:600 27px "Space Grotesk";margin:0 0 8px}.steps p{font-size:13px;line-height:1.6;color:#748078;max-width:270px}.active p{color:#c5d2ca}.steps a{font-size:12px;font-weight:800;color:var(--green);position:absolute;bottom:28px}.active a{color:var(--lime)}.materials{padding:100px 7vw;background:#e7eee1}.material-head{display:grid;grid-template-columns:55% 45%;align-items:end;margin:20px 0 40px}.material-head p{max-width:390px;line-height:1.6;color:#66746c}.material-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.material{min-height:290px;border-radius:20px;padding:22px;position:relative;overflow:hidden}.material span{font-size:10px;font-weight:800}.material h3{position:absolute;bottom:48px;left:22px;font:600 23px "Space Grotesk"}.material p{position:absolute;bottom:20px;left:22px;font-size:10px}.material-icon{font-size:76px;position:absolute;right:18px;top:60px;opacity:.22}.metal{background:#d5c7ae}.paper{background:#f0d7a7}.plastic{background:#9ec9b1}.ewaste{background:#b9c9d4}
.material-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.material-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.05) 40%,rgba(0,0,0,.55) 100%);pointer-events:none}
.material>span,.material h3,.material p,.material-icon{position:absolute;z-index:2;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.material>span{top:18px;left:22px;color:#fff;font-size:10px;font-weight:800;letter-spacing:1.5px;background:rgba(0,0,0,.35);padding:5px 9px;border-radius:99px}
.material h3{bottom:46px;left:22px;font:600 23px "Space Grotesk";color:#fff}
.material p{bottom:16px;left:22px;font-size:11px;color:rgba(255,255,255,.9)}
.material-icon{font-size:54px;right:18px;top:auto;bottom:90px;opacity:.4;color:#fff;text-shadow:none}
.material:hover .material-img{transform:scale(1.07)}
.business-img{position:absolute;right:60px;bottom:60px;width:42%;max-width:520px;border-radius:22px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35);transform:rotate(-3deg);z-index:5}
.business-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.business-img:hover img{transform:scale(1.05)}
@media(max-width:850px){.business-img{position:relative;right:auto;bottom:auto;width:100%;margin-top:25px;transform:none}}
.person>img{width:42px;height:42px;border-radius:50%;object-fit:cover}
.journey-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:24px;z-index:1}
.journey-art .journey-orbit,.journey-art .journey-dot{z-index:2}
.journey-art::before{content:'';position:absolute;inset:0;background:linear-gradient(140deg,rgba(18,52,45,.05) 0%,rgba(18,52,45,.55) 100%);border-radius:24px;z-index:1}
.gallery{padding:105px 7vw;background:#f5f1e7}
.gallery-head{display:grid;grid-template-columns:55% 45%;align-items:end;margin-bottom:40px;gap:20px}
.gallery-head h2{font:700 clamp(42px,5vw,72px)/.95 "Space Grotesk";letter-spacing:-3px;margin:0}
.gallery-head h2 span{color:var(--green)}
.gallery-head p{max-width:380px;line-height:1.7;color:#66746c}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:450px;gap:14px}
.g-card{position:relative;overflow:hidden;border-radius:20px;margin:0;cursor:pointer;box-shadow:0 12px 30px rgba(23,52,45,.12);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s ease}
.g-card img{width:100%;height:450px;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.g-card::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.08);pointer-events:none}
.g-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 20px;color:#fff;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.65) 100%);transform:translateY(0);opacity:1;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .45s ease}
.g-card figcaption b{display:block;font:600 18px "Space Grotesk";margin-bottom:4px}
.g-card figcaption small{font-size:11px;color:rgba(255,255,255,.8);letter-spacing:.5px;text-transform:uppercase}
.g-card:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(23,52,45,.22)}
.g-card:hover img{transform:scale(1.08)}
.g-1,.g-3{grid-row:auto}
@media(max-width:850px){.gallery-grid{grid-template-columns:1fr 1fr}.g-card img{height:240px}}
@media(max-width:560px){.gallery-grid{grid-template-columns:1fr}.gallery-head{grid-template-columns:1fr}}.business{margin:100px 7vw;background:var(--deep);color:white;border-radius:28px;padding:70px;display:grid;grid-template-columns:60% 40%;overflow:hidden;position:relative}.business:after{content:"↻";position:absolute;right:-20px;bottom:-110px;font:700 300px "Space Grotesk";color:#ffffff08}.light{color:var(--lime)}.business h2{margin:22px 0}.business h2 span{color:var(--lime)}.business-copy p{max-width:570px;line-height:1.7;color:#c1d0c7}.light-btn{margin-top:20px;background:var(--lime);color:var(--deep);padding:15px 20px;border-radius:11px}.business-stats{display:grid;grid-template-columns:1fr;align-content:center;gap:22px}.business-stats div{border-bottom:1px solid #ffffff20;padding-bottom:15px}.business-stats strong{font:700 40px "Space Grotesk";display:block;color:var(--lime)}.business-stats small{color:#b9c9c0}#impact{background-image:url("assets/images/map-blue-gravita.webp");background-size:cover;background-position:center;background-repeat:no-repeat;position:relative}
#impact::before{content:"";position:absolute;inset:0;background:rgba(247,243,233,.82);pointer-events:none}
#impact>*{position:relative;z-index:1}
.impact{padding:100px 7vw;display:grid;grid-template-columns:30% 40% 30%;gap:30px;align-items:center;position:relative}.impact-main{padding:25px 0}.big-number{font:700 clamp(70px,9vw,130px) "Space Grotesk";letter-spacing:-7px;color:var(--green)}.impact-main p{font-size:14px;max-width:260px}.impact-line{height:1px;background:#bcc9bf;margin:25px 0}.impact-mini{display:flex;gap:18px;align-items:center}.impact-mini b{font:700 28px "Space Grotesk"}.impact-mini span{font-size:11px;color:#758078}.impact-side{border-left:1px solid #c6d0c8;padding-left:35px}.quote{font:500 25px/1.3 "Space Grotesk"}.quote-author{margin-top:25px;color:#758078;font-size:11px}.pickup{background:#d7e8d4;margin:0;padding:90px 7vw;display:grid;grid-template-columns:48% 52%;gap:50px}.pickup h2{margin:22px 0 15px}.pickup>div>p{color:#607069}.pickup form{background:#fffdf7;padding:28px;border-radius:20px;display:grid;grid-template-columns:1fr 1fr;gap:16px;box-shadow:0 20px 50px #17342d12}.pickup label{font-size:11px;font-weight:700}.pickup input,.pickup select{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #ccd5ce;border-radius:9px;background:white;font:13px "DM Sans";outline:none}.pickup input:focus,.pickup select:focus{border-color:var(--green)}.pickup form button{grid-column:1/-1}.form-note{grid-column:1/-1;font-size:12px;color:var(--green)}footer{background:#102f28;color:#d5e0d9;padding:60px 7vw 25px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:35px;position:relative}.footer-brand p{font-size:12px;color:#8fa198;max-width:230px;line-height:1.6}.footer-brand .brand{color:white}.footer-brand .brand>span:last-child>span{color:var(--lime)}footer>div:not(.footer-brand):not(.copyright){display:flex;flex-direction:column;gap:12px;font-size:12px}footer b{color:var(--lime);margin-bottom:5px}.copyright{grid-column:1/-1;border-top:1px solid #ffffff15;padding-top:20px;color:#71847c;font-size:10px}
@media(max-width:850px){.nav nav,.nav-cta{display:none}.menu{display:block}.hero{grid-template-columns:1fr;padding-top:55px}.hero-art{min-height:450px}.intro,.material-head,.impact{grid-template-columns:1fr;gap:25px}.steps,.material-grid{grid-template-columns:1fr 1fr}.steps article.active{transform:none}.business{grid-template-columns:1fr;padding:45px}.business-stats{grid-template-columns:repeat(3,1fr);margin-top:35px}.pickup{grid-template-columns:1fr}.ticker{overflow:hidden;gap:30px;justify-content:flex-start;padding:0 7vw;white-space:nowrap}.ticker div:nth-child(n+5){display:none}footer{grid-template-columns:1fr 1fr}.copyright{grid-column:1/-1}}
@media(max-width:560px){.hero h1{font-size:52px;letter-spacing:-2.5px}.hero-art{transform:scale(.9);transform-origin:center}.steps,.material-grid{grid-template-columns:1fr}.material{min-height:230px}.business{margin:60px 4vw;padding:35px}.business-stats{grid-template-columns:1fr 1fr}.pickup form{grid-template-columns:1fr}.pickup form button{grid-column:1}.pickup{padding:70px 5vw}footer{padding:45px 5vw}.intro,.materials,.impact{padding-left:5vw;padding-right:5vw}.nav{padding:0 5vw}}

.loader{position:fixed;inset:0;z-index:100;background:var(--deep);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;animation:loaderOut .8s 2.15s forwards}.loader-orbit{width:84px;height:84px;border:1px solid #ffffff35;border-top-color:var(--lime);border-radius:50%;display:grid;place-items:center;animation:spin 1s linear infinite}.loader-orbit span{font-size:40px;color:var(--lime)}.loader-name{font:700 31px "Space Grotesk"}.loader-name span{color:var(--lime)}.loader small{font-size:8px;letter-spacing:2.5px;color:#91a89d}.loader-line{width:180px;height:2px;background:#ffffff18;overflow:hidden}.loader-line i{display:block;height:100%;width:0;background:var(--lime);animation:loadline 1.8s ease forwards}
.hero{position:relative}.hero>*:not(#particles){position:relative;z-index:2}#particles{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
/* Force hero to fill viewport minus header so header + hero + ticker cover the full screen on every device */
.hero{position:relative;height:calc(100vh - 82px - 62px);min-height:520px;padding:0 !important;margin:0;display:block !important;width:100% !important;background:linear-gradient(135deg,#f5f1e7 0%,#eaf1dd 100%);overflow:hidden}
.hero-slider{position:relative;height:100%;display:block;width:100%;margin:0}
.hero-slide{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:0;padding:75px 7vw 70px;opacity:0;visibility:hidden;transition:opacity .8s cubic-bezier(.2,.8,.2,1),visibility .8s ease;pointer-events:none;overflow:hidden;height:100%}
.hero-slide.active{opacity:1;visibility:visible;pointer-events:auto;position:relative;z-index:2;height:100%}
.hero-slide.entering{animation:slideIn 1s cubic-bezier(.2,.8,.2,1) both}
.hero-slide.leaving{animation:slideOut 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes slideIn{from{opacity:0;transform:translateX(60px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes slideOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-60px)}}
/* Per-slide transition effects (chosen via data-effect on .hero-slide) */
.hero-slide[data-effect="zoom"]{animation:zoomIn 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes zoomIn{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}
.hero-slide[data-effect="mask"]{clip-path:inset(0 100% 0 0);animation:maskWipe 1.1s cubic-bezier(.7,0,.3,1) both}
@keyframes maskWipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.hero-slide[data-effect="blur"]{animation:blurIn 1s ease both}
@keyframes blurIn{from{opacity:0;filter:blur(18px);transform:translateY(20px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
/* Video slide */
.slide-video{grid-template-columns:1fr}
.slide-video-el{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.slide-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(120deg,rgba(18,52,45,.85) 0%,rgba(18,52,45,.45) 55%,rgba(18,52,45,.15) 100%);pointer-events:none}
.slide-overlay-warm{background:linear-gradient(120deg,rgba(64,30,15,.78) 0%,rgba(120,55,25,.45) 55%,rgba(238,135,80,.15) 100%)}
.slide-image{position:absolute;inset:0;grid-template-columns:1fr;background:var(--bg-image) center/cover no-repeat;height:100%;min-height:inherit}
.slide-image::before{content:'';position:absolute;inset:0;background:inherit;background:var(--bg-image) center/cover no-repeat;filter:blur(20px) saturate(.9);z-index:0;transform:scale(1.1)}
.slide-image .slide-overlay{z-index:1}
.slide-content{position:relative;z-index:2;max-width:780px;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:18px}
.slide-content .eyebrow.light{color:var(--lime)}
.slide-content .eyebrow.light i{background:var(--lime)}
.slide-content h1{color:#fff;text-shadow:0 4px 22px rgba(0,0,0,.3)}
.slide-content p{color:rgba(255,255,255,.85);max-width:560px}
.ghost.light{border-color:rgba(255,255,255,.4);color:#fff}
.ghost.light:hover{background:rgba(255,255,255,.12);border-color:#fff}
.video-rail{display:flex;gap:24px;flex-wrap:wrap;margin-top:18px;color:#fff}
.video-rail span{display:inline-flex;align-items:baseline;gap:6px;font:700 13px "DM Sans";letter-spacing:.5px;text-transform:uppercase;background:rgba(255,255,255,.12);padding:9px 14px;border-radius:99px;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18)}
.video-rail b{font:700 16px "Space Grotesk";color:var(--lime)}
/* Slider controls */
button.hero-arrow{position:absolute !important;top:50% !important;left:auto;right:auto;width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.85);color:var(--deep);font-size:30px;font-weight:700;display:grid;place-items:center;cursor:pointer;border:0;box-shadow:0 12px 30px rgba(23,52,45,.2);transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s ease;z-index:10 !important;margin:0;transform:translateY(-50%)}
button.hero-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.08)}
button.hero-arrow.prev{left:24px !important}
button.hero-arrow.next{right:24px !important}
.hero-dots{position:absolute !important;bottom:30px !important;left:50% !important;right:auto;top:auto !important;transform:translateX(-50%);display:flex;gap:10px;z-index:10 !important;width:auto;margin:0;padding:0}
.hero-dots button{width:32px;height:6px;border-radius:99px;border:0;background:rgba(255,255,255,.45);cursor:pointer;transition:background .3s ease,transform .3s ease,width .35s cubic-bezier(.2,.8,.2,1)}
.hero-dots button:hover{background:rgba(255,255,255,.75)}
.hero-dots button.active{background:var(--lime);width:56px;transform:scaleY(1.4)}
@media(max-width:850px){.hero-slide{grid-template-columns:1fr;padding:55px 5vw 90px;gap:25px}button.hero-arrow{width:42px;height:42px;font-size:22px}button.hero-arrow.prev{left:12px !important}button.hero-arrow.next{right:12px !important}.video-rail{gap:6px}.video-rail span{font-size:11px;padding:6px 10px}}
@media(max-width:560px){button.hero-arrow{display:none}.hero-dots{bottom:18px !important}.slide-content h1{font-size:42px;letter-spacing:-2px}}
.logo-strip{padding:36px 7vw;background:#fffdf7;overflow:hidden;border-bottom:1px solid #dbe2da}.logo-strip>.section-label{text-align:center;margin-bottom:23px}.logo-track{display:flex;width:max-content;gap:72px;animation:marquee 28s linear infinite;align-items:center}.logo-item{font:700 18px "Space Grotesk";letter-spacing:1.5px;color:#819088;white-space:nowrap}.logo-item span{color:var(--green)}
.testimonials{padding:105px 7vw;background:#f7f3e9}.testimonial-head{display:grid;grid-template-columns:55% 45%;align-items:end;margin:20px 0 42px}.testimonial-head h2{font:700 clamp(43px,5vw,70px)/.95 "Space Grotesk";letter-spacing:-3px;margin:0}.testimonial-head h2 span{color:var(--orange)}.testimonial-head p{max-width:390px;line-height:1.7;color:#68766e}.testimonial-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:15px}.testimonial-card{background:#fffdf7;border:1px solid #d8dfd7;border-radius:20px;padding:28px;min-height:300px;display:flex;flex-direction:column;transition:.35s}.testimonial-card:hover{transform:translateY(-8px);box-shadow:0 22px 45px #17342d14}.testimonial-card.featured{background:var(--deep);color:#fff}.stars{color:var(--orange);letter-spacing:2px}.testimonial-card p{font:500 20px/1.45 "Space Grotesk";margin:35px 0}.person{display:flex;gap:11px;align-items:center;margin-top:auto}.person>span{width:38px;height:38px;border-radius:50%;background:var(--lime);color:var(--deep);display:grid;place-items:center;font-size:10px;font-weight:800}.person b{display:block;font-size:12px}.person small{color:#84928a;font-size:9px}
.journey{margin:0 7vw 100px;border-radius:28px;background:#1d5545;color:#fff;min-height:520px;display:grid;grid-template-columns:45% 55%;overflow:hidden;position:relative}.journey-copy{padding:72px 70px;position:relative;z-index:2}.journey h2{font:700 clamp(42px,5vw,69px)/.94 "Space Grotesk";letter-spacing:-3px;margin:22px 0}.journey h2 span{color:var(--lime)}.journey-copy p{max-width:500px;line-height:1.7;color:#c2d3ca}.journey-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.journey-pills span{border:1px solid #ffffff25;background:#ffffff0c;padding:10px 14px;border-radius:30px;font-size:10px}.journey-art{position:relative;background:radial-gradient(circle at 50% 50%,#b8d94c 0,#6c9f78 25%,#1d5545 60%);overflow:hidden}.journey-orbit{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:700 190px "Space Grotesk";color:#17342d;animation:spinSlow 18s linear infinite}.journey-art:before,.journey-art:after{content:"";position:absolute;border:1px solid #ffffff30;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.journey-art:before{width:310px;height:310px}.journey-art:after{width:450px;height:450px}.journey-dot{position:absolute;width:13px;height:13px;background:var(--lime);border-radius:50%;box-shadow:0 0 0 8px #b8d94c20}.d1{left:20%;top:28%}.d2{right:20%;top:38%}.d3{left:35%;bottom:19%}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinSlow{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes loadline{to{width:100%}}@keyframes loaderOut{to{opacity:0;visibility:hidden;transform:scale(1.03)}}@keyframes marquee{to{transform:translateX(-50%)}}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.reveal.show{opacity:1;transform:none}
.primary,.ghost,.nav-cta,.light-btn{position:relative;transform:translateZ(0);transition:transform .2s,box-shadow .2s;border:1px solid #ffffff35;box-shadow:inset 0 1px 1px #ffffff55,0 7px 0 #0b2b24,0 14px 28px #17342d20;overflow:hidden}.primary:before,.ghost:before,.nav-cta:before,.light-btn:before{content:"";position:absolute;inset:-60%;background:linear-gradient(110deg,transparent 42%,#ffffff55 50%,transparent 58%);transform:translateX(-80%) rotate(8deg);transition:transform .7s}.primary:hover:before,.ghost:hover:before,.nav-cta:hover:before,.light-btn:hover:before{transform:translateX(80%) rotate(8deg)}.primary:hover,.ghost:hover,.nav-cta:hover,.light-btn:hover{transform:translateY(-3px);box-shadow:inset 0 1px 1px #ffffff66,0 10px 0 #0b2b24,0 20px 35px #17342d28}.primary:active,.ghost:active,.nav-cta:active,.light-btn:active{transform:translateY(3px);box-shadow:inset 0 1px 1px #ffffff55,0 3px 0 #0b2b24,0 7px 15px #17342d20}.ghost{background:#ffffff32;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.light-btn{box-shadow:inset 0 1px 1px #ffffff80,0 7px 0 #66841b,0 15px 25px #0d30281c}
@media(max-width:850px){.testimonial-head,.testimonial-grid{grid-template-columns:1fr}.journey{grid-template-columns:1fr}.journey-art{min-height:300px;order:2}.journey-copy{padding:50px 35px}.logo-track{gap:45px}.logo-item{font-size:15px}}@media(max-width:560px){.journey{margin-left:4vw;margin-right:4vw}.testimonial-grid{grid-template-columns:1fr}.testimonial-card{min-height:260px}}
