
:root{
  --ink:#1C1A17;
  --ink-soft:#6B6459;
  --ink-faint:#8F887A;
  --paper:#FFFFFF;
  --paper-2:#F6F4EF;
  --paper-3:#EEEAE1;
  --gold:#F0A93C;
  --gold-deep:#C97C1F;
  --gold-soft:#FDF1DC;
  --blue:#1C6E86;
  --blue-deep:#124A59;
  --blue-soft:#E9F3F4;
  --line:rgba(28,26,23,0.10);
  --line-soft:rgba(28,26,23,0.06);
  --green-ok:#3F7A3E;
  --radius:16px;
  --radius-sm:10px;
  --shadow-sm:0 1px 2px rgba(20,18,15,.05), 0 1px 4px rgba(20,18,15,.05);
  --shadow-md:0 14px 34px -14px rgba(20,18,15,.18);
  --shadow-glow:0 16px 36px -12px rgba(201,124,31,.32), 0 4px 14px -6px rgba(28,110,134,.16);
  --shadow-lg:0 28px 60px -20px rgba(20,18,15,.24);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'IBM Plex Sans',sans-serif; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; -webkit-text-size-adjust:100%;
}
h1,h2,h3,h4{ font-family:'Fraunces',serif; font-weight:600; margin:0; color:var(--ink); letter-spacing:-0.01em;}
.mono{ font-family:'IBM Plex Mono',monospace; }
.hi{ font-family:'Hind',sans-serif; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1600px; margin:0 auto; padding-left:clamp(1rem,4vw,3rem); padding-right:clamp(1rem,4vw,3rem); }
.hide{ display:none !important; }
.page{ animation:pageFadeIn .5s ease; }
@keyframes pageFadeIn{ from{ opacity:0; } to{ opacity:1; } }
@media (prefers-reduced-motion:reduce){ .page{ animation:none; } }
::selection{ background:var(--gold); color:var(--ink); }

/* ---------- top bar ---------- */
.topbar{
  position:sticky; top:0; z-index:50; background:rgba(255,255,255,0.88);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft);
  transition:box-shadow .25s ease, border-color .25s ease;
}
.topbar.scrolled{ box-shadow:0 6px 24px -12px rgba(20,18,15,.16); border-color:var(--line); }
.topbar-inner{ max-width:1600px; margin:0 auto; padding:14px clamp(1rem,4vw,3rem); display:flex; align-items:center; justify-content:space-between; gap:20px;}
.brand{ display:flex; align-items:center; gap:16px; }
.brand img{ width:60px; height:60px; border-radius:12px; box-shadow:var(--shadow-sm); }
.brand-name{ font-family:'Fraunces',serif; font-weight:800; font-size:36px; letter-spacing:-0.02em; line-height:1.02;
  background:linear-gradient(100deg, var(--ink) 30%, var(--blue-deep) 65%, var(--gold-deep) 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.brand-name span{ display:block; font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:13px; color:var(--gold-deep); letter-spacing:.08em; margin-top:5px; -webkit-text-fill-color:var(--gold-deep);}
@media (max-width:920px){ .brand-name{ font-size:26px; } .brand-name span{ font-size:11px; } .brand img{ width:46px; height:46px; } }

nav.mainnav{ display:flex; gap:2px; }
nav.mainnav :is(button,a){
  position:relative; background:none; border:none; cursor:pointer; color:var(--ink-soft); font-family:'IBM Plex Sans',sans-serif;
  font-weight:500; font-size:14.5px; padding:9px 14px; border-radius:999px; transition:color .18s ease, background .18s ease;
}
nav.mainnav :is(button,a)::after{
  content:""; position:absolute; left:14px; right:14px; bottom:3px; height:2px; border-radius:2px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold)); transform:scaleX(0); transform-origin:center; transition:transform .25s ease;
}
nav.mainnav :is(button,a):hover::after, nav.mainnav :is(button,a).active::after{ transform:scaleX(1); }
nav.mainnav :is(button,a):hover{ color:var(--ink); background:var(--paper-2); }
nav.mainnav :is(button,a).active{ color:var(--ink); background:var(--gold-soft); font-weight:600; }
.nav-roi-btn{ color:var(--gold-deep) !important; font-weight:600 !important; }
.nav-roi-btn:hover{ background:var(--gold-soft) !important; }
.nav-cta{
  background:linear-gradient(100deg, var(--gold) 0%, var(--gold-deep) 100%); color:#241B0C; font-weight:700; padding:10px 20px; border-radius:999px;
  font-size:14px; white-space:nowrap; border:none; box-shadow:0 8px 20px -8px rgba(201,124,31,.55); transition:transform .18s ease, box-shadow .18s ease;
  animation:navCtaPulse 2.8s ease-in-out infinite;
}
@keyframes navCtaPulse{ 0%,100%{ box-shadow:0 8px 20px -8px rgba(201,124,31,.55); } 50%{ box-shadow:0 8px 26px -6px rgba(201,124,31,.85); } }
@media (prefers-reduced-motion:reduce){ .nav-cta{ animation:none; } }
.nav-cta:hover{ transform:translateY(-1px); box-shadow:0 12px 24px -8px rgba(201,124,31,.6); }
.burger{ display:none; background:var(--paper-2); border:1px solid var(--line); color:var(--ink); padding:8px 12px; border-radius:8px; cursor:pointer; font-size:18px; }

@media (max-width:920px){
  nav.mainnav{ display:none; position:absolute; top:70px; left:0; right:0; background:#fff; flex-direction:column; padding:10px 28px 20px; border-bottom:1px solid var(--line); box-shadow:var(--shadow-md); }
  nav.mainnav.open{ display:flex; }
  nav.mainnav :is(button,a){ text-align:left; padding:12px 10px; border-radius:8px; }
  .burger{ display:block; }
  .nav-cta.desktop-only{ display:none; }
}

/* ---------- generic section helpers ---------- */
.section{ padding:84px 0; }
.section.tight{ padding:56px 0; }
@media (max-width:600px){
  .section{ padding:52px 0; }
  .section.tight{ padding:36px 0; }
}
.section-dark{ background:linear-gradient(180deg,#F7F9F8 0%, #FBF6ED 100%); }
.section-mid{ background:var(--paper-2); }
.kicker{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.05em; color:var(--gold-deep);
  display:flex; align-items:center; gap:10px; margin-bottom:16px; font-weight:500;
}
.kicker .tick{
  width:22px; height:2px; border-radius:2px; display:inline-block; flex:none;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--blue),var(--gold-deep));
  background-size:300% 100%; animation:tickShimmer 4s linear infinite;
}
@keyframes tickShimmer{ 0%{ background-position:0% 0; } 100%{ background-position:300% 0; } }
@keyframes btnRipple{ from{ transform:scale(0); opacity:.55; } to{ transform:scale(1); opacity:0; } }
@media (prefers-reduced-motion:reduce){ .kicker .tick{ animation:none; background:linear-gradient(90deg,var(--gold-deep),var(--gold)); } }

/* ---------- scroll progress bar ---------- */
#scrollProgress{ position:fixed; top:0; left:0; height:3px; width:0%; z-index:200; background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--blue)); transition:width .1s ease-out; pointer-events:none; }

.float-call{
  position:fixed; right:20px; bottom:20px; z-index:150; width:56px; height:56px; border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--gold-deep)); color:#241B0C; display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 28px -8px rgba(201,124,31,.65); transition:transform .2s ease, box-shadow .2s ease;
}
.float-call svg{ width:24px; height:24px; }
.float-call:hover{ transform:translateY(-3px) scale(1.05); box-shadow:0 16px 34px -6px rgba(201,124,31,.75); }
.float-call-ring{
  position:absolute; inset:-6px; border-radius:50%; border:2px solid var(--gold);
  animation:floatCallPulse 2.2s ease-out infinite;
}
@keyframes floatCallPulse{ 0%{ transform:scale(.85); opacity:.7; } 100%{ transform:scale(1.35); opacity:0; } }
@media (prefers-reduced-motion:reduce){ .float-call-ring{ animation:none; display:none; } }
@media (max-width:600px){ .float-call{ right:14px; bottom:14px; width:50px; height:50px; } .float-call svg{ width:21px; height:21px; } }

h2.h-lg, h1.h-lg{ font-size:clamp(28px,4vw,44px); max-width:740px; line-height:1.14; }
.lede{ font-size:17.5px; color:var(--ink-soft); max-width:620px; margin-top:16px; line-height:1.7; }

.btn{
  display:inline-flex; align-items:center; gap:8px; padding:13px 24px; border-radius:999px; font-weight:600; font-size:14.5px;
  border:1.5px solid var(--ink); cursor:pointer; background:none; color:var(--ink); font-family:'IBM Plex Sans',sans-serif;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.btn-solid{ background:var(--ink); color:#fff; border-color:var(--ink); }
.btn-gold, .btn-gold{ position:relative; overflow:hidden; background:linear-gradient(100deg, var(--gold) 0%, var(--gold-deep) 100%); color:#241B0C; border-color:transparent; box-shadow:0 10px 24px -10px rgba(201,124,31,.6); }
.btn-gold::after{
  content:""; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,.55), transparent);
  transform:skewX(-18deg); transition:left .7s ease;
}
.btn-gold:hover::after{ left:130%; }
@media (prefers-reduced-motion:reduce){ .btn-gold::after{ display:none; } }
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }

/* ---------- frame (used for photo/drawing highlight panels) ---------- */
.framed{ position:relative; border:1px solid var(--line); padding:22px; border-radius:var(--radius); background:#fff; box-shadow:var(--shadow-sm); transition:box-shadow .25s ease, transform .25s ease; }
.framed:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.framed img{ border-radius:var(--radius-sm); }

/* ---------- HERO (full-width slideshow, eyebrow above, text below) ---------- */
.hero{ position:relative; background:#fff; overflow:hidden; }
.hero-eyebrow-wrap{ max-width:1600px; margin:0 auto; padding:20px clamp(1rem,4vw,3rem) 0; }
.hero-eyebrow{ font-family:'IBM Plex Mono',monospace; color:var(--blue-deep); font-size:12px; letter-spacing:.04em; display:inline-flex; gap:9px; align-items:center; background:var(--blue-soft); width:fit-content; padding:7px 13px; border-radius:999px; font-weight:500; }
.hero-eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--green-ok); box-shadow:0 0 0 3px rgba(63,122,62,0.22); animation:pulse 2s ease-in-out infinite; flex:none; }
@keyframes pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.45; } }
@media (prefers-reduced-motion:reduce){ .hero-eyebrow .dot{ animation:none; } }

.hero-slideshow-wrap-outer{ position:relative; }
.hero-slideshow-glow{
  position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none; z-index:0; opacity:.45;
  animation:heroGlowFloat 14s ease-in-out infinite;
}
.hero-slideshow-glow.g1{ width:280px; height:280px; top:-60px; left:2%; background:radial-gradient(circle,rgba(240,169,60,.6),transparent 70%); }
.hero-slideshow-glow.g2{ width:260px; height:260px; bottom:-70px; right:4%; background:radial-gradient(circle,rgba(28,110,134,.55),transparent 70%); animation-delay:-5s; }
.hero-slideshow-glow.g3{ width:200px; height:200px; top:30%; right:20%; background:radial-gradient(circle,rgba(201,80,110,.4),transparent 70%); animation-delay:-9s; }
@keyframes heroGlowFloat{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(18px,-16px) scale(1.1); } }
@media (prefers-reduced-motion:reduce){ .hero-slideshow-glow{ animation:none; } }
@media (max-width:768px){ .hero-slideshow-glow{ display:none; } }

.hero-slideshow-frame{
  position:relative; z-index:1; margin-top:18px; padding:9px; border-radius:calc(var(--radius) + 8px);
  background:linear-gradient(135deg, #fff 0%, var(--paper-2) 100%);
  box-shadow:var(--shadow-md); transition:transform .4s ease, box-shadow .4s ease; transform-style:preserve-3d; will-change:transform;
}
.hero-slideshow-frame::before{
  content:""; position:absolute; inset:-2px; border-radius:calc(var(--radius) + 9px); padding:2.5px; z-index:-1;
  background:conic-gradient(from var(--spin-angle,0deg), var(--gold), var(--blue), #c9506e, var(--gold-deep), var(--gold));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  animation:heroBorderSpin 7s linear infinite;
}
@property --spin-angle{ syntax:'<angle>'; initial-value:0deg; inherits:false; }
@keyframes heroBorderSpin{ from{ --spin-angle:0deg; } to{ --spin-angle:360deg; } }
@media (prefers-reduced-motion:reduce){ .hero-slideshow-frame::before{ animation:none; } }
.hero-slideshow-frame::after{
  content:""; position:absolute; inset:0; border-radius:calc(var(--radius) + 8px); z-index:2; pointer-events:none;
  background:linear-gradient(115deg, transparent 40%, rgba(255,255,255,.5) 50%, transparent 60%);
  background-size:250% 250%; background-position:150% -50%; opacity:0;
  animation:heroFrameShine 6s ease-in-out infinite;
}
@keyframes heroFrameShine{ 0%,60%{ opacity:0; background-position:150% -50%; } 70%{ opacity:.7; } 100%{ opacity:0; background-position:-50% 150%; } }
@media (prefers-reduced-motion:reduce){ .hero-slideshow-frame::after{ animation:none; display:none; } }
.hero-slides{ position:relative; width:100%; aspect-ratio:16/8; max-height:460px; overflow:hidden; border-radius:var(--radius); touch-action:pan-y; }
.hero-slide{ position:absolute; inset:0; background-size:contain; background-repeat:no-repeat; background-position:center; background-color:var(--paper-2); opacity:0; transition:opacity 1.6s ease; }
.hero-slide.active{ opacity:1; animation:heroKenBurns 6s ease-out forwards; }
@keyframes heroKenBurns{ from{ transform:scale(.965); } to{ transform:scale(1); } }
@media (prefers-reduced-motion:reduce){ .hero-slide.active{ animation:none; } }
.hero-nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.9); color:var(--ink); font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); transition:background .2s, box-shadow .2s, transform .2s; }
.hero-nav:hover{ background:#fff; box-shadow:var(--shadow-md); transform:translateY(-50%) scale(1.06); }
.hero-nav-prev{ left:12px; }
.hero-nav-next{ right:12px; }
@media (max-width:600px){ .hero-nav{ width:32px; height:32px; font-size:12px; } .hero-nav-prev{ left:7px; } .hero-nav-next{ right:7px; } }
.hero-caption{
  position:absolute; left:14px; bottom:14px; z-index:3; display:inline-flex; align-items:center; gap:8px; padding:7px 16px 7px 12px; border-radius:999px;
  background:rgba(20,18,15,.68); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.14);
  color:#fff; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.02em;
  opacity:0; transform:translateY(6px); transition:opacity .4s ease, transform .4s ease;
}
.hero-caption.show{ opacity:1; transform:translateY(0); }
.hero-caption-dot{ width:8px; height:8px; border-radius:50%; flex:none; background:var(--gold); box-shadow:0 0 8px 1px currentColor; }
.hero-caption[data-cat="Plant"] .hero-caption-dot{ background:var(--gold); color:var(--gold); }
.hero-caption[data-cat="Drawing"] .hero-caption-dot{ background:#5aa9c9; color:#5aa9c9; }
.hero-caption[data-cat="Team"] .hero-caption-dot{ background:#e07a94; color:#e07a94; }
.hero-caption[data-cat="Simulation"] .hero-caption-dot{ background:#5fb86a; color:#5fb86a; }
.hero-caption[data-cat="Grid"] .hero-caption-dot{ background:#4fd1c5; color:#4fd1c5; }
.hero-slide-controls{ position:relative; z-index:2; display:flex; align-items:center; justify-content:center; gap:14px; padding:14px 8px 6px; }
.hero-playpause{ width:32px; height:32px; border-radius:50%; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:10px; letter-spacing:1px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s, border-color .2s; flex:none; }
.hero-playpause:hover{ background:var(--paper-2); border-color:var(--ink); }
.hero-dots{ display:flex; gap:7px; }
.hero-dots button{ position:relative; width:8px; height:8px; padding:0; border-radius:50%; border:1px solid var(--line); background:var(--line-soft); cursor:pointer; transition:background .25s, width .25s, border-color .25s; overflow:hidden; }
.hero-dots button.active{ width:26px; border-radius:5px; background:var(--line-soft); border-color:var(--gold-deep); }
.hero-dots button .fill{ position:absolute; inset:0; background:var(--gold-deep); transform-origin:left; transform:scaleX(0); }
.hero-dots button.active .fill{ animation:heroDotFill linear forwards; animation-duration:var(--dot-dur, 5s); }
.hero-dots button.paused .fill{ animation-play-state:paused; }
@keyframes heroDotFill{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }

.hero-text-below{ max-width:1600px; margin:0 auto; padding:30px clamp(1rem,4vw,3rem) 8px; }
@media (max-width:600px){ .hero-slideshow-frame{ padding:5px; margin-top:12px; } .hero-slides{ aspect-ratio:4/3; } }
h1.hero-title{ color:var(--ink); font-size:clamp(30px,4.4vw,52px); line-height:1.1; font-weight:700; max-width:820px; }
h1.hero-title em{ font-style:italic; font-weight:600;
  background:linear-gradient(100deg, var(--gold-deep), var(--gold) 60%, var(--blue) 130%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero-hi-body{ color:var(--ink-soft); font-size:15px; margin-top:16px; line-height:1.75; max-width:700px; }

.hero-stats{ position:relative; z-index:2; max-width:1600px; margin:0 auto; padding:18px clamp(1rem,4vw,3rem) 32px; display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.hero-stat{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:18px 18px; box-shadow:var(--shadow-sm); transition:box-shadow .3s ease, transform .3s ease; overflow:hidden; }
.hero-stat::after{
  content:""; position:absolute; inset:0; border-radius:var(--radius); padding:1.5px;
  background:linear-gradient(135deg,var(--gold),transparent 40%,transparent 60%,var(--blue));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .35s ease;
}
.hero-stat:hover::after{ opacity:1; }
.hero-stat .n{
  font-family:'IBM Plex Mono',monospace; font-size:24px; font-weight:700;
  background:linear-gradient(100deg,var(--gold-deep),var(--gold) 55%,var(--blue) 130%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.hero-stat:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.hero-stat .l{ color:var(--ink-soft); font-size:12px; margin-top:4px; }
@media (max-width:920px){ .hero-stats{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:820px){
  .hero-slides{ height:80vw; }
}
.hero-dots button:hover{ border-color:var(--gold-deep); }
@media (prefers-reduced-motion:reduce){ .hero-slide{ transition:none; } }

/* ---------- trust strip ---------- */
.trust{ background:var(--paper-2); border-bottom:1px solid var(--line-soft); padding:26px 0; }
.trust-inner{ display:flex; align-items:center; gap:30px; flex-wrap:wrap; justify-content:space-between; }
.trust-badges{ display:flex; gap:22px; flex-wrap:wrap; align-items:center; }
.trust-badge{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--ink-soft); display:flex; align-items:center; gap:8px; background:#fff; padding:8px 14px; border-radius:999px; border:1px solid var(--line); }
.trust-badge b{ color:var(--ink); font-weight:600; }
.trust img{ height:48px; width:auto; border-radius:var(--radius-sm); box-shadow:var(--shadow-sm); }

/* ---------- cards / grids ---------- */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:44px; }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:44px; }
.cell{ position:relative; background:#fff; padding:32px 28px; border-radius:var(--radius); border:1px solid var(--line); box-shadow:var(--shadow-sm); transition:box-shadow .3s ease, transform .3s ease; overflow:hidden; }
.cell::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--blue));
  transform:scaleX(0); transform-origin:left; transition:transform .4s ease;
}
.cell:hover::before{ transform:scaleX(1); }
@media (max-width:480px){ .cell{ padding:22px 18px; } }
.cell:hover{ box-shadow:var(--shadow-glow); transform:translateY(-5px); }
.cell .num{ font-family:'IBM Plex Mono',monospace; color:var(--gold-deep); font-size:12.5px; margin-bottom:14px; font-weight:500; }
.cell h4{ font-size:19px; margin-bottom:10px; }
.cell p{ color:var(--ink-soft); font-size:14.5px; line-height:1.65; margin:0; }
@media (max-width:820px){ .grid-3{ grid-template-columns:1fr; } .grid-2{ grid-template-columns:1fr; } }

/* ---------- process rail ---------- */
.rail{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:48px; }
.rail-step{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px 22px; box-shadow:var(--shadow-sm); transition:box-shadow .25s ease, transform .25s ease; }
.rail-step:hover{ box-shadow:var(--shadow-glow); transform:translateY(-5px); }
.rail-step .rn{ font-family:'IBM Plex Mono',monospace; color:var(--gold-deep); font-size:13px; font-weight:600; }
.rail-step h4{ font-size:16.5px; margin:10px 0 8px; }
.rail-step p{ font-size:13.5px; color:var(--ink-soft); margin:0; }
@media (max-width:820px){ .rail{ grid-template-columns:1fr; } }

/* ---------- photo strip ---------- */
.photo-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:40px; }
.photo-row figure{ margin:0; }
.photo-row img{ width:100%; height:240px; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow-sm); transition:box-shadow .25s ease, transform .25s ease; }
.photo-row figure:hover img{ box-shadow:var(--shadow-md); transform:translateY(-4px); }
.photo-row figcaption{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--ink-soft); margin-top:10px; display:flex; justify-content:space-between;}
@media (max-width:920px){ .photo-row{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .photo-row{ grid-template-columns:1fr; } .stat-mini-grid{ grid-template-columns:repeat(2,1fr) !important; } }

/* ---------- about preview (home) ---------- */
.about-preview{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; margin-top:20px; }
@media (max-width:900px){ .about-preview{ grid-template-columns:1fr; gap:32px; } }
.mini-leaders{ display:flex; gap:16px; margin-top:26px; flex-wrap:wrap; }
.mini-leader{ display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--line); border-radius:999px; padding:8px 20px 8px 8px; box-shadow:var(--shadow-sm); }
.mini-leader img{ width:52px; height:52px; border-radius:50%; object-fit:cover; }
.mini-leader div{ line-height:1.25; }
.mini-leader .mn{ font-size:13px; font-weight:600; }
.mini-leader .mr{ font-size:11px; color:var(--ink-faint); }

/* ---------- footer ---------- */
footer{ position:relative; background:var(--paper-3); color:var(--ink-soft); padding:60px 0 26px; border-top:1px solid var(--line); }
footer::before{ content:""; position:absolute; top:-2px; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--blue),var(--gold)); background-size:200% 100%; animation:tickShimmer 6s linear infinite; }
@media (prefers-reduced-motion:reduce){ footer::before{ animation:none; } }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.foot-grid h5{ font-family:'IBM Plex Mono',monospace; color:var(--ink); font-size:12.5px; letter-spacing:.05em; margin-bottom:16px; text-transform:uppercase; font-weight:600; }
.foot-grid a, .foot-grid p{ display:block; font-size:14px; color:var(--ink-soft); margin-bottom:10px; line-height:1.6; }
.foot-grid a:hover{ color:var(--gold-deep); }
.foot-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:44px; padding-top:22px; border-top:1px solid var(--line); font-size:12.5px; color:var(--ink-faint); }
@media (max-width:820px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .foot-grid{ grid-template-columns:1fr; } }

/* ---------- table (projects) ---------- */
table.spec{ width:100%; border-collapse:collapse; margin-top:36px; font-size:14.5px; background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
table.spec th{ text-align:left; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.04em; color:var(--ink-soft); text-transform:uppercase; padding:14px 16px; border-bottom:1px solid var(--line); background:var(--paper-2); font-weight:600; }
table.spec td{ padding:15px 16px; border-bottom:1px solid var(--line-soft); }
table.spec tr:hover td{ background:var(--paper-2); }
.status{ font-family:'IBM Plex Mono',monospace; font-size:12px; padding:4px 11px; border-radius:999px; display:inline-block; font-weight:600; }
.status.done{ color:var(--green-ok); background:#EBF4EA; }
.status.prog{ color:var(--gold-deep); background:var(--gold-soft); }
.tbl-wrap{ overflow-x:auto; }

/* ---------- project tabs ---------- */
.proj-tab{
  background:#fff; border:1.5px solid var(--line); color:var(--ink-soft); font-family:'IBM Plex Sans',sans-serif;
  font-weight:600; font-size:14px; padding:10px 18px; border-radius:999px; cursor:pointer; transition:all .18s ease;
}
.proj-tab:hover{ border-color:var(--gold-deep); color:var(--ink); }
.proj-tab.active{ background:var(--ink); color:#fff; border-color:var(--ink); }

/* ---------- about / values ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:36px; } }
.leader{ display:flex; gap:18px; padding:26px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow-sm); margin-bottom:18px; transition:box-shadow .25s ease, transform .25s ease; }
.leader:hover{ box-shadow:var(--shadow-glow); transform:translateY(-4px); }
.leader img{ width:128px; height:128px; object-fit:cover; border-radius:var(--radius); flex-shrink:0; box-shadow:var(--shadow-sm); }

/* ---------- team directory (professional grid) ---------- */
.team-dept{ padding:36px 0; border-top:1px solid var(--line); }
.team-dept:first-of-type{ border-top:none; padding-top:8px; }
.team-dept-head{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:14px; margin-bottom:26px; }
.team-dept-head h4{ font-size:20px; font-weight:700; white-space:nowrap; }
.team-dept-desc{ font-size:13.5px; color:var(--ink-soft); max-width:480px; line-height:1.6; margin:0; }
.team-row{ display:flex; flex-wrap:wrap; gap:26px; }
.team-card{ width:140px; text-align:center; }
.team-photo{ width:140px; height:140px; border-radius:20px; object-fit:cover; box-shadow:var(--shadow-sm); border:1px solid var(--line); transition:transform .25s ease, box-shadow .25s ease; }
.team-card:hover .team-photo, .team-card:hover .team-photo-placeholder{ transform:translateY(-5px); box-shadow:var(--shadow-glow); }
.team-photo-placeholder{ width:140px; height:140px; border-radius:20px; background:linear-gradient(135deg, var(--paper-2), var(--paper-3)); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:30px; font-weight:700; color:var(--ink-faint); transition:transform .25s ease, box-shadow .25s ease; }
.team-name{ margin-top:14px; font-weight:700; font-size:14.5px; color:var(--ink); }
.team-role{ font-size:11.5px; color:var(--ink-faint); margin-top:3px; line-height:1.4; }
@media (max-width:640px){ .team-card, .team-photo, .team-photo-placeholder{ width:110px; height:110px; } .team-card{ width:110px; } }
.leader h4{ font-size:18px; }
.leader .role{ font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--gold-deep); margin:5px 0 10px; font-weight:600; }
.leader p{ font-size:14px; color:var(--ink-soft); margin:0; line-height:1.65; }

/* ---------- blog ---------- */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px; }
.post{ border:1px solid var(--line); border-radius:var(--radius); padding:26px; display:flex; flex-direction:column; height:100%; background:#fff; box-shadow:var(--shadow-sm); transition:box-shadow .25s ease, transform .25s ease; }
.post:hover{ box-shadow:var(--shadow-glow); transform:translateY(-5px); }
.post .tag{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--gold-deep); background:var(--gold-soft); width:fit-content; padding:4px 10px; border-radius:999px; font-weight:600; }
.post h4{ font-size:19px; margin:14px 0 10px; line-height:1.3; }
.post p{ color:var(--ink-soft); font-size:14px; line-height:1.6; flex:1; }
.post .rd{ font-family:'IBM Plex Mono',monospace; font-size:12px; margin-top:16px; color:var(--ink-faint); }
@media (max-width:920px){ .blog-grid{ grid-template-columns:1fr; } }

/* ---------- how it works ---------- */
.how-steps{ display:flex; align-items:flex-start; gap:8px; margin-top:44px; flex-wrap:wrap; }
.how-step{ flex:1; min-width:180px; text-align:center; }
.how-badge{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--gold); color:#241B0C; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; margin-bottom:-13px; position:relative; z-index:2; box-shadow:0 4px 12px -4px rgba(201,124,31,.6); }
.how-icon{
  width:84px; height:84px; margin:0 auto; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; box-shadow:0 10px 24px -10px rgba(20,18,15,.35); transition:transform .3s ease, box-shadow .3s ease;
}
.how-step:nth-child(1) .how-icon{ background:linear-gradient(140deg,var(--gold),var(--gold-deep)); }
.how-step:nth-child(3) .how-icon{ background:linear-gradient(140deg,var(--blue),var(--blue-deep)); }
.how-step:nth-child(5) .how-icon{ background:linear-gradient(140deg,var(--green-ok),#2f5f2e); }
.how-step:nth-child(7) .how-icon{ background:linear-gradient(140deg,#c9506e,#8f3350); }
.how-step:hover .how-icon{ transform:translateY(-4px) rotate(-4deg); box-shadow:0 16px 30px -10px rgba(20,18,15,.4); }
.how-icon svg{ width:38px; height:38px; }
.how-step h4{ margin-top:16px; font-size:17px; }
.how-step p{ margin-top:8px; font-size:13.5px; color:var(--ink-soft); line-height:1.6; max-width:220px; margin-left:auto; margin-right:auto; }
.how-arrow{ color:var(--line); font-size:22px; padding-top:26px; flex:none; }
@media (max-width:820px){ .how-steps{ flex-direction:column; align-items:stretch; } .how-arrow{ display:none; } .how-step{ display:flex; align-items:center; gap:18px; text-align:left; } .how-step h4, .how-step p{ margin-left:0; margin-right:0; max-width:none; } }

/* ---------- reviews ---------- */
.review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px; }
.review-card{ border:1px solid var(--line); border-radius:var(--radius); padding:26px; background:#fff; }
.review-card-empty{ border-style:dashed; background:var(--paper); text-align:center; }
.stars{ color:var(--gold); font-size:18px; letter-spacing:2px; display:inline-block; }
.review-card .stars{ animation:starsTwinkle 3s ease-in-out infinite; }
@keyframes starsTwinkle{ 0%,100%{ filter:brightness(1); } 50%{ filter:brightness(1.35) drop-shadow(0 0 6px rgba(240,169,60,.5)); } }
@media (prefers-reduced-motion:reduce){ .review-card .stars{ animation:none; } }
.review-placeholder{ margin-top:14px; font-size:13.5px; color:var(--ink-faint); font-style:italic; }
@media (max-width:820px){ .review-grid{ grid-template-columns:1fr; } }

/* ---------- Bankable Bill of Materials ---------- */
.bom-card{ background:var(--ink); border-radius:calc(var(--radius) + 8px); padding:40px; color:#fff; }
.bom-head{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:28px; align-items:flex-end; }
.bom-head .kicker{ color:var(--gold); }
.bom-intro{ max-width:340px; font-size:13.5px; color:rgba(255,255,255,.65); line-height:1.7; }
.bom-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:32px; }
.bom-cell{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-sm); padding:22px 18px; transition:background .2s ease, border-color .2s ease; }
.bom-cell:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.2); }
.bom-num{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--gold); letter-spacing:.04em; }
.bom-cell h4{ color:#fff; font-size:17px; margin-top:12px; line-height:1.3; }
.bom-cell > p{ color:rgba(255,255,255,.62); font-size:12.5px; margin-top:10px; line-height:1.6; }
.bom-cell ul{ margin:14px 0 0; padding-top:14px; border-top:1px solid rgba(255,255,255,.1); list-style:none; }
.bom-cell li{ position:relative; padding-left:14px; font-size:12px; color:rgba(255,255,255,.55); margin-top:8px; line-height:1.5; }
.bom-cell li::before{ content:"\2013"; position:absolute; left:0; color:var(--gold); }
.bom-toolchain{ margin-top:32px; padding-top:26px; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.bom-toolchain-label{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:rgba(255,255,255,.6); letter-spacing:.04em; display:flex; align-items:center; gap:8px; white-space:nowrap; }
.bom-toolchain-label .dot{ width:7px; height:7px; border-radius:50%; background:var(--gold); }
.bom-tools{ display:flex; flex-wrap:wrap; gap:10px; }
.bom-tool{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:rgba(255,255,255,.75); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); padding:8px 14px; border-radius:999px; }
@media (max-width:920px){ .bom-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .bom-card{ padding:26px 20px; } .bom-grid{ grid-template-columns:1fr; } }

/* ---------- Hindi DISCOM/CEIG steps ---------- */
.discom-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:32px; }
.discom-step{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:22px 20px; }
.discom-badge{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; background:var(--gold-soft); color:var(--gold-deep); font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:14px; margin-bottom:14px; }
.discom-step p{ font-size:14.5px; line-height:1.75; color:var(--ink-soft); }
@media (max-width:820px){ .discom-steps{ grid-template-columns:1fr; } }

/* ---------- Targeted solar solutions (C&I vs PM Surya Ghar) ---------- */
.tsol-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:40px; }
.tsol-card{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:32px; box-shadow:var(--shadow-sm); }
.tsol-tag{ position:absolute; top:24px; right:24px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:700; letter-spacing:.03em; padding:6px 12px; border-radius:999px; }
.tsol-tag-dark{ background:var(--ink); color:#fff; }
.tsol-tag-gold{ background:var(--gold-soft); color:var(--gold-deep); }
.tsol-icon{ font-size:26px; width:52px; height:52px; display:flex; align-items:center; justify-content:center; background:var(--paper-2); border-radius:var(--radius-sm); }
.tsol-card h3{ font-size:22px; margin-top:18px; max-width:80%; }
.tsol-card > p{ color:var(--ink-soft); font-size:14px; margin-top:12px; line-height:1.6; }
.tsol-list{ list-style:none; margin:20px 0 0; padding-top:18px; border-top:1px solid var(--line-soft); display:flex; flex-direction:column; gap:12px; }
.tsol-list li{ position:relative; padding-left:24px; font-size:13.5px; color:var(--ink-soft); line-height:1.6; }
.tsol-list li::before{ content:"\2713"; position:absolute; left:0; top:0; color:var(--green-ok); font-weight:700; }
.tsol-cta{ margin-top:26px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.tsol-link{ font-size:13px; font-weight:600; color:var(--ink-soft); text-decoration:underline; cursor:pointer; }
@media (max-width:820px){ .tsol-grid{ grid-template-columns:1fr; } }
@media (max-width:480px){ .tsol-card{ padding:24px 20px; } .tsol-tag{ position:static; display:inline-block; margin-bottom:14px; } .tsol-card h3{ max-width:none; margin-top:12px; font-size:19px; } }

/* ---------- ROI / Saving Calculator (premium redesign) ---------- */
.roi-frame-outer{ position:relative; margin-top:36px; isolation:isolate; }
.roi-glow{ position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; z-index:-1; opacity:.4; animation:heroGlowFloat 16s ease-in-out infinite; }
.roi-glow.g1{ width:320px; height:320px; top:-60px; left:-60px; background:radial-gradient(circle,rgba(240,169,60,.55),transparent 70%); }
.roi-glow.g2{ width:300px; height:300px; bottom:-70px; right:-60px; background:radial-gradient(circle,rgba(28,110,134,.5),transparent 70%); animation-delay:-8s; }
@media (prefers-reduced-motion:reduce){ .roi-glow{ animation:none; } }

.roi-card2{ position:relative; display:grid; grid-template-columns:1fr 1fr; border-radius:calc(var(--radius) + 6px); overflow:hidden; box-shadow:var(--shadow-lg); background:#fff; }
.roi-card2::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px; z-index:2;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--blue),var(--gold-deep)); background-size:250% 100%; animation:tickShimmer 5s linear infinite; }
@media (prefers-reduced-motion:reduce){ .roi-card2::before{ animation:none; } }

.roi-col-left{ padding:36px; background:#fff; border-right:1px solid var(--line-soft); }
.roi-col-right{ padding:36px; background:linear-gradient(160deg,var(--paper-2) 0%,var(--paper-3) 100%); }
.roi-label{ display:block; font-family:'IBM Plex Sans',sans-serif; font-size:13px; font-weight:600; color:var(--ink); margin-bottom:12px; }

.roi-seg2{ display:grid; grid-template-columns:1fr 1fr; border:1.5px solid var(--line); border-radius:999px; overflow:hidden; background:var(--paper-2); padding:3px; gap:3px; }
.roi-seg2 button{ display:flex; align-items:center; justify-content:center; gap:6px; padding:11px 10px; font-family:'IBM Plex Sans',sans-serif; font-size:13.5px; font-weight:600; color:var(--ink-soft); background:transparent; border:none; border-radius:999px; cursor:pointer; transition:background .2s ease, color .2s ease, box-shadow .2s ease; }
.roi-seg-ico{ font-size:15px; }
.roi-seg2 button.active{ background:linear-gradient(100deg,var(--ink) 0%, #34302a 100%); color:#fff; box-shadow:0 6px 14px -6px rgba(20,18,15,.4); }

.roi-bill-row2{ display:flex; align-items:center; gap:8px; background:#fff; border:1.5px solid var(--line); border-radius:var(--radius-sm); padding:12px 16px; max-width:220px; margin-left:auto; box-shadow:var(--shadow-sm); transition:border-color .2s ease; }
.roi-bill-row2:focus-within{ border-color:var(--gold-deep); }
.roi-bill-row2 .roi-rupee{ font-family:'IBM Plex Mono',monospace; font-size:17px; color:var(--gold-deep); font-weight:700; }
.roi-bill-row2 input[type="number"]{ border:none; background:none; font-family:'IBM Plex Mono',monospace; font-size:18px; font-weight:700; color:var(--ink); width:100%; padding:0; text-align:right; }
.roi-bill-row2 input[type="number"]:focus{ outline:none; }

.roi-slider-wrap{ position:relative; margin-top:20px; padding-top:14px; }
input#roiBillRange{ width:100%; accent-color:var(--gold-deep); height:6px; cursor:pointer; }
.roi-slider-bubble{
  position:absolute; top:-8px; left:50%; transform:translateX(-50%); background:var(--ink); color:#fff;
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; padding:4px 10px; border-radius:6px; white-space:nowrap;
  opacity:0; transition:opacity .2s ease; pointer-events:none;
}
.roi-slider-bubble::after{ content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:4px solid transparent; border-top-color:var(--ink); }
.roi-slider-wrap:hover .roi-slider-bubble, .roi-slider-wrap.dragging .roi-slider-bubble{ opacity:1; }
.roi-range-ends{ display:flex; justify-content:space-between; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-faint); margin-top:10px; }
.roi-help{ font-size:12px; color:var(--ink-faint); margin-top:10px; line-height:1.6; }
.roi-assumptions{ margin-top:24px; border-top:1px solid var(--line-soft); padding-top:16px; }
.roi-assumptions summary{ cursor:pointer; font-family:'IBM Plex Sans',sans-serif; font-size:13px; font-weight:600; color:var(--ink); }
.roi-assumptions ul{ margin:14px 0 0; padding-left:20px; color:var(--ink-soft); font-size:12.5px; line-height:1.75; }

.roi-hero-stat{ display:flex; align-items:center; gap:16px; }
.roi-hero-badge{ flex:none; width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:22px;
  background:linear-gradient(140deg,var(--gold),var(--gold-deep)); box-shadow:0 10px 22px -8px rgba(201,124,31,.55); }
.roi-hero-label{ font-size:12.5px; color:var(--ink-soft); }
.roi-hero-n{ margin-top:4px; display:flex; align-items:baseline; gap:8px; }
.roi-hero-n #roiSize{ font-family:'IBM Plex Mono',monospace; font-size:44px; font-weight:700; line-height:1;
  background:linear-gradient(100deg,var(--gold-deep),var(--gold) 55%,var(--blue) 130%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.roi-hero-unit{ font-family:'IBM Plex Mono',monospace; font-size:17px; color:var(--ink-soft); }

.roi-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:26px; }
.roi-cell2{ display:flex; align-items:flex-start; gap:12px; background:#fff; border:1px solid var(--line-soft); border-radius:var(--radius-sm); padding:14px; box-shadow:var(--shadow-sm); transition:transform .2s ease, box-shadow .2s ease; }
.roi-cell2:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.roi-cell-ico{ flex:none; width:30px; height:30px; }
.roi-cell-ico svg{ width:100%; height:100%; }
.roi-cell-l{ font-size:11.5px; color:var(--ink-soft); line-height:1.35; }
.roi-cell-n{ font-family:'IBM Plex Mono',monospace; font-size:17px; font-weight:700; color:var(--ink); margin-top:4px; }
.roi-cell-subsidy{ background:#EBF4EA; border-color:#d3ecd5; }
.roi-cell-good{ color:var(--green-ok); }
.roi-gst-note{ font-size:12px; color:var(--ink-faint); margin-top:18px; }
.roi-cta-row2{ display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }
.roi-cta-row2 .btn{ padding:13px 20px; }
.roi-disclaimer{ margin-top:16px; font-size:11px; color:var(--ink-faint); font-style:italic; line-height:1.6; }
@media (max-width:820px){ .roi-card2{ grid-template-columns:1fr; } .roi-col-left{ border-right:none; border-bottom:1px solid var(--line-soft); } .roi-bill-row2{ max-width:none; } .roi-grid2{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){
  .roi-frame-outer{ margin-top:22px; }
  .roi-glow{ display:none; }
  .roi-card2{ border-radius:var(--radius); }
  .roi-card2::before{ height:3px; }
  .roi-col-left, .roi-col-right{ padding:18px 16px; }
  .roi-label{ font-size:11.5px; margin-bottom:8px; }
  .roi-seg2{ padding:2px; gap:2px; }
  .roi-seg2 button{ font-size:11px; padding:9px 4px; gap:4px; line-height:1.25; }
  .roi-seg-ico{ font-size:12px; }
  .roi-bill-row2{ padding:9px 12px; }
  .roi-bill-row2 .roi-rupee{ font-size:14px; }
  .roi-bill-row2 input[type="number"]{ font-size:15px; }
  .roi-slider-wrap{ margin-top:14px; padding-top:10px; }
  .roi-range-ends{ font-size:9.5px; margin-top:6px; }
  .roi-help{ font-size:10.5px; margin-top:6px; }
  .roi-assumptions{ margin-top:14px; padding-top:10px; }
  .roi-assumptions summary{ font-size:11.5px; }
  .roi-assumptions ul{ font-size:11px; margin-top:8px; padding-left:16px; }
  .roi-hero-stat{ gap:10px; }
  .roi-hero-badge{ width:36px; height:36px; font-size:15px; }
  .roi-hero-label{ font-size:10.5px; }
  .roi-hero-n #roiSize{ font-size:26px; }
  .roi-hero-unit{ font-size:13px; }
  .roi-grid2{ grid-template-columns:1fr 1fr; gap:7px; margin-top:16px; }
  .roi-cell2{ padding:8px; gap:6px; border-radius:8px; }
  .roi-cell-ico{ width:18px; height:18px; }
  .roi-cell-l{ font-size:9px; line-height:1.25; }
  .roi-cell-n{ font-size:12px; margin-top:2px; }
  .roi-gst-note{ font-size:10px; margin-top:10px; }
  .roi-cta-row2{ margin-top:14px; gap:8px; }
  .roi-cta-row2 .btn, .roi-cta-row2 .wa-btn{ width:100%; justify-content:center; padding:11px 14px; font-size:12.5px; }
  .roi-disclaimer{ font-size:9.5px; margin-top:10px; }
}

/* ---------- WhatsApp ---------- */
.wa-btn{
  display:inline-flex; align-items:center; gap:10px; background:#25D366; color:#fff; font-weight:700; font-size:14.5px;
  padding:13px 22px; border-radius:999px; box-shadow:0 10px 22px -10px rgba(37,211,102,.6); transition:transform .18s ease, box-shadow .18s ease;
}
.wa-btn:hover{ transform:translateY(-2px); box-shadow:0 14px 26px -8px rgba(37,211,102,.65); }
.wa-icon{ width:19px; height:19px; flex:none; }
.wa-btn-outline{ display:inline-flex; align-items:center; gap:9px; border:1.5px solid #25D366; color:#1a9c4c; font-weight:600; font-size:13.5px; padding:10px 18px; border-radius:999px; background:#fff; transition:background .18s ease; }
.wa-btn-outline:hover{ background:#EAFBF0; }
.wa-btn-outline .wa-icon{ width:17px; height:17px; color:#25D366; }
.float-wa{
  position:fixed; right:20px; bottom:84px; z-index:150; width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 28px -8px rgba(37,211,102,.65); transition:transform .2s ease, box-shadow .2s ease;
}
.float-wa svg{ width:27px; height:27px; }
.float-wa:hover{ transform:translateY(-3px) scale(1.05); box-shadow:0 16px 34px -6px rgba(37,211,102,.75); }
@media (max-width:600px){ .float-wa{ right:14px; bottom:76px; width:50px; height:50px; } .float-wa svg{ width:24px; height:24px; } }

/* ---------- mobile action bar: replaced by floating circular icons (matches desktop) ---------- */
.mobile-action-bar{ display:none !important; }

/* ---------- get a quote ---------- */
.quote-split{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; margin-top:20px; }
.quote-checklist{ list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; }
.quote-checklist li{ position:relative; padding-left:28px; font-size:14.5px; color:var(--ink-soft); }
.quote-checklist li::before{ content:"✓"; position:absolute; left:0; top:0; color:var(--green-ok); font-weight:700; }
.quote-card{ background:#fff; }
@media (max-width:900px){ .quote-split{ grid-template-columns:1fr; gap:32px; } }

/* ---------- contact ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:36px; } }
.field{ margin-bottom:18px; }
.field label{ display:block; font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--ink-soft); margin-bottom:7px; text-transform:uppercase; letter-spacing:.03em;}
.field input, .field select, .field textarea{
  width:100%; background:var(--paper-2); border:1.5px solid var(--line); color:var(--ink); padding:13px 14px;
  font-family:'IBM Plex Sans',sans-serif; font-size:16px; border-radius:var(--radius-sm); transition:border-color .18s ease, background .18s ease;
}
.field textarea{ resize:vertical; min-height:100px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--gold); background:#fff; }
.contact-info-item{ display:flex; gap:16px; padding:18px 22px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; margin-bottom:14px; box-shadow:var(--shadow-sm); }
.contact-info-item .ico{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--gold-deep); width:64px; flex-shrink:0; padding-top:2px; font-weight:600;}
.contact-info-item div p{ margin:0; font-size:14.5px; }
.contact-info-item div p.small{ font-size:12.5px; color:var(--ink-faint); margin-top:3px;}

.reveal{ opacity:0; transform:translateY(18px) scale(.98); transition:opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- decorative background blobs ---------- */
.deco-wrap{ position:relative; overflow:hidden; isolation:isolate; }
.deco-blob{ position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; z-index:-1; opacity:.35; animation:decoFloat 18s ease-in-out infinite; }
.deco-blob.gold{ background:radial-gradient(circle, rgba(240,169,60,.55), transparent 70%); }
.deco-blob.blue{ background:radial-gradient(circle, rgba(28,110,134,.4), transparent 70%); animation-delay:-9s; }
@keyframes decoFloat{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(28px,-24px) scale(1.08); } }
@media (prefers-reduced-motion:reduce){ .deco-blob{ animation:none; } }

:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:2px; }


  /* ---------- Brand partners ribbon (ported component) ---------- */
  .bp-phase { display: inline-flex; gap: 3px; vertical-align: middle; }
  .bp-phase i { display: block; width: 16px; height: 5px; }
  .bp-phase i:nth-child(1) { background: #D8352A; }
  .bp-phase i:nth-child(2) { background: #C97C1F; }
  .bp-phase i:nth-child(3) { background: #1C6E86; }

  .bp-chip { display: inline-flex; align-items: center; gap: .5rem; white-space: nowrap; padding: .6rem .85rem; font-family:'IBM Plex Sans',sans-serif; font-size: .8125rem; font-weight: 600; line-height: 1; color: #5B5346; background: #fff; border: 1px solid var(--line); border-radius: 999px; transition: background .2s, color .2s, border-color .2s; cursor: pointer; }
  .bp-chip i { width: .5rem; height: .5rem; border-radius: 9999px; background: var(--cat, var(--ink)); flex: none; }
  .bp-chip .n { font-weight: 500; opacity: .6; }
  .bp-chip:hover { border-color: var(--ink); }
  .bp-chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
  .bp-chip[aria-pressed="true"] .n { opacity: .75; }
  .bp-seg { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; background: #fff; overflow: hidden; }
  .bp-seg button { padding: .6rem .95rem; font-family:'IBM Plex Sans',sans-serif; font-size: .8125rem; font-weight: 600; line-height: 1; color: #5B5346; cursor: pointer; background:none; border:none; }
  .bp-seg button + button { border-left: 1px solid var(--line); }
  .bp-seg button[aria-pressed="true"] { background: var(--ink); color: #fff; }
  .bp-ghost { padding: .6rem .95rem; font-family:'IBM Plex Sans',sans-serif; font-size: .8125rem; font-weight: 600; line-height: 1; color: #5B5346; border: 1px solid var(--line); border-radius: 999px; background: #fff; cursor: pointer; }
  .bp-ghost:hover { border-color: var(--ink); }
  .bp-chip:focus-visible, .bp-seg button:focus-visible, .bp-ghost:focus-visible, .brand-tile:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 2px; }

  .brand-tile { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; width: 100%; height: 7.5rem; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; text-align: center; transition: border-color .25s, box-shadow .25s, transform .25s; }
  .brand-tile:hover, .brand-tile:focus-visible { border-color: var(--accent); box-shadow: var(--shadow-md); transform: translateY(-2px); }
  .bp-wm { display: flex; flex-direction: column; align-items: center; line-height: 1; color: #97a3a8; transition: color .3s; }
  .bp-wm-main { font-family: 'Fraunces', serif; font-weight: 800; font-size: 1.05rem; letter-spacing: -.01em; }
  .bp-wm-sub { margin-top: .3rem; font-family:'IBM Plex Mono',monospace; font-size: .6rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; max-width: 9.5rem; line-height: 1.25; }
  .brand-tile:hover .bp-wm, .brand-tile:focus-visible .bp-wm { color: var(--accent); }
  .brand-img { display:block; max-height: 4rem; max-width: 9.8rem; width:auto; height:auto; object-fit: contain; }
  .brand-tile.has-logo { padding: .8rem 1.1rem; }
  .bp-badge { position:absolute; bottom:.5rem; left:50%; transform:translateX(-50%); font-family:'IBM Plex Mono',monospace; font-size: .625rem; font-weight: 600; line-height: 1; white-space: nowrap; padding: .25rem .5rem; border-radius: 999px; color: color-mix(in srgb, var(--cat) 78%, #000); background: color-mix(in srgb, var(--cat) 14%, #fff); }
  .bp-badge b { font-weight: 700; opacity: .7; }

  #bp-tip { position: fixed; left: 0; top: 0; z-index: 60; width: max-content; max-width: 18rem; padding: .8rem 1rem; font-family:'IBM Plex Sans',sans-serif; color: #fff; background: var(--ink); border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); pointer-events: none; opacity: 0; transition: opacity .15s; }
  #bp-tip.on { opacity: 1; }

  .bp-marquee { overflow: hidden; padding: .5rem 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
  .bp-track { display: flex; width: max-content; animation: bp-ribbon var(--dur, 60s) linear infinite; will-change: transform; }
  .bp-track + .bp-track { margin-top: 1rem; }
  .bp-track-rev { animation-direction: reverse; }
  .bp-ribbon-item { flex: none; width: 11rem; margin-right: 1rem; }
  @keyframes bp-ribbon { to { transform: translate3d(-50%, 0, 0); } }
  .bp-marquee:hover .bp-track, .bp-marquee:focus-within .bp-track, .bp-is-paused .bp-track { animation-play-state: paused; }
  @media (prefers-reduced-motion: reduce) { .bp-track { animation: none; } }
  @media (max-width: 860px) { .bp-header-grid { grid-template-columns: 1fr !important; } .findus-grid { grid-template-columns: 1fr !important; } .findus-pin { min-height: 180px; margin-top: 20px; } .reviews-header-grid { grid-template-columns: 1fr !important; } .commercial-third { max-width: 100% !important; } }

html{scroll-padding-top:84px;}

/* lead forms */
.hp{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden}
.form-msg{font-size:13.5px;line-height:1.6;margin:12px 0 0;padding:10px 12px;border-radius:8px;outline:none}
.form-msg[hidden]{display:none}
.form-msg.ok{color:#2f5f2e;background:#EBF4EA}
.form-msg.err{color:#8a2b22;background:#fbeceb}
.form-msg a{color:inherit;text-decoration:underline;font-weight:600}
form button[type=submit][disabled]{opacity:.65;cursor:wait}

/* Tailwind base + utilities (compiled statically; replaces the runtime CDN) */
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:IBM Plex Sans,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}