/* Civitar · páginas públicas de transparência (observatório, privacidade, parceria).
   Linguagem editorial de dados: papel claro, tipografia forte, gráficos com a conclusão no título
   e a fonte embaixo, regras finas no lugar de cartões. */
:root{
  --p-papel:#F4F7FB; --p-tinta:#16325C; --p-tinta-2:#3A4F6E; --p-tinta-3:#5F7290;
  --p-regra:#D5DFEC; --p-azul:#224E8F; --p-azul-c:#E3ECF7; --p-ouro:#1B7F52; --p-ouro-c:#DDF3E8;
  --p-foco:#FFDD00;
}
.pub{ background:var(--p-papel); color:var(--p-tinta); font-family:var(--f-corpo, 'Archivo'), system-ui, sans-serif; font-size:17px; line-height:1.55; min-height:100vh; }
.pub a{ color:var(--p-azul); text-underline-offset:3px; }
.pub a:hover{ color:#0B2F57; text-decoration-thickness:2px; }
.pub a:focus-visible, .pub button:focus-visible, .pub input:focus-visible, .pub select:focus-visible, .pub textarea:focus-visible{
  outline:3px solid var(--p-foco); outline-offset:0; box-shadow:0 0 0 6px var(--p-tinta); }
.pular{ position:absolute; left:-9999px; top:8px; background:var(--p-foco); color:var(--p-tinta); padding:10px 16px; font-weight:700; z-index:10; }
.pular:focus{ left:8px; }
.pub-wrap{ max-width:1080px; margin:0 auto; padding:0 20px; }

.pub{ display:flex; flex-direction:column; }
.pub-nav{ background:#fff; border-bottom:1px solid var(--p-regra); font-size:15px; }
.pub-nav .pub-wrap{ display:flex; gap:4px 22px; flex-wrap:wrap; }
.pub-nav a{ color:var(--p-tinta); text-decoration:none; padding:13px 0 10px; border-bottom:3px solid transparent; font-weight:600; }
.pub-nav a:hover, .pub-nav a[aria-current="page"]{ border-bottom-color:var(--sec-verde, #30B67C); color:var(--p-azul); }

.pub-hero{ padding:44px 0 26px; border-bottom:1px solid var(--p-regra); }
.pub-kicker{ font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--p-ouro); }
.pub h1{ font-family:'IBM Plex Serif', Georgia, serif; font-weight:600; font-size:clamp(32px, 5vw, 50px); line-height:1.08; margin:10px 0 14px; color:var(--p-tinta); max-width:22ch; }
.pub h2{ font-family:'IBM Plex Serif', Georgia, serif; font-weight:600; font-size:clamp(23px, 3vw, 30px); line-height:1.2; margin:0 0 6px; color:var(--p-tinta); }
.pub h3{ font-family:'Space Grotesk', sans-serif; font-size:18px; margin:0 0 6px; color:var(--p-tinta); }
.pub-lead{ font-size:clamp(17px, 2vw, 20px); color:var(--p-tinta-2); max-width:62ch; }
.pub-meta{ margin-top:16px; font-size:14px; color:var(--p-tinta-3); display:flex; gap:6px 18px; flex-wrap:wrap; }

.pub-sec{ padding:38px 0; border-bottom:1px solid var(--p-regra); }
.pub-sec > .pub-wrap > p.sub, .pub-sub{ color:var(--p-tinta-2); max-width:70ch; margin:0 0 18px; }
.fonte{ margin-top:10px; font-size:13px; color:var(--p-tinta-3); }
.fonte b{ color:var(--p-tinta-2); font-weight:600; }

/* números principais: régua tipográfica, não cartões */
.numeros{ display:grid; grid-template-columns:repeat(4, 1fr); border-top:1px solid var(--p-tinta); margin-top:6px; }
.numeros > div{ padding:18px 18px 18px 0; border-right:1px solid var(--p-regra); }
.numeros > div + div{ padding-left:18px; }
.numeros > div:last-child{ border-right:0; }
.numeros .n{ font-family:'IBM Plex Mono', monospace; font-weight:600; font-size:clamp(30px, 4.4vw, 46px); line-height:1; color:var(--p-tinta); }
.numeros .n small{ font-size:.45em; color:var(--p-tinta-3); font-weight:500; }
.numeros .r{ margin-top:8px; font-size:15px; color:var(--p-tinta-2); }
@media (max-width:820px){ .numeros{ grid-template-columns:1fr 1fr; } .numeros > div{ border-bottom:1px solid var(--p-regra); } .numeros > div:nth-child(2n){ border-right:0; } .numeros > div:nth-child(odd){ padding-left:0; } }

/* gráficos SVG desenhados no servidor */
.grafico{ width:100%; height:auto; display:block; }
.grafico text{ font-family:'IBM Plex Mono', monospace; font-size:11px; fill:var(--p-tinta-3); }
.grafico .v{ fill:var(--p-tinta); font-weight:600; }
.duas{ display:grid; grid-template-columns:1fr 1fr; gap:34px; }
@media (max-width:820px){ .duas{ grid-template-columns:1fr; } }

/* barras horizontais */
.barras{ list-style:none; margin:0; padding:0; }
.barras li{ display:grid; grid-template-columns:minmax(120px, 210px) 1fr 76px; gap:12px; align-items:center; padding:7px 0; border-bottom:1px solid var(--p-regra); font-size:15px; }
.barras .trilho{ height:12px; background:var(--p-azul-c); }
.barras .trilho i{ display:block; height:100%; background:var(--p-azul); }
.barras .val{ font-family:'IBM Plex Mono', monospace; font-size:14px; text-align:right; }
.barras .nd{ color:var(--p-tinta-3); font-size:13px; }

/* tabela de dados */
.tab-rolagem{ overflow-x:auto; border-top:1px solid var(--p-tinta); }
.tab-dados{ width:100%; border-collapse:collapse; font-size:15px; min-width:640px; }
.tab-dados caption{ text-align:left; font-size:13px; color:var(--p-tinta-3); padding:8px 0; caption-side:bottom; }
.tab-dados th{ text-align:left; font-weight:600; font-size:13px; color:var(--p-tinta-2); padding:10px 10px 10px 0; border-bottom:1px solid var(--p-tinta); }
.tab-dados td{ padding:9px 10px 9px 0; border-bottom:1px solid var(--p-regra); vertical-align:middle; }
.tab-dados td.num, .tab-dados th.num{ text-align:right; font-family:'IBM Plex Mono', monospace; }
.tab-dados .sig{ display:inline-block; width:8px; height:20px; vertical-align:middle; margin-right:8px; }

/* destaque de achado */
.achado{ border-left:6px solid var(--p-ouro); background:#fff; padding:18px 22px; max-width:760px; }
.achado .grande{ font-family:'IBM Plex Mono', monospace; font-size:clamp(36px, 6vw, 56px); font-weight:600; line-height:1; color:var(--p-tinta); }

/* ODS */
.ods{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, 1fr); gap:0 34px; }
.ods li{ display:grid; grid-template-columns:62px 1fr; gap:14px; padding:16px 0; border-bottom:1px solid var(--p-regra); }
.ods .num{ font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:15px; color:#fff; display:flex; align-items:center; justify-content:center; height:62px; }
.ods p{ margin:4px 0 0; font-size:15px; color:var(--p-tinta-2); }
@media (max-width:820px){ .ods{ grid-template-columns:1fr; } }

/* texto corrido (privacidade, metodologia) */
.texto{ max-width:72ch; }
.pub-wrap.texto{ max-width:1080px; }
.pub-wrap.texto > *{ max-width:72ch; }
.texto h2{ margin-top:34px; }
.texto h3{ margin-top:22px; }
.texto p, .texto li{ color:var(--p-tinta-2); }
.texto dl{ display:grid; grid-template-columns:minmax(160px, 240px) 1fr; gap:10px 22px; margin:14px 0; }
.texto dt{ font-weight:600; color:var(--p-tinta); }
.texto dd{ margin:0; color:var(--p-tinta-2); }
@media (max-width:620px){ .texto dl{ grid-template-columns:1fr; } .texto dd{ margin-bottom:8px; } }

/* formulário */
.form-pub{ max-width:680px; }
.form-pub .campo{ margin-bottom:18px; }
.form-pub label{ display:block; font-weight:600; margin-bottom:6px; }
.form-pub .dica{ display:block; font-size:14px; color:var(--p-tinta-3); margin:-2px 0 6px; font-weight:400; }
.form-pub input[type=text], .form-pub input[type=email], .form-pub input[type=number], .form-pub select, .form-pub textarea{
  width:100%; box-sizing:border-box; font:inherit; color:var(--p-tinta); background:#fff; border:2px solid var(--p-tinta); padding:10px 12px; border-radius:0; }
.form-pub .duas-col{ display:grid; grid-template-columns:2fr 1fr; gap:16px; }
.form-pub .erro{ color:#B3261E; font-weight:600; font-size:15px; margin:4px 0 0; }
.form-pub .marcar{ display:flex; gap:10px; align-items:flex-start; font-weight:400; }
.form-pub .marcar input{ width:22px; height:22px; margin-top:2px; flex:none; }
.form-pub .armadilha{ position:absolute; left:-9999px; }
.btn-pub{ display:inline-block; font:inherit; font-weight:700; background:var(--p-azul); color:#fff; border:0; padding:13px 22px; cursor:pointer; text-decoration:none; box-shadow:0 4px 0 var(--sec-verde, #30B67C); }
.btn-pub:hover{ background:#183A6E; color:#fff; }
.pub a.btn-pub, .pub a.btn-pub:hover{ color:#fff; text-decoration:none; }
.pub a.btn-pub.claro{ color:var(--p-tinta); }
.btn-pub.claro{ background:#fff; color:var(--p-tinta); border:2px solid var(--p-tinta); box-shadow:none; }
.aviso-ok{ border-left:6px solid #1E7B4B; background:#fff; padding:16px 20px; font-weight:600; }
.aviso-erro{ border-left:6px solid #B3261E; background:#fff; padding:16px 20px; font-weight:600; }

.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

@media print{ .pub-nav, .pular, .btn-pub, .sec-faixa{ display:none; } .pub{ background:#fff; } }
