@font-face{font-family:"Jost";src:url("assets/fontes/Jost.ttf") format("truetype");font-weight:100 900;font-display:swap}

:root{
  --carvao:#171D25;
  --off:#F3F0E8;
  --areia:#D8D1C2;
  --laranja:#FF5F1F;
  --texto:#1A1F25;
  --borda:#DCD6C8;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Jost",system-ui,sans-serif;color:var(--texto);background:var(--off);font-size:17px;line-height:1.6}
img,svg{display:block;max-width:100%}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.secao{padding:84px 0}
.secao--escura{background:var(--carvao);color:var(--off)}
h1,h2,h3{font-weight:500;line-height:1.15;margin:0}
h2{font-size:clamp(28px,3.4vw,42px);letter-spacing:.01em}
h3{font-size:20px}
p{margin:0 0 16px}
.rotulo{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--laranja);margin-bottom:14px;font-weight:500}
.secao--escura .rotulo{color:var(--laranja)}
.intro{font-size:18px;max-width:680px;opacity:.9}

/* topo */
.topo{position:sticky;top:0;z-index:20;background:rgba(23,29,37,.92);backdrop-filter:blur(6px);border-bottom:1px solid rgba(243,240,232,.12)}
.topo .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;padding-bottom:14px}
.topo img{width:190px}
.menu{display:flex;gap:26px;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--off)}
.menu a{text-decoration:none;opacity:.85}
.menu a:hover{opacity:1;color:var(--laranja)}

/* botões */
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--laranja);color:#fff;text-decoration:none;
  font-size:14px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;padding:16px 26px;border:0}
.btn:hover{background:#e65314}
.btn--linha{background:transparent;color:var(--off);border:1px solid rgba(243,240,232,.5)}
.btn--linha:hover{background:rgba(243,240,232,.1)}

/* capa */
.capa{position:relative;background:var(--carvao);color:var(--off);overflow:hidden}
.capa__foto{position:absolute;inset:0;background:url("assets/img/capa-colheita.jpg") 72% 62%/cover}
.capa__veu{position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,29,37,.94) 0%,rgba(23,29,37,.86) 42%,rgba(23,29,37,.35) 100%)}
.capa .wrap{position:relative;z-index:2;padding-top:110px;padding-bottom:110px}
.capa h1{font-size:clamp(34px,5vw,60px);max-width:16ch}
.capa .intro{margin-top:22px;max-width:56ch;opacity:.92}
.capa__acoes{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}
.capa__selo{margin-top:44px;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;opacity:.7}

/* grades */
.grade{display:grid;gap:26px}
.grade--3{grid-template-columns:repeat(3,1fr)}
.grade--2{grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.card{border:1px solid var(--borda);padding:28px;background:#fffdf8}
.card h3{margin-bottom:10px}
.card p{font-size:15.5px;margin:0;opacity:.85}
.card__foto{width:calc(100% + 56px);max-width:none;height:190px;object-fit:cover;margin:-28px -28px 22px;filter:saturate(.95)}
.card__n{font-size:12px;letter-spacing:.2em;color:var(--laranja);font-weight:500;margin-bottom:16px}

/* etapas */
.etapas{counter-reset:e;margin-top:38px;border-top:1px solid rgba(243,240,232,.18)}
.etapa{display:grid;grid-template-columns:70px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid rgba(243,240,232,.18)}
.etapa__n{font-size:13px;letter-spacing:.2em;color:var(--laranja);padding-top:4px}
.etapa h3{margin-bottom:6px}
.etapa p{font-size:15.5px;margin:0;opacity:.82;max-width:70ch}

/* lista simples */
.lista{list-style:none;padding:0;margin:18px 0 0;columns:2;column-gap:40px}
.lista li{padding:9px 0 9px 22px;position:relative;font-size:16px;break-inside:avoid;border-bottom:1px solid var(--borda)}
.lista li::before{content:"";position:absolute;left:0;top:18px;width:9px;height:9px;background:var(--laranja);border-radius:50%}

/* faixa de imagem */
.faixa{height:340px;background:url("assets/img/faixa-trigo.jpg") center 55%/cover;position:relative}
.faixa__nota{position:absolute;right:28px;bottom:22px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#F3F0E8;opacity:.75;text-shadow:0 1px 6px rgba(0,0,0,.6)}

/* contato */
.contato__caixa{border:1px solid rgba(243,240,232,.22);padding:34px;background:rgba(243,240,232,.04)}
.contato__item{display:block;font-size:19px;text-decoration:none;margin-bottom:14px}
.contato__item span{display:block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.6;margin-bottom:3px}

/* rodapé */
.rodape{background:var(--carvao);color:var(--off);padding:44px 0 40px;border-top:1px solid rgba(243,240,232,.14)}
.rodape .wrap{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-end}
.rodape img{width:170px;opacity:.95}
.rodape__tec{font-size:11.5px;letter-spacing:.06em;line-height:1.9;opacity:.7;text-align:right}

@media (max-width:900px){
  .grade--3{grid-template-columns:1fr}
  .grade--2{grid-template-columns:1fr;gap:34px}
  .lista{columns:1}
  .menu{display:none}
  .secao{padding:60px 0}
  .capa__veu{background:linear-gradient(180deg,rgba(23,29,37,.92) 0%,rgba(23,29,37,.82) 60%,rgba(23,29,37,.7) 100%)}
  .capa .wrap{padding-top:70px;padding-bottom:70px}
  .rodape .wrap{flex-direction:column;align-items:flex-start}
  .rodape__tec{text-align:left}
  .etapa{grid-template-columns:1fr;gap:6px}
}

/* formulário */
.form label{display:block;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.75;margin-bottom:16px}
.form input,.form textarea{display:block;width:100%;margin-top:7px;background:rgba(243,240,232,.07);border:1px solid rgba(243,240,232,.25);
  color:var(--off);font-family:inherit;font-size:16px;letter-spacing:normal;text-transform:none;padding:12px 14px;border-radius:0}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--laranja);background:rgba(243,240,232,.1)}
.form textarea{resize:vertical}
.form ::placeholder{color:rgba(243,240,232,.45)}
.form button{margin-top:6px;cursor:pointer;font-family:inherit}

/* ============================================================
   v2 — serviços por frente, linhas finas e movimento
   ============================================================ */

/* movimento de entrada */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
.reveal.is-visivel{opacity:1;transform:none}
.reveal:nth-child(2){transition-delay:.06s}
.reveal:nth-child(3){transition-delay:.12s}
.reveal:nth-child(4){transition-delay:.18s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* topo */
.topo{transition:padding .3s ease,background .3s ease}
.topo.is-rolado{background:rgba(23,29,37,.97)}
.topo.is-rolado .wrap{padding-top:9px;padding-bottom:9px}
.topo img{transition:width .3s ease}
.topo.is-rolado img{width:160px}
.topo__cta{font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--off);text-decoration:none;
  border:1px solid rgba(243,240,232,.35);padding:10px 18px;transition:border-color .25s ease,color .25s ease,background .25s ease}
.topo__cta:hover{border-color:var(--laranja);color:var(--laranja)}

/* capa */
.capa__grade{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.5;
  background-image:linear-gradient(90deg,rgba(243,240,232,.07) 1px,transparent 1px);
  background-size:calc(100% / 6) 100%}
.capa__olho{font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;opacity:.65;margin:0 0 20px}
.capa__coord{position:absolute;right:28px;bottom:22px;z-index:2;font-size:10.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--off);opacity:.45}
.capa h1{letter-spacing:-.01em}

/* seção de serviços */
.servicos{position:relative;overflow:hidden}
.servicos__linhas{position:absolute;inset:0;pointer-events:none;opacity:.45;
  background-image:linear-gradient(90deg,rgba(243,240,232,.06) 1px,transparent 1px);
  background-size:calc(100% / 4) 100%}
.servicos .wrap{position:relative;z-index:2}

/* abas */
.abas{position:relative;display:flex;gap:0;margin-top:46px;border-bottom:1px solid rgba(243,240,232,.18);flex-wrap:wrap}
.aba{appearance:none;background:none;border:0;cursor:pointer;color:var(--off);font-family:inherit;text-align:left;
  padding:18px 34px 20px 0;opacity:.5;transition:opacity .3s ease;display:flex;align-items:baseline;gap:12px}
.aba:hover{opacity:.85}
.aba.is-ativa{opacity:1}
.aba__n{font-size:11.5px;letter-spacing:.22em;color:var(--laranja);transition:opacity .3s ease}
.aba__t{font-size:19px;letter-spacing:.005em;font-weight:400}
.abas__marca{position:absolute;bottom:-1px;left:0;height:2px;width:0;background:var(--laranja);
  transition:transform .45s cubic-bezier(.22,.61,.36,1),width .45s cubic-bezier(.22,.61,.36,1)}

/* painel */
.painel{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;padding-top:46px;align-items:start}
.painel[hidden]{display:none}
.painel.is-entrando .painel__texto,.painel.is-entrando .painel__figura{animation:entra .55s cubic-bezier(.22,.61,.36,1) both}
.painel.is-entrando .painel__figura{animation-delay:.08s}
@keyframes entra{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.painel__intro{font-size:17.5px;line-height:1.65;opacity:.85;max-width:60ch;margin:0 0 30px;
  padding-left:20px;border-left:1px solid rgba(255,95,31,.5)}

/* micro serviços */
.micro{list-style:none;margin:0;padding:0;border-top:1px solid rgba(243,240,232,.14)}
.micro__item{display:grid;grid-template-columns:52px 1fr;gap:4px;padding:20px 16px 20px 0;
  border-bottom:1px solid rgba(243,240,232,.14);transition:background .35s ease,padding .35s ease}
.micro__item:hover{background:rgba(243,240,232,.04);padding-left:14px;padding-right:2px}
.micro__n{font-size:11px;letter-spacing:.2em;opacity:.45;padding-top:6px;transition:color .35s ease,opacity .35s ease}
.micro__item:hover .micro__n{color:var(--laranja);opacity:1}
.micro__corpo h3{font-size:17.5px;font-weight:500;margin:0 0 6px;transition:color .35s ease}
.micro__item:hover .micro__corpo h3{color:var(--laranja)}
.micro__corpo p{font-size:15px;line-height:1.6;opacity:.72;margin:0;max-width:56ch}

/* link com seta */
.link-seta{display:inline-flex;align-items:center;gap:12px;margin-top:30px;text-decoration:none;color:var(--laranja);
  font-size:13px;letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid rgba(255,95,31,.4);padding-bottom:7px}
.link-seta span{transition:transform .3s ease}
.link-seta:hover span{transform:translateX(7px)}

/* figura do painel */
.painel__figura{margin:0;position:sticky;top:110px}
.painel__figura img{width:100%;height:520px;object-fit:cover;filter:saturate(.92) contrast(1.03)}
.painel__figura figcaption{font-size:12px;letter-spacing:.06em;opacity:.55;margin-top:14px;padding-left:16px;
  border-left:1px solid rgba(243,240,232,.3);line-height:1.5}

@media (max-width:1000px){
  .painel{grid-template-columns:1fr;gap:34px}
  .painel__figura{position:static;order:-1}
  .painel__figura img{height:300px}
}
@media (max-width:900px){
  .topo__cta{display:none}
  .abas{gap:0}
  .aba{padding-right:22px}
  .aba__t{font-size:16px}
  .capa__coord{display:none}
}
@media (max-width:620px){
  .aba{width:100%;padding:14px 0;border-bottom:1px solid rgba(243,240,232,.1)}
  .abas{border-bottom:0}
  .abas__marca{display:none}
}

/* ============================================================
   v3 — noite, globo de atuação e passos por serviço
   ============================================================ */

:root{
  --noite:#0C1015;
  --carvao2:#141A21;
  --linha:rgba(243,240,232,.14);
}
body{background:var(--noite)}
.secao--escura{background:var(--carvao2)}
.secao{padding:104px 0}

/* seção noite */
.secao--noite{background:var(--noite);color:var(--off);position:relative;overflow:hidden;padding-bottom:88px}
.secao--noite::before{content:"";position:absolute;left:50%;top:-10%;width:900px;height:900px;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(255,95,31,.07) 0%,rgba(255,95,31,0) 62%);pointer-events:none}
.secao--noite .wrap{position:relative;z-index:2}

/* Sobre em fundo escuro */
#sobre .card{background:rgba(243,240,232,.04);border-color:var(--linha)}

/* palco do globo */
.realizados__palco{max-width:1320px;margin:52px auto 0;padding:0 28px;display:grid;
  grid-template-columns:1.02fr .98fr;gap:56px;align-items:center;position:relative;z-index:2}
.globo{position:relative;width:100%;aspect-ratio:1/1;max-height:620px;touch-action:none;cursor:grab}
.globo canvas{display:block;width:100%;height:100%}
.globo__dica{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);margin:0;
  font-size:11px;letter-spacing:.26em;text-transform:uppercase;opacity:.45;transition:opacity .6s ease}
.globo__dica.some{opacity:0}
.globo__balao{position:absolute;transform:translate(-50%,-100%);background:rgba(5,7,10,.92);
  border:1px solid rgba(255,95,31,.5);padding:6px 11px;font-size:12.5px;letter-spacing:.04em;
  white-space:nowrap;pointer-events:none;z-index:4}

/* números */
.numeros{display:grid;gap:26px;margin-bottom:40px}
.numero strong{display:block;font-size:clamp(38px,4.6vw,62px);font-weight:300;line-height:1;
  letter-spacing:-.02em;color:var(--off);font-variant-numeric:tabular-nums}
.numero span{display:block;font-size:12px;letter-spacing:.22em;text-transform:uppercase;opacity:.55;margin-top:10px}
.numero{padding-bottom:22px;border-bottom:1px solid var(--linha)}
.numero:last-child{border-bottom:0;padding-bottom:0}

/* lista de municípios */
.locais-titulo{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;opacity:.5;margin:0 0 14px}
.locais-titulo--2{margin-top:26px}
.locais{list-style:none;display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:0;columns:auto}
.locais li{padding:0;border:0}
.locais li::before{display:none}
.locais button{appearance:none;background:none;color:var(--off);font-family:inherit;cursor:pointer;
  border:1px solid var(--linha);padding:7px 11px;font-size:13px;letter-spacing:.01em;
  display:inline-flex;align-items:baseline;gap:6px;transition:border-color .25s ease,color .25s ease,background .25s ease}
.locais button i{font-style:normal;font-size:10px;letter-spacing:.14em;opacity:.45}
.locais button:hover{border-color:rgba(255,95,31,.65);color:var(--laranja)}
.locais button.is-ativo{border-color:var(--laranja);background:rgba(255,95,31,.12);color:var(--laranja)}
.locais--visita button{opacity:.72;border-style:dashed}

/* passos dentro da frente de serviço */
.passos{margin-top:34px;border:1px solid var(--linha);padding:26px 26px 22px;background:rgba(243,240,232,.02)}
.passos__titulo{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--laranja);margin:0 0 18px}
.passos__lista{list-style:none;margin:0;padding:0;counter-reset:p}
.passos__lista li{display:grid;grid-template-columns:34px 1fr;gap:10px;font-size:14.5px;line-height:1.55;
  padding:11px 0;border-bottom:1px solid rgba(243,240,232,.08);opacity:.85}
.passos__lista li:last-child{border-bottom:0}
.passos__lista span{font-size:11px;letter-spacing:.16em;opacity:.5;padding-top:3px}
.passos__lista b{font-weight:500;opacity:1}
.passos__nota{font-size:12.5px;opacity:.55;margin:16px 0 0;line-height:1.6}

@media (max-width:1000px){
  .realizados__palco{grid-template-columns:1fr;gap:30px}
  .globo{max-height:420px}
}
@media (max-width:620px){
  .secao{padding:72px 0}
  .numeros{gap:18px}
  .locais button{font-size:12.5px;padding:6px 9px}
}

.globo__voltar{position:absolute;right:8px;top:8px;z-index:4;appearance:none;cursor:pointer;
  background:rgba(5,7,10,.75);border:1px solid var(--linha);color:var(--off);font-family:inherit;
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:8px 13px;transition:border-color .25s ease,color .25s ease}
.globo__voltar:hover{border-color:var(--laranja);color:var(--laranja)}

/* ============================================================
   v4 — mapa plano com navegação por nível
   ============================================================ */

.mapa{position:relative;width:100%;aspect-ratio:1/.82;max-height:600px}
.mapa canvas{display:block;width:100%;height:100%}
.mapa__balao{position:absolute;transform:translate(-50%,-100%);background:rgba(5,7,10,.94);
  border:1px solid rgba(255,95,31,.5);padding:5px 10px;font-size:12.5px;white-space:nowrap;
  pointer-events:none;z-index:4}
.mapa__legenda{position:absolute;left:0;bottom:-6px;margin:0;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;opacity:.45;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mapa__legenda .pt{width:7px;height:7px;border-radius:50%;display:inline-block}
.mapa__legenda .pt--servico{background:var(--laranja)}
.mapa__legenda .pt--visita{background:rgba(243,240,232,.85);margin-left:12px}
.mapa__nota{font-size:12px;line-height:1.7;opacity:.42;margin:22px 0 0;max-width:52ch}

/* trilha */
.trilha{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 20px;
  padding-bottom:16px;border-bottom:1px solid var(--linha)}
.trilha__passo{appearance:none;background:none;border:0;padding:0;cursor:pointer;color:var(--off);
  font-family:inherit;font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.5;
  transition:opacity .25s ease,color .25s ease}
.trilha__passo:hover:not(:disabled){opacity:1;color:var(--laranja)}
.trilha__passo.is-atual{opacity:1;color:var(--laranja);cursor:default}
.trilha__passo:disabled{cursor:default}
.trilha__sep{opacity:.25;font-size:12px}

/* lista de níveis */
.niveis{list-style:none;display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:0;columns:auto;
  max-height:330px;overflow-y:auto}
.niveis li{padding:0;border:0}
.niveis li::before{display:none}
.nivel{appearance:none;background:none;color:var(--off);font-family:inherit;cursor:pointer;
  border:1px solid var(--linha);padding:8px 12px;font-size:13.5px;display:inline-flex;
  align-items:baseline;gap:8px;transition:border-color .22s ease,color .22s ease,background .22s ease}
.nivel i{font-style:normal;font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.42}
.nivel:hover{border-color:rgba(255,95,31,.65);color:var(--laranja)}
.nivel.is-ativo{border-color:var(--laranja);background:rgba(255,95,31,.12);color:var(--laranja)}
.nivel--visita{border-style:dashed;opacity:.8}

@media (max-width:1000px){
  .mapa{max-height:420px;aspect-ratio:1/.9}
  .niveis{max-height:none}
}

/* mapa um pouco maior no desktop */
@media (min-width:1001px){
  .realizados__palco{grid-template-columns:1.12fr .88fr}
  .mapa{max-height:640px}
}

/* ============================================================
   v5 — mapa estático em dois quadros e seção de notícias
   ============================================================ */

.realizados__palco{align-items:start}
#mapa-brasil{aspect-ratio:1/1.02;max-height:660px}
.mapa--pequeno{aspect-ratio:1/.62;max-height:210px;margin-bottom:26px;
  border:1px solid var(--linha);background:rgba(243,240,232,.015)}

/* lista de municípios por estado */
.locais{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 26px;margin:0}
.locais__titulo{font-size:11px;letter-spacing:.22em;text-transform:uppercase;opacity:.5;
  margin:0 0 9px;padding-bottom:7px;border-bottom:1px solid var(--linha)}
.locais__titulo span{color:var(--laranja);opacity:.9;margin-left:4px}
.locais ul{list-style:none;margin:0;padding:0;columns:auto}
.locais li{padding:0;border:0;margin:0}
.locais li::before{display:none}
.local{display:inline-block;font-size:13.5px;line-height:1.75;opacity:.72;cursor:default;
  transition:color .2s ease,opacity .2s ease}
.local:hover,.local.is-ativo{color:var(--laranja);opacity:1}
.local--visita{opacity:.5;font-style:italic}

/* notícias */
.noticias{background:var(--carvao2);color:var(--off)}
.abas--not{margin-top:38px}
.not-painel{padding-top:34px}
.not-painel[hidden]{display:none}
.not-lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 46px}
.not-lista li{padding:0;border:0}
.not-lista li::before{display:none}
.not-item a{display:block;text-decoration:none;color:inherit;padding:22px 0;
  border-top:1px solid var(--linha);transition:padding .3s ease}
.not-item a:hover{padding-left:12px}
.not-meta{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.55;margin-bottom:9px}
.not-meta b{font-weight:500;color:var(--laranja);opacity:.95}
.not-item h3{font-size:17px;font-weight:500;line-height:1.35;margin:0 0 8px}
.not-item a:hover h3{color:var(--laranja)}
.not-item p{font-size:14.5px;line-height:1.6;opacity:.7;margin:0 0 10px;max-width:52ch}
.not-ir{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--laranja);opacity:.8}
.not-ir i{font-style:normal;display:inline-block;transition:transform .25s ease}
.not-item a:hover .not-ir i{transform:translateX(6px)}

.not-vazio{font-size:15px;opacity:.6;max-width:62ch;margin:0 0 6px;line-height:1.7}
.not-fixos{margin-top:30px;padding-top:24px;border-top:1px solid var(--linha)}
.not-fixos__titulo{font-size:11px;letter-spacing:.22em;text-transform:uppercase;opacity:.5;margin:0 0 12px}
.not-fixos ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0;columns:auto}
.not-fixos li{padding:0;border:0}
.not-fixos li::before{display:none}
.not-fixos a{display:inline-block;border:1px solid var(--linha);padding:8px 13px;font-size:13px;
  text-decoration:none;transition:border-color .22s ease,color .22s ease}
.not-fixos a:hover{border-color:rgba(255,95,31,.6);color:var(--laranja)}
.not-rodape{font-size:12px;opacity:.42;margin:30px 0 0;line-height:1.7;max-width:74ch}

.simbolo-nota{margin-top:34px;padding-top:26px;border-top:1px solid var(--linha)}
.simbolo-nota img{width:120px;margin-bottom:18px}

@media (max-width:1000px){
  #mapa-brasil{aspect-ratio:1/.9;max-height:420px}
  .not-lista{grid-template-columns:1fr;gap:0}
  .locais{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .locais{grid-template-columns:1fr}
  .mapa--pequeno{max-height:170px}
}

/* lista de municípios em duas colunas dentro de cada estado */
.locais{grid-template-columns:1fr}
.locais__uf{break-inside:avoid}
.locais ul{columns:2;column-gap:24px}
.local{line-height:1.62;font-size:13px}
@media (min-width:1001px){ .locais ul{columns:3} }
@media (max-width:620px){ .locais ul{columns:1} }

/* ============================================================
   v6 — capa clara, mapa num plano só, notícias em dois tons
   ============================================================ */

/* capa: foto aérea, véu mais leve */
.capa__foto{background:url("assets/img/capa-aerea.jpg") center 56%/cover}
.capa__veu{background:
  linear-gradient(90deg,rgba(6,9,12,.88) 0%,rgba(6,9,12,.66) 38%,rgba(6,9,12,.12) 78%,rgba(6,9,12,.28) 100%),
  linear-gradient(180deg,rgba(6,9,12,.45) 0%,rgba(6,9,12,0) 28%)}
@media (max-width:900px){
  .capa__veu{background:linear-gradient(180deg,rgba(6,9,12,.85) 0%,rgba(6,9,12,.7) 55%,rgba(6,9,12,.55) 100%)}
}
.faixa{background:url("assets/img/faixa-aerea.jpg") center 52%/cover;height:400px}

/* mapa em um plano só, ocupando a largura toda */
.realizados__palco{display:none}
.mapa--mundi{position:relative;width:100%;aspect-ratio:1.72;max-height:none;margin-top:44px}
.mapa--mundi canvas{display:block;width:100%;height:100%}
.mapa__resumo{position:absolute;left:6%;top:14%;z-index:3;pointer-events:none}
.mapa__resumo strong{display:block;font-size:clamp(44px,5.4vw,74px);font-weight:300;line-height:1;
  letter-spacing:-.02em;color:var(--off);font-variant-numeric:tabular-nums}
.mapa__resumo span{display:block;font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  opacity:.55;margin-top:12px}
.mapa__resumo em{display:block;font-style:normal;font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--laranja);opacity:.85;margin-top:7px}
.mapa--mundi .mapa__legenda{left:6%;bottom:8%}
.mapa__nota{margin-top:26px}

@media (max-width:900px){
  .mapa--mundi{aspect-ratio:1.3}
  .mapa__resumo{left:28px;top:18px}
}

/* notícias: cabeçalho num tom, conteúdo em outro */
.noticias{background:var(--carvao2)}
.not-painel{background:rgba(5,7,10,.5);border:1px solid var(--linha);border-top:0;
  padding:34px 34px 30px;margin-top:0}
.abas--not{border-bottom-color:rgba(243,240,232,.22)}
.not-lista{gap:0 40px}
.not-item a{border-top-color:rgba(243,240,232,.1)}
.not-item:first-child a,.not-lista li:nth-child(2) a{border-top:0;padding-top:4px}
@media (max-width:1000px){
  .not-painel{padding:26px 20px 22px}
  .not-lista li:nth-child(2) a{border-top:1px solid rgba(243,240,232,.1);padding-top:22px}
}

/* capa: mais luz, menos sombra */
.capa__foto{background-position:center 44%;filter:brightness(1.1) saturate(1.06) contrast(1.02)}
.capa__veu{background:
  linear-gradient(90deg,rgba(6,9,12,.8) 0%,rgba(6,9,12,.5) 40%,rgba(6,9,12,.05) 80%,rgba(6,9,12,.18) 100%),
  linear-gradient(180deg,rgba(6,9,12,.32) 0%,rgba(6,9,12,0) 26%)}
.capa h1{text-shadow:0 2px 24px rgba(6,9,12,.45)}
.capa .intro{text-shadow:0 1px 16px rgba(6,9,12,.5)}
@media (max-width:900px){
  .capa__veu{background:linear-gradient(180deg,rgba(6,9,12,.82) 0%,rgba(6,9,12,.66) 55%,rgba(6,9,12,.5) 100%)}
}

/* o bloco do número vai para o vazio do Pacífico */
.mapa__resumo{left:24%;top:26%}
.mapa__resumo em{letter-spacing:.14em;text-transform:none;font-size:12.5px}
@media (max-width:900px){ .mapa__resumo{left:24px;top:14px} }

/* separação mais clara entre o cabeçalho das notícias e o conteúdo */
.not-painel{background:var(--noite)}
.noticias{background:#19202A}
.abas--not .aba{opacity:.55}
.abas--not .aba.is-ativa{opacity:1}

/* ============================================================
   v7 — painel de preços ao lado das notícias
   ============================================================ */

.noticias__grade{display:grid;grid-template-columns:1fr 292px;gap:44px;align-items:start;margin-top:38px}
.abas--not{margin-top:0}
.abas--not .aba__t{font-size:16px}
.abas--not .aba{padding-right:26px}

.precos{border:1px solid var(--linha);background:var(--noite);padding:24px 22px 20px;position:sticky;top:96px}
.precos__titulo{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--laranja);margin:0 0 6px}
.precos__semana{font-size:11.5px;letter-spacing:.1em;opacity:.5;margin:0 0 18px}
.precos__lista{list-style:none;margin:0;padding:0;columns:auto}
.precos__lista li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:10px 0;border-bottom:1px solid rgba(243,240,232,.09);border-top:0}
.precos__lista li::before{display:none}
.precos__lista li:last-child{border-bottom:0}
.precos__prod{display:block;font-size:14px;line-height:1.25}
.precos__prod i{display:block;font-style:normal;font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;opacity:.45;margin-top:4px}
.precos__lista b{font-weight:500;font-size:14.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.precos__fonte{font-size:11px;line-height:1.65;opacity:.42;margin:18px 0 0}
.precos__fonte a{color:inherit}
.precos__fonte a:hover{color:var(--laranja)}
.precos__vazio{font-size:13px;opacity:.5;margin:0}

@media (max-width:1100px){
  .noticias__grade{grid-template-columns:1fr;gap:34px}
  .precos{position:static}
  .precos__lista{columns:2;column-gap:34px}
  .precos__lista li{break-inside:avoid}
}
@media (max-width:620px){ .precos__lista{columns:1} }

/* as quatro abas de notícia cabem em uma linha ao lado do painel de preços */
.abas--not .aba{padding-right:20px;padding-top:14px;padding-bottom:16px}
.abas--not .aba__t{font-size:14.5px;letter-spacing:.005em}
.abas--not .aba__n{font-size:10.5px}
@media (max-width:1100px){ .abas--not .aba__t{font-size:16px} }

/* três indicadores sobre o mapa */
.mapa__resumo{display:grid;gap:22px}
.mapa__num strong{display:block;font-weight:300;line-height:1;letter-spacing:-.015em;
  color:var(--off);font-variant-numeric:tabular-nums;font-size:clamp(22px,2.3vw,30px)}
.mapa__num--maior strong{font-size:clamp(40px,5vw,68px)}
.mapa__num span{display:block;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  opacity:.55;margin-top:9px;max-width:26ch}
.mapa__num em{display:block;font-style:normal;font-size:12px;letter-spacing:.14em;
  color:var(--laranja);opacity:.85;margin-top:6px}
@media (max-width:900px){
  .mapa__resumo{gap:16px}
  .mapa__num span{font-size:10.5px;letter-spacing:.14em}
}
.mapa__num span{max-width:34ch;letter-spacing:.15em;line-height:1.55}
.mapa__resumo{gap:18px}

/* ============================================================
   v8 — emendas suaves entre as seções e o mapa surgindo ao rolar
   ============================================================ */

/* a seção do mapa começa na cor da seção de cima e escurece devagar */
.realizados{background:linear-gradient(180deg,#19202A 0%,#0A0E13 34%,var(--noite) 78%)}
.realizados::before{top:6%}

/* o mapa nasce e termina desbotando, sem linha de corte */
.mapa--mundi{
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16%,#000 82%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0,#000 16%,#000 82%,transparent 100%);
  opacity:0;transform:translateY(26px);
  transition:opacity 1.1s cubic-bezier(.22,.61,.36,1),transform 1.1s cubic-bezier(.22,.61,.36,1)}
.mapa--mundi.is-visivel{opacity:1;transform:none}

/* a faixa de foto entra e sai dissolvida nas seções vizinhas */
.faixa{position:relative}
.faixa::before,.faixa::after{content:"";position:absolute;left:0;right:0;height:110px;pointer-events:none}
.faixa::before{top:0;background:linear-gradient(180deg,var(--noite) 0%,rgba(5,7,10,0) 100%)}
.faixa::after{bottom:0;background:linear-gradient(0deg,var(--carvao2) 0%,rgba(20,26,33,0) 100%)}
.faixa__nota{z-index:2}

@media (prefers-reduced-motion:reduce){
  .mapa--mundi{opacity:1;transform:none;transition:none}
}

/* o tratamento de cor agora está na própria imagem; o CSS só acerta o brilho */
.capa__foto{filter:brightness(1.04) saturate(1)}

/* 23/09/2026: preços viram uma barra fina acima das notícias; detalhe só no clique */
.noticias #noticias-alvo{margin-top:8px}
.cotas{margin:34px 0 26px;border-top:1px solid var(--linha);border-bottom:1px solid var(--linha);font-size:13px}
.cotas__linha{display:flex;align-items:center;gap:22px;padding:11px 0;min-width:0}
.cotas__rotulo{flex:none;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--laranja);opacity:.85}
.cotas__itens{flex:1;display:flex;gap:22px;list-style:none;margin:0;padding:0;overflow-x:auto;white-space:nowrap;
  scrollbar-width:none;min-width:0}
.cotas__itens::-webkit-scrollbar{display:none}
.cotas__itens li{padding:0;opacity:.62}
.cotas__itens li::before{display:none}
.cotas__itens b{font-weight:500;font-variant-numeric:tabular-nums;opacity:.9}
.cotas__botao{flex:none;background:none;border:0;color:var(--off);opacity:.5;font:inherit;font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;cursor:pointer;padding:4px 0}
.cotas__botao:hover,.cotas__botao[aria-expanded="true"]{opacity:1;color:var(--laranja)}
.cotas__detalhe{padding:6px 0 18px}
.cotas__detalhe ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 34px}
.cotas__detalhe li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(243,240,232,.07)}
.cotas__detalhe li::before{display:none}
.cotas__detalhe i{display:block;font-style:normal;font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.45;margin-top:3px}
.cotas__detalhe b{font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.cotas__detalhe p{font-size:11px;line-height:1.6;opacity:.45;margin:14px 0 0}
.cotas__detalhe a{color:inherit}
.cotas__vazio{font-size:12px;opacity:.45;margin:10px 0}
@media (max-width:900px){ .cotas__detalhe ul{grid-template-columns:1fr 1fr} }
@media (max-width:620px){
  .cotas__linha{flex-wrap:wrap;gap:8px 16px}
  .cotas__itens{order:3;flex-basis:100%}
  .cotas__detalhe ul{grid-template-columns:1fr}
}

/* a faixa de foto agora fecha a página, entre o contato e o rodapé */
.faixa::before{background:linear-gradient(180deg,var(--carvao2) 0%,rgba(20,26,33,0) 100%)}
.faixa::after{background:linear-gradient(0deg,var(--carvao) 0%,rgba(23,29,37,0) 100%)}
.faixa + .rodape{border-top:0}
.cotas__linha{gap:18px}.cotas__itens{gap:17px;font-size:12.5px}

/* 23/09/2026: seção Antes e depois (substitui "Quem assina o trabalho") */
.ad-abas{display:flex;flex-wrap:wrap;gap:0;margin-top:42px;border-bottom:1px solid rgba(243,240,232,.18)}
.ad-aba{appearance:none;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;
  color:var(--off);font:inherit;font-size:16px;opacity:.55;padding:16px 30px 16px 0;display:flex;gap:10px;align-items:baseline;
  transition:opacity .25s ease,border-color .25s ease}
.ad-aba span{font-size:11.5px;letter-spacing:.22em;color:var(--laranja)}
.ad-aba:hover{opacity:.85}
.ad-aba.is-ativa{opacity:1;border-bottom-color:var(--laranja)}
.ad-painel{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:48px;align-items:start;margin-top:40px}
.ad-painel[hidden]{display:none}
.ad-painel.is-ativo{animation:ad-entra .45s cubic-bezier(.22,.61,.36,1)}
@keyframes ad-entra{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.ad-comp{--corte:50%;position:relative;overflow:hidden;background:#0E1217;user-select:none;touch-action:pan-y}
.ad-comp img{display:block;width:100%;height:auto}
.ad-comp__depois{position:absolute;inset:0;clip-path:inset(0 0 0 var(--corte))}
.ad-comp__depois img{width:100%;height:100%;object-fit:cover}
.ad-comp__linha{position:absolute;top:0;bottom:0;left:var(--corte);width:2px;margin-left:-1px;background:var(--laranja);pointer-events:none}
.ad-comp__linha::after{content:"";position:absolute;top:50%;left:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;
  background:var(--laranja) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M9 6l-5 6 5 6M15 6l5 6-5 6'/%3E%3C/svg%3E") center/20px no-repeat;
  box-shadow:0 2px 12px rgba(0,0,0,.45)}
.ad-comp__faixa{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;appearance:none}
.ad-comp__rot{position:absolute;top:14px;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:#F3F0E8;
  background:rgba(5,7,10,.62);padding:6px 10px;pointer-events:none}
.ad-comp__rot--a{left:14px}.ad-comp__rot--d{right:14px}

.ad-texto h3{font-size:24px;line-height:1.25;margin:4px 0 14px}
.ad-texto p{font-size:15.5px;line-height:1.7;opacity:.82;margin:0 0 14px}
.ad-rotulo{font-size:11px!important;letter-spacing:.24em;text-transform:uppercase;color:var(--laranja);opacity:1!important;margin:24px 0 10px!important}
.ad-camadas{display:flex;flex-direction:column;gap:6px}
.ad-camadas button{appearance:none;text-align:left;background:rgba(243,240,232,.03);border:1px solid var(--linha);color:var(--off);
  font:inherit;font-size:14px;padding:11px 14px;cursor:pointer;opacity:.7;transition:all .2s ease}
.ad-camadas button:hover{opacity:1;border-color:rgba(255,95,31,.55)}
.ad-camadas button.is-ativa{opacity:1;border-color:var(--laranja);background:rgba(255,95,31,.10)}
.ad-ganhos{list-style:none;margin:26px 0 0;padding:0}
.ad-ganhos li{position:relative;padding:10px 0 10px 20px;border-top:1px solid rgba(243,240,232,.08);font-size:14.5px;line-height:1.55;opacity:.85}
.ad-ganhos li::before{content:"";position:absolute;left:0;top:18px;width:7px;height:7px;border-radius:50%;background:var(--laranja)}
.ad-nota{font-size:12px!important;opacity:.45!important;margin-top:18px!important}

.ad-3d{position:relative;aspect-ratio:1.07/1;background:radial-gradient(ellipse at 50% 40%,#161a1f 0%,#0E1217 75%);overflow:hidden}
.ad-3d canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.ad-3d canvas:active{cursor:grabbing}
.ad-3d__aviso{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;font-size:13px;opacity:.55}
.ad-3d__aviso[hidden]{display:none}
.ad-3d__dica{position:absolute;left:14px;bottom:12px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;opacity:.5;pointer-events:none}

@media (max-width:980px){
  .ad-painel{grid-template-columns:1fr;gap:28px}
  .ad-camadas{flex-direction:row;flex-wrap:wrap}
}
@media (max-width:620px){ .ad-aba{font-size:14px;padding-right:18px} }

/* ===== 22. Imagens por IA com deriva de drone, 28/09/2026 =====
   Capa e faixa: imagem gerada por IA com movimento mínimo, como um drone
   pairando. Quatro variáveis animadas em períodos diferentes (deslocamento
   horizontal, vertical, escala e um giro de décimos de grau), cada uma indo
   e voltando com aceleração suave. Como os períodos não coincidem, o
   movimento nunca para de uma vez, e cada ciclo termina exatamente onde
   começou: sem emenda visível. Sem vídeo, arquivo leve. */
@property --dx{syntax:'<percentage>';inherits:false;initial-value:0%}
@property --dy{syntax:'<percentage>';inherits:false;initial-value:0%}
@property --ds{syntax:'<number>';inherits:false;initial-value:1.12}
@property --dr{syntax:'<angle>';inherits:false;initial-value:0deg}
/* 28/09 (2ª versão): a 1ª deriva, com menos de 1 px/s, não era percebida.
   Agora cerca de 5 px/s em tela cheia: visível como drone pairando, sem enjoar. */
@keyframes deriva-x{from{--dx:-3.4%}to{--dx:3.4%}}
@keyframes deriva-y{from{--dy:-1.8%}to{--dy:1.8%}}
@keyframes deriva-s{from{--ds:1.11}to{--ds:1.19}}
@keyframes deriva-r{from{--dr:-.55deg}to{--dr:.55deg}}
.deriva{transform:translate3d(var(--dx),var(--dy),0) scale(var(--ds)) rotate(var(--dr));will-change:transform;
  animation:deriva-x 23s ease-in-out infinite alternate,deriva-y 17s ease-in-out infinite alternate,
            deriva-s 29s ease-in-out infinite alternate,deriva-r 37s ease-in-out infinite alternate;
  animation-delay:-6s,-4s,-9s,-13s}
.capa__foto{background:url("assets/img/capa-ia.jpg") center 58%/cover;filter:brightness(1.02)}
/* faixa com foto removida do final em 28/09/2026: o fim do site é o contato
   (com a imagem ao anoitecer) seguido do rodapé simples, sem foto */
.rodape{border-top:0;position:relative}
.rodape::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,rgba(255,95,31,0) 0%,rgba(255,95,31,.55) 50%,rgba(255,95,31,0) 100%)}
.rodape__nota{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.55;margin:18px 0 0}

/* Contato: imagem estática ao anoitecer, dissolvida nas seções vizinhas */
#contato{position:relative;overflow:hidden}
#contato::before{content:"";position:absolute;inset:0;background:url("assets/img/contato-ia.jpg") 70% 62%/cover;opacity:.95}
#contato::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,var(--carvao2) 0%,rgba(20,26,33,0) 26%,rgba(20,26,33,0) 70%,var(--carvao2) 100%),
  linear-gradient(90deg,rgba(20,26,33,.72) 0%,rgba(20,26,33,.35) 55%,rgba(20,26,33,.1) 100%)}
#contato .wrap{position:relative;z-index:1}
#contato .contato__caixa{background:rgba(20,26,33,.66);backdrop-filter:blur(3px)}

/* imagem da frente de drones mostrada inteira (drone no alto e alvo no solo) */
.painel__figura img[src*="frente-drones-ia"]{aspect-ratio:2/3;height:auto;object-fit:cover;object-position:50% 40%}

@media (prefers-reduced-motion:reduce){.deriva{animation:none;transform:scale(1.12)}}

/* 22.2 Capa viva v2 (28/09/2026): véu mais leve para o movimento aparecer;
   a leitura do texto fica garantida pela sombra do próprio texto */
.capa--viva .capa__veu{background:
  linear-gradient(90deg,rgba(6,9,12,.66) 0%,rgba(6,9,12,.34) 40%,rgba(6,9,12,0) 72%),
  linear-gradient(180deg,rgba(6,9,12,.28) 0%,rgba(6,9,12,0) 22%)}
.capa--viva h1{text-shadow:0 2px 28px rgba(6,9,12,.6),0 1px 3px rgba(6,9,12,.35)}
.capa--viva .intro,.capa--viva .capa__olho,.capa--viva .capa__selo{text-shadow:0 1px 14px rgba(6,9,12,.7)}
.capa--viva .capa__grade{opacity:.28}
.capa__dica{position:absolute;right:28px;bottom:48px;z-index:2;margin:0;font-size:10.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--off);opacity:0;pointer-events:none;text-shadow:0 1px 10px rgba(6,9,12,.8);
  animation:dica-entra 1.2s ease 2.5s forwards;transition:opacity 1.2s ease}
.capa__dica--some{animation:none;opacity:0!important}
@keyframes dica-entra{to{opacity:.72}}
@media (max-width:900px){
  .capa--viva .capa__veu{background:linear-gradient(180deg,rgba(6,9,12,.7) 0%,rgba(6,9,12,.5) 55%,rgba(6,9,12,.3) 100%)}
  .capa__dica{right:16px;left:16px;bottom:16px;text-align:center}
}

/* 23. Ordem nova (28/09/2026): mapa logo após a capa, sem a seção de notícias.
   No celular os números saem de cima do mapa e ficam acima dele, sem sobrepor a legenda */
@media (max-width:600px){
  .mapa--mundi{aspect-ratio:.66}
  .mapa__resumo{left:24px;right:24px;top:8px;grid-template-columns:1fr 1fr;gap:16px 14px}
  .mapa__resumo .mapa__num--maior{grid-column:1/-1}
  .mapa__resumo strong{font-size:22px}
  .mapa__resumo .mapa__num--maior strong{font-size:44px}
  .mapa__resumo span{font-size:10.5px;letter-spacing:.14em}
  .mapa--mundi .mapa__legenda{left:24px;bottom:12px}
}

/* 24. Antes e depois com o caso real (28/09/2026): necessidade -> feito -> entregue */
.ad-caso{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;
  border:1px solid rgba(243,240,232,.1);background:rgba(243,240,232,.025)}
.ad-caso__passo{position:relative;padding:22px 26px 20px}
.ad-caso__passo+.ad-caso__passo{border-left:1px solid rgba(243,240,232,.1)}
.ad-caso__passo+.ad-caso__passo::before{content:"";position:absolute;left:-6px;top:26px;width:10px;height:10px;
  border-top:1px solid var(--laranja);border-right:1px solid var(--laranja);transform:rotate(45deg);background:var(--carvao2,#141A21)}
.ad-caso__rot{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--laranja);margin-bottom:10px}
.ad-caso__passo:first-child .ad-caso__rot{color:var(--off)}
.ad-caso p{margin:0;font-size:14.5px;line-height:1.65;opacity:.85}
@media (max-width:900px){
  .ad-caso{grid-template-columns:1fr}
  .ad-caso__passo+.ad-caso__passo{border-left:0;border-top:1px solid rgba(243,240,232,.1)}
  .ad-caso__passo+.ad-caso__passo::before{left:26px;top:-6px;transform:rotate(135deg)}
}
/* legenda da comparação de projeto no 3D (cores de nivelamento.py) */
.ad-3d__legenda{position:absolute;right:16px;top:16px;z-index:2;width:250px;padding:12px 14px;
  background:rgba(8,10,13,.78);border:1px solid rgba(243,240,232,.12);backdrop-filter:blur(3px)}
.ad-3d__legenda[hidden]{display:none}
.ad-3d__legenda p{margin:0 0 8px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;opacity:.8}
.ad-3d__escala{height:10px;background:linear-gradient(90deg,rgb(30,60,180) 0%,rgb(60,120,220) 26%,rgb(120,190,220) 40%,
  rgb(79,180,119) 46%,rgb(79,180,119) 54%,rgb(224,179,63) 60%,rgb(224,96,70) 74%,rgb(184,46,40) 100%)}
.ad-3d__marcas{display:flex;justify-content:space-between;margin-top:6px;font-size:10.5px;line-height:1.3;opacity:.75}
.ad-3d__marcas span:nth-child(2){text-align:center}
.ad-3d__marcas span:last-child{text-align:right}
@media (max-width:600px){.ad-3d__legenda{left:12px;right:12px;top:auto;bottom:40px;width:auto}}
@media (max-width:600px){
  .ad-3d__legenda{padding:8px 10px;bottom:34px}
  .ad-3d__legenda p{font-size:9.5px;margin-bottom:6px}
  .ad-3d__marcas{font-size:9.5px}
  .ad-3d__escala{height:7px}
}

/* 25. Capa nova (30/09/2026): vista vertical de drone, gerada por IA (opção 1 escolhida pelo titular) */
.capa__foto{background:url("assets/img/capa-vertical-ia.jpg") center 55%/cover;filter:none}

/* 26. Emendas invisíveis entre todas as seções (30/09/2026)
   capa: a foto se dissolve na cor em que o mapa começa (#19202A);
   serviços: começa na cor em que o mapa termina (noite) e clareia até o carvão;
   rodapé: mesma cor do contato, sem fio. */
.capa::after{content:"";position:absolute;left:0;right:0;bottom:0;height:240px;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(25,32,42,0) 0%,rgba(25,32,42,.35) 35%,rgba(25,32,42,.8) 70%,#19202A 100%)}
.secao--escura.servicos{background:linear-gradient(180deg,var(--noite) 0,var(--carvao2) 320px)}
.rodape{background:var(--carvao2)}
.rodape::before{display:none}
/* linhas decorativas nascem e somem dissolvidas, sem começar num corte */
.servicos__linhas{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 360px,#000 calc(100% - 200px),transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0,#000 360px,#000 calc(100% - 200px),transparent 100%)}
.capa__grade{-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent 100%);mask-image:linear-gradient(180deg,#000 60%,transparent 100%)}

/* 27. Instagram no rodapé (30/09/2026) */
.rodape__social{margin:14px 0 0}
.rodape__social a{display:inline-flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.06em;color:var(--off);text-decoration:none;opacity:.8}
.rodape__social a:hover{opacity:1;color:var(--laranja)}

/* 28. Versão clean (30/09/2026): serviços só com o título e os nomes dos serviços,
   fundo grafite quente (tom de terra da paleta), com entrada e saída suaves */
.secao--escura.servicos{background:linear-gradient(180deg,#19202A 0,#221F1B 380px,#25211C 55%,#221F1B calc(100% - 380px),var(--carvao2) 100%)}
.servicos .micro__corpo h3{margin:0}
.servicos .micro__item{align-items:center}
.servicos h2{margin-bottom:6px}

/* 29. Tecnologias (30/09/2026): faixa curta entre Serviços e Antes e depois, só ícone e nome.
   Fundo igual ao das vizinhas (carvão), sem emenda. */
.secao.tecnologias{padding:40px 0 64px}
.tecnologias h2{margin:0 0 28px}
.tec{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  border:1px solid rgba(243,240,232,.1);background:rgba(243,240,232,.02)}
.tec__item{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 14px 24px;text-align:center;
  font-size:13px;letter-spacing:.12em;text-transform:uppercase;line-height:1.45;color:var(--off)}
.tec__item+.tec__item{border-left:1px solid rgba(243,240,232,.1)}
.tec__item svg{width:56px;height:56px;opacity:.9}
@media (max-width:900px){.tec__item svg{width:46px;height:46px}}
.tec__acento{stroke:var(--laranja);fill:none}
circle.tec__acento{fill:var(--laranja);stroke:none}
@media (max-width:900px){
  .tec{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tec__item+.tec__item{border-left:0}
  .tec__item{border-top:1px solid rgba(243,240,232,.1);font-size:11.5px}
  .tec__item:nth-child(-n+2){border-top:0}
  .tec__item:nth-child(even){border-left:1px solid rgba(243,240,232,.1)}
  .tec__item:last-child{grid-column:1/-1}
}

/* 30. Capa alinhada e com curvas de nível (30/09/2026) */
/* curvas finas sobre a foto, no mesmo enquadramento dela; mais leves sob o texto */
.capa__curvas{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:url("assets/img/capa-curvas.svg") center 55%/cover no-repeat;
  -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,.5) 40%,#000 64%);
  mask-image:linear-gradient(90deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,.5) 40%,#000 64%);
  opacity:0;animation:curvas-entra 2.4s ease .3s forwards}
@keyframes curvas-entra{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.capa__curvas{animation:none;opacity:1}}
.capa .capa__grade{display:none}
/* bloco de texto: uma frase por linha, ritmo vertical regular, subtítulo sem palavra sozinha */
.capa .wrap{padding-top:120px;padding-bottom:128px}
.capa__olho{margin:0 0 26px}
.capa h1{max-width:none;margin:0;line-height:1.08}
.capa h1 span{display:block}
.capa h1::after{content:"";display:block;width:56px;height:3px;background:var(--laranja);margin-top:30px}
.capa .intro{margin-top:26px;max-width:34em;text-wrap:balance;font-size:19px;line-height:1.6}
.capa__acoes{margin-top:36px}
.capa__selo{margin-top:40px}
/* coordenada alinhada à margem direita do conteúdo */
.capa__coord{right:max(28px,calc((100% - var(--max)) / 2 + 28px));bottom:30px}
@media (max-width:600px){
  .capa .wrap{padding-top:64px;padding-bottom:88px}
  .capa .intro{font-size:17px}
  .capa h1::after{margin-top:22px;width:44px}
}
@media (min-width:901px){.capa .intro{max-width:none;white-space:nowrap;font-size:19px}}

/* 31. Capa com curvas na própria foto (30/09/2026): opção 1 do Codex (pôr do sol, rio, lago, trigo) */
.capa__foto{background:url("assets/img/capa-curvas-ia.jpg") center 60%/cover;filter:none}

/* 32. Blog (03/10/2026): lista em cartões e página de artigo, mesma linguagem do site */
.pg-blog{background:var(--carvao2);color:var(--off)}
.blog,.art{padding:150px 0 90px}
.blog__titulo{font-size:clamp(32px,4.4vw,52px);margin:6px 0 14px;line-height:1.1}
.blog__intro{max-width:52ch;opacity:.8;font-size:18px;margin:0}
.blog-grade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:46px}
.blog-card{display:flex;flex-direction:column;gap:12px;padding:26px 24px 22px;border:1px solid rgba(243,240,232,.1);
  background:rgba(243,240,232,.025);color:var(--off);text-decoration:none;transition:border-color .25s,transform .25s}
.blog-card:hover{border-color:var(--laranja);transform:translateY(-3px)}
.blog-card__cat{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--laranja)}
.blog-card__tit{font-size:20px;line-height:1.3;font-weight:500}
.blog-card__desc{font-size:14.5px;line-height:1.6;opacity:.75;flex:1}
.blog-card__meta{font-size:12px;letter-spacing:.08em;opacity:.5}
.art__wrap{max-width:780px}
.art__trilha{font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.7;margin:0 0 18px}
.art__trilha a{color:var(--laranja);text-decoration:none}
.art__titulo{font-size:clamp(30px,4vw,46px);line-height:1.15;margin:0}
.art__meta{font-size:13px;opacity:.6;margin:18px 0 0;padding-bottom:28px;border-bottom:1px solid rgba(243,240,232,.12)}
.art__corpo{font-size:17.5px;line-height:1.75}
.art__corpo h2{font-size:26px;line-height:1.25;margin:48px 0 14px}
.art__corpo p{margin:0 0 18px;opacity:.9}
.art__corpo ul,.art__corpo ol{margin:0 0 20px;padding-left:22px}
.art__corpo li{margin:0 0 10px;opacity:.9}
.art__corpo b{color:#fff;font-weight:500}
.art-resumo{margin:34px 0 10px;padding:22px 26px;border-left:3px solid var(--laranja);background:rgba(243,240,232,.04)}
.art-resumo__tit,.art-fontes__tit,.art-rel__tit{font-size:11.5px!important;letter-spacing:.24em;text-transform:uppercase;color:var(--laranja);opacity:1!important;margin:0 0 10px!important}
.art-resumo ul{margin:0}
.art-etapas{counter-reset:et;list-style:none;padding:0!important}
.art-etapas li{counter-increment:et;position:relative;padding:12px 0 12px 48px;border-top:1px solid rgba(243,240,232,.1)}
.art-etapas li::before{content:counter(et,decimal-leading-zero);position:absolute;left:0;top:13px;color:var(--laranja);font-size:14px;letter-spacing:.1em}
.art-fontes{margin-top:44px;padding-top:22px;border-top:1px solid rgba(243,240,232,.12);font-size:14.5px}
.art-fontes__nota{font-size:13px!important;opacity:.55!important}
.art-cta{margin-top:46px;padding:30px 30px 32px;border:1px solid rgba(255,95,31,.45);background:rgba(255,95,31,.06)}
.art-cta__tit{font-size:22px;font-weight:500;margin:0 0 8px}
.art-cta p{opacity:.85;margin:0 0 20px}
.art-rel{margin-top:40px}
.art-rel ul{list-style:none;padding:0;margin:0}
.art-rel li{border-top:1px solid rgba(243,240,232,.1)}
.art-rel a{display:block;padding:12px 0;color:var(--off);text-decoration:none}
.art-rel a:hover{color:var(--laranja)}
.art-rascunho{position:sticky;top:76px;z-index:20;margin:-40px 0 40px;padding:10px 16px;text-align:center;background:#FF5F1F;color:#171D25;
  font-size:12px;letter-spacing:.16em;font-weight:500}
@media (max-width:900px){
  .blog-grade{grid-template-columns:1fr}
  .blog,.art{padding:110px 0 70px}
  .art__corpo{font-size:16.5px}
  .art__corpo h2{font-size:22px}
}

/* 33. Contato com o mapa ao fundo e os números ao lado (06/10/2026).
   A seção do mapa saiu do topo; o mapa virou o fundo do contato, no lugar da foto. */
#contato::before{display:none}
#contato::after{background:
  linear-gradient(180deg,var(--carvao2) 0%,rgba(20,26,33,0) 16%,rgba(20,26,33,0) 84%,var(--carvao2) 100%),
  linear-gradient(90deg,rgba(20,26,33,.82) 0%,rgba(20,26,33,.55) 48%,rgba(20,26,33,.15) 100%)}
.mapa--mundi.mapa--fundo{position:absolute;inset:0;width:auto;height:auto;aspect-ratio:auto;max-height:none;margin:0;z-index:0;opacity:.85}
.mapa--mundi.mapa--fundo.is-visivel{opacity:.85}
.contato-mapa .grade{pointer-events:none}
.contato-mapa .grade>*{pointer-events:auto}
.contato-mapa .grade--2{align-items:start}
.contato__sub{margin:26px 0 22px;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--laranja)}
.mapa__resumo.contato__nums{position:static;display:grid;grid-template-columns:1fr 1fr;gap:24px 28px;pointer-events:auto}
.contato__nums .mapa__num--maior{grid-column:1/-1}
.contato__nums strong{font-size:clamp(24px,2.4vw,32px)}
.contato__nums .mapa__num--maior strong{font-size:clamp(46px,5vw,64px)}
.contato__nums span{font-size:11px;margin-top:8px}
.contato__pe{position:relative;z-index:1;margin-top:46px}
.contato__pe .mapa__legenda{position:static;margin:0}
.contato__pe .mapa__nota{margin-top:10px}
@media (max-width:600px){
  .mapa--mundi.mapa--fundo{opacity:.6}
  .contato__nums strong{font-size:22px}
  .contato__nums .mapa__num--maior strong{font-size:44px}
}
/* mapa do contato um pouco mais presente à direita */
.mapa--mundi.mapa--fundo,.mapa--mundi.mapa--fundo.is-visivel{opacity:1}
#contato::after{background:
  linear-gradient(180deg,var(--carvao2) 0%,rgba(20,26,33,0) 14%,rgba(20,26,33,0) 86%,var(--carvao2) 100%),
  linear-gradient(90deg,rgba(20,26,33,.78) 0%,rgba(20,26,33,.45) 46%,rgba(20,26,33,0) 100%)}
#contato .contato__caixa{background:rgba(20,26,33,.5);backdrop-filter:none}
/* números do contato: prefixo "+ de" menor, rótulos em duas linhas no máximo */
.contato__nums strong small{font-size:.42em;letter-spacing:.06em;margin-right:4px;opacity:.75;vertical-align:.45em}
.contato__nums{margin-top:30px}
.contato__nums span{max-width:30ch}
@media (max-width:600px){
  .contato__nums .mapa__num--maior{order:0}
  .contato__nums [data-ind="area_campo"]{grid-column:1/-1;order:1}
  .contato__nums .mapa__num:not(.mapa__num--maior):not([data-ind="area_campo"]){order:2}
}

/* 34. Tecnologias interativas (06/10/2026): destaque "de sensor" no hover e painel que desce no clique */
.tec__item[data-tec]{position:relative;cursor:pointer;overflow:hidden;outline:none;
  transition:background .35s ease,color .35s ease,box-shadow .35s ease}
.tec__item[data-tec] svg{transition:transform .35s ease,filter .35s ease,color .35s ease}
.tec__item[data-tec]::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s ease;
  background:radial-gradient(circle at 50% 38%,rgba(255,95,31,.22) 0%,rgba(255,95,31,0) 60%),
             repeating-linear-gradient(0deg,rgba(243,240,232,.035) 0 1px,transparent 1px 4px)}
.tec__item[data-tec]::after{content:"";position:absolute;left:0;right:0;height:2px;top:-4px;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,#FF5F1F,transparent);box-shadow:0 0 12px rgba(255,95,31,.9)}
.tec__item[data-tec]:hover,.tec__item[data-tec]:focus-visible,.tec__item[data-tec].is-ativo{
  background:rgba(255,95,31,.06);box-shadow:inset 0 0 0 1px rgba(255,95,31,.55)}
.tec__item[data-tec]:hover::before,.tec__item[data-tec]:focus-visible::before,.tec__item[data-tec].is-ativo::before{opacity:1}
.tec__item[data-tec]:hover::after,.tec__item[data-tec]:focus-visible::after{animation:tec-varre 1.6s linear infinite;opacity:1}
.tec__item[data-tec]:hover svg,.tec__item[data-tec]:focus-visible svg,.tec__item[data-tec].is-ativo svg{
  color:#FF7A45;transform:translateY(-3px) scale(1.06);filter:drop-shadow(0 0 8px rgba(255,95,31,.65))}
.tec__item[data-tec].is-ativo span{color:#fff}
@keyframes tec-varre{0%{top:-4px}100%{top:100%}}
/* painel que desce */
.tec-painel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.22,.61,.36,1)}
.tec-painel.is-aberto{grid-template-rows:1fr}
.tec-painel__in{overflow:hidden}
.tec-info{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:8px 48px;align-items:start;
  margin-top:-1px;padding:30px 32px 32px;border:1px solid rgba(255,95,31,.45);border-top:2px solid #FF5F1F;
  background:linear-gradient(180deg,rgba(255,95,31,.07) 0%,rgba(243,240,232,.02) 100%);animation:tec-entra .45s ease}
.tec-info[hidden]{display:none}
.tec-info__rot{grid-column:1/-1;margin:0;font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:#FF5F1F}
.tec-info__frase{margin:4px 0 0;font-size:clamp(22px,2.4vw,30px);line-height:1.2;font-weight:500}
.tec-info__txt{margin:6px 0 0;font-size:15.5px;line-height:1.65;opacity:.85;grid-column:1}
.tec-info__lista{grid-column:2;grid-row:2/4;list-style:none;margin:6px 0 0;padding:0}
.tec-info__lista li{position:relative;padding:11px 0 11px 22px;border-top:1px solid rgba(243,240,232,.1);font-size:14.5px}
.tec-info__lista li::before{content:"";position:absolute;left:0;top:18px;width:8px;height:8px;border:1px solid #FF5F1F;transform:rotate(45deg)}
@keyframes tec-entra{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (max-width:900px){
  .tec-info{grid-template-columns:1fr;padding:24px 20px 24px}
  .tec-info__lista{grid-column:1;grid-row:auto}
}
@media (prefers-reduced-motion:reduce){
  .tec__item[data-tec]::after{animation:none}.tec-painel{transition:none}.tec-info{animation:none}
}
/* números do contato no celular: área numa linha só */
@media (max-width:600px){
  .contato__nums [data-ind="area_campo"] strong{font-size:21px;white-space:nowrap}
}

/* 35. Aba 05 (geoprocessamento com drone): legenda das classes */
.ad-legenda{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;font-size:13.5px}
.ad-legenda li{display:flex;align-items:center;gap:10px;opacity:.85}
.ad-legenda i{width:14px;height:14px;flex:none;border:1px solid rgba(243,240,232,.25)}

/* 36. Seção Blog na página inicial (07/10/2026): cinco cartões que abrem o artigo completo */
.blog-home__grade{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-top:40px}
.blog-home .blog-card{background:rgba(243,240,232,.025);min-height:230px;padding:24px 22px 20px}
.blog-card__num{font-size:13px;letter-spacing:.14em;color:var(--laranja);opacity:.9}
.blog-home .blog-card__tit{font-size:18px;flex:1}
.blog-home .blog-card__meta{display:flex;justify-content:space-between;align-items:center}
.blog-home .blog-card__meta b{color:var(--laranja);font-size:16px;font-weight:400;transition:transform .3s ease}
.blog-home .blog-card:hover .blog-card__meta b{transform:translateX(4px)}
@media (max-width:1100px){.blog-home__grade{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.blog-home__grade{grid-template-columns:1fr}.blog-home .blog-card{min-height:0}}

/* 37. Dica do comparador antes e depois (07/10/2026) */
.ad-comp__dica{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:3;pointer-events:none;
  display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;white-space:nowrap;
  background:rgba(20,26,33,.78);border:1px solid rgba(255,95,31,.6);color:#F3F0E8;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;transition:opacity .5s ease}
.ad-comp__dica::before{content:"\2194";color:var(--laranja);font-size:15px;letter-spacing:0}
.ad-comp__dica .toque{display:none}
@media (hover:none),(pointer:coarse){.ad-comp__dica .mouse{display:none}.ad-comp__dica .toque{display:inline}}
.ad-comp.is-usado .ad-comp__dica{opacity:0}

/* 38. Rótulos laranja em Serviços e Tecnologias (07/10/2026) e âncoras abaixo da barra fixa */
.tecnologias .rotulo{margin-bottom:10px}
section[id]{scroll-margin-top:76px}

/* 39. Logo animado do topo (08/10/2026): quadro, trilha laranja desenhada como trilha de GPS,
   ponto final e depois o A e o resto do nome. Repete ao voltar à capa. */
.topo .logo-anim{display:block;width:190px;height:auto;overflow:visible;transition:width .3s ease}
.topo.is-rolado .logo-anim{width:160px}
.logo-anim .lg-quadro,.logo-anim .lg-ponto,.logo-anim .lg-l{transform-box:fill-box;transform-origin:center}
.logo-anim.is-anim .lg-quadro{animation:lg-quadro .5s cubic-bezier(.22,.61,.36,1) both}
.logo-anim.is-anim .lg-trilha{stroke-dasharray:1 1;animation:lg-trilha 1.05s .3s cubic-bezier(.65,0,.35,1) both}
.logo-anim.is-anim .lg-ponto{animation:lg-ponto .38s 1.25s cubic-bezier(.34,1.56,.64,1) both}
.logo-anim.is-anim .lg-l{animation:lg-letra .42s calc(1.5s + var(--i) * .07s) cubic-bezier(.22,.61,.36,1) both}
.logo-anim.is-anim .lg-l[style="--i:0"]{animation:lg-a .45s 1.45s cubic-bezier(.22,.61,.36,1) both}
@keyframes lg-quadro{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}
@keyframes lg-trilha{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes lg-ponto{from{opacity:0;transform:scale(0)}to{opacity:1;transform:none}}
@keyframes lg-a{from{opacity:0;transform:translateY(40%)}to{opacity:1;transform:none}}
@keyframes lg-letra{from{opacity:0;transform:translateX(-60%)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.logo-anim.is-anim *{animation:none!important}}

/* 40. Barra de progresso no topo (09/10/2026): linha laranja com a bolinha, como a trilha do símbolo,
   cresce da esquerda para a direita conforme a página é rolada. */
.topo{position:sticky}
.topo__progresso{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none}
.topo__progresso span{position:absolute;left:0;top:0;height:2px;width:var(--prog,0%);
  background:linear-gradient(90deg,rgba(255,95,31,0) 0,rgba(255,95,31,.55) 90px,#FF5F1F 100%);box-shadow:0 0 8px rgba(255,95,31,.45)}
.topo__progresso span::after{content:"";position:absolute;right:-5px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;
  background:#FF5F1F;box-shadow:0 0 10px rgba(255,95,31,.8);opacity:var(--prog-ponto,0);transition:opacity .3s ease}

/* 41. Fundo um tom mais claro e quadros transparentes com aspecto técnico (09/10/2026).
   Paleta de fundo clareada em todo o arquivo (#0B0E12 -> #141A21 e vizinhas). A grade fina fica
   presa à tela (background-attachment:fixed), então continua sem emenda de uma seção para outra. */
.topo__progresso{height:1px}
.topo__progresso span{height:1px;box-shadow:0 0 5px rgba(255,95,31,.35)}
.topo__progresso span::after{width:6px;height:6px;margin-top:-3px;right:-3px;box-shadow:0 0 6px rgba(255,95,31,.7)}
:root{--grade:linear-gradient(rgba(243,240,232,.032) 1px,transparent 1px) 0 0/56px 56px fixed,
               linear-gradient(90deg,rgba(243,240,232,.032) 1px,transparent 1px) 0 0/56px 56px fixed}
.secao--escura.tecnologias,.secao--escura.antes-depois,.secao--escura.blog-home{background:var(--grade),var(--carvao2)}
.secao--escura.servicos{background:var(--grade),linear-gradient(180deg,#19202A 0,#221F1B 380px,#25211C 55%,#221F1B calc(100% - 380px),var(--carvao2) 100%)}
.ad-caso,.tec,.blog-card,.blog-home .blog-card,.tec-info{
  background:
    linear-gradient(var(--laranja),var(--laranja)) left top/14px 1px no-repeat,
    linear-gradient(var(--laranja),var(--laranja)) left top/1px 14px no-repeat,
    linear-gradient(var(--laranja),var(--laranja)) right bottom/14px 1px no-repeat,
    linear-gradient(var(--laranja),var(--laranja)) right bottom/1px 14px no-repeat,
    linear-gradient(160deg,rgba(243,240,232,.075) 0%,rgba(243,240,232,.02) 100%);
  border:1px solid rgba(243,240,232,.14);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.tec-info{border-top:1px solid rgba(255,95,31,.6)}
.blog-home .blog-card:hover,.blog-card:hover{border-color:rgba(255,95,31,.7)}
.form input,.form textarea{background:rgba(243,240,232,.05);border-color:rgba(243,240,232,.18);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}

/* 42. Fundo de curvas de nível em 3D (09/10/2026), no lugar da grade quadriculada.
   Canvas fixo atrás do conteúdo (fundo-3d.js). Serviços, Tecnologias, Soluções e Blog ficam com
   fundo transparente; a capa e o contato continuam opacos, com transição suave nas pontas. */
body{background:var(--carvao2)}
#fundo-3d{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.secao--escura.tecnologias,.secao--escura.antes-depois,.secao--escura.blog-home{background:transparent}
.secao--escura.servicos{background:linear-gradient(180deg,#19202A 0,rgba(34,31,27,.9) 380px,rgba(37,33,28,.72) 55%,rgba(34,31,27,.45) calc(100% - 380px),rgba(20,26,33,0) 100%)}
.blog-home{position:relative}
.blog-home>.wrap{position:relative;z-index:1}
.blog-home::after{content:"";position:absolute;left:0;right:0;bottom:0;height:260px;pointer-events:none;
  background:linear-gradient(180deg,rgba(20,26,33,0) 0%,var(--carvao2) 100%)}

/* 43. Logo animado v2 (09/10/2026): as três curvas do símbolo e a trilha laranja se desenham juntas,
   como trilhas de GPS; o quadro bege aparece enquanto o nome AGRISPACE se forma, e as curvas
   desenhadas dão lugar aos recortes originais do símbolo. Estado final = logo oficial. */
.logo-anim .lg-curvas{opacity:0}
.logo-anim.is-anim .lg-curvas{animation:lg-curvas-sai 1s 1.2s ease both}
.logo-anim.is-anim .lg-curva{stroke-dasharray:1 1;animation:lg-trilha 1.1s cubic-bezier(.65,0,.35,1) both}
.logo-anim.is-anim .lg-curva:nth-child(2){animation-delay:.08s}
.logo-anim.is-anim .lg-curva:nth-child(3){animation-delay:.16s}
.logo-anim.is-anim .lg-trilha{animation:lg-trilha 1.1s 0s cubic-bezier(.65,0,.35,1) both}
.logo-anim.is-anim .lg-ponto{animation:lg-ponto .38s 1.05s cubic-bezier(.34,1.56,.64,1) both}
.logo-anim.is-anim .lg-quadro{animation:lg-quadro-v2 1s 1.2s ease both}
.logo-anim.is-anim .lg-l[style="--i:0"]{animation:lg-a .45s 1.2s cubic-bezier(.22,.61,.36,1) both}
.logo-anim.is-anim .lg-l{animation-delay:calc(1.3s + var(--i) * .07s)}
@keyframes lg-curvas-sai{0%{opacity:1}100%{opacity:0}}
@keyframes lg-quadro-v2{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.logo-anim .lg-curvas{display:none}}

/* 44. Terreno 3D contínuo (v2, 09/10/2026): um só relevo WebGL do topo ao contato, com leitura
   diferente em cada seção (fundo-3d.js). Só vale quando o WebGL carregou (html.tem-3d);
   sem ele, a capa continua com a foto. */
.tem-3d .capa{background:transparent}
.tem-3d .capa__foto{display:none}
.tem-3d .capa::after{display:none}
.tem-3d .capa__veu{background:linear-gradient(90deg,rgba(20,26,33,.86) 0%,rgba(20,26,33,.62) 38%,rgba(20,26,33,.08) 72%,rgba(20,26,33,0) 100%),
  linear-gradient(180deg,rgba(20,26,33,.35) 0%,rgba(20,26,33,0) 22%)}
.tem-3d .secao--escura.servicos{background:transparent}
.tem-3d .servicos__linhas{display:none}
@media (max-width:700px){
  .tem-3d .capa__veu{background:linear-gradient(180deg,rgba(20,26,33,.78) 0%,rgba(20,26,33,.55) 60%,rgba(20,26,33,.35) 100%)}
}
.tem-3d .capa__veu{-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent 100%);mask-image:linear-gradient(180deg,#000 70%,transparent 100%)}
.tem-3d .servicos .rotulo,.tem-3d .servicos h2{text-shadow:0 2px 18px rgba(10,13,17,.85),0 0 4px rgba(10,13,17,.6)}

/* 45. Mapa 3D no contato (09/10/2026): com WebGL, o mapa 2D some e o contato fica transparente
   sobre o fundo 3D, que forma o mapa de atuação em relevo. Véu à esquerda para leitura. */
.tem-3d #mapa-mundi{visibility:hidden}
.tem-3d .secao--escura.contato-mapa{background:transparent}
.tem-3d #contato::after{background:
  linear-gradient(180deg,rgba(20,26,33,0) 0%,rgba(20,26,33,0) 88%,var(--carvao2) 100%),
  linear-gradient(90deg,rgba(20,26,33,.5) 0%,rgba(20,26,33,.42) 44%,rgba(20,26,33,0) 75%)}
.tem-3d .blog-home::after{display:none}
@media (max-width:700px){
  .tem-3d #contato::after{background:linear-gradient(180deg,rgba(20,26,33,.55) 0%,rgba(20,26,33,.35) 55%,rgba(20,26,33,0) 80%,var(--carvao2) 100%)}
}

/* 46. Capa com foto realista sobre o fundo 3D (09/10/2026): a foto (capa-curvas-ia.jpg) volta e se
   dissolve, no pé da capa, no relevo de curvas de nível que segue pelas outras seções. */
.tem-3d .capa__foto{display:block;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 62%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 62%,transparent 100%)}
.globo-rotulo{position:absolute;z-index:1;pointer-events:none;transform:translate(-50%,-100%);margin-top:-14px;
  font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:#F3F0E8;white-space:nowrap;
  padding:5px 9px;background:rgba(20,26,33,.72);border:1px solid rgba(255,95,31,.55)}
.globo-rotulo::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:12px;background:rgba(255,95,31,.7)}
@media (max-width:700px){.globo-rotulo{display:none}}

/* 47. Capa v6 (09/10/2026): sem foto; grade de CAD e globo girável desenhados pelo fundo 3D */
.tem-3d .capa__foto{display:none}
.tem-3d .capa__veu{background:linear-gradient(90deg,rgba(20,26,33,.55) 0%,rgba(20,26,33,.2) 40%,rgba(20,26,33,0) 60%);-webkit-mask-image:none;mask-image:none}
.tem-3d .capa.sobre-globo{cursor:grab}
.tem-3d .capa.is-girando,.tem-3d .capa.is-girando *{cursor:grabbing;user-select:none}
@media (max-width:700px){.tem-3d .capa__veu{background:linear-gradient(180deg,rgba(20,26,33,.35) 0%,rgba(20,26,33,.15) 60%,rgba(20,26,33,0) 100%)}}

/* 48. Quadros menos transparentes sobre o fundo 3D (10/10/2026): leitura em primeiro lugar */
.tem-3d .ad-caso,.tem-3d .tec,.tem-3d .blog-card,.tem-3d .blog-home .blog-card,.tem-3d .tec-info{
  background:
    linear-gradient(var(--laranja),var(--laranja)) left top/14px 1px no-repeat,
    linear-gradient(var(--laranja),var(--laranja)) left top/1px 14px no-repeat,
    linear-gradient(var(--laranja),var(--laranja)) right bottom/14px 1px no-repeat,
    linear-gradient(var(--laranja),var(--laranja)) right bottom/1px 14px no-repeat,
    linear-gradient(160deg,rgba(30,37,46,.9) 0%,rgba(20,26,33,.86) 100%);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.tem-3d .form input,.tem-3d .form textarea{background:rgba(20,26,33,.8)}
.tem-3d #contato .contato__caixa{background:rgba(20,26,33,.82);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.tem-3d .servicos .painel__texto,.tem-3d .servicos .abas{position:relative}

/* 49. Legenda das leituras do globo (10/10/2026) */
.globo-leitura{position:absolute;z-index:2;transform:translate(-50%,-100%);text-align:center;pointer-events:none;width:max-content;max-width:340px;
  opacity:0;transition:opacity .4s ease}
.globo-leitura span,.globo-leitura b,.globo-leitura small{display:block;opacity:0;transform:translateY(6px);transition:opacity .6s ease,transform .6s ease}
.globo-leitura.is-vis span,.globo-leitura.is-vis b,.globo-leitura.is-vis small{opacity:1;transform:none}
.globo-leitura.is-vis b{transition-delay:.08s}.globo-leitura.is-vis small{transition-delay:.16s}
.globo-leitura__n{font-size:10.5px;letter-spacing:.26em;color:var(--laranja);margin-bottom:6px}
.globo-leitura b{font-size:15px;font-weight:500;letter-spacing:.04em;color:#F3F0E8}
.globo-leitura small{font-size:12.5px;line-height:1.5;color:rgba(243,240,232,.62);margin-top:4px}
@media (max-width:700px){.globo-leitura{display:none}}

/* 50. Painel técnico das leituras do globo (10/10/2026): substitui a legenda simples */
.globo-leitura{display:none}
.globo-painel{position:absolute;z-index:3;width:270px;padding:14px 16px 14px;background:rgba(17,22,28,.86);
  border:1px solid rgba(243,240,232,.14);border-left:2px solid var(--laranja);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  font-family:inherit;color:#F3F0E8;transition:opacity .4s ease}
.globo-painel__topo{display:flex;align-items:center;justify-content:space-between;gap:10px}
.globo-painel__tag{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:rgba(243,240,232,.55)}
.globo-painel__tag b{color:var(--laranja);font-weight:500}
.globo-painel__nav{display:flex;gap:4px}
.globo-painel__seta{width:26px;height:26px;display:grid;place-items:center;padding:0;cursor:pointer;font-size:17px;line-height:1;
  color:#F3F0E8;background:transparent;border:1px solid rgba(243,240,232,.22);transition:border-color .2s,color .2s}
.globo-painel__seta:hover{border-color:var(--laranja);color:var(--laranja)}
.globo-painel__tit{margin:10px 0 0;font-size:15.5px;font-weight:500;letter-spacing:.02em}
.globo-painel__txt{margin:5px 0 0;font-size:12.5px;line-height:1.5;color:rgba(243,240,232,.62)}
.globo-painel__tit,.globo-painel__txt{opacity:0;transform:translateY(4px);transition:opacity .5s ease,transform .5s ease}
.globo-painel.is-vis .globo-painel__tit,.globo-painel.is-vis .globo-painel__txt{opacity:1;transform:none}
.globo-painel.is-vis .globo-painel__txt{transition-delay:.08s}
.globo-painel__barras{display:flex;gap:5px;margin-top:12px}
.globo-painel__barras button{flex:1;height:3px;padding:0;border:0;cursor:pointer;background:rgba(243,240,232,.16)}
.globo-painel__barras button.is-ativa{background:var(--laranja)}
.globo-painel__guia{position:absolute;left:-2px;bottom:-34px;width:1px;height:34px;background:linear-gradient(var(--laranja),rgba(255,95,31,0))}
.globo-painel__guia::after{content:"";position:absolute;left:-3px;bottom:-3px;width:7px;height:7px;border-radius:50%;border:1px solid var(--laranja)}
@media (max-width:1100px){.globo-painel{width:230px}}
@media (max-width:700px){.globo-painel{display:none}}

/* 51. Fundo em cenários de mapa (10/10/2026): grafite mais claro, sem véu no contato, quadros destacados */
.tem-3d body,body{background:#222A33}
.tem-3d #contato::after{display:none}
.tem-3d .rodape{background:#222A33}
.tem-3d #contato .contato__caixa{background:rgba(16,21,27,.94);border-color:rgba(243,240,232,.16)}
.tem-3d .form input,.tem-3d .form textarea{background:rgba(34,42,51,.9);border-color:rgba(243,240,232,.2)}
.tem-3d .ad-caso,.tem-3d .tec,.tem-3d .blog-card,.tem-3d .blog-home .blog-card,.tem-3d .tec-info{
  background:
    linear-gradient(var(--laranja),var(--laranja)) left top/14px 1px no-repeat,
    linear-gradient(var(--laranja),var(--laranja)) left top/1px 14px no-repeat,
    linear-gradient(var(--laranja),var(--laranja)) right bottom/14px 1px no-repeat,
    linear-gradient(var(--laranja),var(--laranja)) right bottom/1px 14px no-repeat,
    linear-gradient(160deg,rgba(22,28,35,.94) 0%,rgba(16,21,27,.92) 100%)}
.tem-3d .capa__veu{background:linear-gradient(90deg,rgba(34,42,51,.5) 0%,rgba(34,42,51,.18) 40%,rgba(34,42,51,0) 60%)}
@media (max-width:700px){.tem-3d .capa__veu{background:linear-gradient(180deg,rgba(34,42,51,.35) 0%,rgba(34,42,51,.12) 60%,rgba(34,42,51,0) 100%)}}
.tem-3d .capa::after,.tem-3d .blog-home::after,.tem-3d .servicos::before,.tem-3d .servicos::after{display:none}

/* 52. Capa com imagem de satélite (10/10/2026): três composições que se alternam devagar, com leve
   aproximação contínua. Globo e fundos animados retirados. */
.capa{background:var(--carvao2)}
.capa-sat{position:absolute;inset:0;overflow:hidden;z-index:0}
.capa-sat__c{position:absolute;inset:-3%;background:center/cover no-repeat;opacity:0;
  animation:sat-troca 30s infinite,sat-zoom 60s ease-in-out infinite alternate}
.capa-sat__c--1{background-image:url("assets/img/capa-sat-natural.jpg");animation-delay:0s,0s}
.capa-sat__c--2{background-image:url("assets/img/capa-sat-falsacor.jpg");animation-delay:10s,0s}
.capa-sat__c--3{background-image:url("assets/img/capa-sat-indice.jpg");animation-delay:20s,0s}
@keyframes sat-troca{0%{opacity:0}6%{opacity:1}33%{opacity:1}40%{opacity:0}100%{opacity:0}}
@keyframes sat-zoom{from{transform:scale(1)}to{transform:scale(1.06)}}
.capa-sat__leg{position:absolute;right:max(28px,calc((100% - var(--max)) / 2 + 28px));bottom:30px;z-index:2;margin:0;
  font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(243,240,232,.7);display:flex;gap:10px;align-items:center}
.capa-sat__leg b{font-weight:500;color:var(--laranja)}
.capa-sat__leg span{position:absolute;right:0;bottom:-16px;white-space:nowrap;opacity:0;animation:sat-troca 30s infinite}
.capa-sat__leg span:nth-of-type(2){animation-delay:10s}.capa-sat__leg span:nth-of-type(3){animation-delay:20s}
.tem-3d .capa .capa__veu,.capa .capa__veu{z-index:1;background:linear-gradient(90deg,rgba(14,18,23,.86) 0%,rgba(14,18,23,.62) 38%,rgba(14,18,23,.12) 70%,rgba(14,18,23,0) 100%),
  linear-gradient(0deg,var(--carvao2) 0%,rgba(34,42,51,0) 22%)}
.capa .wrap{position:relative;z-index:2}
@media (max-width:700px){.capa .capa__veu,.tem-3d .capa .capa__veu{background:linear-gradient(180deg,rgba(14,18,23,.8) 0%,rgba(14,18,23,.6) 60%,var(--carvao2) 100%)}.capa-sat__leg{left:16px;right:auto;bottom:20px}.capa-sat__leg span{left:0;right:auto}}
@media (prefers-reduced-motion:reduce){.capa-sat__c{animation:none}.capa-sat__c--1{opacity:1}.capa-sat__leg span{animation:none}.capa-sat__leg span:nth-of-type(1){opacity:1}}
:root{--carvao2:#222A33}
.capa{min-height:calc(100vh - 74px);min-height:calc(100svh - 74px);display:flex;align-items:center}
.capa>.wrap{width:100%}
.capa-sat__leg span{bottom:-17px}
.tem-3d .capa .capa__veu,.capa .capa__veu{background:linear-gradient(0deg,var(--carvao2) 0%,rgba(34,42,51,0) 20%),
  linear-gradient(90deg,rgba(14,18,23,.86) 0%,rgba(14,18,23,.62) 38%,rgba(14,18,23,.12) 70%,rgba(14,18,23,0) 100%)}
@media (max-width:700px){.capa .capa__veu,.tem-3d .capa .capa__veu{background:linear-gradient(180deg,rgba(14,18,23,.8) 0%,rgba(14,18,23,.55) 70%,var(--carvao2) 100%)}}
.capa-sat__leg{bottom:70px;z-index:3}
@media (max-width:700px){.capa-sat__leg{bottom:40px}}

/* 53. Satélite Sentinel-2 na capa e no fundo (11/10/2026): imagem fixa atrás do site (sat-fundo.js) */
.sat-palco{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;will-change:transform,opacity}
.sat-palco__in{position:absolute;top:0;will-change:transform}
.sat-fundo{position:absolute;inset:0;width:100%;height:100%;display:block}
.sat-palco__capa{position:absolute;left:0;top:0;width:100%}
.sat-comp{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;opacity:0;transition:opacity .8s ease}
.sat-comp.is-ativa{opacity:1}
.sat-palco__veu{position:absolute;inset:0;background:#18202A;opacity:0}
.tem-sat .capa,.tem-sat .secao--escura{background:transparent}
.tem-sat .capa__foto,.tem-sat .capa::after{display:none}
.tem-sat .capa .capa__veu{background:linear-gradient(90deg,rgba(14,18,23,.88) 0%,rgba(14,18,23,.62) 36%,rgba(14,18,23,.1) 66%,rgba(14,18,23,0) 100%)}
@media (max-width:700px){.tem-sat .capa .capa__veu{background:linear-gradient(180deg,rgba(14,18,23,.82) 0%,rgba(14,18,23,.62) 65%,rgba(14,18,23,.3) 100%)}}
/* painel da leitura */
.sat-leg{position:absolute;z-index:3;right:max(28px,calc((100% - var(--max)) / 2 + 28px));bottom:48px;width:300px;padding:14px 16px;
  background:rgba(14,18,23,.84);border:1px solid rgba(243,240,232,.14);border-left:2px solid var(--laranja);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.sat-leg__topo{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sat-leg__tag{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:rgba(243,240,232,.55)}
.sat-leg__tag b{color:var(--laranja);font-weight:500}
.sat-leg__nav{display:flex;gap:4px}
.sat-leg__nav button{width:26px;height:26px;padding:0;cursor:pointer;font-size:17px;line-height:1;color:#F3F0E8;background:transparent;border:1px solid rgba(243,240,232,.22)}
.sat-leg__nav button:hover{border-color:var(--laranja);color:var(--laranja)}
.sat-leg__t{margin:10px 0 0;font-size:15.5px;font-weight:500;color:#F3F0E8}
.sat-leg__d{margin:5px 0 0;font-size:12.5px;line-height:1.5;color:rgba(243,240,232,.65)}
.sat-leg__pts{display:flex;gap:5px;margin-top:12px}
.sat-leg__pts button{flex:1;height:3px;padding:0;border:0;cursor:pointer;background:rgba(243,240,232,.18)}
.sat-leg__pts button.is-ativo{background:var(--laranja)}
@media (max-width:700px){.sat-leg{left:16px;right:16px;width:auto;bottom:18px}}
.sat-leg{width:330px}.sat-leg__tag{white-space:nowrap}

/* 54. Satélite v2 (11/10/2026): fundo com as seis composições e seletor minimalista, sem quadro */
.sat-palco__fundo{position:absolute;inset:0}
.sat-f{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.8s ease}
.sat-f.is-ativa{opacity:1}
.sat-leg{left:max(28px,calc((100% - var(--max)) / 2 + 28px));right:auto;bottom:44px;width:auto;max-width:640px;padding:0;
  background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.sat-leg__seta{width:22px;height:22px;padding:0;border:0;background:none;cursor:pointer;color:rgba(243,240,232,.6);font-size:20px;line-height:1;transition:color .2s}
.sat-leg__seta:hover{color:var(--laranja)}
.sat-leg__n{font-size:10.5px;letter-spacing:.22em;color:var(--laranja);font-variant-numeric:tabular-nums}
.sat-leg__txt{display:flex;align-items:baseline;gap:10px;font-size:13px;color:rgba(243,240,232,.62);text-shadow:0 1px 10px rgba(0,0,0,.7)}
.sat-leg__t{font-weight:500;color:#F3F0E8;letter-spacing:.06em;text-transform:uppercase;font-size:11.5px}
.sat-leg__pts{flex-basis:100%;display:flex;gap:4px;margin-top:2px;max-width:360px}
.sat-leg__pts i{flex:1;height:1px;background:rgba(243,240,232,.22);position:relative;overflow:hidden}
.sat-leg__pts i.is-ativo::after{content:"";position:absolute;inset:0;background:var(--laranja);transform-origin:left;transform:scaleX(0)}
.sat-leg.is-anda .sat-leg__pts i.is-ativo::after{animation:sat-barra 2s linear forwards}
@keyframes sat-barra{to{transform:scaleX(1)}}
@media (max-width:700px){.sat-leg{left:16px;right:16px;bottom:18px;gap:10px}.sat-leg__d{display:none}}
@media (prefers-reduced-motion:reduce){.sat-leg.is-anda .sat-leg__pts i.is-ativo::after{animation:none;transform:none}}
.sat-leg{max-width:none;flex-wrap:wrap}.sat-leg__txt{white-space:nowrap}.sat-leg__d{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
@media (max-width:700px){.sat-leg__d{display:none}.sat-leg{flex-wrap:wrap}.sat-leg__pts{max-width:none}}
.sat-palco__fundo .sat-f{filter:contrast(1.05)}
/* 55. Capa: contraste e saturação 15% menores; seletor só com o título (11/10/2026) */
.sat-comp{filter:contrast(.85) saturate(.85)}
.sat-leg__d,.sat-leg .sat-leg__d{display:none}
.sat-leg__t{text-transform:none;letter-spacing:.04em;font-size:13px}

/* 56. Serviços: painel "IA analisando" no lugar da foto (11/10/2026) */
.ia__tela{position:relative;height:520px;overflow:hidden;background:#0e1217;border:1px solid rgba(243,240,232,.12)}
.ia__base,.ia__camada{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ia__base{filter:saturate(.7) brightness(.8)}
.ia__camada{filter:saturate(.85) contrast(.92)}
.ia__cv{position:absolute;inset:0;width:100%;height:100%}
.ia__barra{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:center;padding:9px 12px;
  background:linear-gradient(180deg,rgba(14,18,23,.88),rgba(14,18,23,0));font-size:10px;letter-spacing:.22em;text-transform:uppercase}
.ia__marca{color:rgba(243,240,232,.75)}
.ia__status{color:var(--laranja);display:flex;align-items:center;gap:7px}
.ia__status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--laranja);animation:ia-pisca 1s ease-in-out infinite}
.ia.is-pronto .ia__status::before{animation:none;background:#5fd38a}
@keyframes ia-pisca{50%{opacity:.25}}
.ia__dados{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);
  background:linear-gradient(0deg,rgba(14,18,23,.92),rgba(14,18,23,.6));border-top:1px solid rgba(255,95,31,.4)}
.ia__dados div{padding:10px 12px}
.ia__dados div+div{border-left:1px solid rgba(243,240,232,.1)}
.ia__dados span{display:block;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(243,240,232,.55)}
.ia__dados b{display:block;margin-top:3px;font-size:16px;font-weight:500;color:#F3F0E8;font-variant-numeric:tabular-nums}
.ia__aviso{opacity:.7}
@media (max-width:900px){.ia__tela{height:340px}.ia__dados b{font-size:14px}}
.ia__barra{background:linear-gradient(180deg,rgba(14,18,23,.95),rgba(14,18,23,.55) 70%,rgba(14,18,23,0))}
@media (max-width:700px){.ia__marca{display:none}.ia__barra{justify-content:flex-end;font-size:9px}.ia__status{white-space:nowrap}.ia__dados span{font-size:8.5px;letter-spacing:.12em;white-space:nowrap}.ia__dados div{padding:8px 9px}}
/* 57. Painéis IA v2 (11/10/2026): imagem inteira (proporção 2:3), 4 indicadores, selos de cadastro */
.ia__tela{height:auto;aspect-ratio:1024/1535}
.ia__base{filter:none}
.ia__dados{grid-template-columns:repeat(4,1fr)}
.ia__dados b{font-size:14.5px}
.ia__chips{position:absolute;top:40px;right:12px;display:flex;gap:6px}
.ia__chips span{font-size:10px;letter-spacing:.18em;padding:5px 9px 5px 22px;position:relative;color:rgba(243,240,232,.45);
  background:rgba(14,18,23,.82);border:1px solid rgba(243,240,232,.18);transition:all .4s}
.ia__chips span::before{content:"";position:absolute;left:8px;top:50%;width:7px;height:7px;margin-top:-4px;border:1px solid rgba(243,240,232,.4);border-radius:50%}
.ia__chips span.is-ok{color:#F3F0E8;border-color:rgba(120,220,140,.7)}
.ia__chips span.is-ok::before{background:#78dc8c;border-color:#78dc8c}
.ia__chips span.is-ok::after{content:"OK";margin-left:6px;color:#78dc8c}
@media (max-width:700px){.ia__dados{grid-template-columns:repeat(2,1fr)}.ia__dados div:nth-child(3){border-left:0}}
.painel__figura .ia__base{height:100%!important;aspect-ratio:auto!important;object-fit:cover}
.ia__dados{position:static;border:1px solid rgba(243,240,232,.12);border-top:1px solid rgba(255,95,31,.5);background:rgba(14,18,23,.92)}
.ia__tela{border-bottom:0}

/* 57. Serviços com a demonstração 3D no quadro (quadro3d.js) e fundo sem satélite depois da capa (13/10/2026) */
.q3d .ia__base,.q3d .ia__cv{display:none}
.q3d__cv,.q3d__rot{position:absolute;inset:0;width:100%;height:100%;display:block}
.q3d__rot{cursor:grab}
.q3d__rot.is-girando{cursor:grabbing}
.q3d .ia__barra,.q3d .ia__chips{pointer-events:none}
.sat-palco__veu{background:radial-gradient(ellipse 120% 90% at 50% 32%,#1E252E 0%,#161C23 52%,#0E1217 100%)}

/* 58. Serviços, rodada 14/10/2026: quadro alinhado à coluna de texto no computador (paisagem 4:3), vista fixa sem giro */
@media (min-width:1001px){
  .painel:has(.ia){grid-template-columns:1fr 1fr;gap:56px}
  .painel__figura.ia{top:96px}
  .ia__tela{aspect-ratio:4/3}
}
@media (max-width:1000px){.ia__tela{aspect-ratio:4/5}}
.q3d__rot{cursor:default}
.ia__dados b{font-size:15.5px}

/* 60. Celular (14/10/2026): abas de Soluções em lista, como as de Serviços; nada de rolagem lateral */
html{overflow-x:clip}
@media (max-width:620px){
  .ad-abas{border-bottom:0}
  .ad-aba{width:100%;padding:14px 0;font-size:15px;border-bottom:1px solid rgba(243,240,232,.1);margin-bottom:0}
  .ad-aba.is-ativa{border-bottom-color:var(--laranja)}
}

/* 61. Números do contato sem "pessoas impactadas" (14/10/2026): municípios em destaque, área numa linha inteira, anos e horas lado a lado */
.contato__nums [data-ind="area_campo"]{grid-column:1/-1}
/* selos de cadastro no celular: quebram em duas linhas dentro do quadro, sem cortar */
@media (max-width:620px){
  .ia__chips{left:10px;right:10px;flex-wrap:wrap;justify-content:flex-end;gap:5px}
  .ia__chips span{font-size:9px;letter-spacing:.12em;padding:4px 7px 4px 19px}
  .ia__chips span::before{left:7px;width:6px;height:6px;margin-top:-3px}
}
