/* =====================================================================
   GALVÃO INFORMÁTICA · v3 (2026-10)
   Linguagem do moonsworth.com: preto puro, off-white, Geist + Geist Mono,
   canto reto em tudo, linhas finas, sem sombra/gradiente/glow.
   Destaque = ciano da marca (--accent; o /admin pode trocar via tema.accent).
   ===================================================================== */
@font-face{font-family:"Geist";src:url("../fonts/Geist-Regular-latin.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("../fonts/Geist-Medium-latin.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("../fonts/GeistMono-Regular-latin.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

:root{
  --bg:#000;
  --fg:#F4F6F2;
  --panel:#0B0D0E;
  --line:rgba(255,255,255,.08);
  --line-2:rgba(255,255,255,.2);
  --mut:rgba(244,246,242,.68);
  --dim:rgba(244,246,242,.56);
  --accent:#00d9ff;          /* ciano da marca (= --neon do v2) */
  --on-accent:#000;
  --ok:var(--accent);
  --warn:#f2c14e;
  --bad:#ff6363;
  --sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --wrap:1600px;
  --gut:20px;
  --sec:160px;
  --gap:80px;
  --hdr:72px;
  --top:34px;
  --saida:cubic-bezier(.16,1,.3,1);
  --pano:cubic-bezier(.76,0,.24,1);
  color-scheme:dark;
}
@media (max-width:760px){:root{--sec:96px;--gap:40px;--hdr:64px}}

*,*::before,*::after{box-sizing:border-box;border-radius:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 24px);-webkit-text-size-adjust:100%}
html.gv-js:not(.gv-suave){scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:16px;line-height:1.55;overflow-x:clip;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
svg{width:1em;height:1em;flex:none}
[hidden]{display:none!important}
:focus-visible{outline:1px solid var(--accent);outline-offset:3px}
::selection{background:var(--accent);color:var(--on-accent)}
h1,h2,h3,h4{margin:0;font-family:var(--sans);font-weight:400;letter-spacing:-.025em;line-height:1.04;text-wrap:balance}
p{margin:0}
ul,ol{margin:0;padding:0}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.mono{font-family:var(--mono)}
.mut{color:var(--mut)}
.acc{color:var(--accent);font-style:normal}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--accent);color:var(--on-accent);padding:10px 14px}
.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- tipografia ---------- */
.h1{font-size:clamp(2.75rem,5vw,4.5rem);line-height:1.02}
.h2{font-size:clamp(1.75rem,4.5vw,2.75rem)}
.h3{font-size:clamp(1.3rem,2.2vw,1.6rem);font-weight:500;letter-spacing:-.02em}
.statement{font-family:var(--sans);font-size:clamp(1.75rem,4vw,3rem);line-height:1.12;letter-spacing:-.025em;max-width:24ch}
.lead{font-family:var(--mono);font-size:clamp(16px,1.2vw,18px);color:var(--mut);max-width:62ch}
.eyebrow{font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
.read p,.read li{font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--mut)}
.read p+p{margin-top:1em}
.read a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.read strong{color:var(--fg);font-weight:500}
.read code{font-family:var(--mono);font-size:.9em;color:var(--fg)}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:12px 40px;font-family:var(--mono);font-size:14px;letter-spacing:.02em;line-height:1.1;text-align:center;border:1px solid transparent;transition:opacity .15s,background-color .15s,border-color .15s;white-space:nowrap}
.btn svg{font-size:16px}
.btn{background-image:linear-gradient(var(--fg),var(--fg));background-repeat:no-repeat;background-position:0 100%;background-size:100% 0;transition:background-size .5s var(--saida),color .3s var(--saida),border-color .3s}
.btn svg{transition:transform .5s var(--saida)}
.btn--p{background-color:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn--s{border-color:var(--line-2);color:var(--fg)}
@media (hover:hover){
  .btn:hover{background-size:100% 102%;color:#000}
  .btn--s:hover{border-color:var(--fg)}
  .btn:hover svg{transform:translateX(2px)}
}
.btn--sm{min-height:38px;padding:8px 20px;font-size:13px}
.btn--block{width:100%}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.link{font-family:var(--mono);font-size:14px;color:var(--fg);border-bottom:1px solid var(--line-2);padding-bottom:2px;transition:border-color .15s,color .15s;display:inline-flex;align-items:center;gap:8px;min-height:44px}
.link:hover{border-color:var(--accent);color:var(--accent)}
.link--line{min-height:0}

/* ---------- cruzinhas "+" (assinatura do Moonsworth) ---------- */
.frame{position:relative;padding:48px 40px}
.frame .x{position:absolute;width:32px;height:32px;opacity:.35;pointer-events:none}
.frame .x::before,.frame .x::after{content:"";position:absolute;background:var(--fg)}
.frame .x::before{left:50%;top:0;bottom:0;width:1px;transform:translateX(-50%)}
.frame .x::after{top:50%;left:0;right:0;height:1px;transform:translateY(-50%)}
.x--tl{left:-16px;top:-16px}.x--tr{right:-16px;top:-16px}.x--bl{left:-16px;bottom:-16px}.x--br{right:-16px;bottom:-16px}
@media (max-width:760px){.frame{padding:32px 18px}.frame .x{width:24px;height:24px}.x--tl{left:-4px;top:-12px}.x--tr{right:-4px;top:-12px}.x--bl{left:-4px;bottom:-12px}.x--br{right:-4px;bottom:-12px}}

/* ---------- faixa do topo + header ---------- */
.site-top{position:fixed;inset:0 0 auto 0;z-index:50}
.topbar{height:var(--top);border-bottom:1px solid var(--line);background:#000}
.topbar .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px}
.topbar__links{display:flex;align-items:center;gap:10px;color:rgba(244,246,242,.6);white-space:nowrap}
.topbar__links a{display:inline-flex;align-items:center;min-height:var(--top);transition:color .15s}
.topbar__links a:hover{color:var(--accent)}
.topbar__links i{font-style:normal;color:rgba(244,246,242,.36)}
.topbar__right{display:flex;align-items:center;gap:18px;white-space:nowrap}
.topbar__right a{display:inline-flex;align-items:center;min-height:var(--top);color:rgba(244,246,242,.8)}
.topbar__right a:hover{color:var(--accent)}
.status{display:inline-flex;align-items:center;gap:8px;color:var(--mut)}
.status__dot{width:7px;height:7px;background:var(--dim)}
.status.is-open .status__dot{background:var(--accent)}
.status.is-closed .status__dot{background:var(--warn)}
/* a faixa sai de vista subindo o bloco fixo inteiro com transform (sem CLS); o header fica no topo */
.site-top{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.site-top.is-scrolled{transform:translateY(calc(-1 * var(--top)))}

/* header SEMPRE fixo (R9d). Sem JS: escuro sólido. Com JS: o tom segue a seção que passa por baixo (data-tom). */
.hdr{height:var(--hdr);color:var(--fg);background:rgba(0,0,0,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08);
  transition:background-color .5s,color .5s,border-color .5s}
.hdr .nav a,.hdr .brand__txt span,.hdr .kbd{transition:color .5s,border-color .5s}
.hdr .burger i{transition:transform .25s,top .25s,background-color .5s}
.gv-js .site-top[data-tom=foto] .hdr{background:rgba(0,0,0,.55);   /* .35 não dava AA sobre a foto do CTA */
  -webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-bottom-color:rgba(255,255,255,.12)}
.gv-js .site-top[data-tom=foto] .nav a{color:rgba(244,246,242,.86)}
.gv-js .site-top[data-tom=foto] .nav a:hover{color:var(--fg)}
.gv-js .site-top[data-tom=foto]:not(.is-scrolled) .hdr{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent}
.gv-js .site-top[data-tom=escuro] .hdr{background:rgba(0,0,0,.82)}
.gv-js .site-top[data-tom=ciano] .hdr{background:rgba(0,0,0,.9)}
.gv-js .site-top[data-tom=claro] .hdr{background:rgba(244,246,242,.92);color:#0b0d0e;border-bottom-color:rgba(0,0,0,.1)}
.gv-js .site-top[data-tom=claro] .nav a,.gv-js .site-top[data-tom=claro] .brand__txt span{color:rgba(11,13,14,.72)}
.gv-js .site-top[data-tom=claro] .nav a:hover,.gv-js .site-top[data-tom=claro] .nav a.is-active{color:#0b0d0e}
.gv-js .site-top[data-tom=claro] .kbd{color:rgba(11,13,14,.72);border-color:rgba(0,0,0,.15)}
.gv-js .site-top[data-tom=claro] .burger i{background:#0b0d0e}
.hdr .wrap{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}
.brand{display:inline-flex;align-items:center;gap:12px;min-height:44px;justify-self:start}
.brand img{width:30px;height:auto}
.brand__txt{font-family:var(--sans);font-weight:500;font-size:17px;letter-spacing:-.01em;line-height:1}
.brand__txt span{color:var(--mut);font-weight:400}
.nav{display:flex;align-items:center;gap:4px}
.nav a{font-size:13px;letter-spacing:.02em;text-transform:uppercase;padding:0 14px;min-height:44px;display:inline-flex;align-items:center;color:var(--mut);transition:color .15s}
.nav a:hover,.nav a.is-active{color:var(--fg)}
.hdr__act{justify-self:end;display:flex;align-items:center;gap:10px}
.kbd{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border:1px solid var(--line);font-size:12px;color:var(--mut);transition:border-color .15s,color .15s}
.kbd:hover{border-color:var(--line-2);color:var(--fg)}
.burger{display:none;width:44px;height:44px;position:relative}
.burger i{position:absolute;left:10px;right:10px;height:1px;background:var(--fg);transition:transform .25s,top .25s}
.burger i:first-child{top:18px}.burger i:last-child{top:26px}
.menu-open .burger i:first-child{top:22px;transform:rotate(45deg)}
.menu-open .burger i:last-child{top:22px;transform:rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:45;background:#000;padding:calc(var(--hdr) + 24px) var(--gut) 32px;display:flex;flex-direction:column;justify-content:space-between;overflow-y:auto}
.menu__nav{display:flex;flex-direction:column}
.menu__nav a{font-family:var(--sans);font-size:clamp(2rem,9vw,3rem);letter-spacing:-.03em;line-height:1.1;padding:10px 0;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:14px}
.menu__nav a span{font-family:var(--mono);font-size:12px;color:var(--dim);letter-spacing:0}
.menu__foot{display:grid;gap:12px;margin-top:32px}
.menu__foot .mono{font-size:13px;color:var(--mut)}

@media (max-width:1080px){
  .nav,.kbd{display:none}
  .burger{display:block}
  .hdr .wrap{grid-template-columns:1fr auto}
}
@media (max-width:1100px){.topbar__right a{display:none}}
@media (max-width:900px){:root{--top:0px}.topbar{display:none}}
@media (max-width:760px){.hdr__wa{display:none}}

/* ---------- seções ---------- */
.sec{padding-block:var(--sec)}
.sec--line{border-top:1px solid var(--line)}
.sec-h{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px;margin-bottom:56px}
.sec-h__t{display:grid;gap:16px}
.sec-h .lead{max-width:56ch}
@media (max-width:760px){.sec-h{margin-bottom:32px}}

/* ---------- heros ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;isolation:isolate;overflow:hidden}
.hero--page{min-height:70svh;align-items:flex-end;justify-content:flex-start;padding:calc(var(--top) + var(--hdr) + 48px) 0 72px}
.hero--short{min-height:60svh}
.hero--plain{min-height:0;padding-bottom:48px;border-bottom:1px solid var(--line)}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__bg img{width:100%;height:100%;object-fit:cover}
.hero__shade{position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.65)}
.hero__shade::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(to bottom,transparent,#000)}
.hero--home .hero__shade::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 55%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 70%)}
.hero__in{text-align:center;padding-top:calc(var(--top) + var(--hdr));display:flex;justify-content:center}
.hero__in .frame{max-width:1080px}
.hero__t{margin-bottom:28px}
.hero__t span{display:block}
.hero__sub{font-size:clamp(15px,1.2vw,18px);color:var(--mut);max-width:58ch;margin:0 auto 40px}
.hero__in .btns{justify-content:center}
.hero__eyebrow{margin-bottom:28px}
.hero--page .hero__copy{max-width:1100px}
.hero--page .h1{margin:20px 0 24px}
.hero--page .lead{margin-bottom:32px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px 10px;font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.crumbs li+li::before{content:"/";margin-right:10px;color:var(--dim)}
.crumbs a{display:inline-flex;min-height:28px;align-items:center}
.crumbs a:hover{color:var(--fg)}


/* ---------- statement + números ---------- */
.stmt .statement em{font-style:normal;color:var(--accent)}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:var(--gap)}
.stat{min-height:420px;border:1px solid var(--line);background:var(--panel);padding:28px;display:flex;flex-direction:column;justify-content:space-between}
.stat__n{font-family:var(--mono);font-size:clamp(4rem,9vw,8.5rem);line-height:.9;letter-spacing:-.04em}
.stat__l{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
@media (max-width:900px){.stats{grid-template-columns:1fr}.stat{min-height:240px}}

/* ---------- cards com foto (serviços / ferramentas) ---------- */
.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.pgrid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pgrid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pcard{position:relative;isolation:isolate;overflow:hidden;min-height:480px;border:1px solid var(--line);background:var(--panel)}
.pcard__w,.pcard__m{position:absolute;inset:0}
.pcard__m{z-index:0;display:flex;align-items:center;justify-content:center;text-align:center}
.pcard__ph{position:absolute;inset:0;z-index:-1;overflow:hidden;transition:transform .8s var(--saida)}
.pcard__ph::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 62% at 50% 50%,rgba(0,0,0,.62),rgba(0,0,0,.28) 72%,rgba(0,0,0,.18))}
.pgrid--4 .pcard__ph::after,.pgrid--3 .pcard__ph::after{background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.5) 45%,rgba(0,0,0,.12) 85%)}
.pcard--wide{grid-column:1/-1;min-height:560px}
.pgrid--4 .pcard,.pgrid--3 .pcard{min-height:440px}
.pgrid--4 .pcard__m,.pgrid--3 .pcard__m{align-items:flex-end;justify-content:flex-start;text-align:left}
/* foto 16% mais alta: folga p/ o parallax de ±6% */
.pcard__bg{position:absolute;left:0;top:-8%;width:100%;height:116%;max-width:none;object-fit:cover;filter:brightness(.8);transition:filter .6s}
.pcard--proprio .pcard__bg{filter:blur(10px) brightness(.8);left:-4%;width:108%}
.pcard:hover .pcard__ph{transform:scale(1.03)}
.pcard:hover .pcard__bg{filter:brightness(.95)}
.pcard--proprio:hover .pcard__bg{filter:blur(10px) brightness(.95)}
.pcard__in{padding:40px 28px;display:grid;justify-items:center;gap:16px;max-width:760px}
.pgrid--4 .pcard__in,.pgrid--3 .pcard__in{justify-items:start;padding:28px}
.pcard h3{font-size:clamp(1.9rem,3.6vw,3.25rem);line-height:1.02}
.pcard--wide h3{font-size:clamp(2.2rem,4.6vw,4rem)}
.pgrid--4 .pcard h3,.pgrid--3 .pcard h3{font-size:clamp(1.5rem,2vw,1.9rem)}
.pcard p{font-size:14px;color:var(--mut);max-width:54ch}
.pcard .btn{margin-top:8px}
.pcard .btn::after,.pcard .link::after{content:"";position:absolute;inset:0}
.pcard p{color:rgba(244,246,242,.82)}
.pcard__n{position:absolute;top:20px;left:24px;font-size:12px;color:rgba(244,246,242,.8)}
.sec-more{margin-top:32px;display:flex;justify-content:flex-end}
@media (max-width:1200px){.pgrid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.pgrid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .pgrid,.pgrid--4,.pgrid--3{grid-template-columns:1fr}
  .pcard,.pcard--wide{min-height:420px}
  .pgrid--4 .pcard,.pgrid--3 .pcard{min-height:360px}
}

/* ---------- logos (quem confia) ---------- */
.logos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.logos li{list-style:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:200px;display:flex;align-items:center;justify-content:center;padding:32px}
.logos img{max-height:56px;width:auto;filter:brightness(0) invert(1);opacity:.7;transition:opacity .15s}
.logos li:hover img{opacity:1}
.logos figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.logos figure{margin:0}
@media (max-width:760px){.logos{grid-template-columns:repeat(2,minmax(0,1fr))}.logos li{min-height:140px;padding:20px}.logos img{max-height:40px}}

/* ---------- diferenciais ---------- */
.difs{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--gap);border-top:1px solid var(--line)}
.difs li{display:grid;grid-template-columns:56px 1fr;gap:16px;padding:28px 0;border-bottom:1px solid var(--line)}
.difs__n{font-size:13px;color:var(--accent)}
.difs b{display:block;font-weight:400;font-size:17px;margin-bottom:6px}
.difs span{color:var(--mut);font-size:14px}
@media (max-width:760px){.difs{grid-template-columns:1fr}.difs li{grid-template-columns:44px 1fr}}

/* ---------- FAQ (acordeão) ---------- */
.faq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:var(--gap)}
.faq__list{border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;min-height:44px;font-family:var(--sans);font-size:clamp(1.05rem,1.6vw,1.3rem);letter-spacing:-.01em}
.qa summary::-webkit-details-marker{display:none}
.qa summary .pm{position:relative;width:16px;height:16px;flex:none}
.qa summary .pm::before,.qa summary .pm::after{content:"";position:absolute;background:var(--fg);transition:transform .2s,opacity .2s}
.qa summary .pm::before{left:0;right:0;top:50%;height:1px}
.qa summary .pm::after{top:0;bottom:0;left:50%;width:1px}
.qa[open] summary .pm::after{transform:scaleY(0)}
.qa summary:hover{color:var(--accent)}
.qa__a{padding:0 48px 28px 0}
.qa__a p{font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--mut);max-width:70ch}
@media (max-width:900px){.faq{grid-template-columns:1fr}.qa__a{padding-right:0}}

/* ---------- CTA final ---------- */
.cta{position:relative;isolation:isolate;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;border-top:1px solid var(--line)}
.cta--page{min-height:80svh}
.cta .frame{max-width:900px}
.cta .h1{margin-bottom:24px}
.cta .lead{margin:0 auto 40px}
.cta .btns{justify-content:center}

/* ---------- contato ---------- */
.ct{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:var(--gap)}
.ct__info{display:grid;gap:24px;align-content:start}
.open{display:flex;gap:14px;align-items:flex-start;padding:20px;border:1px solid var(--line);background:var(--panel)}
.open .status__dot{margin-top:7px;width:8px;height:8px}
.open b{display:block;font-weight:400}
.open span{color:var(--mut);font-size:14px}
.info{list-style:none;border-top:1px solid var(--line)}
.info li{display:grid;grid-template-columns:24px 1fr 44px;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.info li>svg{color:var(--mut);font-size:18px}
.info .k{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
.info .v{display:inline-block;word-break:break-word}
.info a.v:hover{color:var(--accent)}
.copy{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);color:var(--mut);transition:border-color .15s,color .15s}
.copy:hover,.copy.ok{border-color:var(--accent);color:var(--accent)}
.radar{position:relative;display:block;height:260px;border:1px solid var(--line);background:var(--panel);overflow:hidden}
.radar canvas{position:absolute;inset:0;width:100%;height:100%}
.radar__lbl{position:absolute;left:16px;bottom:14px;display:grid;font-size:12px;color:var(--mut)}
.radar__lbl b{font-weight:400;color:var(--fg);font-size:14px}
.radar__cta{position:absolute;right:16px;top:14px;font-size:12px;color:var(--fg)}
.radar:hover .radar__cta{color:var(--accent)}
.form{display:grid;gap:20px;padding:32px;border:1px solid var(--line);background:var(--panel);align-content:start}
.form__head{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--mut)}
.form__head svg{color:var(--accent);font-size:18px}
.field{display:grid;gap:8px}
.field label,.field legend{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);padding:0}
.field input:not([type=range]):not([type=radio]),.field select,.field textarea{width:100%;min-height:48px;padding:12px 14px;background:#000;border:1px solid var(--line-2);color:var(--fg);font-family:var(--mono);font-size:15px;outline:none;transition:border-color .15s;appearance:none;-webkit-appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--fg) 50%),linear-gradient(135deg,var(--fg) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}
.field ::placeholder{color:var(--dim)}
.bubble{border:1px solid var(--line);padding:16px;background:#000}
.bubble__lbl{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--dim);margin-bottom:8px}
.bubble__txt{white-space:pre-wrap;font-size:14px;color:var(--fg)}
.form__note{font-size:12px;color:var(--mut)}
.form__note a{text-decoration:underline;text-underline-offset:3px;display:inline-flex;min-height:24px;align-items:center}
.form__note a:hover{color:var(--accent)}
@media (max-width:900px){.ct{grid-template-columns:1fr}.form{padding:20px}}

/* ---------- rodapé ---------- */
.foot{border-top:1px solid var(--line);padding:var(--sec) 0 32px}
.foot__top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:40px;margin-bottom:var(--gap)}
.foot__frase{font-family:var(--sans);font-size:clamp(2rem,5vw,4rem);letter-spacing:-.03em;line-height:1.02;max-width:16ch}
.foot__logo{width:72px;height:auto;opacity:.9}
.foot__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;padding-bottom:48px;border-bottom:1px solid var(--line)}
.foot__cols h2{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:14px}
.foot__cols ul{list-style:none}
.foot__cols li a,.foot__cols li span{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--mut);transition:color .15s}
.foot__cols li span{min-height:0;padding:6px 0;line-height:1.5}
.foot__cols li a:hover{color:var(--fg)}
.foot__base{display:flex;flex-wrap:wrap;align-items:center;gap:0 18px;padding-top:20px;font-size:12px;color:var(--dim)}
.foot__base a{display:inline-flex;align-items:center;min-height:44px;color:var(--mut)}
.foot__base a:hover{color:var(--fg)}
.foot__base i{font-style:normal;color:rgba(244,246,242,.25)}
@media (max-width:900px){.foot__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.foot{padding-bottom:110px}.foot__cols{grid-template-columns:1fr;gap:24px}}

/* ---------- FAB / dock / paleta / toast ---------- */
/* FAB: MESMA posição e tamanho do v2 (58px a 22px da direita) — o consent.css (R7b) conta com isso */
.fab{position:fixed;right:22px;bottom:22px;z-index:40;width:58px;height:58px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-size:28px;transition:opacity .15s}
.fab:hover{opacity:.85}
.dock{display:none}
@media (max-width:640px){
  .fab{display:none}
  .dock{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:rgba(0,0,0,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}
  .dock a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border:1px solid var(--line-2);font-size:13px}
  .dock a svg{font-size:17px}
  .dock__wa{background:var(--accent);border-color:var(--accent)!important;color:var(--on-accent)}
}
.palette{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.75);display:flex;justify-content:center;align-items:flex-start;padding:14vh var(--gut) 0}
.palette__box{width:100%;max-width:580px;border:1px solid var(--line-2);background:var(--panel)}
.palette__in{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);color:var(--mut)}
.palette__in input{flex:1;min-width:0;background:none;border:0;outline:none;font-size:15px;color:var(--fg);font-family:var(--mono)}
.palette__in kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--line);padding:2px 6px}
.palette__list{list-style:none;padding:6px;max-height:50vh;overflow-y:auto}
.palette__list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;cursor:pointer;font-size:14px}
.palette__list li small{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em}
.palette__list li.is-act{background:rgba(255,255,255,.06);color:var(--accent)}
.toast{position:fixed;left:50%;bottom:96px;z-index:90;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--fg);color:#000;padding:10px 16px;font-size:13px;transition:opacity .2s,transform .2s;max-width:calc(100vw - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- banner de cookies (consent.css) no visual v3 ---------- */
body.v3 .gvc{font-family:var(--mono);font-size:14px;color:var(--fg)}
body.v3 .gvc__in{border-radius:0;border:1px solid var(--line-2);background:rgba(11,13,14,.97);box-shadow:none}
body.v3 .gvc__txt{color:var(--mut)}
body.v3 .gvc__txt a{color:var(--fg)}
body.v3 .gvc__b{border-radius:0;font:400 13px/1 var(--mono);letter-spacing:.02em;background:transparent;border:1px solid var(--line-2);color:var(--fg);min-height:44px}
body.v3 .gvc__b:hover{background:transparent;border-color:var(--fg)}
body.v3 .gvc__b:focus-visible{outline:1px solid var(--accent)}
body.v3 .gvc__cat{border-radius:0;border-color:var(--line);color:var(--mut)}
body.v3 .gvc__cat b{font-family:var(--mono);font-weight:400;color:var(--fg)}
body.v3 .gvc__cat input{accent-color:var(--accent)}

/* ---------- página de serviço / leitura ---------- */
.col{max-width:760px}
.col-sec{padding-block:calc(var(--sec) * .6)}
.col-sec+.col-sec{border-top:1px solid var(--line)}
.col h2{font-size:clamp(1.6rem,3.4vw,2.4rem);margin-bottom:24px}
.col h3{font-size:1.25rem;font-weight:500;margin:32px 0 12px}
.plus-list{list-style:none;display:grid;gap:12px}
.plus-list li{position:relative;padding-left:28px;font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--mut)}
.plus-list li::before{content:"+";position:absolute;left:0;top:-1px;font-family:var(--mono);color:var(--accent);font-size:18px}
.steps{list-style:none;counter-reset:s;display:grid;border-top:1px solid var(--line)}
.steps li{counter-increment:s;display:grid;grid-template-columns:56px 1fr;gap:12px;padding:22px 0;border-bottom:1px solid var(--line)}
.steps li::before{content:counter(s,decimal-leading-zero);font-size:13px;color:var(--accent);padding-top:3px}
.steps b{display:block;font-family:var(--sans);font-weight:500;font-size:18px;margin-bottom:6px;letter-spacing:-.01em}
.steps span{font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--mut)}
.tool-link{margin-top:28px;padding:20px;border:1px solid var(--line);display:flex;gap:14px;align-items:flex-start}
.tool-link svg{color:var(--accent);margin-top:4px}
.tool-link a{font-family:var(--sans);font-size:16px;line-height:1.55}
.tool-link a:hover{color:var(--accent)}
.nap{list-style:none;border-top:1px solid var(--line);margin-top:28px}
.nap li{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--mut)}
.nap li svg{font-size:18px}
.nap a{min-height:44px;display:inline-flex;align-items:center}
.nap a:hover{color:var(--accent)}
.sv-fig{margin:32px 0 0;border:1px solid var(--line)}
.legal-upd{margin-top:48px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;color:var(--dim)}
.legal h2{font-size:clamp(1.3rem,2.4vw,1.7rem);margin:48px 0 14px}
.legal h2:first-child{margin-top:0}
.legal ul{padding-left:20px}
.legal li{margin:6px 0}

/* ---------- 404 ---------- */
.nf{min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:calc(var(--top) + var(--hdr)) 0 64px}
.nf__n{font-family:var(--mono);font-size:clamp(7rem,26vw,22rem);line-height:.85;letter-spacing:-.06em;margin-bottom:28px}
.nf .lead{margin:0 auto 40px}
.nf .btns{justify-content:center}

/* ---------- ferramentas: blocos comuns ---------- */
.tool{border:1px solid var(--line);background:var(--panel)}
.tool__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.tool__grid>*{padding:32px}
.tool__grid>*+*{border-left:1px solid var(--line)}
@media (max-width:900px){.tool__grid{grid-template-columns:minmax(0,1fr)}.tool__grid>*+*{border-left:0;border-top:1px solid var(--line)}.tool__grid>*{padding:20px}}
.q{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin:24px 0 12px}
.q:first-child{margin-top:0}
.q small{text-transform:none;letter-spacing:0;color:var(--dim);margin-left:6px}
.field+.field,.field+fieldset,fieldset+fieldset,fieldset+.field{margin-top:24px}
fieldset.field{border:0;margin:0;padding:0;min-width:0}
.field label output,.field label + output{float:right;color:var(--fg);text-transform:none;letter-spacing:0;font-size:14px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer;--fill:50%}
input[type=range]::-webkit-slider-runnable-track{height:1px;background:linear-gradient(to right,var(--accent) var(--fill),var(--line-2) var(--fill))}
input[type=range]::-moz-range-track{height:1px;background:var(--line-2)}
input[type=range]::-moz-range-progress{height:1px;background:var(--accent)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-8px;background:var(--fg);border:0}
input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--fg);border:0;border-radius:0}
input[type=range]:focus-visible{outline:1px solid var(--accent);outline-offset:4px}
.range-marks{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);margin-top:4px}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label{min-height:44px;display:inline-flex;align-items:center;padding:8px 16px;border:1px solid var(--line-2);font-size:13px;cursor:pointer;color:var(--mut);transition:border-color .15s,color .15s,background-color .15s;text-transform:none;letter-spacing:0}
.seg label:hover{border-color:var(--fg);color:var(--fg)}
.seg input:checked+label{background:var(--fg);border-color:var(--fg);color:#000}
.seg input:focus-visible+label{outline:1px solid var(--accent);outline-offset:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line-2);font-size:13px;color:var(--mut);transition:border-color .15s,color .15s,background-color .15s;font-family:var(--mono)}
.chip:hover{border-color:var(--fg);color:var(--fg)}
.chip.is-on{background:var(--fg);border-color:var(--fg);color:#000}
.chip .ck{display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid currentColor;font-size:10px;line-height:1}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--line-2);color:var(--fg)}
.badge--demo{border-color:var(--warn);color:var(--warn)}
.badge--live i{width:6px;height:6px;background:var(--accent)}
.bar{display:block;height:4px;background:rgba(255,255,255,.08);position:relative;overflow:hidden}
.bar i{position:absolute;inset:0 auto 0 0;width:var(--v,0%);background:var(--fg);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.bar i.hot{background:var(--bad)}

/* raio-x */
.gauge{position:relative;max-width:300px;margin:0 auto 8px;text-align:center;--gc:var(--accent)}
.gauge__svg{width:100%;height:auto;display:block}
.gauge__track,.gauge__val{fill:none;stroke-width:6}
.gauge__track{stroke:rgba(255,255,255,.1)}
.gauge__val{stroke:var(--gc);stroke-dasharray:252;stroke-dashoffset:252;transition:stroke-dashoffset .7s cubic-bezier(.2,.7,.2,1),stroke .3s}
.gauge__ticks line{stroke:rgba(255,255,255,.25);stroke-width:1}
.gauge__read{position:absolute;left:0;right:0;top:46%;display:flex;justify-content:center;align-items:baseline;gap:4px}
.gauge__n{font-size:clamp(3rem,6vw,4.5rem);line-height:1;letter-spacing:-.04em}
.gauge__max{color:var(--dim);font-size:14px}
.gauge__lbl{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--gc);margin-top:6px}
.rx__result{display:grid;gap:24px;align-content:start}
.rx__cost{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;display:grid;gap:6px}
.rx__cost-l{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
.rx__cost-n{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.03em;line-height:1}
.rx__cost-s{font-size:13px;color:var(--dim)}
.rx__tips{list-style:none;display:grid;gap:10px}
.rx__tips li{padding-left:18px;position:relative;font-size:14px;color:var(--mut)}
.rx__tips li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--c,var(--accent))}

/* pré-diagnóstico: terminal */
.term{display:flex;flex-direction:column;min-height:460px;background:#000}
.term__bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:12px;color:var(--dim)}
.term__bar i{width:8px;height:8px;border:1px solid var(--line-2)}
.term__bar span{margin-left:8px}
.term__body{flex:1;padding:18px 16px;font-size:13px;line-height:1.7;overflow-y:auto;max-height:620px}
.term__body .p{color:var(--accent)}
.term__body .dim{color:var(--dim)}
.term__body .ok{color:var(--accent)}
.term__body .w{color:var(--warn)}
.caret{display:inline-block;width:8px;height:15px;background:var(--fg);vertical-align:middle;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.res{display:grid;gap:10px;margin-top:14px}
.res-card{border:1px solid var(--line);padding:14px;font-size:13px;color:var(--mut);display:grid;gap:4px}
.res-card b{color:var(--fg);font-weight:400;font-size:14px}
.res-card .lk{font-size:11px;letter-spacing:.06em;color:var(--accent)}
.res .btn{margin-top:6px}
.diag__pick .btn{margin-top:28px}

/* pc gamer */
.rig__photo{margin:28px 0 0;border:1px solid var(--line);position:relative;overflow:hidden}
.rig__photo img{width:100%;aspect-ratio:1/1;object-fit:cover}
.rig__photo figcaption{position:absolute;left:12px;bottom:10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg);background:rgba(0,0,0,.6);padding:4px 8px}
.brands{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.brand-tag{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border:1px solid var(--line);font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.brand-tag img{max-height:20px;width:auto}
.rig__head{display:grid;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.rig__name{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.rig__goal{font-size:14px;color:var(--mut)}
.parts{list-style:none;display:grid;margin:8px 0 20px}
.parts li{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;animation:fadeIn .35s both}
.parts li span{font-size:11px;letter-spacing:.08em;color:var(--dim);padding-top:2px}
.parts li b{font-weight:400}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.meters{display:grid;gap:12px;margin-bottom:24px}
.meter{display:grid;grid-template-columns:150px 1fr 36px;gap:12px;align-items:center;font-size:12px;color:var(--mut)}
.meter span:last-child{text-align:right;color:var(--fg)}
.meters .foot-note{font-size:11px;color:var(--dim)}
@media (max-width:520px){.parts li,.meter{grid-template-columns:110px 1fr}.meter span:last-child{display:none}}

/* central de monitoramento (DEMONSTRAÇÃO) */
.noc__top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.noc__brand{font-size:13px;color:var(--mut)}
.noc__brand b{color:var(--fg);font-weight:400}
.noc__badges{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.noc__clock{font-size:12px;color:var(--mut);min-width:64px;text-align:right}
.noc__body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.noc__col{padding:20px;min-width:0}
.noc__col--side{border-left:1px solid var(--line);display:grid;gap:16px;align-content:start}
.noc__kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);margin-bottom:16px}
.kpi{padding:14px;display:grid;gap:4px}
.kpi+.kpi{border-left:1px solid var(--line)}
.kpi__n{font-size:clamp(1.4rem,2.2vw,2rem);letter-spacing:-.03em;line-height:1}
.kpi__n small{font-size:.5em;color:var(--mut);margin-left:2px}
.kpi__l{font-size:11px;color:var(--dim)}
.hosts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.host{display:grid;gap:8px;padding:12px;border:1px solid var(--line);text-align:left;transition:border-color .15s}
.host:hover{border-color:var(--line-2)}
.host.is-sel{border-color:var(--fg)}
.host.is-alert{border-color:var(--warn)}
.host__row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.host__n{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.host__s{width:7px;height:7px;background:var(--accent);flex:none}
.host.is-alert .host__s{background:var(--warn)}
.host.is-down .host__s{background:var(--bad)}
.host__meta{display:flex;justify-content:space-between;font-size:11px;color:var(--dim)}
.host-detail{border:1px solid var(--line);padding:16px;display:grid;gap:10px;font-size:12px}
.host-detail h4{font-family:var(--mono);font-weight:400;font-size:13px;letter-spacing:0;display:flex;justify-content:space-between;gap:8px}
.hd-row{display:grid;grid-template-columns:90px 1fr 40px;gap:10px;align-items:center;color:var(--mut)}
.hd-row span:last-child{text-align:right;color:var(--fg)}
.hd-foot{font-size:11px;color:var(--dim)}
.feed{border:1px solid var(--line);height:220px;overflow:hidden;padding:8px 12px;font-size:12px}
.ev{display:grid;grid-template-columns:44px 14px 1fr;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);color:var(--mut);animation:fadeIn .4s both}
.ev time{color:var(--dim)}
.ev b{font-weight:400;color:var(--accent)}
.ev.warn b{color:var(--warn)}
.ev.bad b{color:var(--bad)}
.ev span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn--alert{border-color:var(--warn);color:var(--warn)}
.btn--alert:hover{background:var(--warn);color:#000}
.btn:disabled{opacity:.4;cursor:not-allowed}
.incident{border-top:1px solid var(--line);padding:20px}
.incident__title{display:flex;align-items:center;gap:10px;font-size:14px;margin-bottom:14px}
.incident__title .sev{width:8px;height:8px;background:var(--warn)}
.incident.is-done .sev{background:var(--accent)}
.incident__steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.incident__steps li{border:1px solid var(--line);padding:12px;display:grid;gap:6px;font-size:12px;color:var(--dim);transition:border-color .3s,color .3s}
.incident__steps li b{font-weight:400;color:var(--fg);font-size:11px;letter-spacing:.06em}
.incident__steps li.on{opacity:1;border-color:var(--warn)}
.incident__steps li.done{opacity:1;border-color:var(--line-2)}
@media (max-width:1000px){.noc__body{grid-template-columns:1fr}.noc__col--side{border-left:0;border-top:1px solid var(--line)}.hosts{grid-template-columns:repeat(2,minmax(0,1fr))}.incident__steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.noc__kpis{grid-template-columns:1fr 1fr}.kpi:nth-child(3){border-left:0}.kpi:nth-child(n+3){border-top:1px solid var(--line)}.incident__steps{grid-template-columns:1fr}}
.emp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap);margin-top:var(--gap)}
@media (max-width:900px){.emp-grid{grid-template-columns:1fr}}

/* globo 3D no hero da central */
.hero--globe .hero__copy{max-width:640px}
.hero--globe .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end}
.core{position:relative;aspect-ratio:1/1;width:100%;max-width:560px;justify-self:end;touch-action:pan-y;cursor:grab}
.core:active{cursor:grabbing}
.core canvas{position:absolute;inset:0;width:100%;height:100%}
.core__hud{position:absolute;font-size:10px;letter-spacing:.08em;color:var(--dim);line-height:1.5}
.core__hud--tl{left:0;top:0}.core__hud--tr{right:0;top:0}.core__hud--bl{left:0;bottom:0}.core__hud--br{right:0;bottom:0;text-align:right}
@media (max-width:900px){.hero--globe .wrap{grid-template-columns:1fr}.core{max-width:420px;justify-self:center;margin-top:8px}}


/* ---------- movimento reduzido: desliga tudo ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .pcard:hover .pcard__bg{transform:none}
}
.plus-list b{font-weight:500;color:var(--fg)}
/* grade com 1º card largo: o último card, se ficar sozinho, ocupa a linha toda */
.pgrid--lead .pcard:last-child:nth-child(even){grid-column:1/-1}
@media (max-width:420px){.info .v{font-size:14px}.info a[data-mail]{font-size:13px}}
.tool__grid>*{min-width:0}
.term__body{min-width:0;overflow-wrap:anywhere}
.rx__cost-n{overflow-wrap:anywhere}
.btn--block{white-space:normal}
@media (max-width:520px){.btn{padding-inline:24px}}

/* =====================================================================
   R9b — A2: hero no celular (botões acima do dock)
   ===================================================================== */
@media (max-width:640px){
  .hero{padding-bottom:84px}                 /* centraliza acima do dock (~67px) */
  .hero--page{padding-bottom:100px}
}
@media (max-width:480px){
  .hero .h1{font-size:clamp(2.1rem,9vw,2.5rem)}
  .hero__eyebrow{font-size:11px;margin-bottom:14px}
  .hero__t{margin-bottom:16px}
  .hero__sub{font-size:14px;margin-bottom:22px}
  .hero__in .frame{padding:22px 10px}
  .hero--page{padding-top:calc(var(--hdr) + 20px)}
  .hero--page .h1{margin:12px 0 14px}
  .hero--page .lead{font-size:14px;margin-bottom:20px}
  .hero .btns{gap:10px}
  .hero .btn{padding-inline:20px}
}

/* =====================================================================
   Máscaras de linha (hero) — o texto do H1 não muda, só ganha <span>s
   ===================================================================== */
.l{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.l>span{display:block}
.gv-ln-mask{padding-bottom:.14em;margin-bottom:-.14em}
.gv-rule{position:absolute;left:0;right:0;height:1px;background:var(--line);transform-origin:0 50%;pointer-events:none;z-index:1}
.prog{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
.qa{overflow:hidden}
.qa summary .pm{transition:transform .4s var(--saida)}
.qa[open] summary .pm{transform:rotate(180deg)}
.qa summary .pm::after{transition:transform .4s var(--saida)}
/* Lenis */
html.lenis,html.lenis body{height:auto}
.lenis-smooth{scroll-behavior:auto!important}
.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis-stopped{overflow:hidden}

/* =====================================================================
   R9b — ABERTURA (cortina). Só com .gv-js.gv-abre (classe posta pelo
   script inline do <head>) e só sem "reduzir movimento". Sem JS: nada.
   ===================================================================== */
.gv-cortina{display:none}
@counter-style gv3{system:extends decimal;pad:3 "0"}
@property --gvn{syntax:"<integer>";initial-value:0;inherits:false}

@keyframes gv-sobe{from{transform:translateY(110%)}}
@keyframes gv-sobe-curto{from{transform:translateY(28px)}}
@keyframes gv-desce{from{transform:translateY(-100%)}}
@keyframes gv-sobe-fixo{from{transform:translateY(170%)}}
@keyframes gv-escala{from{transform:scale(0)}}
@keyframes gv-assenta{from{transform:scale(1.16)}}
@keyframes gv-pano{to{transform:translateY(-100%);visibility:hidden}}
@keyframes gv-parallax{to{transform:translateY(70vh)}}
@keyframes gv-traca{to{stroke-dashoffset:0}}
@keyframes gv-preenche{to{stroke:var(--fg)}}
@keyframes gv-scan{0%{top:0;opacity:1}90%{opacity:1}100%{top:100%;opacity:0}}
@keyframes gv-some{to{opacity:0}}
@keyframes gv-logo{from{opacity:0;transform:scale(.96)}}
@keyframes gv-brilho{to{opacity:.5}}
@keyframes gv-conta{to{--gvn:100}}

@media (prefers-reduced-motion:no-preference){
  .gv-js.gv-abre .gv-cortina{display:block;position:fixed;inset:0;z-index:300;overflow:hidden;background:#000;color:var(--fg);
    animation:gv-pano .95s var(--pano) 1.45s forwards}
  .gv-ok .gv-cortina{display:none!important}
  .gv-cortina__in{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    animation:gv-parallax .95s var(--pano) 1.45s forwards}
  .gv-cortina__marca{display:grid;justify-items:center;gap:0;text-align:center}
  .gv-simbolo{position:relative;width:clamp(96px,11vw,132px);aspect-ratio:420/474;margin-bottom:28px}
  .gv-simbolo svg,.gv-logo{position:absolute;inset:0;width:100%;height:100%;display:block}
  .gv-simbolo svg{overflow:visible;animation:gv-some .35s var(--saida) .75s forwards}
  .gv-simbolo path{stroke:var(--accent);stroke-width:5;stroke-dasharray:1;stroke-dashoffset:1;
    animation:gv-traca .75s var(--saida) .1s forwards}
  .gv-simbolo path:nth-child(2){animation-delay:.2s}
  .gv-simbolo path:nth-child(3){animation-delay:.3s}
  .gv-logo{animation:gv-logo .35s var(--saida) .75s backwards}
  .gv-brilho{position:absolute;inset:-45%;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 22%,transparent),transparent);
    opacity:0;animation:gv-brilho .6s var(--saida) .75s forwards}
  /* o logo não chegou a tempo (ou falhou): fica o contorno */
  .gv-lsem .gv-simbolo svg{animation:none;opacity:1}
  .gv-lsem .gv-logo,.gv-lsem .gv-brilho{display:none}
  .gv-scan{position:absolute;left:-14px;right:-14px;top:0;height:1px;background:var(--accent);opacity:0;
    animation:gv-scan .7s cubic-bezier(.45,0,.55,1) .15s forwards}
  /* medidas fixas: a troca de fonte não mexe em nada (sem CLS) */
  .gv-cortina__nome{height:32px;overflow:hidden;font:500 24px/32px var(--sans);letter-spacing:-.02em;margin:0}
  .gv-cortina__apoio{height:18px;overflow:hidden;font:400 11px/18px var(--mono);letter-spacing:.14em;color:var(--mut);margin:6px 0 0}
  .gv-cortina__nome>span,.gv-cortina__apoio>span{display:block;animation:gv-sobe .7s var(--saida) .6s backwards}
  .gv-cortina__apoio>span{animation-delay:.8s}
  .gv-cortina .x{position:absolute;width:32px;height:32px;opacity:.35;animation:gv-escala .5s var(--saida) .2s backwards}
  .gv-cortina .x::before,.gv-cortina .x::after{content:"";position:absolute;background:var(--fg)}
  .gv-cortina .x::before{left:50%;top:0;bottom:0;width:1px}
  .gv-cortina .x::after{top:50%;left:0;right:0;height:1px}
  .gv-cortina .x--tl{left:24px;top:24px}.gv-cortina .x--tr{right:24px;top:24px}
  .gv-cortina .x--bl{left:24px;bottom:24px}.gv-cortina .x--br{right:24px;bottom:24px}
  .gv-cont{position:absolute;right:72px;bottom:30px;height:20px;font:400 13px/20px var(--mono);color:var(--mut);
    counter-reset:gvn var(--gvn);animation:gv-conta 1.25s cubic-bezier(.5,0,.2,1) .1s forwards}
  .gv-cont::after{content:counter(gvn,gv3)}

  /* --- entrada do hero: só translateY (sem opacidade, sem desfoque) --- */
  .gv-js .a-l>span{animation:gv-sobe .6s var(--saida) .1s backwards}
  .gv-js .a-t{animation:gv-sobe-curto .6s var(--saida) .1s backwards}
  .gv-js .hero .frame .x,.gv-js .cta-x{animation:gv-escala .5s var(--saida) .2s backwards}
  .gv-js .hero .hero__bg img{animation:gv-assenta 1.2s var(--saida) backwards}
  .gv-js .a-1>span,.gv-js .a-1.a-t{animation-delay:.1s}
  .gv-js .a-2>span{animation-delay:.15s}
  .gv-js .a-3>span{animation-delay:.22s}
  .gv-js .a-4{animation-delay:.3s}
  .gv-js .a-5{animation-delay:.38s}

  /* com a cortina: tudo começa quando o pano sobe */
  .gv-js.gv-abre .hero .hero__bg img{animation:gv-assenta 2.2s var(--saida) 1.3s backwards}
  .gv-js.gv-abre .a-l>span{animation-duration:.9s}
  .gv-js.gv-abre .a-t{animation-duration:.8s}
  .gv-js.gv-abre .a-1>span,.gv-js.gv-abre .a-1.a-t{animation-delay:1.8s}
  .gv-js.gv-abre .a-2>span{animation-delay:1.9s}
  .gv-js.gv-abre .a-3>span{animation-delay:2s}
  .gv-js.gv-abre .a-4{animation-delay:2.1s}
  .gv-js.gv-abre .a-5{animation-delay:2.2s}
  .gv-js.gv-abre .hero .frame .x{animation:gv-escala .7s var(--saida) 2s backwards}
  .gv-js.gv-abre .site-top{animation:gv-desce .8s var(--saida) 1.9s backwards}
  .gv-js.gv-abre .fab,.gv-js.gv-abre .dock{animation:gv-sobe-fixo .8s var(--saida) 2.3s backwards}
  /* banner de cookies: nunca por cima da cortina; entra quando o pano sai */
  .gv-js .gvc__in{transition:transform .8s var(--saida)}
  .gv-js.gv-abre:not(.gv-ok) .gvc__in{transform:translateY(160%)}

  /* --- transição entre páginas (View Transitions, sem JS) --- */
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:gv-vt-sai .35s var(--saida) both}
  ::view-transition-new(root){animation:gv-vt-entra .55s var(--saida) both}
  .site-top{view-transition-name:topo}
  .fab{view-transition-name:fab}
  .dock{view-transition-name:dock}
}
@keyframes gv-vt-sai{to{transform:translateY(-40px);opacity:0}}
@keyframes gv-vt-entra{from{transform:translateY(40px);opacity:0}}
.incident__steps li.on,.incident__steps li.done{color:var(--mut)}
/* A3 — celular: card estreito, o texto ocupa quase toda a largura → véu mais firme atrás dele */
@media (max-width:760px){
  .pcard__ph::after{background:radial-gradient(ellipse 95% 60% at 50% 50%,rgba(0,0,0,.72),rgba(0,0,0,.4) 80%,rgba(0,0,0,.25))}
  .pgrid--4 .pcard__ph::after,.pgrid--3 .pcard__ph::after{background:linear-gradient(to top,rgba(0,0,0,.86),rgba(0,0,0,.6) 55%,rgba(0,0,0,.15) 90%)}
}

/* =====================================================================
   R9d — "Quem confia" colado nos números (#empresas)
   ===================================================================== */
.confia{margin-top:20px;border:1px solid var(--line);background:var(--panel)}
.confia__h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 32px;padding:20px 24px;border-bottom:1px solid var(--line)}
.confia__r{font-size:12px;font-weight:400;letter-spacing:.1em;line-height:1.4}
.confia__t{font-size:13px;color:rgba(244,246,242,.7);max-width:60ch}
.confia__v{position:relative;overflow:hidden}
.confia__trilho{display:block}
.confia__l{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.confia__l li{min-height:150px;display:flex;align-items:center;justify-content:center;padding:28px;border-left:1px solid var(--line)}
.confia__l li:first-child{border-left:0}
.confia__l img{max-height:52px;width:auto;filter:brightness(0) invert(1);opacity:.7;transition:opacity .15s}
.confia__l li:hover img{opacity:1}
.confia__dup{display:none}
@media (max-width:899px){
  /* celular: faixa contínua (marquee), ~30s por volta; a lista duplicada fecha o loop */
  .confia__h{padding:16px}
  .confia__v::before,.confia__v::after{content:"";position:absolute;top:0;bottom:0;width:48px;z-index:1;pointer-events:none}
  .confia__v::before{left:0;background:linear-gradient(90deg,var(--panel),transparent)}
  .confia__v::after{right:0;background:linear-gradient(270deg,var(--panel),transparent)}
  .confia__trilho{display:flex;width:max-content;animation:gv-marquee 30s linear infinite}
  .gv-js .confia:not(.is-vis) .confia__trilho{animation-play-state:paused}
  .confia__v:hover .confia__trilho,.confia__v:active .confia__trilho{animation-play-state:paused}
  .confia__l,.confia__dup{display:flex}
  .confia__l li{min-height:96px;height:96px;width:168px;padding:20px;border-left:1px solid var(--line)}
  .confia__l li:first-child{border-left:1px solid var(--line)}
  .confia__l img{max-height:40px}
}
@keyframes gv-marquee{to{transform:translateX(-50%)}}
@media (max-width:899px) and (prefers-reduced-motion:reduce){
  .confia__trilho{animation:none;width:auto;display:block}
  .confia__l.confia__dup{display:none}
  .confia__l{display:grid;grid-template-columns:1fr 1fr}
  .confia__l li{width:auto;border-left:0;border-top:1px solid var(--line)}
  .confia__l li:nth-child(even){border-left:1px solid var(--line)}
  .confia__l li:nth-child(-n+2){border-top:0}
  .confia__v::before,.confia__v::after{display:none}
}

/* R9d — Portal da equipe no menu do celular (discreto, por último) */
.menu__portal{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:20px;font-family:var(--mono);font-size:13px;color:rgba(244,246,242,.7)}
.menu__portal svg{font-size:16px}
.menu__portal:hover{color:var(--fg)}
@media (prefers-reduced-motion:reduce){.hdr,.hdr *{transition:none!important}}
/* R10 — link da família na faixa do topo (fica visível quando o telefone some) */
.topbar__right .topbar__fam{display:inline-flex;color:rgba(244,246,242,.8)}
.topbar__right .topbar__fam:hover{color:var(--accent)}
@media (max-width:1100px){.topbar__right .topbar__fam{display:inline-flex}}
