@charset "UTF-8";
/* ============================================================
   Painel do Gabinete — identidade visual própria
   Paleta: "arquivo institucional" — azul-tinta profundo como
   base séria, verde-selo como acento de ação/confirmação,
   âmbar reservado só para pendências/alertas.
   Tipografia: Space Grotesk (títulos, geométrica e firme, lembra
   carimbo/timbre oficial) + Inter (texto, alta legibilidade em tabela).
   ============================================================ */

:root {
    --tinta: #1c2b4a;
    --tinta-clara: #2d4270;
    --selo: #1f7a5c;
    --selo-claro: #e7f4ee;
    --ambar: #b8860b;
    --ambar-claro: #fdf3dc;
    --tijolo: #c1502e;
    --papel: #f6f5f1;
    --papel-card: #ffffff;
    --linha: #e1ddd2;
    --texto: #24262b;
    --texto-suave: #6b6f76;
}

* { box-sizing: border-box; }

body {
    font-family: 'Inter', -apple-system, Segoe UI, Arial, sans-serif;
    margin: 0;
    background: var(--papel);
    color: var(--texto);
}

h1, h2, h3 {
    font-family: 'Space Grotesk', 'Inter', sans-serif;
    letter-spacing: -0.01em;
}

/* ---------- Responsivo do painel admin ---------- */
.menu-toggle {
    display: none; background: none; border: none; color: #fff; font-size: 22px;
    cursor: pointer; margin-right: 12px; padding: 4px 8px;
}
.sidebar-overlay { display: none; }

@media (max-width: 860px) {
    .topnav { flex-wrap: wrap; }
    .menu-toggle { display: inline-block; }
    .user-info { font-size: 12px; }

    .layout { position: relative; }
    .sidebar {
        position: fixed; top: 0; left: 0; height: 100vh; z-index: 3000;
        transform: translateX(-100%); transition: transform .25s ease;
        box-shadow: 2px 0 12px rgba(0,0,0,.2); overflow-y: auto;
    }
    .sidebar.sidebar-aberta { transform: translateX(0); }
    .sidebar-overlay {
        display: block; position: fixed; inset: 0; background: rgba(0,0,0,.4);
        z-index: 2900; opacity: 0; pointer-events: none; transition: opacity .25s ease;
    }
    .sidebar-overlay.overlay-visivel { opacity: 1; pointer-events: auto; }

    .content { padding: 16px; }
    .cards { gap: 10px; }
    .form-box { max-width: none; }

    /* Campos de formulário mais confortáveis pro toque, e evita o zoom
       automático do iPhone ao focar em campo com fonte pequena */
    .form-box input, .form-box select, .form-box textarea,
    .busca-box input {
        font-size: 16px; padding: 12px 10px;
    }
    .form-box button, .busca-box button {
        width: 100%; padding: 13px; font-size: 14px;
    }

    /* Formulários de filtro (mapas) — força empilhar em coluna única
       em vez de ficar espremido lado a lado */
    form[style*="flex"] {
        display: flex !important; flex-direction: column !important; align-items: stretch !important;
    }
    form[style*="flex"] > div { width: 100%; }
    form[style*="flex"] select, form[style*="flex"] input { width: 100%; }
    form[style*="flex"] > div[style*="flex"] { flex-direction: row !important; }

    /* Campos de data/hora e upload de arquivo às vezes ignoram width:100%
       no navegador do celular -- força explicitamente */
    .form-box input[type="date"],
    .form-box input[type="datetime-local"],
    .form-box input[type="file"],
    .form-box input[type="number"] {
        width: 100%; box-sizing: border-box;
    }

    /* Trava qualquer elemento teimoso que force a página inteira a rolar
       na horizontal (efeito colateral maior que rolar só a tabela) */
    html, body { overflow-x: hidden; max-width: 100vw; }
    img { max-width: 100%; height: auto; }
    .content, .form-box, .dash-box { max-width: 100%; box-sizing: border-box; }

    .tabela { display: block; overflow-x: auto; white-space: nowrap; }
    .tabela th, .tabela td { padding: 10px; }
}

/* ---------- Modal de cadastro (formulário) ---------- */
.btn-abrir-modal {
    padding: 10px 20px; background: var(--tinta); color: #fff; border: none;
    border-radius: 3px; cursor: pointer; font-weight: 600; font-size: 13px; margin-bottom: 18px;
}
.btn-abrir-modal:hover { background: var(--tinta-clara); }
.modal-overlay {
    display: none; position: fixed; inset: 0; background: rgba(0,0,0,.45);
    z-index: 500; align-items: flex-start; justify-content: center; padding: 30px 16px; overflow-y: auto;
}
.modal-overlay.modal-aberto { display: flex; }
.modal-caixa { background: var(--papel-card); border-radius: 8px; max-width: 560px; width: 100%; padding: 24px; position: relative; }
.modal-fechar {
    position: absolute; top: 14px; right: 16px; background: none; border: none;
    font-size: 22px; cursor: pointer; color: var(--texto-suave); line-height: 1;
}
.modal-fechar:hover { color: var(--texto); }
.modal-caixa .form-box { border: none; padding: 0; margin: 0; max-width: none; }

/* ---------- Login ---------- */
.login-page {
    display: flex; align-items: center; justify-content: center;
    height: 100vh;
    background: linear-gradient(160deg, var(--tinta) 0%, var(--tinta-clara) 55%, var(--papel) 55%);
}
.login-box {
    background: var(--papel-card); padding: 36px 32px; border-radius: 4px;
    width: 320px; box-shadow: 0 12px 32px rgba(28,43,74,.25);
    border-top: 4px solid var(--selo);
}
.login-box h1 { font-size: 19px; margin: 0 0 4px; color: var(--tinta); }
.login-box p.subtitulo { font-size: 12px; color: var(--texto-suave); margin: 0 0 18px; }
.login-box label { display: block; margin-top: 14px; font-size: 12px; font-weight: 600; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .03em; }
.login-box input { width: 100%; padding: 9px 10px; margin-top: 5px; border: 1px solid var(--linha); border-radius: 3px; font-family: inherit; font-size: 14px; }
.login-box input:focus { outline: none; border-color: var(--selo); }
.login-box button {
    width: 100%; margin-top: 20px; padding: 11px; background: var(--selo); color: #fff;
    border: none; border-radius: 3px; cursor: pointer; font-weight: 600; font-size: 14px;
}
.login-box button:hover { background: #185f47; }
.erro { color: #a12f2f; font-size: 13px; }

/* ---------- Layout geral ---------- */
.topnav {
    display: flex; justify-content: space-between; align-items: center;
    background: var(--tinta); color: #fff; padding: 14px 24px;
}
.brand { font-family: 'Space Grotesk', sans-serif; font-weight: 600; letter-spacing: -0.01em; }
.user-info { font-size: 13px; opacity: .9; }
.user-info a { color: #fff; text-decoration: underline; }

.layout { display: flex; min-height: calc(100vh - 54px); }
.sidebar { width: 210px; background: var(--papel-card); border-right: 1px solid var(--linha); padding: 18px 0; }
.sidebar a {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 20px; color: var(--texto); text-decoration: none; font-size: 14px;
    border-left: 3px solid transparent;
}
.sidebar a .ico { font-size: 15px; width: 18px; text-align: center; }
.sidebar a:hover { background: var(--selo-claro); border-left-color: var(--selo); color: var(--tinta); }

.content { flex: 1; padding: 28px 32px; max-width: 1100px; }
.content h1 { font-size: 22px; margin: 0 0 18px; color: var(--tinta); }
.content h2 { font-size: 16px; margin: 28px 0 12px; color: var(--tinta); }

/* ---------- Cards do dashboard ---------- */
.cards { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 28px; }
.card {
    background: var(--papel-card); border-radius: 6px; padding: 18px 22px; min-width: 130px;
    border: 1px solid var(--linha); border-top: 3px solid var(--selo);
    text-align: left;
}
.card .num { display: block; font-family: 'Space Grotesk', sans-serif; font-size: 28px; font-weight: 700; color: var(--tinta); }
.card span:last-child { font-size: 12px; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .03em; }
.card-destaque { border-top-color: var(--tijolo); }
.card-destaque .num { color: var(--tijolo); }

/* ---------- Dashboard: grid de painéis ---------- */
.dash-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px;
}
.dash-box {
    background: var(--papel-card); border: 1px solid var(--linha); border-radius: 8px; padding: 20px 22px;
}
.dash-box h2 { font-size: 14px; text-transform: uppercase; letter-spacing: .03em; color: var(--tinta); margin: 0 0 14px; }
.dash-vazio { font-size: 13px; color: var(--texto-suave); }
.dash-lista { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.dash-lista li {
    display: flex; flex-direction: column; gap: 2px; padding-bottom: 10px;
    border-bottom: 1px solid var(--linha); font-size: 13px;
}
.dash-lista li:last-child { border-bottom: none; padding-bottom: 0; }
.dash-lista strong { color: var(--texto); font-size: 13.5px; }
.dash-data { font-size: 11px; font-weight: 700; color: var(--selo); text-transform: uppercase; letter-spacing: .03em; }
.dash-sub { font-size: 12px; color: var(--texto-suave); }
.dash-badge {
    display: inline-block; align-self: flex-start; font-size: 10px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .03em; padding: 3px 8px; border-radius: 20px; color: #fff;
}
.dash-badge-pendente { background: var(--ambar); }
.dash-badge-em_analise { background: #2b7de0; }
.dash-badge-atendido { background: var(--selo); }
.dash-link { display: inline-block; margin-top: 14px; font-size: 12.5px; color: var(--selo); text-decoration: none; font-weight: 600; }
.dash-link:hover { text-decoration: underline; }
.dash-enquete-pergunta { font-size: 14px; font-weight: 600; color: var(--texto); margin: 0 0 6px; }
.dash-atalhos { display: flex; flex-wrap: wrap; gap: 8px; }
.dash-atalhos a {
    background: var(--papel); border: 1px solid var(--linha); border-radius: 20px; padding: 8px 14px;
    font-size: 12.5px; color: var(--tinta); text-decoration: none; font-weight: 600;
}
.dash-atalhos a:hover { background: var(--selo-claro); border-color: var(--selo); }

/* ---------- Formulários ---------- */
.form-box {
    background: var(--papel-card); padding: 22px; border-radius: 6px; margin-bottom: 22px;
    max-width: 620px; border: 1px solid var(--linha);
}
.form-box h3 { margin-top: 0; font-size: 14px; color: var(--tinta); }
.form-box label { display: block; margin-top: 12px; font-size: 12px; font-weight: 600; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .02em; }
.form-box input, .form-box select, .form-box textarea {
    width: 100%; padding: 9px 10px; margin-top: 5px; border: 1px solid var(--linha);
    border-radius: 3px; font-family: inherit; font-size: 14px; background: #fff;
}
.form-box input:focus, .form-box select:focus, .form-box textarea:focus { outline: none; border-color: var(--selo); }
.form-box button {
    margin-top: 18px; padding: 10px 20px; background: var(--tinta); color: #fff;
    border: none; border-radius: 3px; cursor: pointer; font-weight: 600; font-size: 13px;
}
.form-box button:hover { background: var(--tinta-clara); }
.form-box button:disabled { background: #b7bcc6; cursor: not-allowed; }

.busca-box { margin-bottom: 18px; display: flex; gap: 8px; }
.busca-box input { padding: 9px 10px; border: 1px solid var(--linha); border-radius: 3px; width: 260px; }
.busca-box button { padding: 9px 16px; border: 1px solid var(--linha); background: #fff; border-radius: 3px; cursor: pointer; font-weight: 600; }

/* ---------- Tabelas ---------- */
.tabela { width: 100%; border-collapse: collapse; background: var(--papel-card); border-radius: 6px; overflow: hidden; border: 1px solid var(--linha); }
.tabela th, .tabela td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--linha); font-size: 13px; }
.tabela th { background: var(--papel); color: var(--texto-suave); text-transform: uppercase; font-size: 11px; letter-spacing: .03em; font-weight: 600; }
.tabela tr:last-child td { border-bottom: none; }
.tabela a { color: #a12f2f; text-decoration: none; font-size: 12px; }
.tabela a:hover { text-decoration: underline; }

/* ---------- Avisos ---------- */
.aviso { background: var(--ambar-claro); border: 1px solid #e5cd8a; color: #6b5417; padding: 11px 14px; border-radius: 4px; font-size: 13px; margin-bottom: 18px; }

/* ---------- Portal público ---------- */
body.portal { background: var(--papel); }

.portal-hero {
    background: radial-gradient(circle at 15% 20%, var(--tinta-clara) 0%, var(--tinta) 55%);
    background-size: cover;
    background-position: center;
    color: #fff; padding: 0; text-align: center; position: relative;
    min-height: 220px;
}
.portal-hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(28,43,74,.55) 0%, rgba(28,43,74,.85) 100%);
}
.portal-hero-inner {
    position: relative; z-index: 1; padding: 56px 24px 48px;
}
.portal-hero::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
    background: linear-gradient(90deg, var(--selo), var(--tijolo)); z-index: 2;
}
.portal-logo {
    width: 84px; height: 84px; border-radius: 50%; object-fit: cover;
    border: 3px solid #fff; margin-bottom: 14px; box-shadow: 0 4px 14px rgba(0,0,0,.25);
    display: block; margin-left: auto; margin-right: auto;
}
.portal-logo-fallback {
    display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.15); font-family: 'Space Grotesk', sans-serif;
    font-size: 28px; font-weight: 700; color: #fff;
}
.portal-hero h1 { font-size: 30px; margin: 0 0 6px; }
.portal-hero-sub {
    margin: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .08em;
    color: rgba(255,255,255,.75);
}

.portal-eyebrow {
    font-size: 12px; text-transform: uppercase; letter-spacing: .08em; font-weight: 600;
    color: var(--selo); border-bottom: 2px solid var(--linha); padding-bottom: 10px;
    margin: 0 0 18px;
}

.portal-grid {
    max-width: 920px; margin: 0 auto; padding: 32px 20px 48px;
    display: grid; grid-template-columns: 1.7fr 1fr; gap: 28px;
    position: relative; z-index: 1;
}
@media (max-width: 780px) {
    .portal-grid { grid-template-columns: 1fr; }
}

.portal-vazio {
    background: var(--papel-card); border: 1px dashed var(--linha); border-radius: 6px;
    padding: 28px; text-align: center; color: var(--texto-suave); font-size: 14px;
}
.portal-vazio-compacto { padding: 16px; font-size: 13px; }

.noticia-card {
    display: flex; gap: 16px; background: var(--papel-card); border-radius: 8px;
    margin-bottom: 16px; border: 1px solid var(--linha); overflow: hidden;
    box-shadow: 0 2px 6px rgba(28,43,74,.05);
}
.noticia-selo {
    flex-shrink: 0; width: 56px; height: 56px; margin: 16px 0 0 16px;
    background: var(--selo); color: #fff; border-radius: 6px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    transform: rotate(-4deg); box-shadow: 0 3px 8px rgba(31,122,92,.35);
}
.noticia-selo .dia { font-family: 'Space Grotesk', sans-serif; font-size: 19px; font-weight: 700; line-height: 1; }
.noticia-selo .mes { font-size: 10px; letter-spacing: .05em; margin-top: 2px; }
.noticia-corpo { padding: 16px 18px 16px 4px; flex: 1; }
.noticia-corpo h3 { margin: 0 0 6px; font-size: 16px; color: var(--tinta); }
.noticia-corpo p { margin: 0; font-size: 13.5px; color: var(--texto-suave); line-height: 1.5; }
.noticia-imagem { width: 100%; max-height: 220px; object-fit: cover; border-radius: 6px; margin-bottom: 10px; }

/* ---------- Carrossel de notícias ---------- */
.carrossel {
    position: relative; border-radius: 10px; overflow: hidden;
    background: var(--tinta); box-shadow: 0 4px 14px rgba(28,43,74,.12);
}
.carrossel-track {
    display: flex; transition: transform .5s ease;
}
.carrossel-slide {
    flex: 0 0 100%; position: relative; aspect-ratio: 4 / 3;
    background-size: cover; background-position: center;
    background-color: var(--tinta);
    background-image: linear-gradient(135deg, var(--tinta) 0%, var(--tinta-clara) 100%);
    display: flex; align-items: flex-end;
}
.carrossel-slide[style*="background-image"] { background-blend-mode: normal; }
.carrossel-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(28,43,74,0) 35%, rgba(28,43,74,.9) 100%);
}
.carrossel-data {
    position: absolute; top: 16px; left: 16px; z-index: 2; margin: 0;
}
.carrossel-conteudo {
    position: relative; z-index: 2; padding: 22px 20px 20px; color: #fff;
}
.carrossel-conteudo h3 { margin: 0 0 6px; font-size: 18px; }
.carrossel-conteudo p { margin: 0; font-size: 13.5px; color: rgba(255,255,255,.85); line-height: 1.5; }

.carrossel-seta {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
    width: 34px; height: 34px; border-radius: 50%; border: none; cursor: pointer;
    background: rgba(255,255,255,.85); color: var(--tinta); font-size: 18px; line-height: 1;
    display: flex; align-items: center; justify-content: center;
}
.carrossel-seta:hover { background: #fff; }
.carrossel-seta-prev { left: 12px; }
.carrossel-seta-next { right: 12px; }

.carrossel-dots {
    position: absolute; bottom: 10px; left: 0; right: 0; z-index: 3;
    display: flex; justify-content: center; gap: 6px;
}
.carrossel-dots .dot {
    width: 7px; height: 7px; border-radius: 50%; border: none; padding: 0;
    background: rgba(255,255,255,.5); cursor: pointer;
}
.carrossel-dots .dot.active { background: #fff; width: 18px; border-radius: 4px; }

.portal-side-box {
    background: var(--papel-card); border: 1px solid var(--linha); border-radius: 8px;
    padding: 18px 20px; margin-bottom: 20px;
}
.portal-agenda { list-style: none; padding: 0; margin: 0; }
.portal-agenda li {
    padding: 10px 0 10px 16px; border-left: 2px solid var(--selo); margin-bottom: 4px;
    display: flex; flex-direction: column; gap: 2px;
}
.portal-agenda-data { font-size: 11px; color: var(--selo); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.portal-agenda li strong { font-size: 14px; color: var(--texto); }
.portal-agenda-local { font-size: 12px; color: var(--texto-suave); }

.portal-contato { list-style: none; padding: 0; margin: 0; font-size: 13.5px; color: var(--texto-suave); }
.portal-contato li { padding: 4px 0; }

.portal-footer {
    text-align: center; padding: 20px; font-size: 12px; color: var(--texto-suave);
    border-top: 1px solid var(--linha);
}

.portal-voltar {
    display: inline-block; color: rgba(255,255,255,.8); font-size: 12px;
    text-decoration: none; margin-bottom: 14px; text-transform: uppercase; letter-spacing: .04em;
}
.portal-voltar:hover { color: #fff; }

/* ---------- Página inicial (landing) ---------- */
.botao-whatsapp, .botao-secundario, .botao-escuro, .botao-claro {
    display: inline-block; padding: 12px 22px; border-radius: 30px; text-decoration: none;
    font-weight: 600; font-size: 14px; text-align: center;
}
.botao-whatsapp { background: var(--selo); color: #fff; }
.botao-whatsapp:hover { background: #185f47; }
.botao-secundario { background: transparent; color: var(--tinta); border: 1.5px solid var(--linha); }
.botao-secundario:hover { border-color: var(--tinta); }
.botao-escuro { background: var(--tinta); color: #fff; }
.botao-claro { background: #fff; color: var(--tinta); }

.home-hero-text { flex: 1; min-width: 280px; }
.home-hero-logo { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; margin-bottom: 16px; }
.home-hero-text h1 { font-size: 40px; color: var(--tinta); margin: 4px 0 10px; line-height: 1.05; }
.home-hero-sub { color: var(--texto-suave); font-size: 15px; margin: 0 0 22px; }
.home-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.home-hero-foto { flex-shrink: 0; }
.home-hero-foto img { width: 220px; height: 220px; object-fit: cover; border-radius: 12px; box-shadow: 0 10px 28px rgba(28,43,74,.18); }

.home-bio {
    max-width: 700px; margin: 0 auto; padding: 40px 24px; text-align: center;
}
.home-bio h2 { font-size: 26px; color: var(--tinta); margin: 6px 0 16px; }
.home-bio p { color: var(--texto-suave); line-height: 1.7; font-size: 15px; margin-bottom: 20px; }

.home-causas {
    background: var(--tinta); color: #fff; padding: 48px 24px; text-align: center;
}
.home-causas h2 { font-size: 26px; margin: 6px 0 32px; }
.portal-eyebrow-claro { color: #8fd9bb; border-bottom: none; }
.home-causas-grid {
    max-width: 900px; margin: 0 auto; display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 260px)); gap: 18px;
    justify-content: center;
}
.causa-card {
    background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
    border-radius: 12px; padding: 28px 22px; border-top: 3px solid var(--selo);
}
.causa-icone {
    width: 52px; height: 52px; border-radius: 12px; background: rgba(255,255,255,.1);
    display: flex; align-items: center; justify-content: center;
    font-size: 24px; margin: 0 auto 16px;
}
.causa-card h3 { font-size: 15px; margin: 0 0 8px; text-transform: capitalize; }
.causa-card p { font-size: 13px; color: rgba(255,255,255,.7); margin: 0; line-height: 1.5; }

.home-cta {
    background: var(--selo); color: #fff; width: 100%; margin: 40px 0 0; padding: 44px 24px;
    display: block;
}
.home-cta h2 { margin: 0 0 8px; font-size: 22px; }
.home-cta p { margin: 0; opacity: .9; font-size: 14px; max-width: 420px; }

.home-footer {
    text-align: center; padding: 32px 20px; background: var(--tinta); color: rgba(255,255,255,.7);
}
.home-footer-social { display: flex; justify-content: center; gap: 18px; margin-bottom: 16px; }
.home-footer-social a { color: #fff; text-decoration: none; font-size: 13px; opacity: .85; }
.home-footer-social a:hover { opacity: 1; }
.home-footer p { margin: 4px 0; font-size: 12px; }
.home-footer-fine a { color: rgba(255,255,255,.6); }

@media (max-width: 640px) {
    .home-hero { padding: 40px 20px 32px; }
    .home-hero-text h1 { font-size: 30px; }
    .home-hero-foto img { width: 160px; height: 160px; }
    .home-cta { flex-direction: column; align-items: flex-start; text-align: left; }
}

/* ---------- Navegação fixa ---------- */
.home-nav {
    position: sticky; top: 0; z-index: 50; background: rgba(246,245,241,.9);
    backdrop-filter: blur(8px); border-bottom: 1px solid var(--linha);
}
.home-nav-inner {
    max-width: 1000px; margin: 0 auto; padding: 12px 24px;
    display: flex; align-items: center; justify-content: space-between;
}
.home-nav-brand {
    display: flex; align-items: center; gap: 10px; font-family: 'Space Grotesk', sans-serif;
    font-weight: 600; font-size: 14px; color: var(--tinta);
}
.home-nav-brand img { height: 40px; max-width: 140px; object-fit: contain; }
.home-nav-links { display: flex; align-items: center; gap: 22px; }
.home-nav-links a:not(.botao-whatsapp) {
    color: var(--texto-suave); text-decoration: none; font-size: 13.5px; font-weight: 500;
}
.home-nav-links a:not(.botao-whatsapp):hover { color: var(--tinta); }
.home-nav-cta { padding: 8px 18px; font-size: 13px; }
@media (max-width: 640px) {
    .home-nav-links a:not(.botao-whatsapp) { display: none; }
}

/* ---------- Animação de revelação ao rolar ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.reveal-visivel { opacity: 1; transform: translateY(0); }

/* ---------- Formas decorativas do hero ---------- */
.home-hero { position: relative; overflow: hidden; }
.home-hero-bg-shape {
    position: absolute; border-radius: 50%; filter: blur(50px); z-index: 0; pointer-events: none;
}
.home-hero-bg-shape-1 {
    width: 320px; height: 320px; background: rgba(31,122,92,.14);
    top: -100px; right: -60px;
}
.home-hero-bg-shape-2 {
    width: 240px; height: 240px; background: rgba(193,80,46,.10);
    bottom: -80px; left: 10%;
}
.home-hero-text, .home-hero-foto { position: relative; z-index: 1; }

/* ---------- Micro-interações ---------- */
.botao-whatsapp, .botao-secundario, .botao-escuro, .botao-claro {
    transition: transform .18s ease, box-shadow .18s ease;
}
.botao-whatsapp:hover, .botao-escuro:hover, .botao-claro:hover {
    transform: translateY(-2px); box-shadow: 0 6px 16px rgba(28,43,74,.18);
}
.botao-secundario:hover { transform: translateY(-2px); }
.causa-card { transition: transform .2s ease, background .2s ease; }
.causa-card:hover { transform: translateY(-4px); background: rgba(255,255,255,.1); }
.noticia-card, .portal-side-box { transition: transform .2s ease, box-shadow .2s ease; }
.portal-side-box:hover { box-shadow: 0 6px 16px rgba(28,43,74,.08); }
.carrossel-seta { transition: transform .15s ease; }
.carrossel-seta:hover { transform: translateY(-50%) scale(1.08); }

/* ---------- Hero renovado (badge + foto grande + textura) ---------- */
.home-hero {
    position: relative; overflow: hidden; width: 100%; min-height: 420px;
}
.home-hero-inner {
    display: flex; align-items: flex-end; justify-content: space-between; gap: 20px;
    max-width: 1100px; margin: 0 auto; padding: 56px 24px 0; flex-wrap: wrap;
    position: relative; z-index: 1;
}
.home-hero-dots {
    position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .5;
    background-image: radial-gradient(var(--linha) 1.5px, transparent 1.5px);
    background-size: 18px 18px; mask-image: linear-gradient(180deg, black, transparent 85%);
}
.home-hero-badge {
    display: inline-block; background: var(--tijolo); color: #fff; font-size: 11px;
    font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    padding: 5px 14px; border-radius: 20px; margin-bottom: 14px;
}
.home-hero-text { padding-bottom: 48px; }
.home-hero-text h1 { font-size: 48px; line-height: 1; margin: 0 0 10px; }
.home-hero-foto { align-self: flex-end; }
.home-hero-foto img {
    width: 280px; height: 340px; object-fit: cover; border-radius: 12px;
    box-shadow: 0 16px 32px rgba(0,0,0,.22);
}

.home-badges-row {
    display: flex; justify-content: center; gap: 14px; flex-wrap: wrap;
    max-width: 1100px; margin: -26px auto 0; padding: 0 24px; position: relative; z-index: 5;
}
.home-badge {
    width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center;
    justify-content: center; color: #fff; text-decoration: none;
    box-shadow: 0 6px 16px rgba(28,43,74,.2); font-weight: 700;
    transition: transform .18s ease;
}
.home-badge svg { width: 22px; height: 22px; }
.home-badge:hover { transform: translateY(-3px) scale(1.05); }

/* ---------- Bio em zigue-zague (foto + texto lado a lado) ---------- */
.home-bio-zigzag {
    max-width: 1000px; margin: 0 auto; padding: 64px 24px;
    display: flex; align-items: center; gap: 48px; flex-wrap: wrap;
}
.home-bio-foto { flex: 0 0 260px; position: relative; }
.home-bio-foto::before {
    content: ""; position: absolute; top: 16px; left: -16px; right: 16px; bottom: -16px;
    background: var(--selo); border-radius: 16px; z-index: 0;
}
.home-bio-foto img {
    position: relative; z-index: 1; width: 100%; height: 320px; object-fit: cover;
    border-radius: 16px; box-shadow: 0 12px 26px rgba(28,43,74,.18);
}
.home-bio-texto { flex: 1; min-width: 280px; }
.home-bio-texto h2 { font-size: 26px; color: var(--tinta); margin: 6px 0 16px; }
.home-bio-texto p { color: var(--texto-suave); line-height: 1.7; font-size: 15px; margin-bottom: 20px; }

@media (max-width: 720px) {
    .home-hero-inner { padding-top: 40px; }
    .home-hero-text h1 { font-size: 32px; }
    .home-hero-foto img { width: 100%; height: 260px; }
    .home-bio-zigzag { flex-direction: column; padding: 48px 20px; }
    .home-bio-foto { flex: 0 0 auto; width: 100%; max-width: 280px; }
}

/* ---------- Mapa de largura total (após o rodapé) ---------- */
.home-mapa-full { width: 100%; line-height: 0; }
.home-mapa-full iframe { width: 100%; }

/* ---------- Trabalhos Realizados ---------- */
.home-trabalhos { max-width: 1000px; margin: 0 auto; padding: 48px 24px; text-align: center; }
.home-trabalhos h2 { font-size: 26px; color: var(--tinta); margin: 6px 0 28px; }
.home-trabalhos .carrossel-conteudo h3 { font-size: 16px; }
.home-trabalhos .carrossel-slide { cursor: zoom-in; }

/* ---------- Enquete pública ---------- */
.home-enquete { max-width: 640px; margin: 0 auto; padding: 48px 24px; text-align: center; }
.home-enquete h2 { font-size: 24px; color: var(--tinta); margin: 6px 0 24px; }
.home-enquete-form { display: flex; flex-direction: column; gap: 10px; align-items: stretch; text-align: left; }
.enquete-opcao {
    display: flex; align-items: center; gap: 10px; padding: 12px 16px;
    border: 1px solid var(--linha); border-radius: 8px; cursor: pointer; font-size: 14px;
    background: var(--papel-card); transition: border-color .15s ease;
}
.enquete-opcao:hover { border-color: var(--selo); }
.enquete-opcao input { width: auto; }
.home-enquete-form button { margin-top: 8px; align-self: flex-start; }
.home-enquete-resultados { text-align: left; display: flex; flex-direction: column; gap: 14px; }
.enquete-barra-label { font-size: 13px; color: var(--texto); margin-bottom: 4px; font-weight: 600; }
.enquete-barra-fundo { background: var(--linha); border-radius: 6px; height: 10px; overflow: hidden; }
.enquete-barra-preenchida { background: var(--selo); height: 10px; border-radius: 6px; transition: width .6s ease; }
.home-enquete-obrigado { margin-top: 18px; font-size: 13px; color: var(--texto-suave); }

/* ---------- Matérias aprovadas (página pública) ---------- */
.materia-item {
    background: var(--papel-card); border: 1px solid var(--linha); border-radius: 8px;
    padding: 4px 18px; margin-bottom: 12px;
}
.materia-item summary {
    padding: 14px 0; cursor: pointer; list-style: none; display: flex;
    align-items: center; gap: 12px; flex-wrap: wrap;
}
.materia-item summary::-webkit-details-marker { display: none; }
.materia-categoria {
    background: var(--selo-claro); color: var(--selo); font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .03em; padding: 4px 10px; border-radius: 20px;
}
.materia-titulo { font-weight: 600; color: var(--tinta); flex: 1; }
.materia-data { font-size: 12px; color: var(--texto-suave); }
.materia-conteudo {
    padding: 4px 0 18px; font-size: 13.5px; line-height: 1.7; color: var(--texto);
    border-top: 1px solid var(--linha); margin-top: 4px; padding-top: 14px;
}

/* ---------- Widget de acessibilidade flutuante ---------- */
.acess-widget { position: fixed; left: 18px; bottom: 18px; z-index: 999; }
.acess-botao {
    width: 50px; height: 50px; border-radius: 50%; border: none; cursor: pointer;
    background: var(--tinta); box-shadow: 0 6px 16px rgba(0,0,0,.25);
    display: flex; align-items: center; justify-content: center;
}
.acess-botao svg { width: 26px; height: 26px; }
.acess-botao:hover { background: var(--tinta-clara); }
.acess-painel {
    position: absolute; left: 0; bottom: 60px; background: #fff; border-radius: 10px;
    box-shadow: 0 10px 28px rgba(0,0,0,.2); padding: 12px; width: 200px;
    display: flex; flex-direction: column; gap: 6px;
}
.acess-painel[hidden] { display: none; }
.acess-titulo { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); margin: 2px 0 6px; }
.acess-painel button {
    text-align: left; padding: 8px 10px; border: 1px solid var(--linha); border-radius: 6px;
    background: var(--papel); cursor: pointer; font-size: 13px; color: var(--texto);
}
.acess-painel button:hover { background: var(--selo-claro); }

body.acess-alto-contraste {
    background: #000 !important; color: #fff !important;
}
body.acess-alto-contraste * {
    background-color: #000 !important; color: #fff !important;
    border-color: #fff !important;
}
body.acess-alto-contraste a { color: #ffde00 !important; text-decoration: underline !important; }
body.acess-alto-contraste img { filter: grayscale(100%) contrast(1.2); opacity: .9; }

/* ---------- Galeria de fotos ---------- */
.home-galeria { max-width: 1000px; margin: 0 auto; padding: 48px 24px; text-align: center; }
.home-galeria h2 { font-size: 26px; color: var(--tinta); margin: 6px 0 28px; }
.home-galeria-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px;
}
.galeria-item {
    margin: 0; border-radius: 10px; overflow: hidden; position: relative;
    box-shadow: 0 4px 12px rgba(28,43,74,.1);
}
.galeria-item img { width: 100%; height: 160px; object-fit: cover; display: block; transition: transform .3s ease; }
.galeria-item:hover img { transform: scale(1.06); }
.galeria-item figcaption {
    position: absolute; left: 0; right: 0; bottom: 0; padding: 8px 10px;
    background: linear-gradient(0deg, rgba(0,0,0,.65), transparent);
    color: #fff; font-size: 12px; text-align: left;
}
.home-bio-foto-destaque::before { background: var(--tijolo); }

/* ---------- Banner de foto no hero ---------- */
.home-hero[style*="background-image"] {
    background-size: cover; background-position: center;
}
.home-hero-banner-overlay {
    position: absolute; inset: 0; z-index: 0;
    background: linear-gradient(100deg, var(--tinta) 0%, rgba(28,43,74,.75) 45%, rgba(28,43,74,.35) 100%);
}
.home-hero[style*="background-image"] .home-hero-text h1,
.home-hero[style*="background-image"] .home-hero-sub {
    color: #fff;
}
.home-hero[style*="background-image"] .home-hero-sub { color: rgba(255,255,255,.85); }

/* ---------- Seção CTA final com banner e foto ---------- */
.home-cta {
    position: relative; overflow: hidden; background-color: var(--selo);
    background-size: cover; background-position: center;
}
.home-cta-overlay {
    position: absolute; inset: 0; z-index: 0;
    background: linear-gradient(100deg, rgba(20,20,24,.6) 0%, rgba(20,20,24,.35) 55%, rgba(20,20,24,.15) 100%);
}
.home-cta-conteudo {
    position: relative; z-index: 1; display: flex; align-items: center;
    justify-content: space-between; gap: 24px; flex-wrap: wrap;
    max-width: 1100px; margin: 0 auto; width: 100%;
}
.home-cta-texto { flex: 1; min-width: 240px; }
.home-cta-foto { flex-shrink: 0; }
.home-cta-foto img {
    width: 140px; height: 140px; object-fit: cover; border-radius: 50%;
    border: 4px solid rgba(255,255,255,.5); box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
@media (max-width: 640px) {
    .home-cta-conteudo { flex-direction: column; text-align: left; }
}

/* ---------- Inteligência Eleitoral (dashboard analítico) ---------- */
.ie-filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; background: var(--papel-card); border: 1px solid var(--linha); border-radius: 8px; padding: 14px; margin-bottom: 14px; }
.ie-filtros .campo { display: flex; flex-direction: column; gap: 3px; min-width: 140px; }
.ie-filtros label { font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--texto-suave); }
.ie-filtros select, .ie-filtros input { padding: 7px 9px; border: 1px solid var(--linha); border-radius: 5px; font-size: 13px; }
.ie-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 14px; }
.ie-chip { background: var(--selo-claro, #eaf3ef); color: var(--selo); border-radius: 14px; padding: 3px 10px; font-size: 12px; display: inline-flex; align-items: center; gap: 6px; }
.ie-chip a { color: var(--selo); text-decoration: none; font-weight: 700; }
.ie-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 16px; }
.ie-card { background: var(--papel-card); border: 1px solid var(--linha); border-radius: 8px; padding: 12px 14px; }
.ie-card .num { display: block; font-size: 22px; font-weight: 700; color: var(--tinta); }
.ie-card .lbl { font-size: 11px; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .03em; }
.ie-tabs { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 2px solid var(--linha); margin-bottom: 16px; }
.ie-tabs a { padding: 9px 14px; font-size: 13px; text-decoration: none; color: var(--texto-suave); border-bottom: 2px solid transparent; margin-bottom: -2px; }
.ie-tabs a.ativa { color: var(--tinta); border-bottom-color: var(--selo); font-weight: 600; }
.ie-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 820px) { .ie-grid2 { grid-template-columns: 1fr; } }
.ie-barra { background: #eee; border-radius: 4px; height: 8px; overflow: hidden; }
.ie-barra span { display: block; height: 8px; background: var(--selo); }
.ie-arvore ul { list-style: none; margin: 0; padding-left: 18px; }
.ie-arvore > ul { padding-left: 0; }
.ie-arvore .zona-item { cursor: pointer; font-weight: 600; padding: 6px 0; }
.ie-arvore .zona-item:hover { color: var(--selo); }
.ie-mapa-caixa { height: 520px; border-radius: 8px; }
.ie-vazio { color: var(--texto-suave); font-size: 13px; padding: 20px; text-align: center; background: var(--papel); border-radius: 8px; }
@media (max-width: 640px) {
    .ie-filtros .campo { min-width: 100%; }
    .ie-mapa-caixa { height: 360px; }
}
