/* =====================================================================
   GALVÃO SISTEMAS · gs.css — sistema visual v3 do galvao-site (COPIADO de
   /opt/galvao-site/static/css/v3.css em 2026-10-08) com os tokens da Sistemas
   (CONTEUDO.md §2) + componentes próprios no fim do arquivo.
   ===================================================================== */
/* =====================================================================
   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:#04060C;
  --fg:#E7F3FA;
  --panel:#0A0F1A;
  --panel-2:#0E1524;
  --line:rgba(125,211,252,.10);
  --line-2:rgba(125,211,252,.24);
  --mut:rgba(231,243,250,.70);
  --dim:rgba(231,243,250,.58);
  --accent:#00D9FF;            /* --azul-neon */
  --azul-neon:#00D9FF;
  --azul-medio:#0A9BEB;
  --azul-profundo:#0A4FD8;
  --grad:linear-gradient(135deg,#00D9FF 0%,#0A9BEB 55%,#0A4FD8 100%);
  --on-accent:#04060C;
  --ok:#00D9FF;
  --warn:#f2c14e;
  --bad:#ff6b6b;
  --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:1440px;
  --gut:20px;
  --sec:144px;
  --gap:72px;
  --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:var(--on-accent)}
  .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:var(--bg)}
.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(231,243,250,.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(231,243,250,.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(231,243,250,.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(4,6,12,.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(4,6,12,.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(231,243,250,.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(4,6,12,.82)}
.gv-js .site-top[data-tom=ciano] .hdr{background:rgba(4,6,12,.9)}
.gv-js .site-top[data-tom=claro] .hdr{background:rgba(231,243,250,.92);color:#0A0F1A;border-bottom-color:rgba(4,6,12,.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:#0A0F1A}
.gv-js .site-top[data-tom=claro] .kbd{color:rgba(11,13,14,.72);border-color:rgba(4,6,12,.15)}
.gv-js .site-top[data-tom=claro] .burger i{background:#0A0F1A}
.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:var(--bg);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(4,6,12,.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(4,6,12,.62),rgba(4,6,12,.28) 72%,rgba(4,6,12,.18))}
.pgrid--4 .pcard__ph::after,.pgrid--3 .pcard__ph::after{background:linear-gradient(to top,rgba(4,6,12,.82),rgba(4,6,12,.5) 45%,rgba(4,6,12,.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(231,243,250,.82)}
.pcard__n{position:absolute;top:20px;left:24px;font-size:12px;color:rgba(231,243,250,.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:var(--bg);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:var(--bg)}
.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(231,243,250,.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(4,6,12,.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(4,6,12,.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:var(--on-accent);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:var(--on-accent)}
.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:var(--on-accent)}
.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:var(--bg)}
.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(4,6,12,.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:var(--on-accent)}
.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:var(--bg);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(4,6,12,.72),rgba(4,6,12,.4) 80%,rgba(4,6,12,.25))}
  .pgrid--4 .pcard__ph::after,.pgrid--3 .pcard__ph::after{background:linear-gradient(to top,rgba(4,6,12,.86),rgba(4,6,12,.6) 55%,rgba(4,6,12,.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(231,243,250,.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(231,243,250,.7)}
.menu__portal svg{font-size:16px}
.menu__portal:hover{color:var(--fg)}
@media (prefers-reduced-motion:reduce){.hdr,.hdr *{transition:none!important}}

/* =====================================================================
   GALVÃO SISTEMAS — componentes próprios (CONTEUDO.md §2–4)
   ===================================================================== */
body.gs{background:var(--bg)}
.gs .brand img{width:auto;height:30px}
@media (max-width:760px){.gs .brand img{height:26px}}
.gs-rot{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:lowercase;color:var(--accent)}
.gs-rot--cur::after,.hero__eyebrow>span::after{content:"▍";margin-left:4px;color:var(--accent);animation:blink 1.1s steps(1) infinite}
.gs-selo{display:inline-flex;align-items:center;gap:6px;width:max-content;font:400 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  padding:6px 10px;border:1px solid var(--line-2);color:var(--fg);background:rgba(4,6,12,.6)}
.gs-selo--warn{border-color:rgba(242,193,78,.6);color:var(--warn)}
.gs-selo--grande{font-size:13px;padding:10px 14px;border-color:rgba(242,193,78,.6);color:var(--warn)}
.gs-selo--grande span{color:var(--mut);letter-spacing:.04em;text-transform:none}

/* botão primário: o gradiente da marca com texto escuro não passa AA (2,7:1 no azul profundo).
   Fica ciano sólido + texto #04060C (≈ 11:1) e o gradiente vira só o brilho/borda. */
.btn--p{background-color:var(--azul-neon);color:var(--on-accent);border-color:var(--azul-neon);
  box-shadow:0 0 0 1px rgba(0,217,255,.25),0 12px 32px -14px rgba(10,79,216,.95)}
.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.btn--p:disabled:hover{background-size:100% 0}

/* ---------- hero ---------- */
.gs-hero{min-height:100svh;display:flex;align-items:center;justify-content:stretch;padding:calc(var(--top) + var(--hdr) + 40px) 0 72px}
.gs-hero__fundo{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60% 55% at 78% 45%,rgba(10,79,216,.28),transparent 70%),radial-gradient(40% 40% at 70% 40%,rgba(0,217,255,.12),transparent 70%)}
.gs-hero__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:center}
.gs-hero__copy{text-align:left}
.gs-hero .hero__t{margin-bottom:24px}
.gs-hero .hero__sub{margin:0 0 32px;max-width:60ch}
.gs-hero .btns{justify-content:flex-start}
.gs-hero .hero__eyebrow{color:var(--accent);margin-bottom:22px}
.gs-confianca{margin-top:28px;font:400 12px/1.5 var(--mono);color:var(--mut)}
@media (max-width:980px){.gs-hero__grid{grid-template-columns:minmax(0,1fr);gap:40px}}
@media (max-width:640px){.gs-hero{padding-bottom:96px}}

/* terminal que vira tela de sistema (estado final = painel; sem JS e com reduzir movimento fica o painel) */
.gs-term{position:relative;border:1px solid var(--line-2);background:var(--panel);box-shadow:0 30px 80px -40px rgba(10,79,216,.7)}
.gs-term__bar{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);font:400 11px var(--mono);color:var(--dim)}
.gs-term__bar i{width:8px;height:8px;border:1px solid var(--line-2)}
.gs-term__bar span{margin-left:6px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-term__bar .gs-selo{padding:4px 8px;font-size:10px}
.gs-term__body{position:relative;height:300px;overflow:hidden}
.gs-term__linhas{position:absolute;inset:0;padding:20px 18px;font:400 13px/1.9 var(--mono);color:var(--fg);opacity:0;transition:opacity .5s var(--saida)}
.gs-term__linhas p{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-term__linhas .p{color:var(--accent)}
.gs-term__linhas .ok{color:var(--accent)}
.gs-painel{position:absolute;inset:0;padding:18px;display:flex;flex-direction:column;gap:14px;transition:opacity .6s var(--saida),transform .6s var(--saida)}
.gs-term.is-term .gs-term__linhas{opacity:1}
.gs-term.is-term .gs-painel{opacity:0;transform:translateY(14px)}
.gs-painel__top{display:flex;justify-content:space-between;align-items:center;font:400 12px var(--mono);color:var(--mut)}
.gs-painel__dot{width:8px;height:8px;background:var(--accent);box-shadow:0 0 12px var(--accent)}
.gs-painel__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gs-painel__cards div{border:1px solid var(--line);padding:12px;display:grid;gap:6px;background:rgba(4,6,12,.5);min-width:0}
.gs-painel__l{font:400 10.5px/1.3 var(--mono);color:var(--mut)}
.gs-painel__cards b{font:500 clamp(1.1rem,2vw,1.5rem)/1 var(--sans);letter-spacing:-.02em;white-space:nowrap}
.gs-painel__barras{flex:1;display:flex;align-items:flex-end;gap:8px;border-bottom:1px solid var(--line);min-height:70px}
.gs-painel__barras i{flex:1;height:var(--h);background:var(--grad);opacity:.8}
.gs-painel__nota{font:400 10.5px var(--mono);color:var(--mut);margin:0}
@media (max-width:520px){.gs-term__body{height:280px}.gs-painel__cards{grid-template-columns:1fr 1fr}.gs-painel__cards div:last-child{grid-column:1/-1}.gs-term__linhas{font-size:11.5px}}

/* ---------- dores (vira "> resolvido") ---------- */
.dores{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.dor{position:relative;border:1px solid var(--line);background:var(--panel);min-height:230px}
.dor__frente,.dor__verso{padding:24px;display:flex;flex-direction:column;gap:14px}
.dor__n{font:400 12px var(--mono);color:var(--dim)}
.dor__q{font-family:var(--sans);font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.35;letter-spacing:-.01em}
.dor__virar,.dor__voltar{display:none;align-self:flex-start;align-items:center;gap:8px;min-height:44px;font:400 12px var(--mono);color:var(--accent)}
.dor__verso{border-top:1px dashed var(--line-2)}
.dor__ok{font:400 13px var(--mono);color:var(--accent)}
.dor__s{font-size:15px;line-height:1.5;color:var(--fg)}
.dor__s b{font-weight:500}
.dor__acoes{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:auto}
/* com JS: frente e verso no mesmo lugar; vira no hover/foco/toque */
.gv-js .dor{display:grid}
.gv-js .dor__frente,.gv-js .dor__verso{grid-area:1/1}
.gv-js .dor__verso{border-top:0;background:linear-gradient(180deg,rgba(0,217,255,.06),transparent 60%);opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .45s var(--saida),transform .45s var(--saida),visibility .45s}
.gv-js .dor__frente{transition:opacity .45s var(--saida),transform .45s var(--saida)}
.gv-js .dor__virar,.gv-js .dor__voltar{display:inline-flex}
.gv-js .dor.is-on .dor__verso{opacity:1;visibility:visible;transform:none}
.gv-js .dor.is-on .dor__frente{opacity:0;transform:translateY(-10px);pointer-events:none}
.gv-js .dor.is-on{border-color:rgba(0,217,255,.35)}
@media (hover:hover) and (pointer:fine){
  .gv-js .dor:hover .dor__verso{opacity:1;visibility:visible;transform:none}
  .gv-js .dor:hover .dor__frente{opacity:0;transform:translateY(-10px)}
}
@media (max-width:980px){.dores{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.dores{grid-template-columns:1fr}.dor{min-height:200px}}

/* ---------- serviços ---------- */
.svc-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.svc{border:1px solid var(--line);background:var(--panel);padding:28px;display:flex;flex-direction:column;gap:12px;transition:border-color .2s}
.svc:hover{border-color:var(--line-2)}
.svc__ic{width:32px;height:32px;color:var(--accent)}
.svc h3{font-size:1.35rem;font-weight:500;letter-spacing:-.02em;margin-top:8px}
.svc__d{font-family:var(--sans);font-size:16px;line-height:1.45;color:var(--fg)}
.svc__det{font-size:12.5px;line-height:1.6;color:var(--mut)}
.svc .link{margin-top:auto;align-self:flex-start}
.svc--aberto{border-color:rgba(0,217,255,.55);background:linear-gradient(160deg,rgba(0,217,255,.08),rgba(10,79,216,.06) 60%,var(--panel))}
.svc--aberto .btn{margin-top:auto;align-self:flex-start}
@media (max-width:980px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.svc-grid{grid-template-columns:1fr}.svc{padding:22px}}

/* ---------- soluções prontas ---------- */
.rest{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);border:1px solid var(--line-2);background:linear-gradient(140deg,rgba(10,79,216,.14),var(--panel) 55%)}
.rest>*{padding:40px}
.rest__mods{border-left:1px solid var(--line)}
.rest__txt{display:flex;flex-direction:column;gap:16px}
.rest__nome{font:400 13px var(--mono);color:var(--accent)}
.rest__t{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.08}
.rest__p{font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--mut)}
.rest__linha{font:400 12px var(--mono);color:var(--mut)}
.chips-mod{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}
.chips-mod li{border:1px solid var(--line);padding:12px;font-size:13px;color:var(--fg);background:rgba(4,6,12,.4)}
.rest__nota{font-size:12px;color:var(--mut)}
.embreve{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:16px}
.eb{border:1px dashed var(--line-2);padding:24px;display:flex;flex-direction:column;gap:12px}
.eb h3{font-size:1.15rem;font-weight:500}
.eb p:not(.gs-selo){font-size:13px;color:var(--mut)}
.eb .link{margin-top:auto;align-self:flex-start}
@media (max-width:1100px){.embreve{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.rest{grid-template-columns:1fr}.rest__mods{border-left:0;border-top:1px solid var(--line)}.rest>*{padding:24px}}
@media (max-width:640px){.embreve{grid-template-columns:1fr}.chips-mod{grid-template-columns:1fr}}

/* ---------- demonstração (restaurante) ---------- */
.demo{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);border:1px solid var(--line-2);background:var(--panel)}
.demo__painel{padding:20px;min-width:0}
.demo__top{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;margin-bottom:16px}
.demo__kpi{border:1px solid var(--line);padding:10px 14px;display:grid;gap:4px;min-width:120px}
.demo__kpi span{font:400 11px var(--mono);color:var(--mut)}
.demo__kpi b{font:500 1.25rem/1 var(--sans)}
.demo__sim{margin-left:auto;align-self:center}
.demo__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.demo__col{border:1px solid var(--line);background:rgba(4,6,12,.45);min-height:260px;padding:10px;min-width:0}
.demo__ch{display:flex;justify-content:space-between;font:400 11px var(--mono);color:var(--mut);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.demo__ch span{color:var(--fg)}
.demo__lista{list-style:none;display:grid;gap:8px}
.ped{border:1px solid var(--line);background:var(--panel);padding:10px;display:grid;gap:3px;font-size:12px}
.ped__n{font-family:var(--mono);color:var(--accent)}
.ped__c{font-family:var(--mono);font-size:10.5px;color:var(--mut)}
.ped__i{color:var(--fg)}
.ped__t{font-weight:500}
.ped.is-novo{border-color:var(--accent);box-shadow:0 0 0 1px rgba(0,217,255,.25)}
.demo__chat{border-left:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.demo__chat-t{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line);font:400 12px var(--mono);color:var(--mut)}
.demo__chat-t svg{color:var(--accent);font-size:16px}
.demo__msgs{flex:1;max-height:360px;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.msg{max-width:88%;padding:9px 12px;font-size:13px;line-height:1.45}
.msg--cli{align-self:flex-end;background:rgba(0,217,255,.14);border:1px solid rgba(0,217,255,.3)}
.msg--bot{align-self:flex-start;background:var(--panel-2);border:1px solid var(--line)}
.demo__cta{margin-top:24px}
@media (max-width:1000px){.demo{grid-template-columns:1fr}.demo__chat{border-left:0;border-top:1px solid var(--line)}}
@media (max-width:640px){.demo__cols{grid-template-columns:1fr 1fr}.demo__col{min-height:180px}.demo__sim{margin-left:0;width:100%}.demo__kpi{flex:1;min-width:0}}

/* ---------- processo (fio que enche ao rolar; sem JS fica cheio) ---------- */
.proc{list-style:none;position:relative;display:grid;gap:0;padding-left:0;--p:1}
.gv-js .proc{--p:0}
.proc::before,.proc::after{content:"";position:absolute;left:23px;top:8px;bottom:8px;width:1px}
.proc::before{background:var(--line-2)}
.proc::after{background:var(--grad);transform-origin:50% 0;transform:scaleY(var(--p))}
.proc li{position:relative;display:grid;grid-template-columns:48px 1fr;gap:20px;padding:20px 0}
.proc__n{position:relative;z-index:1;width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line-2);background:var(--bg);font:400 13px var(--mono);color:var(--accent)}
.proc b{display:block;font:500 1.2rem/1.2 var(--sans);letter-spacing:-.01em;margin:6px 0}
.proc span:not(.proc__n){font-family:var(--sans);font-size:16px;line-height:1.55;color:var(--mut)}
@media (min-width:1000px){.proc{grid-template-columns:1fr 1fr;column-gap:var(--gap)}.proc::before,.proc::after{display:none}}

/* ---------- CTA + formulário ---------- */
.gs-cta{background:radial-gradient(50% 60% at 15% 30%,rgba(10,79,216,.16),transparent 70%)}
.gs-cta__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--gap);align-items:start}
.gs-cta__txt{display:grid;gap:20px}
.gs-cta .cta__t{font-size:clamp(2.1rem,4.4vw,3.6rem)}
.form__2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field .opc{text-transform:none;letter-spacing:0;color:var(--dim)}
.field input,.field select,.field textarea{background:var(--bg)!important}
.aceite{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--mut);cursor:pointer;min-height:44px}
.aceite input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:var(--accent)}
.aceite a{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.aceite.is-erro span{color:var(--bad)}
.form__aviso{font-size:12px;color:var(--warn)}
.form__note{font-size:12px;color:var(--mut)}
@media (max-width:900px){.gs-cta__grid{grid-template-columns:1fr}}
@media (max-width:520px){.form__2{grid-template-columns:1fr}}

/* ---------- rodapé com 5 colunas ---------- */
.foot__cols--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.foot__logo{width:80px}
@media (max-width:1100px){.foot__cols--5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.foot__cols--5{grid-template-columns:1fr 1fr}}

/* ---------- dock: WhatsApp · Orçamento · Menu ---------- */
@media (max-width:640px){
  .dock{grid-template-columns:1.3fr 1fr 1fr}
  .dock button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border:1px solid var(--line-2);font:400 13px var(--mono);color:var(--fg)}
  .dock button svg{font-size:17px}
}
.fab{background:var(--azul-neon);color:var(--on-accent)}

/* ---------- abertura própria (CONTEUDO.md §3) ---------- */
@keyframes gs-fade{to{opacity:1}}
@keyframes gs-digita{to{transform:translateX(100%)}}
@media (prefers-reduced-motion:no-preference){
  .gs-cort{display:grid;justify-items:center;text-align:center}
  .gs-cort__ic{width:clamp(96px,11vw,128px);height:auto;overflow:visible}
  .gs-cort__tr{fill:none;stroke:url(#gs-grad);stroke-width:10;stroke-dasharray:1;stroke-dashoffset:1;
    animation:gv-traca .7s var(--saida) .1s forwards,gv-some .3s ease 1.05s forwards}
  .gs-cort__tr--b{animation-delay:.35s,1.05s}
  .gs-cort__fill{opacity:0;animation:gs-fade .35s var(--saida) 1s forwards}
  .gs-cort__prompt{opacity:0;animation:gs-fade .15s linear .6s forwards}
  .gs-cort__linha{position:relative;overflow:hidden;margin:26px 0 0;height:22px;padding-right:12px;font:400 14px/22px var(--mono);color:var(--fg);white-space:nowrap}
  .gs-cort__mask{position:absolute;inset:0;background:var(--bg);animation:gs-digita .6s steps(27,end) .7s forwards}
  .gs-cort__cur{position:absolute;right:0;top:0;color:var(--accent);opacity:0;animation:gs-fade .01s 1.3s forwards}
  .gs-cort__mask::before{content:"▍";position:absolute;left:0;top:0;color:var(--accent);animation:blink .5s steps(1) 2 .2s}
  .gs-cort__ok{height:22px;margin:4px 0 0;font:400 14px/22px var(--mono);color:var(--accent);opacity:0;animation:gs-fade .15s linear 1.3s forwards}
}
.form__2 .field+.field,.form__2 .field{margin-top:0}
.form .field+.field,.form .form__2+.field,.form .field+.form__2,.form .form__2+.form__2{margin-top:0}
.form{gap:18px}
@media (min-width:981px){.svc--aberto{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px 28px}
  .svc--aberto h3{margin:0}.svc--aberto .svc__d{flex:1;min-width:260px}.svc--aberto .btn{margin:0}}
/* estados ocultos do terminal também saem da árvore de acessibilidade/leitura */
.gs-term__linhas{visibility:hidden;transition:opacity .5s var(--saida),visibility .5s}
.gs-term.is-term .gs-term__linhas{visibility:visible}
.gs-painel{transition:opacity .6s var(--saida),transform .6s var(--saida),visibility .6s}
.gs-term.is-term .gs-painel{visibility:hidden}
@media (max-width:640px){.foot__cols--5{grid-template-columns:repeat(2,minmax(0,1fr))}}
.foot__cols li a,.foot__cols li span{overflow-wrap:anywhere;min-width:0}
@media (max-width:640px){.svc-grid,.dores,.embreve,.chips-mod{grid-template-columns:minmax(0,1fr)}.svc *{overflow-wrap:anywhere}}
@media (max-width:900px){.rest{grid-template-columns:minmax(0,1fr)}} @media (max-width:360px){.btn{white-space:normal;padding-inline:16px}.svc--aberto .btn,.rest .btn{width:100%}}

/* R10b — logo maior no header: 48px (≥1024) / 44px (tablet) / 40px (≤480); header 80 / 72 / 68 */
:root{--hdr:80px}
@media (max-width:1023px){:root{--hdr:72px}}
@media (max-width:760px){:root{--hdr:68px}}
.gs .brand img{height:48px;width:auto}
@media (max-width:1023px){.gs .brand img{height:44px}}
@media (max-width:480px){.gs .brand img{height:40px}}
.gs .hdr .wrap{gap:16px}
@media (max-width:1180px) and (min-width:1081px){.gs .nav a{padding:0 10px}}
/* R10d — celular: tom escuro mais fechado (92%) p/ o texto dos cards não aparecer atrás do header */
@media (max-width:480px){.gv-js .site-top[data-tom=escuro] .hdr{background:rgba(4,6,12,.92)}}

/* =====================================================================
   R11 — páginas de serviço + submenu "Serviços"
   ===================================================================== */
.nav__dd{position:relative;display:flex;align-items:center}
.nav__sub{list-style:none;position:absolute;left:0;top:100%;min-width:260px;padding:8px 0;margin:0;
  background:rgba(10,15,26,.97);border:1px solid var(--line-2);opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .2s var(--saida),transform .2s var(--saida),visibility .2s;z-index:5}
.nav__dd:hover .nav__sub,.nav__dd:focus-within .nav__sub{opacity:1;visibility:visible;transform:none}
.nav__sub a{display:flex;min-height:40px;padding:0 16px;align-items:center;font-size:13px;text-transform:none;letter-spacing:0;color:var(--mut)}
.nav__sub a:hover,.nav__sub a:focus-visible{color:var(--fg);background:rgba(0,217,255,.06)}
.menu__svc{margin-top:24px}
.menu__svc ul{list-style:none;display:grid;gap:0;margin-top:10px}
.menu__svc a{display:flex;align-items:center;min-height:44px;font-size:15px;color:var(--fg);border-bottom:1px solid var(--line)}
.svc__acoes{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center}
.svc__acoes .link{margin-top:0}
.link--det{color:var(--accent)}
.rest__linha .link{min-height:24px;margin-left:6px}

.gs-sv-hero{min-height:auto;padding-top:calc(var(--top) + var(--hdr) + 56px);padding-bottom:64px;align-items:flex-start;border-bottom:1px solid var(--line)}
.gs-sv-hero .hero__copy{max-width:900px}
.gs-sv-hero .h1{font-size:clamp(2.2rem,4.6vw,3.8rem);margin:18px 0 22px}
.gs-sv-hero .lead{font-size:clamp(16px,1.3vw,18px);color:var(--fg);margin-bottom:16px;max-width:70ch}
.gs-sv-p{font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--mut);max-width:70ch;margin-bottom:28px}
.gs-sv{max-width:1100px}
.gs-sv-sec{padding:72px 0;border-bottom:1px solid var(--line)}
.gs-sv-sec .h2{margin:10px 0 28px}
.gs-sv-dores{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}
.gs-sv-dores li{border:1px solid var(--line);background:var(--panel);padding:24px;display:grid;gap:10px}
.gs-sv-entra{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
.gs-sv-entra li{border:1px solid var(--line);padding:18px 20px;position:relative;padding-left:44px}
.gs-sv-entra li::before{content:"+";position:absolute;left:18px;top:16px;font-family:var(--mono);color:var(--accent);font-size:18px}
.gs-sv-entra h3{font-size:1.05rem;font-weight:500;letter-spacing:-.01em;margin-bottom:6px}
.gs-sv-entra p{font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--mut)}
.gs-sv-nota{margin-top:20px;font-size:13px;color:var(--mut)}
.gs-sv-nota a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.proc__t{font:500 1.2rem/1.2 var(--sans);letter-spacing:-.01em;margin:6px 0}
.gs-sv-pq{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.gs-sv-pq li{border-left:2px solid var(--accent);padding:6px 0 6px 18px}
.gs-sv-pq h3{font-size:1.1rem;font-weight:500;margin-bottom:6px}
.gs-sv-pq p{font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--mut)}
.gs-sv .faq__list{max-width:900px}
.gs-sv-cta .cta__t{max-width:22ch;margin:12px 0 18px}
.gs-sv-cta .lead{margin-bottom:28px}
.gs-sv-rel{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.gs-sv-rel a{display:flex;flex-direction:column;gap:10px;height:100%;padding:24px;border:1px solid var(--line);background:var(--panel);transition:border-color .2s}
.gs-sv-rel a:hover{border-color:var(--line-2)}
.gs-sv-rel__t{font:500 1.2rem/1.2 var(--sans);color:var(--fg)}
.gs-sv-rel__d{font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--mut)}
.gs-sv-rel .link{margin-top:auto}
@media (max-width:640px){.gs-sv-sec{padding:52px 0}.gs-sv-hero{padding-bottom:48px}}
.gs-sv-intro{font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--mut);max-width:70ch;margin:-12px 0 24px}
