/* =========================================================
   ASBBM - Tema visual
   Carregado depois de bootstrap/estilo/menu e sobrescreve o legado
   ========================================================= */

:root {
    --verde: #01AD58;
    --verde-escuro: #007A3D;
    --verde-profundo: #0B3B2A;
    --verde-claro: #E8F7EF;
    --texto: #23302A;
    --texto-suave: #5B6B63;
    --borda: #E3EAE6;
    --fundo: #F6F8F7;
    --branco: #FFFFFF;
    --raio: 14px;
    --sombra: 0 6px 24px rgba(11, 59, 42, .08);
    --sombra-forte: 0 14px 40px rgba(11, 59, 42, .16);
    --fonte-texto: 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --fonte-titulo: 'Montserrat', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ---------- Base ---------- */

* {
    font-family: inherit;
    font-size: inherit;
}

html {
    font-size: 16px;
}

body,
body.bgmain {
    font-family: var(--fonte-texto);
    font-size: 16px;
    line-height: 1.65;
    color: var(--texto);
    background: var(--fundo);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

.fa {
    font-family: FontAwesome !important;
}

.glyphicon {
    font-family: 'Glyphicons Halflings' !important;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--fonte-titulo);
    color: var(--verde-profundo);
    font-weight: 700;
    line-height: 1.3;
}

h1 { font-size: 32px; }
h2 { font-size: 24px; }
h3 { font-size: 20px; }
h4 { font-size: 17px; }

p, li, td, th, label, input, select, textarea, button, .btn {
    font-size: 15.5px;
}

small, .small { font-size: 13px; }

a {
    color: var(--verde-escuro);
    transition: color .2s, background .2s, box-shadow .2s, transform .2s;
}

a:hover, a:focus {
    color: var(--verde);
    text-decoration: none;
}

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

.container {
    max-width: 1200px;
    width: 100%;
    padding-left: 16px;
    padding-right: 16px;
}

/* ---------- Botões ---------- */

.btn {
    border-radius: 999px;
    font-weight: 600;
    padding: 9px 20px;
    border: 0;
    box-shadow: none;
    letter-spacing: .1px;
}

.btn-sm, .btn-xs { padding: 6px 14px; font-size: 13.5px; }
.btn-lg { padding: 13px 28px; font-size: 16px; }

.btn-success, .btn-fotos, .btn-primary {
    background: var(--verde);
    color: #fff !important;
}

.btn-success:hover, .btn-success:focus,
.btn-fotos:hover, .btn-fotos:focus,
.btn-primary:hover, .btn-primary:focus {
    background: var(--verde-escuro);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(1, 173, 88, .3);
}

.btn-info {
    background: var(--verde-profundo);
    color: #fff !important;
}

.btn-info:hover, .btn-info:focus {
    background: #072a1e;
    color: #fff;
}

.btn-default {
    background: #fff;
    color: var(--verde-profundo);
    border: 1px solid var(--borda);
}

.btn-default:hover { background: var(--verde-claro); }

.btn-contorno {
    background: transparent;
    color: #fff !important;
    border: 2px solid rgba(255, 255, 255, .8);
}

.btn-contorno:hover {
    background: #fff;
    color: var(--verde-profundo) !important;
}

/* ---------- Formulários ---------- */

.form-control {
    height: auto;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid #D5DED9;
    border-radius: 10px;
    box-shadow: none;
    background: #fff;
}

textarea.form-control { min-height: 120px; }

.form-control:focus {
    border-color: var(--verde);
    box-shadow: 0 0 0 3px rgba(1, 173, 88, .15);
}

label {
    font-weight: 600;
    color: var(--texto);
    margin-bottom: 6px;
}

fieldset {
    background: #fff;
    border: 1px solid var(--borda) !important;
    border-radius: var(--raio);
    padding: 20px 22px !important;
    margin-bottom: 24px !important;
}

fieldset legend {
    font-family: var(--fonte-titulo);
    font-weight: 700;
    color: var(--verde-escuro);
    border: 0;
    width: auto;
    padding: 0 8px;
    margin-bottom: 8px;
    font-size: 17px;
}

.well, .well-login, .well-dados, .well-opcoes, .well-boleto, .well-verde, .coluna {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    padding: 24px;
}

.alert { border-radius: 12px; border: 0; }

.label { border-radius: 999px; padding: .35em .8em; font-weight: 600; font-size: 12px; }

/* ---------- Tabelas ---------- */

.table {
    background: #fff;
    border-radius: var(--raio);
    overflow: hidden;
}

.table > thead > tr > th,
.tabela tr th,
[class*="tabela-"] tr th {
    background: var(--verde-profundo) !important;
    color: #fff !important;
    border: 0 !important;
    font-weight: 600;
    padding: 12px !important;
}

.table > tbody > tr > td {
    padding: 12px !important;
    vertical-align: middle !important;
    border-top: 1px solid var(--borda);
}

.table-responsive { border: 0; border-radius: var(--raio); }

.pagination > li > a,
.pagination > li > span {
    border-radius: 8px !important;
    margin: 0 3px;
    border: 1px solid var(--borda);
    color: var(--verde-escuro);
}

.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover {
    background: var(--verde);
    border-color: var(--verde);
}

/* ---------- Topbar ---------- */

.topbar {
    background: var(--verde-profundo);
    color: rgba(255, 255, 255, .85);
    font-size: 13.5px;
}

.topbar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 38px;
    gap: 12px;
}

.topbar a {
    color: rgba(255, 255, 255, .85);
    font-size: 13.5px;
    margin-right: 18px;
}

.topbar a:hover { color: #fff; }
.topbar .fa { margin-right: 5px; color: var(--verde); }

.topbar-social a { margin: 0 0 0 14px; }
.topbar-social .fa { color: rgba(255, 255, 255, .85); margin: 0; font-size: 16px; }
.topbar-social a:hover .fa { color: #fff; }

/* ---------- Cabeçalho ---------- */

.site-header {
    background: #fff;
    border-bottom: 1px solid var(--borda);
}

.site-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 0;
}

.site-logo img {
    display: block;
    width: auto;
    max-height: 84px;
}

.site-acessos {
    display: flex;
    gap: 12px;
}

.acesso-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 18px 10px 10px;
    border-radius: 999px;
    background: var(--verde-claro);
    color: var(--verde-profundo);
    border: 1px solid transparent;
}

.acesso-card:hover {
    color: var(--verde-profundo);
    border-color: var(--verde);
    box-shadow: var(--sombra);
    transform: translateY(-1px);
}

.acesso-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--verde);
    color: #fff;
    font-size: 17px;
    flex-shrink: 0;
}

.acesso-texto strong {
    display: block;
    font-family: var(--fonte-titulo);
    font-size: 14.5px;
    line-height: 1.2;
}

.acesso-texto small {
    display: block;
    font-size: 12.5px;
    color: var(--texto-suave);
}

.acesso-card-escuro { background: var(--verde-profundo); color: #fff; }
.acesso-card-escuro:hover { color: #fff; }
.acesso-card-escuro .acesso-texto small { color: rgba(255, 255, 255, .7); }

.nav-toggle {
    display: none;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 12px;
    background: var(--verde-claro);
    padding: 12px 11px;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
}

.nav-toggle span {
    display: block;
    height: 3px;
    border-radius: 3px;
    background: var(--verde-profundo);
    transition: transform .25s, opacity .25s;
}

.nav-toggle.aberto span:nth-child(1) { transform: translateY(8.5px) rotate(45deg); }
.nav-toggle.aberto span:nth-child(2) { opacity: 0; }
.nav-toggle.aberto span:nth-child(3) { transform: translateY(-8.5px) rotate(-45deg); }

/* ---------- Menu ---------- */

.site-nav {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--verde);
    background: linear-gradient(90deg, var(--verde-escuro) 0%, var(--verde) 100%);
    box-shadow: 0 4px 18px rgba(0, 0, 0, .12);
}

.nav-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.nav-lista > li { position: relative; }

.nav-lista > li > a {
    display: block;
    padding: 16px 14px;
    color: #fff;
    font-family: var(--fonte-titulo);
    font-weight: 600;
    font-size: 14.5px;
    white-space: nowrap;
    position: relative;
}

.nav-lista > li > a::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 9px;
    height: 2px;
    background: #fff;
    border-radius: 2px;
    transform: scaleX(0);
    transition: transform .2s;
}

.nav-lista > li:hover > a::after,
.nav-lista > li.ativo > a::after { transform: scaleX(1); }

.nav-lista > li > a:hover,
.nav-lista > li > a:focus { color: #fff; }

.nav-lista .fa-angle-down { margin-left: 3px; }

.sub-lista {
    list-style: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    margin: 0;
    padding: 8px;
    background: #fff;
    border-radius: 12px;
    box-shadow: var(--sombra-forte);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .2s, transform .2s, visibility .2s;
    z-index: 10;
}

.sub-lista-direita { left: auto; right: 0; }

.tem-sub:hover > .sub-lista,
.tem-sub.sub-aberto > .sub-lista {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.sub-lista a {
    display: block;
    padding: 9px 12px;
    border-radius: 8px;
    color: var(--texto);
    font-size: 14.5px;
}

.sub-lista a:hover {
    background: var(--verde-claro);
    color: var(--verde-escuro);
}

.nav-acessos-mobile { display: none; }

/* ---------- Seções legadas das páginas internas ---------- */

.section {
    padding-top: 48px;
    padding-bottom: 56px;
}

.section h1,
.section-historico h1, .section-revista h1, .section-diretoria h1, .section-fotos h1,
.section-link h1, .section-patrocinador h1, .section-anuidade h1, .section-formulario h1,
.section-areaassociado h1, .section-informativo h1, .section-downloads h1,
.section-prestacaocontas h1, .section-reunioes h1, .section-declaracoes h1,
.section-meusdados h1, .section-alterasenha h1, .section-login h1, .section-anuidades h1,
.section-pagamento h1, .section-pgeventos h1, .section-quemsomos h1, .section-noticias h1 {
    font-family: var(--fonte-titulo);
    font-size: 32px;
    font-weight: 800;
    color: var(--verde-profundo);
    text-align: inherit;
    line-height: 1.25;
    margin: 0 0 28px;
    padding: 0 0 14px;
    position: relative;
}

.section h1::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 56px;
    height: 4px;
    border-radius: 4px;
    background: var(--verde);
}

.section h1.text-center::after,
.section .text-center h1::after { left: 50%; margin-left: -28px; }

.section p { color: var(--texto); }

.section-historico p,
.section-quemsomos p {
    font-size: 17px;
    text-align: left;
    max-width: 860px;
}

/* Diretoria */
.quadro-diretoria, .membro {
    background: #fff;
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    border: 1px solid var(--borda);
}

.membro { padding: 18px; margin-bottom: 24px; text-align: center; }
.membro img { border-radius: 50%; }
.membro .categoria { color: var(--verde-escuro); font-weight: 700; }

/* Revista / álbuns / capas */
.capa-revista, .capa-album, .img-thumbnail {
    border-radius: 12px;
    border: 0;
    padding: 0;
    box-shadow: var(--sombra);
}

.section-revista a { color: var(--verde-profundo); font-weight: 600; }

/* Lista de eventos (eventos.php) */
.section hr { border-top: 1px solid var(--borda); margin: 32px 0; }

/* Área do associado */
.ac-lista { border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); }

.panel {
    border-radius: var(--raio);
    border: 1px solid var(--borda);
    box-shadow: var(--sombra);
    overflow: hidden;
}

/* Carrossel */
.carousel-indicators li { border-color: #fff !important; }
.carousel-indicators .active { background: #fff !important; }

.carousel-control {
    width: 56px;
    background: none !important;
    text-shadow: none;
}

.carousel .carousel-control span {
    width: 42px !important;
    height: 42px !important;
    line-height: 42px;
    margin-top: -21px !important;
    border-radius: 50%;
    background: rgba(0, 0, 0, .35);
    color: #fff;
    font-size: 18px !important;
    text-align: center;
    left: 50% !important;
    right: auto !important;
    margin-left: -21px !important;
}

.carousel-control:hover span { background: rgba(0, 0, 0, .6); }

/* Modal */
.modal-content { border-radius: var(--raio); border: 0; }

/* =========================================================
   HOME
   ========================================================= */

.home-hero {
    padding: 28px 0 8px;
}

.home-hero .carousel {
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--sombra-forte);
    background: var(--verde-profundo);
}

.home-hero .carousel .item img {
    width: 100%;
    display: block;
}

.home-hero .carousel .item a { display: block; padding: 0; }

.home-secao {
    padding: 64px 0;
}

.home-secao-branca { background: #fff; }

.secao-cabecalho {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 40px;
}

.secao-cabecalho .sobretitulo {
    display: inline-block;
    font-family: var(--fonte-titulo);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--verde-escuro);
    background: var(--verde-claro);
    padding: 6px 14px;
    border-radius: 999px;
    margin-bottom: 14px;
}

.secao-cabecalho h2 {
    font-size: 34px;
    font-weight: 800;
    margin: 0 0 12px;
}

.secao-cabecalho p {
    font-size: 17px;
    color: var(--texto-suave);
    margin: 0;
}

/* Sobre */
.sobre-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 48px;
    align-items: center;
}

.sobre-texto h2 {
    font-size: 34px;
    font-weight: 800;
    margin: 0 0 18px;
}

.sobre-texto p {
    font-size: 16.5px;
    color: var(--texto-suave);
}

.sobre-texto .btn { margin-top: 12px; }

.pilares {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.pilar {
    display: block;
    background: var(--fundo);
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    padding: 22px;
    color: var(--texto);
}

.pilar:hover {
    background: #fff;
    border-color: var(--verde);
    box-shadow: var(--sombra);
    transform: translateY(-3px);
    color: var(--texto);
}

.pilar .fa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--verde);
    color: #fff;
    font-size: 20px;
    margin-bottom: 12px;
}

.pilar h3 {
    font-size: 17px;
    margin: 0 0 4px;
}

.pilar p {
    font-size: 14px;
    color: var(--texto-suave);
    margin: 0;
    line-height: 1.5;
}

/* Eventos */
.home-eventos {
    background: var(--verde-profundo);
    background: radial-gradient(ellipse at top right, #0F5A3D 0%, var(--verde-profundo) 60%);
}

.home-eventos .secao-cabecalho h2 { color: #fff; }
.home-eventos .secao-cabecalho p { color: rgba(255, 255, 255, .75); }

.home-eventos .secao-cabecalho .sobretitulo {
    background: rgba(1, 173, 88, .2);
    color: #7EE2AE;
}

.grade-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}

.grade-cards-2 { max-width: 860px; margin: 0 auto; }

.card-evento {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--sombra-forte);
    color: var(--texto);
}

.card-evento:hover {
    transform: translateY(-4px);
    color: var(--texto);
    box-shadow: 0 22px 50px rgba(0, 0, 0, .3);
}

.card-evento-imagem {
    position: relative;
    aspect-ratio: 4 / 3;
    background: var(--verde-claro);
    overflow: hidden;
}

.card-evento-imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: transform .4s;
}

.card-evento:hover .card-evento-imagem img { transform: scale(1.04); }

.card-evento-imagem .label {
    position: absolute;
    top: 14px;
    left: 14px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .2);
}

.card-evento-corpo {
    padding: 20px 22px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.card-evento-corpo h3 {
    font-size: 19px;
    margin: 0 0 8px;
}

.card-evento-data {
    color: var(--texto-suave);
    font-size: 14.5px;
    margin-bottom: 16px;
}

.card-evento-data .fa { color: var(--verde); margin-right: 6px; }

.card-evento-acao {
    margin-top: auto;
    font-family: var(--fonte-titulo);
    font-weight: 700;
    color: var(--verde-escuro);
    font-size: 14.5px;
}

.card-evento-acao .fa { margin-left: 6px; transition: transform .2s; }
.card-evento:hover .card-evento-acao .fa { transform: translateX(4px); }

.secao-rodape {
    text-align: center;
    margin-top: 36px;
}

/* Galeria */
.card-album {
    display: block;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--sombra);
    border: 1px solid var(--borda);
    color: var(--texto);
}

.card-album:hover {
    transform: translateY(-4px);
    box-shadow: var(--sombra-forte);
    color: var(--texto);
}

.card-album-imagem {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--verde-claro);
}

.card-album-imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s;
}

.card-album:hover .card-album-imagem img { transform: scale(1.05); }

.card-album-corpo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
}

.card-album-corpo h3 {
    font-size: 17px;
    margin: 0;
}

.card-album-corpo .fa {
    color: var(--verde);
    font-size: 18px;
}

/* Chamada associação */
.home-cta {
    padding: 0 0 64px;
}

.cta-caixa {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 40px 44px;
    border-radius: 22px;
    background: linear-gradient(120deg, var(--verde-escuro) 0%, var(--verde) 100%);
    color: #fff;
    box-shadow: var(--sombra-forte);
}

.cta-caixa h2 {
    color: #fff;
    font-size: 28px;
    font-weight: 800;
    margin: 0 0 6px;
}

.cta-caixa p {
    color: rgba(255, 255, 255, .88);
    margin: 0;
    font-size: 16.5px;
}

.cta-botoes {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

.cta-botoes .btn-default { border: 0; }

/* =========================================================
   RODAPÉ
   ========================================================= */

.site-footer {
    background: var(--verde-profundo);
    color: rgba(255, 255, 255, .78);
    padding-top: 56px;
}

.footer-col { margin-bottom: 32px; }

.footer-logo {
    max-height: 64px;
    width: auto;
    background: #fff;
    border-radius: 12px;
    padding: 8px 12px;
    margin-bottom: 16px;
}

.site-footer p { color: rgba(255, 255, 255, .78); font-size: 15px; }

.site-footer h4 {
    color: #fff;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    margin: 6px 0 18px;
}

.footer-contato, .footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-contato li {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
    font-size: 15px;
}

.footer-contato .fa {
    color: var(--verde);
    width: 16px;
    margin-top: 5px;
    flex-shrink: 0;
}

.footer-links {
    columns: 2;
    column-gap: 16px;
}

.footer-links li { margin-bottom: 9px; font-size: 15px; }

.site-footer a { color: rgba(255, 255, 255, .85); }
.site-footer a:hover { color: #fff; }

.footer-social { display: flex; gap: 10px; margin-top: 16px; }

.footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    font-size: 17px;
}

.footer-social a:hover { background: var(--verde); }

.footer-direitos {
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding: 18px 0;
    margin-top: 16px;
}

.footer-direitos .container {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

.footer-direitos p {
    margin: 0;
    font-size: 13.5px;
    color: rgba(255, 255, 255, .6);
}

.footer-direitos a { color: #7EE2AE; }

/* Remove o legado */
.section-footer, .direitos { display: none; }

/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 1199px) {
    .nav-lista > li > a { padding: 16px 10px; font-size: 14px; }
    .nav-lista > li > a::after { left: 10px; right: 10px; }
}

@media (max-width: 991px) {
    .topbar-contato a:last-child { display: none; }

    .site-acessos { display: none; }
    .nav-toggle { display: flex; }
    .site-logo img { max-height: 64px; }

    .site-nav {
        position: static;
        display: none;
        background: #fff;
        box-shadow: var(--sombra-forte);
        border-bottom: 1px solid var(--borda);
    }

    .site-nav.aberto { display: block; }

    .nav-lista {
        flex-direction: column;
        padding: 8px 0 16px;
    }

    .nav-lista > li > a {
        color: var(--texto);
        padding: 13px 4px;
        border-bottom: 1px solid var(--borda);
        font-size: 15.5px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .nav-lista > li > a::after { display: none; }
    .nav-lista > li.ativo > a,
    .nav-lista > li > a:hover { color: var(--verde-escuro); }

    .sub-lista {
        position: static;
        display: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        background: var(--fundo);
        border-radius: 10px;
        margin: 6px 0;
    }

    .tem-sub:hover > .sub-lista { display: none; }
    .tem-sub.sub-aberto > .sub-lista { display: block; }
    .tem-sub.sub-aberto .fa-angle-down { transform: rotate(180deg); }

    .nav-acessos-mobile {
        display: flex !important;
        flex-direction: column;
        gap: 10px;
        padding-top: 16px;
    }

    .nav-acessos-mobile a {
        display: block;
        text-align: center;
        padding: 12px;
        border-radius: 999px;
        background: var(--verde);
        color: #fff !important;
        font-weight: 600;
    }

    .nav-acessos-mobile a + a { background: var(--verde-profundo); }

    .sobre-grid { grid-template-columns: 1fr; gap: 32px; }

    .cta-caixa { flex-direction: column; text-align: center; padding: 32px 24px; }
}

@media (max-width: 767px) {
    h1, .section h1 { font-size: 26px !important; }
    .secao-cabecalho h2, .sobre-texto h2 { font-size: 26px; }
    .home-secao { padding: 48px 0; }
    .section { padding-top: 32px; padding-bottom: 40px; }
    .home-hero { padding-top: 16px; }
    .home-hero .carousel { border-radius: 12px; }
    .carousel-control { display: none; }
    .pilares { grid-template-columns: 1fr; }
    .cta-botoes { flex-direction: column; width: 100%; }
    .footer-direitos .container { flex-direction: column; text-align: center; }
    .modal-dialog { width: auto !important; margin: 16px !important; }
    .table-responsive { margin-bottom: 0; }
    [class*="col-"] img { max-width: 100%; }
}

@media (max-width: 480px) {
    .topbar-contato a { margin-right: 0; }
    .site-logo img { max-height: 54px; }
}

/* =========================================================
   PÁGINAS INTERNAS
   ========================================================= */

.pagina-topo {
    background: var(--verde-profundo);
    background: radial-gradient(ellipse at top right, #0F5A3D 0%, var(--verde-profundo) 65%);
    color: #fff;
    padding: 44px 0 40px;
}

.pagina-topo .sobretitulo {
    display: inline-block;
    font-family: var(--fonte-titulo);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: #7EE2AE;
    background: rgba(1, 173, 88, .2);
    padding: 6px 14px;
    border-radius: 999px;
    margin-bottom: 14px;
}

.pagina-topo h1 {
    color: #fff;
    font-size: 38px;
    font-weight: 800;
    margin: 0 0 10px;
}

.pagina-topo p {
    color: rgba(255, 255, 255, .78);
    font-size: 17px;
    margin: 0;
    max-width: 720px;
}

.pagina-topo-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
}

.pagina-topo-meta .fa { color: var(--verde); margin-right: 4px; }

.voltar {
    display: inline-block;
    color: rgba(255, 255, 255, .75);
    font-size: 14.5px;
    font-weight: 600;
    margin-bottom: 14px;
}

.voltar:hover { color: #fff; }

.pagina-topo + .section { padding-top: 40px; }

.caixa-conteudo {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    padding: 28px;
}

.caixa-conteudo h2 {
    font-size: 22px;
    margin: 0 0 18px;
}

.caixa-conteudo img { border-radius: 10px; }

.vazio {
    text-align: center;
    color: var(--texto-suave);
    padding: 40px 0;
}

.paginacao { text-align: center; margin-top: 36px; }

.filtro-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 28px;
}

.filtro-pills a {
    padding: 8px 18px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--borda);
    color: var(--texto);
    font-weight: 600;
    font-size: 14.5px;
}

.filtro-pills a.ativo,
.filtro-pills a:hover {
    background: var(--verde);
    border-color: var(--verde);
    color: #fff;
}

/* ---------- Diretoria ---------- */

.grade-diretoria {
    --por-linha: 6;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}

.grade-diretoria .card-membro {
    width: calc((100% - (var(--por-linha) - 1) * 20px) / var(--por-linha));
}

.card-membro {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    padding: 22px 14px 18px;
    text-align: center;
    box-shadow: var(--sombra);
    transition: transform .2s, box-shadow .2s;
}

.card-membro:hover {
    transform: translateY(-3px);
    box-shadow: var(--sombra-forte);
}

.card-membro-foto {
    width: 112px;
    height: 112px;
    margin: 0 auto 14px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid var(--verde-claro);
    background: var(--verde-claro);
}

.card-membro-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.card-membro h3 {
    font-size: 15px;
    margin: 0 0 6px;
    line-height: 1.3;
}

.card-membro p {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--verde-escuro);
    margin: 0;
    line-height: 1.4;
}

/* ---------- Anuidade ---------- */

.grade-planos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 1000px;
    margin: 0 auto;
    align-items: center;
}

.card-plano {
    position: relative;
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: 20px;
    padding: 32px 28px;
    text-align: center;
    box-shadow: var(--sombra);
}

.card-plano-destaque {
    border: 2px solid var(--verde);
    box-shadow: var(--sombra-forte);
    padding: 44px 28px;
}

.card-plano-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: var(--verde-claro);
    color: var(--verde-escuro);
    font-size: 24px;
    margin-bottom: 14px;
}

.card-plano-destaque .card-plano-icone { background: var(--verde); color: #fff; }

.card-plano h3 { font-size: 21px; margin: 0 0 6px; }

.card-plano-texto {
    color: var(--texto-suave);
    font-size: 14.5px;
    min-height: 44px;
}

.card-plano-preco {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    margin: 18px 0 24px;
    color: var(--verde-profundo);
}

.card-plano-preco small { font-size: 18px; font-weight: 700; }

.card-plano-preco strong {
    font-family: var(--fonte-titulo);
    font-size: 44px;
    font-weight: 800;
    line-height: 1;
}

.card-plano-preco span { color: var(--texto-suave); font-size: 14px; }

.bloco-vantagens { margin-top: 72px; }

.grade-vantagens {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.vantagem {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    padding: 26px 22px;
}

.vantagem .fa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--verde);
    color: #fff;
    font-size: 20px;
    margin-bottom: 14px;
}

.vantagem h3 { font-size: 17px; margin: 0 0 8px; }
.vantagem p { font-size: 14.5px; color: var(--texto-suave); margin: 0; }

.passos {
    margin-top: 64px;
    padding: 40px;
    border-radius: 22px;
    background: var(--verde-claro);
    text-align: center;
}

.passos h2 { font-size: 26px; margin: 0 0 28px; }

.lista-passos {
    list-style: none;
    counter-reset: passo;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    padding: 0;
    margin: 0 0 32px;
}

.lista-passos li { counter-increment: passo; }

.lista-passos li::before {
    content: counter(passo);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0 auto 12px;
    border-radius: 50%;
    background: var(--verde-profundo);
    color: #fff;
    font-family: var(--fonte-titulo);
    font-weight: 800;
    font-size: 18px;
}

.lista-passos strong {
    display: block;
    font-family: var(--fonte-titulo);
    color: var(--verde-profundo);
    margin-bottom: 4px;
}

.lista-passos span { color: var(--texto-suave); font-size: 14.5px; }

/* ---------- Eventos ---------- */

.card-evento-claro {
    box-shadow: var(--sombra);
    border: 1px solid var(--borda);
}

.card-evento-claro:hover { box-shadow: var(--sombra-forte); }

.card-evento-resumo {
    font-size: 14.5px;
    color: var(--texto-suave);
    margin: -6px 0 16px;
}

.evento-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 32px;
    align-items: start;
}

.evento-texto { margin-bottom: 24px; }

.abas-evento {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    border: 0;
    margin-bottom: -1px;
}

.abas-evento > li { float: none; margin: 0; }

.abas-evento > li > a {
    border: 1px solid var(--borda) !important;
    border-bottom: 0 !important;
    border-radius: 12px 12px 0 0;
    background: #EEF3F0;
    color: var(--texto-suave);
    font-weight: 600;
    padding: 11px 18px;
    margin: 0;
}

.abas-evento > li.active > a,
.abas-evento > li.active > a:hover,
.abas-evento > li.active > a:focus {
    background: #fff;
    color: var(--verde-escuro);
}

.abas-evento + .tab-content { border-top-left-radius: 0; }

.tab-content table { width: 100% !important; }

.evento-lateral {
    position: sticky;
    top: 80px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.evento-cartaz img {
    width: 100%;
    border-radius: var(--raio);
    box-shadow: var(--sombra);
}

.caixa-inscricao,
.caixa-investimento {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    padding: 24px;
}

.caixa-inscricao {
    border-top: 4px solid var(--verde);
}

.caixa-inscricao h3,
.caixa-investimento h3 { font-size: 19px; margin: 0 0 12px; }

.lista-precos {
    list-style: none;
    padding: 0;
    margin: 0;
}

.lista-precos li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px dashed var(--borda);
    font-size: 14.5px;
}

.lista-precos li:last-child { border-bottom: 0; padding-bottom: 0; }
.lista-precos strong { color: var(--verde-escuro); white-space: nowrap; }

/* ---------- Revistas ---------- */

.revista-intro { margin-bottom: 28px; }

.revista-ferramentas {
    position: sticky;
    top: 52px;
    z-index: 5;
    background: var(--fundo);
    padding: 12px 0 14px;
    margin-bottom: 12px;
}

.campo-busca { position: relative; margin-bottom: 12px; }

.campo-busca .fa {
    position: absolute;
    left: 16px;
    top: 50%;
    margin-top: -8px;
    color: var(--texto-suave);
}

.campo-busca .form-control {
    padding-left: 44px;
    border-radius: 999px;
    min-height: 50px;
}

.indice-letras {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.indice-letras a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid var(--borda);
    font-weight: 700;
    font-size: 14px;
    color: var(--verde-profundo);
}

.indice-letras a:hover { background: var(--verde); border-color: var(--verde); color: #fff; }

.grupo-revistas {
    margin-bottom: 28px;
    scroll-margin-top: 170px;
}

.grupo-letra {
    font-size: 22px;
    color: var(--verde);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--borda);
}

.grade-revistas {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.section-revista .card-revista {
    text-align: left;
    hyphens: none;
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: 12px;
    padding: 14px 16px;
    color: var(--texto);
}

.section-revista .card-revista:hover {
    border-color: var(--verde);
    box-shadow: var(--sombra);
    color: var(--texto);
    transform: translateY(-2px);
}

.card-revista-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--verde-claro);
    color: var(--verde-escuro);
    font-size: 18px;
    flex-shrink: 0;
}

.card-revista-capa {
    width: 42px;
    height: 56px;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
}

.card-revista-texto { flex: 1; min-width: 0; }

.card-revista-texto strong {
    display: block;
    font-size: 14.5px;
    line-height: 1.35;
}

.card-revista-texto small {
    display: block;
    color: var(--texto-suave);
    font-size: 12.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.card-revista-seta { color: #B5C3BC; font-size: 13px; }
.card-revista:hover .card-revista-seta { color: var(--verde); }

/* ---------- Fotos ---------- */

.card-album-total {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--verde-claro);
    color: var(--verde-escuro);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.card-album-total .fa { font-size: 13px !important; }

.grade-fotos {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.item-foto {
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
    overflow: hidden;
    background: var(--verde-claro);
}

.item-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s, opacity .2s;
}

.item-foto:hover img { transform: scale(1.06); opacity: .92; }

/* ---------- Contato ---------- */

.grade-canais {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 28px;
}

.canal {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    padding: 18px 20px;
    color: var(--texto);
    box-shadow: var(--sombra);
}

.canal:hover {
    border-color: var(--verde);
    color: var(--texto);
    transform: translateY(-2px);
}

.canal strong { display: block; font-family: var(--fonte-titulo); color: var(--verde-profundo); }
.canal small { display: block; color: var(--texto-suave); font-size: 14px; word-break: break-word; }

.canal-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--verde);
    color: #fff;
    font-size: 21px;
    flex-shrink: 0;
}

.canal-whatsapp { background: #25D366; }
.canal-instagram { background: linear-gradient(45deg, #F58529, #DD2A7B, #8134AF); }

.contato-layout {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 28px;
    align-items: start;
}

.contato-local .caixa-conteudo { height: 100%; }

.contato-endereco {
    display: flex;
    gap: 10px;
    color: var(--texto-suave);
}

.contato-endereco .fa { color: var(--verde); font-size: 18px; margin-top: 3px; }

.mapa {
    position: relative;
    padding-bottom: 80%;
    border-radius: 12px;
    overflow: hidden;
    background: var(--verde-claro);
}

.mapa iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* ---------- Responsivo das internas ---------- */

@media (max-width: 1199px) {
    .grade-diretoria { --por-linha: 5; }
}

@media (max-width: 991px) {
    .grade-diretoria { --por-linha: 4; }
    .grade-planos { grid-template-columns: 1fr; max-width: 420px; }
    .card-plano-destaque { order: -1; }
    .grade-vantagens { grid-template-columns: repeat(2, 1fr); }
    .evento-layout { grid-template-columns: 1fr; }
    .evento-lateral { position: static; order: -1; }
    .evento-cartaz { max-width: 420px; }
    .grade-revistas { grid-template-columns: repeat(2, 1fr); }
    .grade-fotos { grid-template-columns: repeat(3, 1fr); }
    .contato-layout { grid-template-columns: 1fr; }
    .revista-ferramentas { top: 0; }
}

@media (max-width: 767px) {
    .pagina-topo { padding: 32px 0 28px; }
    .pagina-topo h1 { font-size: 28px !important; }
    .pagina-topo p { font-size: 15.5px; }
    .grade-diretoria { --por-linha: 2; gap: 14px; }
    .grade-diretoria .card-membro { width: calc((100% - 14px) / 2); }
    .card-membro-foto { width: 96px; height: 96px; }
    .grade-vantagens { grid-template-columns: 1fr; }
    .passos { padding: 28px 20px; }
    .lista-passos { grid-template-columns: 1fr; }
    .grade-revistas { grid-template-columns: 1fr; }
    .grade-fotos { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .grade-canais { grid-template-columns: 1fr; }
    .caixa-conteudo { padding: 20px; }
}

/* =========================================================
   ÁREA DO ASSOCIADO - LATERAL
   ========================================================= */

.lateral-associado {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: 18px;
    box-shadow: var(--sombra);
    overflow: hidden;
    margin-bottom: 24px;
}

.lateral-perfil {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 20px 18px;
    background: var(--verde-profundo);
    background: radial-gradient(ellipse at top right, #0F5A3D 0%, var(--verde-profundo) 70%);
    color: #fff;
}

.lateral-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--verde);
    color: #fff;
    font-family: var(--fonte-titulo);
    font-weight: 800;
    font-size: 18px;
    flex-shrink: 0;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, .15);
}

.lateral-perfil-dados { min-width: 0; }

.lateral-perfil-dados strong {
    display: block;
    font-family: var(--fonte-titulo);
    font-size: 15px;
    line-height: 1.3;
    color: #fff;
    word-break: break-word;
}

.lateral-perfil-dados small {
    display: block;
    font-size: 12.5px;
    color: rgba(255, 255, 255, .7);
    line-height: 1.5;
}

.lateral-situacao {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 14px 16px 6px;
    padding: 9px 12px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 600;
}

.lateral-situacao.em-dia { background: var(--verde-claro); color: var(--verde-escuro); }
.lateral-situacao.pendente { background: #FFF4E5; color: #B45309; }
.lateral-situacao:hover { filter: brightness(.97); }
.lateral-situacao.em-dia:hover { color: var(--verde-escuro); }
.lateral-situacao.pendente:hover { color: #B45309; }

.lateral-toggle { display: none; }

.lateral-menu { padding: 6px 10px 12px; }

.lateral-grupo {
    display: block;
    padding: 14px 10px 6px;
    font-family: var(--fonte-titulo);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--texto-suave);
}

.lateral-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lateral-menu ul a,
.lateral-sair {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 10px;
    border-radius: 10px;
    color: var(--texto);
    font-size: 14.5px;
    font-weight: 500;
}

.lateral-menu ul a .fa,
.lateral-sair .fa {
    width: 18px;
    text-align: center;
    color: var(--texto-suave);
    font-size: 15px;
}

.lateral-menu ul a:hover {
    background: var(--fundo);
    color: var(--verde-escuro);
}

.lateral-menu ul a:hover .fa { color: var(--verde); }

.lateral-menu ul a.ativo {
    background: var(--verde-claro);
    color: var(--verde-escuro);
    font-weight: 700;
    box-shadow: inset 3px 0 0 var(--verde);
}

.lateral-menu ul a.ativo .fa { color: var(--verde); }

.lateral-sair {
    margin-top: 10px;
    border-top: 1px solid var(--borda);
    border-radius: 0 0 10px 10px;
    padding-top: 14px;
    color: #B42318;
}

.lateral-sair .fa { color: #B42318; }
.lateral-sair:hover { background: #FEF3F2; color: #B42318; }

@media (max-width: 991px) {
    .lateral-toggle {
        display: flex;
        align-items: center;
        gap: 10px;
        width: calc(100% - 32px);
        margin: 8px 16px 16px;
        padding: 11px 14px;
        border: 1px solid var(--borda);
        border-radius: 10px;
        background: var(--fundo);
        color: var(--verde-profundo);
        font-weight: 600;
        font-size: 14.5px;
    }

    .lateral-toggle .fa-angle-down { margin-left: auto; }
    .lateral-toggle[aria-expanded="true"] .fa-angle-down { transform: rotate(180deg); }

    .lateral-menu { display: none; padding-top: 0; }
    .lateral-menu.aberto { display: block; }
}

/* =========================================================
   ÁREA DO ASSOCIADO - CONTEÚDO
   ========================================================= */

.area-titulo { margin-bottom: 24px; }

.area-titulo h1,
.section .area-titulo h1 {
    font-size: 28px;
    margin: 0 0 6px;
    padding: 0;
    text-align: left;
}

.area-titulo h1::after { display: none; }

.area-titulo p {
    color: var(--texto-suave);
    margin: 0;
}

.area-titulo p .fa { color: var(--verde); margin-right: 4px; }

.area-voltar {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px;
}

.area-nota {
    margin-top: 20px;
    font-size: 14px;
    color: var(--texto-suave);
}

.area-nota .fa { color: var(--verde); margin-right: 4px; }

.area-bloqueio {
    background: #fff;
    border: 1px dashed #CBD5D0;
    border-radius: 18px;
    padding: 44px 28px;
    text-align: center;
}

.area-bloqueio > .fa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--verde-claro);
    color: var(--verde-escuro);
    font-size: 26px;
    margin-bottom: 16px;
}

.area-bloqueio h2 { font-size: 20px; margin: 0 0 8px; }
.area-bloqueio p { color: var(--texto-suave); margin-bottom: 20px; }

/* Texto vindo do editor do painel */
.conteudo-rico { color: var(--texto); font-size: 15.5px; line-height: 1.7; }
.conteudo-rico p { margin: 0 0 12px; font-size: inherit; }
.conteudo-rico p:last-child { margin-bottom: 0; }
.conteudo-rico a { color: var(--verde-escuro); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; word-break: break-word; }
.conteudo-rico img { max-width: 100%; height: auto; border-radius: 10px; }
.conteudo-rico ul, .conteudo-rico ol { padding-left: 22px; margin-bottom: 12px; }
.conteudo-rico table { width: 100% !important; }

/* Avisos */
.card-aviso {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    padding: 24px 26px;
    margin-bottom: 18px;
}

.card-aviso-topo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--borda);
}

.card-aviso-topo h2 {
    font-size: 19px;
    margin: 0;
}

.card-aviso-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--verde-claro);
    color: var(--verde-escuro);
    font-size: 17px;
    flex-shrink: 0;
}

.card-aviso .btn { margin-top: 16px; }

/* Downloads */
.lista-arquivos {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.item-arquivo {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    padding: 16px 18px;
    color: var(--texto);
    box-shadow: var(--sombra);
}

.item-arquivo:hover {
    border-color: var(--verde);
    color: var(--texto);
    transform: translateY(-2px);
}

.item-arquivo-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--verde-claro);
    color: var(--verde-escuro);
    font-size: 22px;
    flex-shrink: 0;
}

.item-arquivo-icone.tipo-pdf { background: #FEECEB; color: #D93025; }

.item-arquivo-texto { flex: 1; min-width: 0; }

.item-arquivo-texto strong {
    display: block;
    font-size: 15.5px;
    line-height: 1.4;
}

.item-arquivo-texto small {
    display: block;
    color: var(--texto-suave);
    font-size: 13px;
    margin-top: 2px;
}

.item-arquivo-acao {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    border-radius: 999px;
    background: var(--verde);
    color: #fff;
    font-weight: 600;
    font-size: 14px;
    white-space: nowrap;
    flex-shrink: 0;
}

.item-arquivo:hover .item-arquivo-acao { background: var(--verde-escuro); }

/* Declarações */
.grade-declaracoes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 16px;
}

.card-declaracao {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    padding: 24px 20px 20px;
    text-align: center;
}

.card-declaracao-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--verde-claro);
    color: var(--verde-escuro);
    font-size: 21px;
    margin-bottom: 10px;
}

.card-declaracao-ano {
    display: block;
    font-family: var(--fonte-titulo);
    font-size: 30px;
    font-weight: 800;
    color: var(--verde-profundo);
    line-height: 1.1;
}

.card-declaracao p {
    color: var(--texto-suave);
    font-size: 14px;
    margin: 4px 0 16px;
}

.card-declaracao-indisponivel {
    display: block;
    padding: 9px;
    border-radius: 999px;
    background: var(--fundo);
    color: var(--texto-suave);
    font-size: 14px;
    font-weight: 600;
}

/* Galeria dentro da área (coluna mais estreita) */
.grade-cards-area { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 20px; }
.grade-fotos-area { grid-template-columns: repeat(3, 1fr); }

@media (max-width: 991px) {
    .area-conteudo { margin-top: 8px; }
}

@media (max-width: 767px) {
    .area-titulo h1, .section .area-titulo h1 { font-size: 24px !important; }
    .card-aviso { padding: 20px; }
    .item-arquivo { flex-wrap: wrap; }
    .item-arquivo-texto { flex-basis: calc(100% - 64px); }
    .item-arquivo-acao { width: 100%; justify-content: center; }
    .grade-fotos-area { grid-template-columns: repeat(2, 1fr); }
    .grade-declaracoes { grid-template-columns: repeat(2, 1fr); }
}

.grade-cards-area .card-album-corpo h3 { font-size: 15px; line-height: 1.35; }

/* =========================================================
   ÁREA DO ASSOCIADO - ANUIDADES / PIX
   ========================================================= */

.lista-anuidades {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.item-anuidade {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--borda);
    border-left: 4px solid var(--verde);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    padding: 16px 20px;
}

.item-anuidade.aberto { border-left-color: #D93025; }

.item-anuidade-ano {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 48px;
    border-radius: 12px;
    background: var(--verde-claro);
    color: var(--verde-profundo);
    font-family: var(--fonte-titulo);
    font-weight: 800;
    font-size: 17px;
    flex-shrink: 0;
}

.item-anuidade.aberto .item-anuidade-ano { background: #FEECEB; color: #B42318; }

.item-anuidade-info { flex: 1; min-width: 0; }
.item-anuidade-info strong { display: block; font-size: 15.5px; }
.item-anuidade-info small { display: block; color: var(--texto-suave); font-size: 13px; }

.item-anuidade-valor {
    font-family: var(--fonte-titulo);
    font-weight: 700;
    font-size: 17px;
    color: var(--verde-profundo);
    white-space: nowrap;
}

.item-anuidade-acao { min-width: 160px; text-align: right; }
.item-anuidade-acao:empty { min-width: 0; }

.aviso-pix {
    display: flex;
    gap: 14px;
    margin-top: 24px;
    padding: 18px 20px;
    border-radius: var(--raio);
    background: var(--verde-claro);
}

.aviso-pix > .fa { color: var(--verde-escuro); font-size: 20px; margin-top: 2px; }
.aviso-pix strong { color: var(--verde-profundo); }
.aviso-pix p { margin: 4px 0 0; font-size: 14.5px; color: var(--texto); }

/* Janela do PIX */
.modal-pix { max-width: 440px; width: auto !important; margin: 40px auto !important; }

.modal-pix .modal-body {
    padding: 28px 28px 24px;
    text-align: center;
}

.modal-pix .close {
    position: absolute;
    top: 14px;
    right: 18px;
    font-size: 28px;
    opacity: .5;
}

.modal-pix h2 { font-size: 21px; margin: 0 0 4px; }

.pix-valor {
    font-family: var(--fonte-titulo);
    font-size: 30px;
    font-weight: 800;
    color: var(--verde);
    margin: 0 0 16px;
}

.pix-qrcode {
    display: inline-block;
    padding: 12px;
    border: 1px solid var(--borda);
    border-radius: 14px;
    background: #fff;
}

.pix-qrcode img, .pix-qrcode canvas { display: block; margin: 0 auto; }

.pix-erro { color: #B42318; font-size: 14px; max-width: 220px; margin: 0; }

.pix-instrucao { font-size: 14px; color: var(--texto-suave); margin: 12px 0 18px; }

.pix-rotulo { display: block; text-align: left; font-size: 13.5px; }

.pix-copia { display: flex; gap: 8px; }

.pix-copia .form-control {
    font-family: Consolas, monospace;
    font-size: 12.5px;
    background: var(--fundo);
}

.pix-copia .btn { white-space: nowrap; }

.pix-dados {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    text-align: left;
    margin: 18px 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: var(--fundo);
    font-size: 13.5px;
}

.pix-dados small {
    display: block;
    color: var(--texto-suave);
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: .6px;
}

.pix-passo-final {
    text-align: left;
    border-top: 1px solid var(--borda);
    padding-top: 16px;
}

.pix-passo-final p { font-size: 14px; }
.pix-passo-final .fa-whatsapp { color: #25D366; }

@media (max-width: 767px) {
    .item-anuidade { flex-wrap: wrap; }
    .item-anuidade-info { flex-basis: calc(100% - 80px); }
    .item-anuidade-acao { width: 100%; min-width: 0; }
    .item-anuidade-acao .btn { width: 100%; }
    .modal-pix { margin: 16px !important; }
    .pix-dados { flex-direction: column; }
}

/* =========================================================
   ÁREA DE EVENTOS
   ========================================================= */

.lista-inscricoes {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.item-inscricao {
    background: #fff;
    border: 1px solid var(--borda);
    border-left: 4px solid var(--verde);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    padding: 20px 22px;
}

.item-inscricao.aberto { border-left-color: #D93025; }

.item-inscricao-topo {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.item-inscricao-topo h2 {
    font-size: 18px;
    margin: 0 0 6px;
}

.item-inscricao-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin: 0;
    font-size: 14px;
    color: var(--texto-suave);
}

.item-inscricao-meta .fa { color: var(--verde); margin-right: 4px; }

.item-inscricao-acoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--borda);
}

.item-inscricao-acoes:empty { display: none; }
.item-inscricao-prazo { color: #B42318; font-weight: 600; font-size: 13px; }

/* Formulário em blocos */
.bloco-form {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    padding: 22px 24px 8px;
    margin-bottom: 18px;
}

.bloco-form h2 {
    font-size: 17px;
    margin: 0 0 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--borda);
}

.bloco-form h2 .fa {
    color: var(--verde);
    width: 20px;
    margin-right: 6px;
}

.obrigatorio { color: #D93025; }

.ajuda {
    display: block;
    margin-top: 6px;
    font-size: 12.5px;
    color: var(--texto-suave);
}

.form-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 6px;
}

@media (max-width: 767px) {
    .item-inscricao-topo { flex-direction: column; }
    .item-inscricao-acoes .btn { flex: 1; }
    .bloco-form { padding: 18px 16px 4px; }
    .form-acoes .btn { width: 100%; }
}

input[type="date"].form-control { line-height: normal; }

.faixa-previa { background: #FFF4E5; color: #8A5300; text-align: center; padding: 10px 16px; font-size: 14.5px; border-bottom: 1px solid #F5C98A; }

/* Inscrição em evento: opções de valor */
.opcoes-valor { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.opcao-valor {
    display: flex; align-items: center; gap: 10px; margin: 0; cursor: pointer;
    padding: 14px 16px; border: 1px solid var(--borda); border-radius: 12px; background: #fff; font-weight: 500;
}
.opcao-valor:hover { border-color: var(--verde); }
.opcao-valor input { margin: 0; flex-shrink: 0; }
.opcao-valor span { flex: 1; }
.opcao-valor strong { color: var(--verde-escuro); white-space: nowrap; }
.opcao-valor:has(input:checked) { border-color: var(--verde); background: var(--verde-claro); box-shadow: 0 0 0 2px rgba(1, 173, 88, .15); }
