/* =========================================================
   OMNES COMP | estilos do site
   Cores: azul OMNES (logo), azul-noite, ciano de sinal
   Tipos: Saira (títulos) e Public Sans (texto, criada para sites de governo)
   ========================================================= */

@font-face { font-family: "Saira"; src: url("../fonts/saira-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Saira"; src: url("../fonts/saira-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }

/* ---------- Tokens (tema claro) ---------- */
:root {
  --noite: #071533;
  --noite-2: #0C1F4A;
  --azul: #1456E0;
  --azul-forte: #0B3FB0;
  --ciano: #45C8FF;
  --ok: #1F9D63;

  --bg: #F2F5FA;
  --surface: #FFFFFF;
  --surface-2: #E7EDF8;
  --text: #0F1B33;
  --muted: #44526B;
  --line: #D3DCEB;
  --link: #1456E0;
  --brand: #1456E0;
  --brand-hover: #0B3FB0;
  --on-brand: #FFFFFF;
  --focus: #F5A524;

  --f-titulo: "Saira", "Segoe UI", system-ui, sans-serif;
  --f-texto: "Public Sans", "Segoe UI", system-ui, -apple-system, sans-serif;

  --raio-s: 8px;
  --raio-m: 14px;
  --raio-l: 22px;
  --lh: 1.6;
  --ls: 0;
  --ws: 0;
  --fs-scale: 1;
  color-scheme: light;
}

/* Tema escuro escolhido no painel */
:root[data-theme="dark"] {
  --bg: #06102A;
  --surface: #0C1A3D;
  --surface-2: #12244F;
  --text: #E8EEF9;
  --muted: #A9B7D3;
  --line: #22365F;
  --link: #7FA6FF;
  --brand: #3D74F5;
  --brand-hover: #5B8CFF;
  color-scheme: dark;
}
/* Tema escuro automático, quando o aparelho usa modo escuro */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #06102A;
    --surface: #0C1A3D;
    --surface-2: #12244F;
    --text: #E8EEF9;
    --muted: #A9B7D3;
    --line: #22365F;
    --link: #7FA6FF;
    --brand: #3D74F5;
    --brand-hover: #5B8CFF;
    color-scheme: dark;
  }
}
/* Alto contraste (padrão de sites públicos: fundo preto, texto branco, links amarelos) */
:root[data-contrast="high"] {
  --noite: #000000;
  --noite-2: #000000;
  --bg: #000000;
  --surface: #000000;
  --surface-2: #000000;
  --text: #FFFFFF;
  --muted: #FFFFFF;
  --line: #FFFFFF;
  --link: #FFE500;
  --brand: #FFE500;
  --brand-hover: #FFF27A;
  --on-brand: #000000;
  --ciano: #FFE500;
  --ok: #FFE500;
  --focus: #00E5FF;
  color-scheme: dark;
}

/* Tamanho de texto e espaçamento escolhidos no painel */
html { font-size: calc(100% * var(--fs-scale)); scroll-behavior: smooth; scroll-padding-top: 96px; }
:root[data-spacing="wide"] { --lh: 1.9; --ls: .03em; --ws: .12em; }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  font-family: var(--f-texto);
  font-size: 1.0625rem;
  line-height: var(--lh);
  letter-spacing: var(--ls);
  word-spacing: var(--ws);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--f-titulo); line-height: 1.12; margin: 0 0 .6em; letter-spacing: -.005em; text-wrap: balance; }
h2 { font-size: clamp(1.9rem, 2.4vw + 1rem, 2.9rem); font-weight: 700; }
h3 { font-size: 1.3rem; font-weight: 600; }
p { margin: 0 0 1em; text-wrap: pretty; }
a { color: var(--link); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
:root[data-links="sublinhado"] a { text-decoration: underline !important; text-decoration-thickness: 2px !important; }
:root[data-links="sublinhado"] a:not(.btn) { background: color-mix(in srgb, var(--focus) 22%, transparent); }
ul, ol { padding-left: 1.2em; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: 4px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.container { width: 100%; max-width: 1180px; margin-inline: auto; padding-inline: clamp(1.1rem, 4vw, 2rem); }
.icone { width: 1.25em; height: 1.25em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  font-family: var(--f-titulo); font-weight: 600; font-size: 1.02rem; line-height: 1.1;
  padding: .9em 1.35em; border-radius: var(--raio-s); border: 2px solid transparent;
  text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s;
  min-height: 48px;
}
.btn--primario { background: var(--brand); color: var(--on-brand); }
.btn--primario:hover { background: var(--brand-hover); }
.btn--contorno { border-color: var(--brand); color: var(--brand); background: transparent; }
.btn--contorno:hover { background: color-mix(in srgb, var(--brand) 10%, transparent); }
.btn--claro { background: #FFFFFF; color: var(--noite); }
.btn--claro:hover { background: #DCE8FF; }
.btn--vidro { border-color: rgba(160, 196, 255, .45); color: #FFFFFF; background: rgba(255, 255, 255, .06); }
.btn--vidro:hover { background: rgba(255, 255, 255, .14); }
:root[data-contrast="high"] .btn--claro, :root[data-contrast="high"] .btn--vidro { background: #FFE500; color: #000; border-color: #FFE500; }

/* ---------- Barra superior: contato rápido e ferramentas de acessibilidade ---------- */
.pular { position: absolute; left: 1rem; top: -100px; z-index: 200; padding: .8rem 1.1rem; border-radius: var(--raio-s); background: var(--focus); color: #000; font-weight: 700; text-decoration: none; }
.pular:focus { top: .6rem; }
.barra-a11y { background: var(--noite); color: #DCE6FA; font-size: .88rem; }
.barra-a11y .container { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 42px; }
.barra-a11y__contato { display: flex; flex-wrap: wrap; gap: .2rem 1.4rem; margin: 0; }
.barra-a11y__contato a { display: inline-flex; align-items: center; gap: .45rem; color: #DCE6FA; text-decoration: none; }
.barra-a11y__contato a:hover { color: #FFFFFF; text-decoration: underline; }
.barra-a11y__contato .icone { width: 1.05em; height: 1.05em; color: #7FDBFF; }
.ferramentas { display: flex; align-items: center; gap: .3rem; margin-left: auto; }
.ferramentas button {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-width: 36px; height: 32px; padding: 0 .55rem;
  border-radius: 8px; border: 1px solid rgba(160, 196, 255, .28); background: rgba(255, 255, 255, .05);
  color: #DCE6FA; font: inherit; font-weight: 700; cursor: pointer; line-height: 1;
}
.ferramentas button:hover { background: rgba(255, 255, 255, .14); color: #FFFFFF; }
.ferramentas button[aria-pressed="true"] { background: #FFE500; color: #000; border-color: #FFE500; }
.ferramentas .icone { width: 1.1em; height: 1.1em; }
.ferramentas__sep { width: 1px; height: 20px; background: rgba(160, 196, 255, .3); margin: 0 .25rem; }
.ferramentas__rotulo { font-weight: 400; color: #A9B7D3; margin-right: .2rem; }
.ferramentas button[hidden] { display: none; }
.ferramentas button[aria-busy="true"] { opacity: .6; cursor: progress; }
@media (max-width: 980px) { .barra-a11y__contato a:nth-child(2) { display: none; } }
@media (max-width: 720px) {
  .barra-a11y__contato, .ferramentas__texto { display: none; }
  .ferramentas { margin-inline: auto; }
}

/* ---------- Topo ---------- */
.topo {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--surface) 92%, transparent);
  -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--line);
}
.topo .container { display: flex; align-items: center; gap: 1.5rem; min-height: 76px; }
.topo__logo img { height: 46px; width: auto; }
:root[data-theme="dark"] .topo__logo img, :root[data-contrast="high"] .topo__logo img { filter: drop-shadow(0 0 10px rgba(69, 200, 255, .55)); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .topo__logo img { filter: drop-shadow(0 0 10px rgba(69, 200, 255, .55)); } }
.menu { margin-left: auto; }
.menu ul { display: flex; gap: .2rem; list-style: none; margin: 0; padding: 0; }
.menu a { display: block; padding: .6rem .8rem; border-radius: var(--raio-s); color: var(--text); text-decoration: none; font-weight: 700; font-size: .98rem; }
.menu a:hover { background: var(--surface-2); }
.topo__acoes { display: flex; align-items: center; gap: .6rem; }
.topo__acoes .btn { padding: .7em 1.05em; min-height: 44px; font-size: .95rem; }
.menu-botao { display: none; }

@media (max-width: 1080px) {
  .topo__acoes .btn--contorno { display: none; }
}
@media (max-width: 920px) {
  .topo .container { min-height: 66px; gap: .75rem; }
  .topo__logo img { height: 38px; }
  .menu-botao {
    display: inline-flex; align-items: center; justify-content: center; margin-left: auto;
    width: 48px; height: 48px; border-radius: var(--raio-s); border: 1px solid var(--line);
    background: var(--surface); color: var(--text); cursor: pointer;
  }
  .menu-botao .icone { width: 26px; height: 26px; }
  .menu { position: absolute; left: 0; right: 0; top: 100%; background: var(--surface); border-bottom: 1px solid var(--line); display: none; margin: 0; }
  .menu.aberto { display: block; }
  .menu ul { flex-direction: column; padding: .5rem clamp(1.1rem, 4vw, 2rem) 1rem; }
  .menu a { padding: .9rem .6rem; font-size: 1.08rem; border-bottom: 1px solid var(--line); border-radius: 0; }
  .topo__acoes { display: none; }
  .menu__extra { display: block !important; padding-top: .75rem; }
  .barra-a11y__oculto-celular { display: none; }
}
.menu__extra { display: none; }
.menu__extra .btn { width: 100%; margin-top: .5rem; }

/* ---------- Hero: o município conectado ---------- */
.hero {
  position: relative; overflow: hidden; isolation: isolate;
  color: #FFFFFF;
  background:
    radial-gradient(60% 70% at 78% 40%, rgba(20, 86, 224, .55), transparent 70%),
    radial-gradient(40% 50% at 10% 10%, rgba(69, 200, 255, .12), transparent 70%),
    linear-gradient(180deg, #071533 0%, #081a40 60%, #06122b 100%);
  padding-block: clamp(2.5rem, 6vw, 5.5rem) clamp(3rem, 7vw, 6rem);
}
.hero::after {
  content: ""; position: absolute; inset: auto 0 0 0; height: min(34vw, 300px); z-index: -1;
  background: url("../img/cidade-skyline.webp") center bottom / cover no-repeat;
  -webkit-mask-image: linear-gradient(to top, #000 15%, transparent 100%); mask-image: linear-gradient(to top, #000 15%, transparent 100%);
  opacity: .75;
}
:root[data-contrast="high"] .hero { background: #000; }
:root[data-contrast="high"] .hero::after { display: none; }
.hero .container { display: grid; grid-template-columns: 1.02fr 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.hero h1 { font-size: clamp(2.3rem, 3.5vw + .6rem, 3.85rem); font-weight: 700; line-height: 1.02; letter-spacing: -.015em; margin-bottom: .45em; }
.hero__lead { font-size: clamp(1.08rem, .5vw + .95rem, 1.26rem); color: #CFDBF5; max-width: 32rem; }
:root[data-contrast="high"] .hero__lead { color: #fff; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.8rem 0 2rem; }
.hero__provas { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; color: #DCE6FA; font-size: 1rem; }
.hero__provas li { display: flex; align-items: center; gap: .6rem; }
.hero__provas .icone { color: #5EE0A1; }
:root[data-contrast="high"] .hero__provas .icone { color: #FFE500; }

.rede { --icone-no: clamp(44px, 11vw, 56px); position: relative; width: 100%; max-width: 540px; margin-inline: auto; }
.rede__mapa { position: relative; aspect-ratio: 10 / 9; margin-bottom: 2.2rem; }
.rede__linhas { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.rede__linhas .malha { fill: none; stroke: rgba(130, 170, 255, .16); stroke-width: 1; stroke-dasharray: 2 6; }
.rede__linhas .lig { fill: none; stroke: rgba(69, 200, 255, .32); stroke-width: 1.6; stroke-dasharray: 5 7; animation: fluxo 1.6s linear infinite; transition: stroke .3s; }
.rede__linhas .lig.ativa { stroke: #45C8FF; stroke-width: 2.4; }
.rede__linhas .pulso { fill: #9BE3FF; }
@keyframes fluxo { to { stroke-dashoffset: -24; } }

.rede__hub {
  position: absolute; left: 50%; top: 48%; transform: translate(-50%, -50%);
  width: clamp(92px, 24%, 128px); aspect-ratio: 1; border-radius: 50%;
  background: #FFFFFF; display: grid; place-items: center;
  box-shadow: 0 0 0 8px rgba(69, 200, 255, .12), 0 0 48px rgba(69, 200, 255, .45);
}
.rede__hub img { width: 72%; }
.rede__hub::before {
  content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 2px solid rgba(69, 200, 255, .55);
  animation: onda 2.8s ease-out infinite;
}
@keyframes onda { from { transform: scale(1); opacity: .9; } to { transform: scale(1.55); opacity: 0; } }

.rede__no {
  position: absolute; transform: translate(-50%, calc(var(--icone-no) / -2 - .2rem));
  display: flex; flex-direction: column; align-items: center; gap: .35rem;
  background: none; border: 0; padding: .2rem; color: #FFFFFF; cursor: pointer; font: inherit;
}
.rede__icone {
  position: relative; width: var(--icone-no); height: var(--icone-no); border-radius: 50%;
  display: grid; place-items: center;
  background: rgba(12, 31, 74, .9); border: 1.5px solid rgba(130, 180, 255, .45);
  transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.rede__icone .icone { width: 24px; height: 24px; }
.rede__icone::after {
  content: ""; position: absolute; right: 1px; top: 1px; width: 11px; height: 11px; border-radius: 50%;
  background: #3DDC97; box-shadow: 0 0 0 2px #071533;
}
.rede__rotulo { font-family: var(--f-titulo); font-weight: 600; font-size: clamp(.74rem, .35vw + .62rem, .92rem); line-height: 1.1; white-space: nowrap; color: #DCE6FA; }
.rede__no:hover .rede__icone, .rede__no[aria-pressed="true"] .rede__icone { border-color: #45C8FF; background: #0F2B66; box-shadow: 0 0 22px rgba(69, 200, 255, .55); }
.rede__no[aria-pressed="true"] .rede__rotulo { color: #FFFFFF; }
:root[data-contrast="high"] .rede__icone { background: #000; border-color: #fff; }
:root[data-contrast="high"] .rede__no[aria-pressed="true"] .rede__icone { border-color: #FFE500; box-shadow: none; }

.rede__info {
  margin-top: 1rem; padding: 1rem 1.15rem; border-radius: var(--raio-m);
  background: rgba(8, 24, 60, .78); border: 1px solid rgba(130, 180, 255, .28);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  min-height: 7.2rem;
}
@media (max-width: 560px) { .rede__info { min-height: 8.6rem; } }
.rede__hub { cursor: default; }
.rede__info strong { font-family: var(--f-titulo); font-size: 1.08rem; display: flex; align-items: center; gap: .5rem; margin-bottom: .2rem; }
.rede__info strong::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: #3DDC97; }
.rede__info p { margin: 0; color: #CFDBF5; font-size: .98rem; }
:root[data-contrast="high"] .rede__info { background: #000; border-color: #fff; }
:root[data-contrast="high"] .rede__info p { color: #fff; }

@media (max-width: 920px) {
  .hero .container { grid-template-columns: 1fr; }
  .hero__lead { max-width: 34rem; }
  .rede { max-width: 460px; }
}

/* ---------- Seções ---------- */
.secao { padding-block: clamp(3.75rem, 8vw, 6.75rem); }
.secao--alt { background: var(--surface); border-block: 1px solid var(--line); }
.secao__cabeca { max-width: 50rem; margin: 0 auto clamp(2.2rem, 4.5vw, 3.4rem); text-align: center; }
.secao__cabeca h2 { margin-bottom: .45em; }
.secao__cabeca p { color: var(--muted); font-size: 1.14rem; margin: 0 auto; max-width: 42rem; text-align: center; }
.secao__cabeca .selo-novo { margin: 0 0 1rem; }

/* Clientes */
.clientes { padding-block: clamp(3rem, 6vw, 4.5rem); background: var(--surface); border-bottom: 1px solid var(--line); }
.clientes__cabeca { text-align: center; max-width: 46rem; margin: 0 auto clamp(1.8rem, 4vw, 2.6rem); }
.clientes__cabeca h2 { font-size: clamp(1.6rem, 1.6vw + 1rem, 2.2rem); margin-bottom: .4rem; }
.clientes__cabeca p { color: var(--muted); margin: 0; font-size: 1.08rem; }
.clientes__grade { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.clientes__grupo { background: var(--bg); border: 1px solid var(--line); border-radius: var(--raio-m); padding: 1.3rem 1.4rem 1.1rem; }
.clientes__grupo h3 { display: flex; align-items: center; gap: .55rem; font-size: 1.12rem; margin-bottom: .6rem; }
.clientes__grupo h3 .icone { color: var(--brand); }
.clientes__grupo ul { list-style: none; margin: 0; padding: 0; }
.clientes__grupo li { padding: .62rem 0; border-top: 1px solid var(--line); }
.clientes__grupo li strong { display: block; font-size: 1rem; line-height: 1.3; }
.clientes__grupo li span { display: block; font-size: .9rem; color: var(--muted); }
.clientes__grupo li p { margin: .3rem 0 0; font-size: .95rem; color: var(--text); }
.clientes__nota { margin: .7rem 0 0; padding-top: .7rem; border-top: 1px solid var(--line); font-size: .92rem; color: var(--muted); }
@media (max-width: 960px) { .clientes__grade { grid-template-columns: 1fr 1fr; } .clientes__grupo--projetos { grid-column: 1 / -1; } }
@media (max-width: 620px) { .clientes__grade { grid-template-columns: 1fr; } }

/* Serviços */
.servicos__grade { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 1rem; }
.servico { background: var(--surface); border: 1px solid var(--line); border-radius: var(--raio-m); padding: 1.4rem 1.4rem 1.3rem; }
.servico h3 { margin: .9rem 0 .4rem; }
.servico p { color: var(--muted); margin: 0; font-size: 1rem; }
.servico__icone { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: color-mix(in srgb, var(--brand) 12%, var(--surface)); color: var(--brand); }
.servico__icone .icone { width: 24px; height: 24px; }
:root[data-contrast="high"] .servico__icone { background: #000; border: 1px solid #fff; color: #FFE500; }

.servico--destaque {
  grid-row: span 4; display: flex; flex-direction: column; box-shadow: inset 0 0 0 1px rgba(160, 196, 255, .16);
  background: var(--noite); color: #FFFFFF; border: 0; padding: clamp(1.5rem, 3vw, 2.2rem);
  background-image: radial-gradient(80% 50% at 100% 0%, rgba(20, 86, 224, .55), transparent 70%);
}
.servico--destaque h3 { font-size: clamp(1.55rem, 1.2vw + 1rem, 2rem); font-weight: 700; margin-top: 1rem; }
.servico--destaque p { color: #CFDBF5; font-size: 1.04rem; }
.servico--destaque .servico__icone { background: rgba(69, 200, 255, .14); color: #7FDBFF; }
:root[data-contrast="high"] .servico--destaque { background: #000; border: 2px solid #fff; }
:root[data-contrast="high"] .servico--destaque p { color: #fff; }

.ciclo { list-style: none; counter-reset: passo; margin: 1.4rem 0; padding: 0; display: grid; gap: .1rem; }
.ciclo li { counter-increment: passo; position: relative; padding: .55rem 0 .55rem 2.6rem; color: #E6EDFB; }
.ciclo li::before {
  content: counter(passo); position: absolute; left: 0; top: .45rem; width: 1.75rem; height: 1.75rem; border-radius: 50%;
  display: grid; place-items: center; font-family: var(--f-titulo); font-weight: 700; font-size: .9rem;
  background: #FFFFFF; color: var(--noite);
}
.ciclo li:not(:last-child)::after { content: ""; position: absolute; left: .85rem; top: 2.25rem; bottom: -.5rem; width: 2px; background: rgba(160, 196, 255, .35); }
.cobertura { display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; padding: 0; margin: 0 0 1.5rem; }
.cobertura li { font-size: .9rem; padding: .3rem .7rem; border-radius: 999px; border: 1px solid rgba(160, 196, 255, .4); color: #DCE6FA; }
.servico--destaque .btn { margin-top: auto; align-self: flex-start; }
.ticket { margin: 0 0 1.6rem; padding: 1rem 1.1rem; border-radius: 12px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(160, 196, 255, .3); }
.ticket__topo { display: flex; justify-content: space-between; align-items: center; gap: .6rem; font-size: .86rem; color: #A9B7D3; margin-bottom: .55rem; }
.ticket__status { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .6rem; border-radius: 999px; background: rgba(61, 220, 151, .16); color: #7BF0BC; font-weight: 700; }
.ticket__status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #3DDC97; }
.ticket__titulo { font-family: var(--f-titulo); font-weight: 600; font-size: 1.08rem; line-height: 1.3; color: #FFFFFF !important; margin: 0 0 .8rem; }
.ticket__dados { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1rem; margin: 0; }
.ticket__solucao { grid-column: 1 / -1; }
.ticket__solucao dd { font-weight: 400 !important; color: #DCE6FA !important; line-height: 1.45; }
.ticket__dados dt { font-size: .8rem; color: #A9B7D3; }
.ticket__dados dd { margin: 0; font-weight: 700; font-size: .92rem; color: #FFFFFF; }
:root[data-contrast="high"] .ticket { background: #000; border-color: #fff; }
:root[data-contrast="high"] .ticket__status { background: #000; color: #FFE500; border: 1px solid #FFE500; }


.servico--chamada { background: var(--surface-2); border-style: dashed; display: flex; flex-direction: column; justify-content: center; }
.servico--chamada a { font-weight: 700; margin-top: .7rem; }

@media (max-width: 1000px) {
  .servicos__grade { grid-template-columns: 1fr 1fr; }
  .servico--destaque { grid-column: 1 / -1; grid-row: auto; }
}
@media (max-width: 620px) {
  .servicos__grade { grid-template-columns: 1fr; }
}

.selo-novo {
  display: inline-block; vertical-align: middle; margin-left: .35rem; padding: .15rem .55rem; border-radius: 999px;
  font-family: var(--f-texto); font-size: .74rem; font-weight: 700; line-height: 1.4; letter-spacing: .02em;
  background: color-mix(in srgb, var(--ok) 16%, var(--surface)); color: var(--ok); border: 1px solid color-mix(in srgb, var(--ok) 45%, transparent);
}
.selo-novo--grande { margin: 0 0 1rem; font-size: .88rem; padding: .3rem .8rem; }
:root[data-theme="dark"] .selo-novo { color: #5EE0A1; }
:root[data-contrast="high"] .selo-novo { background: #000; color: #FFE500; border-color: #FFE500; }
.servico__link { display: inline-block; margin-top: .7rem; font-weight: 700; }

/* Digitalização e GED */
.ged { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.ged__lead { color: var(--muted); font-size: 1.1rem; }
.ged .lista-check { margin: 1.4rem 0 1.8rem; }
.ged__demo { background: var(--noite); color: #FFFFFF; border-radius: var(--raio-l); padding: clamp(1.3rem, 3vw, 2rem); box-shadow: 0 30px 70px rgba(7, 21, 51, .28); background-image: radial-gradient(80% 60% at 100% 0%, rgba(20, 86, 224, .45), transparent 70%); }
.ged__demo { margin: 0; }
.ged__legenda { margin: 1rem 0 0; font-size: .82rem; color: #A9B7D3; text-align: center; }
:root[data-contrast="high"] .ged__legenda { color: #fff; }
.ged__demo-rotulo { margin: 0 0 .8rem; font-size: .88rem; color: #A9B7D3; }
.ged__busca { display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; border-radius: var(--raio-s); background: #FFFFFF; color: #0F1B33; font-weight: 700; }
.ged__busca .icone { color: var(--azul); }
.ged__busca span::after { content: ""; display: inline-block; width: 2px; height: 1.1em; margin-left: 2px; vertical-align: text-bottom; background: var(--azul); animation: cursor 1s steps(1) infinite; }
@keyframes cursor { 50% { opacity: 0; } }
.ged__contagem { margin: 1rem 0 .4rem; font-size: .9rem; color: #A9B7D3; }
.ged__resultados { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.ged__resultados li { display: flex; gap: .8rem; align-items: flex-start; padding: .85rem .95rem; border-radius: var(--raio-s); background: rgba(255, 255, 255, .06); border: 1px solid rgba(160, 196, 255, .22); }
.ged__resultados li:first-child { border-color: #45C8FF; background: rgba(69, 200, 255, .1); }
.ged__resultados .icone { color: #7FDBFF; margin-top: .15rem; }
.ged__resultados strong { display: block; font-family: var(--f-titulo); font-weight: 600; font-size: 1.02rem; }
.ged__resultados span { display: block; font-size: .88rem; color: #A9B7D3; }
.ged__resultados p { margin: .35rem 0 0; font-size: .92rem; color: #DCE6FA; }
.ged__resultados mark { background: rgba(255, 213, 79, .3); color: #FFFFFF; padding: 0 .15em; border-radius: 3px; }
:root[data-contrast="high"] .ged__demo { background: #000; border: 2px solid #fff; box-shadow: none; }
:root[data-contrast="high"] .ged__resultados li { background: #000; border-color: #fff; }
:root[data-contrast="high"] .ged__resultados span, :root[data-contrast="high"] .ged__resultados p, :root[data-contrast="high"] .ged__demo-rotulo, :root[data-contrast="high"] .ged__contagem { color: #fff; }
@media (max-width: 880px) { .ged { grid-template-columns: 1fr; } }

/* Como trabalhamos */
.processo { --vao: clamp(1rem, 2.5vw, 2rem); list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--vao); counter-reset: etapa; text-align: center; }
.processo li { counter-increment: etapa; position: relative; padding-top: 4.6rem; }
.processo li::before {
  content: counter(etapa); position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 3.5rem; height: 3.5rem; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--f-titulo); font-weight: 700; font-size: 1.6rem; line-height: 1;
  color: var(--brand); background: var(--surface); border: 2px solid var(--brand);
}
.processo li::after { content: ""; position: absolute; top: 1.75rem; left: calc(50% + 2.3rem); right: calc(-50% - var(--vao) + 2.3rem); height: 2px; background: var(--line); }
.processo li:last-child::after { display: none; }
.processo h3 { margin-bottom: .45rem; }
.processo p { color: var(--muted); margin: 0 auto; max-width: 17rem; }
@media (max-width: 860px) {
  .processo { grid-template-columns: 1fr 1fr; row-gap: 2.5rem; }
  .processo li:nth-child(2)::after { display: none; }
}
@media (max-width: 520px) {
  .processo { grid-template-columns: 1fr; }
  .processo li::after { display: none; }
}

/* Para quem: abas */
.abas__lista { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-bottom: 1.6rem; }
.abas__botao {
  flex: none; display: inline-flex; align-items: center; gap: .5rem;
  padding: .75rem 1.05rem; border-radius: 999px; border: 1px solid var(--line); background: var(--surface);
  color: var(--text); font: inherit; font-weight: 700; font-size: .98rem; cursor: pointer; min-height: 48px;
}
.abas__botao .icone { color: var(--brand); }
.abas__botao[aria-selected="true"] { background: var(--brand); border-color: var(--brand); color: var(--on-brand); }
.abas__botao[aria-selected="true"] .icone { color: var(--on-brand); }
.abas__painel { display: block; background: var(--surface); border: 1px solid var(--line); border-radius: var(--raio-l); padding: clamp(1.4rem, 3.5vw, 2.6rem); }
.abas__painel[hidden] { display: none; }
.abas__painel h3 { font-size: clamp(1.4rem, 1vw + 1rem, 1.75rem); font-weight: 700; }
.abas__painel p { color: var(--muted); }
.lista-check { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.lista-check li { display: flex; gap: .65rem; align-items: flex-start; }
.lista-check .icone { color: var(--ok); margin-top: .2em; }
.abas__lado { background: var(--bg); border-radius: var(--raio-m); padding: 1.3rem; align-self: start; }
.abas__lado h4 { font-size: 1.02rem; margin-bottom: .8rem; }
.abas__intro { text-align: center; max-width: 46rem; margin: 0 auto 1.8rem; }
.abas__intro p { margin: 0; }
.abas__corpo { display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
@media (max-width: 760px) { .abas__corpo { grid-template-columns: 1fr; } }
@media (max-width: 620px) {
  .abas__lista { display: grid; grid-template-columns: 1fr 1fr; }
  .abas__botao { justify-content: flex-start; border-radius: var(--raio-s); font-size: .94rem; padding: .7rem .8rem; white-space: normal; text-align: left; line-height: 1.2; }
}
.secao--alt .abas__painel { background: var(--bg); }
.secao--alt .abas__lado { background: var(--surface); }
.secao--alt .abas__botao:not([aria-selected="true"]) { background: var(--bg); }
.nota-foco { margin-top: 1.4rem; color: var(--muted); font-size: .98rem; text-align: center; }

/* Setor público */
.publico { background: var(--noite); color: #FFFFFF; position: relative; overflow: hidden; }
.publico__grade { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.publico__imagem { border-radius: var(--raio-l); overflow: hidden; box-shadow: 0 30px 80px rgba(0, 0, 0, .45); }
.publico__imagem img { width: 100%; }
.publico h2 { color: #FFFFFF; }
.publico .secao__cabeca p { color: #CFDBF5; }
.publico .lista-check li { color: #E6EDFB; }
.publico .lista-check .icone { color: #5EE0A1; }
.publico .lista-check strong { color: #FFFFFF; }
:root[data-contrast="high"] .publico .lista-check .icone { color: #FFE500; }
:root[data-contrast="high"] .publico .secao__cabeca p, :root[data-contrast="high"] .publico .lista-check li { color: #fff; }
@media (max-width: 880px) { .publico__grade { grid-template-columns: 1fr; } .publico__imagem { order: 2; max-width: 300px; margin-inline: auto; } }

/* Índice OMNES (avaliação da T.I.) */
.raiox { max-width: 760px; margin-inline: auto; }
.raiox__privacidade { display: flex; justify-content: center; gap: .55rem; align-items: center; font-size: .95rem; color: var(--muted); margin: 1.1rem 0 0; text-align: center; }
.raiox__cartao { background: var(--surface); border: 1px solid var(--line); border-radius: var(--raio-l); padding: clamp(1.3rem, 3.5vw, 2.3rem); }
.raiox__progresso { display: flex; align-items: center; gap: .9rem; margin-bottom: 1.4rem; font-weight: 700; font-size: .95rem; color: var(--muted); }
.raiox__barra { flex: 1; height: 8px; border-radius: 99px; background: var(--surface-2); overflow: hidden; }
.raiox__barra span { display: block; height: 100%; width: 0; background: var(--brand); border-radius: 99px; transition: width .35s ease; }
.raiox__pergunta { font-family: var(--f-titulo); font-size: clamp(1.3rem, 1vw + 1rem, 1.6rem); font-weight: 600; line-height: 1.25; margin-bottom: 1.3rem; }
.raiox__opcoes { display: grid; gap: .6rem; }
.raiox__opcao {
  display: flex; align-items: center; gap: .8rem; width: 100%; text-align: left;
  padding: 1rem 1.1rem; border-radius: var(--raio-m); border: 1.5px solid var(--line); background: var(--bg);
  color: var(--text); font: inherit; font-weight: 700; cursor: pointer; min-height: 56px;
}
.raiox__opcao:hover { border-color: var(--brand); }
.raiox__opcao[aria-pressed="true"] { border-color: var(--brand); background: color-mix(in srgb, var(--brand) 12%, var(--surface)); }
.raiox__marca { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--muted); flex: none; }
.raiox__opcao[aria-pressed="true"] .raiox__marca { border-color: var(--brand); background: radial-gradient(circle, var(--brand) 45%, transparent 50%); }
.raiox__nav { display: flex; justify-content: space-between; margin-top: 1.2rem; min-height: 44px; }
.raiox__voltar { background: none; border: 0; color: var(--link); font: inherit; font-weight: 700; cursor: pointer; padding: .5rem 0; }
.raiox__resultado[hidden], .raiox__quiz[hidden] { display: none; }
.raiox__placar { display: flex; align-items: center; gap: 1.3rem; margin-bottom: 1.2rem; }
.raiox__anel { width: 112px; height: 112px; flex: none; }
.raiox__anel circle { fill: none; stroke-width: 10; }
.raiox__anel .fundo { stroke: var(--surface-2); }
.raiox__anel .valor { stroke: var(--brand); stroke-linecap: round; transform: rotate(-90deg); transform-origin: 50% 50%; transition: stroke-dashoffset .8s ease; }
.raiox__anel text { font-family: var(--f-titulo); font-weight: 700; font-size: 30px; fill: var(--text); text-anchor: middle; }
.raiox__anel text.de { font-family: var(--f-texto); font-weight: 400; font-size: 13px; fill: var(--muted); }
.raiox__nivel { font-family: var(--f-titulo); font-size: 1.5rem; font-weight: 700; line-height: 1.15; margin: 0; }
.raiox__selo { display: inline-flex; align-items: center; gap: .45rem; margin: 0 0 .45rem; padding: .3rem .75rem; border-radius: 999px; font-weight: 700; font-size: .92rem; color: #FFFFFF; background: var(--cor-nivel, var(--brand)); }
.raiox__resumo { color: var(--text); font-size: 1.04rem; margin: 0 0 1.2rem; }
.raiox__subtitulo { font-family: var(--f-titulo); font-weight: 600; font-size: 1.08rem; margin: 0; }
.raiox__resultado { --cor-nivel: var(--brand); }
.raiox__resultado .valor { stroke: var(--cor-nivel); }
.niveis { list-style: none; padding: 0; margin: 0 0 1.4rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.4rem; font-size: .96rem; font-weight: 700; }
.niveis li { display: flex; align-items: center; gap: .5rem; }
.nivel-ponto { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.nivel--critico { background: #D32F2F; }
.nivel--alto { background: #E8710A; }
.nivel--medio { background: #C99700; }
.nivel--bom { background: #1F9D63; }
:root[data-contrast="high"] .raiox__selo { background: #FFE500 !important; color: #000; }
:root[data-contrast="high"] .raiox__resultado { --cor-nivel: #FFE500 !important; }
.raiox__lacunas { margin: 1rem 0 1.4rem; display: grid; gap: .6rem; list-style: none; padding: 0; }
.raiox__lacunas li { padding: .8rem 1rem; border-radius: var(--raio-s); background: var(--bg); border-left: 4px solid var(--brand); }
.raiox__lacunas strong { display: block; }
.raiox__acoes { display: flex; flex-wrap: wrap; gap: .7rem; }


/* Quem somos */
.sobre { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.sobre__imagem { border-radius: var(--raio-l); overflow: hidden; max-height: 640px; }
.sobre__imagem img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.sobre p { color: var(--muted); }
.fatos { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem 2rem; margin: 2rem 0; }
.fatos dt { font-family: var(--f-titulo); font-weight: 700; font-size: clamp(1.9rem, 2vw + 1rem, 2.5rem); line-height: 1; color: var(--brand); margin-bottom: .35rem; }
.fatos dd { margin: 0; color: var(--muted); font-size: .98rem; }
.certificacoes { border-top: 1px solid var(--line); padding-top: 1.5rem; }
.certificacoes h3 { font-size: 1.05rem; }
.certificacoes ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.certificacoes li { display: flex; flex-direction: column; gap: .5rem; font-size: .88rem; line-height: 1.3; color: var(--muted); }
.cert__logo { display: grid; place-items: center; width: 100%; height: 72px; background: #FFFFFF; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
.cert__logo img { max-height: 54px; width: auto; max-width: 100%; object-fit: contain; }
@media (max-width: 520px) { .certificacoes ul { grid-template-columns: 1fr 1fr; } }
@media (max-width: 880px) { .sobre { grid-template-columns: 1fr; } .sobre__imagem { max-height: 360px; } }

/* Perguntas frequentes */
.faq { max-width: 820px; margin-inline: auto; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary {
  list-style: none; cursor: pointer; padding: 1.2rem 2.5rem 1.2rem 0; position: relative;
  font-family: var(--f-titulo); font-weight: 600; font-size: 1.18rem;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: .4rem; top: 50%; width: 12px; height: 12px; border-right: 2.5px solid var(--brand); border-bottom: 2.5px solid var(--brand); transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
.faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq details p { color: var(--muted); padding-bottom: 1.2rem; margin: 0; max-width: 70ch; }

/* Contato */
.contato { position: relative; }
.contato__grade { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.contato__intro { position: relative; }
.contato__intro p { color: var(--muted); }
.mao {
  --rx: 0deg; --ry: 0deg;
  position: relative; display: block; width: 200px; margin: 1.6rem auto 0; padding: 0;
  background: none; border: 0; cursor: pointer; border-radius: 24px;
}
.mao img {
  width: 100%; transform-origin: 35% 92%;
  -webkit-mask-image: linear-gradient(to bottom, #000 72%, transparent 100%); mask-image: linear-gradient(to bottom, #000 72%, transparent 100%);
  transform: perspective(700px) rotateX(var(--rx)) rotateY(var(--ry));
  filter: drop-shadow(0 14px 22px rgba(7, 21, 51, .22));
  animation: flutuar 5.5s ease-in-out infinite;
  transition: rotate .6s cubic-bezier(.34, 1.56, .64, 1), scale .6s cubic-bezier(.34, 1.56, .64, 1), filter .4s ease, transform .15s linear;
}
@keyframes flutuar { 0%, 100% { translate: 0 0; } 50% { translate: 0 -9px; } }
.mao:hover img, .mao:focus-visible img { rotate: -7deg; scale: 1.06; filter: drop-shadow(0 0 18px rgba(69, 200, 255, .7)) drop-shadow(0 16px 24px rgba(7, 21, 51, .28)); }
.mao__balao {
  position: absolute; left: 50%; top: -.6rem; translate: -50% -100%; white-space: nowrap; pointer-events: none;
  padding: .5rem .9rem; border-radius: 999px; background: var(--noite); color: #FFFFFF; font-family: var(--f-titulo); font-weight: 600; font-size: .92rem;
  opacity: 0; scale: .92; transition: opacity .25s ease, scale .25s ease;
}
.mao__balao::after { content: ""; position: absolute; left: 50%; bottom: -6px; translate: -50% 0; border: 6px solid transparent; border-bottom: 0; border-top-color: var(--noite); }
.mao:hover .mao__balao, .mao:focus-visible .mao__balao { opacity: 1; scale: 1; }
.mao--fora img { opacity: 0; animation: none; }
.mao--fora .mao__balao { opacity: 0 !important; }
.mao.voltando img { animation: voltar .6s ease-out; }
@keyframes voltar { from { translate: 0 30px; opacity: 0; } to { translate: 0 0; opacity: 1; } }
:root[data-contrast="high"] .mao__balao { background: #FFE500; color: #000; }
@media (hover: none) {
  .mao__balao { opacity: 1; scale: 1; }
}
.canais { list-style: none; padding: 0; margin: 1.6rem 0; display: grid; gap: .9rem; }
.canais li { display: flex; gap: .85rem; align-items: flex-start; }
.canais .servico__icone { width: 42px; height: 42px; flex: none; }
.canais strong { display: block; font-size: .92rem; color: var(--muted); font-weight: 400; }
.canais a { font-weight: 700; font-size: 1.08rem; text-decoration: none; }
.canais a:hover { text-decoration: underline; }
.omnesdesk { margin-top: 1.5rem; padding: 1.1rem 1.2rem; border-radius: var(--raio-m); border: 1px solid var(--line); background: var(--bg); }
.omnesdesk p { margin: 0 0 .5rem; color: var(--text); }
.omnesdesk a { font-weight: 700; }

.formulario { background: var(--surface); border: 1px solid var(--line); border-radius: var(--raio-l); padding: clamp(1.3rem, 3.5vw, 2.3rem); }
.formulario h3 { font-size: 1.4rem; font-weight: 700; }
.campo { display: grid; gap: .35rem; margin-bottom: 1rem; }
.campo label { font-weight: 700; font-size: .98rem; }
.campo label span { font-weight: 400; color: var(--muted); }
.campo input, .campo select, .campo textarea {
  font: inherit; color: var(--text); background: var(--bg); width: 100%;
  border: 1.5px solid var(--line); border-radius: var(--raio-s); padding: .8rem .9rem; min-height: 50px;
}
.campo textarea { min-height: 130px; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--brand); outline: 3px solid color-mix(in srgb, var(--brand) 30%, transparent); outline-offset: 0; }
.campo [aria-invalid="true"] { border-color: #D93838; }
.campo__erro { color: #C62828; font-size: .92rem; font-weight: 700; }
:root[data-contrast="high"] .campo__erro { color: #FFE500; }
.campos-duplos { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.formulario__acoes { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .4rem; }
.formulario__aviso { font-size: .92rem; color: var(--muted); margin: 1rem 0 0; }
.formulario__ok { margin-top: 1rem; padding: .9rem 1rem; border-radius: var(--raio-s); background: color-mix(in srgb, var(--ok) 14%, var(--surface)); border: 1px solid var(--ok); }
.formulario__ok[hidden] { display: none; }
@media (max-width: 880px) { .contato__grade { grid-template-columns: 1fr; } .mao { width: 150px; margin-top: 3.2rem; } }
@media (max-width: 520px) { .campos-duplos { grid-template-columns: 1fr; } }

/* Rodapé */
.rodape { background: var(--noite); color: #CFDBF5; padding-block: 3.5rem 1.5rem; font-size: .98rem; border-top: 1px solid rgba(160, 196, 255, .18); }
.rodape a { color: #FFFFFF; }
.rodape__grade { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 2rem 2.5rem; }
.rodape__lista a { white-space: nowrap; text-decoration: none; }
.rodape__lista a:hover { text-decoration: underline; }
.rodape__lista--icones a { display: inline-flex; align-items: center; gap: .55rem; }
.rodape__lista--icones .icone { width: 1.1em; height: 1.1em; color: #7FDBFF; }
.rodape__enderecos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem 2rem; margin-top: 2.4rem; padding-top: 1.8rem; border-top: 1px solid rgba(160, 196, 255, .2); }
.rodape__enderecos p { margin: 0; display: grid; gap: .15rem; font-size: .94rem; }
.rodape__enderecos strong { color: #FFFFFF; font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; margin-bottom: .2rem; }
.rodape__enderecos span { white-space: nowrap; }
@media (max-width: 1100px) { .rodape__enderecos span { white-space: normal; } }
@media (max-width: 900px) { .rodape__enderecos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rodape__enderecos { grid-template-columns: 1fr; text-align: center; } }
.rodape__logo { display: inline-block; background: #FFFFFF; border-radius: var(--raio-m); padding: .7rem 1rem; margin-bottom: 1rem; }
.rodape__logo img { height: 40px; width: auto; }
.rodape h2 { font-size: 1.05rem; color: #FFFFFF; margin-bottom: .9rem; }
.rodape ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.rodape__base { border-top: 1px solid rgba(160, 196, 255, .25); margin-top: 2.5rem; padding-top: 1.3rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem; font-size: .9rem; }
:root[data-contrast="high"] .rodape { color: #fff; }
:root[data-contrast="high"] .rodape a { color: #FFE500; }
@media (max-width: 900px) { .rodape__grade { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rodape__grade { grid-template-columns: 1fr; } }

/* Botão flutuante do WhatsApp */
.whats {
  position: fixed; right: 18px; bottom: 18px; z-index: 60;
  display: inline-flex; align-items: center; gap: .55rem;
  background: #1DA851; color: #FFFFFF; text-decoration: none; font-family: var(--f-titulo); font-weight: 600;
  padding: .85rem 1.15rem .85rem .95rem; border-radius: 999px; box-shadow: 0 10px 30px rgba(7, 21, 51, .35);
}
.whats .icone { width: 26px; height: 26px; stroke-width: 1.9; }
.whats:hover { background: #168B42; }
:root[data-contrast="high"] .whats { background: #FFE500; color: #000; }
@media (max-width: 560px) { .whats span { display: none; } .whats { padding: .95rem; } }

/* Painel de acessibilidade */
.painel-a11y[hidden] { display: none; }
.painel-a11y { position: fixed; inset: 0; z-index: 100; }
.painel-a11y__fundo { position: absolute; inset: 0; background: rgba(3, 10, 28, .55); }
.painel-a11y__caixa {
  position: absolute; top: 0; right: 0; height: 100%; width: min(380px, 100%); overflow-y: auto;
  background: var(--surface); color: var(--text); padding: 1.4rem 1.4rem 2rem; box-shadow: -20px 0 50px rgba(0, 0, 0, .3);
}
.painel-a11y__topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.painel-a11y__topo h2 { font-size: 1.45rem; margin: 0; }
.painel-a11y fieldset { border: 0; border-top: 1px solid var(--line); padding: 1.1rem 0 .4rem; margin: 0; }
.painel-a11y legend { font-family: var(--f-titulo); font-weight: 600; font-size: 1.05rem; padding: 0; margin-bottom: .6rem; float: left; width: 100%; }
.painel-a11y legend + * { clear: both; }
.grupo-botoes { display: flex; gap: .4rem; flex-wrap: wrap; }
.grupo-botoes button, .alternador {
  font: inherit; font-weight: 700; color: var(--text); background: var(--bg); border: 1.5px solid var(--line);
  border-radius: var(--raio-s); padding: .6rem .85rem; min-height: 46px; cursor: pointer;
}
.grupo-botoes button[aria-pressed="true"] { background: var(--brand); color: var(--on-brand); border-color: var(--brand); }
.alternador { display: flex; width: 100%; justify-content: space-between; align-items: center; margin-bottom: .5rem; text-align: left; }
.alternador__trilho { width: 44px; height: 26px; border-radius: 99px; background: var(--line); position: relative; flex: none; transition: background-color .2s; }
.alternador__trilho::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #FFFFFF; transition: transform .2s; box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.alternador[aria-checked="true"] .alternador__trilho { background: var(--brand); }
.alternador[aria-checked="true"] .alternador__trilho::after { transform: translateX(18px); }
.fechar { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line); background: var(--bg); color: var(--text); display: grid; place-items: center; cursor: pointer; }
.painel-a11y__nota { font-size: .92rem; color: var(--muted); margin-top: 1rem; }
.painel-a11y__nota kbd { font-family: inherit; border: 1px solid var(--line); border-radius: 4px; padding: 0 .3em; }

/* Guia de leitura */
.guia-leitura { position: fixed; left: 0; right: 0; height: 3.2em; pointer-events: none; z-index: 90; display: none; border-block: 3px solid var(--focus); background: color-mix(in srgb, var(--focus) 12%, transparent); transform: translateY(-50%); }
:root[data-guia="on"] .guia-leitura { display: block; }

/* Páginas de serviço */
.hero--interna { padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(3rem, 7vw, 5rem); text-align: center; }
.hero--interna .container { display: block; max-width: 900px; }
.hero--interna h1 { font-size: clamp(2.1rem, 3vw + .8rem, 3.4rem); line-height: 1.08; }
.hero--interna .hero__lead { max-width: 44rem; margin-inline: auto; }
.migalhas { list-style: none; padding: 0; margin: 0 0 1.4rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem .5rem; font-size: .92rem; color: #A9B7D3; }
.migalhas li + li::before { content: "›"; margin-right: .5rem; color: #7FDBFF; }
.migalhas a { color: #DCE6FA; }
.grade-itens { list-style: none; margin: 0 auto; padding: 0; max-width: 980px; display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.2rem; }
.grade-itens li { display: flex; gap: .75rem; align-items: flex-start; padding: 1rem 1.15rem; border-radius: var(--raio-m); background: var(--surface); border: 1px solid var(--line); text-wrap: pretty; }
.grade-itens .icone { color: var(--ok); margin-top: .2em; }
.secao--alt .grade-itens li { background: var(--bg); }
@media (max-width: 680px) { .grade-itens { grid-template-columns: 1fr; } }
.prova { max-width: 46rem; margin: 2.2rem auto 0; text-align: center; padding: 1.2rem 1.4rem; border-radius: var(--raio-m); background: color-mix(in srgb, var(--brand) 8%, var(--surface)); border: 1px solid color-mix(in srgb, var(--brand) 30%, transparent); font-weight: 700; }
.chamada-final { background: var(--noite); color: #FFFFFF; text-align: center; background-image: radial-gradient(60% 80% at 50% 0%, rgba(20, 86, 224, .5), transparent 70%); }
.chamada-final h2 { color: #FFFFFF; }
.chamada-final p { color: #CFDBF5; max-width: 40rem; margin: 0 auto 1.6rem; }
.chamada-final .hero__ctas { margin: 0 0 2.4rem; }
.outros-servicos { list-style: none; padding: 0; margin: 0 auto; max-width: 900px; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.outros-servicos a { display: inline-block; padding: .6rem 1rem; border-radius: 999px; border: 1px solid rgba(160, 196, 255, .4); color: #FFFFFF; text-decoration: none; font-weight: 700; }
.outros-servicos a:hover { background: rgba(255, 255, 255, .1); }
:root[data-contrast="high"] .chamada-final { background: #000; }
:root[data-contrast="high"] .outros-servicos a { color: #FFE500; border-color: #FFE500; }
.saiba-mais { display: inline-block; margin-top: .7rem; font-weight: 700; }
.servico--destaque .saiba-mais { color: #9BD4FF; margin: 1rem 0 0; }

/* Página simples (privacidade, 404) */
.pagina-simples { padding-block: clamp(3rem, 7vw, 5rem); }
.pagina-simples .container { max-width: 820px; }
.pagina-simples h1 { font-size: clamp(2rem, 3vw + 1rem, 3rem); }
.pagina-simples h2 { font-size: 1.45rem; margin-top: 2rem; }
.pagina-simples p, .pagina-simples li { color: var(--muted); }

/* Alinhamento geral: apresentação centralizada, listas alinhadas à esquerda, sem hifenização */
p, li, dd { -webkit-hyphens: none; hyphens: none; }
.hero__texto { text-align: center; }
.hero__lead { margin-inline: auto; }
.hero__ctas { justify-content: center; }
.hero__provas { display: inline-grid; text-align: left; }
.rede__info { text-align: center; }
.rede__info strong { justify-content: center; }
.servico--destaque { text-align: center; }
.servico--destaque .servico__icone { margin-inline: auto; }
.servico--destaque > p { text-wrap: balance; }
.servico--destaque .ciclo, .servico--destaque .ticket { text-align: left; }
.servico--destaque .cobertura { justify-content: center; }
.servico--destaque .btn { align-self: center; }
.lista-check li, .ciclo li, .raiox__lacunas li { text-wrap: pretty; }
.sobre__texto { text-align: center; }
.sobre__texto p { text-wrap: balance; }
.certificacoes h3 { text-align: center; }
.certificacoes li { align-items: center; text-align: center; }
.faq summary { text-align: center; padding: 1.2rem 2.6rem; }
.faq details p { text-align: center; margin-inline: auto; text-wrap: balance; }
.raiox__pergunta { text-align: center; text-wrap: balance; }
.raiox__placar { flex-direction: column; text-align: center; gap: .8rem; }
.raiox__resumo, .raiox__subtitulo { text-align: center; text-wrap: balance; }
.raiox__subtitulo { margin-bottom: .2rem; }
.raiox__acoes { justify-content: center; }
.raiox__nav { justify-content: center; }
.omnesdesk { text-align: center; }
.formulario__aviso { text-align: center; }
.pagina-simples p { text-wrap: pretty; }
.formulario__acoes { justify-content: center; }
.ged__texto { text-align: center; }
.ged__texto .lista-check { text-align: left; }
@media (max-width: 560px) {
  .rodape__grade { text-align: center; }
  .rodape__logo { margin-inline: auto; }
  .rodape__base { justify-content: center; text-align: center; }
}

/* Cartões de serviço e lista de clientes centralizados */
.servico:not(.servico--destaque) { text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.servico:not(.servico--destaque) h3 { margin-top: .85rem; }
.servico:not(.servico--destaque) .servico__icone { margin-inline: auto; }
.servico p { text-wrap: balance; }
.clientes__grupo { text-align: center; }
.clientes__grupo h3 { justify-content: center; }
.clientes__grupo li p { text-wrap: balance; }

/* Aviso de privacidade */
.aviso-priv {
  position: fixed; left: 18px; bottom: 18px; z-index: 70; width: min(460px, calc(100vw - 36px));
  display: grid; grid-template-columns: auto 1fr; gap: .4rem 1rem; align-items: start;
  padding: 1.1rem 1.2rem 1.1rem 1.1rem; border-radius: var(--raio-l);
  background: rgba(7, 21, 51, .96); color: #DCE6FA; border: 1px solid rgba(130, 180, 255, .35);
  box-shadow: 0 24px 60px rgba(3, 10, 28, .45), 0 0 0 1px rgba(69, 200, 255, .08) inset;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  animation: aviso-entra .5s cubic-bezier(.2, .8, .2, 1);
}
.aviso-priv[hidden] { display: none; }
.aviso-priv.saindo { animation: aviso-sai .3s ease-in forwards; }
@keyframes aviso-entra { from { opacity: 0; translate: 0 24px; } to { opacity: 1; translate: 0 0; } }
@keyframes aviso-sai { to { opacity: 0; translate: 0 24px; } }
.aviso-priv__selo { grid-row: span 2; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; position: relative;
  background: linear-gradient(145deg, #1456E0, #0B3FB0); color: #FFFFFF; box-shadow: 0 0 22px rgba(69, 200, 255, .45); overflow: hidden; }
.aviso-priv__selo .icone { width: 24px; height: 24px; }
.aviso-priv__selo::after { content: ""; position: absolute; left: 0; right: 0; height: 2px; top: 0; background: #9BE3FF; box-shadow: 0 0 8px #45C8FF; animation: varredura 2.4s ease-in-out infinite; }
@keyframes varredura { 0%, 100% { top: 8%; opacity: 0; } 15% { opacity: 1; } 50% { top: 88%; opacity: 1; } 65% { opacity: 0; } }
.aviso-priv__titulo { font-family: var(--f-titulo); font-weight: 600; font-size: 1.08rem; color: #FFFFFF; margin: 0 0 .25rem; padding-right: 1.6rem; }
.aviso-priv__texto p:not(.aviso-priv__titulo) { margin: 0; font-size: .92rem; line-height: 1.5; }
.aviso-priv__texto a { color: #9BD4FF; font-weight: 700; }
.aviso-priv__ok { grid-column: 2; justify-self: start; min-height: 40px; padding: .6em 1.2em; font-size: .95rem; margin-top: .4rem; }
.aviso-priv__fechar { position: absolute; top: .6rem; right: .6rem; width: 34px; height: 34px; border-radius: 50%; border: 0; background: transparent; color: #A9B7D3; cursor: pointer; display: grid; place-items: center; }
.aviso-priv__fechar:hover { background: rgba(255, 255, 255, .1); color: #FFFFFF; }
.aviso-priv__fechar .icone { width: 18px; height: 18px; }
:root[data-contrast="high"] .aviso-priv { background: #000; border-color: #FFE500; }
:root[data-contrast="high"] .aviso-priv__selo { background: #000; border: 1px solid #FFE500; color: #FFE500; box-shadow: none; }
@media (max-width: 560px) {
  .aviso-priv { left: 10px; right: 84px; bottom: 12px; width: auto; padding: .9rem; gap: .3rem .7rem; }
  .aviso-priv__selo { width: 38px; height: 38px; border-radius: 11px; }
  .aviso-priv__titulo { font-size: 1rem; }
  .aviso-priv__texto p:not(.aviso-priv__titulo) { font-size: .86rem; }
}

/* Voo da mão até o topo: a mão leva o visitante e "energiza" a rede */
.mao-voo { position: fixed; z-index: 300; pointer-events: none; transform-origin: 40% 80%; will-change: top, transform; }
.mao-voo img { display: block; width: 100%; filter: drop-shadow(0 0 22px rgba(69, 200, 255, .85)) drop-shadow(0 0 6px rgba(255, 255, 255, .6));
  -webkit-mask-image: linear-gradient(to bottom, #000 72%, transparent 100%); mask-image: linear-gradient(to bottom, #000 72%, transparent 100%); }
.mao-rastro { position: fixed; z-index: 299; bottom: 0; width: 8px; translate: -50% 0; pointer-events: none; border-radius: 8px;
  background: linear-gradient(to bottom, rgba(190, 238, 255, .95), rgba(69, 200, 255, .55) 25%, rgba(69, 200, 255, 0) 100%);
  box-shadow: 0 0 22px 8px rgba(69, 200, 255, .3); transition: opacity .4s ease; }
.faisca { position: fixed; z-index: 299; width: 6px; height: 6px; border-radius: 50%; pointer-events: none;
  background: #BDEEFF; box-shadow: 0 0 10px 2px #45C8FF; animation: faisca .8s ease-out forwards; }
@keyframes faisca { to { translate: var(--dx, 0) 70px; opacity: 0; scale: .2; } }
.rede__hub.energizado { animation: energia 1.3s ease-out; }
@keyframes energia {
  30% { scale: 1.1; box-shadow: 0 0 0 26px rgba(69, 200, 255, .35), 0 0 140px rgba(69, 200, 255, 1); }
  100% { scale: 1; box-shadow: 0 0 0 8px rgba(69, 200, 255, .12), 0 0 48px rgba(69, 200, 255, .45); }
}
.rede__mapa.acesa .rede__icone { animation: acender 1s ease-out both; }
.rede__mapa.acesa .rede__no:nth-of-type(2) .rede__icone { animation-delay: .12s; }
.rede__mapa.acesa .rede__no:nth-of-type(3) .rede__icone { animation-delay: .24s; }
.rede__mapa.acesa .rede__no:nth-of-type(4) .rede__icone { animation-delay: .36s; }
.rede__mapa.acesa .rede__no:nth-of-type(5) .rede__icone { animation-delay: .48s; }
.rede__mapa.acesa .rede__no:nth-of-type(6) .rede__icone { animation-delay: .6s; }
@keyframes acender { 35% { border-color: #BDEEFF; background: #12408F; box-shadow: 0 0 32px rgba(69, 200, 255, .95); } }
.rede__mapa.acesa .lig { stroke: #9BE3FF; stroke-width: 2.6; }
.topo__logo.pulsar img { animation: pulsar-logo 1.1s ease-out; }
@keyframes pulsar-logo { 35% { scale: 1.08; filter: drop-shadow(0 0 18px rgba(69, 200, 255, .95)); } }

/* Movimento reduzido (sistema ou painel) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .rede__linhas .pulso { display: none; }
}
:root[data-motion="reduzido"] *, :root[data-motion="reduzido"] *::before, :root[data-motion="reduzido"] *::after { animation: none !important; transition: none !important; }
:root[data-motion="reduzido"] { scroll-behavior: auto; }
:root[data-motion="reduzido"] .mao img { rotate: none !important; scale: none !important; }
:root[data-motion="reduzido"] .rede__linhas .pulso { display: none; }

@media print {
  .barra-a11y, .topo, .whats, .painel-a11y, .rede, [vw] { display: none !important; }
  .hero { background: none; color: #000; }
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]):not([data-contrast="high"]) .selo-novo { color: #5EE0A1; } }

/* Política de privacidade */
.pagina-simples h2 { margin-top: 2.2rem; }
.resumo-priv { margin: 0 0 1rem; padding: 1.4rem 1.5rem; border-radius: var(--raio-l); background: var(--surface); border: 1px solid var(--line); }
.resumo-priv h2 { margin: 0 0 .9rem; font-size: 1.3rem; text-align: center; }
.pagina-simples .lista-check { margin: 0 0 1rem; }
.pagina-simples .lista-check li { color: var(--text); }
.data-priv { margin-top: 2rem; font-weight: 700; }
