/* ViaSign · site v2 — tokens, base e componentes */
:root{
  --bg:#07090d;
  --surface-1:#0d0f13;
  --surface-2:#0f131a;
  --surface-3:#0b0e13;
  --surface-hover:#0c1119;
  --eco-bg:#4b5f56;
  --blue:#0764df;
  --blue-hover:#1b74ea;
  --accent:#5ca2ff;
  --green:#7fc49a;
  --text:#fff;
  --text-2:#b8c0cc;
  --text-3:#8e99a8;
  --muted:#66717f;
  --muted-2:#7f8a99;
  --line-08:rgba(255,255,255,.08);
  --line-10:rgba(255,255,255,.1);
  --line-12:rgba(255,255,255,.12);
  --line-14:rgba(255,255,255,.14);
  --line-20:rgba(255,255,255,.2);
  --line-25:rgba(255,255,255,.25);
  --line-35:rgba(255,255,255,.35);
  --line-40:rgba(255,255,255,.4);
  --sans:Chivo,sans-serif;
  --mono:'JetBrains Mono',monospace;
  --pad:40px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--text);text-decoration:none}
a:hover{color:var(--accent)}
img,video{display:block}
h1,h2,h3,p{margin:0}
button{font:inherit;color:inherit}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.page{position:relative;overflow:clip}
.pad{padding-left:var(--pad);padding-right:var(--pad)}
.kicker{font:600 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.tag{padding:6px 10px;border:1px solid rgba(92,162,255,.35);font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}

/* Botões */
.btn{display:inline-flex;align-items:center;justify-content:center;height:54px;padding:0 26px;font:600 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text);transition:background-color .2s,color .2s,border-color .2s}
.btn-primary{background:var(--blue)}
.btn-primary:hover{background:var(--blue-hover);color:#fff}
.btn-ghost{border:1px solid var(--line-25)}
.btn-ghost:hover{color:var(--text);border-color:var(--line-40)}
.ctas{position:relative;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}

/* Header */
.site-header{position:fixed;inset:0 0 auto;z-index:40;display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 var(--pad);mix-blend-mode:difference}
.site-header .logo{display:block}
.site-header .logo img{height:22px;width:auto;filter:brightness(0) invert(1)}
.site-nav{display:flex;align-items:center;gap:28px;font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.site-nav .nav-cta{padding:10px 14px;border:1px solid #fff}

/* Hero */
.hero{position:relative;padding:150px var(--pad) 0;text-align:center;overflow:hidden}
.hero-video{position:absolute;left:50%;top:0;width:140vw;max-width:none;height:110vh;object-fit:cover;transform:translateX(-50%);opacity:.28;filter:saturate(.6) blur(1.5px);mask-image:radial-gradient(60% 70% at 50% 30%,#000 30%,transparent 100%);-webkit-mask-image:radial-gradient(60% 70% at 50% 30%,#000 30%,transparent 100%);pointer-events:none}
.hero-glow{position:absolute;left:50%;top:-30vh;width:120vw;height:120vh;transform:translateX(-50%);background:conic-gradient(from 180deg at 50% 0%,transparent 40%,rgba(7,100,223,.35) 50%,transparent 60%);filter:blur(30px);pointer-events:none}
.hero .kicker{position:relative;display:inline-flex;align-items:center;gap:12px}
.hero h1{position:relative;margin:24px auto 0;max-width:14ch;font:900 clamp(60px,9vw,150px)/.9 var(--sans);letter-spacing:-.05em;text-wrap:balance}
.hero h1 .accent{color:var(--accent)}
.hero .lead{position:relative;max-width:56ch;margin:32px auto 0;font:300 clamp(16px,1.4vw,21px)/1.55 var(--sans);color:var(--text-2)}
.hero .ctas{margin-top:40px}
.hero-spacer{height:120px}

/* Cabeçalhos de seção */
.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:end}
.section-head h2{font:700 clamp(38px,4.4vw,72px)/.98 var(--sans);letter-spacing:-.04em}
.section-head .kicker + h2{margin-top:14px}
.section-head p{max-width:46ch;font:300 18px/1.6 var(--sans);color:var(--text-3)}

/* #fluxo */
.fluxo{position:relative;padding:160px var(--pad) 120px}
.fluxo .section-head{margin-bottom:96px}
.fluxo-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,1fr);gap:64px;align-items:start}
.steps{position:relative;display:grid;grid-template-columns:100px 2px minmax(0,1fr);column-gap:32px}
.steps-line{grid-column:2;grid-row:1/-1;position:relative;background:var(--line-10)}
.steps-line-fill{position:absolute;inset:0;background:linear-gradient(#0764df,#5ca2ff);transform-origin:top;transform:scaleY(0)}
.step-no{grid-column:1;display:flex;align-items:start;padding:40px 0;font:900 clamp(48px,5vw,80px)/1 var(--sans);letter-spacing:-.05em;color:rgba(255,255,255,.14)}
.step-body{grid-column:3;padding:44px 0 40px;border-bottom:1px solid var(--line-08);cursor:pointer;text-align:left;background:none;border-top:0;border-left:0;border-right:0;width:100%;display:block}
.step-body h3{font:700 clamp(24px,2.3vw,36px)/1.05 var(--sans);letter-spacing:-.03em;color:var(--text);transition:color .2s}
.step-body.is-active h3{color:var(--accent)}
.step-body p{max-width:48ch;margin-top:14px;font:300 17px/1.6 var(--sans);color:var(--text-2)}
.step-tags{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}

.carousel-wrap{position:sticky;top:112px}
.carousel{position:relative;border:1px solid var(--line-14);background:var(--surface-1);box-shadow:0 -20px 100px rgba(7,100,223,.18),0 40px 100px rgba(0,0,0,.7)}
.carousel-bar{display:flex;align-items:center;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line-10)}
.carousel-bar .dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18)}
.carousel-label{margin-left:14px;font:500 11px var(--mono);letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.carousel-stage{position:relative;aspect-ratio:16/10;background:var(--surface-1);overflow:hidden}
.carousel-stage video,.carousel-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.carousel-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-top:1px solid var(--line-10)}
.carousel-dots{display:flex;gap:6px}
.carousel-dots button{width:28px;height:4px;padding:0;border:0;background:rgba(255,255,255,.18);cursor:pointer;transition:background-color .2s}
.carousel-dots button.is-active{background:var(--accent)}
.carousel-arrows{display:flex;gap:8px}
.carousel-arrows button{width:40px;height:40px;border:1px solid var(--line-20);background:transparent;color:var(--text);font:400 16px/1 var(--mono);cursor:pointer;transition:border-color .2s,color .2s}
.carousel-arrows button:hover{border-color:var(--accent);color:var(--accent)}

/* #motor */
.motor{position:relative;padding:120px var(--pad) 0}
.motor .section-head{margin-bottom:64px}
.features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line-10);border:1px solid var(--line-10)}
.feature{position:relative;display:flex;flex-direction:column;gap:16px;min-height:280px;padding:32px;background:var(--bg);transition:background-color .2s}
.feature:hover{background:var(--surface-hover)}
.feature-top{display:flex;justify-content:space-between;font:600 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.feature-top span:last-child{color:var(--muted)}
.feature h3{font:700 clamp(22px,2vw,30px)/1.08 var(--sans);letter-spacing:-.03em}
.feature p{font:300 15px/1.6 var(--sans);color:var(--text-2)}
.feature-spec{margin-top:auto;font:500 12px var(--mono);letter-spacing:.06em;color:var(--text-3);text-wrap:balance}

.panels{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:1px;margin-top:1px;background:var(--line-10);border:1px solid var(--line-10);border-top:0}
.panel{position:relative;min-height:440px;background:var(--bg);overflow:hidden}
.panel-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.panel-acervo .panel-media{opacity:.55}
.panel-kmz .panel-media{opacity:.6}
.panel-overlay{position:absolute;inset:0}
.panel-acervo .panel-overlay{background:linear-gradient(90deg,rgba(7,9,13,.95) 20%,rgba(7,9,13,.2) 70%)}
.panel-kmz .panel-overlay{background:linear-gradient(0deg,rgba(7,9,13,.95) 30%,rgba(7,9,13,.1))}
.panel-content{position:relative;display:flex;flex-direction:column;justify-content:end;gap:16px;height:100%;min-height:440px;padding:32px}
.panel-content .kicker{letter-spacing:.14em}
.panel-content h3{font:700 clamp(28px,3vw,48px)/1 var(--sans);letter-spacing:-.035em}
.panel-acervo h3{max-width:16ch}
.panel-content p{font:300 15px/1.6 var(--sans);color:var(--text-2)}
.panel-acervo p{max-width:44ch}

.ticker{position:relative;margin:0 calc(var(--pad) * -1);padding:26px 0;border-bottom:1px solid var(--line-10);overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.ticker-track{display:flex;width:max-content;animation:ticker 28s linear infinite}
.ticker-item{display:flex;align-items:baseline;gap:18px;padding:0 36px;border-right:1px solid var(--line-12)}
.ticker-ext{font:900 clamp(40px,4.5vw,72px)/1 var(--sans);letter-spacing:-.04em}
.ticker-use{font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
@keyframes ticker{to{transform:translateX(-50%)}}

/* #ecoposte */
.ecoposte{position:relative;padding:120px var(--pad);overflow:hidden}
.eco-box{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line-14);background:var(--surface-2)}
.eco-text{display:flex;flex-direction:column;gap:22px;padding:56px 48px;border-right:1px solid var(--line-10)}
.eco-status{display:inline-flex;align-items:center;gap:10px;font:600 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--green)}
.eco-status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(127,196,154,.2)}
.eco-text h2{font:700 clamp(34px,3.8vw,60px)/1 var(--sans);letter-spacing:-.04em}
.eco-text p{max-width:50ch;font:300 17px/1.6 var(--sans);color:var(--text-2)}
.eco-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:8px;background:var(--line-10);border:1px solid var(--line-10)}
.eco-metric{padding:16px;background:var(--surface-2)}
.eco-metric strong{display:block;font:700 22px/1 var(--sans);letter-spacing:-.03em}
.eco-metric span{display:block;margin-top:8px;font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.eco-link{margin-top:auto;display:inline-flex;align-items:center;gap:10px;font:600 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--green);transition:color .2s}
.eco-link:hover{color:#fff}
.eco-logo{position:relative;display:flex;align-items:center;justify-content:center;min-height:420px;overflow:hidden;background:var(--eco-bg)}
.eco-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center}
.eco-caption{position:absolute;left:24px;top:24px;font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.eco-certs{position:absolute;right:24px;bottom:24px;display:flex;gap:8px;flex-wrap:wrap;justify-content:end}
.eco-certs span{padding:6px 10px;border:1px solid var(--line-35);font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#fff}

/* #potencial — simulador */
.potencial{padding:120px var(--pad)}
.potencial-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px;flex-wrap:wrap}
.potencial-head h2{font:700 clamp(36px,4vw,64px)/1 var(--sans);letter-spacing:-.04em;max-width:18ch}
.potencial-head p{max-width:42ch;font:300 16px/1.6 var(--sans);color:var(--text-3)}
.sim{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line-12);background:var(--surface-2);overflow:hidden}
.sim-inputs{padding:36px;border-right:1px solid var(--line-10)}
.sim-head{display:flex;justify-content:space-between;align-items:center;font:600 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}
.sim-inputs .sim-head{padding-bottom:18px;border-bottom:1px solid var(--line-10)}
.sim-head .accent{color:var(--accent)}
.sim-field{padding:18px 0;border-bottom:1px solid var(--line-08)}
.sim-field-row{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.sim-field label{display:block;font:500 15px/1.3 var(--sans)}
.sim-hint{margin-top:3px;font:300 12px/1.4 var(--sans);color:var(--muted-2)}
.sim-value{font:600 15px var(--mono);color:var(--accent);white-space:nowrap}
.sim-field input[type=range]{display:block;width:100%;margin:14px 0 0;height:4px;cursor:pointer;accent-color:var(--accent)}
.sim-output{display:flex;flex-direction:column;gap:22px;padding:36px;background:var(--surface-3)}
.sim-monthly{font:900 clamp(44px,5vw,72px)/1 var(--sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.sim-annual{margin-top:10px;font:300 14px/1.5 var(--sans);color:var(--text-3)}
.sim-bars{display:grid;gap:12px;padding-top:20px;border-top:1px solid var(--line-10)}
.sim-bar{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font:400 13px var(--sans);color:var(--text-2)}
.sim-bar-value{font:600 12px var(--mono);color:#fff}
.sim-bar-track{grid-column:1/-1;height:4px;background:var(--line-08)}
.sim-bar-fill{height:100%;width:0;background:linear-gradient(90deg,#0764df,#5ca2ff);transition:width .35s}
.sim-note{margin-top:auto;font:300 11px/1.5 var(--sans);color:var(--muted)}

/* #demo */
.demo{position:relative;padding:160px var(--pad);text-align:center;overflow:hidden}
.demo-glow{position:absolute;left:50%;bottom:-40vh;width:120vw;height:100vh;transform:translateX(-50%);background:radial-gradient(50% 60% at 50% 100%,rgba(7,100,223,.55),transparent 70%);pointer-events:none}
.demo h2{position:relative;margin:0 auto;max-width:16ch;font:900 clamp(44px,6vw,96px)/.95 var(--sans);letter-spacing:-.045em}
.demo .ctas{margin-top:44px}
.demo .btn{height:56px;padding:0 28px}
.btn-white{background:#fff;color:var(--bg)}
.btn-white:hover{color:var(--blue)}
.btn-outline{border:1px solid var(--line-40)}
.btn-outline:hover{color:var(--text);border-color:#fff}

/* Footer */
.site-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px var(--pad);border-top:1px solid var(--line-08);font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.site-footer .logo img{height:26px;width:auto;filter:brightness(0) invert(1);opacity:.8}
.site-footer .link-white{color:#fff}
.site-footer .link-white:hover{color:var(--accent)}

/* Animações de scroll (ativadas por js/site.js) */
.reveal{opacity:0;transform:translateY(48px);transition:opacity .9s cubic-bezier(.2,.65,.2,1),transform .9s cubic-bezier(.2,.65,.2,1)}
.reveal.is-in{opacity:1;transform:none}
.zoom{transform:scale(1.18);transition:transform 1.6s cubic-bezier(.2,.65,.2,1)}
.zoom.is-in{transform:scale(1)}
.steps-line-fill{transition:transform .15s linear}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.zoom{opacity:1;transform:none;transition:none}
  .steps-line-fill{transform:scaleY(1);transition:none}
  .ticker-track{animation:none}
}

/* Responsivo */
@media (max-width:860px){
  :root{--pad:20px}
  .section-head,.fluxo-grid,.features,.panels,.eco-box,.sim{grid-template-columns:minmax(0,1fr)}
  .section-head,.fluxo-grid{gap:24px}
  .hero{padding-top:120px}
  .fluxo,.ecoposte,.potencial,.demo{padding-top:80px;padding-bottom:80px}
  .fluxo .section-head{margin-bottom:64px}
  .steps{grid-template-columns:44px 2px minmax(0,1fr);column-gap:18px}
  .step-no{font-size:36px;padding:28px 0}
  .step-body{padding:26px 0 28px}
  .carousel-wrap{position:static;order:-1}
  .site-nav a:not(.nav-cta){display:none}
  .ctas .btn{width:100%}
  .panel,.panel-content{min-height:340px}
  .eco-text{padding:32px 24px;border-right:0;border-bottom:1px solid var(--line-10)}
  .eco-logo{min-height:260px}
  .sim-inputs{padding:24px 20px;border-right:0}
  .sim-output{padding:24px 20px}
  .site-footer{flex-direction:column;align-items:flex-start;gap:14px}
}
