/* CESASCORE — base compartilhada por todas as páginas: cores, fonte, utilitários e rodapé */
:root {
  --tinta: #1d2024;
  --tinta-suave: #5d636b;
  --azul-marca: #1f4e8c;
  --teal-marca: #2a9d8f;

  --topo-claro: #dde4ec;
  --topo-grad: linear-gradient(90deg, #c7d4e2 0%, #a9bccf 55%, #9db1c6 100%);

  --cartao-fundo: #f6f8fc;
  --cartao-borda: #d6dce6;
  --cartao-topo: linear-gradient(90deg, #c2d1ea 0%, #d3dff0 60%, #dde6f3 100%);
  --quadro-borda: #cfd5dd;

  --campo-fundo: #e5e7ea;
  --campo-borda: #c2c6cc;
  --campo-texto: #3a3f45;
  --placeholder: #9aa0a7;

  --verde: #5fe09c;
  --verde-escuro: #2fa866;
  --cinza-etapa: #e1e3e6;
  --cinza-linha: #d9dde2;

  --voltar-fundo: #bfece7;
  --voltar-borda: #86d3ca;
  --voltar-texto: #3d6f6a;
  --avancar-fundo: #c9f1c6;
  --avancar-borda: #8fd78a;
  --avancar-texto: #3f7c3b;

  --alerta: #b45309;
  --erro: #c0392b;

  --rodape-fundo: #e9ecef;
  --rodape-borda: #d3d7dc;
}

* { box-sizing: border-box; }

html, body { margin: 0; }

body {
  font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  color: var(--tinta);
  background: #fff;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

[hidden] { display: none !important; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.logo-img { height: 62px; width: auto; display: block; }

/* ===================== RODAPÉ ===================== */
.rodape {
  background: var(--rodape-fundo);
  border-top: 1px solid var(--rodape-borda);
  font-size: 11px;
  color: var(--tinta-suave);
}
.rodape-grade {
  display: grid;
  grid-template-columns: 1fr 1.25fr auto 1fr;
  gap: 32px;
  align-items: start;
  padding: 18px 32px 20px;
}
.rodape h2 {
  font-size: 13px;
  font-weight: 700;
  color: var(--tinta);
  margin: 0 0 8px;
}
.rodape p { margin: 0; line-height: 1.45; max-width: 300px; }
.rodape a { color: inherit; text-decoration: none; }
.rodape a:hover { text-decoration: underline; }
.rodape-logos {
  display: flex;
  align-items: center;
  gap: 24px;
  align-self: center;
}
.rodape-logos img { height: 48px; width: auto; }
.logo-falta {
  display: inline-grid;
  place-items: center;
  height: 48px;
  min-width: 48px;
  padding: 0 6px;
  border: 1px dashed #aab0b7;
  border-radius: 50%;
  font-weight: 700;
  font-size: 10px;
}
.rodape-copy {
  margin: 0 !important;
  max-width: none !important;
  text-align: center;
  font-size: 10px;
  padding: 10px 16px 12px;
  border-top: 1px solid var(--rodape-borda);
}


@media (max-width: 900px) {
  .rodape-grade { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
  .rodape-grade { grid-template-columns: 1fr; padding: 18px 16px; gap: 20px; }
}
