/* =========================================================
   Netuse – folha de estilos
   Tipografia: Public Sans (família criada para serviços públicos)
   ========================================================= */

:root {
  --tinta: #0f1f45;        /* azul institucional escuro */
  --indigo: #1d4ed8;       /* cor de ação */
  --indigo-escuro: #1e40af;
  --indigo-claro: #dbeafe;
  --papel: #eef2f7;
  --branco: #ffffff;
  --linha: #dde3ec;
  --texto: #1d2236;
  --texto-suave: #4a5068;
  --ok: #1d7350;
  --erro: #b3261e;
  --pendente-fundo: #fff3d6;
  --pendente-texto: #7a4a00;

  --fonte: "IBM Plex Sans", "Segoe UI", Roboto, Arial, sans-serif;
  --largura: 72rem;
  --raio: 6px;
  --raio-grande: 14px;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
  margin: 0;
  font-family: var(--fonte);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--texto);
  background: var(--branco);
  -webkit-font-smoothing: antialiased;
}

img, svg { max-width: 100%; height: auto; }

h1, h2, h3 { line-height: 1.15; color: var(--tinta); margin: 0 0 .6em; }
h1 { font-size: clamp(2.1rem, 4.2vw, 3rem); font-weight: 700; letter-spacing: -.025em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 700; letter-spacing: -.02em; }
h3 { font-size: 1.2rem; font-weight: 700; letter-spacing: -.01em; }
p  { margin: 0 0 1em; max-width: 68ch; }

a { color: var(--indigo); text-underline-offset: .18em; }
a:hover { color: var(--indigo-escuro); }

:focus-visible {
  outline: 3px solid var(--indigo);
  outline-offset: 3px;
  border-radius: 2px;
}

.pular {
  position: absolute; left: 1rem; top: -4rem;
  background: var(--tinta); color: var(--branco);
  padding: .6rem 1rem; border-radius: var(--raio); z-index: 100;
}
.pular:focus { top: 1rem; }

.pendente {
  background: var(--pendente-fundo);
  color: var(--pendente-texto);
  padding: .05em .35em;
  border-radius: 3px;
  font-size: .92em;
}

.container { width: min(100% - 2.5rem, var(--largura)); margin-inline: auto; }

/* ---------- Botões ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center;
  gap: .5rem;
  font: inherit; font-weight: 650; font-size: 1rem;
  padding: .8rem 1.35rem;
  border-radius: var(--raio);
  border: 2px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s, color .15s, border-color .15s;
}
.botao--primario { background: var(--indigo); color: var(--branco); }
.botao--primario:hover { background: var(--indigo-escuro); color: var(--branco); }
.botao--secundario { border-color: var(--tinta); color: var(--tinta); background: transparent; }
.botao--secundario:hover { background: var(--tinta); color: var(--branco); }
.botao--claro { background: var(--branco); color: var(--tinta); }
.botao--claro:hover { background: var(--indigo-claro); color: var(--tinta); }
.botao--contorno-claro { border-color: rgba(255,255,255,.6); color: var(--branco); }
.botao--contorno-claro:hover { background: rgba(255,255,255,.12); color: var(--branco); }
.acoes { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }

/* ---------- Cabeçalho ---------- */
.topo {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--linha);
  backdrop-filter: saturate(1.4) blur(6px);
}
.topo__inner {
  width: min(100% - 2.5rem, var(--largura)); margin-inline: auto;
  display: flex; align-items: center; justify-content: space-between;
  min-height: 4.25rem; gap: 1rem;
}
.marca {
  display: inline-flex; align-items: center; gap: .55rem;
  font-weight: 700; font-size: 1.35rem; letter-spacing: -.03em;
  color: var(--tinta); text-decoration: none;
}
.marca__simbolo { width: 1.9rem; height: 1.9rem; fill: var(--indigo); stroke: var(--indigo); }
.marca--clara { color: var(--branco); }
.marca--clara .marca__simbolo { fill: #93c5fd; stroke: #93c5fd; }

.menu { display: flex; align-items: center; gap: 1.5rem; }
.menu ul { display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.menu a:not(.botao) {
  display: block; padding: .5rem .7rem;
  color: var(--texto); text-decoration: none; font-weight: 550; border-radius: var(--raio);
}
.menu a:not(.botao):hover { background: var(--papel); color: var(--tinta); }
.menu a[aria-current="page"] { color: var(--indigo); box-shadow: inset 0 -2px 0 var(--indigo); border-radius: 0; }

.menu-botao {
  display: none; align-items: center; gap: .5rem;
  font: inherit; font-weight: 600; color: var(--tinta);
  background: none; border: 1px solid var(--linha); border-radius: var(--raio);
  padding: .5rem .8rem; cursor: pointer;
}
.menu-botao__barras, .menu-botao__barras::before, .menu-botao__barras::after {
  display: block; width: 1.1rem; height: 2px; background: currentColor; position: relative;
}
.menu-botao__barras::before, .menu-botao__barras::after { content: ""; position: absolute; left: 0; }
.menu-botao__barras::before { top: -6px; }
.menu-botao__barras::after  { top: 6px; }

@media (max-width: 70rem) {
  .menu-botao { display: inline-flex; }
  .menu {
    display: none;
    position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 1rem;
    background: var(--branco); border-bottom: 1px solid var(--linha);
    padding: 1rem 1.25rem 1.5rem;
  }
  .menu.aberto { display: flex; }
  .menu ul { flex-direction: column; }
  .menu a:not(.botao) { padding: .8rem .5rem; border-bottom: 1px solid var(--papel); }
  .menu a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--indigo); padding-left: .9rem; }
}

/* ---------- Seções ---------- */
.secao { padding-block: clamp(3.5rem, 8vw, 6rem); }
.secao--papel { background: var(--papel); }
.secao--escura { background: var(--tinta); color: #dfe3f3; }
.secao--escura h2, .secao--escura h3 { color: var(--branco); }
.secao__cabeca { max-width: 44rem; margin-bottom: 2.5rem; }
.secao__cabeca p { color: var(--texto-suave); font-size: 1.125rem; }
.secao--escura .secao__cabeca p { color: #c3c8e2; }

/* ---------- Destaque (hero) ---------- */
.destaque { padding-block: clamp(3rem, 7vw, 5.5rem) clamp(3rem, 6vw, 5rem); }
.destaque__grade {
  display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center;
}
.destaque__texto p { font-size: 1.2rem; color: var(--texto-suave); max-width: 34rem; }
@media (max-width: 52rem) { .destaque__grade { grid-template-columns: 1fr; } }

/* Diagrama de tramitação */
.tramitacao {
  background: var(--papel);
  border: 1px solid var(--linha);
  border-radius: var(--raio-grande);
  padding: 1.5rem 1.5rem 1.25rem;
  margin: 0;
}
.tramitacao svg { display: block; width: 100%; height: auto; }
.tramitacao figcaption { font-size: .9rem; color: var(--texto-suave); margin-top: .75rem; }
.tramitacao__linha { stroke: var(--linha); stroke-width: 3; fill: none; }
.tramitacao__percorrido {
  stroke: var(--indigo); stroke-width: 3; fill: none;
  stroke-dasharray: 600; stroke-dashoffset: 600;
  animation: percorrer 3.2s ease-out .4s forwards;
}
.tramitacao__no { fill: var(--branco); stroke: var(--indigo); stroke-width: 2.5; }
.tramitacao__no--fim { fill: var(--indigo); }
.tramitacao__rotulo { font: 600 13px var(--fonte); fill: var(--tinta); }
.tramitacao__data { font: 400 11.5px var(--fonte); fill: var(--texto-suave); }
.tramitacao__doc { fill: var(--branco); stroke: var(--tinta); stroke-width: 1.5; }
.tramitacao__doc-linha { stroke: var(--linha); stroke-width: 2; }
@keyframes percorrer { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .tramitacao__percorrido { stroke-dashoffset: 0; } }

/* ---------- Produtos ---------- */
.produtos {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 1px;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  background: var(--linha);
  border: 1px solid var(--linha);
  border-radius: var(--raio-grande);
  overflow: hidden;
}
.produto {
  background: var(--branco);
  padding: 1.6rem 1.5rem 1.4rem;
  display: flex; flex-direction: column; gap: .4rem;
  position: relative;
}
.produto__sigla {
  font-size: 1.9rem; font-weight: 700; letter-spacing: -.03em; color: var(--tinta);
  margin: 0;
}
.produto p { color: var(--texto-suave); margin: 0 0 .75rem; font-size: 1rem; }
.produto__link { margin-top: auto; font-weight: 650; text-decoration: none; }
.produto__link::after { content: ""; position: absolute; inset: 0; }
.produto:hover { background: #fafaff; }
.produto:hover .produto__link { text-decoration: underline; }
.produto:focus-within { outline: 3px solid var(--indigo); outline-offset: -3px; }
.produto__link:focus-visible { outline: none; }

/* Página Soluções: blocos detalhados */
.solucao {
  display: grid; grid-template-columns: 11rem 1fr; gap: 2rem;
  padding-block: 2rem; border-top: 1px solid var(--linha);
}
.solucao:last-child { border-bottom: 1px solid var(--linha); }
.solucao__sigla { font-size: 2.4rem; font-weight: 700; letter-spacing: -.035em; color: var(--tinta); margin: 0; }
.solucao dl { display: grid; grid-template-columns: 10rem 1fr; gap: .4rem 1rem; margin: 0 0 1.25rem; }
.solucao dt { font-weight: 650; color: var(--tinta); }
.solucao dd { margin: 0; color: var(--texto-suave); }
@media (max-width: 44rem) {
  .solucao { grid-template-columns: 1fr; gap: .5rem; }
  .solucao dl { grid-template-columns: 1fr; gap: .1rem; }
  .solucao dd { margin-bottom: .6rem; }
}

/* ---------- Benefícios ---------- */
.beneficios {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 2rem 2.5rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
}
.beneficio { border-top: 3px solid var(--indigo); padding-top: 1.1rem; }
.secao--escura .beneficio { border-top-color: #93c5fd; }
.beneficio p { color: var(--texto-suave); margin: 0; }
.secao--escura .beneficio p { color: #c3c8e2; }
.beneficio__icone { width: 2rem; height: 2rem; stroke: var(--indigo); fill: none; stroke-width: 1.8; margin-bottom: .6rem; }
.secao--escura .beneficio__icone { stroke: #93c5fd; }

/* ---------- Chamada (CTA) ---------- */
.chamada {
  background: var(--indigo); color: var(--branco);
  border-radius: var(--raio-grande);
  padding: clamp(2rem, 5vw, 3.5rem);
  display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center;
}
.chamada h2 { color: var(--branco); margin-bottom: .4rem; }
.chamada p { color: #dbe7fd; margin: 0; }
.chamada .acoes { margin-top: 0; }
@media (max-width: 48rem) { .chamada { grid-template-columns: 1fr; } }

/* ---------- Duas colunas institucionais ---------- */
.duas-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); }
@media (max-width: 48rem) { .duas-colunas { grid-template-columns: 1fr; } }

.pilares { display: grid; gap: 1.5rem; }
.pilar h3 { margin-bottom: .3rem; }
.pilar p { color: var(--texto-suave); margin: 0; }

/* ---------- Página interna ---------- */
.cabeca-pagina { background: var(--papel); border-bottom: 1px solid var(--linha); padding-block: clamp(2.5rem, 6vw, 4rem); }
.cabeca-pagina p { font-size: 1.2rem; color: var(--texto-suave); margin: 0; }
.trilha { font-size: .92rem; margin-bottom: 1rem; color: var(--texto-suave); }
.trilha ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 0; }
.trilha li + li::before { content: "/"; margin-right: .4rem; color: var(--linha); }

.conteudo-texto { max-width: 46rem; }
.conteudo-texto h2 { margin-top: 2.5rem; font-size: 1.5rem; }
.conteudo-texto ul, .conteudo-texto ol, ul.conteudo-texto { padding-left: 1.2rem; }
.conteudo-texto > :first-child, .duas-colunas > div > :first-child { margin-top: 0; }
.conteudo-texto li { margin-bottom: .4rem; }

/* Perguntas frequentes */
.faq { border-top: 1px solid var(--linha); max-width: 46rem; }
.faq details { border-bottom: 1px solid var(--linha); }
.faq summary {
  cursor: pointer; list-style: none;
  padding: 1.1rem 2.5rem 1.1rem 0; font-weight: 650; color: var(--tinta); position: relative;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ""; position: absolute; right: .4rem; top: 50%;
  width: .6rem; height: .6rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-70%) rotate(45deg); transition: transform .2s;
}
.faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq details > div { padding-bottom: 1.1rem; color: var(--texto-suave); }

/* ---------- Formulário ---------- */
.formulario { display: grid; gap: 1.25rem; max-width: 42rem; }
.formulario__linha { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 40rem) { .formulario__linha { grid-template-columns: 1fr; } }
.campo { display: grid; gap: .35rem; }
.campo label, .campo legend { font-weight: 650; color: var(--tinta); }
.campo .opcional { font-weight: 400; color: var(--texto-suave); }
.campo input, .campo select, .campo textarea {
  font: inherit; color: var(--texto);
  padding: .7rem .85rem;
  border: 1.5px solid #aab0c4; border-radius: var(--raio);
  background: var(--branco); width: 100%;
}
.campo textarea { min-height: 9rem; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--indigo); outline: 2px solid var(--indigo); outline-offset: 0; }
.campo [aria-invalid="true"] { border-color: var(--erro); }
.campo__erro { color: var(--erro); font-size: .93rem; font-weight: 550; }
.campo__erro:empty { display: none; }
fieldset.campo { border: 0; padding: 0; margin: 0; }
.opcoes { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.opcoes label, .consentimento label { font-weight: 450; color: var(--texto); display: flex; gap: .5rem; align-items: flex-start; }
.opcoes input, .consentimento input { width: 1.15rem; height: 1.15rem; margin-top: .25rem; accent-color: var(--indigo); flex: none; }

.aviso { padding: 1rem 1.2rem; border-radius: var(--raio); border-left: 4px solid; max-width: 42rem; }
.aviso p { margin: 0; }
.aviso--sucesso { background: #e7f4ee; border-color: var(--ok); color: #13442f; }
.aviso--erro { background: #fbeceb; border-color: var(--erro); color: #6b1712; }
.aviso--info { background: var(--pendente-fundo); border-color: #c98a00; color: var(--pendente-texto); }

.contato-grade { display: grid; grid-template-columns: 1fr 18rem; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.contato-lado { background: var(--papel); border-radius: var(--raio-grande); padding: 1.5rem; }
.contato-lado h2 { font-size: 1.15rem; }
.contato-lado ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
@media (max-width: 52rem) { .contato-grade { grid-template-columns: 1fr; } }

/* ---------- Blog ---------- */
.posts { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); }
.post-vazio { border: 1.5px dashed var(--linha); border-radius: var(--raio-grande); padding: 2.5rem; text-align: center; color: var(--texto-suave); }
.post-vazio p { margin-inline: auto; }

/* ---------- Rodapé ---------- */
.rodape { background: var(--tinta); color: #c3c8e2; font-size: .97rem; }
.rodape a { color: #e4e6f4; text-decoration: none; }
.rodape a:hover { color: var(--branco); text-decoration: underline; }
.rodape__inner {
  width: min(100% - 2.5rem, var(--largura)); margin-inline: auto;
  display: grid; grid-template-columns: 1.6fr 1fr 1.2fr 1.4fr; gap: 2.5rem;
  padding-block: 3.5rem 2.5rem;
}
.rodape__marca p { margin-top: 1rem; max-width: 22rem; }
.rodape__titulo { font-size: 1rem; color: var(--branco); margin-bottom: .9rem; }
.rodape__lista { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.rodape .pendente { background: rgba(255,243,214,.15); color: #ffd98a; }
.rodape__base {
  width: min(100% - 2.5rem, var(--largura)); margin-inline: auto;
  border-top: 1px solid rgba(255,255,255,.15);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem;
  padding-block: 1.4rem 2rem; font-size: .9rem;
}
.rodape__base p { margin: 0; }
.rodape__base ul { list-style: none; display: flex; gap: 1.5rem; margin: 0; padding: 0; }
@media (max-width: 60rem) { .rodape__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 36rem) { .rodape__inner { grid-template-columns: 1fr; } }

.visualmente-oculto {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

.produto--contato { background: var(--indigo-claro); }
.produto--contato:hover { background: #e2e0f8; }
.produto--contato .produto__titulo { font-size: 1.15rem; font-weight: 700; color: var(--tinta); margin: 0; }

/* Ajustes conforme o modelo */
.rotulo {
  display: inline-block; font-size: .9rem; font-weight: 650; color: var(--indigo);
  background: var(--indigo-claro); padding: .3rem .75rem; border-radius: 999px; margin-bottom: 1rem;
}
.secao--escura .rotulo { background: rgba(147,197,253,.16); color: #bfdbfe; }
.siglas { list-style: none; padding: 0; margin: 2rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.siglas a {
  display: block; padding: .35rem .8rem; border: 1px solid var(--linha); border-radius: var(--raio);
  font-weight: 700; font-size: .95rem; color: var(--tinta); text-decoration: none; background: var(--branco);
}
.siglas a:hover { border-color: var(--indigo); color: var(--indigo); }
.secao__cabeca--linha { max-width: none; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1.5rem; }
.secao__cabeca--linha > div { max-width: 44rem; }
.secao__cabeca--linha p:last-child { margin-bottom: 0; }

.produtos { background: none; border: 0; border-radius: 0; overflow: visible; gap: 1.25rem; }
.produto { border: 1px solid var(--linha); border-radius: var(--raio-grande); }
.produto:hover { border-color: #b9b6ee; background: var(--branco); }
.produto__resumo { font-weight: 600; color: var(--tinta) !important; margin-bottom: .25rem !important; }
.produto:focus-within { outline-offset: 2px; }

.conheca { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.5rem; }
.conheca p { margin: 0; color: var(--texto-suave); }
.conheca h2 { margin-bottom: .4rem; }

/* Cards de produto conforme o modelo */
.produtos { grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); gap: 1.25rem; }
.produto {
  background: var(--branco); border: 1px solid var(--linha); border-radius: 12px;
  padding: 1.5rem; gap: 0; box-shadow: 0 1px 3px rgba(15, 31, 69, .06);
  transition: box-shadow .2s, transform .2s;
}
.produto:hover { background: var(--branco); border-color: var(--linha); box-shadow: 0 8px 24px rgba(15, 31, 69, .10); transform: translateY(-2px); }
.produto__topo { display: flex; gap: .85rem; align-items: flex-start; margin-bottom: 1rem; }
.produto__icone {
  flex: none; width: 2.75rem; height: 2.75rem; border-radius: 10px;
  background: var(--indigo-claro); color: var(--indigo);
  display: grid; place-items: center;
}
.produto__icone svg { width: 1.35rem; height: 1.35rem; }
.produto__sigla { font-size: 1.2rem; font-weight: 700; letter-spacing: -.01em; margin: 0 0 .1rem; }
.produto p.produto__resumo { font-size: .85rem; font-weight: 400; color: var(--texto-suave) !important; margin: 0 !important; line-height: 1.4; }
.produto p.produto__descricao { font-size: .97rem; color: #4b5563; margin: 0 0 1.25rem; line-height: 1.55; }
.produto__link {
  display: inline-flex; align-items: center; gap: .35rem;
  font-weight: 600; font-size: .97rem; color: var(--indigo); text-decoration: none !important; margin-top: auto;
}
.produto__link svg { width: 1rem; height: 1rem; transition: transform .2s; }
.produto:hover .produto__link { text-decoration: none; }
.produto:hover .produto__link svg { transform: translateX(3px); }
.produto a, .produto a:hover, .produto h3 { text-decoration: none; }

/* ===== Topo e destaque conforme o modelo ===== */
:root { --fonte-titulo: "Sora", "IBM Plex Sans", "Segoe UI", Arial, sans-serif; --ciano: #38bdf8; }
h1, h2, h3, .marca, .produto__sigla, .solucao__sigla { font-family: var(--fonte-titulo); }
h1 { letter-spacing: -.03em; }

.topo { background: rgba(248, 250, 252, .96); }
.topo__inner { min-height: 4rem; }
.marca { font-size: 1.3rem; font-weight: 700; letter-spacing: -.02em; gap: .6rem; }
.marca__simbolo {
  width: 2rem; height: 2rem; border-radius: 8px; background: var(--indigo); color: #fff;
  display: grid; place-items: center; font: 700 .95rem var(--fonte-titulo); letter-spacing: 0;
}
.marca--clara .marca__simbolo { background: var(--indigo); color: #fff; }
.menu { gap: 2rem; }
.menu ul { gap: .5rem; }
.menu a:not(.botao) { font-weight: 400; color: #475569; padding: .5rem .6rem; }
.menu a:not(.botao):hover { background: none; color: var(--indigo); }
.menu a[aria-current="page"] { color: var(--indigo); box-shadow: none; }
.menu__acao { padding: .55rem 1rem; font-size: .95rem; border-radius: 8px; }
@media (max-width: 70rem) {
  .menu a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--indigo); }
  .menu { gap: 1rem; }
}

.destaque {
  color: #c7d2e8;
  background-color: #0b1d45;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(135deg, #0a1a3d 0%, #0e2658 55%, #12357a 100%);
  background-size: 48px 48px, 48px 48px, 100% 100%;
  padding-block: clamp(4rem, 9vw, 7.5rem);
}
.destaque__grade { grid-template-columns: 1.05fr .95fr; }
.destaque h1 { color: #eef3fb; font-size: clamp(2.4rem, 5.6vw, 4.4rem); line-height: 1.08; margin-bottom: 1.5rem; }
.destaque__texto p { color: #c7d2e8; font-size: 1.15rem; max-width: 36rem; }
.destaque .rotulo, .rotulo {
  background: none; padding: 0; border-radius: 0;
  text-transform: uppercase; letter-spacing: .08em; font-size: .85rem; font-weight: 600;
  color: var(--indigo); margin-bottom: .9rem;
}
.destaque .rotulo, .secao--escura .rotulo { color: var(--ciano); background: none; }
.destaque .acoes { margin-top: 2.25rem; }
.botao--destaque { background: var(--ciano); color: #0b1d45; border-radius: 8px; }
.botao--destaque:hover { background: #7dd3fc; color: #0b1d45; }
.destaque .botao { border-radius: 8px; font-weight: 500; font-size: .97rem; padding: .75rem 2rem; }
.destaque .botao--contorno-claro { border: 1px solid rgba(255,255,255,.35); }

.mosaico { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.mosaico a {
  display: flex; flex-direction: column; justify-content: space-between; gap: 1.6rem;
  min-height: 6.6rem; padding: 1.1rem 1rem;
  border-radius: 12px; border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: #fff; text-decoration: none;
  font: 700 1.02rem var(--fonte-titulo);
  transition: background-color .2s, border-color .2s;
}
.mosaico a:hover { background: rgba(255,255,255,.11); border-color: rgba(56,189,248,.5); color: #fff; }
.mosaico svg { width: 1.4rem; height: 1.4rem; color: var(--ciano); }
.mosaico a:focus-visible { outline-color: var(--ciano); }
@media (max-width: 52rem) {
  .destaque__grade { grid-template-columns: 1fr; }
  .mosaico { margin-top: 1rem; }
}
@media (max-width: 26rem) { .mosaico a { padding: .9rem .75rem; font-size: .92rem; } }

/* Ajuste fino de medidas conforme o modelo */
:root { --largura: 69.5rem; }
.menu a:not(.botao) { font-size: .97rem; }
.menu__acao { padding: .5rem 1rem; font-size: .93rem; font-weight: 600; }
.destaque .botao { padding: .7rem 2rem; font-size: .95rem; }
@media (max-width: 30rem) { .destaque .acoes .botao { flex: 1 1 100%; } }

/* ===== Notícias ===== */
.categorias { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.categorias a {
  padding: .4rem .9rem; border-radius: 999px; border: 1px solid var(--linha); background: var(--branco);
  color: var(--texto-suave); text-decoration: none; font-size: .93rem; font-weight: 500;
}
.categorias a:hover { border-color: var(--indigo); color: var(--indigo); }
.categorias a[aria-current="page"] { background: var(--indigo); border-color: var(--indigo); color: #fff; }

.noticias { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); }
.noticia-card {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  background: var(--branco); border: 1px solid var(--linha); border-radius: 12px;
  box-shadow: 0 1px 3px rgba(15, 31, 69, .06); transition: box-shadow .2s, transform .2s;
}
.noticia-card:hover { box-shadow: 0 8px 24px rgba(15, 31, 69, .10); transform: translateY(-2px); }
.noticia-card:focus-within { outline: 3px solid var(--indigo); outline-offset: 2px; }
.noticia-card__capa { aspect-ratio: 16 / 9; background: var(--papel); }
.noticia-card__capa img { width: 100%; height: 100%; object-fit: cover; display: block; }
.noticia-card__sem-capa {
  width: 100%; height: 100%; display: grid; place-items: center;
  background-color: #0b1d45;
  background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(135deg, #0a1a3d, #12357a);
  background-size: 32px 32px, 32px 32px, 100% 100%;
}
.noticia-card__sem-capa .marca__simbolo { width: 3rem; height: 3rem; font-size: 1.4rem; border-radius: 12px; }
.noticia-card__corpo { padding: 1.4rem 1.5rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.noticia-card__meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .88rem; color: var(--texto-suave); margin: 0 0 .6rem; }
.noticia-card__meta span, .noticia-card__meta a { color: var(--indigo); font-weight: 600; text-decoration: none; }
.noticia-card__titulo { font-size: 1.2rem; line-height: 1.3; margin: 0 0 .6rem; }
.noticia-card__titulo a { color: var(--tinta); text-decoration: none; }
.noticia-card__titulo a::after { content: ""; position: absolute; inset: 0; }
.noticia-card__titulo a:focus-visible { outline: none; }
.noticia-card__resumo { color: #4b5563; font-size: .97rem; margin: 0 0 1.25rem; }
.noticia-card .produto__link { margin-top: auto; }
.noticia-card:hover .produto__link svg { transform: translateX(3px); }
.paginacao-publica { display: flex; justify-content: center; align-items: center; gap: 1.5rem; margin-top: 2.5rem; color: var(--texto-suave); }

.artigo__cabeca { max-width: 50rem; }
.artigo__cabeca h1 { font-size: clamp(2rem, 4vw, 2.75rem); }
.artigo__resumo { font-size: 1.2rem; color: var(--texto-suave); margin-bottom: .75rem; }
.artigo__autor { font-size: .95rem; color: var(--texto-suave); margin: 0; }
.artigo__secao { padding-top: 2.5rem; }
.artigo__corpo { max-width: 50rem; }
.artigo__capa { margin: 0 0 2rem; }
.artigo__capa img { width: 100%; height: auto; border-radius: 12px; display: block; }
.artigo__texto { font-size: 1.1rem; line-height: 1.75; }
.artigo__texto h2 { font-size: 1.5rem; margin: 2.25rem 0 .75rem; }
.artigo__texto ul { padding-left: 1.3rem; margin: 0 0 1.25rem; }
.artigo__texto li { margin-bottom: .4rem; }
.artigo__texto p { max-width: none; margin-bottom: 1.25rem; }
.artigo .acoes { margin-top: 2.5rem; }

.faixa-previa { background: #fef3c7; color: #78350f; padding: .75rem 0; font-weight: 500; border-bottom: 1px solid #f3d27a; }
.faixa-previa a { color: #78350f; margin-left: .75rem; }

/* ===== Cabeçalho das páginas internas (colorido, no padrão do destaque) ===== */
.cabeca-pagina {
  color: #c7d2e8; border-bottom: 0;
  background-color: #0b1d45;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(135deg, #0a1a3d 0%, #0e2658 55%, #12357a 100%);
  background-size: 48px 48px, 48px 48px, 100% 100%;
  padding-block: clamp(3rem, 7vw, 5rem);
}
.cabeca-pagina h1 { color: #eef3fb; }
.cabeca-pagina p { color: #c7d2e8; }
.cabeca-pagina .trilha, .cabeca-pagina .trilha span { color: #a9b8d6; }
.cabeca-pagina .trilha a { color: #bfdbfe; }
.cabeca-pagina .trilha li + li::before { color: #5b6f99; }
.cabeca-pagina .noticia-card__meta { color: #a9b8d6; }
.cabeca-pagina .noticia-card__meta a, .cabeca-pagina .noticia-card__meta span { color: #7dd3fc; }
.cabeca-pagina .artigo__resumo, .cabeca-pagina .artigo__autor { color: #c7d2e8; }
.cabeca-pagina .pendente { background: rgba(255,243,214,.15); color: #ffd98a; }
.cabeca-pagina__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }

/* Páginas de cada solução: cor própria, definida no painel */
.cabeca-pagina--tema {
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    radial-gradient(circle at 82% 40%, var(--cor) 0%, transparent 55%),
    linear-gradient(135deg, #0a1a3d 0%, #0e2658 100%);
  background-size: 48px 48px, 48px 48px, 100% 100%, 100% 100%;
}
.cabeca-pagina__icone {
  flex: none; width: clamp(4.5rem, 10vw, 7rem); height: clamp(4.5rem, 10vw, 7rem);
  border-radius: 22px; display: grid; place-items: center;
  background: var(--cor); color: var(--cor-texto, #fff);
  box-shadow: 0 0 0 8px rgba(255,255,255,.08), 0 20px 40px rgba(0,0,0,.25);
}
.cabeca-pagina__icone svg { width: 55%; height: 55%; }
@media (max-width: 40rem) { .cabeca-pagina__icone { display: none; } }

.pagina-tema h2::before {
  content: ""; display: block; width: 2.5rem; height: 4px; border-radius: 2px;
  background: var(--cor); margin-bottom: .9rem;
}
.lista-tema { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; }
.lista-tema li { position: relative; padding-left: 2rem; }
.lista-tema li::before {
  content: ""; position: absolute; left: 0; top: .2rem; width: 1.3rem; height: 1.3rem; border-radius: 50%;
  background: var(--cor);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12'/%3E%3C/svg%3E") center / contain;
}
.lista-tema li::after {
  content: ""; position: absolute; left: .42rem; top: .45rem; width: .45rem; height: .7rem;
  border: solid var(--cor-texto, #fff); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.passos-tema { list-style: none; counter-reset: passo; padding: 0; margin: 0; display: grid; gap: 1rem; }
.passos-tema li { counter-increment: passo; position: relative; padding-left: 3rem; min-height: 2.2rem; display: flex; align-items: center; }
.passos-tema li::before {
  content: counter(passo); position: absolute; left: 0; top: 0;
  width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center;
  background: var(--cor); color: var(--cor-texto, #fff); font: 700 .95rem var(--fonte-titulo);
}
.passos-tema li + li::after {
  content: ""; position: absolute; left: 1.05rem; top: -1rem; width: 2px; height: 1rem; background: var(--cor); opacity: .4;
}
.pagina-tema .faq summary:hover { color: var(--cor); }
.pagina-tema .faq details[open] summary { box-shadow: inset 3px 0 0 var(--cor); padding-left: .8rem; }
.pagina-tema .chamada h2::before { display: none; }
.rodape__redes { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.mapa { border-radius: 12px; overflow: hidden; border: 1px solid var(--linha); background: var(--papel); aspect-ratio: 16 / 7; min-height: 18rem; }
.mapa iframe { display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 40rem) { .mapa { aspect-ratio: 4 / 5; } }

/* ===== Botão flutuante de WhatsApp ===== */
.whatsapp-flutuante {
  position: fixed; bottom: 1.25rem; z-index: 60;
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .75rem 1.15rem .75rem .9rem; border-radius: 999px;
  background: #0b7a3e; color: #fff; text-decoration: none; font-weight: 600; font-size: .97rem;
  box-shadow: 0 8px 24px rgba(11, 29, 69, .25);
  transition: transform .2s, box-shadow .2s, background-color .2s;
}
.whatsapp-flutuante--direita { right: 1.25rem; }
.whatsapp-flutuante--esquerda { left: 1.25rem; }
.whatsapp-flutuante:hover { background: #096331; color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(11, 29, 69, .3); }
.whatsapp-flutuante:focus-visible { outline: 3px solid #fff; box-shadow: 0 0 0 6px #0b7a3e; }
.whatsapp-flutuante svg, .whatsapp-flutuante img { width: 1.75rem; height: 1.75rem; flex: none; object-fit: contain; }
@media (max-width: 40rem) {
  .whatsapp-flutuante { padding: .85rem; }
  .whatsapp-flutuante__texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media print { .whatsapp-flutuante, [vw] { display: none !important; } }

/* ===== Clientes ===== */
.cabeca-clientes { padding-bottom: clamp(3.5rem, 8vw, 5.5rem); }
.numeros { display: flex; flex-wrap: wrap; gap: 1rem; margin: 2.25rem 0 0; }
.numeros > div {
  display: flex; flex-direction: column-reverse; gap: .1rem; min-width: 9rem;
  padding: 1rem 1.4rem; border-radius: 12px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
}
.numeros dd { margin: 0; font: 700 clamp(2rem, 4vw, 2.75rem)/1 var(--fonte-titulo); color: #fff; }
.numeros dt { color: #a9c7ef; font-size: .93rem; }

.filtro-uf { min-width: 9rem; }
.filtro-uf select { padding: .55rem .7rem; }
.filtro-solucoes { display: flex; flex-wrap: wrap; gap: .5rem; margin: -1rem 0 2rem; }
.filtro-solucoes button {
  display: inline-flex; align-items: center; gap: .45rem;
  font: 500 .93rem var(--fonte); color: var(--texto); cursor: pointer;
  padding: .45rem .95rem; border-radius: 999px; border: 1px solid var(--linha); background: var(--branco);
  transition: border-color .15s, background-color .15s, color .15s;
}
.filtro-solucoes button[style]::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; background: var(--cor); }
.filtro-solucoes button:hover { border-color: var(--indigo); }
.filtro-solucoes button[aria-pressed="true"] { background: var(--tinta); border-color: var(--tinta); color: #fff; }

.clientes { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr)); }
.cliente {
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--branco); border: 1px solid var(--linha); border-radius: 16px;
  box-shadow: 0 1px 3px rgba(15, 31, 69, .06);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s;
}
.cliente:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(15, 31, 69, .12); border-color: #c9d6f2; }
.cliente[hidden] { display: none; }
.cliente__marca {
  height: 9.5rem; display: grid; place-items: center; position: relative;
  background-color: #f3f6fc;
  background-image: linear-gradient(rgba(29,78,216,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(29,78,216,.06) 1px, transparent 1px);
  background-size: 22px 22px;
  border-bottom: 1px solid var(--linha);
}
.cliente__marca img, .cliente__marca .cliente__iniciais {
  width: 6.25rem; height: 6.25rem; border-radius: 50%; background: #fff; object-fit: contain; padding: .7rem;
  box-shadow: 0 6px 18px rgba(15, 31, 69, .12), 0 0 0 6px rgba(255,255,255,.7);
  transition: transform .3s ease;
}
.cliente:hover .cliente__marca img, .cliente:hover .cliente__marca .cliente__iniciais { transform: scale(1.05); }
.cliente__iniciais {
  display: grid; place-items: center; font: 700 1.6rem var(--fonte-titulo); color: var(--indigo);
  background: var(--indigo-claro);
}
.cliente__marca .cliente__iniciais { background: #fff; }
.cliente__corpo { padding: 1.2rem 1.35rem 1.35rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.cliente__nome { font-size: 1.08rem; line-height: 1.3; margin: 0; }
.cliente__local { margin: 0; color: var(--texto-suave); font-size: .92rem; }
.cliente__desde { margin: 0; font-size: .85rem; color: #4b5563; font-weight: 500; }
.cliente__solucoes { list-style: none; padding: 0; margin: .6rem 0 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.cliente__solucoes a {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .2rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 600;
  color: var(--tinta); text-decoration: none; background: #f3f5fa; border: 1px solid var(--linha);
}
.cliente__solucoes a::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--cor); }
.cliente__solucoes a:hover { border-color: var(--cor); }
.cliente__site { margin-top: auto; padding-top: .75rem; font-size: .9rem; font-weight: 600; }
.clientes__vazio { text-align: center; color: var(--texto-suave); padding: 2rem 0; }

/* Depoimentos */
.depoimentos { position: relative; overflow: hidden; }
.depoimentos__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); }
.depoimento {
  margin: 0; height: 100%; display: flex; flex-direction: column; gap: 1.25rem;
  padding: 1.75rem; border-radius: 16px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12);
}
.depoimento__aspas { width: 2.5rem; height: auto; fill: var(--ciano); opacity: .9; }
.depoimento blockquote { margin: 0; }
.depoimento blockquote p { color: #e6ecf8; font-size: 1.08rem; line-height: 1.65; margin: 0; max-width: none; }
.depoimento figcaption { margin-top: auto; display: flex; align-items: center; gap: .85rem; font-size: .92rem; color: #a9b8d6; }
.depoimento figcaption strong { display: block; color: #fff; font-weight: 600; }
.depoimento__marca img, .depoimento__marca .cliente__iniciais { width: 3rem; height: 3rem; border-radius: 50%; background: #fff; object-fit: contain; padding: .3rem; display: grid; place-items: center; font-size: 1rem; }

/* Faixa de clientes (página inicial e soluções) */
.faixa-clientes { padding-block: clamp(3rem, 6vw, 4.5rem); border-top: 1px solid var(--linha); }
.faixa-clientes__cabeca { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1.75rem; }
.faixa-clientes__cabeca h2 { font-size: clamp(1.3rem, 2.4vw, 1.6rem); margin: 0; }
.faixa-clientes__cabeca .produto__link { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; text-decoration: none; }
.faixa-clientes__cabeca .produto__link svg { width: 1rem; height: 1rem; }
.faixa-clientes__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); }
.faixa-clientes__lista li {
  display: flex; flex-direction: column; align-items: center; gap: .6rem; text-align: center;
  padding: 1.1rem .75rem; border-radius: 12px; border: 1px solid var(--linha); background: var(--branco);
}
.faixa-clientes__lista img, .faixa-clientes__lista .cliente__iniciais { width: 4rem; height: 4rem; object-fit: contain; border-radius: 50%; }
.faixa-clientes__lista img { filter: grayscale(1); opacity: .85; transition: filter .25s, opacity .25s; }
.faixa-clientes__lista li:hover img { filter: none; opacity: 1; }
.faixa-clientes__nome { font-size: .82rem; color: var(--texto-suave); line-height: 1.3; }
@media (prefers-reduced-motion: reduce) { .cliente:hover, .cliente:hover .cliente__marca img { transform: none; } }
@media (max-width: 40rem) {
  .numeros { flex-wrap: nowrap; gap: .5rem; }
  .numeros > div { min-width: 0; flex: 1 1 0; padding: .8rem .75rem; }
  .numeros dt { font-size: .8rem; line-height: 1.25; }
}

/* ===== Representação Fiorilli ===== */
.cabeca-parceria { background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    radial-gradient(circle at 78% 45%, rgba(56,189,248,.28) 0%, transparent 50%),
    linear-gradient(135deg, #0a1a3d 0%, #0e2658 55%, #12357a 100%);
  background-size: 48px 48px, 48px 48px, 100% 100%, 100% 100%; }
.cabeca-parceria__grade { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
@media (max-width: 52rem) { .cabeca-parceria__grade { grid-template-columns: 1fr; } }
.parceria {
  display: flex; align-items: center; gap: 0; padding: 1.25rem;
  border-radius: 20px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 24px 60px rgba(0,0,0,.25);
}
.parceria__lado { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; text-align: center;
  min-height: 9rem; padding: 1.25rem 1rem; border-radius: 14px; }
.parceria__lado .marca { color: #fff; font-size: 1.5rem; }
.parceria__lado .marca__simbolo { width: 2.5rem; height: 2.5rem; font-size: 1.15rem; }
.parceria__lado--fabricante { background: #fff; }
.parceria__lado--fabricante img { max-width: 100%; max-height: 3.5rem; object-fit: contain; }
.parceria__nome { font: 700 1.3rem var(--fonte-titulo); color: var(--tinta); }
.parceria__papel { font-size: .82rem; letter-spacing: .02em; color: #a9c7ef; }
.parceria__lado--fabricante .parceria__papel { color: var(--texto-suave); }
.parceria__ligacao { flex: none; width: 2.5rem; height: 2px; background: linear-gradient(90deg, rgba(56,189,248,.2), var(--ciano), rgba(56,189,248,.2)); position: relative; }
.parceria__ligacao::after { content: ""; position: absolute; left: 50%; top: 50%; width: .7rem; height: .7rem; border-radius: 50%; background: var(--ciano); transform: translate(-50%, -50%); box-shadow: 0 0 0 5px rgba(56,189,248,.2); }
@media (max-width: 30rem) { .parceria { flex-direction: column; } .parceria__ligacao { width: 2px; height: 2rem; } .parceria__lado { width: 100%; } }

.numeros--claros { margin-top: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
.numeros--claros > div { background: var(--papel); border-color: var(--linha); }
.numeros--claros dd { color: var(--indigo); }
.numeros--claros dt { color: var(--texto-suave); }
.numeros__fonte { font-size: .85rem; color: var(--texto-suave); margin-top: .75rem; }
.lista-papel ul { list-style: none; padding: 0; display: grid; gap: .6rem; }
.lista-papel li { position: relative; padding-left: 1.75rem; }
.lista-papel li::before { content: ""; position: absolute; left: 0; top: .45rem; width: .9rem; height: .9rem; border-radius: 50%; background: var(--indigo-claro); box-shadow: inset 0 0 0 3px var(--indigo); }

.verificacao { padding-block: 2.5rem; }
.verificacao__caixa { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 2rem; background: var(--branco); border: 1px solid var(--linha); border-radius: 16px; padding: 1.75rem; }
.verificacao__caixa > svg { width: 3rem; height: 3rem; color: var(--ok); flex: none; }
.verificacao__caixa > div { flex: 1 1 20rem; }
.verificacao__caixa h2 { font-size: 1.3rem; margin-bottom: .3rem; }
.verificacao__caixa p { margin: 0; color: var(--texto-suave); }

.rodape__selo { margin-top: .75rem; }
.rodape__selo a { display: inline-block; padding: .3rem .75rem; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; font-size: .85rem; }

.menu__acao { white-space: nowrap; }

/* ===== Logotipo com nome completo e símbolo que gira ===== */
.marca__texto { display: inline-flex; align-items: baseline; gap: .3em; white-space: nowrap; }
.marca__sufixo { font-weight: 500; opacity: .72; letter-spacing: -.01em; }
.marca__complemento { font: 500 .72em var(--fonte); opacity: .7; letter-spacing: 0; }
.marca__simbolo { transition: transform .7s cubic-bezier(.34, 1.56, .64, 1); }
.marca:hover .marca__simbolo, .marca:focus-visible .marca__simbolo, .parceria:hover .marca__simbolo { transform: rotate(360deg); }
@media (max-width: 26rem) { .topo .marca__sufixo { display: none; } }

/* ===== Faixa de representação na página inicial ===== */
.faixa-parceria {
  color: #c7d2e8; padding-block: clamp(3rem, 7vw, 5rem);
  background-color: #0b1d45;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    radial-gradient(circle at 80% 50%, rgba(56,189,248,.22) 0%, transparent 45%),
    linear-gradient(135deg, #0e2658 0%, #12357a 100%);
  background-size: 48px 48px, 48px 48px, 100% 100%, 100% 100%;
  border-top: 1px solid rgba(255,255,255,.08);
}
.faixa-parceria__grade { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.faixa-parceria h2 { color: #eef3fb; }
.faixa-parceria p { color: #c7d2e8; max-width: 34rem; }
.faixa-parceria .rotulo { color: var(--ciano); }
.faixa-parceria .botao { margin-top: .75rem; border-radius: 8px; }
@media (max-width: 52rem) { .faixa-parceria__grade { grid-template-columns: 1fr; } }

/* Cartão da parceria: mais refinado */
.parceria { backdrop-filter: blur(6px); transition: border-color .3s, box-shadow .3s; }
.parceria:hover { border-color: rgba(56,189,248,.45); box-shadow: 0 24px 60px rgba(0,0,0,.3), 0 0 0 1px rgba(56,189,248,.15); }
.parceria__lado .marca { font-size: 1.35rem; }
.parceria__lado .marca__texto { flex-wrap: wrap; justify-content: center; }
.parceria__ligacao::after { animation: pulso 2.4s ease-in-out infinite; }
@keyframes pulso { 0%, 100% { box-shadow: 0 0 0 4px rgba(56,189,248,.2); } 50% { box-shadow: 0 0 0 9px rgba(56,189,248,.08); } }

/* Números da representação: cabem no quadro */
.numeros--claros { grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); }
.numeros--claros > div { min-width: 0; padding: 1rem 1.1rem; }
.numeros--claros dd { font-size: clamp(1.6rem, 2.4vw, 2.1rem); white-space: nowrap; }
.numeros--claros dt { overflow-wrap: anywhere; }
.marca__sufixo { opacity: 1; color: var(--texto-suave); }
.marca--clara .marca__sufixo, .parceria .marca__sufixo, .lateral .marca__sufixo, .admin-topo .marca__sufixo { color: #b9c6e4; }
.marca__complemento { opacity: 1; color: #b9c6e4; }
.parceria__lado .marca { gap: .7rem; }
.parceria__lado .marca__texto { flex-direction: column; align-items: flex-start; gap: .1rem; flex-wrap: nowrap; line-height: 1.05; text-align: left; }
.parceria__lado .marca__sufixo { font-size: .62em; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }

/* ===== Página Soluções: vitrines ===== */
.atalhos-solucoes { position: sticky; top: 4rem; z-index: 30; background: rgba(255,255,255,.94); backdrop-filter: blur(6px); border-bottom: 1px solid var(--linha); }
.atalhos-solucoes ul { list-style: none; margin: 0; padding: .7rem 0; display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: thin; }
.atalhos-solucoes a {
  display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap;
  padding: .4rem .9rem; border-radius: 999px; border: 1px solid var(--linha);
  color: var(--tinta); text-decoration: none; font-weight: 600; font-size: .9rem; background: #fff;
}
.atalhos-solucoes a::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--cor); }
.atalhos-solucoes a:hover { border-color: var(--cor); }
@media (max-width: 70rem) { .atalhos-solucoes { top: 4rem; } }

.vitrine { padding-block: clamp(3.5rem, 8vw, 6rem); position: relative; overflow: hidden; scroll-margin-top: 7.5rem; }
.vitrine:nth-child(even) { background: var(--papel); }
.vitrine__grade { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.vitrine--invertida .vitrine__texto { order: 2; }
@media (max-width: 56rem) { .vitrine__grade { grid-template-columns: 1fr; } .vitrine--invertida .vitrine__texto { order: 0; } }
.vitrine__cabeca { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.vitrine__icone {
  width: 3.5rem; height: 3.5rem; border-radius: 14px; flex: none; display: grid; place-items: center;
  background: var(--cor); color: var(--cor-texto);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--cor) 35%, transparent);
}
.vitrine__icone svg { width: 1.7rem; height: 1.7rem; }
.vitrine__cabeca h2 { margin: 0; font-size: clamp(1.8rem, 3.4vw, 2.4rem); }
.vitrine__resumo { margin: .15rem 0 0; color: var(--texto-suave); font-weight: 500; }
.vitrine__descricao { font-size: 1.1rem; color: #374151; }
.vitrine__beneficio { display: flex; gap: .6rem; align-items: flex-start; font-weight: 600; color: var(--tinta); }
.vitrine__beneficio svg { width: 1.3rem; height: 1.3rem; flex: none; margin-top: .15rem; padding: .15rem; border-radius: 50%; background: var(--cor); color: var(--cor-texto); }
.vitrine__rotulo { display: block; font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--texto-suave); margin-bottom: .5rem; }
.vitrine__areas ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.vitrine__areas li { padding: .3rem .75rem; border-radius: 999px; font-size: .88rem; background: #fff; border: 1px solid var(--linha); }
.vitrine:nth-child(odd) .vitrine__areas li { background: var(--papel); }
.vitrine .acoes { margin-top: 1.75rem; }

/* Moldura de navegador */
.tela { margin: 0; position: relative; perspective: 1600px; }
.tela::before {
  content: ""; position: absolute; inset: 8% -6% -10% 6%; z-index: 0; border-radius: 40px;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--cor) 45%, transparent), transparent);
  filter: blur(30px); opacity: .9;
}
.tela__janela {
  position: relative; z-index: 1; border-radius: 14px; overflow: hidden; background: #fff;
  border: 1px solid rgba(15, 31, 69, .12);
  box-shadow: 0 30px 60px -20px rgba(15, 31, 69, .35), 0 12px 24px -12px rgba(15, 31, 69, .2);
  transform: rotateY(-6deg) rotateX(3deg);
  transition: transform .6s cubic-bezier(.2,.8,.2,1), box-shadow .6s;
}
.vitrine--invertida .tela__janela { transform: rotateY(6deg) rotateX(3deg); }
.tela:hover .tela__janela, .vitrine:focus-within .tela__janela { transform: none; box-shadow: 0 40px 80px -24px rgba(15, 31, 69, .4), 0 12px 24px -12px rgba(15, 31, 69, .2); }
.tela__barra { display: flex; align-items: center; gap: .8rem; padding: .6rem .9rem; background: #f1f4f9; border-bottom: 1px solid #e3e8f0; }
.tela__pontos { display: flex; gap: .35rem; flex: none; }
.tela__pontos i { width: .62rem; height: .62rem; border-radius: 50%; background: #d4dae5; }
.tela__pontos i:first-child { background: #f87171; } .tela__pontos i:nth-child(2) { background: #fbbf24; } .tela__pontos i:nth-child(3) { background: #34d399; }
.tela__endereco { flex: 1; min-width: 0; padding: .25rem .8rem; border-radius: 6px; background: #fff; border: 1px solid #e3e8f0; font-size: .75rem; color: var(--texto-suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tela__imagem { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top left; }

/* Ilustração de painel (quando não há imagem) */
.tela__ilustracao { position: relative; display: grid; grid-template-columns: 22% 1fr; aspect-ratio: 16 / 10; background: #f8fafc; }
.tela__lateral { background: color-mix(in srgb, var(--cor) 92%, #0b1d45); padding: 8% 12%; display: flex; flex-direction: column; gap: 9%; }
.tela__lateral b { height: 9%; border-radius: 4px; background: rgba(255,255,255,.85); width: 70%; }
.tela__lateral i { height: 5%; border-radius: 3px; background: rgba(255,255,255,.35); }
.tela__lateral i:nth-child(2) { background: rgba(255,255,255,.75); }
.tela__corpo { padding: 4.5% 5%; display: flex; flex-direction: column; gap: 5%; }
.tela__topo { display: flex; justify-content: space-between; align-items: center; height: 7%; }
.tela__topo b { width: 34%; height: 100%; border-radius: 4px; background: #cfd8e6; }
.tela__topo i { width: 9%; aspect-ratio: 1; border-radius: 50%; background: color-mix(in srgb, var(--cor) 30%, #fff); }
.tela__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4%; height: 18%; }
.tela__cards span { border-radius: 8px; background: #fff; border: 1px solid #e6ebf3; position: relative; overflow: hidden; }
.tela__cards span::before { content: ""; position: absolute; left: 12%; top: 22%; width: 40%; height: 18%; border-radius: 3px; background: #dbe2ee; }
.tela__cards span::after { content: ""; position: absolute; left: 12%; bottom: 20%; width: 55%; height: 26%; border-radius: 4px; background: color-mix(in srgb, var(--cor) 70%, #fff); }
.tela__grafico { flex: 1; display: flex; align-items: flex-end; gap: 3.5%; padding: 4% 5% 0; border-radius: 8px; background: #fff; border: 1px solid #e6ebf3; }
.tela__grafico i { flex: 1; border-radius: 4px 4px 0 0; background: linear-gradient(180deg, var(--cor), color-mix(in srgb, var(--cor) 40%, #fff)); transform-origin: bottom; animation: crescer 1.2s cubic-bezier(.2,.8,.2,1) both; }
.tela__grafico i:nth-child(2) { animation-delay: .08s; } .tela__grafico i:nth-child(3) { animation-delay: .16s; } .tela__grafico i:nth-child(4) { animation-delay: .24s; }
.tela__grafico i:nth-child(5) { animation-delay: .32s; } .tela__grafico i:nth-child(6) { animation-delay: .4s; } .tela__grafico i:nth-child(7) { animation-delay: .48s; }
@keyframes crescer { from { transform: scaleY(.1); } to { transform: scaleY(1); } }
.tela__linhas { display: grid; gap: 6px; height: 12%; }
.tela__linhas i { border-radius: 3px; background: #e3e8f0; }
.tela__linhas i:nth-child(2) { width: 85%; } .tela__linhas i:nth-child(3) { width: 65%; }
.tela__selo {
  position: absolute; right: 4%; bottom: 6%; width: 13%; aspect-ratio: 1; border-radius: 22%;
  display: grid; place-items: center; background: #fff; color: var(--cor);
  box-shadow: 0 10px 24px rgba(15, 31, 69, .18);
}
.tela__selo svg { width: 55%; height: 55%; }

/* Tela na página de cada solução, sobrepondo o topo */
.tela-produto { margin-top: clamp(-4.5rem, -6vw, -2.5rem); position: relative; z-index: 2; padding-bottom: 1rem; }
.tela-produto .tela { max-width: 58rem; margin-inline: auto; }
.tela-produto .tela__janela { transform: none; }
.cabeca-pagina--tema { padding-bottom: clamp(5rem, 9vw, 7rem); }
@media (prefers-reduced-motion: reduce) { .tela__janela { transform: none !important; } }

/* ===== Cards dos setores de atendimento (página de contato) ===== */
.contato-lado-coluna { display: grid; gap: 1rem; align-content: start; }
.setor__cabeca { display: flex; align-items: center; gap: .7rem; margin-bottom: .5rem; }
.setor__cabeca h2 { margin: 0; }
.setor__icone { width: 2.25rem; height: 2.25rem; border-radius: 10px; flex: none; display: grid; place-items: center; background: var(--indigo); color: #fff; }
.setor__icone svg { width: 1.2rem; height: 1.2rem; }
.setor__descricao { font-size: .9rem; color: var(--texto-suave); margin: 0 0 .9rem; }
.setor ul li { overflow-wrap: anywhere; }

/* Página de contato: formulário à esquerda, setores em duas colunas à direita */
.contato-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.contato-grade--sem-lado { grid-template-columns: minmax(0, 1fr); }
.contato-lado-coluna { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.contato-lado-coluna .setor { height: 100%; }
@media (max-width: 64rem) { .contato-grade { grid-template-columns: 1fr; } }
@media (max-width: 34rem) { .contato-lado-coluna { grid-template-columns: 1fr; } }

/* ===== Aviso de cookies ===== */
.aviso-cookies { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 80; display: flex; justify-content: center; pointer-events: none; }
.aviso-cookies[hidden] { display: none; }
.aviso-cookies__caixa {
  pointer-events: auto; width: min(100%, 60rem); max-height: calc(100vh - 2rem); overflow-y: auto;
  display: grid; grid-template-columns: 1fr auto; gap: 1rem 1.75rem; align-items: center;
  padding: 1.35rem 1.5rem; border-radius: 16px; background: #fff; color: var(--texto);
  border: 1px solid var(--linha); box-shadow: 0 24px 60px rgba(11, 29, 69, .28);
  animation: subir-aviso .35s ease-out;
}
@keyframes subir-aviso { from { transform: translateY(20px); opacity: 0; } to { transform: none; opacity: 1; } }
.aviso-cookies__texto h2 { font-size: 1.1rem; margin: 0 0 .3rem; }
.aviso-cookies__texto p { margin: 0; font-size: .94rem; color: var(--texto-suave); max-width: 46rem; }
.aviso-cookies__botoes { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: flex-end; }
.aviso-cookies__botoes .botao { padding: .6rem 1.1rem; font-size: .93rem; border-radius: 8px; }
.aviso-cookies__personalizar { background: none; border: 0; padding: .6rem .5rem; font: 600 .93rem var(--fonte); color: var(--indigo); text-decoration: underline; text-underline-offset: .18em; cursor: pointer; }
.aviso-cookies__opcoes { grid-column: 1 / -1; display: grid; gap: .75rem; padding-top: .25rem; border-top: 1px solid var(--linha); }
.aviso-cookies__opcoes[hidden] { display: none; }
.aviso-cookies__opcoes .botao { justify-self: start; padding: .6rem 1.1rem; font-size: .93rem; border-radius: 8px; }
.cookie-opcao { padding: .75rem .9rem; border-radius: 10px; background: var(--papel); }
.cookie-opcao label { display: flex; align-items: center; gap: .55rem; color: var(--tinta); cursor: pointer; }
.cookie-opcao input { width: 1.1rem; height: 1.1rem; accent-color: var(--indigo); }
.cookie-opcao p { margin: .3rem 0 0 1.65rem; font-size: .88rem; color: var(--texto-suave); }
.cookie-opcao__fixo { margin-left: auto; font-size: .8rem; color: var(--ok); font-weight: 600; }
@media (max-width: 48rem) {
  .aviso-cookies { left: .5rem; right: .5rem; bottom: .5rem; }
  .aviso-cookies__caixa { grid-template-columns: 1fr; padding: 1.1rem; }
  .aviso-cookies__botoes { justify-content: stretch; }
  .aviso-cookies__botoes .botao { flex: 1 1 10rem; }
}
/* enquanto o aviso estiver aberto, o botão de WhatsApp sobe para não ficar por baixo */
body:has(.aviso-cookies--aberto) .whatsapp-flutuante { bottom: calc(1rem + var(--altura-aviso, 7.5rem)); }
@media (max-width: 48rem) { body:has(.aviso-cookies--aberto) .whatsapp-flutuante { display: none; } }

/* Mapa aguardando permissão */
.mapa__aviso { height: 100%; display: grid; place-content: center; justify-items: center; text-align: center; gap: .5rem; padding: 2rem;
  background-color: #eef2f7;
  background-image: linear-gradient(rgba(29,78,216,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(29,78,216,.06) 1px, transparent 1px);
  background-size: 28px 28px; }
.mapa__aviso svg { width: 2.75rem; height: 2.75rem; color: var(--indigo); }
.mapa__aviso p { margin: 0; color: var(--texto-suave); }
.mapa__aviso .acoes { justify-content: center; margin-top: .75rem; }

/* Tela enviada pelo painel: aparece inteira dentro da moldura, em qualquer proporção ou tamanho */
.tela__janela { display: flex; flex-direction: column; }
.tela__imagem {
  display: block; width: 100%; height: auto; max-width: 100%;
  aspect-ratio: auto; object-fit: contain; object-position: center top;
  max-height: min(36rem, 70vh); background: #f8fafc;
}
.tela-produto .tela__imagem { max-height: min(44rem, 80vh); }

/* ===== Cases ===== */
.cases { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); }
.case-card {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  background: #fff; border: 1px solid var(--linha); border-radius: 18px;
  box-shadow: 0 1px 3px rgba(15, 31, 69, .06); transition: transform .25s, box-shadow .25s;
}
.case-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(15, 31, 69, .14); }
.case-card:focus-within { outline: 3px solid var(--indigo); outline-offset: 2px; }
.case-card__capa {
  position: relative; aspect-ratio: 16 / 9;
  background-color: #0b1d45;
  background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(135deg, #0a1a3d, #12357a);
  background-size: 28px 28px, 28px 28px, 100% 100%;
}
.case-card__capa > img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.case-card:hover .case-card__capa > img { transform: scale(1.04); }
.case-card__capa::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(11, 29, 69, .55)); }
.case-card__marca { position: absolute; left: 1.25rem; bottom: -1.75rem; z-index: 1; }
.case-card__marca img, .case-card__marca .cliente__iniciais {
  width: 3.75rem; height: 3.75rem; border-radius: 50%; background: #fff; object-fit: contain; padding: .35rem; display: grid; place-items: center;
  box-shadow: 0 6px 16px rgba(15, 31, 69, .2), 0 0 0 4px #fff; font-size: 1.1rem;
}
.case-card__corpo { padding: 2.4rem 1.4rem 1.4rem; display: flex; flex-direction: column; gap: .45rem; flex: 1; }
.case-card__local { margin: 0; font-size: .85rem; color: var(--texto-suave); }
.case-card__nome { margin: 0; font-size: 1.25rem; line-height: 1.25; }
.case-card__nome a { color: var(--tinta); text-decoration: none; }
.case-card__nome a::after { content: ""; position: absolute; inset: 0; }
.case-card__nome a:focus-visible { outline: none; }
.case-card__resumo { margin: 0; color: #4b5563; font-size: .97rem; }
.case-card .cliente__solucoes span { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 600; color: var(--tinta); background: #f3f5fa; border: 1px solid var(--linha); }
.case-card .cliente__solucoes span::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--cor); }
.case-card .produto__link { margin-top: auto; padding-top: .6rem; display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; color: var(--indigo); }
.case-card .produto__link svg { width: 1rem; height: 1rem; transition: transform .2s; }
.case-card:hover .produto__link svg { transform: translateX(3px); }

.cliente__selo { position: absolute; top: .75rem; right: .75rem; padding: .15rem .6rem; border-radius: 999px; background: var(--indigo); color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .04em; }
.cliente__case { align-self: flex-start; margin-top: .9rem; padding: .5rem 1rem; font-size: .9rem; border-radius: 8px; }
.cliente__case + .cliente__site { margin-top: .5rem; padding-top: 0; }

/* Topo do case */
.case-topo {
  position: relative; color: #c7d2e8; padding-block: clamp(3rem, 7vw, 5rem) clamp(3.5rem, 8vw, 5.5rem);
  background-color: #0b1d45;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(135deg, #0a1a3d 0%, #0e2658 55%, #12357a 100%);
  background-size: 48px 48px, 48px 48px, 100% 100%;
}
.case-topo--foto { background-image: linear-gradient(90deg, rgba(10,26,61,.95) 0%, rgba(10,26,61,.82) 45%, rgba(10,26,61,.45) 100%), var(--capa); background-size: cover; background-position: center; }
.case-topo .trilha, .case-topo .trilha span { color: #a9b8d6; }
.case-topo .trilha a { color: #bfdbfe; }
.case-topo .trilha li + li::before { color: #5b6f99; }
.case-topo .rotulo { color: var(--ciano); margin-bottom: .4rem; }
.case-topo h1 { color: #fff; margin: 0; font-size: clamp(2rem, 4.5vw, 3.2rem); }
.case-topo__identidade { display: flex; align-items: center; gap: 1.5rem; margin-top: 1rem; }
.case-topo__marca img, .case-topo__marca .cliente__iniciais {
  width: clamp(5rem, 10vw, 7rem); height: clamp(5rem, 10vw, 7rem); border-radius: 50%; background: #fff; object-fit: contain; padding: .6rem;
  display: grid; place-items: center; font-size: 1.8rem; box-shadow: 0 0 0 6px rgba(255,255,255,.12), 0 18px 40px rgba(0,0,0,.3);
}
.case-topo__local { margin: .4rem 0 0; color: #c7d2e8; }
.case-topo__resumo { margin: 1.75rem 0 0; max-width: 44rem; font-size: 1.2rem; color: #e6ecf8; }
.case-topo__solucoes { list-style: none; padding: 0; margin: 1.5rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.case-topo__solucoes a { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .85rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; text-decoration: none; font-weight: 600; font-size: .9rem; }
.case-topo__solucoes a::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--cor); box-shadow: 0 0 0 2px rgba(255,255,255,.6); }
.case-topo__solucoes a:hover { background: rgba(255,255,255,.16); }
@media (max-width: 40rem) { .case-topo__identidade { flex-direction: column; align-items: flex-start; } }

.case-dados { margin-top: 1.5rem; }
.case-dados__texto { font-size: 1.2rem !important; white-space: normal !important; line-height: 1.25 !important; }

.case-etapas { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 1.5rem; }
.case-etapa { background: #fff; border: 1px solid var(--linha); border-radius: 18px; padding: clamp(1.5rem, 3vw, 2.25rem); }
.case-etapa h2 { font-size: 1.5rem; margin-top: .75rem; }
.case-etapa__numero { width: 2.5rem; height: 2.5rem; border-radius: 50%; display: inline-grid; place-items: center; background: var(--indigo); color: #fff; font: 700 1.1rem var(--fonte-titulo); }
.case-etapa__numero--claro { background: var(--ciano); color: #0b1d45; margin-bottom: .75rem; }
.case-sistemas { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: .6rem; }
.case-sistemas li { display: flex; align-items: center; gap: .75rem; padding: .7rem .8rem; border-radius: 12px; background: var(--papel); }
.case-sistemas__icone { width: 2.5rem; height: 2.5rem; border-radius: 10px; flex: none; display: grid; place-items: center; background: var(--cor); color: var(--cor-texto); }
.case-sistemas__icone svg { width: 1.3rem; height: 1.3rem; }
.case-sistemas a { color: var(--tinta); }
.case-resultados .lista-papel li::before { background: rgba(56,189,248,.2); box-shadow: inset 0 0 0 3px var(--ciano); }
.case-resultados .conteudo-texto p, .case-resultados .conteudo-texto li { color: #dbe4f5; font-size: 1.08rem; }
.case-resultados .conteudo-texto strong { color: #fff; }

.case-depoimentos { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(21rem, 1fr)); }
.case-depoimento { margin: 0; height: 100%; display: flex; flex-direction: column; gap: 1.1rem; padding: 1.5rem; border-radius: 18px; background: var(--papel); border: 1px solid var(--linha); }
.case-depoimento blockquote { margin: 0; position: relative; padding-left: 1.25rem; border-left: 3px solid var(--indigo); }
.case-depoimento blockquote p { margin: 0; font-size: 1.06rem; line-height: 1.65; color: #374151; max-width: none; }
.case-depoimento figcaption { margin-top: auto; display: flex; align-items: center; gap: .85rem; font-size: .92rem; color: var(--texto-suave); }
.case-depoimento figcaption img, .case-depoimento figcaption .cliente__iniciais { width: 3.25rem; height: 3.25rem; border-radius: 50%; object-fit: cover; flex: none; display: grid; place-items: center; font-size: 1rem; background: var(--indigo-claro); }
.case-depoimento figcaption strong { display: block; color: var(--tinta); }

.video { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #0b1d45; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video__aviso {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: .75rem; text-align: center; padding: 1rem;
  background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px), radial-gradient(circle at 50% 45%, rgba(56,189,248,.25), transparent 60%);
  background-size: 28px 28px, 28px 28px, 100% 100%;
}
.video__aviso p { margin: 0; font-size: .82rem; color: #a9b8d6; max-width: 22rem; }
.video__play { width: 4.25rem; height: 4.25rem; border-radius: 50%; border: 0; cursor: pointer; display: grid; place-items: center; background: #fff; color: var(--indigo); box-shadow: 0 0 0 10px rgba(255,255,255,.12); transition: transform .2s; }
.video__play svg { width: 1.9rem; height: 1.9rem; margin-left: .2rem; }
.video__play:hover { transform: scale(1.08); }
.video__play:focus-visible { outline: 3px solid var(--ciano); outline-offset: 4px; }

.galeria { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.galeria__item { display: block; border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; background: #dfe5ef; }
.galeria__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.galeria__item:hover img { transform: scale(1.05); }
.galeria__legenda { margin: .4rem 0 0; font-size: .87rem; color: var(--texto-suave); }
.visualizador { border: 0; padding: 0; background: transparent; max-width: min(92vw, 70rem); max-height: 92vh; overflow: visible; }
.visualizador::backdrop { background: rgba(5, 12, 30, .88); }
.visualizador figure { margin: 0; text-align: center; }
.visualizador img { max-width: 100%; max-height: 82vh; border-radius: 10px; display: block; margin: 0 auto; }
.visualizador figcaption { color: #e6ecf8; margin-top: .6rem; }
.visualizador__fechar, .visualizador__nav { position: fixed; border: 0; cursor: pointer; background: rgba(255,255,255,.14); color: #fff; width: 3rem; height: 3rem; border-radius: 50%; font-size: 1.8rem; line-height: 1; display: grid; place-items: center; }
.visualizador__fechar { top: 1rem; right: 1rem; }
.visualizador__nav--anterior { left: 1rem; top: 50%; }
.visualizador__nav--proxima { right: 1rem; top: 50%; }
.visualizador__fechar:hover, .visualizador__nav:hover { background: rgba(255,255,255,.28); }

.outros-cases { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.outros-cases a { display: flex; align-items: center; gap: .8rem; padding: 1rem; border-radius: 12px; border: 1px solid var(--linha); text-decoration: none; color: var(--texto); background: #fff; }
.outros-cases a:hover { border-color: var(--indigo); }
.outros-cases img, .outros-cases .cliente__iniciais { width: 3rem; height: 3rem; border-radius: 50%; object-fit: contain; flex: none; display: grid; place-items: center; font-size: 1rem; }
.outros-cases strong { display: block; color: var(--tinta); }
.outros-cases span span { font-size: .87rem; color: var(--texto-suave); }
@media (prefers-reduced-motion: reduce) { .case-card:hover, .case-card:hover .case-card__capa > img, .galeria__item:hover img { transform: none; } }
