/* GilForge · base visual do site institucional (12/11/2026). Tema claro; marinho nos blocos de destaque; Brasa só em
   botões e no eixo das animações. Sem gradientes, sem sombras decorativas. */
:root{
  --navy:#0B2545; --navy2:#13335C; --navy3:#1C3D66; --brasa:#F26B1D; --brasa-esc:#C9530F;
  --papel:#F3F5F8; --branco:#fff; --traco:#C9D3E0; --linha:#DCE3EC; --aco:#5B6B80; --tinta:#1B2B40; --claro:#B9C7D8;
  --t-titulo:"Montserrat",system-ui,sans-serif; --t-texto:"IBM Plex Sans",system-ui,sans-serif; --t-mono:"IBM Plex Mono",ui-monospace,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--branco);color:var(--tinta);font:16px/1.6 var(--t-texto);overflow-x:hidden}
h1,h2,h3{font-family:var(--t-titulo);color:var(--navy);line-height:1.15;margin:0;text-wrap:balance}
h1{font-size:clamp(32px,4.6vw,54px);font-weight:800}
h2{font-size:clamp(26px,3vw,34px);font-weight:700}
h3{font-size:19px;font-weight:700}
p{margin:0 0 16px;text-wrap:pretty}
a{color:var(--navy)}
img{max-width:100%;height:auto}
.gf-wrap{max-width:1160px;margin:0 auto;padding:0 32px}
.mono{font-family:var(--t-mono)}
.mudo{color:var(--aco)}
.pular{position:absolute;left:-9999px;top:8px;background:var(--navy);color:#fff;padding:8px 12px;z-index:50}
.pular:focus{left:8px}
:focus-visible{outline:3px solid var(--brasa);outline-offset:2px}

/* botões */
.btn-cheio,.btn-vazio,.btn-claro{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:4px;
  font:600 15px var(--t-texto);text-decoration:none;cursor:pointer;border:1px solid transparent;touch-action:manipulation;transition:background-color .15s,border-color .15s,color .15s}
.btn-cheio{background:var(--brasa);color:#fff}
.btn-cheio:hover{background:var(--brasa-esc)}
.btn-vazio{border-color:var(--navy);color:var(--navy);background:transparent}
.btn-vazio:hover{background:var(--navy);color:#fff}
.btn-claro{border-color:#6F86A3;color:#fff;background:transparent}
.btn-claro:hover{border-color:#fff}
.acoes{display:flex;flex-wrap:wrap;gap:10px}

/* cabeçalho */
.gf-cab{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--linha)}
.gf-cab .gf-wrap{display:flex;align-items:center;justify-content:space-between;min-height:68px}
.gf-marca{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);font:800 19px var(--t-titulo)}
.gf-marca svg{width:30px;height:30px}
.gf-marca b{color:var(--brasa);font-weight:800}
.gf-abrir{display:none;min-height:44px;padding:8px 14px;border:1px solid var(--linha);border-radius:4px;background:#fff;font:600 15px var(--t-texto);color:var(--navy);cursor:pointer}
.gf-nav{display:flex;align-items:center;gap:26px}
.gf-nav a{text-decoration:none;color:#33465F;font-weight:500;font-size:15px}
.gf-nav a:hover{color:var(--navy);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--brasa)}
.gf-nav a.btn-cheio{color:#fff}
.gf-nav a.btn-cheio:hover{text-decoration:none}
@media (max-width:900px){
  .gf-cab .gf-wrap{flex-wrap:wrap}
  .gf-nav{flex-wrap:wrap;gap:6px 16px;padding:0 0 12px;width:100%}
  .js .gf-abrir{display:block}
  .js .gf-nav{display:none}
  .js .gf-nav.aberto{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:4px 0 16px}
  .js .gf-nav.aberto a{padding:12px 4px;border-top:1px solid var(--linha)}
  .js .gf-nav.aberto a.btn-cheio{margin-top:10px;border-top:0}
}

/* faixas de seção */
.faixa{padding:80px 0}
.faixa-papel{background:var(--papel)}
.faixa-marinho{background:var(--navy);color:#DCE5F0}
.faixa-marinho h1,.faixa-marinho h2,.faixa-marinho h3{color:#fff}
.faixa-marinho p{color:var(--claro)}
.cabeca-secao{max-width:680px;margin-bottom:36px}
.cabeca-secao h2{margin-bottom:12px}
.cabeca-secao p{font-size:18px;color:#33465F}
.faixa-marinho .cabeca-secao p{color:var(--claro)}

/* topo com curvas de nível */
.topo-curvas{position:relative;overflow:hidden;background:var(--navy)}
.topo-curvas > svg.curvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.topo-curvas .gf-wrap{position:relative;padding-top:88px;padding-bottom:88px}
.topo-curvas p.lead{max-width:600px;font-size:18px;color:var(--claro);margin:18px 0 28px}

/* desenhos técnicos que se montam ao aparecer */
.desenho{background:#fff;border:1px solid var(--linha);border-radius:6px;position:relative;overflow:hidden}
.faixa:not(.faixa-papel) .desenho{background:var(--papel)}
.desenho svg{width:100%;height:auto;display:block}
.desenho .leg{position:absolute;left:14px;bottom:10px;font:500 12px var(--t-mono);color:var(--aco)}
.tr{stroke-dasharray:var(--L,1000);stroke-dashoffset:var(--L,1000)}
.vivo .tr{animation:gf-faz 1.6s ease-in-out forwards;animation-delay:var(--d,0s)}
.ap{opacity:0}
.vivo .ap{animation:gf-ap .5s ease forwards;animation-delay:var(--d,0s)}
@keyframes gf-faz{to{stroke-dashoffset:0}}
@keyframes gf-ap{to{opacity:1}}

/* formulários */
.campo{margin-bottom:14px}
.campo label,.rotulo{display:block;font-size:14px;font-weight:600;color:var(--navy);margin-bottom:6px}
.campo input,.campo select,.campo textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #B9C4D2;border-radius:4px;font:16px var(--t-texto);color:var(--tinta);background:#fff}
.campo input:focus-visible,.campo select:focus-visible,.campo textarea:focus-visible{outline:2px solid var(--navy);outline-offset:1px}
.campo .erro{display:block;color:#B42318;font-size:13.5px;margin-top:4px}
.campo [aria-invalid=true]{border-color:#B42318}
.marcar{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:#33465F;margin:10px 0;cursor:pointer}
.marcar input{width:18px;height:18px;margin-top:2px;accent-color:var(--brasa);flex:none}
.duas-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.aviso-form{font-size:14px;padding:10px 12px;border-radius:4px;background:var(--papel);margin-top:10px}

/* rodapé */
.gf-rod{background:var(--navy);color:var(--claro);padding:56px 0 28px;font-size:14.5px}
.gf-rod .gf-wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:28px}
.gf-rod .gf-marca{color:#fff}
.gf-rod h2{font:600 14px var(--t-texto);color:#fff;margin:0 0 10px}
.gf-rod a{display:block;color:var(--claro);text-decoration:none;padding:3px 0}
.gf-rod a:hover{color:#fff;text-decoration:underline}
.gf-rod p{margin-top:10px}
.gf-rod .gf-legal{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:36px;padding-top:20px;border-top:1px solid #2A4A74;font-size:13px}
.gf-rod .gf-legal a{display:inline;padding:0}

@media (max-width:860px){
  .gf-wrap{padding:0 16px}
  .faixa{padding:56px 0}
  .duas-col{grid-template-columns:1fr}
  .gf-rod .gf-wrap{grid-template-columns:1fr 1fr}
  .topo-curvas .gf-wrap{padding-top:56px;padding-bottom:56px}
}
@media (max-width:520px){.gf-rod .gf-wrap{grid-template-columns:1fr}}
/* Animações rodam sempre, mesmo com "reduzir movimento" no sistema (decisão do Samuel, 12/11/2026). */

/* componente de escolha das ferramentas (js/escolha.js): /ferramentas e /minhas-ferramentas */
.esc-barra{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.esc-barra button{min-height:40px;border:1px solid var(--linha);background:#fff;padding:6px 12px;border-radius:4px;font:500 14px var(--t-texto);color:var(--navy);cursor:pointer}
.esc-barra button:hover{border-color:var(--navy)}
.esc-cont{margin-left:auto;color:var(--aco);font-size:14px}
.esc-grupo{border:0;margin:0 0 18px;padding:0;min-width:0}
.esc-grupo legend{font:600 15px var(--t-texto);color:var(--navy);margin-bottom:8px;padding:0}
.esc-itens{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.esc-item{position:relative;border:1px solid var(--linha);border-radius:6px;padding:12px 12px 12px 40px;background:#fff;transition:border-color .15s,background-color .15s}
.esc-item:has(input:checked){border-color:var(--navy);background:var(--papel)}
.esc-item input{position:absolute;left:12px;top:14px;width:18px;height:18px;margin:0;accent-color:var(--brasa)}
.esc-item label{display:block;cursor:pointer;font-size:14px;color:#33465F;line-height:1.45}
.esc-item label::after{content:"";position:absolute;inset:0}
.esc-item b{display:block;color:var(--navy);font-size:15px;margin-bottom:2px}
.esc-tag{font:500 11px var(--t-texto);color:var(--aco);border:1px solid var(--linha);border-radius:3px;padding:0 5px;margin-left:4px;white-space:nowrap}
.esc-ver{position:relative;z-index:1;display:inline-block;margin-top:6px;font-size:13px;color:var(--navy)}
@media (max-width:900px){.esc-itens{grid-template-columns:1fr}}
.erro-form{color:#B42318;font-size:14px;margin:8px 0}
