*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",sans-serif;color:#16301e;background:#fbfdf9}a{text-decoration:none;color:inherit}.container{width:min(1160px,92%);margin:auto}.topbar{background:#15391f;color:#dff4e3;font-size:13px}.topbar-inner{display:flex;justify-content:space-between;padding:9px 0}.header{position:sticky;top:0;z-index:20;background:rgba(251,253,249,.94);backdrop-filter:blur(14px);border-bottom:1px solid #e2eadf}.nav{height:78px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-family:Manrope;font-weight:800;font-size:15px;letter-spacing:-.03em}.brand img{width:50px;height:50px;object-fit:contain}.brand b{display:block;color:#79bd19;font-size:11px;letter-spacing:.16em}.links{display:flex;gap:28px;align-items:center;font-size:14px;font-weight:600}.links a:hover{color:#65aa0e}.nav-cta{padding:11px 18px;border-radius:999px;background:#75bb18;color:#fff}.menu{display:none;background:none;border:0;font-size:25px}.hero{position:relative;overflow:hidden;color:#fff;background:#11351d}.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,35,17,.9),rgba(9,35,17,.45)),url("https://images.unsplash.com/photo-1711214622639-42bb82a167e8?auto=format&fit=crop&q=80&w=1800") center/cover}.hero-grid{position:relative;min-height:680px;display:grid;grid-template-columns:1.05fr .75fr;align-items:center;gap:70px;padding:75px 0}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;color:#72bb17;margin:0 0 16px}.hero .eyebrow{color:#a6dc59}.hero h1,.section h2,.about h2,.cta h2,.contact h2{font-family:Manrope;margin:0;letter-spacing:-.045em;line-height:1.04}.hero h1{font-size:clamp(42px,5vw,70px)}.hero h1 em{font-style:normal;color:#a5df56}.hero-text{max-width:600px;color:#e4eee5;font-size:18px;line-height:1.7;margin:25px 0}.actions{display:flex;gap:13px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:14px 21px;font-weight:700;cursor:pointer;font-family:inherit}.primary{background:#79c51c;color:#fff}.ghost{border:1px solid rgba(255,255,255,.35);color:#fff}.light{background:#fff;color:#173a20}.mini-trust{display:flex;gap:20px;flex-wrap:wrap;color:#d9e9db;font-size:13px;margin-top:27px}.hero-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.22);color:#173a20}.hero-card-image{height:360px;background:url("images/project-02.jpg") center/cover}.hero-card-body{padding:20px 22px;display:grid;gap:5px}.hero-card-body span{font-size:10px;letter-spacing:.18em;color:#73b817;font-weight:800}.hero-card-body strong{font-family:Manrope;font-size:20px}.hero-card-body small{color:#6b786e}.stats{background:#75bd1b;color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:26px 0}.stats-grid div{padding:4px 28px;border-right:1px solid rgba(255,255,255,.3)}.stats-grid div:first-child{padding-left:0}.stats-grid div:last-child{border:0}.stats-grid strong{display:block;font-family:Manrope;font-size:27px}.stats-grid span{font-size:13px;opacity:.9}.section{padding:105px 0}.section-head{display:grid;grid-template-columns:1fr .65fr;gap:60px;align-items:end;margin-bottom:45px}.section h2,.about h2,.contact h2{font-size:clamp(34px,4vw,54px)}.section-head>p,.about-copy>p,.contact-lead{color:#667368;line-height:1.75}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{background:#fff;border:1px solid #e2eae0;border-radius:20px;overflow:hidden;transition:.25s;box-shadow:0 10px 35px rgba(31,72,35,.05)}.service-card:hover{transform:translateY(-6px);box-shadow:0 18px 45px rgba(31,72,35,.12)}.service-image{height:210px;background-size:cover;background-position:center}.service-image.solar{background-image:url("https://images.unsplash.com/photo-1711214622639-42bb82a167e8?auto=format&fit=crop&q=80&w=1000")}.service-image.heater{background-image:url("https://images.unsplash.com/photo-1723407653103-7a9c6b579acf?auto=format&fit=crop&q=80&w=1000")}.service-image.street{background-image:url("https://images.unsplash.com/photo-1778855400423-b8208c9ed9df?auto=format&fit=crop&q=80&w=1000")}.service-image.project{background-image:url("images/project-03.jpg")}.service-body{padding:22px}.service-body>span{color:#76b91b;font-size:11px;font-weight:800}.service-body h3{font-family:Manrope;font-size:20px;margin:9px 0}.service-body p{font-size:14px;line-height:1.6;color:#69756b;min-height:67px}.service-body a,.text-link{color:#5da40d;font-weight:700;font-size:14px}.about{padding:100px 0;background:#edf5e9}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.about-photo{border-radius:26px;overflow:hidden;box-shadow:0 25px 60px rgba(28,60,30,.15)}.about-photo img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.about-copy h2{margin-bottom:24px}.checks{display:grid;gap:13px;margin:28px 0}.checks div{background:#fff;border-radius:10px;padding:13px 16px;font-weight:600;font-size:14px}.projects{background:#fff}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:13px}.gallery-item{border:0;padding:0;position:relative;overflow:hidden;border-radius:15px;background:#ddd;cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:.4s}.gallery-item:hover img{transform:scale(1.05)}.gallery-item:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.65))}.gallery-item span{position:absolute;bottom:13px;left:14px;color:#fff;z-index:2;font-size:12px;font-weight:700}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2}.cta{background:#15391f;color:#fff;padding:75px 0}.cta-inner{display:flex;justify-content:space-between;gap:40px;align-items:center}.cta h2{font-size:clamp(30px,4vw,49px);max-width:780px}.contact-grid{display:grid;grid-template-columns:1fr .8fr;gap:90px;align-items:start}.contact-list{display:grid;gap:16px;margin-top:35px}.contact-list a,.contact-list div{padding:17px 0;border-bottom:1px solid #e0e8dd;font-weight:700}.contact-list span{display:block;color:#79b91c;font-size:10px;letter-spacing:.16em;margin-bottom:5px}form{background:#fff;border:1px solid #dfe8dc;border-radius:22px;padding:30px;box-shadow:0 18px 50px rgba(31,72,35,.07)}form h3{font-family:Manrope;font-size:25px;margin:0 0 6px}form>p{color:#728074;font-size:14px;margin:0 0 22px}label{display:block;font-size:12px;font-weight:700;margin:14px 0}input,select,textarea{width:100%;margin-top:7px;border:1px solid #d9e2d6;border-radius:10px;padding:13px;font:inherit;background:#fbfdf9}textarea{resize:vertical}form .btn{width:100%;margin-top:8px}footer{background:#0d2815;color:#cbdaca;padding:35px 0 18px}.footer{display:flex;align-items:center;gap:30px}.footer-brand{color:#fff}.footer-links{margin-left:auto;display:flex;gap:20px;font-size:13px}.copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:25px;padding-top:15px;font-size:11px;color:#8fa391}.floating-wa{position:fixed;right:22px;bottom:22px;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;font-size:25px;box-shadow:0 10px 30px rgba(0,0,0,.2);z-index:30}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:50;display:none;place-items:center;padding:30px}.lightbox.open{display:grid}.lightbox img{max-width:95%;max-height:90%;border-radius:10px}.close{position:absolute;right:25px;top:18px;background:none;border:0;color:#fff;font-size:40px;cursor:pointer}@media(max-width:900px){.links{display:none}.links.open{display:flex;position:absolute;top:78px;left:0;right:0;background:#fff;padding:20px;flex-direction:column;box-shadow:0 15px 30px rgba(0,0,0,.1)}.menu{display:block}.hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr}.hero-grid{padding:60px 0}.hero-card{max-width:560px}.service-grid{grid-template-columns:repeat(2,1fr)}.section-head{grid-template-columns:1fr;gap:10px}.gallery{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr);gap:15px}.stats-grid div{border:0;padding:8px}.footer{flex-wrap:wrap}.footer-links{margin-left:0}}@media(max-width:560px){.topbar-inner span:last-child{display:none}.nav{height:68px}.brand img{width:42px;height:42px}.hero h1{font-size:43px}.hero-text{font-size:16px}.hero-card-image{height:280px}.service-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr;grid-auto-rows:250px}.gallery-item.tall,.gallery-item.wide{grid-row:auto;grid-column:auto}.section,.about{padding:75px 0}.cta-inner{flex-direction:column;align-items:flex-start}.footer{display:grid}.footer-links{flex-wrap:wrap}}


/* ===== V2 interaction + mobile polish ===== */
html { scroll-padding-top: 86px; }
body { overflow-x: hidden; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }

/* Fast branded preloader */
.preloader {
  position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center;
  align-content: center; gap: 14px; background: #0d2815; color: #fff;
  transition: opacity .55s ease, visibility .55s ease;
}
.preloader.done { opacity: 0; visibility: hidden; pointer-events: none; }
.loader-mark { width: 92px; height: 92px; position: relative; display:grid; place-items:center; }
.loader-mark img { width: 68px; height: 68px; object-fit: contain; position:relative; z-index:2; border-radius:50%; }
.loader-ring {
  position:absolute; inset:0; border-radius:50%;
  border:2px solid rgba(255,255,255,.18); border-top-color:#83cf25;
  animation: spin .9s linear infinite;
}
.loader-name { font-family: Manrope; font-weight:800; letter-spacing:.08em; font-size:15px; }
.loader-name span { color:#83cf25; }
.loader-line { width:150px; height:2px; background:rgba(255,255,255,.14); overflow:hidden; }
.loader-line i { display:block; width:45%; height:100%; background:#83cf25; animation: loadline 1.05s ease-in-out infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes loadline { 0%{transform:translateX(-110%)} 100%{transform:translateX(330%)} }

/* Scroll reveal */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}

/* More tactile cards */
.service-card, .gallery-item, .btn, .nav-wa, .floating-wa { will-change: transform; }
.btn { transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(34,88,28,.18); }
.btn:active { transform:scale(.98); }
.service-card { transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.gallery-item:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline:3px solid rgba(117,189,27,.45); outline-offset:3px;
}

/* Hero image has a subtle Ken Burns effect */
.hero-card-image { animation: heroZoom 14s ease-in-out infinite alternate; }
@keyframes heroZoom { from { background-size:100%; } to { background-size:108%; } }

/* Sticky mobile action tray */
.mobile-actions { display:none; }

/* Better phone layout */
@media (max-width: 900px) {
  .topbar { font-size:12px; }
  .topbar-inner { min-height:34px; }
  .header { position:sticky; }
  .nav { height:70px; }
  .links { gap:0; }
  .links a { width:100%; padding:13px 8px; border-bottom:1px solid #edf1eb; }
  .links .nav-wa { width:auto; text-align:center; margin-top:8px; }
  .hero-grid { gap:42px; min-height:auto; }
  .hero-card { width:100%; }
  .section-head { margin-bottom:30px; }
  .service-card:hover { transform:none; }
}

@media (max-width: 560px) {
  body { padding-bottom:68px; }
  .container { width:min(100% - 30px, 1160px); }
  .topbar-inner { justify-content:center; text-align:center; }
  .nav { height:64px; }
  .brand { font-size:13px; gap:7px; }
  .brand b { font-size:9px; }
  .brand img { width:40px; height:40px; }
  .menu { font-size:27px; padding:7px 3px; }
  .links.open { top:64px; padding:12px 15px 18px; }
  .hero-grid { padding:54px 0 58px; gap:30px; }
  .hero h1 { font-size:clamp(38px, 11vw, 48px); }
  .hero-text { margin:19px 0; line-height:1.6; }
  .actions { display:grid; grid-template-columns:1fr; }
  .actions .btn { width:100%; box-sizing:border-box; }
  .mini-trust { gap:8px 15px; line-height:1.3; }
  .hero-card { border-radius:18px; }
  .hero-card-image { height:250px; animation:none; }
  .stats-grid { grid-template-columns:repeat(2,1fr); padding:18px 0 22px; gap:2px; }
  .stats-grid strong { font-size:23px; }
  .stats-grid span { font-size:11px; }
  .section, .about { padding:64px 0; }
  .section-head { gap:8px; }
  .section h2, .about h2, .contact h2 { font-size:34px; line-height:1.08; }
  .service-grid { gap:14px; }
  .service-image { height:205px; }
  .service-body { padding:19px; }
  .service-body p { min-height:0; }
  .about-grid { gap:35px; }
  .about-photo { border-radius:18px; }
  .gallery { gap:10px; grid-auto-rows:240px; }
  .gallery-item { border-radius:13px; }
  .cta { padding:58px 0 75px; }
  .cta-inner { gap:25px; }
  .cta .btn { width:100%; box-sizing:border-box; }
  .contact-grid { gap:42px; }
  form { padding:22px; border-radius:17px; }
  input, select, textarea { box-sizing:border-box; font-size:16px; } /* prevents iOS zoom */
  .footer { gap:17px; padding-bottom:8px; }
  .footer-links { gap:16px; }
  .copyright { margin-bottom:4px; }

  .mobile-actions {
    position:fixed; display:grid; grid-template-columns:repeat(3,1fr);
    left:0; right:0; bottom:0; z-index:100;
    height:66px; background:rgba(13,40,21,.96); backdrop-filter:blur(12px);
    border-top:1px solid rgba(255,255,255,.12);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mobile-actions a { color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; font-weight:700; }
  .mobile-actions span { font-size:20px; line-height:1; color:#83cf25; }
  .mobile-actions small { font-size:10px; opacity:.9; }
  .floating-wa { display:none; }
}

/* Small tablets: keep comfortable touch targets */
@media (min-width:561px) and (max-width:900px) {
  .mobile-actions { display:none; }
  .gallery { grid-auto-rows:220px; }
}


/* ===== Roots / experience storytelling animation ===== */
.roots-section { position:relative; overflow:hidden; }
.roots-section::before {
  content:""; position:absolute; width:520px; height:520px; border-radius:50%;
  left:-330px; top:12%; border:1px solid rgba(116,190,35,.13);
  box-shadow:0 0 0 70px rgba(116,190,35,.035), 0 0 0 140px rgba(116,190,35,.022);
  animation: mapPulse 6s ease-in-out infinite;
  pointer-events:none;
}
.roots-section .about-photo {
  transform:translateZ(0);
  transition:transform .8s cubic-bezier(.2,.7,.2,1), box-shadow .8s ease;
}
.roots-section.is-visible .about-photo {
  animation: photoFloat 5s ease-in-out infinite alternate;
  box-shadow:0 24px 55px rgba(17,53,29,.15);
}
.years-counter {
  display:inline-block; min-width:1.05em; font-variant-numeric:tabular-nums;
  transform:translateY(5px); opacity:.2;
  transition:opacity .3s ease, transform .5s ease;
}
.roots-section.is-visible .years-counter { opacity:1; transform:none; }

@keyframes mapPulse {
  0%,100% { transform:scale(.96); opacity:.45; }
  50% { transform:scale(1.04); opacity:1; }
}
@keyframes photoFloat {
  from { transform:translateY(0) scale(1); }
  to { transform:translateY(-7px) scale(1.008); }
}

/* Make the timeline feel like a journey being drawn */
.roots-section .timeline { position:relative; }
.roots-section .timeline::before {
  transform:scaleY(0); transform-origin:top;
  transition:transform 1.25s cubic-bezier(.2,.75,.2,1) .25s;
}
.roots-section.is-visible .timeline::before { transform:scaleY(1); }

@media (max-width:560px) {
  .roots-section::before { width:320px; height:320px; left:-240px; top:4%; }
  .roots-section.is-visible .about-photo { animation:none; }
}


/* ===== Final polish: regional story / animated journey ===== */
.scroll-cue {
  display:inline-flex; align-items:center; gap:9px; margin-top:25px;
  color:rgba(255,255,255,.72); font-size:12px; font-weight:700;
  transition:color .2s ease, transform .2s ease;
}
.scroll-cue:hover { color:#a5df56; transform:translateY(2px); }
.scroll-cue > span {
  width:7px; height:18px; border:1px solid rgba(255,255,255,.45);
  border-radius:99px; position:relative;
}
.scroll-cue > span::after {
  content:""; position:absolute; width:3px; height:3px; border-radius:50%;
  background:#a5df56; left:1px; top:3px; animation:scrollDot 1.6s ease-in-out infinite;
}
@keyframes scrollDot { 0%,100%{transform:translateY(0);opacity:.5} 50%{transform:translateY(7px);opacity:1} }

.roots-section { position:relative; overflow:hidden; }
.roots-wrap { position:relative; z-index:1; }
.roots-orbit { position:absolute; inset:0; pointer-events:none; overflow:hidden; opacity:.75; }
.orbit { position:absolute; border:1px solid rgba(103,169,24,.13); border-radius:50%; }
.orbit-a { width:760px; height:760px; left:-430px; top:8%; animation:orbitFloat 11s ease-in-out infinite; }
.orbit-b { width:480px; height:480px; right:-270px; bottom:-230px; animation:orbitFloat 8s ease-in-out infinite reverse; }
.orbit-dot { position:absolute; width:7px; height:7px; border-radius:50%; background:#83c72a; box-shadow:0 0 0 7px rgba(131,199,42,.1); }
.dot-a { left:8%; top:32%; animation:dotDrift 5s ease-in-out infinite; }
.dot-b { right:9%; bottom:25%; animation:dotDrift 6s ease-in-out infinite reverse; }
@keyframes orbitFloat { 50%{transform:translate(12px,-8px) rotate(5deg)} }
@keyframes dotDrift { 50%{transform:translate(0,-12px);opacity:.55} }

.roots-intro {
  display:flex; align-items:flex-end; justify-content:space-between; gap:35px; margin-bottom:55px;
}
.roots-intro h2 { max-width:720px; }
.roots-badges { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.roots-badges span {
  padding:11px 15px; background:rgba(255,255,255,.74);
  border:1px solid rgba(26,65,31,.08); border-radius:999px;
  font-size:13px; font-weight:700; box-shadow:0 8px 24px rgba(31,72,35,.04);
}

.roots-story { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:78px; align-items:center; }
.roots-visual { min-height:560px; position:relative; display:flex; align-items:center; justify-content:center; }
.regional-map {
  position:relative; width:min(100%,520px); aspect-ratio:1/1; border-radius:34px;
  background:
    radial-gradient(circle at 50% 46%, rgba(126,190,54,.16), transparent 35%),
    linear-gradient(145deg,#f8fcf5,#e4f0df);
  border:1px solid rgba(33,75,39,.08);
  box-shadow:0 30px 70px rgba(28,60,30,.12), inset 0 1px 0 rgba(255,255,255,.8);
  overflow:hidden;
}
.regional-map::before {
  content:""; position:absolute; inset:18px; border-radius:26px;
  border:1px dashed rgba(83,142,36,.15);
}
.regional-map svg { position:absolute; inset:8%; width:84%; height:84%; }
.map-shape { fill:url(#mapFill); stroke:#72ad3e; stroke-width:3; stroke-linejoin:round; filter:drop-shadow(0 12px 15px rgba(55,104,31,.12)); }
.route { fill:none; stroke:#65a91d; stroke-width:4; stroke-linecap:round; stroke-dasharray:8 10; animation:routeDash 5s linear infinite; }
.route-soft { opacity:.22; stroke-width:2; stroke-dasharray:4 12; animation-duration:7s; }
.map-node { fill:#fff; stroke:#66ad20; stroke-width:4; }
.node-pulse { fill:none; stroke:#80c936; stroke-width:2; opacity:.65; animation:nodePulse 2s ease-out infinite; }
@keyframes routeDash { to { stroke-dashoffset:-180; } }
@keyframes nodePulse { 0%{transform:scale(.65);opacity:.75} 80%,100%{transform:scale(1.7);opacity:0} }

.map-label {
  position:absolute; z-index:3; display:grid; gap:2px;
  background:rgba(255,255,255,.9); backdrop-filter:blur(10px);
  border:1px solid rgba(37,78,42,.09); border-radius:12px; padding:9px 12px;
  box-shadow:0 10px 25px rgba(25,62,30,.09);
}
.map-label strong { font-family:Manrope; font-size:12px; }
.map-label small { color:#708072; font-size:10px; }
.kotdwara-label { left:10%; bottom:19%; }
.region-label { right:8%; top:15%; }
.map-scan {
  position:absolute; left:-20%; right:-20%; height:2px; top:18%;
  background:linear-gradient(90deg,transparent,rgba(126,196,40,.65),transparent);
  filter:blur(.2px); animation:mapScan 4.5s ease-in-out infinite;
}
@keyframes mapScan { 0%{transform:translateY(0);opacity:0} 15%{opacity:1} 85%{opacity:1} 100%{transform:translateY(360px);opacity:0} }

.experience-card {
  position:absolute; right:-8px; bottom:25px; min-width:260px;
  display:flex; align-items:center; gap:14px; padding:20px 23px;
  background:rgba(255,255,255,.94); backdrop-filter:blur(15px);
  border:1px solid rgba(36,78,42,.08); border-radius:24px;
  box-shadow:0 24px 55px rgba(28,60,30,.16);
  animation:cardFloat 4.5s ease-in-out infinite alternate;
}
.experience-number { font-family:Manrope; font-size:64px; line-height:.85; color:#d9a51d; font-weight:800; letter-spacing:-.06em; }
.experience-number sup { font-size:25px; vertical-align:top; letter-spacing:0; }
.experience-card strong { display:block; font-family:Manrope; font-size:17px; }
.experience-card small { display:block; color:#68756b; font-size:12px; margin-top:3px; }
.experience-arrow { margin-left:auto; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#eff7e8; color:#5da40d; font-weight:800; }
@keyframes cardFloat { to { transform:translateY(-8px); } }

.floating-chip {
  position:absolute; padding:9px 13px; border-radius:999px; background:#173a20; color:#fff;
  font-size:11px; font-weight:800; box-shadow:0 12px 28px rgba(20,53,28,.16);
}
.chip-solar { top:16%; left:2%; animation:chipFloat 4s ease-in-out infinite; }
.chip-local { top:31%; right:2%; animation:chipFloat 4.8s ease-in-out infinite reverse; }
@keyframes chipFloat { 50%{transform:translateY(-7px) rotate(-1deg)} }

.roots-copy { position:relative; }
.roots-lead { color:#5f6e62; font-size:18px; line-height:1.75; max-width:680px; margin:0 0 34px; }
.journey-timeline { position:relative; padding-left:56px; }
.journey-line {
  position:absolute; left:15px; top:8px; bottom:14px; width:2px;
  background:#d9e8d3; overflow:hidden; border-radius:99px;
}
.journey-line span {
  display:block; width:100%; height:100%; transform:scaleY(0); transform-origin:top;
  background:linear-gradient(#7fc72b,#4f9c14); transition:transform 1.5s cubic-bezier(.2,.8,.2,1) .2s;
}
.roots-section.is-visible .journey-line span { transform:scaleY(1); }
.journey-step {
  position:relative; display:grid; grid-template-columns:1fr; gap:5px;
  padding:0 0 38px; opacity:0; transform:translateY(16px);
  transition:opacity .65s ease, transform .65s ease;
}
.roots-section.is-visible .journey-step { opacity:1; transform:none; }
.roots-section.is-visible .journey-step:nth-child(2) { transition-delay:.22s; }
.roots-section.is-visible .journey-step:nth-child(3) { transition-delay:.44s; }
.roots-section.is-visible .journey-step:nth-child(4) { transition-delay:.66s; }
.journey-dot {
  position:absolute; left:-56px; top:0; width:32px; height:32px; border-radius:50%;
  background:#f5faef; border:1px solid #b9dca3; display:grid; place-items:center;
  box-shadow:0 0 0 6px rgba(131,199,42,.06);
}
.journey-dot span { color:#5da40d; font-size:9px; font-weight:900; }
.journey-kicker { color:#6eb51a; font-size:10px; letter-spacing:.17em; font-weight:900; }
.journey-step h3 { margin:6px 0 7px; font-family:Manrope; font-size:20px; }
.journey-step p { margin:0; color:#6a776d; line-height:1.65; font-size:14px; max-width:590px; }

.roots-bottom {
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:4px;
}
.roots-stat { background:rgba(255,255,255,.72); border:1px solid rgba(37,78,42,.07); border-radius:15px; padding:15px; }
.roots-stat strong { display:block; font-family:Manrope; font-size:20px; color:#18371f; }
.roots-stat span { display:block; color:#718074; font-size:11px; margin-top:4px; line-height:1.35; }

@media (max-width:900px) {
  .roots-intro { align-items:flex-start; flex-direction:column; margin-bottom:40px; }
  .roots-badges { justify-content:flex-start; }
  .roots-story { grid-template-columns:1fr; gap:55px; }
  .roots-visual { min-height:500px; }
}
@media (max-width:560px) {
  .scroll-cue { margin-top:20px; }
  .roots-intro { margin-bottom:32px; }
  .roots-badges span { font-size:11px; padding:9px 12px; }
  .roots-visual { min-height:395px; }
  .regional-map { border-radius:24px; }
  .experience-card { right:4px; bottom:12px; min-width:0; width:calc(100% - 24px); padding:15px 17px; }
  .experience-number { font-size:51px; }
  .floating-chip { font-size:10px; padding:7px 10px; }
  .chip-solar { left:2%; top:8%; }
  .chip-local { right:2%; top:25%; }
  .roots-lead { font-size:16px; line-height:1.65; }
  .journey-timeline { padding-left:47px; }
  .journey-line { left:12px; }
  .journey-dot { left:-47px; width:27px; height:27px; }
  .journey-step { padding-bottom:30px; }
  .journey-step h3 { font-size:18px; }
  .roots-bottom { grid-template-columns:1fr; }
  .roots-stat { display:flex; align-items:center; gap:10px; }
  .roots-stat strong { min-width:48px; }
}

/* Experience figure is intentionally static: no count-up animation. */
.years-counter { display:inline-block; min-width:1.15ch; }
