/* Estilos principais do tema CMM */

/* ============================================
   REMOVER EFEITOS DE FOCUS DO BOOTSTRAP 5.3
   ============================================ */

/* Remover outline e box-shadow de focus em todos os elementos interativos */
*:focus,
*:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Remover focus de botões */
.btn:focus,
.btn:active,
.btn:focus-visible,
button:focus,
button:active,
button:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Remover focus de links */
a:focus,
a:active,
a:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Remover focus de inputs */
input:focus,
input:active,
input:focus-visible,
textarea:focus,
textarea:active,
textarea:focus-visible,
select:focus,
select:active,
select:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Remover focus de elementos de navegação */
.nav-link:focus,
.nav-link:active,
.nav-link:focus-visible,
.navbar-toggler:focus,
.navbar-toggler:active,
.navbar-toggler:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Remover focus de paginação */
.page-link:focus,
.page-link:active,
.page-link:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Remover focus de dropdowns */
.dropdown-toggle:focus,
.dropdown-toggle:active,
.dropdown-toggle:focus-visible,
.dropdown-item:focus,
.dropdown-item:active,
.dropdown-item:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Remover focus de modals e offcanvas */
.modal:focus,
.modal-content:focus,
.offcanvas:focus,
.offcanvas:focus-visible {
    outline: none !important;
}

/* ============================================
   TOPBAR - BARRA SUPERIOR
   ============================================ */

.topbar {
    position: absolute;
    right: 0;
}

/* Redes Sociais na Topbar */
.topbar-socials {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.topbar-social-link {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
    font-size: 14px;
}

.topbar-social-link:hover {
    background: var(--cor-terciaria);
    transform: scale(1.1);
}

.topbar-social-link svg,
.topbar-social-link i {
    font-size: 14px;
}

/* Legislatura na Topbar */
.topbar-legislatura {
    font-size: 0.875rem;
    letter-spacing: 0.5px;
}

/* Responsividade da Topbar */
@media (max-width: 991px) {

    /* Topbar empilhada e centralizada em tablets e mobile */
    .topbar .row {
        flex-direction: column;
        gap: 0.5rem;
        padding: 0.5rem 0;
    }

    .topbar .col-6 {
        width: 100%;
        justify-content: center !important;
        text-align: center;
    }

    .topbar-legislatura {
        font-size: 0.75rem;
        text-align: center;
        width: 100%;
    }

    .topbar-socials {
        justify-content: center;
    }

    .topbar {
        min-height: auto;
        padding: 0.25rem 0;
    }

    .topbar-social-link {
        width: 28px;
        height: 28px;
        font-size: 13px;
    }

    .topbar-social-link svg,
    .topbar-social-link i {
        font-size: 13px;
    }
}

@media (max-width: 575px) {
    .topbar-socials {
        gap: 0.4rem;
    }

    .topbar-social-link {
        width: 26px;
        height: 26px;
    }

    .topbar-legislatura {
        font-size: 0.7rem;
    }
}

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

/* Mobile - Logo à esquerda, botão menu à direita */
@media (max-width: 991px) {
    .site-header .primary-background .py-3 {
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
    }

    .site-header .site-branding {
        max-width: 220px;
    }

    .site-header .cmm-logo {
        max-height: 100px;
        width: auto;
    }

    .button-mobile {
        background: rgba(255, 255, 255, 0.15);
        color: white !important;
        border: 1px solid rgba(255, 255, 255, 0.2);
        padding: 0.6rem 0.9rem;
        border-radius: 8px;
        transition: all 0.3s ease;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }

    .button-mobile:hover {
        background: var(--cor-terciaria);
        border-color: var(--cor-terciaria);
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }

    .button-mobile i {
        font-size: 1.6rem !important;
    }

    /* Ajuste para o container do menu mobile */
    .site-header .col-6.d-flex {
        padding-right: 0.5rem;
    }
}

@media (max-width: 767px) {
    .site-header .site-branding {
        max-width: 180px;
    }

    .site-header .cmm-logo {
        max-height: 100px;
    }

    .button-mobile {
        padding: 0.5rem 0.75rem;
    }

    .button-mobile i {
        font-size: 1.4rem !important;
    }
}

@media (max-width: 575px) {
    .site-header .primary-background .py-3 {
        padding-top: 0.75rem !important;
        padding-bottom: 0.75rem !important;
    }

    .site-header .site-branding {
        max-width: 150px;
    }

    .site-header .cmm-logo {
        max-height: 100px;
    }

    .button-mobile {
        padding: 0.45rem 0.65rem;
    }

    .button-mobile i {
        font-size: 1.3rem !important;
    }
}

/* MENU OFFCANVAS */

#mobile-menu {
    list-style: none;
    padding-left: 0;
    margin: 0;
    width: 100%;
}

#mobile-menu li {
    margin-bottom: 0.5rem;
}

#mobile-menu li a {
    display: block;
    padding: 10px 20px;
    color: var(--cor-menu-link);
    text-decoration: none;
    font-weight: 400;
    font-size: 18px;
}

#mobile-menu li a:hover,
#mobile-menu li a:focus {
    color: var(--cor-terciaria);
    text-decoration: none;
    outline: none;
    transition: 0.3s ease;
}

/* Item de menu mobile ativo */
#mobile-menu li.current-menu-item>a,
#mobile-menu li.current_page_item>a,
#mobile-menu li.active>a {
    background-color: var(--cor-terciaria);
    color: var(--cor-menu-link) !important;
    font-weight: 500;
}

/* Item de menu mobile pai ativo */
#mobile-menu li.current-menu-parent>a,
#mobile-menu li.current_page_parent>a {
    background-color: var(--cor-terciaria);
    color: var(--cor-menu-link) !important;
    font-weight: 500;
}


/* Rotacionar seta quando menu estiver aberto */
#mobile-menu .dropdown-toggle[aria-expanded="true"]::after,
#mobile-menu .dropdown-submenu>.dropdown-toggle[aria-expanded="true"]::after {
    transform: translateY(-50%) rotate(180deg);
}

/* Animação suave para abertura de submenus */
#mobile-menu .dropdown-menu {
    display: none;
    list-style: none;
    padding-left: 0;
    margin-left: 15px;
    background: rgba(255, 255, 255);
    border-radius: 8px;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    /* Forçar posicionamento estático no mobile */
    position: static !important;
    transform: none !important;
    inset: auto !important;
}

/* Estilo para submenu aninhado (3º nível) */
#mobile-menu .dropdown-submenu {
    position: relative;
}

#mobile-menu .dropdown-submenu>.dropdown-menu {
    margin-left: 15px;
    background: rgb(255, 255, 255);
    margin-right: 15px;
}

/* Links dentro dos submenus */
#mobile-menu .dropdown-menu>li>a {
    padding-left: 30px;
    font-size: 16px;
}

/* Links do terceiro nível */
#mobile-menu .dropdown-submenu .dropdown-menu>li>a {
    padding-left: 45px;
    font-size: 15px;
}

/* Indicador de submenu (seta) */
#mobile-menu .dropdown-toggle {
    position: relative;
    padding-right: 30px;
}

#mobile-menu .dropdown-toggle::after {
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 5px solid currentColor;
    border-right: 5px solid transparent;
    border-left: 5px solid transparent;
    transition: transform 0.3s ease;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.main-navigation a {
    display: block;
    padding: 10px 0;
    color: #333;
    font-weight: 500;
    text-decoration: none;
    transition: color 0.3s;
}

.main-header-title {
    font-size: 24px;
    padding-bottom: 4px;
    color: var(--cor-titulo);
    border-bottom: 1px solid #d2d2d2e6;
    font-weight: 600;
}

.main-title {
    display: flex;
    align-items: center;
    font-size: 26px;
    font-weight: bold;
    text-transform: uppercase;
    color: #555;
    /* cor aproximada do seu print */
}

.main-title span {
    position: relative;
    display: inline-block;
    padding-right: 1rem;
}

.main-title span::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -4px;
    width: 90px;
    height: 4px;
    background-color: var(--cor-primaria);
}

/* Desktop: garantir que o título apareça completo e que a linha à direita seja responsiva */
.main-title span {
    white-space: nowrap;
    display: inline-block;
    margin-right: 10px;
}

/* Tornar a linha responsiva e ocupar o espaço restante */
.main-title .title-line {
    flex: 1 1 auto;
    display: block;
}

.main-title .title-line:after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #d2d2d2e6;
    vertical-align: middle;
}

/* Mobile: diminuir mais a fonte e permitir que quebre se necessário */
@media (max-width: 768px) {
    .main-title {
        font-size: 18px;
    }

    .main-title span {
        white-space: normal;
        font-size: 16px;
    }

    .main-title .title-line {
        margin-left: 8px;
    }
}

.title-line:after {
    content: "";
    display: inline-block;
    width: 835px;
    height: 1px;
    background-color: #d2d2d2e6;
    margin-left: 10px;
    vertical-align: middle;
}

.subtitle {
    font-weight: 500;
    color: var(--cor-titulo);
    text-transform: uppercase;
}

/* Acesso Rápido: duas colunas no desktop (3 itens por coluna) */
@media (min-width: 992px) {
    .acesso-rapido-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: repeat(3, auto);
        grid-auto-flow: column;
        /* preenche por coluna, assim teremos 3 itens em cada coluna */
        gap: 1rem;
        /* controla espaçamento entre itens */
        align-items: start;
    }

    /* garantir que cada item ocupe toda a largura da célula */
    .acesso-rapido-list .col-12 {
        width: 100%;
    }

    .acesso-rapido-list .button-primary {
        width: 100%;
    }
}

/* Acesso Rápido: ajuste de fonte para mobile */
@media (max-width: 991px) {
    .acesso-rapido-list .button-primary span.h2 {
        font-size: 1.5rem;
    }

    .acesso-rapido-list .button-primary {
        padding: 0.75rem 1rem !important;
    }

    .acesso-rapido-list .button-primary svg {
        width: 32px;
        height: 32px;
    }
}

.main-navigation a:hover {
    color: var(--cor-primaria);
}

/* Conteúdo */
.site-main {
    padding: 20px 0;
}

.cat-links,
.tags-links {
    display: block;
    margin-bottom: 5px;
}

/* Rodapé */
.site-footer {
    background-color: #333;
    color: #fff;
    padding: 40px 0 20px;
}

.footer-widgets {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
    margin-bottom: 30px;
}

.footer-widget-area .widget-title {
    color: #fff;
    border-color: #444;
}

.site-info {
    padding-top: 20px;
    border-top: 1px solid #444;
    text-align: center;
}

.footer-menu ul {
    display: flex;
    justify-content: center;
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
}

.footer-menu li {
    margin: 0 10px;
}

.footer-menu a {
    color: #ccc;
    text-decoration: none;
}

.footer-menu a:hover {
    color: #fff;
}

.copyright {
    font-size: 14px;
    color: #aaa;
}

.main-navigation a {
    font-size: 14px;
    color: white;
    padding: 0px 20px;
    text-align: center;
}

/* Estilos para o Swiper */


.thumb-swiper .swiper-slide img {
    object-fit: cover;
    border-radius: 4px;
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 22px !important;
    color: var(--cor-terciaria);
    font-weight: 900;
}

.swiper-button-next:hover:after,
.swiper-button-prev:hover:after {
    transition: 0.3s ease;
    color: var(--cor-primaria);
}

.swiper-button-next {
    right: 20px !important;
    ;
}

.swiper-button-prev {
    left: 20px !important;
}

/* Posicionar setas externamente para o Swiper dos vereadores (evita sobreposição nas fotos) */
.vereadoresSwiper {
    position: relative;
    overflow: visible;
    /* garantir que as setas possam ficar fora do box sem serem cortadas */
    /* NÃO adicionar padding lateral (evita aumentar a largura do container) */
    padding-left: 0;
    padding-right: 0;
}

/* Aplicar mesmo estilo do swiper de vereadores ao swiper de comissões */
.comissoesSwiper {
    position: relative;
    overflow: visible;
    padding-left: 0;
    padding-right: 0;
}

.comissoesSwiper {
    overflow: hidden;
}

.comissoesSwiper .swiper-wrapper {
    padding-left: 60px;
    padding-right: 60px;
    align-items: stretch;
}

.comissoesSwiper .swiper-slide {
    flex: 0 0 auto;
}

.comissoesSwiper .swiper-button-prev,
.comissoesSwiper .swiper-button-next {
    position: absolute;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
    color: var(--cor-terciaria);
    z-index: 15;
    top: 70%;
    transform: translateY(-50%);
}

.comissoesSwiper .swiper-button-prev {
    left: 8px !important;
}

.comissoesSwiper .swiper-button-next {
    right: 8px !important;
}

@media (min-width: 1400px) {
    .comissoesSwiper .swiper-button-prev {
        left: 18px !important;
    }

    .comissoesSwiper .swiper-button-next {
        right: 18px !important;
    }
}

@media (max-width: 991px) {

    .comissoesSwiper .swiper-button-prev,
    .comissoesSwiper .swiper-button-next {
        width: 36px;
        height: 36px;
    }

    .comissoesSwiper .swiper-button-prev {
        left: 6px !important;
    }

    .comissoesSwiper .swiper-button-next {
        right: 6px !important;
    }
}

@media (max-width: 576px) {
    .comissoesSwiper .swiper-button-prev {
        left: 6px !important;
    }

    .comissoesSwiper .swiper-button-next {
        right: 6px !important;
    }
}

/* Forçar o wrapper a ter padding interno para as setas e permitir que o Swiper calcule larguras corretamente */
.vereadoresSwiper {
    overflow: hidden;
    /* ocultar slides extras além de slidesPerView */
}

.vereadoresSwiper .swiper-wrapper {
    /* inserir espaço dentro do wrapper para as setas sem afetar a largura do container */
    padding-left: 60px;
    padding-right: 60px;
}

/* NÃO sobrescrever a largura calculada pelo Swiper; remover regras que forçam width auto */
.vereadoresSwiper .swiper-slide {
    /* garantir comportamento padrão do Swiper */
    flex: 0 0 auto;
}


.vereadoresSwiper .swiper-button-prev,
.vereadoresSwiper .swiper-button-next {
    position: absolute;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
    color: var(--cor-terciaria);
    z-index: 15;
    top: 70%;
    transform: translateY(-50%);
}

/* Posicionar as setas fora do container via offsets negativos, sem aumentar o box */
.vereadoresSwiper .swiper-button-prev {
    left: 8px !important;
    top: 115px !important;
}

.vereadoresSwiper .swiper-button-next {
    right: 8px !important;
    top: 115px !important;
}

/* Forçar larguras fixas por breakpoint para garantir apenas N slides visíveis */
@media (min-width: 992px) {

    /* 8 itens por vez, spaceBetween: 24px */
    .vereadoresSwiper .swiper-slide {
        flex: 0 0 auto !important;
        flex-basis: calc((100% - 7 * 24px) / 8) !important;
        max-width: calc((100% - 7 * 24px) / 8) !important;
    }
}

@media (min-width: 1400px) {

    /* 8 itens por vez em telas muito grandes, spaceBetween: 28px */
    .vereadoresSwiper .swiper-slide {
        flex: 0 0 auto !important;
        flex-basis: calc((100% - 7 * 28px) / 8) !important;
        max-width: calc((100% - 7 * 28px) / 8) !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {

    /* 4 itens por vez, spaceBetween: 6px */
    .vereadoresSwiper .swiper-slide {
        flex: 0 0 auto !important;
        flex-basis: calc((100% - 3 * 6px) / 4) !important;
        max-width: calc((100% - 3 * 6px) / 4) !important;
    }
}

@media (max-width: 767px) {

    /* 2 itens por vez, spaceBetween: 5px */
    .vereadoresSwiper .swiper-slide {
        flex: 0 0 auto !important;
        flex-basis: calc((100% - 1 * 5px) / 2) !important;
        max-width: calc((100% - 1 * 5px) / 2) !important;
    }
}

/* Em telas muito grandes, aumentar o afastamento */
@media (min-width: 1400px) {
    .vereadoresSwiper .swiper-button-prev {
        left: 18px !important;
    }

    .vereadoresSwiper .swiper-button-next {
        right: 18px !important;
    }
}

/* Em telas menores, reduzir o tamanho das setas para caber */
@media (max-width: 991px) {

    .vereadoresSwiper .swiper-button-prev,
    .vereadoresSwiper .swiper-button-next {
        width: 36px;
        height: 36px;
    }

    .vereadoresSwiper .swiper-button-prev {
        left: 6px !important;
    }

    .vereadoresSwiper .swiper-button-next {
        right: 6px !important;
    }
}

@media (max-width: 576px) {
    .vereadoresSwiper .swiper-button-prev {
        left: 6px !important;
    }

    .vereadoresSwiper .swiper-button-next {
        right: 6px !important;
    }
}

/* Mobile: reservar espaço lateral para as setas e centralizá-las verticalmente */
@media (max-width: 767px) {
    .vereadoresSwiper {
        padding-left: 48px;
        /* espaço reservado para seta esquerda */
        padding-right: 48px;
        /* espaço reservado para seta direita */
        box-sizing: border-box;
        overflow: visible;
    }

    .vereadoresSwiper .swiper-wrapper {
        padding-left: 0;
        /* manter internamente o cálculo do Swiper */
        padding-right: 0;
    }

    .vereadoresSwiper .swiper-button-prev,
    .vereadoresSwiper .swiper-button-next {
        width: 34px;
        height: 34px;
        top: 70%;
        transform: translateY(-50%);
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
    }

    .vereadoresSwiper .swiper-button-prev {
        left: 12px !important;
    }

    .vereadoresSwiper .swiper-button-next {
        right: 8px !important;
    }

    /* Reduzir o tamanho do ícone dentro das setas no mobile */
    .vereadoresSwiper .swiper-button-next:after,
    .vereadoresSwiper .swiper-button-prev:after {
        font-size: 16px !important;
    }
}

.noticia-title {
    font-size: 20px;
    font-weight: 600;
    color: #fff !important;
    line-height: 20px;
    text-decoration: none;
    text-align: center;
}

.bloco-title {
    position: absolute;
    bottom: 30px;
    left: 0;
    right: 0;
    padding: 15px 20px;
    color: white !important;
    font-size: 14px;
    z-index: 10;
    margin-top: 15px;
}

/* Versão responsiva - melhorar visibilidade dos títulos */
@media (max-width: 991px) {
    .bloco-title {
        bottom: 30px;
        padding: 12px 15px;
        border-radius: 8px;
        margin: 0 10px;
        left: 10px;
        right: 10px;
    }

    .noticia-title {
        font-size: 18px;
        line-height: 1.3;
        color: #ffffff !important;
        font-weight: 700;
    }
}

@media (max-width: 767px) {
    .bloco-title {
        bottom: 20px;
        padding: 10px 12px;
    }

    .noticia-title {
        font-size: 16px;
        line-height: 1.2;
    }
}

@media (max-width: 576px) {
    .bloco-title {
        bottom: 30px;
        padding: 8px 10px;
    }

    .noticia-title {
        font-size: 14px;
        line-height: 1.2;
    }
}

.swiper-slide {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

/* COMISSÕES: manter blocos com altura uniforme e padding lateral */
.comissoesSwiper .swiper-wrapper {
    align-items: stretch;
}

.comissoesSwiper .swiper-slide {
    display: flex;
    padding-left: 10px;
    padding-right: 10px;
    box-sizing: border-box;
}

.comissoesSwiper .swiper-slide .nota-item {
    flex: 1 1 auto;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: flex-start;
    min-height: 120px;
}

.comissoesSwiper .nota-texto {
    padding-left: 10px !important;
    padding-right: 10px !important;
}

@media (max-width: 576px) {
    .comissoesSwiper .swiper-slide {
        padding-left: 8px;
        padding-right: 8px;
    }

    .comissoesSwiper .swiper-slide .nota-item {
        min-height: 100px;
    }
}

/* Paginação Swiper - Estilo Barras Finas */
.swiper-pagination {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 20px 0;
}

.swiper-pagination-bullet {
    width: 35px !important;
    height: 7px !important;
    border-radius: 2px !important;
    background: #d1d5db !important;
    opacity: 1 !important;
    transition: all 0.3s ease;
    margin: 0 !important;
}

/* Paginação redonda para posts-slider */
.posts-slider {
    position: relative !important;
}

.posts-slider .swiper-pagination {
    position: absolute !important;
    bottom: 10wpx !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    z-index: 100 !important;
    padding: 10px 0 !important;
    pointer-events: none !important;
}

.posts-slider .swiper-pagination-bullet {
    position: static !important;
    left: auto !important;
    width: 12px !important;
    height: 12px !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.5) !important;
    margin: 0 4px !important;
    opacity: 1 !important;
    transition: all 0.3s ease !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    border: 2px solid rgba(255, 255, 255, 0.3) !important;
    display: inline-block !important;
    visibility: visible !important;
}

.posts-slider .swiper-pagination-bullet-active {
    width: 14px !important;
    height: 14px !important;
    background: var(--cor-terciaria) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
    border: 2px solid var(--cor-terciaria) !important;
}

.posts-slider .swiper-pagination-bullet:hover {
    background: var(--cor-primaria) !important;
    border-color: var(--cor-primaria) !important;
    transform: scale(1.2);
}

/* Paginação redonda para banner-swiper */
.banner-swiper .swiper-pagination {
    position: absolute !important;
    bottom: 20px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    z-index: 100 !important;
    padding: 10px 0 !important;
    pointer-events: none !important;
}

.banner-swiper .swiper-pagination-bullet {
    position: static !important;
    left: auto !important;
    width: 12px !important;
    height: 12px !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.5) !important;
    margin: 0 4px !important;
    opacity: 1 !important;
    transition: all 0.3s ease !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    border: 2px solid rgba(255, 255, 255, 0.3) !important;
}

.banner-swiper .swiper-pagination-bullet-active {
    width: 14px !important;
    height: 14px !important;
    background: var(--cor-terciaria) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
    border: 2px solid var(--cor-terciaria) !important;
}

.banner-swiper .swiper-pagination-bullet:hover {
    background: var(--cor-primaria) !important;
    border-color: var(--cor-primaria) !important;
    transform: scale(1.2);
}

.image-overlay-container {
    position: relative;
    display: inline-block;
    width: 100%;
}

.image-overlay-container img {
    display: block;
    width: 100%;
    height: auto;
}

.image-overlay-container::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    /* 50% de transparência */
    pointer-events: none;
    /* Permite clicar através da camada */
}

.swiper-pagination-bullet-active {
    width: 40px !important;
    background: var(--cor-primaria) !important;
    height: 7px !important;
}

/* Hover effect */
.swiper-pagination-bullet:hover {
    background: var(--cor-terciaria) !important;
}

/* Versão animada (opcional) */
.swiper-pagination-bullet-active {
    animation: progressBar 0.3s ease;
}

@keyframes progressBar {
    from {
        width: 30px;
    }

    to {
        width: 40px;
    }
}

/* Estilos para o banner principal e Radio e TV */

.banner-size {
    width: 100%;
    height: auto;
    background-size: cover;
    background-position: center;
    position: relative;
}

.legislatura-title {
    font-size: 2.5rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
    line-height: 1.1;
}

.legislatura-subtitle {
    font-size: 1.2rem;
    font-weight: 600;
    opacity: 0.95;
    margin-top: 0.25rem;
}

.media-controls {
    display: flex;
    flex-direction: row;
    gap: 1rem;
}

.media-item {
    background: var(--cor-primaria);
    padding: 12px;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
    transition: all 0.3s ease;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(10px);
}

.media-item:hover {
    background: var(--cor-secundaria);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.media-icon {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 20px;
    transition: all 0.3s ease;
    background: linear-gradient(135deg, #ff6b35 0%, #f7931e 100%);
}

.media-text {
    flex: 1;
}

.media-title {
    font-weight: 700;
    color: #fff;
    margin: 0;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.media-subtitle {
    font-size: 12px;
    color: #fff;
    margin: 0;
    opacity: 0.6;
    font-weight: 500;
}

.play-pause-btn {
    background: none;
    border: none;
    color: #fff;
    font-size: 30px;
    transition: all 0.3s ease;
    padding: 0.25rem;
    border-radius: 50%;
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.play-pause-btn:hover {
    background: rgba(0, 168, 204, 0.1);
    transform: scale(1.1);
}

.play-pause-btn.playing {
    color: rgb(80, 255, 121);
}

.status-indicator {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #dc3545;
    margin-left: auto;
    transition: all 0.3s ease;
}

.status-indicator.playing {
    background: rgb(80, 255, 121);
    animation: pulse 1s infinite;
}

.loading-wave {
    display: none;
    width: 20px;
    height: 20px;
}

.loading-wave.active {
    display: flex;
    gap: 2px;
    align-items: center;
}

.loading-wave span {
    width: 3px;
    height: 15px;
    background: var(--cor-secundaria);
    border-radius: 1px;
    animation: wave 1.2s infinite;
}

.loading-wave span:nth-child(2) {
    animation-delay: 0.1s;
}

.loading-wave span:nth-child(3) {
    animation-delay: 0.2s;
}

.loading-wave span:nth-child(4) {
    animation-delay: 0.3s;
}

#radio-control {
    position: relative;
    overflow: hidden;
}

#radio-control>* {
    position: relative;
    z-index: 1;
}

#tv-control {
    position: relative;
    overflow: hidden;
}


#tv-control>* {
    position: relative;
    z-index: 1;
}

/* Fundo escuro em volta da caixa de busca */
.search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    /* fundo escuro com opacidade */
    z-index: 9998;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Caixa de busca flutuante */
.search-float-form {
    background: white;
    padding: 1.5rem;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
    width: 90%;
    max-width: 600px;
    z-index: 9999;
}

/* Campo de busca maior */
.search-float-form input[type="search"] {
    height: 40px;
    font-size: 1rem;
    padding: 0 1rem;
}

/* Botões */
.search-float-form button {
    height: 40px;
    font-size: 1rem;
}

/* BLOCO DE NOTAS */


.nota-item {
    min-height: 120px;
    position: relative;
}

.col-12:first-child .nota-item {
    margin-right: 20px;
}

/* Forçar cards com mesma altura */
.col-12.col-md-6 {
    display: flex;
}

.col-12.col-md-6 .nota-item {
    flex: 1 1 auto;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    height: 100%;
}

.nota-data,
.nota-texto {
    align-self: stretch;
}

.nota-dia-mes {
    font-size: 25px;
    font-weight: 800;
}

.nota-texto {
    padding-left: 20px;
    padding-right: 20px;
    flex: 1;
    font-size: 0.95rem;
    line-height: 1.4;
}

.nota-item::before {
    content: "";
    position: absolute;
    left: -3px;
    top: -15px;
    height: calc(100% + 30px);
    width: 106px;
    border: 3px solid white;
    border-radius: 60px;
    z-index: 2;
    clip-path: inset(0 0 0 50%);
    background: transparent;
}

/* Ajustes responsivos para tablet */
@media (max-width: 991px) {
    .nota-item {
        min-height: 100px;
    }

    .nota-texto {
        font-size: 0.9rem;
    }

    .nota-item::before {
        width: 90px;
    }
}

.position-relative {
    position: relative;
    display: inline-block;
    /* ou block, como preferir */
}

.position-relative img {
    display: block;
    width: 100%;
    height: auto;
}

.translate-middle {
    background: var(--cor-terciaria);
    border-radius: 50px;
    padding: 0px 12px;
}

.position-relative::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ffffff1c;
    pointer-events: none;
    z-index: 1;
}

.position-relative>span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}

.pulsante {
    z-index: 9;
}

.pulsante {
    animation: pulse-animation 1s infinite;
}

@keyframes pulse-animation {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.1);
        opacity: 0.7;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}


/* Estilos para o bloco de serviços dos serviços na página inicial */

.servicos-int {
    background: #fff;
    border-radius: 8px;
    padding: 1rem;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.05);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.servicos-int-title>a {
    text-decoration: none;
}

.servicos-int-title {
    font-weight: 500;
    font-size: 0.9rem;
    color: var(--cor-primaria);
    margin-bottom: 1rem;
    border-bottom: 1px solid #eee;
    padding-bottom: .5rem;
}

.icon-service {
    width: 100%;
}

.servicos-int-cont {
    flex-grow: 1;
    flex-direction: column;
}

.servicos-int-cont.active {
    display: flex;
}

.servicos-int-cont-item {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}

.servicos-int-cont-item span {
    display: inline-block;
    width: 40px;
    height: 40px;
    margin-right: .75rem;
}

.servicos-int-cont-item embed {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.servicos-int-cont-item a {
    color: var(--cor-primaria);
    text-decoration: none;
}

.servicos-int-button {
    text-align: right;
    margin-top: auto;
}

.servicos-int-button a {
    display: inline-block;
    color: orange;
    font-size: 1.5rem;
}

.bg-custom-light {
    background-color: #EAEAEA;
}


/* responsivo para telas menores */
@media (max-width: 768px) {
    .nota-item {
        /* no mobile, empilhar data acima do título para que ambos fiquem visíveis */
        flex-direction: column !important;
        /* manter altura confortável para data + título */
        min-height: 160px;
        height: auto;
        width: 100%;
        margin-right: 0 !important;
    }

    .nota-texto {
        display: flex !important;
        justify-content: center;
        align-items: center;
        text-align: center;
        padding: 15px !important;
    }

    .nota-item::before {
        display: none;
    }

    .nota-item::before {
        display: none;
    }

    .col-12.col-md-6 {
        padding-right: 0.5rem !important;
        padding-left: 0.5rem !important;
    }
}

.nota-data {
    color: white;
    font-weight: 700;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-width: 100px;
    flex-shrink: 0;
    align-self: stretch;
    position: relative;
    border-top-left-radius: 12px;
    border-bottom-left-radius: 12px;
    overflow: hidden;
    border-radius: 0 25px 25px 0;
}

/* Ajuste mobile para nota-data */
@media (max-width: 768px) {
    .nota-data {
        width: 100%;
        min-width: auto;
        padding: 15px;
        border-radius: 12px 12px 0 0;
    }

    .nota-texto {
        padding: 15px !important;
    }
}

/** BLOCO VEREADORES */

.vereador-foto {
    width: 150px;
    height: 150px;
    object-fit: cover;
    object-position: top center;
    /* ou adjuste conforme a foto */
    border-radius: 50%;
    border: 5px solid transparent;
    background-image: linear-gradient(#fa9013, #ffffff);
    background-origin: border-box;
    background-clip: content-box, border-box;
    padding: 3px;
    margin: 0 auto;
}

/* Ajustes específicos para thumbnails dentro dos Swipers de vereadores */
.vereadoresSwiper .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
}

.vereadoresSwiper .vereador-foto {
    width: 110px;
    height: 110px;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
    padding: 3px;
    margin: 0 auto;
}

/* Se quiser thumbnails maiores na seção Mesa Diretora, adicione esta classe ao container ou ajuste conforme necessário */
.mesa-directora .vereador-foto {
    width: 140px;
    height: 140px;
}


/* Animações */


@keyframes pulse {
    0% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }

    100% {
        opacity: 1;
    }
}

@keyframes wave {

    0%,
    100% {
        height: 8px;
    }

    50% {
        height: 15px;
    }
}

/* Responsive Design */
@media (max-width: 768px) {
    .legislatura-number {
        font-size: 3rem;
    }

    .legislatura-title {
        font-size: 1.8rem;
        letter-spacing: 1px;
    }

    .legislatura-subtitle {
        font-size: 1rem;
    }

    .media-controls {
        flex-direction: column;
        margin-top: 1rem;
    }

    .media-item {
        padding: 1.5rem 0.75rem;
        flex: none;
    }

    .media-icon {
        width: 35px;
        height: 35px;
        font-size: 0.9rem;
    }
}

@media (max-width: 576px) {
    .legislatura-content {
        padding: 1rem 0;
    }

    .legislatura-number {
        font-size: 2.5rem;
    }

    .legislatura-title {
        font-size: 1.5rem;
    }

    .legislatura-subtitle {
        font-size: 0.9rem;
    }
}

/* ============================================
   ESTILOS PARA SINGLE POST
   ============================================ */


.cmm-breadcrumb-wrapper {
    background-color: var(--bs-secondary-bg);
    padding: 0.875rem 0;
}

.cmm-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 0;
    margin: 0;
    list-style: none;
    background-color: transparent;
}

.cmm-breadcrumb-item {
    display: inline-flex;
    align-items: center;
    font-size: 0.875rem;
    color: #6c757d;
    line-height: 1;
}

.cmm-breadcrumb-item+.cmm-breadcrumb-item::before {
    content: "/";
    padding: 0 0.5rem;
    color: #9ca3af;
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

.cmm-breadcrumb-item a {
    display: inline-flex;
    align-items: center;
    color: var(--cor-primaria);
    text-decoration: none;
    transition: color 0.2s ease;
}

.cmm-breadcrumb-item a:hover {
    color: var(--cor-secundaria);
    text-decoration: underline;
}

.cmm-breadcrumb-item.active {
    color: #495057;
}

.cmm-breadcrumb-item span {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1;
}

/* Tablet */
@media (max-width: 991.98px) {
    .cmm-breadcrumb-wrapper {
        padding: 0.75rem 0;
    }

    .cmm-breadcrumb-item {
        font-size: 0.8125rem;
    }

    .cmm-breadcrumb-item span {
        max-width: 350px;
    }

    .cmm-breadcrumb-item+.cmm-breadcrumb-item::before {
        padding: 0 0.5rem;
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .cmm-breadcrumb-wrapper {
        padding: 0.625rem 0;
    }

    .cmm-breadcrumb-item {
        font-size: 0.75rem;
    }

    .cmm-breadcrumb-item span {
        max-width: 200px;
    }

    .cmm-breadcrumb-item+.cmm-breadcrumb-item::before {
        padding: 0 0.375rem;
    }
}

/* Mobile pequeno */
@media (max-width: 575.98px) {
    .cmm-breadcrumb-wrapper {
        padding: 0.5rem 0;
    }

    .cmm-breadcrumb-item {
        font-size: 0.6875rem;
    }

    .cmm-breadcrumb-item span {
        max-width: 140px;
    }

    .cmm-breadcrumb-item+.cmm-breadcrumb-item::before {
        padding: 0 0.25rem;
    }
}

/* Artigo do Post */
.single-post-article {
    background: #fff;
}

/* Título do Post */
.entry-title {
    font-size: 2rem;
    font-weight: 700;
    color: #333;
    line-height: 1.3;
    margin-bottom: 1rem;
}

/* Meta informações */
.entry-meta {
    color: #666;
    font-size: 14px;
    padding-bottom: 1rem;
}

.entry-meta i {
    font-size: 16px;
}

.post-location,
.post-date,
.post-time {
    display: flex;
    align-items: center;
}

/* Imagem Destacada */
.post-thumbnail {
    overflow: hidden;
    border-radius: 8px;
}

.post-thumbnail img {
    width: 100%;
    height: auto;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.post-thumbnail:hover img {
    transform: scale(1.02);
}

.post-thumbnail-caption {
    font-size: 13px;
    color: #6c757d;
    text-align: center;
    padding: 8px 0;
}

/* Conteúdo do Post */
.entry-content {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #333;
}

.entry-content p {
    margin-bottom: 1.5rem;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-weight: 700;
    color: #222;
}

.entry-content h2 {
    font-size: 1.75rem;
}

.entry-content h3 {
    font-size: 1.5rem;
}

.entry-content h4 {
    font-size: 1.25rem;
}

.entry-content ul,
.entry-content ol {
    margin-bottom: 1.5rem;
    padding-left: 2rem;
}

.entry-content li {
    margin-bottom: 0.5rem;
}

.entry-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 1.5rem 0;
}

.entry-content blockquote {
    border-left: 4px solid var(--cor-primaria);
    padding-left: 1.5rem;
    margin: 1.5rem 0;
    font-style: italic;
    color: #555;
}

/* Botões de Compartilhamento */
.share-buttons {
    padding: 2rem 0;
}

.share-buttons h5 {
    font-size: 1.1rem;
    font-weight: 600;
    color: #333;
}

.btn-share {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex !important;
    align-items: center;
    justify-content: center;
    color: #fff !important;
    font-size: 18px;
    transition: all 0.3s ease;
    border: none;
    vertical-align: middle;
}

.btn-share:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    color: #fff;
}

.btn-facebook {
    background-color: #3b5998 !important;
}

.btn-facebook:hover {
    background-color: #2d4373 !important;
}

.btn-twitter {
    background-color: #1da1f2 !important;
}

.btn-twitter:hover {
    background-color: #0d8bd9 !important;
}

.btn-linkedin {
    background-color: #0077b5 !important;
}

.btn-linkedin:hover {
    background-color: #005885 !important;
}

.btn-whatsapp {
    background-color: #25d366 !important;
}

.btn-whatsapp:hover {
    background-color: #1da851 !important;
}

.btn-email {
    background-color: #6c757d !important;
}

.btn-email:hover {
    background-color: #545b62 !important;
}

.btn-print {
    background-color: #8c8c8c !important;
}

.btn-print:hover {
    background-color: #6c6c6c !important;
}

.btn-telegram {
    background-color: #0088cc !important;
}

.btn-telegram:hover {
    background-color: #006699 !important;
}

/* Posts Relacionados */
.related-posts {
    padding-top: 2rem;
}

.related-posts-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 1.5rem;
}

.related-post-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.related-post-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.related-post-thumbnail {
    overflow: hidden;
    position: relative;
    padding-top: 66.67%;
    /* Aspect ratio 3:2 */
    height: 0;
}

.related-post-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 210px !important;
    object-fit: cover;
    object-position: center;
    transition: transform 0.3s ease;
}

.post-related-img {
    height: 210px;
}

.related-post-card:hover .related-post-image {
    transform: scale(1.08);
}

.related-post-content {
    padding: 1rem;
}

.related-post-meta {
    font-size: 12px;
    color: #999;
    margin-bottom: 0.5rem;
}

.related-post-meta i {
    font-size: 11px;
}

.related-post-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: #333;
    line-height: 1.4;
    margin: 0;
    transition: color 0.3s ease;
}

.related-post-card:hover .related-post-title {
    color: var(--cor-primaria);
}

/* Responsividade para Single Post */
@media (max-width: 768px) {
    .entry-title {
        font-size: 1.5rem;
    }

    .entry-meta {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 0.5rem !important;
    }

    .entry-content {
        font-size: 1rem;
    }

    .btn-share {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }

    .related-posts-title {
        font-size: 1.25rem;
    }

    .related-post-title {
        font-size: 0.9rem;
    }
}

@media (max-width: 576px) {
    .breadcrumb {
        font-size: 12px;
        padding: 10px 15px;
    }

    .entry-title {
        font-size: 1.25rem;
    }

    .entry-meta {
        font-size: 12px;
    }

    .share-buttons h5 {
        font-size: 1rem;
    }

    .btn-share {
        width: 38px;
        height: 38px;
        font-size: 14px;
    }
}

/* Estilos para impressão */
@media print {

    .share-buttons,
    .related-posts,
    .site-header,
    .site-footer,
    .breadcrumb {
        display: none !important;
    }

    .entry-content {
        font-size: 12pt;
        line-height: 1.6;
    }

    .post-thumbnail img {
        max-width: 100%;
        page-break-inside: avoid;
    }
}

ol.breadcrumb li {
    font-size: 14px;
}

/* ============================================
   ESTILOS PARA PÁGINA DE NOTÍCIAS
   ============================================ */

/* Título da Página */
.underline-title {
    width: 80px;
    height: 4px;
    background: var(--cor-primaria);
    margin-top: 10px;
}

/* Container de Busca */
.search-box-container {
    position: relative;
}

/* Estilos para a barra de busca na página de notícias */
#noticias-search-form {
    width: 100%;
    max-width: 100%;
    position: relative;
}

#noticias-search-form .input-group {
    background: #fff;
    border: 1px solid #ddd;
}

#noticias-search-form .input-group-text {
    background: #fff !important;
    border: none;
}

#noticias-search-form .form-control {
    background: #fff !important;
    border: none;
}

#noticias-search-form .form-control:focus {
    background: #fff !important;
    outline: none;
    box-shadow: none;
}

#noticias-search-input {
    background-color: #fff !important;
}

#noticias-search-input::-webkit-search-cancel-button {
    display: none;
}

/* Dropdown de Resultados da Busca */
.search-results-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #ddd;
    border-top: none;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    max-height: 450px;
    overflow-y: auto;
    z-index: 1000;
    margin-top: -1px;
}

.search-results-content {
    padding: 0;
}

.search-result-item {
    border-bottom: 1px solid #f0f0f0;
    transition: background-color 0.2s ease;
}

.search-result-item:last-child {
    border-bottom: none;
}

.search-result-item a {
    padding: 1rem;
    display: flex !important;
    color: inherit;
}

.search-result-item:hover {
    background-color: #f8f9fa;
}

.search-result-thumbnail {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    overflow: hidden;
    border-radius: 8px;
}

.search-result-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.search-result-content {
    min-width: 0;
}

.search-result-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: #333;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.search-result-meta {
    font-size: 12px;
    color: #999;
}

.search-result-excerpt {
    font-size: 0.85rem;
    color: #666;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* Card de Notícia */
.noticia-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
}

.noticia-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.noticia-thumbnail {
    overflow: hidden;
    position: relative;
    padding-top: 66.67%;
    height: 0;
}

.noticia-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.3s ease;
}

.noticia-card:hover .noticia-image {
    transform: scale(1.08);
}

.noticia-content {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.noticia-meta {
    font-size: 12px;
    color: #999;
}

.noticia-meta i {
    font-size: 11px;
}

.noticia-card .noticia-title {
    font-size: 0.95rem;
    font-weight: 600;
    color: #333;
    line-height: 1.4;
    transition: color 0.3s ease;
    text-align: left;
}

.noticia-card:hover .noticia-title {
    color: var(--cor-primaria);
}

.noticia-excerpt {
    font-size: 0.85rem;
    color: #666;
    line-height: 1.5;
    margin-bottom: 1rem;
    flex-grow: 1;
}

.read-more {
    font-size: 0.70rem;
    font-weight: 600;
    color: var(--cor-primaria);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: gap 0.3s ease;
    margin-top: 10px;
    display: block;
}

.noticia-card:hover .read-more {
    gap: 0.75rem;
}

/* Paginação */
.pagination-container {
    margin-top: 3rem;
    margin-bottom: 2rem;
}

.pagination {
    gap: 0.5rem;
}

.page-link {
    color: var(--cor-primaria);
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

.page-link:hover {
    background-color: var(--cor-primaria);
    color: #fff;
    border-color: var(--cor-primaria);
}

.page-item.active .page-link {
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
    color: #fff;
}

/* Responsividade */
@media (max-width: 768px) {
    .search-result-thumbnail {
        width: 60px;
        height: 60px;
    }

    .search-result-title {
        font-size: 0.85rem;
    }

    .search-result-excerpt {
        font-size: 0.8rem;
    }

    .noticia-card .noticia-title {
        font-size: 0.9rem;
    }

    .noticia-excerpt {
        font-size: 0.8rem;
    }
}

@media (max-width: 576px) {
    .underline-title {
        width: 60px;
        height: 3px;
    }

    .search-results-dropdown {
        max-height: 300px;
    }

    .search-result-item a {
        padding: 0.75rem;
    }

    .pagination {
        gap: 0.25rem;
    }

    .page-link {
        padding: 0.375rem 0.625rem;
        font-size: 0.875rem;
    }
}



/* === SEÇÃO DE CONTEÚDO === */
.content-text {
    font-size: 1rem;
    line-height: 1.7;
    text-align: justify;
}

.images-container {
    position: relative;
}

.image-wrapper img {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.image-wrapper img:hover {
    transform: scale(1.02);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

/* === LISTA DE VÍDEOS === */
.video-list-card {
    max-height: 600px;
}

.video-list-body {
    overflow-y: auto;
    max-height: 550px;
}

.video-thumbnail-item {
    transition: all 0.3s ease;
    cursor: pointer;
    position: relative;
    padding: 0.75rem;
}

.video-thumbnail-item:hover {
    background-color: var(--cor-primaria);
    transform: translateX(5px);
}

.video-thumbnail-item.active {
    background-color: var(--cor-terciaria);
    color: white;
}

.video-thumbnail-item.active h6,
.video-thumbnail-item.active small {
    color: white !important;
}

a.list-group-item.list-group-item-action.video-thumbnail-item.active {
    background-color: var(--cor-terciaria);
}


.text-truncate-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.3;
    max-height: 2.6em;
}

.object-fit-cover {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/* === SCROLLBAR CUSTOMIZADA === */
.video-list-body::-webkit-scrollbar {
    width: 6px;
}

.video-list-body::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.video-list-body::-webkit-scrollbar-thumb {
    background: var(--cor-primaria);
    border-radius: 3px;
}

.video-list-body::-webkit-scrollbar-thumb:hover {
    background: var(--cor-secundaria);
}

/* === ANIMAÇÃO DE VÍDEO === */
#main-video-container {
    position: relative;
}

#main-video-container.loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

/* === RESPONSIVIDADE === */

/* Tablets (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {
    .content-text {
        font-size: 0.95rem;
        padding: 0 1rem;
    }

    .video-list-card {
        max-height: 500px;
    }

    .video-list-body {
        max-height: 450px;
    }
}

/* Mobile (até 767px) */
@media (max-width: 767px) {

    /* Título */
    h1.display-6 {
        font-size: 1.75rem !important;
    }

    /* Conteúdo de texto */
    .content-text {
        font-size: 0.9rem;
        line-height: 1.6;
        text-align: left;
        padding: 0 0.5rem;
    }

    /* Imagens no mobile */
    .images-container {
        margin-bottom: 1rem;
    }

    .image-wrapper {
        margin-bottom: 1rem !important;
    }

    .image-wrapper:last-child {
        margin-bottom: 0 !important;
    }

    /* Lista de vídeos no mobile */
    .video-list-card {
        max-height: 400px;
    }

    .video-list-body {
        max-height: 350px;
    }

    .video-thumbnail-item {
        padding: 0.5rem;
    }

    .video-thumbnail-item:hover {
        transform: none;
    }

    .text-truncate-2 {
        font-size: 0.85rem;
    }

    /* Card do vídeo principal */
    .card-body {
        padding: 1rem !important;
    }

    .card-title {
        font-size: 1.1rem !important;
    }

    .card-text {
        font-size: 0.875rem !important;
    }
}

/* Mobile pequeno (até 575px) */
@media (max-width: 575px) {
    .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    h1.display-6 {
        font-size: 1.5rem !important;
    }

    .content-text {
        font-size: 0.875rem;
    }

    .video-list-card {
        max-height: 350px;
    }

    .video-list-body {
        max-height: 300px;
    }
}

/* Desktop grande (acima de 1400px) */
@media (min-width: 1400px) {
    .content-text {
        font-size: 1.1rem;
        line-height: 1.8;
    }
}

/* ============================================
   PARLAMENTARES - ARCHIVE
   ============================================ */

/* Tabs de Parlamentares */
.parlamentares-tabs-wrapper {
    margin-bottom: 3rem;
}

.parlamentares-tabs {
    border-bottom: 2px solid #e0e0e0;
    gap: 1rem;
}

.parlamentares-tabs .nav-item {
    margin-bottom: 0;
}

#vereadorTabs li.nav-item {
    margin: 0 5px 0 5px;
}

.parlamentares-tabs .nav-link {
    color: #666;
    background-color: transparent;
    border: 2px solid transparent;
    border-radius: 8px 8px 0 0;
    padding: 12px 30px;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.3s ease;
    position: relative;
}

.parlamentares-tabs .nav-link:hover {
    color: var(--cor-terciaria);
    background-color: #fff5f0;
}

.parlamentares-tabs .nav-link.active {
    color: #fff;
    background-color: var(--cor-terciaria);
    border-color: var(--cor-terciaria);
}

/* Cards de Vereadores */
.vereador-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    background: #fff;
}

.vereador-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.vereador-card-image {
    position: relative;
    overflow: hidden;
}


.vereador-partido {
    position: absolute;
    top: 10px;
    right: 10px;
}

.vereador-partido .badge {
    background-color: var(--cor-primaria);
    color: white;
    padding: 4px 12px;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 20px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.vereador-card-content {
    padding: 15px 15px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.card-height {
    height: 70px;
}

.vereador-nome {
    font-size: 0.9rem;
    color: #ffffff;
    font-weight: 700;
    margin-bottom: 0;
    text-transform: uppercase;
}

.vereador-cargo {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.9);
    margin-top: 4px;
}

/* Mesa Diretora */
.mesa-diretora-section {
    margin-bottom: 3rem;
}

.mesa-diretora-section h3,
.mesa-diretora-section h4 {
    letter-spacing: 0.5px;
}

/* Responsividade */
@media (max-width: 768px) {
    .parlamentares-tabs .nav-link {
        padding: 10px 20px;
        font-size: 0.9rem;
    }

    .vereador-nome {
        font-size: 0.85rem;
    }

    .vereador-cargo {
        font-size: 0.75rem;
    }

    .mesa-diretora-section h3 {
        font-size: 1.25rem;
    }

    .mesa-diretora-section h4 {
        font-size: 0.95rem;
    }
}

@media (max-width: 576px) {
    .parlamentares-tabs {
        gap: 0.5rem;
    }

    .parlamentares-tabs .nav-link {
        padding: 8px 15px;
        font-size: 0.85rem;
    }
}

/* ============================================
   MULHERES NO PARLAMENTO - MEMORIAL
   ============================================ */

/* Wrapper para garantir que todos os cards tenham altura igual */
.mulheres-parlamento-wrapper .row {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1.5rem;
}

@media (max-width: 1199px) {
    .mulheres-parlamento-wrapper .row {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 991px) {
    .mulheres-parlamento-wrapper .row {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 767px) {
    .mulheres-parlamento-wrapper .row {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .mulheres-parlamento-wrapper .row {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }
}

/* Forçar colunas do Bootstrap a ocuparem o espaço do grid */
.mulheres-parlamento-wrapper .row>[class*="col-"] {
    width: 100%;
    max-width: 100%;
    padding: 0;
}

/* Wrapper do parlamentar com altura total */
.parlamentar-wrapper {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.parlamentar-wrapper>a {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
}

/* Período legislativo com altura fixa */
.periodo-legislativo {
    flex-shrink: 0;
    min-height: 70px;
    max-height: 70px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 10px;
    margin-bottom: 0.5rem;
    border: 2px solid var(--cor-terciaria);
}

.periodo-legislativo small {
    font-size: 14px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 400;
}

/* Card do vereador ocupa o espaço restante */
.parlamentar-wrapper .vereador-card {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

/* Imagem com altura fixa */
.parlamentar-wrapper .vereador-card-image {
    overflow: hidden;
    flex-shrink: 0;
}

.parlamentar-wrapper .vereador-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Conteúdo do card com altura fixa */
.parlamentar-wrapper .vereador-card-content {
    flex-shrink: 0;
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ============================================
   PERFIL DO VEREADOR - SINGLE
   ============================================ */

/* Informações do Vereador */
.informacoes-vereador {
    transition: all 0.3s ease;
}

.info-item {
    transition: all 0.2s ease;
}

.info-item:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

.info-item small {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.info-item strong {
    font-size: 0.95rem;
    color: #333;
}

.info-item a {
    color: var(--cor-menu-link);
    transition: color 0.2s ease;
}

.info-item a:hover {
    color: var(--cor-menu-link);
}

/* Redes Sociais */
.social-links a {
    transition: all 0.3s ease;
    border-radius: 50% !important;
}

.social-links a:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

/* Social Links com cores do tema */
.social-links .btn-outline-primary:hover {
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
    color: #fff;
}

.social-links .btn-outline-danger:hover {
    background-color: var(--cor-secundaria);
    border-color: var(--cor-secundaria);
    color: #fff;
}

.social-links .btn-outline-info:hover {
    background-color: var(--cor-terciaria);
    border-color: var(--cor-terciaria);
    color: #fff;
}

.social-links .btn-outline-danger.youtube:hover {
    background-color: var(--cor-secundaria);
    border-color: var(--cor-secundaria);
}

/* Perfil do Vereador - Header */
.vereador-perfil-header {
    animation: fadeIn 0.5s ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsividade para o Perfil do Vereador */
@media (max-width: 768px) {
    .vereador-perfil-foto img {
        max-width: 150px !important;
    }

    .informacoes-vereador {
        margin-top: 1rem;
    }

    .info-item small {
        font-size: 0.7rem;
    }

    .info-item strong {
        font-size: 0.9rem;
    }

    .social-links {
        justify-content: center;
    }

    .social-links a {
        width: 38px !important;
        height: 38px !important;
        font-size: 0.9rem;
    }
}

@media (max-width: 576px) {
    .vereador-perfil-foto img {
        max-width: 120px !important;
    }

    .informacoes-vereador {
        padding: 0.75rem !important;
    }

    .info-item {
        margin-bottom: 0.5rem !important;
        padding-bottom: 0.5rem !important;
    }

    .social-links a {
        width: 35px !important;
        height: 35px !important;
        font-size: 0.85rem;
    }
}

/* ========================================
   AGENDA - PÁGINA DE EVENTOS
   ======================================== */

/* Filtros de Agenda */
.agenda-filters {
    background: #f8f9fa;
    padding: 1.5rem;
    border-radius: 0.5rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.agenda-tipo-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding-top: 0.5rem;
}

/* Header da Semana */
.agenda-header {
    background: var(--cor-primaria);
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.agenda-header:hover {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}

.agenda-header h3 {
    font-weight: 600;
    letter-spacing: 0.5px;
}

.agenda-header .btn:hover {
    transform: scale(1.1);
}

/* Cards dos Dias da Semana */
.agenda-day-card {
    background: #fff;
    border: 2px solid #e9ecef;
    border-radius: 0.75rem;
    padding: 1rem;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    min-height: 100px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.agenda-day-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
    border-color: var(--cor-terciaria);
}

.agenda-day-card.today {
    border-color: var(--cor-terciaria);
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
}

.agenda-day-card.selected {
    background: linear-gradient(135deg, var(--cor-primaria) 0%, #0056b3 100%);
    color: #fff;
    border-color: var(--cor-primaria);
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(13, 110, 253, 0.3);
}

.agenda-day-card.has-events {
    background: var(--cor-terciaria);
}

.day-header {
    margin-bottom: 0.75rem;
}

.day-date {
    font-size: 1.1rem;
    font-weight: 700;
    color: #212529;
    margin-bottom: 0.25rem;
}

.agenda-day-card.selected .day-date,
.agenda-day-card.selected .day-name {
    color: #fff;
}

.day-name {
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    color: #6c757d;
    letter-spacing: 0.5px;
}

.day-count {
    display: inline-block;
    background: #e9ecef;
    color: #6c757d;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    line-height: 32px;
    font-size: 0.875rem;
    font-weight: 700;
    margin: 0 auto;
    transition: all 0.3s ease;
}

.day-count.active {
    background: var(--cor-primaria);
    color: #fff;
}

.agenda-day-card.selected .day-count {
    background: rgba(255, 255, 255, 0.3);
    color: #fff;
}

/* Cards de Eventos */
.agenda-events-section {
    margin-top: 2rem;
}

.agenda-event-card {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 0.5rem;
    padding: 1rem;
    height: 100%;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.agenda-event-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
    border-color: var(--cor-primaria);
}

.event-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #f8f9fa;
}

.event-time {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 600;
    color: var(--cor-primaria);
    font-size: 0.875rem;
    flex-wrap: wrap;
}

.event-status {
    display: inline-block;
    padding: 0.25rem 0.65rem;
    border-radius: 1rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    white-space: nowrap;
}

.status-convocada {
    background: #d1f4e0;
    color: #0a6e31;
}

.status-cancelada {
    background: #ffd4d4;
    color: #c41e3a;
}

.event-title {
    font-size: 1rem;
    font-weight: 700;
    color: #212529;
    margin-bottom: 0.75rem;
    line-height: 1.3;
}

.event-details p {
    margin-bottom: 0.5rem;
    font-size: 0.85rem;
    color: #495057;
    line-height: 1.5;
}

.event-tipo {
    color: var(--cor-primaria);
    font-weight: 600;
}

.event-desc {
    font-style: italic;
    color: #6c757d;
}

.event-local {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #495057;
    font-weight: 600;
}

.event-local i {
    color: var(--cor-terciaria);
}

/* Seções de Hoje, Amanhã e Próximos */
.proximos-eventos-section h3 {
    font-size: 1.1rem;
    border-left: 4px solid var(--cor-terciaria);
    padding-left: 1rem;
    margin-bottom: 1.5rem;
}

.proximos-eventos-section>div[id^="eventos"] {
    background: #f8f9fa;
    border: 2px solid #e9ecef;
    border-radius: 0.5rem;
    padding: 1.5rem;
    margin-bottom: 2rem;
}

.proximos-eventos-section>div[id^="eventos"]:last-child {
    margin-bottom: 0;
}

.agenda-day-card.has-events .day-header .day-date {
    color: white;
}

.agenda-day-card.has-events .day-header .day-name {
    color: white;
}

/* Loading */
.agenda-loading {
    padding: 3rem 0;
}

/* Responsividade - Tablets */
@media (max-width: 991px) {
    .agenda-day-card {
        min-height: 90px;
        padding: 0.75rem 0.5rem;
    }

    .day-date {
        font-size: 1rem;
    }

    .day-name {
        font-size: 0.75rem;
    }

    .event-title {
        font-size: 1rem;
    }
}

/* Responsividade - Mobile */
@media (max-width: 767px) {
    .agenda-filters {
        padding: 1rem;
    }

    .agenda-filters .row {
        row-gap: 0.75rem;
    }

    .agenda-filters .col-md-4,
    .agenda-filters .col-md-3,
    .agenda-filters .col-md-2 {
        width: 100%;
    }

    .agenda-tipo-filters {
        flex-direction: row;
        justify-content: space-between;
    }

    .agenda-tipo-filters .form-check {
        margin: 0;
    }

    .agenda-header {
        padding: 0.75rem !important;
    }

    .agenda-header h3 {
        font-size: 0.9rem;
    }

    .agenda-header .btn {
        padding: 0.25rem 0.5rem;
    }

    .week-days-container .row {
        gap: 0.25rem !important;
    }

    .week-days-container .col {
        padding: 0 2px !important;
    }

    .agenda-day-card {
        min-height: 85px;
        padding: 0.5rem 0.25rem;
    }

    .day-header {
        margin-bottom: 0.5rem;
    }

    .day-date {
        font-size: 0.85rem;
        margin-bottom: 0.15rem;
    }

    .day-name {
        font-size: 0.65rem;
        letter-spacing: 0.3px;
    }

    .day-count {
        width: 26px;
        height: 26px;
        line-height: 26px;
        font-size: 0.75rem;
    }

    .agenda-event-card {
        padding: 0.85rem;
    }

    .event-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }

    .event-title {
        font-size: 1rem;
    }

    .event-details p {
        font-size: 0.85rem;
    }

    .proximos-eventos-section h3 {
        font-size: 1.25rem;
    }

    .proximos-eventos-section>div[id^="eventos"] {
        padding: 1rem;
    }

    .event-badges {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .event-badges .badge {
        font-size: 0.7rem;
        padding: 0.25rem 0.5rem;
    }
}

/* Small Mobile (até 575px) */
@media (max-width: 575px) {
    .agenda-tipo-filters {
        flex-direction: column;
        gap: 0.75rem;
        align-items: flex-start;
    }

    .agenda-tipo-filters .form-check-label {
        font-size: 0.9rem;
    }

    .proximos-eventos-section h3 {
        font-size: 1.1rem;
    }

    .proximos-eventos-section h3 small {
        font-size: 0.7rem !important;
    }

    .proximos-eventos-section>div[id^="eventos"] {
        padding: 0.75rem;
    }

    .agenda-event-card {
        padding: 0.75rem;
    }

    .event-title {
        font-size: 0.9rem;
    }

    .event-details p {
        font-size: 0.75rem;
    }

    .agenda-header {
        padding: 0.65rem !important;
    }

    .agenda-header h3 {
        font-size: 0.75rem;
    }

    .week-days-container .row {
        gap: 0.15rem !important;
        margin: 0 !important;
    }

    .week-days-container .col {
        flex: 0 0 auto;
        width: calc(14.28% - 3px);
        padding: 0 1px !important;
    }

    .agenda-day-card {
        min-height: 75px;
        padding: 0.4rem 0.15rem;
        border-radius: 0.5rem;
        border-width: 1.5px;
    }

    .day-header {
        margin-bottom: 0.4rem;
    }

    .day-date {
        font-size: 0.75rem;
        font-weight: 600;
        margin-bottom: 0.1rem;
    }

    .day-name {
        font-size: 0.55rem;
        letter-spacing: 0.2px;
    }

    .day-count {
        width: 22px;
        height: 22px;
        line-height: 22px;
        font-size: 0.65rem;
        font-weight: 600;
    }
}

/* Extra Small Mobile (até 390px) */
@media (max-width: 390px) {
    .agenda-header h3 {
        font-size: 0.7rem;
    }

    .agenda-header .btn {
        padding: 0.2rem 0.4rem;
    }

    .week-days-container .col {
        width: calc(14.28% - 2px);
        padding: 0 !important;
    }

    .agenda-day-card {
        min-height: 65px;
        padding: 0.3rem 0.1rem;
        border-radius: 0.4rem;
    }

    .day-date {
        font-size: 0.7rem;
    }

    .day-name {
        font-size: 0.5rem;
    }

    .day-count {
        width: 20px;
        height: 20px;
        line-height: 20px;
        font-size: 0.6rem;
    }
}

/* ========================================
   OFFCANVAS EVENTOS PASSADOS
   ======================================== */

#offcanvasEventosPassados {
    width: 400px !important;
}

#offcanvasEventosPassados .offcanvas-title {
    color: var(--cor-primaria);
    font-weight: 700;
}

#offcanvasEventosPassados .list-group-item {
    border-left: 3px solid transparent;
    transition: all 0.3s ease;
}

#offcanvasEventosPassados .list-group-item:hover {
    border-left-color: var(--cor-primaria);
    background-color: #f8f9fa;
}

/* Responsividade do offcanvas */
@media (max-width: 767px) {
    #offcanvasEventosPassados {
        width: 90% !important;
    }

    #offcanvasEventosPassados .list-group-item {
        padding: 0.75rem;
    }

    #offcanvasEventosPassados .list-group-item h6 {
        font-size: 0.95rem;
    }

    #offcanvasEventosPassados .list-group-item p {
        font-size: 0.8rem !important;
    }
}

@media (max-width: 575px) {
    #offcanvasEventosPassados {
        width: 95% !important;
    }

    #offcanvasEventosPassados .offcanvas-header {
        padding: 1rem;
    }

    #offcanvasEventosPassados .offcanvas-title {
        font-size: 1rem;
    }

    #offcanvasEventosPassados .offcanvas-body {
        padding: 1rem;
    }

    #offcanvasEventosPassados .list-group-item {
        padding: 0.65rem;
    }

    #offcanvasEventosPassados .list-group-item h6 {
        font-size: 0.9rem;
    }

    #offcanvasEventosPassados .list-group-item p {
        font-size: 0.75rem !important;
        margin-bottom: 0.5rem !important;
    }

    #offcanvasEventosPassados .pagination {
        font-size: 0.85rem;
    }

    #offcanvasEventosPassados .page-link {
        padding: 0.375rem 0.625rem;
    }
}

/* ========================================
   PESQUISA LEGISLATIVA
   ======================================== */

.pesquisa-form .form-label {
    font-weight: 600;
    color: #495057;
}

.pesquisa-form .text-danger {
    font-weight: 700;
}

/* Resultados */
.proposicao-card {
    border-left: 4px solid var(--cor-terciaria);
    transition: all 0.3s ease;
}

.proposicao-card:hover {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.proposicao-titulo {
    color: var(--cor-primaria);
    font-weight: 700;
    font-size: 1.1rem;
}

.proposicao-meta {
    font-size: 0.9rem;
    color: #6c757d;
}

.proposicao-meta strong {
    color: #495057;
}

.btn-texto-original {
    background: var(--cor-terciaria);
    border: none;
    color: white;
    transition: all 0.3s ease;
}

.btn-texto-original:hover {
    background: var(--cor-primaria);
    transform: scale(1.05);
}

/* Loading */
.spinner-border {
    width: 3rem;
    height: 3rem;
}

/* Responsivo */
@media (max-width: 768px) {
    .proposicao-titulo {
        font-size: 1rem;
    }

    .proposicao-meta {
        font-size: 0.85rem;
    }
}

/* ========================================
   PESQUISA LEGISLATIVA
   ======================================== */

/* Formulário */
.pesquisa-form .form-label {
    font-weight: 600;
    color: #495057;
    margin-bottom: 0.5rem;
}

.pesquisa-form .text-danger {
    font-weight: 700;
}

.pesquisa-form .form-control:focus,
.pesquisa-form .form-select:focus {
    border-color: var(--cor-primaria);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

.campo-dinamico-info {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.875rem;
}

/* Cards de Resultados */
.proposicao-card {
    border-left: 4px solid var(--cor-terciaria);
    margin-bottom: 1.5rem;
    transition: all 0.3s ease;
    background: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.proposicao-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.proposicao-titulo {
    color: var(--cor-primaria);
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

.proposicao-ementa {
    background: #f8f9fa;
    padding: 1rem;
    border-radius: 0.375rem;
    margin-bottom: 1rem;
}

.proposicao-ementa .control-label {
    font-weight: 600;
    color: #495057;
    margin-bottom: 0.5rem;
}

.proposicao-ementa .result-text {
    color: #212529;
    line-height: 1.6;
}

.proposicao-meta {
    font-size: 0.9rem;
    color: #6c757d;
}

.proposicao-meta .control-label {
    font-weight: 600;
    color: #495057;
    display: inline-block;
    min-width: 180px;
}

.proposicao-meta .result-propositura {
    display: inline;
    color: #212529;
}

.btn-texto-original {
    background: var(--cor-terciaria);
    border: none;
    color: white;
    padding: 0.5rem 1.5rem;
    border-radius: 0.375rem;
    text-decoration: none;
    display: inline-block;
    margin-top: 1rem;
    transition: all 0.3s ease;
    font-weight: 600;
}

.btn-texto-original:hover {
    background: var(--cor-primaria);
    color: white;
    transform: scale(1.05);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.content-final {
    margin: 2rem 0;
    border-top: 2px solid #e9ecef;
}

/* Loading */
#loadingMateria .spinner-border {
    width: 3rem;
    height: 3rem;
}

/* Paginação */
#paginacaoMateria .page-link {
    color: var(--cor-primaria);
    border: 1px solid #dee2e6;
    padding: 0.5rem 0.75rem;
}

#paginacaoMateria .page-link:hover {
    background-color: var(--cor-terciaria);
    border-color: var(--cor-terciaria);
    color: white;
}

#paginacaoMateria .page-item.active .page-link {
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
}

#paginacaoMateria .page-item.disabled .page-link {
    color: #6c757d;
    pointer-events: none;
    cursor: not-allowed;
}

/* Abas */
#pesquisaTabs .nav-link {
    color: #495057;
    font-weight: 600;
    border-bottom: 3px solid transparent;
    transition: all 0.3s ease;
}

#pesquisaTabs .nav-link:hover {
    color: var(--cor-primaria);
    border-bottom-color: var(--cor-terciaria);
}

#pesquisaTabs .nav-link.active {
    color: var(--cor-primaria);
    border-bottom-color: var(--cor-primaria);
    background: transparent;
}

/* Responsivo */
@media (max-width: 768px) {
    .proposicao-titulo {
        font-size: 1rem;
    }

    .proposicao-meta {
        font-size: 0.85rem;
    }

    .proposicao-meta .control-label {
        display: block;
        min-width: auto;
        margin-bottom: 0.25rem;
    }

    .proposicao-meta .result-propositura {
        display: block;
        margin-bottom: 0.75rem;
    }

    #pesquisaTabs .nav-link {
        font-size: 0.9rem;
        padding: 0.5rem 0.75rem;
    }
}

@media (max-width: 576px) {
    .proposicao-card {
        border-left-width: 3px;
    }

    .proposicao-titulo {
        font-size: 0.95rem;
    }

    .btn-texto-original {
        width: 100%;
        text-align: center;
    }
}

/* ========================================
   ESTILOS ESPECÍFICOS - LAYOUT ORIGINAL
   ======================================== */

/* Formulário de Busca */
.form-busca-leis {
    padding: 2rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.form-leis-radio {
    display: inline-block;
    margin-bottom: 1.5rem;
    width: auto !important;
}

.form-leis-radio label {
    margin-left: 0.5rem;
    font-weight: 600;
    cursor: pointer;
}

.form-leis {
    margin-bottom: 1.5rem;
}

.form-leis label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: #495057;
}

.form-leis input,
.form-leis select {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    font-size: 1rem;
}

.form-leis input:focus,
.form-leis select:focus {
    outline: none;
    border-color: var(--cor-primaria);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

.form-leis .error {
    color: #dc3545;
    font-size: 0.875rem;
    margin-top: 0.25rem;
    display: block;
}

.informAno,
.informTipo {
    color: #dc3545;
    font-weight: 700;
}

/* Botões */
.botoes {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
}

.botoes button {
    padding: 0.75rem 2rem;
    border: none;
    border-radius: 0.375rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    width: auto;
}

#novaConsulta {
    background: #6c757d;
    color: white;
}

#novaConsulta:hover {
    background: #5a6268;
}

#pesqMateria,
#pesqNormas {
    background: var(--cor-primaria);
    color: white;
}

#pesqMateria:hover,
#pesqNormas:hover {
    background: var(--cor-terciaria);
}

/* Loading - Spinner compacto */
#carregamento {
    display: flex;
    align-items: center;
    margin-right: auto;
}

.lds-ring {
    display: inline-block;
    position: relative;
    width: 40px;
    height: 40px;
}

.lds-ring div {
    box-sizing: border-box;
    display: block;
    position: absolute;
    width: 32px;
    height: 32px;
    margin: 4px;
    border: 4px solid var(--cor-primaria);
    border-radius: 50%;
    animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
    border-color: var(--cor-primaria) transparent transparent transparent;
}

.lds-ring div:nth-child(1) {
    animation-delay: -0.45s;
}

.lds-ring div:nth-child(2) {
    animation-delay: -0.3s;
}

.lds-ring div:nth-child(3) {
    animation-delay: -0.15s;
}

@keyframes lds-ring {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Resultados */
.box-title-result {
    margin-top: 3rem;
    padding: 1.5rem;
    background: #f8f9fa;
    border-radius: 8px;
}

.title-result {
    color: var(--cor-primaria);
    font-weight: 700;
    margin-bottom: 1rem;
}

.box-result {
    background: white;
    padding: 2rem;
    margin-bottom: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    border-left: 4px solid var(--cor-terciaria);
    transition: all 0.3s ease;
}

.box-result:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.title-proposicao {
    color: var(--cor-primaria);
    font-weight: 700;
    font-size: 1.25rem;
    margin-bottom: 1rem;
}

.control-label {
    font-weight: 600;
    color: #495057;
    margin-top: 0.5rem;
}

.result-text,
.result-propositura {
    color: #212529;
    margin-bottom: 0.5rem;
}

.botaoPropositura {
    display: inline-block;
    padding: 0.75rem 2rem;
    background: var(--cor-terciaria);
    color: white;
    text-decoration: none;
    border-radius: 0.375rem;
    font-weight: 600;
    transition: all 0.3s ease;
    margin-top: 1rem;
}

.botaoPropositura:hover {
    background: var(--cor-primaria);
    color: white;
    transform: scale(1.05);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Paginação */
.pagination,
.page-numbers {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin: 2rem 0;
    list-style: none;
    padding: 0;
}

.pagination a,
.page-numbers a,
.page-numbers .current {
    padding: 0.5rem 1rem;
    background: white;
    border: 1px solid #dee2e6;
    color: var(--cor-primaria);
    text-decoration: none;
    border-radius: 0.375rem;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.page-numbers .current {
    background: var(--cor-primaria);
    color: white;
    border-color: var(--cor-primaria);
    font-weight: 600;
}

.pagination a:hover,
.page-numbers a:hover {
    background: var(--cor-primaria);
    color: white;
    border-color: var(--cor-primaria);
}

.page-numbers .dots {
    padding: 0.5rem 1rem;
    color: #6c757d;
}

.page-number {
    padding: 0.5rem 1rem;
    font-weight: 600;
    color: #495057;
}

/* Ocultar elementos iniciais */
.boxCamDigital,
.cam-numero {
    display: none;
}

/* ============================================
   SELECT2 - CUSTOMIZAÇÃO BOOTSTRAP 5
   ============================================ */

/* Container principal do Select2 */
.select2-container--default .select2-selection--single {
    background-color: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    height: calc(3.5rem + 2px);
    padding: 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

/* Remover outline padrão e adicionar estilo Bootstrap ao focar */
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: #86b7fe;
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

span.select2-selection.select2-selection--single {
    height: 50px;
    border: 1px solid #a9a9a961;
}



/* Texto do placeholder */
.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #6c757d;
}

/* Seta do dropdown */
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
    top: 13px !important;
    right: 0.75rem;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #495057 transparent transparent transparent;
    border-width: 6px 6px 0 6px;
}

/* Texto renderizado (opção selecionada) */
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #212529;
    line-height: 2rem;
    padding: 0;
}

/* Dropdown (menu de opções) */
.select2-container--default .select2-results__option {
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
}

/* Opção destacada (hover) */
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--cor-primaria);
    color: white;
}

/* Opção selecionada */
.select2-container--default .select2-results__option[aria-selected=true] {
    background-color: #e9ecef;
    color: #212529;
}

/* Dropdown container */
.select2-dropdown {
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* Search input dentro do dropdown */
.select2-container--default .select2-search--dropdown .select2-search__field {
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: #86b7fe;
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

/* Largura do Select2 */
.select2-container {
    width: 100% !important;
}

/* Responsivo */
@media (max-width: 768px) {
    .form-busca-leis {
        padding: 1rem;
    }

    .botoes {
        flex-direction: column;
    }

    .botoes button {
        width: 100%;
    }

    .box-result {
        padding: 1.5rem;
    }

    .title-proposicao {
        font-size: 1.1rem;
    }
}

/* ========================================
   DIÁRIO OFICIAL
   ======================================== */

/* Cards de Diário */
.diario-search-card .card,
.diario-results-card .card {
    border: 1px solid #e9ecef;
    transition: all 0.3s ease;
}

.diario-search-card .card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Tabela de Publicações */
.diario-results-card .table {
    margin-bottom: 0;
}

.diario-results-card .table thead th {
    background-color: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    padding: 1rem;
    font-weight: 600;
    color: #495057;
}

.diario-results-card .table tbody td {
    padding: 1rem;
    vertical-align: middle;
}

.diario-results-card .table tbody td a {
    color: var(--cor-primaria);
    font-weight: 500;
    transition: color 0.3s ease;
}

.diario-results-card .table tbody td a:hover {
    color: var(--cor-secundaria);
}

/* Items do Diário */
.diario-item .card {
    transition: all 0.3s ease;
    border-color: #e9ecef;
}

.diario-item .card:hover {
    border-color: var(--cor-primaria);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.diario-edicao {
    color: var(--cor-primaria);
    font-size: 1.1rem;
    transition: color 0.3s ease;
}

.diario-edicao:hover {
    color: var(--cor-secundaria);
}

.diario-date {
    font-size: 0.9rem;
}

/* Botões do Diário */
.diario-search-card .btn-danger,
.diario-item .btn-danger {
    transition: all 0.3s ease;
}

.diario-search-card .btn-danger:hover,
.diario-item .btn-danger:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(220, 53, 69, 0.3);
}

/* Modal de Sincronização */
.modal-sync .modal-header {
    background: var(--cor-primaria);
    color: white;
}

.sync-result {
    max-height: 300px;
    overflow-y: auto;
}

.sync-result:empty {
    display: none;
}

/* Progressbar */
.ui-progressbar {
    height: 30px;
    border-radius: 6px;
    background: #e9ecef;
    position: relative;
    overflow: hidden;
}

.ui-progressbar-value {
    background: linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-secundaria) 100%);
}

.progress-label {
    position: absolute;
    left: 50%;
    top: 35%;
    transform: translate(-50%, -50%);
    color: white;
    font-weight: 600;
    z-index: 10;
}

/* Loading Overlay */
.diario-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.diario-loading-overlay .spinner-border {
    width: 50px;
    height: 50px;
}

/* No Results */
.no-results {
    padding: 3rem 1rem;
}

.no-results i {
    opacity: 0.5;
}

/* Responsivo */
@media (max-width: 768px) {
    .diario-edicao {
        font-size: 1rem;
    }

    .diario-item .card-body .row {
        flex-direction: column;
    }

    .diario-item .btn-danger {
        width: 100%;
        margin-top: 1rem;
    }

    /* Tabela responsiva */
    .diario-results-card .table thead {
        display: none;
    }

    .diario-results-card .table tbody tr {
        display: block;
        margin-bottom: 1rem;
        border: 1px solid #dee2e6;
        border-radius: 0.375rem;
        padding: 0.5rem;
    }

    .diario-results-card .table tbody td {
        display: block;
        text-align: left !important;
        padding: 0.5rem;
        border: none;
    }

    .diario-results-card .table tbody td::before {
        content: attr(data-label);
        font-weight: 600;
        display: block;
        margin-bottom: 0.25rem;
        color: #495057;
    }
}

@media (max-width: 576px) {
    .diario-search-card .gap-2 {
        flex-direction: column;
        width: 100%;
    }

    .diario-search-card .btn {
        width: 100%;
    }
}

/* ===================================
   PÁGINA DE ERRO 404
   =================================== */

.error-404-page {
    min-height: 60vh;
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
}

.error-404-image {
    animation: float 3s ease-in-out infinite;
}

@keyframes float {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

.error-404-image img {
    max-width: 100%;
    height: auto;
    filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.1));
}

.error-404-title {
    font-size: 1.75rem;
    line-height: 1.3;
    color: var(--cor-titulo, #333);
}

.error-404-search {
    margin-bottom: 2rem;
}

.error-404-search .input-group {
    border-radius: 50px;
    overflow: hidden;
    background: #fff;
}

.error-404-search .form-control {
    font-size: 1rem;
    padding: 0.75rem 1.5rem;
    border: none;
    background: #fff;
}

.error-404-search .form-control:focus {
    box-shadow: none;
    border-color: var(--cor-terciaria, #ff6600);
}

.error-404-search .btn {
    border-radius: 0 50px 50px 0;
    padding: 0.75rem 1.5rem;
}

.error-404-quick-links {
    margin-top: 2rem;
}

.quick-link-item {
    padding: 0.75rem 1rem;
    background: #fff;
    border: 1px solid #e9ecef;
    transition: all 0.3s ease;
    border-radius: 8px;
}

.quick-link-item:hover {
    border-color: var(--cor-terciaria, #ff6600);
    transform: translateX(5px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.quick-link-item i {
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

.quick-link-item:hover i {
    transform: scale(1.2);
}

.quick-link-title {
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--cor-subtitulo, #666);
    transition: color 0.3s ease;
}

.quick-link-item:hover .quick-link-title {
    color: var(--cor-primaria, #003366);
}

/* Responsividade */
@media (max-width: 991px) {
    .error-404-title {
        font-size: 1.5rem;
        text-align: center;
    }

    .error-404-image {
        margin-bottom: 2rem;
    }

    .error-404-content {
        text-align: center;
    }
}

@media (max-width: 767px) {
    .error-404-title {
        font-size: 1.25rem;
    }

    .error-404-search .form-control {
        font-size: 0.9rem;
        padding: 0.6rem 1rem;
    }

    .error-404-search .btn {
        padding: 0.6rem 1.25rem;
    }

    .quick-link-item {
        padding: 0.65rem 0.85rem;
    }

    .quick-link-title {
        font-size: 0.9rem;
    }

    .quick-link-item i {
        font-size: 1.1rem;
    }
}

@media (max-width: 576px) {
    .error-404-page {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }

    .error-404-title {
        font-size: 1.1rem;
    }

    .quick-link-item:hover {
        transform: translateX(3px);
    }
}


.error-404-page {
    min-height: 70vh;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.error-404-page::before {
    content: "404";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: clamp(150px, 30vw, 400px);
    font-weight: 900;
    color: var(--cor-primaria);
    opacity: 0.03;
    pointer-events: none;
    z-index: 0;
}

.error-404-container {
    position: relative;
    z-index: 1;
}

.error-404-code {
    font-size: clamp(80px, 15vw, 150px);
    font-weight: 900;
    background: linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-secundaria) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1;
    margin-bottom: 1rem;
    animation: fadeInUp 0.6s ease-out;
}

.error-404-title {
    animation: fadeInUp 0.6s ease-out 0.1s both;
}

.error-404-subtitle {
    font-size: 1.1rem;
    color: #6c757d;
    margin-bottom: 2rem;
    animation: fadeInUp 0.6s ease-out 0.2s both;
}

.error-404-search {
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
    animation: fadeInUp 0.6s ease-out 0.3s both;
}

.error-404-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 2.5rem;
    animation: fadeInUp 0.6s ease-out 0.4s both;
}

.error-404-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1.75rem;
    border-radius: 50px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}

.error-404-btn-primary {
    background: var(--cor-primaria);
    color: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.error-404-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
    color: #fff;
}

.error-404-btn-outline {
    background: transparent;
    color: var(--cor-terciaria);
    border: 2px solid var(--cor-terciaria);
}

.error-404-btn-outline:hover {
    background: var(--cor-terciaria);
    color: #fff;
}

.error-404-links-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--cor-subtitulo);
    margin-bottom: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    animation: fadeInUp 0.6s ease-out 0.5s both;
}

.error-404-quick-links {
    animation: fadeInUp 0.6s ease-out 0.6s both;
}

.quick-links-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    max-width: 700px;
    margin: 0 auto;
}

.quick-link-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem;
    background: var(--cor-terciaria);
    border-radius: 12px;
    text-decoration: none;
    color: #495057;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
    border: 1px solid transparent;
}

.quick-link-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
    border-color: var(--cor-terciaria);
    color: var(--cor-terciaria);
}

.quick-link-card span {
    font-size: 0.9rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Tablet */
@media (max-width: 991.98px) {
    .error-404-page {
        min-height: auto;
        padding: 3rem 0;
    }

    .quick-links-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .error-404-page {
        padding: 2rem 0;
    }

    .error-404-page::before {
        font-size: 120px;
    }

    .error-404-code {
        font-size: 80px;
    }

    .quick-links-grid {
        grid-template-columns: 1fr;
    }

    .error-404-actions {
        flex-direction: column;
    }

    .error-404-btn {
        justify-content: center;
        width: 100%;
    }
}

/* ========================================
   PERGUNTAS FREQUENTES (FAQ)
   ======================================== */

/* Card da Categoria */
.faq-category-card {
    border: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.faq-category-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.faq-category-header {
    background-color: var(--cor-primaria);
    padding: 1.25rem 1.5rem;
    border-bottom: 3px solid var(--cor-terciaria);
}

/* Título da Categoria */
.faq-category-title {
    color: #fff;
    margin: 0;
}

/* Accordion Items */
.faq-item {
    border: 1px solid #dee2e6;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.faq-item:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Accordion Button (Question) */
.faq-question {
    background-color: #f8f9fa;
    color: #333;
    font-weight: 600;
    font-size: 1rem;
    padding: 1rem 1.25rem;
    transition: all 0.3s ease;
}

.faq-question:not(.collapsed) {
    background-color: var(--cor-primaria);
    color: #fff;
}

.faq-question:hover {
    background-color: var(--cor-terciaria);
    color: #fff;
}

.faq-question:focus {
    box-shadow: none;
    border-color: var(--cor-terciaria);
}

/* Seta do Accordion */
.faq-question::after {
    filter: brightness(0) saturate(100%);
}

.faq-question:not(.collapsed)::after {
    filter: brightness(0) invert(1);
}

/* Accordion Body (Answer) */
.faq-answer {
    padding: 1.25rem;
    background-color: #fff;
    color: #495057;
    line-height: 1.7;
}

.faq-answer p {
    margin-bottom: 0.75rem;
}

.faq-answer p:last-child {
    margin-bottom: 0;
}

.faq-answer ul,
.faq-answer ol {
    margin-bottom: 0.75rem;
    padding-left: 1.5rem;
}

.faq-answer li {
    margin-bottom: 0.5rem;
}

.faq-answer a {
    color: var(--cor-primaria);
    text-decoration: underline;
}

.faq-answer a:hover {
    color: var(--cor-terciaria);
}

/* Responsividade */
@media (max-width: 992px) {
    .faq-category-header {
        padding: 1rem 1.25rem;
    }

    .faq-category-title {
        font-size: 1.15rem;
    }

    .faq-question {
        font-size: 0.95rem;
        padding: 0.875rem 1rem;
    }

    .faq-answer {
        padding: 1rem;
        font-size: 0.95rem;
    }
}

@media (max-width: 768px) {
    .faq-category-card {
        border-radius: 10px;
    }

    .faq-category-header {
        padding: 0.875rem 1rem;
    }

    .faq-category-title {
        font-size: 1.1rem;
    }

    .faq-item {
        margin-bottom: 0.75rem;
    }

    .faq-question {
        font-size: 0.9rem;
        padding: 0.75rem 0.875rem;
    }

    .faq-answer {
        padding: 0.875rem;
        font-size: 0.9rem;
    }
}

@media (max-width: 576px) {
    .faq-category-card {
        border-radius: 8px;
        margin-bottom: 2rem !important;
    }

    .faq-category-header {
        padding: 0.75rem 0.875rem;
    }

    .faq-category-title {
        font-size: 1rem;
    }

    .faq-item {
        border-radius: 6px;
    }

    .faq-question {
        font-size: 0.875rem;
        padding: 0.65rem 0.75rem;
        line-height: 1.4;
    }

    .faq-answer {
        padding: 0.75rem;
        font-size: 0.875rem;
        line-height: 1.6;
    }

    .faq-answer ul,
    .faq-answer ol {
        padding-left: 1.25rem;
    }
}

/* ========================================
   ACESSIBILIDADE DIGITAL
   ======================================== */

/* Banner SVG */
.acessibilidade-svg {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* Introdução */
.acessibilidade-intro {
    color: #555;
}

.acessibilidade-intro h2 {
    color: var(--cor-primaria);
    font-weight: 700;
}

.acessibilidade-intro .lead {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #666;
}

/* Títulos de Seção */
.section-title {
    color: var(--cor-primaria);
    font-weight: 700;
}

/* Leitores de Tela */
.leitor-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.leitor-link:hover {
    text-decoration: none;
}

.leitor-card {
    background: #fff;
    padding: 1.5rem 1rem;
    border-radius: 10px;
    border: 2px solid #e9ecef;
    transition: all 0.3s ease;
    height: 100%;
}

.leitor-card:hover {
    border-color: var(--cor-primaria);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-3px);
}

.leitor-icon {
    font-size: 3rem;
    color: var(--cor-terciaria);
    transition: all 0.3s ease;
}

.leitor-card:hover .leitor-icon {
    color: var(--cor-primaria);
    transform: scale(1.15);
}

.leitor-card h4 {
    color: #333;
    font-weight: 600;
}

/* Comandos de Navegadores */
.comandos-navegadores {
    background: #f8f9fa;
    padding: 1.25rem;
    border-radius: 8px;
    border-left: 4px solid var(--cor-terciaria);
}

.comandos-navegadores li strong {
    color: var(--cor-primaria);
}

/* Tabela de Atalhos */
.atalhos-table {
    background: #fff;
    border: 1px solid #dee2e6;
}

.atalho-numero {
    background-color: var(--cor-primaria);
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
    text-align: center;
    width: 80px;
}

.atalhos-table thead {
    background-color: var(--cor-primaria);
    color: #fff;
}

.atalhos-table tbody tr {
    transition: all 0.2s ease;
}

.atalhos-table tbody tr:hover {
    background-color: #f8f9fa;
}

.atalhos-table td {
    padding: 0.875rem 1rem;
    vertical-align: middle;
}

/* ============================================
   COMISSÕES
   ============================================ */

/* Archive Comissões */
.comissao-item {
    transition: all 0.3s ease;
    border: 1px solid #dee2e6;
}

.comissao-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

.comissao-item .card-body {
    padding: 1.5rem;
}

/* Single Comissões */
.atribuicoes-section .atribuicoes-content {
    line-height: 1.8;
}

.atribuicoes-section .atribuicoes-content p {
    margin-bottom: 1rem;
}

.vereador-foto img {
    object-fit: cover;
    border: 3px solid #f8f9fa;
}

/* Cards de Vereadores */
.card-header.tertiary-background h3 {
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Lista de Titulares e Suplentes */
.list-unstyled li:last-child {
    border-bottom: none !important;
}

.list-unstyled li a {
    color: var(--cor-titulo);
    transition: color 0.2s ease;
}

.list-unstyled li a:hover {
    color: var(--cor-primaria);
}

/* Responsividade para Comissões */
@media (max-width: 768px) {
    .comissao-item .card-body {
        padding: 1rem;
    }

    .comissao-item .col-md-1 {
        margin-bottom: 1rem;
    }

    .comissao-item h2 {
        font-size: 1.1rem;
    }

    .vereador-foto img {
        max-height: 250px !important;
    }

    .card-header h3 {
        font-size: 0.95rem;
    }

    .list-unstyled li {
        font-size: 0.9rem;
    }
}

@media (max-width: 576px) {
    .atribuicoes-section .atribuicoes-content {
        padding: 1rem !important;
    }

    .vereador-foto img {
        max-height: 200px !important;
    }
}

/* Responsividade */
@media (max-width: 992px) {
    .acessibilidade-intro .lead {
        font-size: 1rem;
    }

    .section-title {
        font-size: 1.5rem;
    }

    .leitor-card {
        padding: 1.25rem 1rem;
    }

    .leitor-icon {
        font-size: 2.5rem;
    }

    .comandos-navegadores {
        padding: 1rem;
        font-size: 0.95rem;
    }
}

@media (max-width: 768px) {
    .acessibilidade-svg {
        max-height: 300px;
    }

    .acessibilidade-intro h2 {
        font-size: 1.35rem;
    }

    .acessibilidade-intro .lead {
        font-size: 0.95rem;
    }

    .section-title {
        font-size: 1.35rem;
    }

    .leitor-card {
        padding: 1.25rem 0.875rem;
    }

    .leitor-icon {
        font-size: 2.25rem;
    }

    .comandos-navegadores {
        padding: 0.875rem;
        font-size: 0.9rem;
    }

    .atalhos-table {
        font-size: 0.9rem;
    }

    .atalhos-table td {
        padding: 0.75rem;
    }

    .atalho-numero {
        width: 60px;
        font-size: 1rem;
    }
}

@media (max-width: 576px) {
    .acessibilidade-svg {
        max-height: 250px;
    }

    .acessibilidade-intro h2 {
        font-size: 1.25rem;
    }

    .acessibilidade-intro .lead {
        font-size: 0.9rem;
    }

    .section-title {
        font-size: 1.25rem;
        margin-bottom: 1.25rem;
    }

    .leitor-card {
        padding: 1rem 0.75rem;
        border-radius: 8px;
    }

    .leitor-icon {
        font-size: 2rem;
        margin-bottom: 0.5rem;
    }

    .leitor-card h4 {
        font-size: 0.95rem;
    }

    .comandos-navegadores {
        padding: 0.75rem;
        font-size: 0.875rem;
    }

    .atalhos-table {
        font-size: 0.85rem;
    }

    .atalhos-table td {
        padding: 0.625rem 0.5rem;
    }

    .atalho-numero {
        width: 50px;
        font-size: 0.9rem;
        padding: 0.5rem 0.25rem;
    }
}

/* === LOADING OVERLAY PARA ATALHOS DE TECLADO === */
#acessibilidade-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.85);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.acessibilidade-loading-content {
    text-align: center;
}

.acessibilidade-loading-content .spinner-border {
    width: 4rem;
    height: 4rem;
    border-width: 0.4em;
}

.acessibilidade-loading-content p {
    font-size: 1.25rem;
    font-weight: 500;
    margin: 0;
}

/* ============================================
       ESTILOS SISTEMA DE GESTÃO INTEGRADA
       Usando cores do tema (theme-settings.php)
       ============================================ */

/* SEÇÃO 1: Introdução ISO */
.intro-iso .logo-sg .logo-hover {
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.intro-iso .imagem-camara img {
    transition: transform 0.3s ease;
}

/* SEÇÃO 2: Cards Visão, Missão e Valores */
.visao-missao-valores .card-vmv {
    transition: all 0.3s ease;
    border-left: 4px solid transparent;
}

.visao-missao-valores .card-vmv:hover {
    transform: translateY(-8px);
    box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.15) !important;
}

.visao-missao-valores .card-vmv:nth-child(1):hover {
    border-left-color: var(--cor-primaria);
}

.visao-missao-valores .card-vmv:nth-child(2):hover {
    border-left-color: var(--cor-secundaria);
}

.visao-missao-valores .card-vmv:nth-child(3):hover {
    border-left-color: var(--cor-terciaria);
}

/* SEÇÃO 3: Documentos */
.documentos-container .titulo-grupo {
    color: var(--cor-terciaria);
    border-bottom: 3px solid var(--cor-terciaria);
    padding-bottom: 0.75rem;
    display: inline-block;
    width: 100%;
}

.documentos-container .link-documento {
    color: #333;
    transition: all 0.3s ease;
    padding: 0.5rem;
    border-radius: 4px;
    margin-left: -0.5rem;
}

.documentos-container .link-documento:hover {
    background-color: rgba(var(--cor-primaria-rgb, 13, 110, 253), 0.05);
    padding-left: 1rem;
}

.documentos-container .link-documento:hover .link-text {
    color: var(--cor-primaria);
}

.documentos-container .link-documento:hover .icon-documento {
    animation: bounceIcon 0.6s ease;
}

@keyframes bounceIcon {

    0%,
    100% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(5px);
    }

    75% {
        transform: translateX(-2px);
    }
}

/* ============================================
       RESPONSIVIDADE
       ============================================ */

/* Mobile First - Smartphones */
@media (max-width: 575.98px) {
    .intro-iso .logo-sg {
        margin-top: 2rem;
    }

    .visao-missao-valores .card-vmv {
        margin-bottom: 1.5rem;
    }

    .documentos-container .titulo-grupo {
        font-size: 1rem;
    }

    .documentos-container .link-documento {
        font-size: 0.9rem;
    }
}

/* Tablets */
@media (min-width: 576px) and (max-width: 767.98px) {
    .intro-iso .logo-sg {
        margin-top: 2rem;
    }

    .documentos-container .grupo-documentos {
        padding: 0 1rem;
    }
}

/* Tablets Landscape e Desktops pequenos */
@media (min-width: 768px) and (max-width: 991.98px) {
    .visao-missao-valores .row {
        row-gap: 1.5rem;
    }

    /* Cards em 2 colunas em tablets */
    .visao-missao-valores .col-md-6:last-child {
        margin-top: 1rem;
    }
}

/* Desktop */
@media (min-width: 992px) {
    .intro-iso .texto-intro {
        font-size: 1.05rem;
        line-height: 1.8;
    }

    .documentos-container {
        max-width: 95%;
        margin: 0 auto;
    }
}

/* Desktop Grande */
@media (min-width: 1200px) {
    .intro-iso {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .visao-missao-valores .card-vmv {
        min-height: 300px;
    }
}

/* Impressão */
@media print {

    .intro-iso .logo-hover,
    .imagem-camara img {
        box-shadow: none !important;
    }

    .visao-missao-valores .card-vmv {
        box-shadow: none !important;
        border: 1px solid #ddd;
        page-break-inside: avoid;
    }

    .documentos-container .link-documento {
        color: #000 !important;
    }
}

/* Estilos específicos para o card de diretoria */
.card-diretoria {
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.contact-info {
    background: var(--cor-primaria);
    color: white;
    padding: 10px 20px;
}

.card-diretoria:hover {
    transform: translateY(-5px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

.foto-diretoria {
    transition: transform 0.2s ease-in-out;
}

.card-diretoria:hover .foto-diretoria {
    transform: scale(1.05);
}

.contact-info a {
    font-size: 0.95rem;
}

.contact-info p {
    font-size: 0.95rem;
}

.contact-info i {
    font-size: 1.1rem;
}

/* ============================================
       CSS RESPONSÁVEL PELA PÁGINA SIC
       ============================================ */

.sic-icon-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
}

.sic-icon {
    width: 140px;
    height: 140px;
    transition: transform 0.3s ease;
}

.sic-item a:hover .sic-icon {
    transform: scale(1.1);
}

.sic-item h3 {
    transition: color 0.3s ease;
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sic-item a:hover h3 {
    color: var(--cor-secundaria) !important;
}

@media (max-width: 768px) {
    .sic-icon {
        width: 120px;
        height: 120px;
    }

    .sic-item h3 {
        font-size: 1rem;
        min-height: 50px;
    }
}


/* ============================================
       CSS RESPONSÁVEL PELA PÁGINA DE LOCALIZAÇÃO
       ============================================ */
#map-localizacao {
    display: none;
}

.leaflet-container {
    font-family: 'Roboto', Arial, sans-serif;
}

.leaflet-popup-content-wrapper {
    border-radius: 8px;
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.2);
}

.leaflet-popup-content {
    margin: 15px;
    font-size: 14px;
}

.custom-marker-popup h6 {
    color: var(--cor-primaria);
    font-weight: bold;
    margin-bottom: 8px;
}

.custom-marker-popup p {
    margin-bottom: 5px;
    color: #666;
}

.custom-marker-popup a {
    color: var(--cor-primaria);
    text-decoration: none;
}

.custom-marker-popup a:hover {
    color: var(--cor-terciaria);
    text-decoration: underline;
}

/* Customização dos controles de zoom */
.leaflet-control-zoom a {
    background-color: var(--cor-primaria) !important;
    color: #fff !important;
    border: none !important;
}

.leaflet-control-zoom a:hover {
    background-color: var(--cor-secundaria) !important;
}

@media (max-width: 768px) {
    #map-localizacao {
        height: 300px !important;
    }

    #map-loading {
        height: 300px !important;
    }
}

/* ============================================
   DROPDOWN MENU - HOVER E ESTILOS
   ============================================ */

/* Posicionamento relativo no item pai para que o dropdown fique flutuante */
.main-navigation .dropdown,
.main-navigation .nav-item {
    position: relative;
    margin-right: 8px;
}

.navbar-nav .dropdown-menu {
    position: absolute !important;
}

/* Ativar dropdown com hover ao invés de click */
.main-navigation .dropdown:hover>.dropdown-menu {
    display: block;
    margin-top: 0;
}

/* Estilização dos links do dropdown */
.dropdown-menu .dropdown-item {
    color: #000;
    padding: 10px 20px;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.dropdown-menu .dropdown-item:hover {
    background-color: var(--cor-terciaria);
    color: #fff !important;
}

/* Posicionamento do dropdown - flutuante sobre o conteúdo */
.main-navigation .dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 9999;
    min-width: 250px;
    margin: 0;
    padding: 0.5rem 0;
    border: 0;
    border-radius: 0;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, .175);
    background-color: #fff;
    display: none;
}

/* Animação suave de aparecimento */
.main-navigation .dropdown-menu {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.main-navigation .dropdown:hover>.dropdown-menu {
    opacity: 1;
    visibility: visible;
    display: block;
}

/* ============================================
   DROPDOWN ANINHADO - TERCEIRO NÍVEL
   ============================================ */

/* Posicionamento do submenu aninhado */
.main-navigation .dropdown-submenu {
    position: relative;
}

/* Submenu aninhado - posicionamento à direita */
.main-navigation .dropdown-submenu .dropdown-menu {
    top: 0;
    left: 100%;
    margin-top: -0.5rem;
    margin-left: 0;
}

/* Exibir submenu ao passar o mouse no item pai */
.main-navigation .dropdown-submenu:hover>.dropdown-menu {
    opacity: 1;
    visibility: visible;
    display: block;
}

/* Exibir submenu quando tiver a classe .show (dispositivos touch) */
.main-navigation .dropdown-submenu .dropdown-menu.show {
    opacity: 1;
    visibility: visible;
    display: block;
}

/* Ícone indicador de submenu (seta para direita) */
.main-navigation .dropdown-submenu>.dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.5em;
    vertical-align: middle;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0;
    border-bottom: 0.3em solid transparent;
    border-left: 0.3em solid;
    float: right;
    margin-top: 0.5em;
}

/* Remover seta padrão do primeiro nível para itens de submenu */
.main-navigation .dropdown-submenu>.dropdown-toggle::before {
    content: none;
}

/* Estilização do item dropdown aninhado ao hover */
.main-navigation .dropdown-submenu>.dropdown-item:hover {
    background-color: var(--cor-terciaria);
    color: #fff !important;
}

/* Garantir que todos os itens de dropdown tenham hover na cor terciária */
.main-navigation .dropdown-menu .dropdown-item:hover {
    background-color: var(--cor-terciaria);
    color: #fff !important;
}



/* ============================================
   MENU ITEM ATIVO - DESTAQUE
   ============================================ */

/* Item de menu ativo - página atual */
.main-navigation .navbar-nav .current-menu-item>a,
.main-navigation .navbar-nav .current_page_item>a,
.main-navigation .navbar-nav .active>a {
    background-color: var(--cor-menu-link-hover);
    color: var(--cor-menu-link) !important;
    font-weight: 500;
}

/* Item de menu pai ativo */
.main-navigation .navbar-nav .current-menu-parent>a,
.main-navigation .navbar-nav .current_page_parent>a {
    background-color: var(--cor-menu-link-hover);
    color: var(--cor-menu-link) !important;
    font-weight: 500;
}

/* Hover no item ativo - mantém o estilo */
.main-navigation .navbar-nav .current-menu-item>a:hover,
.main-navigation .navbar-nav .current_page_item>a:hover,
.main-navigation .navbar-nav .active>a:hover,
.main-navigation .navbar-nav .current-menu-parent>a:hover,
.main-navigation .navbar-nav .current_page_parent>a:hover {
    background-color: var(--cor-menu-link-hover);
    color: var(--cor-menu-link) !important;
}

/* ============================================
   SUB-MENU - LINKS RÁPIDOS
   ============================================ */

/* Wrapper do submenu com altura fixa */
.submenu-wrapper {
    height: 50px;
    min-height: 50px;
}

/* Botão de busca no submenu */
.submenu-wrapper #toggleSearch {
    padding: 7px 12px;
    border-radius: 50px;
    border: 0;
}

.submenu-wrapper #toggleSearch i {
    font-size: 15px;
}

/* Links do submenu */
.submenu-wrapper a.link {
    color: #fff;
    transition: color 0.3s ease;
}

.submenu-wrapper a.link:hover {
    color: var(--cor-terciaria);
}

/* Ícones do submenu */
.submenu-wrapper .cmm-radar-icon,
.submenu-wrapper .cmm-clima-icon,
.submenu-wrapper .cmm-bus-icon,
.submenu-wrapper .cmm-video-icon {
    font-size: 20px;
}

/* Responsividade para tablets */
@media (max-width: 1199px) {
    .submenu-wrapper {
        height: auto;
        min-height: 50px;
        padding: 10px 0;
    }

    .submenu-wrapper .d-flex.gap-4 {
        gap: 1rem !important;
    }
}

/* Ocultar submenu em mobile (já está com d-none d-lg-block no HTML) */
@media (max-width: 991px) {
    .secondary-background .submenu-wrapper {
        display: none !important;
    }
}

/* ============================================
   BUSCA - OVERLAY E RESULTADOS
   ============================================ */

/* Overlay de busca */
.search-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

/* Formulário de busca flutuante */
.search-float-form {
    background-color: #fff;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
    max-width: 900px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
}

/* Preview de resultados */
.search-preview {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #dee2e6;
}

#searchLoading {
    display: none;
}

.search-preview .list-group-item {
    border-left: 3px solid var(--cor-primaria);
    transition: all 0.3s ease;
}

.search-preview .list-group-item:hover {
    background-color: #f8f9fa;
    border-left-color: var(--cor-secundaria);
}

/* Página de resultados */
.search-result-item {
    transition: all 0.3s ease;
    border-left: 4px solid var(--cor-primaria);
}

.search-result-item:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.search-result-item .card-title a {
    color: var(--cor-titulo);
    transition: color 0.3s ease;
}

.search-result-item .card-title a:hover {
    color: var(--cor-primaria);
}

/* Cabeçalho da busca */
.search-header {
    border-bottom: 3px solid var(--cor-primaria);
    padding-bottom: 20px;
}

/* Filtro de busca */
.search-filter {
    background-color: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
}

/* Paginação de busca */
.search-pagination .pagination {
    margin-bottom: 0;
}

.search-pagination .page-link {
    color: var(--cor-primaria);
}

.search-pagination .page-link:hover {
    background-color: var(--cor-primaria);
    color: #fff;
}

.search-pagination .page-item.active .page-link {
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
}

/* Sem resultados */
.no-results {
    padding: 40px;
    text-align: center;
    border-left: 4px solid var(--cor-secundaria);
}

/* Responsividade */
@media (max-width: 768px) {
    .search-float-form {
        padding: 20px;
        max-height: 80vh;
        max-width: 95%;
    }

    .search-overlay {
        align-items: flex-start;
        padding-top: 40px;
    }

    /* Formulário de busca em telas pequenas */
    #mainSearchForm .d-flex.gap-2.flex-wrap {
        flex-direction: column !important;
    }

    #mainSearchForm #searchPostType,
    #mainSearchForm #searchInput {
        flex: 1 1 100% !important;
        max-width: 100% !important;
    }

    .search-filter form {
        flex-direction: column;
    }

    .search-filter .flex-grow-1 {
        width: 100%;
    }
}

/* Tablet */
@media (min-width: 769px) and (max-width: 1024px) {
    .search-float-form {
        max-width: 90%;
    }
}


/* ===================================
   MODAL DE EVENTOS - PÁGINA INICIAL
   =================================== */

/* Modal container */
#modalEventos .modal-dialog {
    max-width: 580px;
    margin: 0 auto;
}

#modalEventos .modal-content {
    background: white;
    border: none;
    /* Remove borda padrão */
}

/* Carousel imagens */
#modalEventos .carousel-item img {
    display: block;
    width: 100%;
    height: auto;
}

/* Controles do carousel - FORA da modal, usando cores do tema */
#modalEventos .carousel-control-prev,
#modalEventos .carousel-control-next {
    width: 50px;
    height: 50px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 1;
}

#modalEventos .carousel-control-prev {
    left: -60px;
    /* Posiciona FORA da modal */
}

#modalEventos .carousel-control-next {
    right: -60px;
    /* Posiciona FORA da modal */
}

#modalEventos .carousel-control-prev-icon,
#modalEventos .carousel-control-next-icon {
    /* Usa filter para aplicar cor-primaria mantendo o SVG padrão do Bootstrap */
    filter: brightness(0) saturate(100%) invert(27%) sepia(89%) saturate(1844%) hue-rotate(165deg) brightness(95%) contrast(101%);
    width: 50px;
    height: 50px;
    border-radius: 50%;
    /* Sem transição para evitar cor intermediária (rosa) no hover */
}

#modalEventos .carousel-control-prev:hover .carousel-control-prev-icon,
#modalEventos .carousel-control-next:hover .carousel-control-next-icon {
    /* Usa filter para aplicar cor-terciaria no hover */
    filter: brightness(0) saturate(100%) invert(45%) sepia(94%) saturate(2456%) hue-rotate(338deg) brightness(102%) contrast(102%);
}

/* Indicadores com cores do tema */
#modalEventos .carousel-indicators button {

    opacity: 0.5;
}

#modalEventos .carousel-indicators button.active {
    background-color: var(--cor-primaria);
    opacity: 1;
}

/* Botão fechar */
#modalEventos .btn-close {
    opacity: 1;
}

#modalEventos .btn-close:hover {
    transform: scale(1.1);
    transition: 0.2s ease-in-out;
}

/* Responsivo para tablets */
@media (max-width: 768px) {
    #modalEventos .modal-dialog {
        max-width: 95%;
        margin: 1rem auto;
    }

    /* Setas voltam para dentro em tablets */
    #modalEventos .carousel-control-prev {
        left: 10px;
    }

    #modalEventos .carousel-control-next {
        right: 10px;
    }

    #modalEventos .carousel-control-prev-icon,
    #modalEventos .carousel-control-next-icon {
        width: 40px;
        height: 40px;
    }
}

/* Responsivo para mobile */
@media (max-width: 576px) {
    #modalEventos .modal-dialog {
        max-width: 100%;
        margin: 0.5rem;
    }

    #modalEventos .carousel-control-prev-icon,
    #modalEventos .carousel-control-next-icon {
        width: 35px;
        height: 35px;
    }

    #modalEventos .btn-close {
        padding: 1rem !important;
    }
}


/* ===================================
   PÁGINA DE PRESIDENTES - MEMORIAL
   =================================== */

.presidentes-memorial-wrapper {
    padding: 2rem 0;
    text-align: center;
}

.legislatura-header {
    border-left: 6px solid var(--cor-secundaria, #ff6600);
    animation: slideInDown 0.5s ease-out;
}

.periodo-badge {
    border: 3px solid rgba(255, 255, 255, 0.3);
    font-size: 1.1rem;
    letter-spacing: 0.5px;
    animation: fadeInUp 0.6s ease-out;
}

.periodo-wrapper {
    display: inline-block;
    padding: 0px 50px;
    text-align: center;
}

.presidente-card {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.presidente-card:hover {
    transform: translateY(-8px) scale(1.02);
}

.presidente-card:hover .presidente-card-image img {
    transform: scale(1.05);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25) !important;
}

.presidente-card-image {
    overflow: hidden;
    border-radius: 0.5rem;
}

.presidente-card-image img {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 4px solid var(--cor-primaria, #007bff);
}

.presidente-card-content {
    min-height: 70px;
    transition: all 0.3s ease;
}

.presidente-card:hover .presidente-card-content {
    background-color: var(--cor-secundaria, #0056b3) !important;
    transform: translateY(-2px);
}

.presidente-nome {
    font-size: 0.875rem;
    line-height: 1.3;
    word-break: break-word;
}

@keyframes slideInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 576px) {
    .presidente-nome {
        font-size: 0.75rem;
    }

    .legislatura-header h2 {
        font-size: 1.25rem;
    }

    .periodo-badge h3 {
        font-size: 1rem;
    }

    .periodo-badge {
        padding: 0.75rem 1.5rem !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .presidente-nome {
        font-size: 0.8rem;
    }
}

/* Ajustes de grid para diferentes quantidades de presidentes */
.row-cols-xl-6>* {
    flex: 0 0 auto;
    width: 16.666667%;
}

@media (max-width: 1399px) {
    .row-cols-xl-6>* {
        width: 20%;
        /* 5 por linha */
    }
}

@media (max-width: 1199px) {
    .row-cols-xl-6>* {
        width: 25%;
        /* 4 por linha */
    }
}

/* Grid responsivo com Flexbox - Presidentes lado a lado */
.presidentes-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: center;
    align-items: stretch;
    margin-bottom: 2rem;
}

.presidente-item {
    flex: 0 0 auto;
    width: 220px;
}

.presidente-foto-container {
    width: 180px;
    height: 220px;
    margin: 0 auto;
    overflow: hidden;
}

.presidente-foto-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Telas muito pequenas (celular) - 1 por linha */
@media (max-width: 575px) {
    .presidente-item {
        width: 100%;
        max-width: 280px;
    }

    .presidentes-grid {
        gap: 1.5rem;
    }
}

/* Telas pequenas (tablet retrato) - 2 por linha */
@media (min-width: 576px) and (max-width: 767px) {
    .presidente-item {
        width: calc(50% - 1rem);
    }

    .presidentes-grid {
        gap: 2rem;
    }
}

/* Telas médias (tablet paisagem) - 3 por linha */
@media (min-width: 768px) and (max-width: 991px) {
    .presidente-item {
        width: calc(33.333% - 1.5rem);
    }
}

/* Telas grandes (desktop) - 4 por linha */
@media (min-width: 992px) and (max-width: 1199px) {
    .presidente-item {
        width: 220px;
    }
}

/* Telas muito grandes (desktop largo) - 5 ou mais por linha */
@media (min-width: 1200px) {
    .presidente-item {
        width: 220px;
    }
}

/* Ajuste para quando houver apenas 2 presidentes */
@media (min-width: 768px) {
    .presidentes-grid:has(.presidente-item:nth-child(2):last-child) {
        justify-content: center;
    }
}


/* ===================================
   COMPONENTE DE BOTÕES COMUNICAÇÃO
   =================================== */

/* Customização dos botões usando variáveis do Bootstrap */
.custom-button-card {
    border-width: 2px;
    transition: all 0.3s ease;
    border-radius: 0.5rem;
}

.custom-button-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
    background-color: var(--cor-primaria, var(--bs-primary)) !important;
    border-color: var(--cor-primaria, var(--bs-primary)) !important;
    color: white !important;
}

.custom-button-card i {
    transition: transform 0.3s ease;
}

.custom-button-card:hover i {
    transform: scale(1.1);
}

/* Responsivo usando breakpoints do Bootstrap */
@media (max-width: 768px) {
    .custom-button-card {
        min-width: 140px !important;
        min-height: 120px !important;
        padding: 0.75rem !important;
    }

    .custom-button-card i {
        font-size: 2rem !important;
    }

    .custom-button-card span {
        font-size: 0.8rem !important;
    }
}

@media (max-width: 576px) {
    .btn-toolbar {
        justify-content: center !important;
    }

    .custom-button-card {
        min-width: 120px !important;
        min-height: 100px !important;
    }
}

/* ========================================
       CUSTOM BUTTONS - DESIGN MODERNO
       ======================================== */

.custom-buttons-section {
    width: 100%;
}

.custom-button-card {
    background: var(--cor-primaria);
    border-radius: 12px;
    padding: 2rem 1rem;
    min-height: 150px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.custom-button-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, var(--cor-primaria, #0073aa) 0%, var(--cor-secundaria, #005177) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 0;
}

.custom-button-card:hover::before {
    opacity: 1;
}

.custom-button-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 115, 170, 0.25);
    border-color: var(--cor-secundaria, #005177);
}

/* Ícone */
.button-icon-wrapper {
    position: relative;
    z-index: 1;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: 12px;
    transition: all 0.3s ease;
}

.custom-button-card:hover .button-icon-wrapper {
    background: var(--cor-terciaria);
    transform: scale(1.1);
}

.button-icon {
    font-size: 2rem;
    color: var(--cor-primaria, #0073aa);
    transition: all 0.3s ease;
}

.custom-button-card:hover .button-icon {
    color: #fff;
    transform: scale(1.1);
}

/* Título */
.button-title {
    position: relative;
    z-index: 1;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--cor-primaria, #0073aa);
    text-align: center;
    line-height: 1.4;
    transition: color 0.3s ease;
}

.custom-button-card:hover .button-title {
    color: #fff;
}

/* Responsividade */
@media (max-width: 991px) {
    .custom-button-card {
        min-height: 140px;
        padding: 1.5rem 1rem;
    }

    .button-icon-wrapper {
        width: 50px;
        height: 50px;
    }

    .button-icon {
        font-size: 1.75rem;
    }

    .button-title {
        font-size: 0.8rem;
    }
}

@media (max-width: 767px) {
    .custom-button-card {
        min-height: 130px;
        padding: 1.25rem 0.75rem;
    }

    .button-icon-wrapper {
        width: 45px;
        height: 45px;
        margin-bottom: 0.75rem;
    }

    .button-icon {
        font-size: 1.5rem;
    }

    .button-title {
        font-size: 0.75rem;
    }
}

@media (max-width: 575px) {
    .custom-button-card {
        min-height: 120px;
        padding: 1rem 0.5rem;
    }

    .button-icon-wrapper {
        width: 40px;
        height: 40px;
        margin-bottom: 0.5rem;
    }

    .button-icon {
        font-size: 1.25rem;
    }

    .button-title {
        font-size: 0.7rem;
        line-height: 1.3;
    }
}

/* Acessibilidade */
.custom-button-card:focus {
    outline: 3px solid var(--cor-terciaria, #28a745);
    outline-offset: 2px;
}

.custom-button-card:focus:not(:focus-visible) {
    outline: none;
}

/* Animação ao carregar */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.custom-button-card {
    animation: fadeInUp 0.5s ease-out backwards;
}

.custom-button-card:nth-child(1) {
    animation-delay: 0.1s;
}

.custom-button-card:nth-child(2) {
    animation-delay: 0.2s;
}

.custom-button-card:nth-child(3) {
    animation-delay: 0.3s;
}

.custom-button-card:nth-child(4) {
    animation-delay: 0.4s;
}

.custom-button-card:nth-child(5) {
    animation-delay: 0.5s;
}

.custom-button-card:nth-child(6) {
    animation-delay: 0.6s;
}


/* ========================================
   PODCAST CARDS - DESIGN MODERNO
   ======================================== */

.podcast-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
}

.podcast-card:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    transform: translateY(-4px);
}

/* Cabeçalho do Card */
.podcast-header {
    background: var(--cor-primaria);
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.podcast-card-title {
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
    text-align: center;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Container do Vídeo */
.podcast-video-container {
    background: #000;
    position: relative;
}

.podcast-video-container iframe {
    border: none;
    display: block;
}

/* Estado sem vídeo */
.podcast-no-video {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 250px;
    background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%);
    color: rgba(255, 255, 255, 0.7);
    text-align: center;
    padding: 2rem;
}

.podcast-no-video i {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

.podcast-no-video p {
    margin: 0;
    font-size: 0.95rem;
}

/* Informações do Podcast */
.podcast-info {
    padding: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    background: var(--cor-terciaria);
}

.podcast-meta {
    margin: 0;
    font-size: 16px;
    color: #ffffff;
    line-height: 1.5;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.podcast-meta i {
    color: #fff;
    font-size: 16px;
    flex-shrink: 0;
}

.podcast-meta strong {
    color: #fff;
    font-weight: 600;
    font-size: 16px;
    font-weight: bold;
}

.podcast-programa {
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e9ecef;
}

.podcast-description {
    margin: 0;
    font-size: 16px;
    color: #fff;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;

}

.podcast-description strong {
    color: #fff;
    display: block;
    margin-bottom: 0.25rem;
    font-weight: bold
}

/* ========================================
   RESPONSIVIDADE
   ======================================== */

/* Tablets */
@media (max-width: 991px) {
    .podcast-card-title {
        font-size: 1rem;
    }

    .podcast-info {
        padding: 1.25rem;
    }

    .podcast-meta,
    .podcast-description {
        font-size: 0.875rem;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .podcast-header {
        padding: 1rem;
        min-height: 70px;
    }

    .podcast-card-title {
        font-size: 0.95rem;
    }

    .podcast-info {
        padding: 1rem;
        gap: 0.625rem;
    }

    .podcast-meta,
    .podcast-description {
        font-size: 0.85rem;
    }

    .podcast-no-video {
        min-height: 200px;
        padding: 1.5rem;
    }

    .podcast-no-video i {
        font-size: 2.5rem;
    }
}

/* Mobile Pequeno */
@media (max-width: 575px) {
    .podcast-card {
        border-radius: 8px;
    }

    .podcast-header {
        min-height: 65px;
    }
}


/* ========================================
   BLOCO LEI GERAL DE PROTEÇÃO DE DADOS PESSOAIS (LGPD)
   ======================================== */


.box-title {
    background: var(--cor-primaria);
    border-radius: 10px;
}

.box-title h2 {
    font-size: 20px;
    text-align: center;
    color: #fff;
    padding: 30px;
    font-weight: 400;
}

.body-menu-lgpd {
    border: 1px solid #d4d4d4;
}

.tab-content>.active {
    display: block;
    padding: 35px;
    border-radius: 1px;
}

.tab-title {
    font-size: 25px;
    color: #535254;
    border-bottom: 1px solid #535254;
    padding-bottom: 5px;
    margin-bottom: 20px;
}

.tab-border {
    border: 1px solid #d4d4d4;
    padding-bottom: 5px;
    margin-bottom: 20px;
}

/* ========================================
   SINGLE PODCAST - DESIGN MODERNO
   ======================================== */

.single-podcast {
    margin: 0 auto;
}

/* Cabeçalho */
.single-podcast-header {
    text-align: center;
    padding-bottom: 2rem;
    border-bottom: 3px solid var(--cor-terciaria, #FF6600);
}

.single-podcast-title {
    color: var(--cor-titulo, #333);
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 1rem;
}

.single-podcast-meta {
    color: #6c757d;
    font-size: 1rem;
}

.meta-item i {
    color: var(--cor-terciaria, #FF6600);
    margin-right: 0.5rem;
}

/* Player de Vídeo */
.single-podcast-player {
    background: #000;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.single-podcast-player iframe,
.single-podcast-player video {
    border: none;
    display: block;
}

/* Cards de Informação */
.info-card {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 12px;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    transition: all 0.3s ease;
    height: 100%;
}

.info-card:hover {
    border-color: var(--cor-terciaria, #FF6600);
    box-shadow: 0 4px 12px rgba(255, 102, 0, 0.1);
    transform: translateY(-2px);
}

.info-icon {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #FF6600 0%, #FF8533 100%);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.info-icon i {
    font-size: 1.5rem;
    color: #fff;
}

.info-content {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.info-label {
    font-size: 0.875rem;
    color: #6c757d;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.info-value {
    font-size: 1.1rem;
    color: var(--cor-primaria, #004085);
    font-weight: 600;
}

/* Descrição */
.single-podcast-description {
    background: #f8f9fa;
    border-left: 4px solid var(--cor-terciaria, #FF6600);
    padding: 2rem;
    border-radius: 8px;
}

.section-title {
    color: var(--cor-titulo, #333);
    font-size: 1.5rem;
    font-weight: 600;
}

.description-content {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #495057;
}

/* Compartilhar */
.share-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.share-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    font-weight: 500;
    transition: all 0.3s ease;
}

.share-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.share-btn i {
    font-size: 1.2rem;
}

/* Navegação */
.single-podcast-navigation .btn {
    padding: 0.75rem 2rem;
    font-weight: 500;
    border-radius: 8px;
}

/* ========================================
   RESPONSIVIDADE
   ======================================== */

@media (max-width: 768px) {
    .single-podcast-title {
        font-size: 1.75rem;
    }

    .single-podcast-meta {
        font-size: 0.9rem;
    }

    .info-card {
        padding: 1rem;
    }

    .info-icon {
        width: 40px;
        height: 40px;
    }

    .info-icon i {
        font-size: 1.25rem;
    }

    .info-value {
        font-size: 1rem;
    }

    .single-podcast-description {
        padding: 1.5rem;
    }

    .description-content {
        font-size: 1rem;
    }

    .share-buttons {
        flex-direction: column;
    }

    .share-btn {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 575px) {
    .single-podcast-title {
        font-size: 1.5rem;
    }

    .single-podcast-header {
        padding-bottom: 1.5rem;
    }

    .info-card {
        flex-direction: column;
        text-align: center;
        gap: 0.75rem;
    }
}

/* ========================================
   Estilos para o Mapa do Site
   ======================================== */
.sitemap-container {
    margin-top: 2rem;
}

.sitemap-section .card-body {
    background-color: #ffffff;
}

.sitemap-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

.sitemap-list.level-0 {
    padding-left: 0;
}

.sitemap-list.level-1 {
    padding-left: 1.5rem;
    margin-top: 0.5rem;
}

.sitemap-list.level-2 {
    padding-left: 3rem;
    margin-top: 0.5rem;
}

.sitemap-list.level-3 {
    padding-left: 4.5rem;
    margin-top: 0.5rem;
}

.sitemap-list li {
    margin-bottom: 0.75rem;
    position: relative;
}

.sitemap-list.level-1>li::before,
.sitemap-list.level-2>li::before,
.sitemap-list.level-3>li::before {
    content: "";
    position: absolute;
    left: -1rem;
    top: 0.6rem;
    width: 0.5rem;
    height: 2px;
    background-color: #dee2e6;
}

.sitemap-link {
    color: #495057;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    transition: all 0.3s ease;
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
}

.sitemap-link:hover {
    color: var(--cor-primaria, #0d6efd);
    background-color: rgba(var(--cor-primaria-rgb, 13, 110, 253), 0.1);
    text-decoration: none;
}

.sitemap-link i {
    font-size: 1rem;
    opacity: 0.7;
}

.sitemap-link:hover i {
    opacity: 1;
}

.list-group-item .sitemap-link {
    color: inherit;
    text-decoration: none;
}

.list-group-item:hover {
    background-color: rgba(0, 0, 0, 0.02);
}

.stats-list {
    font-size: 0.95rem;
}

.stat-item {
    padding: 0.5rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.stat-item:last-child {
    border-bottom: none;
}

/* Responsivo */
@media (max-width: 992px) {

    .sitemap-list.level-1,
    .sitemap-list.level-2,
    .sitemap-list.level-3 {
        padding-left: 1rem;
    }
}

@media (max-width: 768px) {
    .sitemap-container {
        margin-top: 1rem;
    }

    .sitemap-section .card-body {
        padding: 1.5rem !important;
    }

    .sitemap-link {
        font-size: 0.9rem;
    }
}

/* Mensagem quando não há resultados da busca */
.sitemap-no-results {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--cor-subtitulo, #6c757d);
}

/**
 * Estilos customizados para botões DearFlip
 * Mantém o padrão visual do tema CMM
 */

/* Estilização do botão DearFlip para seguir o padrão button-tertiary */
._df_button,
.df-element.df-popup-button {
    display: inline-block;
    width: 100%;
    padding: 0.5rem 1rem;
    background-color: var(--cor-terciaria) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    text-align: center;
    text-decoration: none !important;
    font-weight: 500;
    transition: all 0.2s ease-in;
    cursor: pointer;
    margin: 0;
}

/* Hover do botão DearFlip */
._df_button:hover,
.df-element.df-popup-button:hover {
    background-color: var(--cor-secundaria) !important;
    color: #fff !important;
    text-decoration: none !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);

}

/* Efeito active/pressed */
._df_button:active,
.df-element.df-popup-button:active {
    transform: translateY(0);
}

/* Remove sublinhado do link */
._df_button:focus,
.df-element.df-popup-button:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Responsividade - ajustes para mobile */
@media (max-width: 768px) {

    ._df_button,
    .df-element.df-popup-button {
        padding: 0.625rem 1rem;
        font-size: 0.9rem;
    }
}

/* Card de Áudio */
.audio-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.audio-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Thumbnail */
.audio-card-thumbnail {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.audio-thumbnail-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.audio-card:hover .audio-thumbnail-img {
    transform: scale(1.05);
}

.audio-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.audio-card:hover .audio-overlay {
    opacity: 1;
}

.btn-play-large {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: #fff;
    border: none;
    color: var(--cor-primaria);
    font-size: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.btn-play-large:hover {
    transform: scale(1.1);
    background: var(--cor-primaria);
    color: #fff;
}

/* Body do Card */
.audio-card-body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.audio-card-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--cor-primaria);
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.audio-card-author {
    font-size: 0.875rem;
    color: #666;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 5px;
}

.audio-card-author i {
    color: var(--cor-terciaria);
}

/* Player de Áudio */
.audio-player {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 0.75rem;
    margin-bottom: 1rem;
}

.audio-controls {
    display: flex;
    align-items: center;
    gap: 10px;
}

.btn-play {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--cor-primaria);
    border: none;
    color: #fff;
    font-size: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.btn-play:hover {
    background: var(--cor-secundaria);
    transform: scale(1.05);
}

.btn-play.playing .play-icon {
    display: none;
}

.btn-play.playing .pause-icon {
    display: block !important;
}

.audio-time-info {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-grow: 1;
    font-size: 0.75rem;
    color: #666;
}

.audio-progress-container {
    flex-grow: 1;
    cursor: pointer;
}

.audio-progress-bar {
    height: 4px;
    background: #dee2e6;
    border-radius: 2px;
    position: relative;
    overflow: hidden;
}

.audio-progress-filled {
    height: 100%;
    background: var(--cor-primaria);
    width: 0%;
    transition: width 0.1s ease;
}

.btn-volume {
    width: 30px;
    height: 30px;
    border: none;
    background: transparent;
    color: var(--cor-primaria);
    font-size: 1.1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.btn-volume:hover {
    color: var(--cor-terciaria);
}

.volume-control {
    margin-top: 8px;
}

.volume-slider {
    width: 100%;
    height: 4px;
    -webkit-appearance: none;
    appearance: none;
    background: #dee2e6;
    outline: none;
    border-radius: 2px;
}

.volume-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 12px;
    height: 12px;
    background: var(--cor-primaria);
    cursor: pointer;
    border-radius: 50%;
}

.volume-slider::-moz-range-thumb {
    width: 12px;
    height: 12px;
    background: var(--cor-primaria);
    cursor: pointer;
    border-radius: 50%;
    border: none;
}

/* Ações */
.audio-card-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
}

.btn-download {
    background: var(--cor-terciaria);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.5rem 1rem;
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.3s ease;
}

.btn-download:hover {
    background: #c85516;
    color: #fff;
    transform: translateY(-2px);
}

.audio-play-count {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.875rem;
    color: #666;
    font-weight: 600;
}

.audio-play-count i {
    color: var(--cor-primaria);
    font-size: 1rem;
}

/* Responsividade */
@media (max-width: 767px) {
    .audio-card-title {
        font-size: 0.95rem;
    }

    .btn-play-large {
        width: 60px;
        height: 60px;
        font-size: 1.75rem;
    }

    .btn-play {
        width: 35px;
        height: 35px;
        font-size: 1.1rem;
    }

    .audio-time-info {
        font-size: 0.7rem;
    }
}

/* Estilos do Grid de Áudios */
.cmm-audios-grid {
    padding: 2rem 0;
}

/* Estado Vazio */
.audio-grid-empty {
    text-align: center;
    padding: 4rem 2rem;
    color: var(--cor-subtitulo);
}

.audio-grid-empty i {
    font-size: 4rem;
    opacity: 0.5;
    margin-bottom: 1rem;
}

.audio-grid-empty p {
    font-size: 1.125rem;
    margin: 0;
}

/* ===================================
   CPI ÁGUAS DE MANAUS
   Estilos para as páginas de CPI das Águas
   =================================== */

/* Cards de filtro e resultados */
.cpi-search-card .card {
    border: none;
    border-radius: 0.5rem;
    overflow: hidden;
}

.cpi-search-card .card-header {
    background-color: var(--cor-primaria);
    padding: 1rem 1.5rem;
}

.cpi-search-card .card-header h5 {
    color: #fff;
    margin: 0;
    font-weight: 600;
}

.cpi-search-card .card-body {
    background-color: #f8f9fa;
}

.cpi-results-card .card {
    border: none;
    border-radius: 0.5rem;
    overflow: hidden;
}

.cpi-results-card .card-header {
    background-color: #f8f9fa;
    border-bottom: 2px solid var(--cor-primaria);
    padding: 1rem 1.5rem;
}

.cpi-results-card .card-header h5 {
    color: var(--cor-titulo);
    margin: 0;
    font-weight: 600;
}

/* Formulário de filtros */
.cpi-search-card .form-label {
    color: var(--cor-titulo);
    margin-bottom: 0.5rem;
    font-size: 0.95rem;
}

.cpi-search-card .form-label i {
    color: var(--cor-primaria);
    margin-right: 0.25rem;
}

.cpi-search-card .form-control,
.cpi-search-card .form-select {
    border-radius: 0.375rem;
    border: 1px solid #dee2e6;
    padding: 0.625rem 0.75rem;
}

.cpi-search-card .form-control:focus,
.cpi-search-card .form-select:focus {
    border-color: var(--cor-terciaria);
    box-shadow: 0 0 0 0.2rem rgba(255, 102, 0, 0.15);
}

.cpi-search-card .form-text {
    font-size: 0.85rem;
    color: #6c757d;
    margin-top: 0.25rem;
}

/* Botões do formulário */
.cpi-search-card .btn {
    padding: 0.625rem 1.5rem;
    font-weight: 500;
    border-radius: 0.375rem;
    transition: all 0.3s ease;
}

.cpi-search-card .btn i {
    margin-right: 0.5rem;
}

.cpi-search-card .btn-primary {
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
}

.cpi-search-card .btn-primary:hover {
    background-color: var(--cor-secundaria);
    border-color: var(--cor-secundaria);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.cpi-search-card .btn-secondary {
    background-color: #6c757d;
    border-color: #6c757d;
}

.cpi-search-card .btn-secondary:hover {
    background-color: #5a6268;
    border-color: #545b62;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

/* Tabela de resultados */
.cpi-results-card .table {
    margin-bottom: 0;
}

.cpi-results-card .table-primary th {
    color: #fff;
    font-weight: 600;
    padding: 1rem;
    border: none;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.cpi-results-card .table tbody tr {
    transition: all 0.3s ease;
}

.cpi-results-card .table tbody tr:hover {
    background-color: rgba(var(--cor-primaria-rgb, 0, 86, 179), 0.05);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.cpi-results-card .table tbody td {
    vertical-align: middle;
    padding: 1rem;
    font-size: 0.95rem;
}

.cpi-results-card .table tbody td strong {
    color: var(--cor-titulo);
    font-weight: 600;
}

/* Botões de download de PDF */
.cpi-results-card .btn-outline-danger {
    border-color: #dc3545;
    color: #dc3545;
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

.cpi-results-card .btn-outline-danger:hover {
    background-color: #dc3545;
    border-color: #dc3545;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(220, 53, 69, 0.3);
}

.cpi-results-card .btn-outline-danger i {
    margin-right: 0.25rem;
}

/* Informações de resultados */
.results-info {
    padding: 0.75rem 0;
    border-bottom: 1px solid #dee2e6;
    margin-bottom: 1rem;
}

.results-info p {
    font-size: 0.95rem;
    color: #6c757d;
}

.results-info strong {
    color: var(--cor-primaria);
    font-weight: 600;
}

.results-info i {
    color: var(--cor-primaria);
    margin-right: 0.5rem;
}

/* Loading spinner */
#loading-spinner {
    min-height: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#loading-spinner .spinner-border {
    color: var(--cor-primaria);
}

#loading-spinner p {
    color: var(--cor-subtitulo);
    font-weight: 500;
}


/* Alertas personalizados */
.cpi-results-card .alert {
    border-radius: 0.5rem;
    border-left-width: 4px;
}

.cpi-results-card .alert-info {
    background-color: #e7f3ff;
    border-left-color: var(--cor-primaria);
    color: var(--cor-titulo);
}

.cpi-results-card .alert-info i {
    color: var(--cor-primaria);
    font-size: 1.5rem;
    margin-right: 0.5rem;
}

/* Responsividade */
@media (max-width: 768px) {
    .cpi-search-card .card-body {
        padding: 1.5rem;
    }

    .cpi-search-card .btn {
        width: 100%;
        margin-bottom: 0.5rem;
    }

    .cpi-search-card .btn:last-child {
        margin-bottom: 0;
    }

    .cpi-results-card .table {
        font-size: 0.875rem;
    }

    .cpi-results-card .table tbody td {
        padding: 0.75rem 0.5rem;
    }

    .results-info {
        flex-direction: column;
        align-items: flex-start !important;
    }

    .results-info p:last-child {
        margin-top: 0.5rem;
    }
}

@media (max-width: 576px) {
    .cpi-search-card .form-label {
        font-size: 0.9rem;
    }

    .cpi-results-card .table-responsive {
        border-radius: 0.5rem;
        overflow: hidden;
    }

    .cpi-results-card .btn-outline-danger {
        font-size: 0.8rem;
        padding: 0.25rem 0.5rem;
    }

}

/* Animações */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

#cpi-table-content {
    animation: fadeIn 0.5s ease;
}

/* Feedback visual nos campos ao mudar */
.border-primary {
    border-color: var(--cor-primaria) !important;
    transition: border-color 0.3s ease;
}

/* Container de paginação CPI */
#cpi-pagination-container {
    margin-top: 2rem;
}

#cpi-pagination-container .pagination-container {
    margin-top: 0;
}

/* Classe tertiary-background para thead da tabela CPI */
.cpi-results-card .table thead.tertiary-background {
    background-color: var(--cor-terciaria) !important;
}

.cpi-results-card .table thead.tertiary-background th {
    background-color: var(--cor-terciaria) !important;
    color: #fff;
}

.wpforms-submit-container {
    text-align: center;
}

button#wpforms-submit-14476 {
    width: 49%;
}


/* ========================================
   ESCOLA DO LEGISLATIVO
   Estilos para a página Escola do Legislativo
   ======================================== */

/* Banner Section */
.escola-banner-section {
    margin-bottom: 3rem;
}

/* Seção Informações - Banner Slider */
.escola-informacoes {
    position: relative;
    margin-bottom: 3rem;
}

.escola-informacoes .section-title {
    color: var(--cor-titulo);
    font-size: 2rem;
    font-weight: 600;
    margin-bottom: 2rem;
    position: relative;
    display: inline-block;
}

.escola-informacoes .section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, var(--cor-primaria), var(--cor-terciaria));
    border-radius: 2px;
}

/* Seção Saiba Mais */
.escola-saiba-mais {
    position: relative;
}

.escola-saiba-mais .section-title {
    color: var(--cor-titulo);
    font-size: 2rem;
    font-weight: 600;
    margin-bottom: 2rem;
    position: relative;
    display: inline-block;
}

.escola-saiba-mais .section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, var(--cor-primaria), var(--cor-terciaria));
    border-radius: 2px;
}

/* Grid de 6 colunas - Ajustes específicos para Saiba Mais */
.escola-saiba-mais .icon-box {
    min-height: 280px;
}

.escola-saiba-mais .icon-box-description {
    font-size: 0.9rem;
    line-height: 1.5;
}

/* ========================================
   RESPONSIVIDADE - ESCOLA DO LEGISLATIVO
   ======================================== */

/* Tablets */
@media (max-width: 991px) {

    .escola-informacoes .section-title,
    .escola-saiba-mais .section-title {
        font-size: 1.75rem;
    }

    .escola-informacoes {
        margin-bottom: 2.5rem;
    }

    /* Grid ajusta para 3 colunas em tablets */
    .escola-saiba-mais .icon-box {
        min-height: 260px;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .escola-banner-section {
        margin-bottom: 2rem;
    }

    .escola-informacoes {
        margin-bottom: 2rem;
    }

    .escola-informacoes .section-title,
    .escola-saiba-mais .section-title {
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
    }

    .escola-informacoes .section-title::after,
    .escola-saiba-mais .section-title::after {
        width: 60px;
        height: 3px;
    }

    /* Grid ajusta para 2 colunas em mobile */
    .escola-saiba-mais .icon-box {
        min-height: auto;
        padding: 1.5rem 1rem;
    }

    .escola-saiba-mais .icon-box-description {
        min-height: auto;
        font-size: 0.85rem;
    }
}

/* Mobile Pequeno */
@media (max-width: 575px) {

    .escola-informacoes .section-title,
    .escola-saiba-mais .section-title {
        font-size: 1.25rem;
    }

    .escola-informacoes {
        margin-bottom: 1.5rem;
    }
}


/* ========================================
   DEPOIMENTOS - ESCOLA DO LEGISLATIVO
   ======================================== */

.escola-depoimentos {
    background-color: #f8f9fa;
}

.escola-depoimentos .section-title {
    color: var(--cor-titulo);
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
    position: relative;
    display: inline-block;
}

.escola-depoimentos .section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, var(--cor-primaria), var(--cor-terciaria));
    border-radius: 2px;
}

/* Card de Depoimento */
.depoimento-card {
    background: #fff;
    border-radius: 12px;
    padding: 2rem 1.5rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
}

.depoimento-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--cor-primaria), var(--cor-secundaria));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}

.depoimento-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.depoimento-card:hover::before {
    transform: scaleX(1);
}

/* Ícone de aspas */
.depoimento-icon {
    font-size: 3rem;
    color: var(--cor-terciaria);
    opacity: 0.2;
    margin-bottom: 1rem;
    line-height: 1;
}

/* Conteúdo do depoimento */
.depoimento-content {
    flex: 1;
    margin-bottom: 1.5rem;
}

.depoimento-text {
    font-size: 0.95rem;
    line-height: 1.6;
    color: #495057;
    font-style: italic;
    margin: 0;
}

/* Autor */
.depoimento-author {
    border-top: 1px solid #e9ecef;
    padding-top: 1rem;
    margin-top: auto;
}

.author-name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--cor-primaria);
    margin-bottom: 0.5rem;
}

.author-date {
    font-size: 0.85rem;
    color: #6c757d;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.author-date i {
    color: var(--cor-terciaria);
    font-size: 0.9rem;
}

/* ========================================
   MURAL - ESCOLA DO LEGISLATIVO
   ======================================== */

.escola-mural .section-title {
    color: var(--cor-titulo);
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
    position: relative;
    display: inline-block;
}

.escola-mural .section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, var(--cor-primaria), var(--cor-terciaria));
    border-radius: 2px;
}

/* Item do Mural */
.mural-item {
    height: 100%;
}

.mural-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

/* Wrapper da Imagem */
.mural-image-wrapper {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 12px;
    background: #e9ecef;
}

.mural-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.mural-link:hover .mural-image {
    transform: scale(1.1);
}

/* Overlay */
.mural-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.mural-link:hover .mural-overlay {
    opacity: 1;
}

.mural-overlay i {
    font-size: 3rem;
    color: #fff;
    transform: scale(0.8);
    transition: transform 0.3s ease;
}

.mural-link:hover .mural-overlay i {
    transform: scale(1);
}

/* Informações */
.mural-info {
    padding: 1rem 0.5rem 0;
}

.mural-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--cor-titulo);
    margin-bottom: 0.5rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.mural-credits {
    font-size: 0.8rem;
    color: #6c757d;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.mural-credits i {
    color: var(--cor-terciaria);
    font-size: 0.9rem;
}

/* Estado vazio */
.mural-empty {
    color: var(--cor-subtitulo);
}

.mural-empty i {
    font-size: 4rem;
    opacity: 0.5;
    display: block;
}

.mural-empty p {
    font-size: 1.125rem;
    margin: 0;
}

/* Modal do Mural */
#muralModal .modal-content {
    border: none;
    border-radius: 0.5rem;
    overflow: hidden;
}

#muralModal .modal-header {
    padding: 1rem 1.5rem;
    background: rgba(0, 0, 0, 0.9);
}

#muralModal .btn-close {
    font-size: 1.5rem;
    opacity: 0.8;
    transition: opacity 0.3s ease;
}

#muralModal .btn-close:hover {
    opacity: 1;
}

#muralModal .modal-body {
    background: #000;
    padding: 0;
}

#muralModal #modalImage {
    transition: opacity 0.3s ease;
    background: #000;
}

/* Botões de navegação do modal */
#muralModal #btnPrev,
#muralModal #btnNext {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    border: 2px solid rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.9);
}

#muralModal #btnPrev:hover,
#muralModal #btnNext:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

#muralModal #btnPrev:disabled,
#muralModal #btnNext:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

#muralModal #btnPrev i,
#muralModal #btnNext i {
    font-size: 1.5rem;
    font-weight: bold;
}

#muralModal .modal-footer {
    padding: 1.5rem;
    background: rgba(0, 0, 0, 0.95);
}

#muralModal #modalTitle {
    color: #fff;
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0;
}

#muralModal #modalLegenda {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
    margin: 0.5rem 0 0 0;
}

#muralModal #modalCreditos {
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.85rem;
    margin: 0.5rem 0 0 0;
}

#muralModal #modalCreditos i {
    color: rgba(255, 255, 255, 0.6);
}

/* Animação de fade do modal */
#muralModal.fade .modal-dialog {
    transition: transform 0.3s ease-out, opacity 0.3s ease-out;
}

#muralModal.show .modal-dialog {
    transform: scale(1);
    opacity: 1;
}

/* ========================================
   RESPONSIVIDADE - DEPOIMENTOS E MURAL
   ======================================== */

/* Tablets */
@media (max-width: 991px) {

    .escola-depoimentos .section-title,
    .escola-mural .section-title {
        font-size: 2rem;
    }

    .depoimento-card {
        padding: 1.5rem 1.25rem;
    }

    .depoimento-icon {
        font-size: 2.5rem;
    }

    /* Modal - Tablets */
    #muralModal .modal-dialog {
        max-width: 90%;
    }

    #muralModal #modalImage {
        max-height: 60vh;
    }

    #muralModal #btnPrev,
    #muralModal #btnNext {
        width: 45px;
        height: 45px;
    }

    #muralModal #btnPrev i,
    #muralModal #btnNext i {
        font-size: 1.3rem;
    }
}

/* Mobile */
@media (max-width: 767px) {

    .escola-depoimentos .section-title,
    .escola-mural .section-title {
        font-size: 1.75rem;
    }

    .depoimento-card {
        padding: 1.25rem 1rem;
    }

    .depoimento-icon {
        font-size: 2rem;
    }

    .depoimento-text {
        font-size: 0.9rem;
    }

    .author-name {
        font-size: 0.95rem;
    }

    .mural-title {
        font-size: 0.85rem;
    }

    .mural-credits {
        font-size: 0.75rem;
    }

    /* Modal - Mobile */
    #muralModal .modal-dialog {
        max-width: 95%;
        margin: 0.5rem auto;
    }

    #muralModal #modalImage {
        max-height: 50vh;
    }

    #muralModal #btnPrev,
    #muralModal #btnNext {
        width: 40px;
        height: 40px;
    }

    #muralModal #btnPrev {
        margin-left: 0.5rem;
    }

    #muralModal #btnNext {
        margin-right: 0.5rem;
    }

    #muralModal #btnPrev i,
    #muralModal #btnNext i {
        font-size: 1.2rem;
    }

    #muralModal #modalTitle {
        font-size: 1.1rem;
    }

    #muralModal #modalLegenda {
        font-size: 0.85rem;
    }

    #muralModal #modalCreditos {
        font-size: 0.75rem;
    }

    #muralModal .modal-footer {
        padding: 1rem;
    }

    #muralModal .modal-header {
        padding: 0.75rem 1rem;
    }
}

/* Mobile Pequeno */
@media (max-width: 575px) {

    .escola-depoimentos .section-title,
    .escola-mural .section-title {
        font-size: 1.5rem;
    }

    .escola-depoimentos .section-title::after,
    .escola-mural .section-title::after {
        width: 60px;
        height: 3px;
    }

    /* Modal - Mobile Pequeno */
    #muralModal #modalImage {
        max-height: 40vh;
    }

    #muralModal #btnPrev,
    #muralModal #btnNext {
        width: 35px;
        height: 35px;
    }

    #muralModal #btnPrev i,
    #muralModal #btnNext i {
        font-size: 1rem;
    }

    #muralModal #modalTitle {
        font-size: 1rem;
    }

    #muralModal #modalLegenda {
        font-size: 0.8rem;
    }

    #muralModal #modalCreditos {
        font-size: 0.7rem;
    }

    #muralModal .modal-footer {
        padding: 0.75rem;
    }
}

/* ========================================
   NOTÍCIAS RELACIONADAS
   ======================================== */

.noticias-relacionadas {
    position: relative;
}

/* Card de Notícia */
.noticia-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.noticia-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.noticia-link {
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Imagem da Notícia */
.noticia-image-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 16/10;
    overflow: hidden;
    background: linear-gradient(135deg, #f5f5f5 0%, #e9ecef 100%);
}

.noticia-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.noticia-link:hover .noticia-image {
    transform: scale(1.1);
}

/* Placeholder quando não há imagem */
.noticia-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-secundaria) 100%);
}

.noticia-placeholder i {
    font-size: 4rem;
    color: rgba(255, 255, 255, 0.6);
}

/* Badge de Categoria */
.noticia-category-badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 2;
}

.noticia-category-badge .badge {
    background: var(--cor-terciaria);
    color: #fff;
    padding: 0.5rem 1rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 20px;
}

/* Conteúdo da Notícia */
.noticia-content {
    padding: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Meta (Data) */
.noticia-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: #6c757d;
    margin-bottom: 0.75rem;
}

.noticia-meta i {
    color: var(--cor-terciaria);
    font-size: 0.9rem;
}

/* Título */
.noticia-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--cor-titulo);
    margin-bottom: 0.75rem;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.3s ease;
}

.noticia-link:hover .noticia-title {
    color: var(--cor-primaria);
}

/* Resumo */
.noticia-excerpt {
    font-size: 0.9rem;
    color: #6c757d;
    margin-bottom: 1rem;
    line-height: 1.6;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Link "Leia mais" */
.noticia-read-more {
    display: inline-flex;
    align-items: center;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--cor-primaria);
    margin-top: auto;
    transition: all 0.3s ease;
}

.noticia-link:hover .noticia-read-more {
    color: var(--cor-secundaria);
}

.noticia-link:hover .noticia-read-more i {
    transform: translateX(5px);
}

.noticia-read-more i {
    transition: transform 0.3s ease;
}

/* ========================================
   RESPONSIVIDADE - NOTÍCIAS RELACIONADAS
   ======================================== */

/* Tablets */
@media (max-width: 991px) {
    .noticia-card {
        border-radius: 10px;
    }

    .noticia-content {
        padding: 1.25rem;
    }

    .noticia-title {
        font-size: 1rem;
    }

    .noticia-excerpt {
        font-size: 0.85rem;
    }

    .noticia-placeholder i {
        font-size: 3.5rem;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .noticia-card {
        border-radius: 8px;
    }

    .noticia-content {
        padding: 1rem;
    }

    .noticia-title {
        font-size: 0.95rem;
        -webkit-line-clamp: 3;
        line-clamp: 3;
    }

    .noticia-excerpt {
        font-size: 0.8rem;
        -webkit-line-clamp: 2;
        line-clamp: 2;
    }

    .noticia-meta {
        font-size: 0.8rem;
    }

    .noticia-read-more {
        font-size: 0.85rem;
    }

    .noticia-category-badge .badge {
        font-size: 0.7rem;
        padding: 0.4rem 0.8rem;
    }

    .noticia-placeholder i {
        font-size: 3rem;
    }
}

/* Mobile Pequeno */
@media (max-width: 575px) {
    .noticia-image-wrapper {
        aspect-ratio: 16/9;
    }

    .noticia-content {
        padding: 0.875rem;
    }

    .noticia-title {
        font-size: 0.9rem;
    }

    .noticia-excerpt {
        font-size: 0.75rem;
    }

    .noticia-category-badge {
        top: 0.75rem;
        left: 0.75rem;
    }

    .noticia-placeholder i {
        font-size: 2.5rem;
    }
}

/* ============================================
   EQUIPE - ESCOLA DO LEGISLATIVO
   ============================================ */

/* Container principal */
.equipe-escola .membro-card .card {
    min-height: 380px;
    display: flex;
    flex-direction: column;
}

.equipe-escola .membro-card .card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Efeitos de hover nos cards */
.equipe-escola .hover-lift {
    transition: all 0.3s ease;
}

.equipe-escola .hover-lift:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15) !important;
}

.equipe-escola .hover-lift:hover .avatar-circle {
    transform: scale(1.05);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

/* Wrapper do avatar */
.equipe-escola .card-avatar-wrapper {
    padding-top: 1.5rem;
    padding-bottom: 1rem;
}

/* Avatar base */
.equipe-escola .avatar-circle {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
}

/* Avatar Masculino */
.equipe-escola .avatar-masculino {
    background: linear-gradient(135deg, var(--cor-primaria), var(--cor-primaria)dd);
    border: 4px solid var(--cor-primaria);
}

/* Avatar Feminino */
.equipe-escola .avatar-feminino {
    background: linear-gradient(135deg, var(--cor-secundaria), var(--cor-secundaria)dd);
    border: 4px solid var(--cor-secundaria);
}

/* Ícone dentro do avatar */
.equipe-escola .avatar-circle i {
    font-size: 4rem;
}

/* Títulos e textos */
.equipe-escola .card-title {
    font-size: 1.1rem;
    line-height: 1.3;
    color: var(--cor-primaria);
    min-height: 2.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.equipe-escola .card-subtitle {
    font-size: 0.9rem;
    min-height: 1.4rem;
}

/* Introdução */
.equipe-escola .intro-text {
    padding: 2rem 0;
    border-bottom: 2px solid #e9ecef;
}

/* Box de contato */
.equipe-escola .contact-info-box {
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    border: 2px solid #dee2e6;
}

.equipe-escola .contact-info-box h4 {
    color: var(--cor-primaria);
}

.equipe-escola .contact-info-box .btn {
    background-color: var(--cor-primaria);
    border: none;
}

/* Footer do card */
.equipe-escola .card-footer {
    background-color: #f8f9fa;
    border-top: 1px solid #e9ecef;
}

/* ============================================
   RESPONSIVIDADE - EQUIPE
   ============================================ */

/* Tablets */
@media (max-width: 991px) {
    .equipe-escola .membro-card .card {
        min-height: 360px;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .equipe-escola .membro-card .card {
        min-height: 340px;
    }

    .equipe-escola .avatar-circle {
        width: 100px !important;
        height: 100px !important;
    }

    .equipe-escola .avatar-circle i {
        font-size: 3rem !important;
    }

    .equipe-escola .intro-text p {
        font-size: 0.95rem;
    }

    .equipe-escola .card-title {
        font-size: 1rem;
        min-height: 2.4rem;
    }
}

/* Mobile pequeno */
@media (max-width: 575px) {
    .equipe-escola .membro-card .card {
        min-height: 320px;
    }

    .equipe-escola .card-avatar-wrapper {
        padding-top: 2rem;
    }

    .equipe-escola .avatar-circle {
        width: 90px !important;
        height: 90px !important;
    }

    .equipe-escola .avatar-circle i {
        font-size: 2.5rem !important;
    }
}



/* ============================================
   MODALIDADE DE ENSINO - ESCOLA DO LEGISLATIVO
   ============================================ */

/* Título com underline */
.modalidade-ensino .title-underline {
    width: 80px;
    height: 4px;
    background-color: var(--cor-terciaria);
}

/* Texto introdutório */
.modalidade-ensino .intro-text {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #333;
}

.modalidade-ensino .intro-text p {
    margin-bottom: 1.5rem;
}

.modalidade-ensino .intro-text p:last-child {
    margin-bottom: 0;
}

/* ============================================
   RESPONSIVIDADE - MODALIDADE DE ENSINO
   ============================================ */

/* Tablets */
@media (max-width: 991px) {
    .modalidade-ensino .intro-text {
        font-size: 1rem;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .modalidade-ensino h1 {
        font-size: 1.8rem;
    }

    .modalidade-ensino .title-underline {
        width: 60px;
        height: 3px;
    }

    .modalidade-ensino .intro-text {
        font-size: 0.95rem;
        line-height: 1.6;
    }
}

/* Mobile pequeno */
@media (max-width: 575px) {
    .modalidade-ensino h1 {
        font-size: 1.5rem;
    }
}

/* ============================================
   VISITA TÉCNICA - ESCOLA DO LEGISLATIVO
   ============================================ */

/* Título com underline */
.visita-tecnica .title-underline {
    width: 80px;
    height: 4px;
    background-color: var(--cor-terciaria);
}

/* Texto introdutório */
.visita-tecnica .intro-text {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #333;
}

.visita-tecnica .intro-text p {
    margin-bottom: 1.5rem;
}

.visita-tecnica .intro-text p:last-child {
    margin-bottom: 0;
}

/* ============================================
   RESPONSIVIDADE - VISITA TÉCNICA
   ============================================ */

/* Tablets */
@media (max-width: 991px) {
    .visita-tecnica .intro-text {
        font-size: 1rem;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .visita-tecnica h1 {
        font-size: 1.8rem;
    }

    .visita-tecnica .title-underline {
        width: 60px;
        height: 3px;
    }

    .visita-tecnica .intro-text {
        font-size: 0.95rem;
        line-height: 1.6;
    }
}

/* Mobile pequeno */
@media (max-width: 575px) {
    .visita-tecnica h1 {
        font-size: 1.5rem;
    }
}

/* YouTube Grid (bloco youtube-videos.php) — estilos scoped */
.youtube-grid .youtube-card {
    overflow: visible;

}

.youtube-grid .yv-thumb {
    width: 100%;
    display: block;
    overflow: hidden;
    background: #000;
    position: relative;
    /* fallback para navegadores sem support ao aspect-ratio */
    /* 16:9 fallback */
}

/* primary: usar aspect-ratio quando disponível para thumb ser alta */
.youtube-grid .yv-thumb {
    aspect-ratio: 4/3;
    min-height: 160px;
}

@media (min-width: 768px) {
    .youtube-grid .yv-thumb {
        min-height: 220px;
    }
}

@media (min-width: 1400px) {
    .youtube-grid .yv-thumb {
        min-height: 300px;
    }
}

.youtube-grid .yv-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

figure.card.youtube-card.youtube-card-small {
    margin: 0;
}

.youtube-grid .yv-play {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: rgba(255, 165, 0, 0.95);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    pointer-events: none;
}

.youtube-grid .yv-thumb .bi-play-fill {
    font-size: 2rem;
    color: #000;
}

.youtube-grid .yv-player {
    width: 100%;
    display: block;
    border-radius: 8px;
    overflow: hidden;
    background: #000;
    position: relative;
    aspect-ratio: 16/9;
}

.youtube-grid .yv-player iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.youtube-grid .yv-player.loading::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 40px;
    height: 40px;
    margin-left: -20px;
    margin-top: -20px;
    border-radius: 50%;
    border: 4px solid rgba(255, 255, 255, 0.2);
    border-top-color: rgba(255, 255, 255, 0.9);
    animation: yv-spin 1s linear infinite;
    z-index: 10;
}

@keyframes yv-spin {
    to {
        transform: rotate(360deg);
    }
}

/* acessibilidade: foco visível */
.youtube-grid .yv-thumb:focus {
    outline: 2px solid rgba(0, 123, 255, 0.5);
    outline-offset: 3px;
}

/* título do vídeo no card */
.youtube-grid .card-body {
    padding-top: 0.75rem;
}

.youtube-grid .card-title {
    font-size: 0.95rem;
}

/* YouTube Grid - Layout principal + thumbnails */
.youtube-grid .youtube-card-main .yv-thumb {
    aspect-ratio: 16/9;
    min-height: 280px;
}

.youtube-grid .youtube-card-main .yv-play {
    width: 90px;
    height: 90px;
}

.youtube-grid .youtube-card-main .yv-thumb .bi-play-fill {
    font-size: 2.5rem;
}

.youtube-grid .youtube-card-small .yv-thumb {
    aspect-ratio: 16/9;
    min-height: 120px;
}

.youtube-grid .youtube-card-small .yv-play {
    width: 50px;
    height: 50px;
}

.youtube-grid .youtube-card-small .yv-thumb .bi-play-fill {
    font-size: 1.25rem;
}

@media (min-width: 768px) {
    .youtube-grid .youtube-card-main .yv-thumb {
        min-height: 360px;
    }

    .youtube-grid .youtube-card-small .yv-thumb {
        min-height: 140px;
    }
}

@media (min-width: 1200px) {
    .youtube-grid .youtube-card-main .yv-thumb {
        min-height: 350px;
    }

    .youtube-grid .youtube-card-small .yv-thumb {
        min-height: 170px;
    }
}

/* YouTube Grid - Placeholder para vídeos não disponíveis */
.youtube-grid .youtube-card-placeholder {
    opacity: 0.6;
    cursor: default;
}

.youtube-grid .youtube-card-placeholder .yv-thumb {
    cursor: default;
}

.youtube-grid .youtube-card-placeholder .yv-thumb img {
    filter: grayscale(30%);
}

/* ============================================
   Social icons (notas-socials.php)
   ============================================ */
.social-container .social-btn {
    width: 88px;
    height: 88px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    padding: 0;
}

.social-container .social-btn svg,
.social-container .social-btn img,
.social-container .social-btn i {
    width: 44px;
    height: 44px;
    font-size: 44px;
    display: block;
}

@media (max-width: 575px) {
    .social-container .social-btn {
        width: 72px;
        height: 72px;
    }

    .social-container .social-btn svg,
    .social-container .social-btn img,
    .social-container .social-btn i {
        width: 32px;
        height: 32px;
        font-size: 32px;
    }
}

/* ============================================
   Footer - correções responsivas (menu em linha)
   ============================================ */
@media (max-width: 991px) {
    .footer-bottom .footer-navigation {
        display: flex !important;
        justify-content: center;
        padding: 0.25rem 0;
    }

    .footer-bottom .footer-navigation .footer-menu {
        flex-direction: row !important;
        gap: 0.5rem;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
    }

    .footer-bottom .footer-navigation .footer-menu .nav-link {
        padding: 0.25rem 0.5rem;
        color: #fff;
    }
}

/* Garantir contraste e aparência do menu do rodapé (todas resoluções) */
.footer-bottom .footer-navigation .nav-link {
    color: #fff !important;
}

.footer-bottom .footer-navigation .nav-link:hover {
    color: rgba(255, 255, 255, 0.9) !important;
    text-decoration: underline;
}

/* Gallery grid */
.cmm-gallery .gallery-title {
    color: var(--cor-primaria);
    font-weight: 700;
    font-size: 1.75rem;
    margin-bottom: 1.5rem;
    position: relative;
    padding-bottom: 0.75rem;
}

.cmm-gallery .gallery-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 3px;
    background: var(--cor-primaria);
    border-radius: 2px;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.gallery-thumb {
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    aspect-ratio: 1;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.gallery-thumb::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
    border-radius: 12px;
}

.gallery-thumb:hover::before {
    opacity: 1;
}

.gallery-thumb:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
}

.gallery-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 12px;
    transition: transform 0.3s ease;
}

.gallery-thumb:hover img {
    transform: scale(1.05);
}

/* Responsivo - 3 colunas em tablets grandes */
@media (max-width: 1200px) {
    .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
    }
}

/* Responsivo - 2 colunas em tablets */
@media (max-width: 768px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
}

/* Responsivo - 1 coluna em mobile */
@media (max-width: 480px) {
    .gallery-grid {
        grid-template-columns: repeat(1, 1fr);
        gap: 10px;
    }

    .cmm-gallery .gallery-title {
        font-size: 1.5rem;
    }
}

/* Modal */
.cmm-gallery-modal {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.6);
    z-index: 999999;
}

.cmm-gallery-modal[aria-hidden="false"] {
    display: flex;
}

.cmm-gallery-modal .g-viewer {
    position: relative;
    max-width: 1100px;
    width: calc(100% - 40px);
    max-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cmm-gallery-modal .g-image {
    max-width: 100%;
    max-height: 80vh;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
}

.cmm-gallery-modal .g-caption {
    margin-top: 10px;
    color: #e6eef0;
    text-align: center;
    font-size: 14px;
}

.cmm-gallery-modal button.g-close,
.cmm-gallery-modal button.g-prev,
.cmm-gallery-modal button.g-next {
    position: absolute;
    background: var(--cor-primaria);
    color: #fff;
    border: 0;
    padding: 10px 12px;
    border-radius: 8px;
    cursor: pointer;
    opacity: 0.95;
}

.cmm-gallery-modal .g-close {
    right: 24px;
    top: 24px;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px
}

.cmm-gallery-modal .g-prev {
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
}

.cmm-gallery-modal .g-next {
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
}

@media (max-width:480px) {

    .cmm-gallery-modal .g-prev,
    .cmm-gallery-modal .g-next {
        display: none;
    }

    .cmm-gallery-modal .g-close {
        right: 12px;
        top: 12px;
    }
}

/* Dados da notícia */
.cmm-dados-noticia {

    border-radius: 16px;
    padding: 1.75rem;
    border: 1px solid rgba(var(--cor-terciaria-rgb, 0, 0, 0), 0.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
    position: relative;
    overflow: hidden;
}

.cmm-dados-noticia::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, var(--cor-secundaria) 0%, var(--cor-primaria) 100%);
}

.cmm-dados-noticia h4 {
    color: var(--cor-primaria);
    font-weight: 700;
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cmm-dados-noticia dl {
    margin: 0;
    display: grid;
    gap: 1.25rem;
}

.cmm-dados-noticia-item {
    background: #fff;
    padding: 1rem 1.25rem;
    border-radius: 12px;
    border-left: 3px solid var(--cor-terciaria);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
    transition: all 0.3s ease;
}

.cmm-dados-noticia-item:hover {
    transform: translateX(4px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    border-left-color: var(--cor-primaria);
}

.cmm-dados-noticia dt {
    font-weight: 600;
    color: var(--cor-subtitulo);
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cmm-dados-noticia dt i {
    color: var(--cor-terciaria);
    font-size: 1rem;
}

.cmm-dados-noticia dd {
    margin: 0;
    color: var(--cor-titulo);
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 500;
}

@media (max-width: 768px) {
    .cmm-dados-noticia {
        padding: 1.25rem;
    }

    .cmm-dados-noticia h4 {
        font-size: 1.125rem;
    }

    .cmm-dados-noticia-item {
        padding: 0.875rem 1rem;
    }
}

/* Estilos específicos para Single Acervo Áudio */
.single-acervo-audio {
    background: linear-gradient(180deg, #f8f9fa 0%, #ffffff 100%);
}

.audio-thumbnail {
    aspect-ratio: 1/1;
    background: #fff;
}

.thumbnail-overlay {
    background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.05) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.audio-thumbnail:hover .thumbnail-overlay {
    opacity: 1;
}

.audio-title {
    line-height: 1.2;
}

.meta-item {
    padding: 12px 16px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.audio-description {
    color: #495057;
    line-height: 1.8;
}

.audio-player-wrapper {
    border-left: 4px solid var(--bs-primary);
}

.audio-player {
    border-radius: 8px;
    height: 54px;
}

.audio-player::-webkit-media-controls-panel {
    background-color: #fff;
}

.documento-actions .btn {
    font-weight: 500;
    font-size: 0.9375rem;
    padding: 0.5rem 1.25rem;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.documento-actions .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.audio-content {
    border-left: 4px solid var(--bs-primary);
}

.content-text {
    line-height: 1.8;
    color: #495057;
}

.content-text p {
    margin-bottom: 1rem;
}

.post-navigation a {
    transition: all 0.3s ease;
    border: 1px solid transparent;
}

.post-navigation a:hover {
    border-color: var(--bs-primary);
    background: #f8f9fa;
    transform: translateX(5px);
}

.nav-link-prev:hover {
    transform: translateX(-5px) !important;
}

.hover-lift {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15) !important;
}

.transition {
    transition: all 0.3s ease;
}

/* Responsividade */
@media (max-width: 768px) {
    .audio-title {
        font-size: 1.75rem;
    }

    .audio-meta {
        flex-direction: column;
    }

    .meta-item {
        width: 100%;
    }

    .documento-actions {
        flex-direction: column;
    }

    .documento-actions .btn {
        width: 100%;
    }
}

/* Filtro */
.filter-card {
    background: #fff;
    padding: 1.5rem;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.filter-card .form-label {
    color: var(--cor-primaria);
    margin-bottom: 0.75rem;
    font-size: 1rem;
}

.filter-card .form-select {
    border-radius: 8px;
    border: 2px solid #e0e0e0;
    transition: all 0.3s ease;
}

.filter-card .form-select:focus {
    border-color: var(--cor-primaria);
    box-shadow: 0 0 0 0.2rem rgba(var(--cor-primaria-rgb), 0.15);
}

/* Cards de Estatísticas */
.stat-card {
    background: #fff;
    padding: 1.5rem;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    display: flex;
    align-items: center;
    gap: 1rem;
    transition: all 0.3s ease;
    border-left: 4px solid;
}

.stat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
}

.stat-card.stat-primary {
    border-left-color: var(--cor-primaria);
}

.stat-card.stat-success {
    border-left-color: #28a745;
}

.stat-card.stat-info {
    border-left-color: #17a2b8;
}

.stat-card.stat-warning {
    border-left-color: #ffc107;
}

.stat-icon {
    width: 60px;
    height: 60px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    flex-shrink: 0;
}

.stat-primary .stat-icon {
    background: rgba(0, 142, 183, 0.1);
    color: var(--cor-primaria);
}

.stat-success .stat-icon {
    background: rgba(40, 167, 69, 0.1);
    color: #28a745;
}

.stat-info .stat-icon {
    background: rgba(23, 162, 184, 0.1);
    color: #17a2b8;
}

.stat-warning .stat-icon {
    background: rgba(255, 193, 7, 0.1);
    color: #ffc107;
}

.stat-content {
    flex: 1;
}

.stat-label {
    font-size: 0.875rem;
    color: #666;
    margin-bottom: 0.25rem;
    font-weight: 500;
}

.stat-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: #333;
    line-height: 1;
}

/* Cards de Gráficos */
.chart-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    transition: all 0.3s ease;
}

.chart-card:hover {
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
}

.chart-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 2px solid #f0f0f0;
    background: var(--cor-primaria);
}

.chart-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: #fff;
}

.chart-body {
    padding: 1.5rem;
    position: relative;
    height: 320px;
}

/* Card de Comentários */
.comments-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.comments-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 2px solid #f0f0f0;
    background: var(--cor-primaria);
}

.comments-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: #fff;
}

.comments-body {
    padding: 1.5rem;
}

.table {
    margin-bottom: 0;
}

.table thead th {
    background: #f8f9fa;
    color: var(--cor-primaria);
    font-weight: 600;
    border-bottom: 2px solid var(--cor-primaria);
    padding: 1rem;
}

.table tbody td {
    padding: 1rem;
    vertical-align: middle;
}

.table tbody tr:hover {
    background: #f8f9fa;
}

/* Badge de Satisfação */
.badge-satisfacao {
    padding: 0.5rem 1rem;
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.875rem;
}

/* Paginação */
.pagination-container .pagination {
    gap: 0.25rem;
}

.pagination-container .page-link {
    border-radius: 8px;
    border: none;
    color: var(--cor-primaria);
    padding: 0.5rem 0.875rem;
    transition: all 0.3s ease;
}

.pagination-container .page-link:hover {
    background-color: var(--cor-primaria);
    color: #fff;
}

.pagination-container .page-item.active .page-link {
    background-color: var(--cor-primaria);
    color: #fff;
}

.pagination-container .page-item.disabled .page-link {
    color: #999;
    background-color: transparent;
}

/* Loading Overlay */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.9);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.loading-overlay.show {
    display: flex;
}

.loading-overlay .spinner-border {
    width: 3rem;
    height: 3rem;
}

/* Responsividade */
@media (max-width: 768px) {
    .stat-card {
        padding: 1.25rem;
    }

    .stat-icon {
        width: 50px;
        height: 50px;
        font-size: 1.5rem;
    }

    .stat-value {
        font-size: 1.5rem;
    }

    .chart-body {
        padding: 1rem;
        height: 280px;
    }

    .table {
        font-size: 0.875rem;
    }

    .table thead th,
    .table tbody td {
        padding: 0.75rem 0.5rem;
    }
}

@media (max-width: 576px) {
    .stat-card {
        padding: 1rem;
    }

    .stat-icon {
        width: 45px;
        height: 45px;
        font-size: 1.25rem;
    }

    .stat-label {
        font-size: 0.8rem;
    }

    .stat-value {
        font-size: 1.25rem;
    }

    .chart-header,
    .comments-header {
        padding: 1rem;
    }

    .chart-title,
    .comments-title {
        font-size: 1rem;
    }

    .chart-body {
        height: 250px;
    }
}
.text-legislatura{
    font-size: 18px;
}