/*
Theme Name: Diversa 2 - v5
Theme URI: http://example.com/diversa2
Author: Your Name
Author URI: http://example.com
Description: WordPress Theme based on Diversa 2 Design System.
Version: 1.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: diversa2v5
*/

*,
*::before,
*::after {
    box-sizing: border-box;
}

body.menu-open {
    overflow: hidden !important;
    height: 100% !important;
    height: 100dvh !important;
    width: 100% !important;
}

body {
    margin: 0;
    padding: 0;
    /* overflow-x: hidden; -- Removido para identificar problemas reais de layout conforme DESIGN.md */
    overflow-y: auto;
    font-family: var(--font-primary);
    font-size: var(--font-size-body);
    line-height: 1.6;
    padding-top: var(--header-height);
}

h1 {
    font-size: var(--font-size-h1);
}

h2 {
    font-size: var(--font-size-h2);
}

h3 {
    font-size: var(--font-size-h3);
}

h4 {
    font-size: var(--font-size-h4);
}

h5 {
    font-size: var(--font-size-h5);
}

h6 {
    font-size: var(--font-size-h6);
}

html {
    overflow-y: scroll;
    /* Garante que a barra vertical esteja sempre presente */
    scroll-behavior: smooth;
}

/* Aumenta o respiro do topo quando o header quebra em duas linhas (1281â€“1360px) */
@media (max-width: 1360px) and (min-width: 1281px) {
    :root {
        --header-height: 13.125rem;
        /* 210px */
    }
}

:root {
    /* Grid System */
    --grid-columns: 12;
    --grid-gutter: 1.25rem;
    /* 20px */
    --container-max-width: 120rem;
    /* 1920px */

    /* Spacing (Fluid: escala entre mobile e desktop) */
    --spacing-xs: clamp(0.5rem, 1vw, 0.625rem);
    /* 8px -> 10px */
    --spacing-s: clamp(0.9375rem, 2vw, 1.25rem);
    /* 15px -> 20px */
    --spacing-m: clamp(1.25rem, 3vw, 1.875rem);
    /* 20px -> 30px */
    --spacing-l: clamp(2.5rem, 5vw, 3.75rem);
    /* 40px -> 60px */
    --spacing-xl: clamp(3.75rem, 8vw, 7.5rem);
    /* 60px -> 120px */

    /* Typography (Fluid: clamp(min, preferred, max)) */
    --font-primary: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    --font-size-h1: calc(clamp(2rem, 5vw, 3rem) * var(--font-scale, 1));
    --font-size-h2: calc(clamp(1.75rem, 4vw, 2.25rem) * var(--font-scale, 1));
    --font-size-h3: calc(clamp(1.5rem, 3vw, 1.75rem) * var(--font-scale, 1));
    --font-size-h4: calc(clamp(1.25rem, 2.5vw, 1.5rem) * var(--font-scale, 1));
    --font-size-h5: calc(clamp(1.125rem, 2vw, 1.25rem) * var(--font-scale, 1));
    --font-size-h6: calc(1.125rem * var(--font-scale, 1));
    --font-size-hero-btn: calc(clamp(1.5rem, 4vw, 2.25rem) * var(--font-scale, 1));
    --font-size-body: calc(1.125rem * var(--font-scale, 1));
    --font-size-small: calc(1.125rem * var(--font-scale, 1));

    --color-text-dark: rgba(51, 51, 51, 1);
    --color-text-body: rgba(83, 83, 83, 1);

    /* Divider Settings */
    --divider-height: 0.0625rem;
    /* 1px */
    --divider-opacity: 0.3;

    /* Colors (from Design System PDF) */
    --color-primary: #D0202A;
    --color-secondary: #4A5568;
    --color-error: #DC585F;
    --color-text-muted: #77808E;
    --color-accent-1: #C5A065;
    --color-teal: #008080;
    --color-accent-2: #D4B88C;
    --color-teal-light: #40A0A0;
    --color-navy: #1B365D;
    --color-burgundy: #800020;
    --color-blue-gray: #4A5568;
    --color-wine: #A04058;
    --color-black: #191919;
    --color-gray-dark: #535353;
    --color-hero-bg: rgba(230, 230, 230, 1);
    --color-text-body: rgba(83, 83, 83, 1);
    --color-white: rgba(255, 255, 255, 1);

    /* Variable Colors (Toggleable) */
    --header-top-bg: #191919;
    --header-top-text: #ffffff;
    --header-main-bg: #ffffff;
    --header-main-text: #191919;
    --footer-bg: var(--color-black);
    --footer-text: #ffffff;

    --header-height: 9.0625rem;
    /* 145px */

    /* Layout Helpers */
    --grid-column-width: calc((100% - (var(--grid-gutter) * (var(--grid-columns) - 1))) / var(--grid-columns));
}

/* Tier 4K: Ajuste de escala para telas de ultra-alta resoluÃ§Ã£o (>= 2560px) */
@media (min-width: 2560px) {
    :root {
        --container-max-width: 160rem;
        /* 2560px */
        --font-size-h1: calc(clamp(3rem, 6vw, 5rem) * var(--font-scale, 1));
        --font-size-h2: calc(clamp(2.5rem, 5vw, 4rem) * var(--font-scale, 1));
        --spacing-xl: clamp(7.5rem, 10vw, 12rem);
        --spacing-l: clamp(4rem, 6vw, 6rem);
    }
}

body.dark-mode {
    background-color: rgba(25, 25, 25, 1);
    color: rgba(255, 255, 255, 1);
    --header-top-bg: rgba(255, 255, 255, 1);
    --header-top-text: rgba(25, 25, 25, 1);
    --header-main-bg: rgba(25, 25, 25, 1);
    --header-main-text: rgba(255, 255, 255, 1);
    --footer-bg: rgba(255, 255, 255, 1);
    --footer-text: rgba(25, 25, 25, 1);

    --color-text-dark: rgba(255, 255, 255, 1);
    --color-text-body: rgba(230, 230, 230, 1);
    --color-hero-bg: rgba(40, 40, 40, 1);
    --color-white: rgba(25, 25, 25, 1);
    --color-black: rgba(255, 255, 255, 1);
}

/* Dark mode toggle as button (accessibility: correct role, aria-pressed) */
button.dark-mode-toggle {
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

body.dark-mode .dark-mode-toggle {
    color: rgba(25, 25, 25, 1);
}

body.dark-mode .hero-button {
    color: rgba(25, 25, 25, 1);
}

/* Ajustes de Ã­cones sociais no modo dark */
body.dark-mode .header-social-search li:not(.search-item)>a {
    background-color: #ffffff;
    border: 2px solid #ffffff;
    color: #191919;
}

body.dark-mode .header-social-search li:not(.search-item)>span {
    background-color: #ffffff;
    border: 2px solid #ffffff;
    color: #191919;
}

/* Ajustes de Ã­cones sociais no modo dark (RodapÃ©) */
body.dark-mode .site-footer .social-icons li>a,
body.dark-mode .site-footer .social-icons li>span {
    background-color: #191919 !important;
    border: 2px solid #191919 !important;
    color: #ffffff !important;
}

body.dark-mode .site-footer .social-icons li>a .diversa2-icon-svg,
body.dark-mode .site-footer .social-icons li>span .diversa2-icon-svg {
    fill: #ffffff !important;
}

body.dark-mode .site-footer .social-icons li>a:hover,
body.dark-mode .site-footer .social-icons li>span:hover {
    background-color: #ffffff !important;
    border: 2px solid #191919 !important;
    color: #191919 !important;
    opacity: 1;
}

body.dark-mode .site-footer .social-icons li>a:hover .diversa2-icon-svg,
body.dark-mode .site-footer .social-icons li>span:hover .diversa2-icon-svg {
    fill: #191919 !important;
}

body.dark-mode .header-social-search li:not(.search-item)>a:hover,
body.dark-mode .header-social-search li:not(.search-item)>span:hover {
    background-color: #191919 !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
    opacity: 1;
}

body.dark-mode .search-item a.search-btn {
    background-color: #ffffff;
    color: #191919 !important;
}

section {
    scroll-margin-top: var(--header-height);
}

/* Base Grid Layout Utility */
.container {
    max-width: var(--container-max-width);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--grid-gutter);
    padding-right: var(--grid-gutter);
}

.container .container {
    padding-left: 0;
    padding-right: 0;
    max-width: none;
}

.grid-row {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns), 1fr);
    column-gap: var(--grid-gutter);
    row-gap: var(--grid-gutter);
}

.align-items-center {
    align-items: center;
}

/* Responsive Grid Columns */
.col-1 {
    grid-column: span 1;
}

.col-2 {
    grid-column: span 2;
}

.col-3 {
    grid-column: span 3;
}

.col-4 {
    grid-column: span 4;
}

.col-5 {
    grid-column: span 5;
}

.col-6 {
    grid-column: span 6;
}

.col-7 {
    grid-column: span 7;
}

.col-8 {
    grid-column: span 8;
}

.col-9 {
    grid-column: span 9;
}

.col-10 {
    grid-column: span 10;
}

.col-11 {
    grid-column: span 11;
}

.col-12 {
    grid-column: span 12;
}

/* Helpers de alinhamento no Grid */
.col-push-right {
    grid-column: 8 / span 5;
    /* Garante que comece na 8 e ocupe exatamente 5 colunas atÃ© o final (12) */
}

/**
 * Header Styles
 */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
}

/* Ajuste para barra do WordPress */
.admin-bar .site-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar .site-header {
        top: 46px;
    }
}

/* Logo com tamanho controlado para nÃ£o desalinhar o header (Ã­cones ~44px) */
.site-branding {
    display: flex;
    align-items: center;
}

.site-branding .custom-logo {
    max-height: 48px;
    max-width: 180px;
    width: auto;
    height: auto;
    display: block;
    object-fit: contain;
}

.top-bar {
    background-color: var(--header-top-bg);
    color: var(--header-top-text);
    padding: 0.75rem 0;
    /* Aumentado de 10px para 12px */
    font-size: calc(1rem * var(--font-scale, 1));
    /* Aumentado de 14px para 16px */
}

.top-bar-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Painel: esquerda = Acessibilidade + Vlibras, direita = A- A+ Modo Escuro */
.accessibility-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.25rem;
    width: 100%;
}

.top-bar a,
.accessibility-controls button {
    color: var(--header-top-text);
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    margin-right: 15px;
}

/* Estado visual do botÃ£o Modo escuro quando ativo (dark mode) */
button.dark-mode-toggle[aria-pressed="true"] {
    outline: 2px solid currentColor;
    outline-offset: 2px;
    border-radius: 2px;
}

/* Contraste da top-bar em dark mode: fundo claro, texto escuro jÃ¡ definido em body.dark-mode */
body.dark-mode .top-bar {
    background-color: var(--header-top-bg);
    color: var(--header-top-text);
}

/* BotÃµes A-/A+: estado "no limite" (nÃ£o pode diminuir/aumentar mais) */
#font-decrease,
#font-increase {
    font-size: calc(1.3rem * var(--font-scale, 1));
    /* Aumentado consideravelmente */
    font-weight: 500;
}

body.font-scale-80 #font-decrease {
    opacity: 0.5;
    cursor: not-allowed;
}

body.font-scale-150 #font-increase {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Destaque opcional do tamanho atual: ambos com borda sutil quando em escala padrÃ£o */
body.font-scale-100 #font-decrease,
body.font-scale-100 #font-increase {
    font-weight: 700;
}

/* Toggle de acessibilidade (agrupa links + controles em mobile) - especificidade alta para vencer cache/plugins */
#masthead .top-bar .accessibility-toggle,
.accessibility-toggle {
    display: none;
    /* VisÃ­vel apenas em mobile */
    color: var(--header-top-text);
    text-decoration: none;
    background: none;
    border: 1px solid transparent;
    cursor: pointer;
    margin-right: 15px;
    padding: 0.375rem 0.75rem;
    font: inherit;
}

#masthead .top-bar .accessibility-toggle:focus,
.accessibility-toggle:focus {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

/* Garantia extra: nunca mostrar o toggle em telas grandes */
@media (min-width: 769px) {

    #masthead .top-bar .accessibility-toggle,
    .accessibility-toggle {
        display: none !important;
    }
}

/* Top-bar em telas menores */
@media (max-width: 768px) {
    .top-bar {
        padding: 0.625rem 0;
        font-size: calc(0.9375rem * var(--font-scale, 1));
        /* Aumentado de 13px para 15px */
    }

    .top-bar-content {
        flex-wrap: wrap;
        gap: 0.5rem;
        justify-content: space-between;
        align-items: flex-start;
    }

    /* Mostrar toggle e esconder o painel inteiro por padrÃ£o em mobile */
    #masthead .top-bar .accessibility-toggle,
    .accessibility-toggle {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        min-height: 2.75rem;
        /* â‰¥44px */
        border-color: rgba(255, 255, 255, 0.4);
        border-radius: 2px;
    }

    .top-bar .accessibility-panel {
        display: none !important;
        width: 100%;
        margin-top: 0.25rem;
    }

    /* Quando aberto, mostramos sÃ³ o painel (links + controles dentro dele) */
    .top-bar.accessibility-open .accessibility-panel {
        display: flex !important;
    }

    .top-bar a,
    .accessibility-controls button {
        margin-right: 0.5rem;
        padding: 0.375rem 0.5rem;
        min-height: 2.75rem;
        /* ~44px touch target */
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .top-bar {
        padding: 0.375rem 0;
        font-size: calc(0.75rem * var(--font-scale, 1));
        /* 12px */
    }

    .top-bar-content {
        flex-direction: column;
        align-items: stretch;
        gap: 0.375rem;
    }

    .top-bar .accessibility-panel {
        justify-content: center;
    }

    .top-bar a,
    .accessibility-controls button {
        margin-right: 0;
    }
}

.main-header {
    background-color: var(--header-main-bg);
    color: var(--header-main-text);
    padding: 20px 0;
}

.main-header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    flex-wrap: wrap;
    /* Permite quebra de linha quando o conteÃºdo (como fonte ampliada) cresce */
}

/* Alinhamento Ã  direita para telas grandes (desktop) */
@media (min-width: 1601px) {
    .main-navigation {
        margin-left: auto;
        margin-right: 0;
        /* Totalmente colado nas redes sociais */
        flex: 0 1 auto;
        /* Permite encolher se necessÃ¡rio */
        min-width: 0;
        order: 1;
    }

    .header-social-nav {
        order: 2;
    }

    #primary-menu {
        justify-content: flex-end;
    }

    /* Se o menu e redes sociais nÃ£o caberem na mesma linha do logo (zoom alto ou muitos itens),
       garante que a quebra ocorra de forma organizada */
    body.font-zoomed .main-navigation {
        flex: 0 0 100%;
        order: 2;
        margin-top: 0.5rem;
        justify-content: flex-end;
    }

    body.font-zoomed .header-social-nav {
        order: 1;
        margin-left: auto;
    }

    /* Caso o menu exceda a largura mesmo sem zoom explÃ­cito, forÃ§amos a quebra organizada */
    .main-header-content {
        row-gap: 15px;
    }

    /* Reduz padding social para aproximar do menu quando quebra */
    body.font-zoomed .header-social-search {
        padding-top: 10px;
        padding-bottom: 5px;
    }

    /* Em Full HD, se o menu for muito extenso, reduz ligeiramente o padding para caber na linha */
    #primary-menu li a {
        padding: 0.75rem 1rem;
        /* Reduz de 1.25rem para 1rem */
    }
}

/* Ajuste para telas entre 1181px e 1360px (Layout em duas linhas) - REMOVIDO PARA DAR LUGAR AO HAMBURGUER */
/* @media (max-width: 1360px) and (min-width: 1181px) {
    .main-header-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .main-navigation {
        width: 100%;
        justify-content: space-between;
    }

    .site-branding {
        margin-bottom: 5px;
    }
} */

/* 1281px atÃ© 1600px: linha 1 = logo + redes/busca (mesma linha), linha 2 = menu */
@media (max-width: 1600px) and (min-width: 1281px) {
    .main-header-content {
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
    }

    .site-branding {
        order: 0;
        flex: 0 0 auto;
    }

    /* Redes/busca ao lado do logo na primeira linha */
    .header-social-nav {
        order: 1;
        flex: 0 0 auto;
        display: flex;
        align-items: center;
    }

    /* Menu em linha prÃ³pria (segunda linha) */
    .main-navigation {
        order: 2;
        flex: 0 0 100%;
        width: 100%;
        margin-top: 0.75rem;
        display: flex;
        flex-wrap: wrap;
        justify-content: left;
        align-items: center;
    }

    /* Reduz espaÃ§amento quando zoom estÃ¡ ativo nesta resoluÃ§Ã£o */
    body.font-zoomed .main-navigation {
        margin-top: 0;
    }

    body.font-zoomed .header-social-search {
        padding-top: 10px;
        padding-bottom: 5px;
    }

    #primary-menu {
        display: flex;
        flex-wrap: wrap;
        gap: 2px;
    }

    #primary-menu li a {
        font-size: calc(1.375rem * var(--font-scale, 1));
        padding: 0.75rem 1rem;
    }
}

.main-navigation {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Nav dedicada a redes sociais e busca (irmÃ£ de .main-navigation) */
.header-social-nav {
    display: flex;
    align-items: center;
}

.main-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    /* Permite que os itens do menu quebrem linha se necessÃ¡rio */
}

#primary-menu {
    gap: 2px;
    /* EspaÃ§o de 2px entre cada item de menu principal */
    flex-wrap: wrap;
}

/* Redes sociais e busca */
.header-social-search {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    /* 10px */
    padding: 20px 10px;
}

.header-social-search li {
    display: flex;
    align-items: center;
}

/* Cores especÃ­ficas do menu via classes */
#primary-menu li a {
    display: block;
    padding: 0.75rem clamp(0.5rem, 1vw, 1.25rem);
    /* 12px 20px - Reduz dinamicamente em telas menores */
    color: #ffffff;
    text-decoration: none;
    font-weight: bold;
    text-transform: uppercase;
    font-size: calc(1.375rem * var(--font-scale, 1));
    /* 22px */
    transition: opacity 0.3s ease;
    white-space: normal;
    /* Permite quebra de linha se necessÃ¡rio para evitar transbordo */
    text-align: center;
}

#primary-menu li a:hover {
    opacity: 0.9;
}

/* Classes de cores mapeadas */
.menu-home {
    border: 2px solid #191919;
}

.menu-home a {
    background-color: #191919;
    color: #ffffff !important;
}

.menu-home a:hover {
    background-color: #ffffff !important;
    color: #191919 !important;
    border: 2px solid #191919;
}

.menu-institucional a {
    background-color: var(--color-primary);
    color: #ffffff !important;
    border: 2px solid var(--color-primary);
}

.menu-institucional a:hover {
    background-color: #ffffff !important;
    color: var(--color-primary) !important;
    border: 2px solid var(--color-primary);
}

.menu-atuacao a {
    background-color: var(--color-blue-gray);
    color: #ffffff !important;
    border: 2px solid var(--color-blue-gray);
}

.menu-atuacao a:hover {
    background-color: #ffffff !important;
    color: var(--color-blue-gray) !important;
    border: 2px solid var(--color-blue-gray);
}

.menu-transparencia a {
    background-color: var(--color-accent-1);
    color: #ffffff !important;
    border: 2px solid var(--color-accent-1);
}

.menu-transparencia a:hover {
    background-color: #ffffff !important;
    color: var(--color-accent-1) !important;
    border: 2px solid var(--color-accent-1);
}

.menu-parcerias a {
    background-color: var(--color-teal);
    color: #ffffff !important;
    border: 2px solid var(--color-teal);
}

.menu-parcerias a:hover {
    background-color: #ffffff !important;
    color: var(--color-teal) !important;
    border: 2px solid var(--color-teal);
}

.menu-imprensa a {
    background-color: var(--color-navy);
    color: #ffffff !important;
    border: 2px solid var(--color-navy);
}

.menu-imprensa a:hover {
    background-color: #ffffff !important;
    color: var(--color-navy) !important;
    border: 2px solid var(--color-navy);
}

.menu-contato a {
    background-color: var(--color-burgundy);
    color: #ffffff !important;
    border: 2px solid var(--color-burgundy);
}

.menu-contato a:hover {
    background-color: #ffffff !important;
    color: var(--color-burgundy) !important;
    border: 2px solid var(--color-burgundy);
}

/* IndicaÃ§Ã£o "vocÃª estÃ¡ aqui" no menu principal (.current-menu-item = WP; .active = compatibilidade) */
#primary-menu li.current-menu-item a,
#primary-menu li.active a {
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.95);
    outline: 2px solid rgba(255, 255, 255, 0.95);
    outline-offset: 2px;
}

/* Ajustes para o Modo Escuro */
body.dark-mode .menu-home {
    border: 2px solid #fff !important;
}

body.dark-mode .menu-home a {
    background-color: #ffffff !important;
    color: #191919 !important;
    border: none !important;
}

body.dark-mode .menu-home a:hover {
    background-color: #191919 !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
}

/* Current no modo escuro: contraste sobre fundos claros/escuros do header */
body.dark-mode #primary-menu li.current-menu-item a,
body.dark-mode #primary-menu li.active a {
    box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.85);
    outline-color: rgba(0, 0, 0, 0.85);
}

body.dark-mode .menu-institucional a:hover {
    background-color: #191919 !important;
    color: var(--color-primary) !important;
    border: 2px solid var(--color-primary) !important;
}

body.dark-mode .menu-atuacao a:hover {
    background-color: #191919 !important;
    color: var(--color-blue-gray) !important;
    border: 2px solid var(--color-blue-gray) !important;
}

body.dark-mode .menu-transparencia a:hover {
    background-color: #191919 !important;
    color: var(--color-accent-1) !important;
    border: 2px solid var(--color-accent-1) !important;
}

body.dark-mode .menu-parcerias a:hover {
    background-color: #191919 !important;
    color: var(--color-teal) !important;
    border: 2px solid var(--color-teal) !important;
}

body.dark-mode .menu-imprensa a:hover {
    background-color: #191919 !important;
    color: var(--color-navy) !important;
    border: 2px solid var(--color-navy) !important;
}

body.dark-mode .menu-contato a:hover {
    background-color: #191919 !important;
    color: var(--color-burgundy) !important;
    border: 2px solid var(--color-burgundy) !important;
}

body.dark-mode .search-item a.search-btn {
    background-color: #ffffff !important;
    color: #191919 !important;
}

body.dark-mode .search-item a.search-btn:hover {
    background-color: #191919 !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
}

/* CÃ­rculo: aplica ao link e ao span (quando URL nÃ£o configurada no Customizer) */

.header-social-search li:not(.search-item)>a {
    color: #ffffff;
    background-color: #191919;
    border: 2px solid #191919;
    width: calc(2.75rem * var(--font-scale, 1));
    /* Escala com A+/A- */
    height: calc(2.75rem * var(--font-scale, 1));
    /* Escala com A+/A- */
    border-radius: 50%;
    font-size: calc(1.3rem * var(--font-scale, 1));
    /* 18px */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.header-social-search li:not(.search-item)>span {
    color: #ffffff;
    background-color: #191919;
    border: 2px solid #191919;
    width: calc(2.75rem * var(--font-scale, 1));
    /* Escala com A+/A- */
    height: calc(2.75rem * var(--font-scale, 1));
    /* Escala com A+/A- */
    border-radius: 50%;
    font-size: calc(1.3rem * var(--font-scale, 1));
    /* 18px */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.header-social-search li:not(.search-item)>a:hover,
.header-social-search li:not(.search-item)>span:hover {
    background-color: #ffffff !important;
    color: #191919 !important;
    border: 2px solid #191919 !important;
    opacity: 1;
}

.search-item a.search-btn {
    background-color: #191919;
    color: #ffffff !important;
    border: 2px solid #191919;
    padding: 0.75rem 1.875rem !important;
    /* 12px 30px */
    font-size: calc(1.375rem * var(--font-scale, 1)) !important;
    /* 14px */
    font-weight: bold;
    text-decoration: none;
}

.search-item a.search-btn:hover {
    background-color: #ffffff !important;
    color: #191919 !important;
    border: 2px solid #191919;
}

/* 
 * Hamburger Menu Toggle
 */
.menu-toggle {
    display: none;
    background: none;
    border: 2px solid #191919;
    padding: 0.5rem;
    cursor: pointer;
    z-index: 10001;
    min-width: 3.75rem;
    min-height: 3.75rem;
    align-items: center;
    justify-content: center;
    position: relative;
    font-size: 2rem;
    /* Tamanho do Ã­cone */
    color: #191919;
}

/* Estado ativo do hamburger (X) */
.main-navigation.is-active .menu-toggle {
    color: #191919;
}

body.dark-mode .menu-toggle {
    border-color: #ffffff;
    color: #ffffff;
}

body.dark-mode .main-navigation.is-active .menu-toggle {
    color: #ffffff;
}

/* Ãcones SVG inline (substituem Font Awesome) */
.diversa2-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
}

.diversa2-icon svg,
.diversa2-icon .diversa2-icon-svg {
    width: 100%;
    height: 100%;
    font-size: 100px;
    fill: currentColor;
    flex-shrink: 0;
}

.diversa2-icon-hidden {
    opacity: 0;
    pointer-events: none;
}

/* Menu toggle: dois Ã­cones empilhados (bars / xmark) */
.menu-toggle .diversa2-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 1em;
    height: 1em;
}

/* Redes sociais (header e footer): Ã­cone preenche o cÃ­rculo */
.header-social-search li:not(.search-item) .diversa2-icon,
.social-icons li .diversa2-icon {
    width: 1.25em;
    height: 1.25em;
}

/* Removidos estilos antigos de span do hamburguer */

/* ForÃ§a o menu hambÃºrguer se o conteÃºdo transbordar (zoom em telas 1281â€“1600px) */
@media (max-width: 1600px) and (min-width: 1281px) {
    body.font-zoomed .menu-toggle {
        display: flex;
    }

    body.font-zoomed #primary-menu {
        display: none;
    }

    body.font-zoomed .main-navigation.is-active #primary-menu {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: var(--header-height);
        left: 0;
        width: 100%;
        height: calc(100vh - var(--header-height));
        background-color: #fff;
        z-index: 9999;
        overflow-y: auto;
        padding: 0 0 120px 0;
        margin: 0;
    }

    body.dark-mode.font-zoomed .main-navigation.is-active #primary-menu {
        background-color: #1a1a1a;
    }
}

/* Menu Mobile (hambÃºrguer) â€” a partir de 1280px para ficar bom em 1181px e telas menores */
@media (max-width: 1280px) {
    :root {
        --header-height: 8.125rem;
        /* 130px */
    }

    .main-header-content {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100%;
    }

    .site-branding {
        flex: 0 0 auto;
    }

    .main-navigation {
        flex: 0 0 auto;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 15px;
        order: 3;
    }

    .menu-toggle {
        display: flex;
    }

    .header-social-nav {
        display: flex;
        align-items: center;
        order: 2;
        width: 100%;
        justify-content: right;
    }

    .header-social-search {
        display: flex;
        gap: 10px;
    }

    .header-social-search .social-icon {
        display: flex;
    }

    #primary-menu {
        display: none;
    }

    /* Menu aberto: drawer em lista vertical, quebra de linha natural */
    .main-navigation.is-active #primary-menu {
        display: block;
        /* Mais robusto para scroll vertical do que flex */
        position: fixed;
        top: var(--header-height);
        left: 0;
        right: 0;
        bottom: 0;
        width: 100vw;
        background: rgba(255, 255, 255, .95);
        /* Quase opaco para facilitar leitura */
        z-index: 11000;
        /* Garante que fique acima de quase tudo */
        overflow-y: auto !important;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        padding: 0 0 100px 0;
        /* Muita folga no final para nÃ£o ter erro */
        margin: 0;
        animation: slideDown 0.3s ease-out forwards;
        box-sizing: border-box;
    }

    body.dark-mode .main-navigation.is-active #primary-menu {
        background-color: #1a1a1a;
    }

    #primary-menu li {
        width: 100%;
        flex-shrink: 0;
    }

    #primary-menu li a {
        display: block;
        width: 100%;
        box-sizing: border-box;
        padding: 1rem 1.25rem;
        color: #fff;
        font-weight: bold;
        font-size: calc(1.125rem * var(--font-scale, 1));
        text-align: left;
        text-transform: uppercase;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        white-space: normal;
        word-wrap: break-word;
    }

    /* Cores dos itens no mobile */
    .menu-home {
        border: 2px solid #191919;
    }

    .menu-home a {
        background-color: #191919;
    }

    .menu-institucional a {
        background-color: var(--color-primary);
    }

    .menu-atuacao a {
        background-color: var(--color-blue-gray);
    }

    .menu-transparencia a {
        background-color: var(--color-accent-1);
    }

    .menu-parcerias a {
        background-color: var(--color-teal);
    }

    .menu-imprensa a {
        background-color: var(--color-navy);
    }

    .menu-contato a {
        background-color: var(--color-burgundy);
    }

    /* Abaixo de 700px: redes/busca saem do header e sÃ³ aparecem no drawer do menu */
    @media (max-width: 700px) {
        .header-social-nav {
            display: none !important;
        }

        .main-navigation.is-active~.header-social-nav {
            display: flex !important;
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: 10000;
            background-color: #ffffff;
            border-top: 1px solid rgba(0, 0, 0, 0.1);
            padding: 10px 16px;
            justify-content: center;
            align-items: center;
            box-sizing: border-box;
            box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
            min-height: 60px;
        }

        .main-navigation.is-active~.header-social-nav .header-social-search {
            display: flex;
            gap: 12px;
            margin: 0;
            padding: 0;
            align-items: center;
            justify-content: center;
            width: 100%;
            list-style: none;
        }

        /* Estilo unificado para Redes Sociais e Busca no Mobile */
        .main-navigation.is-active~.header-social-nav .social-icon a,
        .main-navigation.is-active~.header-social-nav .social-icon span,
        .main-navigation.is-active~.header-social-nav .search-item a.search-btn {
            display: flex;
            align-items: center;
            justify-content: center;
            background-color: #191919 !important;
            color: #ffffff !important;
            border: 2px solid #191919 !important;
            box-sizing: border-box;
            text-decoration: none;
            transition: all 0.3s ease;
        }

        /* Hover no Mobile (combinando com o desktop) */
        .main-navigation.is-active~.header-social-nav .social-icon a:hover,
        .main-navigation.is-active~.header-social-nav .social-icon span:hover,
        .main-navigation.is-active~.header-social-nav .search-item a.search-btn:hover {
            background-color: #ffffff !important;
            color: #191919 !important;
            border: 2px solid #191919 !important;
        }

        /* Redes Sociais: CÃ­rculos e Ã­cones com bastante "respiro" interno */
        .main-navigation.is-active~.header-social-nav .social-icon a,
        .main-navigation.is-active~.header-social-nav .social-icon span {
            width: 44px !important;
            height: 44px !important;
            border-radius: 50%;
        }

        .main-navigation.is-active~.header-social-nav .social-icon .diversa2-icon {
            font-size: 30px !important;
            /* Restaurado para o tamanho perfeito */
            width: 30px !important;
            height: 30px !important;
            display: flex !important;
        }

        /* BotÃ£o Busca: Mais harmÃ´nico com os cÃ­rculos */
        .main-navigation.is-active~.header-social-nav .search-item a.search-btn {
            height: 44px !important;
            padding: 0 20px !important;
            font-size: 13px !important;
            font-weight: bold;
            text-transform: uppercase;
        }

        /* Controle de Escala (A+): Crescimento para melhor visibilidade */
        body.font-zoomed .main-navigation.is-active~.header-social-nav {
            min-height: 76px;
        }

        body.font-zoomed .main-navigation.is-active~.header-social-nav .social-icon a,
        body.font-zoomed .main-navigation.is-active~.header-social-nav .social-icon span {
            width: 52px !important;
            height: 52px !important;
        }

        body.font-zoomed .main-navigation.is-active~.header-social-nav .social-icon .diversa2-icon {
            font-size: 26px !important;
            /* Ãcone maior para acompanhar o zoom */
            width: 26px !important;
            height: 26px !important;
        }

        body.font-zoomed .main-navigation.is-active~.header-social-nav .search-item a.search-btn {
            height: 52px !important;
            font-size: 16px !important;
            border-radius: 26px;
        }

        body.dark-mode .main-navigation.is-active~.header-social-nav {
            background-color: #1a1a1a;
            border-top-color: rgba(255, 255, 255, 0.1);
        }

        body.dark-mode .main-navigation.is-active~.header-social-nav .social-icon a,
        body.dark-mode .main-navigation.is-active~.header-social-nav .social-icon span,
        body.dark-mode .main-navigation.is-active~.header-social-nav .search-item a.search-btn {
            background-color: #ffffff !important;
            color: #1a1a1a !important;
            border: 2px solid #ffffff !important;
        }

        /* Hover no Mobile (Modo Dark) */
        body.dark-mode .main-navigation.is-active~.header-social-nav .social-icon a:hover,
        body.dark-mode .main-navigation.is-active~.header-social-nav .social-icon span:hover,
        body.dark-mode .main-navigation.is-active~.header-social-nav .search-item a.search-btn:hover {
            background-color: #1a1a1a !important;
            color: #ffffff !important;
            border: 2px solid #ffffff !important;
        }

        /* Menu com altura que deixa espaÃ§o para a barra fixa no rodapÃ© */
        .main-navigation.is-active #primary-menu {
            bottom: 60px;
            padding-bottom: 40px;
        }

        body.font-zoomed .main-navigation.is-active #primary-menu {
            bottom: 76px;
            padding-bottom: 40px;
        }

        /* Restaurar tamanhos mais confortÃ¡veis para os links do menu principal */
        #primary-menu li a {
            padding: 0.85rem 1.25rem;
            font-size: calc(1.05rem * var(--font-scale, 1));
        }

        /* Ajuste extra para quando o zoom de fonte (A+) estÃ¡ ativo (menos agressivo) */
        body.font-zoomed #primary-menu li a {
            padding: 0.7rem 1.25rem;
            font-size: calc(0.95rem * var(--font-scale, 1));
        }
    }

    @keyframes slideDown {
        from {
            opacity: 0;
        }

        to {
            opacity: 1;
        }
    }
}

/**
 * Footer Styles
 */
.site-footer {
    background-color: var(--footer-bg);
    color: var(--footer-text);
    width: 100%;
    margin: 0;
    padding: 50px 0 0 0;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: auto;
}

.site-footer p,
.site-footer a,
.site-footer h2,
.site-footer h3,
.site-footer span {
    color: var(--footer-text);
}

.footer-logo {
    margin-bottom: 1.25rem;
    line-height: 1;
    margin-top: 0;
    display: block;
}

.footer-logo img {
    max-width: 250px;
    /* Ajuste conforme necessÃ¡rio */
    height: auto;
}

body.dark-mode .footer-logo .logo-light {
    display: none;
}

body:not(.dark-mode) .footer-logo .logo-dark {
    display: none;
}

.footer-flex-container {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.footer-top-row {
    width: 100%;
    margin-bottom: 25px;
}

.footer-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-grow: 1;
    width: 100%;
}

.footer-sitemap {
    flex-grow: 1;
}

.footer-menu-columns {
    display: flex;
    gap: 80px;
}

.footer-menu-column {
    width: 200px;
}

.footer-menu-title {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
    line-height: 1;
    margin-top: 0;
}

.footer-menu-title a {
    color: inherit;
    text-decoration: none;
}

.footer-menu-title a:hover {
    text-decoration: underline;
}

/* Cores especÃ­ficas dos tÃ­tulos */
.site-footer .footer-institucional {
    color: var(--color-primary) !important;
}

.site-footer .footer-atuacao {
    color: var(--color-blue-gray) !important;
}

.site-footer .footer-transparencia {
    color: var(--color-accent-1) !important;
}

.site-footer .footer-parcerias {
    color: var(--color-teal) !important;
}

.site-footer .footer-imprensa {
    color: var(--color-navy) !important;
}

.site-footer .footer-contato {
    color: var(--color-wine) !important;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
}

.footer-links li {
    margin-bottom: 6px;
}

.footer-links li a {
    text-decoration: none;
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    font-weight: 400;
    transition: opacity 0.3s ease;
}

.footer-links li a:hover {
    text-decoration: underline;
}

/* Cores dos links */
.site-footer .footer-links-red li a {
    color: var(--color-primary) !important;
}

.site-footer .footer-links-wine li a {
    color: var(--color-wine) !important;
}

.site-footer .footer-links-gray li a {
    color: #77808E !important;
}

.site-footer .footer-links-gold li a {
    color: #D4B88C !important;
}

.site-footer .footer-links-teal li a {
    color: #40A0A0 !important;
}

.site-footer .footer-links-blue li a {
    color: #546886 !important;
}

.site-footer .footer-links-white li a {
    color: #ffffff !important;
}

.footer-contact-info {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-align: left;
}

.footer-social-label,
.footer-label {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 1.125rem (18px) */
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 0.9375rem;
    display: block;
    color: inherit;
}

.social-icons {
    display: flex;
    gap: 0.625rem;
    /* 10px */
    list-style: none;
    padding: 0;
    margin: 0 0 1.5625rem 0;
    /* 25px */
}

.social-icons li>a,
.social-icons li>span {
    color: #191919;
    background-color: #ffffff;
    border: 2px solid #ffffff;
    /* Borda invisÃ­vel para manter tamanho */
    width: calc(2.75rem * var(--font-scale, 1));
    /* Escala com A+/A- */
    height: calc(2.75rem * var(--font-scale, 1));
    /* Escala com A+/A- */
    border-radius: 50%;
    font-size: calc(1.3rem * var(--font-scale, 1));
    /* 18px */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.social-icons li>a .diversa2-icon-svg,
.social-icons li>span .diversa2-icon-svg {
    fill: #191919 !important;
}

.social-icons li>a:hover,
.social-icons li>span:hover {
    background-color: #191919 !important;
    border: 2px solid #ffffff !important;
    color: #ffffff !important;
    opacity: 1;
}

.social-icons li>a:hover .diversa2-icon-svg,
.social-icons li>span:hover .diversa2-icon-svg {
    fill: #ffffff !important;
}

.footer-address p {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    font-weight: 400;
    line-height: 1.5;
    color: inherit;
    margin: 0;
}

.footer-copyright {
    width: 100%;
    font-size: calc(14px * var(--font-scale, 1));
    color: inherit;
    padding-top: 10px;
    padding-bottom: 20px;
}

.footer-main-title {
    font-size: calc(1.5rem * var(--font-scale, 1));
    /* 24px */
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 1.5625rem;
    /* 25px */
    color: inherit;
    line-height: 1;
}

.align-with-institucional {
    margin-top: 0;
}

.footer-group {
    margin-bottom: 25px;
    /* Reduzido */
}

.footer-group h3 {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
    /* 12px */
    line-height: 1;
    margin-top: 0;
}

.footer-group ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-group ul li {
    margin-bottom: 6px;
    /* Reduzido */
}

.footer-group ul li a {
    color: inherit;
    text-decoration: none;
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    font-weight: 400;
    transition: opacity 0.3s ease;
}

.footer-group ul li a:hover {
    opacity: 0.7;
}

/* Cores dos grupos no footer */
.group-institucional h3,
.group-institucional ul li a {
    color: var(--color-primary);
}

.group-atuacao h3,
.group-atuacao ul li a {
    color: var(--color-secondary);
}

.group-transparencia h3,
.group-transparencia ul li a {
    color: var(--color-accent-1);
}

.group-parcerias h3,
.group-parcerias ul li a {
    color: var(--color-teal);
}

.group-imprensa h3,
.group-imprensa ul li a {
    color: var(--color-blue-gray);
}

.group-contato h3,
.group-contato ul li a {
    color: var(--color-burgundy);
}

.group-acessibilidade h3 {
    color: #ffffff;
}

/* Coluna de Branding/Social */
.footer-logo {
    margin-bottom: 20px;
    line-height: 1;
    margin-top: 0;
    display: block;
}

.footer-social,
.footer-address {
    margin-bottom: 25px;
    /* Reduzido */
}

.footer-social p,
.footer-address p {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 0.625rem;
    /* 10px */
}

.footer-social-icons {
    display: flex;
    gap: 20px;
}

.footer-social-icons a {
    color: #ffffff;
    font-size: calc(2rem * var(--font-scale, 1));
    /* 32px */
}

.footer-address p:not(:first-child) {
    font-size: calc(18px * var(--font-scale, 1));
    font-weight: 400;
    text-transform: none;
    line-height: 1.5;
}

.footer-copyright a {
    color: inherit;
    text-decoration: underline;
}

/* Barra Colorida Final */
.footer-color-bar {
    display: flex;
    height: 10px;
    width: 100%;
}

.footer-color-bar span {
    flex: 1;
}

.bg-primary {
    background-color: var(--color-primary);
}

.bg-blue-gray {
    background-color: var(--color-blue-gray);
}

.bg-accent-1 {
    background-color: var(--color-accent-1);
}

.bg-teal {
    background-color: var(--color-teal);
}

.bg-navy {
    background-color: var(--color-navy);
}

.bg-burgundy {
    background-color: var(--color-burgundy);
}

.bg-wine {
    background-color: var(--color-wine);
}

/* Responsive Grid Columns & General Mobile Adaptations */
@media (max-width: 1200px) {
    .footer-menu-columns {
        gap: 40px;
    }
}

@media (max-width: 1180px) {
    .footer-content {
        flex-direction: column;
        gap: 40px;
    }

    .footer-branding-column {
        width: 100%;
        max-width: none;
    }

    .footer-menu-columns {
        flex-wrap: wrap;
    }
}

@media (max-width: 1024px) {

    .col-3,
    .col-4 {
        grid-column: span 6;
    }

    .col-9 {
        grid-column: span 12;
    }
}

@media (max-width: 768px) {
    .grid-row {
        grid-template-columns: repeat(6, 1fr);
    }

    .col-1,
    .col-2,
    .col-3,
    .col-4,
    .col-5,
    .col-6,
    .col-7,
    .col-8,
    .col-9,
    .col-10,
    .col-11,
    .col-12 {
        grid-column: span 6;
    }

    .grid-reverse {
        direction: ltr;
        /* Desfaz reversÃ£o no mobile para leitura natural */
    }

    .footer-menu-column {
        width: calc(50% - 20px);
    }

    .releases-search-wrapper {
        justify-content: flex-start !important;
        margin-top: 10px;
    }
}

@media (max-width: 480px) {
    .grid-row {
        grid-template-columns: 1fr;
    }

    .col-1,
    .col-2,
    .col-3,
    .col-4,
    .col-5,
    .col-6,
    .col-7,
    .col-8,
    .col-9,
    .col-10,
    .col-11,
    .col-12 {
        grid-column: span 1;
    }

    .footer-menu-column {
        width: 100%;
    }

    .footer-copyright {
        text-align: center;
    }
}

/* 
 * Contact Page
 */
.contact-form-wrapper {
    background-color: #D9D9D9;
    width: 100%;
    min-height: 31.25rem;
    /* 500px */
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
}

/* FormulÃ¡rio de contato: layout e estados */
form.diversa-contact-form.contact-form-wrapper {
    flex-direction: column;
    align-items: stretch;
    padding: var(--spacing-m);
    color: var(--color-text-dark);
}

.contact-form-inner {
    max-width: 32rem;
    margin: 0 auto;
    width: 100%;
}

.diversa-contact-form .form-row {
    margin-bottom: 1.25rem;
}

.diversa-contact-form .form-row label {
    display: block;
    font-weight: 700;
    margin-bottom: 0.375rem;
}

.diversa-contact-form .form-row input,
.diversa-contact-form .form-row textarea {
    width: 100%;
    padding: 0.5rem 0.75rem;
    font-size: calc(1.125rem * var(--font-scale, 1));
    border: 2px solid var(--color-gray-dark, #535353);
    font-family: var(--font-primary);
}

.diversa-contact-form .form-row input:focus,
.diversa-contact-form .form-row textarea:focus {
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}

.diversa-contact-form .form-actions {
    margin-top: 1.5rem;
    margin-bottom: 0;
}

.diversa-contact-form .contact-submit.is-loading {
    pointer-events: none;
    opacity: 0.85;
}

.form-feedback {
    margin-top: 1.25rem;
    padding: 1rem 1.25rem;
    font-size: calc(1.125rem * var(--font-scale, 1));
    font-weight: 600;
    border-radius: 4px;
    min-height: 3rem;
    display: flex;
    align-items: center;
}

.form-feedback.success {
    background-color: rgba(0, 128, 0, 0.12);
    color: #0a5c0a;
    border: 1px solid #0a5c0a;
}

.form-feedback.error {
    background-color: rgba(220, 88, 95, 0.15);
    color: var(--color-error);
    border: 1px solid var(--color-error);
}

.contact-info-col {
    display: flex;
    flex-direction: column;

    padding-left: 10px;
}

.contact-info-item .title-lg {
    margin-bottom: 10px;
    text-transform: uppercase;
}

.contact-info-item p,
.contact-info-item a {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    line-height: 1.5;
    color: var(--color-text-body);
    text-decoration: none;
    display: block;
}

.contact-info-item a:hover {
    color: var(--color-burgundy);
}

.contact-emails {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;
}

.email-group {
    display: flex;
    flex-direction: column;
}

.email-label {
    font-family: var(--font-primary);
    font-weight: 400;
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    line-height: 2rem;
    /* 32px */
    letter-spacing: 0;
    text-decoration: underline;
    color: var(--color-text-dark);
    text-transform: uppercase;
}

.contact-emails a {
    font-family: var(--font-primary);
    font-weight: 400;
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    line-height: 2rem;
    /* 32px */
    letter-spacing: 0;
    color: rgba(128, 0, 32, 1);
    text-decoration: none;
}

.contact-emails a:hover {
    text-decoration: underline;
}

@media (max-width: 992px) {
    .contact-info-col {
        padding-left: 0;
        margin-top: 40px;
    }
}

/* 
 * Accordion & Search (Imprensa/Releases)
 */
.page-imprensa .section-content .grid-row.align-items-center,
.page-imprensa .section-clipping .grid-row.align-items-center {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.page-imprensa .section-content .grid-row.align-items-center>.col-6,
.page-imprensa .section-clipping .grid-row.align-items-center>.col-6 {
    flex: 1 1 auto;
    width: auto;
    max-width: 100%;
}

@media (max-width: 992px) {

    .page-imprensa .section-content .grid-row.align-items-center,
    .page-imprensa .section-clipping .grid-row.align-items-center {
        flex-direction: column;
        align-items: flex-start;
    }

    .page-imprensa .section-content .grid-row.align-items-center>.col-6,
    .page-imprensa .section-clipping .grid-row.align-items-center>.col-6 {
        width: 100%;
        margin-bottom: 10px;
    }

    .page-imprensa .releases-search-wrapper {
        justify-content: flex-start;
    }
}

.releases-search-wrapper {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 20px;
}

.releases-search-form {
    display: flex;
    width: 100%;
    max-width: 400px;
    gap: 10px;
    flex-shrink: 1;
}

.releases-search-input {
    flex-grow: 1;
    min-width: 0;
    /* Permite que o input encolha abaixo do tamanho padrÃ£o do navegador */
    background-color: #E6E6E6;
    border: none;
    padding: 0.625rem 0.9375rem;
    /* 10px 15px */
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    color: #333;
    border: 2px solid rgba(112, 112, 112, 1);
}

.releases-search-input:hover {
    border: 2px solid rgba(51, 51, 51, 1);
}

.releases-search-btn {
    background-color: #191919;
    color: #fff;
    border: 3px solid #191919;
    padding: 10px 15px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    transition: none !important;
}

.releases-search-btn:hover {
    background-color: #fff;
    color: #191919;
    border: 3px solid #191919;
}

.releases-search-btn .diversa2-icon {
    width: 20px;
    height: 20px;
}

body.dark-mode .releases-search-btn {
    background-color: #ffffff;
    color: #191919;
    border: 3px solid #ffffff;
}

body.dark-mode .releases-search-btn:hover {
    background-color: #191919;
    color: #ffffff;
    border: 3px solid #ffffff;
}

body.dark-mode .diversa2-icon svg,
body.dark-mode .diversa2-icon .diversa2-icon-svg {
    width: 100%;
    height: 100%;
    font-size: 100px;
    fill: currentColor;
    flex-shrink: 0;
}

.accordion-item {
    margin-bottom: 2px;
}

/* Reset for button.accordion-header (accessibility: focusable, keyboard operable) */
button.accordion-header {
    width: 100%;
    border: none;
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    text-align: left;
}

.accordion-header {
    background-color: #535353;
    /* Default grey for closed */
    color: #fff;
    padding: 0.9375rem 1.25rem;
    /* 15px 20px */
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: calc(1.5rem * var(--font-scale, 1));
    /* 24px */
    font-weight: 700;
    transition: background-color 0.3s ease;
}

.accordion-item.active .accordion-header,
.accordion-content.active+.accordion-header,
/* This won't work because content is after header */
.accordion-header.active {
    background-color: var(--color-navy);
}

/* Let's fix the logic for active header in JS or use a class on the parent */

.accordion-content {
    max-height: 0;
    overflow: hidden;
    background-color: #E6E6E6;
    border: 1px solid #E6E6E6;
    border-top: none;
    transition: max-height 0.35s ease-out;
}

.accordion-content.active {
    max-height: 3000px;
    transition: max-height 0.4s ease-in;
}

.release-row {
    display: grid;
    grid-template-columns: minmax(80px, 100px) 1fr minmax(200px, 350px);
    gap: 20px;
    padding: 20px;
    border-bottom: 1px solid #E6E6E6;
    align-items: center;
}

@media (max-width: 1100px) {
    .release-row {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 15px;
    }
}

.release-row:nth-child(even) {
    background-color: #F2F2F2;
}

.release-row:last-child {
    border-bottom: none;
}

.release-date-col h5,
.release-context-col h5 {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    font-weight: 700;
    margin: 0 0 0.625rem 0;
    /* 10px */
    color: #191919;
}

.release-date,
.release-context {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    color: #333;
    margin: 0;
}

.release-actions {
    display: flex;
    gap: 15px;
}

.btn-release-dark {
    background-color: #333333;
    color: #ffffff;
    padding: 0.875rem 1.25rem;
    /* Increased for accessibility */
    text-decoration: none;
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
    flex: 1;
    transition: background-color 0.3s ease;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn-release-dark:hover {
    background-color: var(--color-navy);
}

@media (max-width: 992px) {
    .release-row {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .release-actions {
        flex-direction: column;
    }

    .accordion-header {
        font-size: calc(20px * var(--font-scale, 1));
    }
}

/* Accessibility Focus States */
a:focus,
button:focus {
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}

/* Para o link BUSCA do header, nÃ£o usar o vermelho padrÃ£o de foco */
body.dark-mode .search-item a.search-btn:focus {
    outline: 3px solid #ffffff;
    outline-offset: 2px;
}

.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--color-primary);
    color: white;
    padding: 8px;
    z-index: 100;
    transition: top 0.3s;
}

.skip-link:focus {
    top: 0;
}

/* Visually hidden: for screen readers only (labels, descriptions). clip-path avoids deprecated clip. */
.visually-hidden,
.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* When focusable, reveal on focus (e.g. skip link content; skip-link has its own .skip-link:focus) */
.visually-hidden:focus,
.visually-hidden:focus-visible,
.screen-reader-text:focus,
.screen-reader-text:focus-visible {
    clip-path: none !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    white-space: normal !important;
}

/**
 * Hero Section & Typography
 */
.hero {
    background: var(--color-hero-bg);
    height: 550px;
    /* Altura fixa para garantir que todas as pÃ¡ginas tenham o mesmo tamanho */
    text-align: center;
    position: relative;
    /* Para o overlay */
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    /* Padding apenas lateral para seguranÃ§a */
    box-sizing: border-box;
}

@media (max-width: 768px) {
    .hero {
        height: 400px;
        /* Altura fixa consistente no mobile */
        padding: 0 15px;
    }
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.hero-content {
    position: relative;
    z-index: 2;
    max-width: 1000px;
    margin: 0 auto;
}

/* Overlays */
.hero-overlay-none {
    display: none;
}

.hero-overlay-black-20 {
    background-color: rgba(0, 0, 0, 0.2);
}

.hero-overlay-black-40 {
    background-color: rgba(0, 0, 0, 0.4);
}

.hero-overlay-black-60 {
    background-color: rgba(0, 0, 0, 0.6);
}

.hero-overlay-gradient-base {
    background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.8) 100%);
}

.hero-overlay-gradient-top {
    background: linear-gradient(to top, transparent 0%, rgba(0, 0, 0, 0.8) 100%);
}

.hero-overlay-blue-overlay {
    background-color: rgba(27, 54, 93, 0.6);
}

/* --color-navy com alpha */

.hero-title {
    font-family: var(--font-primary);
    color: var(--color-text-dark);
    font-size: var(--font-size-h1);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 20px;
    letter-spacing: 0px;
    text-align: center;
}

.hero-text {
    font-family: var(--font-primary);
    color: var(--color-text-dark);
    font-size: calc(clamp(20px, 3vw, 28px) * var(--font-scale, 1));
    font-weight: 400;
    line-height: 1.3;
    margin-bottom: 40px;
    letter-spacing: 0px;
    text-align: center;
}

.hero-button {
    display: inline-block;
    background-color: var(--color-black);
    color: #ffffff;
    font-family: var(--font-primary);
    font-size: var(--font-size-hero-btn);
    font-weight: 700;
    line-height: 1.2;
    padding: clamp(15px, 2vw, 20px) clamp(30px, 5vw, 60px);
    text-decoration: none;
    text-transform: uppercase;
    text-align: center;
    transition: all 0.3s ease;
}

.hero-button:hover {
    background-color: var(--color-primary);
}

.site-content-padding {
    padding-top: var(--spacing-m);
    padding-bottom: var(--spacing-m);
}

/* Standard spacing between consecutive content sections */
.site-content-padding+.site-content-padding {
    margin-top: 20px;
}

/**
 * Reusable Content Classes
 */
.section-white {
    background-color: var(--color-white);
}

/* SeÃ§Ã£o de resultados da busca: oculta por padrÃ£o, exibida sÃ³ quando houver pesquisa */
.section-results.section-results--hidden {
    display: none;
}

.section-black {
    background-color: #000;
    color: #fff;
}

.section-black .section-footer-nav a {
    color: #fff;
}

.section-black .section-divider {
    background-color: rgba(255, 255, 255, 0.3);
}

.section-black .pagination-custom,
.section-black .pagination-custom a,
.section-black .pagination-custom span {
    color: #fff;
}

/* AtuaÃ§Ã£o Project Cards */
.projects-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

@media (max-width: 1366px) {
    .projects-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 1024px) {
    .projects-grid {
        grid-template-columns: 1fr;
    }
}

.project-card {
    background: #fff;
    padding: 25px;
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--page-color, rgba(74, 85, 104, 1));
}

.project-card-thumb {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #D9D9D9;
}

.project-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.project-card-content {
    flex-grow: 1;
}

.project-title {
    font-size: calc(1.5rem * var(--font-scale, 1));
    /* 24px */
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 0.3125rem;
    /* 5px */
    color: var(--color-text-dark);
}

.project-meta {
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    color: var(--color-text-body);
    /* 25px */
    display: block;
}

.project-description {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    line-height: 1.5;
    color: var(--color-text-body);
    margin-bottom: 1.5625rem;
    /* 25px */
}

.project-subtitle {
    font-size: calc(1.25rem * var(--font-scale, 1));
    /* 20px */
    font-weight: 700;
    margin: 0 0 0.625rem 0;
    /* 10px */
    color: var(--color-text-dark);
}

.project-text {
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    line-height: 1.5;
    color: var(--color-text-body);
    margin-bottom: 1.5625rem;
    /* 25px */
}

.project-button {
    background: #333;
    color: #fff;
    text-align: center;
    padding: 15px;
    text-transform: uppercase;
    font-weight: 700;
    text-decoration: none;
    margin-top: auto;
    transition: background 0.3s ease;
    display: block;
}

.project-button:hover {
    background: var(--page-color, var(--color-blue-gray));
    color: #fff;
}

/* Pagination */
.pagination-custom {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin-top: 60px;
    color: var(--color-text-dark);
    width: 100%;
    font-family: var(--font-primary);
}

.pagination-custom a,
.pagination-custom span {
    color: var(--color-text-dark);
    text-decoration: none;
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    transition: opacity 0.3s ease;
}

.pagination-custom a:hover {
    opacity: 0.7;
}

.pagination-custom .current {
    font-weight: 700;
}

/* Horizontal Project Cards (Andamento) */
.project-horizontal-card {
    display: flex;
    background: #fff;
    height: 100%;
    border: 1px solid var(--page-color, rgba(74, 85, 104, 1));
    min-width: 0;
    /* grid/flex: permite encolher abaixo do conteÃºdo intrÃ­nseco */
}

.project-horizontal-thumb {
    flex: 0 0 clamp(150px, 25%, 262px);
    width: 100%;
    max-width: 262px;
    aspect-ratio: 1 / 1;
    background: #D9D9D9;
    margin: 20px;
}

.project-horizontal-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.project-horizontal-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 20px 15px 20px 15px;
    /* Ajuste para alinhar verticalmente com a margem da imagem */
    min-width: 0;
    /* coluna flex pode encolher; evita estouro do botÃ£o VISUALIZAR */
}

.project-horizontal-content .project-title {
    font-size: calc(1.75rem * var(--font-scale, 1));
    /* 28px */
    font-weight: 700;
    margin-bottom: 0.3125rem;
    /* 5px */
    color: var(--color-text-dark);
}

/* AtuaÃ§Ã£o: margem (evita tÃ­tulo largo empurrar o botÃ£o VISUALIZAR) */
.page-atuacao .project-horizontal-content .project-title {
    margin-top: 0;
    max-width: 100%;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.project-horizontal-content .project-meta {
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    color: var(--color-text-body);
    margin-bottom: 0.9375rem;
    /* 15px */
    display: block;
}

.project-horizontal-content .project-description {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    line-height: 1.4;
    color: var(--color-text-body);
    margin-bottom: 1.25rem;
    /* 20px */
}

.btn-visualizar {
    align-self: flex-end;
    margin-top: auto;
    /* Garante que o botÃ£o vÃ¡ para o fim do container */
    background: #333;
    color: #fff;
    padding: 0.75rem clamp(1rem, 5vw, 3.75rem);
    /* lateral responsiva; evita ultrapassar o card */
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    transition: background 0.3s ease;
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    text-align: center;
}

.btn-visualizar:hover {
    background: var(--page-color, var(--color-blue-gray));
    color: #fff;
}

.page-title-upper {
    font-family: var(--font-primary);
    font-weight: 700;
    font-size: var(--font-size-h1);
    line-height: 1.2;
    color: var(--color-text-dark);
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 0px;
    margin: 0;
}

.title-lg {
    font-family: var(--font-primary);
    font-weight: 700;
    font-size: var(--font-size-h1);
    line-height: 1.2;
    color: var(--color-text-dark);
    text-align: left;
    margin: 0 0 var(--spacing-s) 0;
}

.breadcrumb-text,
.subtitle-sm {
    font-family: var(--font-primary);
    font-weight: 400;
    /* Seguindo 400 conforme solicitado para Semibold */
    font-size: calc(18px * var(--font-scale, 1));
    line-height: 19px;
    color: var(--page-color, var(--color-text-dark));
    /* Usa --page-color da seÃ§Ã£o */
    text-align: left;
    text-decoration: none;
    display: inline-block;
    margin-bottom: 10px;
}

.breadcrumb-text a {
    color: inherit;
    text-decoration: none;
}

.breadcrumb-text a:hover {
    text-decoration: underline;
}

/* Segmento atual do breadcrumb (clicÃ¡vel, mantÃ©m aria-current="page") */
.breadcrumb-text a.breadcrumb-current {
    cursor: pointer;
}

.text-p {
    font-family: var(--font-primary);
    font-weight: 400;
    font-size: calc(18px * var(--font-scale, 1));
    line-height: 32px;
    color: var(--color-text-body);
    text-align: left;
}

.text-p p {
    margin-top: 0;
    /* Remove margem superior do primeiro parÃ¡grafo */
    margin-bottom: 24px;
}

.text-p p:last-child {
    margin-bottom: 0;
    /* Remove margem inferior do Ãºltimo parÃ¡grafo */
}

.image-description {
    font-family: var(--font-primary);
    font-weight: 400;
    font-size: calc(18px * var(--font-scale, 1));
    line-height: 24px;
    color: var(--color-text-body);
    text-align: left;
}

/* Tipografia adicional para TransparÃªncia */
.subtitle-md {
    font-family: var(--font-primary);
    font-weight: 700;
    font-size: calc(1.5rem * var(--font-scale, 1));
    /* 24px */
    line-height: 1.2;
    color: var(--color-text-dark);
    margin-bottom: 0.9375rem;
    /* 15px */
}

.subtitle-lg {
    font-family: var(--font-primary);
    font-weight: 700;
    font-size: calc(2rem * var(--font-scale, 1));
    /* 32px */
    line-height: 1.2;
    color: var(--color-text-dark);
}

.text-p-small {
    font-family: var(--font-primary);
    font-weight: 400;
    font-size: calc(18px * var(--font-scale, 1));
    line-height: 1.5;
    color: var(--color-text-body);
}

.text-p-small h4 {
    font-weight: 700;
    margin: 15px 0 5px 0;
    color: var(--color-text-dark);
}

h4 {
    font-family: var(--font-primary);
    font-weight: 700;
    color: var(--color-text-dark);
    margin: 0 0 15px 0;
}

/* Caixas de Dados Institucionais */
.data-info-box {
    border: 1px solid var(--page-color, #D4B88C);
    padding: 30px;
    height: 100%;
}

.data-info-box h3 {
    font-size: calc(1.5rem * var(--font-scale, 1));
    /* 24px */
    font-weight: 700;
    margin-bottom: 1.25rem;
    /* 20px */
    color: var(--color-text-dark);
}

/* Google Form Responsive Wrapper */
.google-form-wrapper {
    position: relative;
    width: 100%;
    margin: 30px 0;
}

.google-form-wrapper iframe {
    width: 100% !important;
    min-height: 800px;
    border: none;
}

/* Cards de PDF */
.pdf-card {
    display: flex;
    border: 1px solid var(--page-color, #D4B88C);
    background: #fff;
    height: 100%;
}

.pdf-card-thumb {
    flex: 0 0 clamp(150px, 25%, 262px);
    width: 100%;
    max-width: 262px;
    aspect-ratio: 1 / 1;
    background: #D9D9D9;
    margin: 20px;
}

.pdf-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pdf-card-content {
    flex: 1;
    padding: 20px 10px;
    display: flex;
    flex-direction: column;
}

.pdf-title {
    font-size: calc(1.25rem * var(--font-scale, 1));
    /* 20px */
    font-weight: 700;
    margin: 0 0 0.3125rem 0;
    /* 5px */
    color: #333;
}

.pdf-date {
    font-size: calc(14px * var(--font-scale, 1));
    color: #333;
    margin-bottom: 15px;
    display: block;
}

.pdf-description {
    font-size: calc(14px * var(--font-scale, 1));
    line-height: 1.4;
    color: #333;
    margin-bottom: 0;
}

.pdf-card .read-more-wrapper,
.project-horizontal-card .read-more-wrapper {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    margin-bottom: 20px;
}

.pdf-actions {
    display: flex;
    gap: 10px;
    margin-top: auto;
}

.btn-pdf-outline,
.btn-pdf-dark {
    flex: 1;
    text-align: center;
    padding: 0.875rem 0.625rem;
    /* Increased padding for accessibility (44px height) */
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
}

.btn-pdf-outline {
    border: 1px solid #333;
    color: #333;
}

.btn-pdf-dark {
    background: #333;
    color: #fff;
}

.btn-pdf-outline:hover {
    background: #333;
    color: #fff;
}

.btn-pdf-dark:hover {
    background: var(--color-accent-1);
}

.grid-reverse {
    direction: rtl;
}

.grid-reverse>div {
    direction: ltr;
}

/* Contratos e ConvÃªnios */
.contratos-list-wrap {
    margin-bottom: 60px;
}

.contratos-empty {
    font-size: calc(1rem * var(--font-scale, 1));
    line-height: 1.5;
    color: var(--color-text-body, #666);
    margin: 0;
}

.contratos-list {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.contrato-card {
    display: flex;
    background: #fff;
    border: 1px solid var(--page-color, #D4B88C);
    padding: 30px;
    gap: 40px;
    align-items: stretch;
    min-width: 0;
}

.contrato-info {
    flex: 2;
    min-width: 0;
}

.page-transparencia .contrato-title {
    font-size: calc(1.5rem * var(--font-scale, 1));
    font-weight: 700;
    color: #333;
    margin: 0 0 15px 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.contrato-detail strong {
    display: block;
    font-size: calc(14px * var(--font-scale, 1));
    font-weight: 700;
    color: #333;
    margin-bottom: 5px;
}

.contrato-detail p {
    font-size: calc(14px * var(--font-scale, 1));
    line-height: 1.5;
    color: #666;
    margin: 0;
}

.contrato-meta {
    flex: 1;
    display: flex;
    gap: 40px;
    align-items: flex-start;
    min-width: 0;
}

.meta-item {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.meta-label {
    font-size: calc(14px * var(--font-scale, 1));
    font-weight: 700;
    color: #333;
    margin-bottom: 5px;
}

.meta-value {
    font-size: calc(1.5rem * var(--font-scale, 1));
    font-weight: 700;
    color: #333;
    white-space: nowrap;
}

.contrato-actions {
    flex: 0 0 180px;
    display: flex;
    min-width: 0;
    align-self: stretch;
}

.contrato-actions .btn-visualizar {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #333;
    color: #fff;
    padding: 15px;
    font-size: calc(14px * var(--font-scale, 1));
    font-weight: 700;
    text-decoration: none;
    width: 100%;
    min-height: 100%;
    transition: background 0.3s ease;
    text-align: center;
}

.contrato-actions .btn-visualizar:hover {
    background: var(--page-color, #D4B88C);
    color: #fff;
}

@media (max-width: 991px) {
    .meta-value {
        white-space: normal;
    }

    .contrato-card {
        flex-direction: column;
        gap: 25px;
        padding: 20px;
    }

    .contrato-meta {
        gap: 20px;
    }

    .contrato-actions {
        flex: none;
        width: 100%;
    }

    .contrato-actions .btn-visualizar {
        min-height: 50px;
    }
}

/* Submenu de PÃ¡ginas Internas (RetÃ¢ngulos) */
.page-submenu-grid {
    display: flex;
    flex-wrap: wrap;
    /* Permitir quebra se os itens nÃ£o couberem na linha */
    width: 100%;
    min-height: 80px;
    gap: 5px;
    /* 15px de espaÃ§amento entre linhas e 2px entre colunas */
    align-items: stretch;
}

.submenu-item {
    flex: 0 0 auto;
    /* Itens agora ocupam apenas o tamanho do seu conteÃºdo */
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 15px 35px;
    /* Aumentado um pouco o padding lateral para melhor respiro */
    transition: filter 0.3s ease;
}

.submenu-item a {
    color: rgba(255, 255, 255, 1);
    text-decoration: none;
    font-family: var(--font-primary);
    font-weight: 700;
    text-transform: uppercase;
    font-size: calc(1.375rem * var(--font-scale, 1));
    /* 22px */
    line-height: 1.625rem;
    /* 26px */
    letter-spacing: 0;
    text-align: left;
    display: block;
    white-space: nowrap;
    /* Garante que o texto nÃ£o quebre, mantendo o retÃ¢ngulo Ã­ntegro */
}

/* Estilo especial para o PRIMEIRO retÃ¢ngulo (ou Ativo) */
.submenu-item:first-child a,
.submenu-item.active a {
    font-size: calc(3rem * var(--font-scale, 1));
    /* 48px */
    line-height: 3.625rem;
    /* 58px */
}

.submenu-item:hover {
    filter: brightness(90%);
}

/* Responsividade para o Submenu */
@media (max-width: 1200px) {

    .submenu-item:first-child a,
    .submenu-item.active a {
        font-size: calc(2rem * var(--font-scale, 1));
        /* 32px */
        line-height: 2.375rem;
        /* 38px */
    }

    .submenu-item a {
        font-size: calc(1.125rem * var(--font-scale, 1));
        /* 18px */
        line-height: 1.375rem;
        /* 22px */
    }
}

/* Responsividade para o Submenu â€” quebra atÃ© 1400px para evitar barra horizontal */
@media (max-width: 1400px) {
    .page-submenu-grid {
        gap: 5px;
    }

    .submenu-item {
        flex: 0 0 auto;
        width: auto;
        min-height: 60px;
        padding: 10px 20px;
    }
}

/* Em telas menores: submenu quebra (flex-wrap), retÃ¢ngulos podem ter tamanhos diferentes */
@media (max-width: 768px) {
    .page-submenu-grid {
        gap: 10px;
        /* EspaÃ§amento entre itens para reduzir toques acidentais (touch) */
        min-width: 0;
    }

    .submenu-item {
        min-height: 52px;
        /* touch target â‰¥ 44px */
        padding: 10px 12px;
        flex: 0 0 auto;
    }

    /* Reduz diferenÃ§a entre primeiro/ativo e demais na faixa 480pxâ€“768px */
    .submenu-item:first-child a,
    .submenu-item.active a {
        font-size: calc(1.25rem * var(--font-scale, 1));
        /* 20px â€” prÃ³ximo dos demais */
        line-height: 1.4;
    }

    .submenu-item a {
        font-size: calc(1.125rem * var(--font-scale, 1));
        /* 18px */
        line-height: 1.4;
        white-space: normal;
        word-wrap: break-word;
        overflow-wrap: break-word;
        display: block;
    }
}

/* Telas muito estreitas: hierarquia mais uniforme, touch targets mantidos */
@media (max-width: 600px) {
    .page-submenu-grid {
        gap: 10px;
    }

    .submenu-item:first-child a,
    .submenu-item.active a {
        font-size: calc(1.125rem * var(--font-scale, 1));
        /* 18px â€” quase igual aos demais */
        line-height: 1.4;
    }

    .submenu-item a {
        font-size: calc(1.0625rem * var(--font-scale, 1));
        /* 17px */
        line-height: 1.4;
    }
}

/* --- MOBILE: SeÃ§Ã£o de navegaÃ§Ã£o (submenu + breadcrumb) â€” todas as pÃ¡ginas --- */
@media (max-width: 768px) {
    .section-nav {
        padding-top: 1.25rem;
        /* 20px â€” reduz pt-40 no mobile */
        padding-bottom: 1rem;
        /* 16px â€” reduz pb-20 no mobile */
    }

    .section-nav .container {
        min-width: 0;
        overflow: hidden;
    }

    .section-nav .grid-row,
    .section-nav .col-12 {
        min-width: 0;
    }

    .section-nav .grid-row.mb-10 {
        margin-bottom: 0.75rem;
        /* 12px â€” espaÃ§o entre submenu e breadcrumb */
    }

    .section-nav .page-submenu-grid {
        min-height: 56px;
        /* altura mÃ­nima menor no mobile */
    }

    .section-nav .breadcrumb-text {
        margin-top: 0.25rem;
        margin-bottom: 0;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
}

@media (max-width: 480px) {
    .section-nav {
        padding-top: 1rem;
        /* 16px */
        padding-bottom: 0.75rem;
        /* 12px */
    }

    .section-nav .grid-row.mb-10 {
        margin-bottom: 0.625rem;
        /* 10px */
    }

    .section-nav .page-submenu-grid {
        gap: 10px;
    }

    .section-nav .submenu-item {
        min-height: 48px;
        /* touch target â‰¥ 44px (WCAG 2.5.5) */
        padding: 10px 14px;
    }
}

/* Grade de Parceiros e Apoiadores */
.parcerias-logos-grid {
    display: grid;
    /* Usa auto-fill para quebrar naturalmente conforme o espaÃ§o disponÃ­vel. */
    grid-template-columns: repeat(8, 1fr);
    gap: 20px;
    justify-items: start;
    /* Alinha os itens Ã  esquerda da cÃ©lula da grid */
    margin-top: 20px;
}

.parceiro-box {
    background-color: #D9D9D9;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
    margin: 0;
    /* Remove o auto para nÃ£o centralizar o box na cÃ©lula */
    overflow: hidden;
}

.parceiro-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.parceiro-link {
    display: block;
    width: 100%;
    text-decoration: none;
}

.parceiro-name {
    font-size: 0.8rem;
    font-weight: 700;
    margin-top: 10px;
    text-align: center;
    color: #000;
    text-transform: uppercase;
}

.apoiadores-pf-list {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(6, auto);
    grid-auto-columns: 1fr;
    gap: 10px 40px;
    margin-top: 20px;
}

.apoiador-pf-item {
    font-size: 1rem;
    color: #000;
}


.parceiro-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.parceiro-box:hover {
    transform: translateY(-5px);
}

/* --- RESPONSIVO DA GRADE --- */

/* Ajustes para tablets e telas mÃ©dias */
@media (max-width: 1200px) {
    .parcerias-logos-grid {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
        gap: 15px;
        /* Reduz ligeiramente o gap em telas menores */
    }
}

/* Ajustes para Mobile */
@media (max-width: 768px) {
    .parcerias-logos-grid {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        gap: 10px;
    }




    /* Ajuste de margens no mobile (por classe, nÃ£o por style inline) */
    .page-institucional .grid-row.mb-40 {
        margin-bottom: 1.5625rem !important;
        /* 25px */
    }

    .page-institucional .grid-row.mb-60 {
        margin-bottom: 1.5625rem !important;
    }
}

/* Ajuste para telas muito pequenas (Mobile Portrait) */
@media (max-width: 480px) {
    .parcerias-logos-grid {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
        gap: 10px;
    }

    .page-title-upper {
        font-size: calc(28px * var(--font-scale, 1));
        /* Ajuste manual se o clamp ainda estiver grande */
    }
}

/* NavegaÃ§Ã£o de RodapÃ© de SeÃ§Ã£o (Voltar ao Topo / Home) */
.section-footer-nav {
    display: flex;
    justify-content: space-between;
    /* Lados opostos */
    gap: 30px;
    margin-top: 40px;
    padding-bottom: 10px;
}

@media (max-width: 768px) {
    .section-footer-nav {
        justify-content: space-between;
        gap: 20px;
        flex-wrap: nowrap;
    }

    .section-footer-nav a {
        font-size: calc(14px * var(--font-scale, 1));
        white-space: nowrap;
    }
}




/* HistÃ³rico: no mobile, texto antes da imagem para leitura mais rÃ¡pida */
@media (max-width: 768px) {
    .section-history .history-block {
        display: flex;
        flex-direction: column;
    }

    .section-history .history-block .col-4 {
        order: 2;
        margin-top: 1rem;
    }

    .section-history .history-block .col-8 {
        order: 1;
    }
}

/* Breadcrumb: fonte um pouco menor em telas muito estreitas */
@media (max-width: 480px) {
    .breadcrumb-text {
        font-size: calc(0.875rem * var(--font-scale, 1));
        word-break: break-word;
    }
}

.section-footer-nav a {
    text-decoration: underline;
    font-family: var(--font-primary);
    font-weight: 700;
    font-size: calc(18px * var(--font-scale, 1));
    color: rgba(0, 0, 0, 1);
    text-transform: uppercase;
    transition: opacity 0.3s ease;
}

.section-footer-nav a:hover {
    opacity: 0.7;
}

/* Divisor de SeÃ§Ã£o 100% de largura */
.section-divider {
    display: block;
    width: 100%;
    height: var(--divider-height);
    background-color: var(--page-color, var(--color-text-dark));
    margin-top: var(--spacing-s);
    opacity: var(--divider-opacity);
}

/* Oculta o Ãºltimo divisor de cada pÃ¡gina para evitar linha Ã³rfÃ£ antes do footer */
section:last-of-type .section-divider {
    display: none !important;
}

/* =============================================================================
   Singles de detalhe â€” Imprensa, AtuaÃ§Ã£o, TransparÃªncia, Institucional
   ============================================================================= */

.single-detail-page .single-detail-breadcrumb {
    padding-top: 1.25rem !important;
    padding-bottom: 1.25rem !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

body.dark-mode .single-detail-page .single-detail-breadcrumb {
    border-bottom-color: rgba(255, 255, 255, 0.12);
}

.single-detail-page .breadcrumb-text .breadcrumb-current {
    font-weight: 700;
    opacity: 0.92;
}

.single-detail-body {
    padding-top: clamp(2rem, 4vw, 3rem);
    padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

/* Coluna Ãºnica Imprensa: largura de leitura confortÃ¡vel */
.single-detail-page .section-release-detalhe .col-12,
.single-detail-page .section-clipping-detalhe .col-12,
.single-detail-page .section-midia-kit-detalhe .col-12 {
    max-width: 48rem;
}

.single-detail-meta-line {
    margin-bottom: 0.625rem;
    font-weight: 500;
    font-family: var(--font-primary);
    font-size: calc(18px * var(--font-scale, 1));
    line-height: 1.4;
    color: var(--color-text-body);
}

.single-detail-meta-line strong {
    color: var(--color-text-dark);
    font-weight: 700;
}

.single-detail-context {
    background: #f4f4f4;
    padding: 1.25rem 1.25rem 1.25rem 1.5rem;
    border-left: 4px solid var(--page-color, var(--color-text-dark));
    margin-bottom: 1.875rem;
    border-radius: 0 4px 4px 0;
    font-family: var(--font-primary);
    font-size: calc(18px * var(--font-scale, 1));
    line-height: 1.6;
    color: var(--color-text-body);
}

.single-detail-context p {
    margin: 0 0 0.75rem 0;
}

.single-detail-context p:last-child {
    margin-bottom: 0;
}

body.dark-mode .single-detail-page .single-detail-context {
    background: rgba(255, 255, 255, 0.06);
    color: var(--color-text-body);
}

body.dark-mode .single-detail-page .single-detail-meta-line strong {
    color: #fff;
}

.single-detail-entry {
    margin-bottom: 2rem;
}

/* Imprensa singles nÃ£o usam .text-p no editor â€” alinhar Ã  tipografia .text-p */
.single-detail-page .single-detail-entry:not(.text-p) {
    font-family: var(--font-primary);
    font-size: calc(18px * var(--font-scale, 1));
    line-height: 32px;
    color: var(--color-text-body);
}

.single-detail-page .single-detail-entry:not(.text-p) p {
    margin-top: 0;
    margin-bottom: 24px;
}

.single-detail-page .single-detail-entry:not(.text-p) p:last-child {
    margin-bottom: 0;
}

.single-detail-page .single-detail-entry h2,
.single-detail-page .single-detail-entry h3,
.single-detail-page .single-detail-entry h4 {
    margin-top: 1.75rem;
    margin-bottom: 0.75rem;
    color: var(--color-text-dark);
}

.single-detail-page .single-detail-entry h2:first-child,
.single-detail-page .single-detail-entry h3:first-child,
.single-detail-page .single-detail-entry h4:first-child {
    margin-top: 0;
}

.single-detail-page .single-detail-entry a {
    color: var(--page-color, var(--color-primary));
    text-decoration: underline;
    text-underline-offset: 2px;
}

.single-detail-page .single-detail-entry a:hover {
    opacity: 0.85;
}

.single-detail-pdf-actions {
    margin-top: 0;
    padding-top: 1.75rem;
    margin-bottom: 0;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.single-detail-pdf-actions .btn-pdf-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0.75rem 1.5rem;
}

body.dark-mode .single-detail-page .single-detail-pdf-actions {
    border-top-color: rgba(255, 255, 255, 0.12);
}

.single-detail-meta-stack {
    margin-bottom: 1.75rem;
}

.single-detail-sidebar-title {
    margin-bottom: 1.25rem;
}

.single-detail-block-title {
    margin-bottom: 1.875rem;
}

.single-detail-page .contrato-meta--single {
    flex-wrap: wrap;
    gap: 1.5rem 2.5rem;
    padding: 1.25rem 1.5rem;
    background: #fafafa;
    border-radius: 4px;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

body.dark-mode .single-detail-page .contrato-meta--single {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .single-detail-page .contrato-detail .text-p,
body.dark-mode .single-detail-page .contrato-detail strong {
    color: var(--color-text-body);
}

body.dark-mode .single-detail-page .meta-label {
    color: rgba(255, 255, 255, 0.75);
}

body.dark-mode .single-detail-page .meta-value {
    color: var(--color-text-dark);
}

.single-detail-page .gallery-item {
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.07);
}

.single-detail-page .partner-item {
    border-radius: 4px;
}

@media (max-width: 768px) {
    .single-detail-page .section-footer-nav {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .single-detail-page .section-footer-nav a {
        white-space: normal;
    }
}

/* Responsividade TransparÃªncia - EstratÃ©gia SÃªnior de Densidade */

@media (max-width: 1366px) {

    .pdf-cards-grid .col-6,
    .projects-horizontal-grid .col-6 {
        grid-column: span 12;
    }
}

@media (max-width: 1024px) {

    /* Dados Institucionais: 3 colunas -> 2 colunas */
    .dados-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .dados-grid .col-4 {
        grid-column: span 1;
    }
}

@media (max-width: 768px) {

    /* Mobile: 1 coluna (TransparÃªncia: pdf, dados, relatÃ³rios) */
    .pdf-cards-grid,
    .dados-grid,
    .relatorios-text-grid {
        grid-template-columns: 1fr;
    }

    .pdf-cards-grid .col-6,
    .dados-grid .col-4,
    .relatorios-text-grid .col-6 {
        grid-column: span 1;
        min-width: 0;
    }

    .pdf-card {
        padding-bottom: 20px;
    }

    .btn-visualizar {
        width: 100%;
        text-align: center;
        align-self: center;
    }
}

@media (max-width: 700px) {
    .pdf-card {
        flex-direction: column;
    }

    .pdf-card-thumb {
        margin: 20px auto 0 auto;
        flex: none;
        max-width: 262px;
    }

    .pdf-actions {
        flex-direction: row;
        width: 100%;
        gap: 10px;
    }


    .subtitle-lg {
        font-size: calc(26px * var(--font-scale, 1));
    }

    .subtitle-md {
        font-size: calc(22px * var(--font-scale, 1));
    }
}

/* Stats / Counters */
.stat-box {
    margin-bottom: 30px;
}

.stat-label {
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    font-weight: 700;
    text-transform: uppercase;
    color: var(--color-text-dark);
    display: block;
    margin-bottom: 0.3125rem;
    /* 5px */
}

.stat-value {
    font-size: calc(2rem * var(--font-scale, 1));
    /* 32px */
    font-weight: 700;
    color: var(--page-color, var(--color-text-dark));
    text-transform: uppercase;
}

/* Gallery Grid */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
}

@media (max-width: 992px) {
    .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 576px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.gallery-item {
    width: 100%;
    aspect-ratio: 1 / 1;
    background-color: #D9D9D9;
    overflow: hidden;
    transition: transform 0.3s ease;
    cursor: pointer;
}

/* Lightbox Styles */
.custom-lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.95);
    z-index: 2147483647;
    /* Valor mÃ¡ximo de z-index para ficar acima de tudo, inclusive VLibras */
    display: none;
    /* Inicia escondido */
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.custom-lightbox.is-active {
    display: flex;
    opacity: 1;
}

.lightbox-content {
    max-width: 90vw;
    max-height: 90vh;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.lightbox-content img {
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
    border: 3px solid #fff;
}

/* BotÃµes de NavegaÃ§Ã£o e Fechar */
.lightbox-close,
.lightbox-prev,
.lightbox-next {
    position: absolute;
    background: none;
    border: none;
    color: #fff;
    font-size: 4rem;
    cursor: pointer;
    z-index: 2147483647;
    /* MÃ¡ximo possÃ­vel */
    transition: color 0.3s ease, transform 0.2s ease;
    padding: 15px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    user-select: none;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.lightbox-close:hover {
    color: var(--color-primary, #D0202A);
    transform: scale(1.1);
}

.lightbox-prev:hover,
.lightbox-next:hover {
    color: var(--color-primary, #D0202A);
    transform: translateY(-50%) scale(1.1);
}

.lightbox-close:active {
    transform: scale(0.95);
}

.lightbox-prev:active,
.lightbox-next:active {
    transform: translateY(-50%) scale(0.95);
}

.lightbox-close {
    top: 30px;
    right: 30px;
    font-size: 4.5rem;
}

.lightbox-prev {
    left: 40px;
    top: 50%;
    transform: translateY(-50%);
}

.lightbox-next {
    right: 40px;
    top: 50%;
    transform: translateY(-50%);
}

@media (max-width: 768px) {

    .lightbox-prev,
    .lightbox-next {
        font-size: 2.5rem;
    }

    .lightbox-prev {
        left: 10px;
    }

    .lightbox-next {
        right: 10px;
    }

    .lightbox-close {
        top: 10px;
        right: 10px;
        font-size: 3rem;
    }
}

.gallery-item:hover {
    transform: scale(1.02);
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Partners Grid (mesmo layout da galeria) */
.partners-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
}

@media (max-width: 992px) {
    .partners-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 576px) {
    .partners-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.partner-item {
    width: 100%;
    aspect-ratio: 1 / 1;
    background-color: #D9D9D9;
    overflow: hidden;
    transition: transform 0.3s ease;
    cursor: pointer;
}

.partner-item:hover {
    transform: scale(1.02);
}

.partner-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Responsive Utility Margins */
.mb-0 {
    margin-bottom: 0 !important;
}

.mb-5 {
    margin-bottom: 5px !important;
}

.mb-10 {
    margin-bottom: 10px !important;
}

.mb-20 {
    margin-bottom: 20px !important;
}

.mb-40 {
    margin-bottom: 40px !important;
}

.mb-60 {
    margin-bottom: 60px !important;
}

.mb-80 {
    margin-bottom: 80px !important;
}

.mt-20 {
    margin-top: 20px !important;
}

.mt-40 {
    margin-top: 40px !important;
}

.mt-60 {
    margin-top: 60px !important;
}

.mt-80 {
    margin-top: 80px !important;
}

/* Utility Padding */
.pt-0 {
    padding-top: 0 !important;
}

.pt-40 {
    padding-top: 40px;
}

.pt-60 {
    padding-top: 60px;
}

.pb-20 {
    padding-bottom: 20px;
}


.mt-0 {
    margin-top: 0;
}

.mt-10 {
    margin-top: 10px;
}

/* lead-image-box heights */
.lead-image-box.h-350 {
    height: 350px;
}

.lead-image-box.h-400 {
    height: 400px;
}

.lead-image-box.h-450 {
    height: 450px;
}

.lead-image-box.h-500 {
    height: 500px;
}

@media (max-width: 768px) {
    .mb-40 {
        margin-bottom: 40px !important;
    }

    .mb-60 {
        margin-bottom: 40px !important;
    }

    .mb-80 {
        margin-bottom: 40px !important;
    }

    .mt-80 {
        margin-top: 50px;
    }

    .mt-60 {
        margin-top: 40px;
    }

    .lead-image-box.h-350,
    .lead-image-box.h-400,
    .lead-image-box.h-450,
    .lead-image-box.h-500 {
        height: auto;
        aspect-ratio: 16 / 9;
    }
}

/* Project Detail Page Styles */
.image-description {
    display: flex;
    flex-direction: column;
}

/* Quando a legenda Ã© uma coluna lateral (ex: Detalhe do Projeto) */
.col-3>.image-description {
    height: 100%;
    justify-content: flex-end;
    margin-top: 0;
}

.image-description p {
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    line-height: 1.4;
    color: var(--color-text-body);
    margin-bottom: 0.625rem;
    /* 10px */
    margin-top: 0;
}

.image-description p:last-child {
    margin-bottom: 0;
}

.lead-image-box {
    width: 100%;
    background: #eee;
}

.lead-image-box.h-square {
    height: auto;
    aspect-ratio: 1 / 1;
}

.lead-image-box.h-square img {
    height: 100%;
    object-fit: cover;
}


/* Se quiser forÃ§ar proporÃ§Ã£o, usa uma classe extra ou mantÃ©m o lead-image-box limpo */
.lead-image-box.aspect-16-9 {
    aspect-ratio: 16 / 9;
}

.lead-image-box img {
    width: 100%;
    height: auto;
    display: block;
}

.lead-image-box.aspect-16-9 img {
    height: 100%;
    object-fit: cover;
}

.image-credit {
    margin-top: 0.9375rem;
    /* 15px */
    font-size: calc(0.6875rem * var(--font-scale, 1));
    /* 11px */
    text-transform: uppercase;
    font-weight: 700;
    color: var(--color-text-muted);
}

@media (max-width: 1024px) {
    .image-description {
        margin-top: 0;
        justify-content: flex-start;
    }
}

.text-p {
    font-size: calc(18px * var(--font-scale, 1));
    line-height: 1.5;
}

@media (max-width: 768px) {
    .text-p {
        font-size: calc(15px * var(--font-scale, 1));
    }
}

/* Pagination Centering on Mobile */
@media (max-width: 768px) {
    .pagination-custom {
        justify-content: center;
        flex-wrap: wrap;
        gap: 10px;
    }
}


.timeline-empty-msg {
    padding: 20px clamp(1rem, 5vw, 80px);
    color: #999;
}

@media (max-width: 768px) {
    .timeline-empty-msg {
        padding: 20px 1.25rem;
        /* 20px lateral no mobile */
    }
}

.page-institucional {
    --page-color: var(--color-primary);
}

.page-contato {
    --page-color: var(--color-burgundy);
}

.page-contato .section-footer-nav a {
    color: var(--page-color);
    border-color: var(--page-color);
}

.page-institucional .section-divider,
.page-contato .section-divider,
.page-transparencia .section-divider,
.page-parcerias .section-divider,
.page-atuacao .section-divider,
.page-imprensa .section-divider {
    opacity: 0.5;
}

.page-institucional .submenu-item {
    background-color: #DC585F;
}

.page-institucional .submenu-item.active {
    background-color: #D0202A;
}

.page-atuacao {
    --page-color: #4A5568;
}

.page-atuacao .submenu-item {
    background-color: #77808E;
}

.page-atuacao .submenu-item.active {
    background-color: #4A5568;
}

/* Colunas do grid com min-width padrÃ£o (auto) impedem encolher â€” estoura o card com botÃ£o largo */
.page-atuacao .projects-horizontal-grid .col-6 {
    min-width: 0;
}

/* ==========================================================================
   Responsivo - PÃ¡gina AtuaÃ§Ã£o
   SeÃ§Ãµes: PortfÃ³lio de Projetos | Projetos em Andamento | Programas Permanentes
   Cards horizontais (project-horizontal-card) em grid 2 colunas â†’ 1 coluna.
   Breakpoints: 1024px (card vira vertical), 768px (1 coluna, thumb full-width),
   576px (compacto).
   ========================================================================== */
@media (max-width: 1024px) {

    .page-atuacao #arquivo .project-horizontal-card {
        flex-direction: column;
        align-items: stretch;
        text-align: left;
        height: auto;
        /* garante que o card cresce com o texto e botÃ£o */
    }

    .page-atuacao #arquivo .project-horizontal-thumb {
        flex: none;
        width: 100%;
        max-width: none;
        aspect-ratio: 16 / 9;
        height: auto;
        margin: 0 0 25px 0;
    }

    .page-atuacao #arquivo .project-horizontal-content {
        padding: 0 20px 20px 20px;
    }

    /* Ajuste de tipografia e botÃ£o para caber melhor dentro do card nessa faixa */
    .page-atuacao #arquivo .project-horizontal-content .project-title {
        margin-top: 0;
        font-size: calc(1.5rem * var(--font-scale, 1));
    }

    .page-atuacao #arquivo .project-horizontal-content .project-description {
        font-size: calc(1rem * var(--font-scale, 1));
    }

    .page-atuacao #arquivo .btn-visualizar {
        align-self: center;
        margin-top: 20px;
        padding: 0.625rem 2.5rem;
    }
}

@media (max-width: 768px) {

    .page-atuacao #arquivo .projects-horizontal-grid {
        grid-template-columns: 1fr;
    }

    .page-atuacao #arquivo .projects-horizontal-grid .col-6 {
        grid-column: span 1;
        min-width: 0;
    }

    .page-atuacao #arquivo .project-horizontal-card {
        width: 100%;
        min-width: 0;
        border: none;
        /* garante que nÃ£o hÃ¡ topo */
        border-right: 1px solid #000;
        border-left: 1px solid #000;
        border-bottom: 1px solid #000;
    }

    .project-horizontal-thumb {
        margin: 0 !important;
    }

    .page-atuacao #arquivo .project-horizontal-thumb {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }

    .page-atuacao #arquivo .project-horizontal-content {
        padding: 1rem 1.25rem;
        text-align: left;
    }

    .page-atuacao #arquivo .project-horizontal-content .project-title {
        font-size: calc(1.375rem * var(--font-scale, 1));
    }

    .page-atuacao #arquivo .project-horizontal-content .project-description {
        font-size: calc(1rem * var(--font-scale, 1));
        margin-bottom: 1rem;
    }

    .page-atuacao #arquivo .project-horizontal-content .project-meta {
        margin-bottom: 0.5rem;
    }

    .page-atuacao #arquivo .btn-visualizar {
        width: 100%;
        text-align: center;
        align-self: stretch;
        min-height: 2.75rem;
        /* 44px - alvo de toque acessÃ­vel */
    }

    /* Reduzir densidade de espaÃ§amento nas seÃ§Ãµes no mobile */
    .page-atuacao #arquivo .grid-row.mb-40 {
        margin-bottom: 1.5rem;
    }

    .page-atuacao #arquivo .projects-horizontal-grid.mb-60 {
        margin-bottom: 2.5rem;
    }
}

@media (max-width: 576px) {

    .page-atuacao #arquivo .project-horizontal-card {
        border-left: none;
        border-right: none;
    }

    .page-atuacao #arquivo .project-horizontal-thumb {
        margin-top: 0;
        margin-bottom: 0;
    }

    .page-atuacao #arquivo .project-horizontal-content {
        padding: 1rem;
    }

    .page-atuacao #arquivo .projects-horizontal-grid.mb-60 {
        margin-bottom: 2rem;
    }
}

.page-transparencia {
    --page-color: rgba(197, 160, 101, 1);
}

.page-transparencia .submenu-item {
    background-color: #D4B88C;
}

.page-transparencia .submenu-item.active {
    background-color: rgba(197, 160, 101, 1);
}

.page-parcerias {
    --page-color: rgba(0, 128, 128, 1);
}

.page-parcerias .submenu-item {
    background-color: #40A0A0;
}

.page-parcerias .submenu-item.active {
    background-color: rgba(0, 128, 128, 1);
}

.page-imprensa {
    --page-color: rgba(27, 54, 93, 1);
}

.page-imprensa a:hover {
    color: var(--page-color);
}

.page-imprensa .btn-pdf-dark:hover,
.page-imprensa .btn-pdf-outline:hover,
.page-imprensa .btn-release-dark:hover {
    background-color: var(--page-color) !important;
    color: #fff !important;
    border-color: var(--page-color) !important;
}

.page-imprensa .section-footer-nav a:hover,
.page-imprensa .breadcrumb-text a:hover {
    color: var(--page-color) !important;
    opacity: 1 !important;
}

.page-imprensa .submenu-item {
    background-color: #546886;
}

.page-imprensa .submenu-item.active {
    background-color: rgba(27, 54, 93, 1);
}

.home-page {
    --page-color: rgba(43, 68, 119, 1);
}

body.dark-mode .home-page {
    --page-color: rgba(191, 152, 3, 1);
}

/* Ajustes de cores para links de navegaÃ§Ã£o no Modo Dark */
body.dark-mode .page-institucional .section-nav .breadcrumb-text a,
body.dark-mode .page-institucional .section-footer-nav a {
    color: #A21D25;
    border-color: #A21D25;
}

body.dark-mode .page-institucional .submenu-item:not(.active) {
    background-color: #A21D25;
}

body.dark-mode .page-institucional .submenu-item a {
    color: #ffffff !important;
}

/* TÃ­tulos e textos principais em branco no modo escuro - PÃ¡gina Institucional */
body.dark-mode .page-institucional .section-title-large,
body.dark-mode .page-institucional .subtitle-28,
body.dark-mode .page-institucional .subtitle-22,
body.dark-mode .page-institucional .text-p,
body.dark-mode .page-institucional .text-p p {
    color: #ffffff;
}

body.dark-mode .page-atuacao .section-nav .breadcrumb-text a,
body.dark-mode .page-atuacao .section-nav .breadcrumb-text span,
body.dark-mode .page-atuacao .section-footer-nav a {
    color: #3D4554;
    border-color: #3D4554;
}

body.dark-mode .page-atuacao .submenu-item:not(.active) {
    background-color: #3D4554;
}

body.dark-mode .page-atuacao .submenu-item a {
    color: #ffffff !important;
}

body.dark-mode .page-atuacao .submenu-item.active a {
    color: #ffffff;
}

/* PÃ¡gina AtuaÃ§Ã£o - textos dos cards em preto no modo escuro (fundos claros) */
body.dark-mode .page-atuacao .project-card,
body.dark-mode .page-atuacao .project-horizontal-card {
    background-color: #ffffff;
}

body.dark-mode .page-atuacao .project-card-content .project-title,
body.dark-mode .page-atuacao .project-card-content .project-meta,
body.dark-mode .page-atuacao .project-card-content .project-description,
body.dark-mode .page-atuacao .project-card-content .project-subtitle,
body.dark-mode .page-atuacao .project-card-content .project-text,
body.dark-mode .page-atuacao .project-card-content p,
body.dark-mode .page-atuacao .project-horizontal-content .project-title,
body.dark-mode .page-atuacao .project-horizontal-content .project-meta,
body.dark-mode .page-atuacao .project-horizontal-content .project-description {
    color: #191919;
}

body.dark-mode .page-transparencia .section-nav .breadcrumb-text a,
body.dark-mode .page-transparencia .section-nav .breadcrumb-text span,
body.dark-mode .page-transparencia .section-footer-nav a {
    color: #9A7D51;
    border-color: #9A7D51;
}

body.dark-mode .page-transparencia .submenu-item:not(.active) {
    background-color: #9A7D51;
}

body.dark-mode .page-transparencia .submenu-item a {
    color: #ffffff !important;
}

body.dark-mode .page-parcerias .section-nav .breadcrumb-text a,
body.dark-mode .page-parcerias .section-footer-nav a {
    color: #066666;
    border-color: #066666;
}

body.dark-mode .page-parcerias .submenu-item:not(.active) {
    background-color: #066666;
}

body.dark-mode .page-parcerias .submenu-item a {
    color: #ffffff !important;
}

body.dark-mode .page-imprensa {
    --page-color: #1A2E4C;
}

body.dark-mode .page-imprensa .section-nav .breadcrumb-text a,
body.dark-mode .page-imprensa .section-footer-nav a {
    color: var(--page-color);
    border-color: var(--page-color);
}

body.dark-mode .page-imprensa .submenu-item:not(.active) {
    background-color: var(--page-color);
}

body.dark-mode .page-imprensa .submenu-item a {
    color: #ffffff !important;
}

/* PÃ¡gina Contato - links de navegaÃ§Ã£o de seÃ§Ã£o no modo escuro em burgundy */
body.dark-mode .page-contato .section-footer-nav a {
    color: var(--color-burgundy);
    border-color: var(--color-burgundy);
}

/* ConteÃºdo dos accordions (releases / clipping) no modo escuro - manter texto legÃ­vel em fundos claros */
body.dark-mode .page-imprensa .accordion-content,
body.dark-mode .page-imprensa .release-row,
body.dark-mode .page-imprensa .release-row h5,
body.dark-mode .page-imprensa .release-row p {
    color: #191919;
}

body.dark-mode .page-imprensa .release-row .release-date,
body.dark-mode .page-imprensa .release-row .release-context {
    color: #333;
}

/* Institutional Page Specific Styles */
.text-small {
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    line-height: 1.6;
}

.history-block-title,
.section-title-medium {
    color: rgba(0, 0, 0, 1);
    font-family: var(--font-primary);
    font-size: calc(1.375rem * var(--font-scale, 1));
    /* 22px */
    font-weight: 700;
    line-height: 1.625rem;
    /* 26px */
    margin-bottom: 1.25rem;
    /* 20px */
}

.subtitle-28 {
    font-family: var(--font-primary);
    font-size: calc(1.75rem * var(--font-scale, 1));
    /* 28px */
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 1.25rem;
    /* 20px */
    color: #000;
}

.subtitle-22 {
    font-family: var(--font-primary);
    font-size: calc(1.375rem * var(--font-scale, 1));
    /* 22px */
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 1.25rem;
    /* 20px */
    color: #000;
}

.section-title-large {
    font-size: calc(2.25rem * var(--font-scale, 1));
    /* 36px */
    line-height: 1.2;
    font-weight: 700;
    color: #000;
    margin-bottom: 1.875rem;
    /* 30px */
}

@media (max-width: 768px) {
    .section-title-large {
        font-size: calc(26px * var(--font-scale, 1));
    }

    .subtitle-28 {
        font-size: calc(22px * var(--font-scale, 1));
    }

    .subtitle-22 {
        font-size: calc(18px * var(--font-scale, 1));
    }
}

/* Equipe Section Styles */
.equipe-nucleos-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 20px;
    margin-bottom: 60px;
}

.nucleo-item {
    text-align: left;
    display: flex;
    flex-direction: column;
    min-width: 0;
    /* Permite que o item encolha no grid se necessÃ¡rio */
}

.nucleo-item .nucleo-img {
    width: 100%;
    aspect-ratio: 1 / 1;
    background-color: #D9D9D9;
    margin-bottom: 15px;
    overflow: hidden;
}

.nucleo-item .nucleo-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nucleo-item h5 {
    font-size: calc(1rem * var(--font-scale, 1));
    /* Reduzido para 16px para caber em 6 colunas */
    line-height: 1.2;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: #000;
    text-transform: uppercase;
}

.nucleo-item p {
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    line-height: 1.4;
    color: var(--color-text-body);
    margin: 0;
}

@media (max-width: 1024px) {
    .equipe-nucleos-grid {
        grid-template-columns: repeat(6, 1fr);
    }
}

@media (max-width: 768px) {
    .equipe-nucleos-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
}

@media (max-width: 480px) {
    .equipe-nucleos-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Timeline Styles */
.timeline-container {
    width: 100%;
}

.timeline-year-item {
    margin-bottom: 2px;
}

/* Reset for button.timeline-year-header (accessibility: focusable, keyboard operable) */
button.timeline-year-header {
    width: 100%;
    border: none;
    margin: 0;
    font-family: inherit;
    text-align: left;
}

.timeline-year-header {
    background-color: #333;
    color: #fff;
    padding: 0.9375rem 2.5rem;
    /* 15px 40px */
    cursor: pointer;
    font-size: 1.75rem;
    /* 28px */
    font-weight: 700;
    transition: background-color 0.3s ease;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.timeline-year-header:hover {
    background-color: #444;
}

.timeline-year-item.active .timeline-year-header {
    background-color: var(--color-primary);
}

.timeline-year-content {
    display: none;
    background-color: #ffffff;
    padding: 0;
    /* Removido padding para a linha ocupar 100% */
    position: relative;
    border-left: 1px solid #eee;
    border-right: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

.timeline-year-content-empty {
    padding: 40px 80px;
    /* Padding movido para o conteÃºdo interno */
    color: #999;
}

.timeline-year-item.active .timeline-year-content {
    display: block;
}

.timeline-vertical-line-wrapper {
    position: relative;
    padding: 40px 0;
    /* Removido padding-left, controlado pelas margens dos itens */
}

.timeline-vertical-line {
    position: absolute;
    left: 80px;
    top: 0;
    bottom: 0;
    width: 2px;
    background-color: var(--color-primary);
}

.timeline-project-item {
    position: relative;
    margin-bottom: 30px;
    padding-left: 50px;
}

.timeline-project-item:last-child {
    margin-bottom: 0;
}

.timeline-dot {
    position: absolute;
    left: -7px;
    /* Centralizado na linha (78px - 85px = -7px em relaÃ§Ã£o ao padding-left 50px do item?) NÃ£o. */
}

/* Melhor posicionamento do dot */
.timeline-project-item::before {
    content: '';
    position: absolute;
    left: -5px;
    /* Alinhado com a linha (80px - 5px = 75px? NÃ£o) */
    top: 25px;
    width: 10px;
    height: 10px;
    background-color: var(--color-primary);
    z-index: 2;
}

/* Linha horizontal conectando ao dot */
.timeline-project-item::after {
    content: '';
    position: absolute;
    left: 0;
    /* ComeÃ§a na linha vertical */
    top: 29px;
    width: 50px;
    /* Vai atÃ© o card */
    height: 2px;
    background-color: var(--color-primary);
    /* Cor suave para o fundo branco */
}

.timeline-project-card {
    background-color: #fff;
    width: 100%;
    border: 1px solid #eee;
    /* Adicionada borda para contraste no fundo branco */
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    /* Sombra leve para profundidade */
}

.timeline-project-header {
    background-color: var(--color-primary);
    color: rgba(255, 255, 255, 1);
    padding: 0.625rem 1.25rem;
    /* 10px 20px */
    font-family: var(--font-primary);
    font-size: 1.375rem;
    /* 22px */
    font-weight: 700;
    line-height: 1.625rem;
    /* 26px */
    letter-spacing: 0px;
    text-align: left;
    text-transform: uppercase;
}

.timeline-project-body {
    padding: 20px;
    display: flex;
    gap: 20px;
    position: relative;
}

.timeline-project-img {
    width: 180px;
    height: 150px;
    flex-shrink: 0;
    background-color: #eee;
}

.timeline-project-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.timeline-project-info {
    flex-grow: 1;
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* 14px */
    line-height: 1.4;
    color: #333;
}

.timeline-project-info h6 {
    font-family: var(--font-primary);
    font-weight: 700;
    font-size: 1.125rem;
    /* 18px */
    line-height: 1.4;
    margin: 0;
    color: #000;
}

.timeline-project-info p {
    font-family: var(--font-primary);
    font-weight: 400;
    font-size: 1.125rem;
    /* 18px */
    line-height: 1.4;
    margin: 0;
    color: #333;
}

.project-info-group {
    margin-bottom: 12px;
    display: flex;
    gap: 6px;
    align-items: baseline;
    flex-wrap: wrap;
}

.project-descricao {
    display: block;
    /* Texto corrido nÃ£o usa flex */
}

.project-descricao p {
    line-height: 1.6;
    color: #444;
}

.project-info-group:last-child {
    margin-bottom: 0;
}

.timeline-project-btn {
    position: absolute;
    right: 0.9375rem;
    /* 15px */
    bottom: 0.9375rem;
    /* 15px */
    background-color: #191919;
    color: #fff;
    padding: 0.75rem 1.875rem;
    /* Ajustado para acomodar fonte maior */
    font-size: 1.375rem;
    /* 22px */
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    line-height: 1.2;
}

.timeline-project-btn:hover {
    background-color: #000;
}

/* Ajuste do dot na linha vertical de 80px */
.timeline-vertical-line-wrapper .timeline-project-item::before {
    left: -7px;
    /* 80px - 7px = 73px? NÃ£o, o padding-left Ã© 80px. */
}

/* Refazendo o posicionamento do dot e linha horizontal */
.timeline-vertical-line-wrapper .timeline-vertical-line {
    left: 77px;
}

.timeline-project-item {
    margin-left: 80px;
    /* Alinha com a linha vertical */
    padding-left: 50px;
    /* DistÃ¢ncia da linha atÃ© o card */
}

.timeline-project-item::before {
    left: -5px;
    /* Em cima da linha vertical */
}

.timeline-project-item::after {
    left: 0;
    /* ComeÃ§a na linha vertical */
    width: 50px;
    /* Vai atÃ© o card */
}

@media (max-width: 768px) {
    .timeline-year-header {
        padding: 0.75rem 1.25rem;
        /* Reduzido de 40px para 20px nas laterais */
        font-size: 1.25rem;
        /* Reduzido de 28px para 20px */
    }

    .timeline-project-header {
        font-size: 1.125rem;
        /* Reduzido de 22px para 18px */
        padding: 0.75rem 1rem;
    }

    .timeline-project-body {
        flex-direction: column;
        padding: 15px;
        gap: 15px;
    }

    .timeline-project-img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        /* Formato mais comum para mobile */
    }

    .timeline-project-info h6,
    .timeline-project-info p {
        font-size: 1rem;
        /* 16px para melhor legibilidade no celular */
    }

    .project-info-group {
        flex-direction: column;
        /* Empilha o tÃ­tulo e o valor do info group */
        margin-bottom: 10px;
    }

    .timeline-project-btn {
        position: static;
        display: block;
        width: 100%;
        text-align: center;
        margin-top: 10px;
        font-size: 1.125rem;
        /* Reduzido de 22px para 18px */
        padding: 12px;
    }

    .timeline-vertical-line-wrapper {
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .timeline-vertical-line-wrapper .timeline-vertical-line {
        left: 20px;
        /* Mais colado Ã  esquerda */
    }

    .timeline-project-item {
        margin-left: 20px;
        /* Alinhado com a nova posiÃ§Ã£o da linha */
        padding-left: 25px;
        /* DistÃ¢ncia menor da linha atÃ© o card */
        margin-bottom: 25px;
    }

    .timeline-project-item::before {
        top: 20px;
        /* Alinha o dot com o inÃ­cio do card reduzido */
    }

    .timeline-project-item::after {
        top: 24px;
        width: 25px;
        /* Comprimento da linha horizontal reduzido */
    }

    .timeline-year-content-empty {
        padding: 20px;
        font-size: 0.875rem;
    }
}

.mvv-box {
    background-color: var(--color-primary);
    color: #ffffff;
    padding: 30px;
    height: 100%;
}

.mvv-box h3 {
    color: #ffffff;
    text-transform: uppercase;
    margin-top: 0;
    margin-bottom: 1.25rem;
    /* 20px */
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    padding-bottom: 0.625rem;
    /* 10px */
}

.mvv-box p {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    line-height: 1.4;
    margin: 0;
}

.values-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.values-list li {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    line-height: 1.4;
    margin-bottom: 0.625rem;
    /* 10px */
    padding-left: 1.25rem;
    /* 20px */
    position: relative;
}

.values-list li::before {
    content: "-";
    position: absolute;
    left: 0;
}

.values-list li:last-child {
    margin-bottom: 0;
}

.section-footer-nav-container {
    padding-top: 40px;
    padding-bottom: 60px;
}

.image-description.h-full-end {
    height: 100%;
    justify-content: flex-end;
}

@media (max-width: 1024px) {
    .image-description.h-full-end {
        height: auto;
        justify-content: flex-start;
    }
}

/* PÃ¡gina de Busca */
.page-busca .search-input-wrapper {
    display: flex;
    width: 100%;
    gap: 10px;
    margin-bottom: 30px;
}

.page-busca .search-field {
    flex-grow: 1;
    background-color: rgba(204, 204, 204, 1);
    border: 1px solid rgba(112, 112, 112, 1);
    box-sizing: border-box;
    padding: 15px 20px;
    font-size: var(--font-size-body);
    color: #333;
}

.page-busca .search-submit {
    background-color: #000000;
    color: #FFFFFF;
    border: 3px solid #000000;
    padding: 0 40px;
    font-weight: 700;
    cursor: pointer;
    font-size: var(--font-size-body);
    box-sizing: border-box;
    transition: none !important;
}

.page-busca .search-submit:hover {
    background-color: #ffffff;
    color: #000000;
    border-color: #000000;
}

.search-results-container {
    width: 100%;
    margin-top: 20px;
}

.search-loading {
    font-size: calc(1.125rem * var(--font-scale, 1));
    color: var(--color-text-body);
    margin: 0;
    padding: 1rem 0;
}

/* Estado vazio amigÃ¡vel da busca */
.search-no-results {
    background-color: rgba(230, 230, 230, 1);
    padding: 2rem 1.5rem;
    margin-top: 0;
    border-left: 4px solid var(--color-black);
}

.search-no-results-title {
    font-size: calc(1.25rem * var(--font-scale, 1));
    font-weight: 700;
    color: var(--color-text-dark);
    margin: 0 0 1rem 0;
}

.search-no-results-suggestions {
    font-size: calc(1.125rem * var(--font-scale, 1));
    font-weight: 700;
    color: var(--color-text-dark);
    margin: 0 0 0.5rem 0;
}

.search-no-results-list {
    font-size: calc(1.125rem * var(--font-scale, 1));
    line-height: 1.6;
    color: var(--color-text-body);
    margin: 0 0 1.25rem 0;
    padding-left: 1.5rem;
}

.search-no-results-list li {
    margin-bottom: 0.375rem;
}

.search-no-results-list a {
    color: var(--color-primary);
    text-decoration: underline;
}

.search-no-results-list a:hover {
    opacity: 0.85;
}

.search-no-results-cta {
    font-size: calc(1.125rem * var(--font-scale, 1));
    margin: 0;
}

.search-no-results-link {
    font-weight: 700;
    text-decoration: underline;
    color: var(--color-black);
}

.search-no-results-link:hover {
    color: var(--color-primary);
}

.search-result-item {
    background-color: rgba(230, 230, 230, 1);
    margin-bottom: 10px;
    padding: 20px 30px;
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.result-col {
    display: flex;
    flex-direction: column;
}

.result-label {
    font-weight: 700;
    font-size: calc(1.375rem * var(--font-scale, 1));
    /* 22px */
    color: #000000;
    margin-bottom: 8px;
    text-transform: none;
}

.result-value {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    line-height: 1.4;
    color: #333333;
}

.result-value p {
    margin: 0;
}

.col-date {
    width: 100%;
    max-width: 120px;
    flex: 0 1 120px;
}

.col-content {
    flex: 1 1 auto;
    min-width: 200px;
}

.col-content .result-value {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
}

.col-address {
    width: 100%;
    max-width: 320px;
    flex: 0 1 320px;
    word-break: break-all;
}

.col-address .result-value {
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* 18px */
    color: #666666;
}

.col-action {
    flex: 0 0 auto;
    min-width: 180px;
    align-self: center;
    text-align: right;
}

/* Antecipando a quebra para evitar aperto entre 1025px e 1200px */
@media (max-width: 1200px) {
    .search-result-item {
        flex-wrap: wrap;
        gap: 20px;
    }

    .col-date {
        flex: 0 0 auto;
        width: auto;
    }

    .col-address {
        flex: 1 1 250px;
        max-width: none;
    }

    .col-action {
        flex: 1 1 100%;
        text-align: center;
        margin-top: 10px;
    }

    .col-action .btn-visualizar {
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
    }
}

.search-result-item .btn-visualizar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #333333;
    color: #FFFFFF !important;
    padding: 0.625rem 1.25rem;
    /* 10px 20px */
    border: 3px solid transparent;
    text-decoration: none !important;
    font-weight: 700;
    font-size: calc(1.125rem * var(--font-scale, 1));
    /* Match metadata scale */
    transition: background-color 0.3s;
    text-transform: uppercase;
    white-space: nowrap;
    width: auto;
    min-width: 160px;
    box-sizing: border-box;
}

.search-result-item .btn-visualizar:hover {
    background-color: #000000;
}

.search-result-item .btn-visualizar:active {
    border: 3px solid #008080 !important;
    outline: none !important;
}

/* Dark Mode para Busca */
body.dark-mode .page-busca .search-field {
    background-color: #444;
    border: 3px solid #555;
    color: #fff;
}

/* Inputs de busca (Imprensa e Busca) no modo escuro: borda ~3px e placeholder claro no hover */
body.dark-mode .page-imprensa .releases-search-input {
    background-color: #444;
    border: 3px solid rgba(112, 112, 112, 1);
    color: #ffffff;
}

body.dark-mode .page-imprensa .releases-search-input:hover,
body.dark-mode .page-busca .search-field:hover {
    border-width: 3px;
}

body.dark-mode .page-imprensa .releases-search-input::placeholder,
body.dark-mode .page-busca .search-field::placeholder {
    color: rgba(230, 230, 230, 0.8);
}

body.dark-mode .page-imprensa .releases-search-input:hover::placeholder,
body.dark-mode .page-busca .search-field:hover::placeholder {
    color: #ffffff;
}

/* BotÃ£o BUSCAR da pÃ¡gina de busca no modo escuro:
   fundo branco, texto preto; no hover inverte e mantÃ©m borda de ~3px */
body.dark-mode .page-busca .search-submit {
    background-color: #ffffff;
    color: #000000;
    border: 3px solid #ffffff;
}

body.dark-mode .page-busca .search-submit:hover {
    background-color: #000000;
    color: #ffffff;
    border: 3px solid #ffffff;
}

/* Feedback visual de busca (Sucesso/Erro) - Consolidado para evitar conflitos */
/* Removemos o outline de foco padrÃ£o do tema que Ã© vermelho (#D0202A) para estes campos */
.page-imprensa .releases-search-btn,
.page-busca .search-submit,
.page-imprensa .releases-search-input,
.page-busca .search-field {
    outline: none !important;
    box-shadow: none !important;
    transition: none !important;
    /* Feedback instantÃ¢neo sem interpolaÃ§Ã£o */
}

/* MantÃ©m o foco neutro enquanto nÃ£o houver resultado de sucesso/erro */
.page-imprensa .releases-search-btn:focus:not(.search-success):not(.search-error),
.page-busca .search-submit:focus:not(.search-success):not(.search-error),
.page-imprensa .releases-search-input:focus:not(.search-success):not(.search-error),
.page-busca .search-field:focus:not(.search-success):not(.search-error) {
    border-color: inherit !important;
}

/* Estado de Erro: APENAS se nÃ£o houver a classe de sucesso */
.page-imprensa .releases-search-btn.search-error:not(.search-success),
.page-busca .search-submit.search-error:not(.search-success),
.page-imprensa .releases-search-input.search-error:not(.search-success),
.page-busca .search-field.search-error:not(.search-success),
body.dark-mode .page-imprensa .releases-search-btn.search-error:not(.search-success),
body.dark-mode .page-busca .search-submit.search-error:not(.search-success),
body.dark-mode .page-imprensa .releases-search-input.search-error:not(.search-success),
body.dark-mode .page-busca .search-field.search-error:not(.search-success) {
    border: 3px solid #D0202A !important;
}

/* Estado de Sucesso: Verde sempre ganha */
.page-imprensa .releases-search-btn.search-success,
.page-busca .search-submit.search-success,
.page-imprensa .releases-search-input.search-success,
.page-busca .search-field.search-success,
body.dark-mode .page-imprensa .releases-search-btn.search-success,
body.dark-mode .page-busca .search-submit.search-success,
body.dark-mode .page-imprensa .releases-search-input.search-success,
body.dark-mode .page-busca .search-field.search-success {
    border: 3px solid #008080 !important;
}

/* Remove qualquer feedback de erro padrÃ£o do navegador (como em campos :invalid) */
input:invalid,
input:-moz-submit-invalid,
input:-moz-ui-invalid {
    box-shadow: none !important;
    border-color: inherit;
}

/* Esses botÃµes usam apenas a borda como feedback visual no modo escuro */
body.dark-mode .page-busca .search-submit:focus,
body.dark-mode .page-imprensa .releases-search-btn:focus,
.page-busca .search-submit:active,
.page-imprensa .releases-search-btn:active {
    outline: none !important;
    box-shadow: none !important;
}

/* TÃ­tulo BUSCA / RESULTADOS em branco no modo escuro */
body.dark-mode .page-busca .section-title-large {
    color: #ffffff;
}

body.dark-mode .search-loading {
    color: rgba(230, 230, 230, 1);
}

body.dark-mode .search-no-results {
    background-color: #333;
    border-left-color: #fff;
}

body.dark-mode .search-no-results-title,
body.dark-mode .search-no-results-suggestions {
    color: #fff;
}

body.dark-mode .search-no-results-list,
body.dark-mode .search-no-results-cta {
    color: #ccc;
}

body.dark-mode .search-no-results-list a {
    color: #9dd;
}

body.dark-mode .search-no-results-link {
    color: #fff;
}

body.dark-mode .search-no-results-link:hover {
    color: #9dd;
}

body.dark-mode .search-result-item {
    background-color: #222;
}

body.dark-mode .result-label {
    color: #ffffff;
}

body.dark-mode .result-value {
    color: #cccccc;
}

body.dark-mode .col-address .result-value {
    color: #999999;
}

body.dark-mode .page-busca .submenu-item.active {
    border-color: #444 !important;
}

body.dark-mode .page-busca .submenu-item.active a {
    color: #fff !important;
}

/* Cor especÃ­fica para elementos de navegaÃ§Ã£o da pÃ¡gina de busca */
.page-busca .breadcrumb-text,
.page-busca .breadcrumb-text a,
.page-busca .section-footer-nav a {
    color: #191919 !important;
    border-color: #191919 !important;
}

.page-busca .section-divider {
    background-color: #191919;
}

body.dark-mode .page-busca .breadcrumb-text,
body.dark-mode .page-busca .breadcrumb-text a,
body.dark-mode .page-busca .section-footer-nav a {
    color: #ffffff !important;
    border-color: #ffffff !important;
}

body.dark-mode .page-busca .section-divider {
    background-color: #ffffff !important;
}

@media (max-width: 1024px) {
    .search-result-item {
        flex-wrap: wrap;
        gap: 20px;
    }

    .col-date,
    .col-address,
    .col-action {
        width: auto;
        flex: 1 1 auto;
    }

    .col-content {
        width: 100%;
        flex: 1 1 100%;
    }
}

@media (max-width: 768px) {
    .page-busca .search-input-wrapper {
        flex-direction: column;
    }

    .page-busca .search-submit {
        padding: 15px;
        margin-top: 10px;
    }

    .search-result-item {
        flex-direction: column;
        align-items: stretch;
    }

    .col-action {
        text-align: center;
        margin-top: 10px;
    }
}

body.dark-mode .page-busca .submenu-item.active {
    border-color: #444 !important;
}

body.dark-mode .page-busca .submenu-item.active a {
    color: #fff !important;
}

@media (max-width: 768px) {
    .page-busca .search-input-wrapper {
        flex-direction: column;
    }

    .page-busca .search-submit {
        padding: 15px;
        margin-top: 10px;
    }

    .search-results-table th:nth-child(3),
    .search-results-table td:nth-child(3) {
        display: none;
    }
}

/* --- RESPONSIVO: SEÃ‡ÃƒO INSTITUCIONAL CONTENT --- */

@media (max-width: 1200px) {
    .section-institucional-content .section-title-large {
        font-size: calc(1.75rem * var(--font-scale, 1));
        /* 28px */
        margin-bottom: 20px;
    }
}

@media (max-width: 1024px) {

    /* 2.1 INTRODUÃ‡ÃƒO (4-6-2) -> Text(12) | Image(12) | Caption(12) */
    .section-institucional-content .grid-row.inst-intro .col-4 {
        grid-column: span 12;
        margin-bottom: 20px;
    }

    .section-institucional-content .grid-row.inst-intro .col-6 {
        grid-column: span 12;
    }

    .section-institucional-content .grid-row.inst-intro .col-2 {
        grid-column: span 12;
        margin-top: 0;
    }

    /* 2.4 MISSÃƒO, VISÃƒO E VALORES (4-4-4) -> 6-6 | 12 */
    .section-institucional-content .grid-row.inst-mvv .col-4 {
        grid-column: span 6;
    }

    .section-institucional-content .grid-row.inst-mvv .col-4:last-child {
        grid-column: span 12;
        margin-top: 20px;
    }
}

@media (max-width: 768px) {

    /* Reset para mobile (tudo 100% via span 6 no grid de 6 colunas) */
    .section-institucional-content .grid-row.inst-intro .col-4,
    .section-institucional-content .grid-row.inst-intro .col-6,
    .section-institucional-content .grid-row.inst-intro .col-2,
    .section-institucional-content .grid-row.inst-mvv .col-4,
    .section-institucional-content .grid-row.inst-mvv .col-4:last-child {
        grid-column: span 6;
        margin-top: 0;
    }

    .section-institucional-content .grid-row.inst-intro .col-6 {
        margin-bottom: 0;
    }

    .section-institucional-content .image-description {
        font-size: calc(14px * var(--font-scale, 1));
        line-height: 1.4;
    }

    /* 2.4 MVV - Adicionar espaÃ§amento entre os boxes que empilharam */
    .section-institucional-content .mvv-box {
        margin-bottom: 20px;
    }

    .section-institucional-content .grid-row.inst-mvv .col-4:last-child .mvv-box {
        margin-bottom: 0;
    }

    /* 2.5 TEXTO FINAL - TÃ­tulos menores */
    .section-institucional-content .subtitle-28 {
        font-size: calc(20px * var(--font-scale, 1));
        margin-bottom: 15px;
        margin-top: 20px;
    }
}

@media (max-width: 480px) {
    .section-institucional-content .section-title-large {
        font-size: calc(1.5rem * var(--font-scale, 1));
        /* 24px */
    }

    .section-institucional-content .text-p p {
        font-size: calc(16px * var(--font-scale, 1));
        line-height: 1.5;
        margin-bottom: 15px;
    }
}

/* --- RESPONSIVO: SEÃ‡ÃƒO GOVERNANÃ‡A --- */

@media (max-width: 1024px) {

    .section-governanca .col-8,
    .section-governanca .col-4,
    .section-governanca .col-6 {
        grid-column: span 12;
    }

    /* Bloco Superior (8-4) */
    .section-governanca .grid-row.gov-bloco-superior .col-4 {
        margin-top: 20px;
    }

    /* Bloco Inferior (4-8): Texto antes da imagem no tablet/mobile */
    .section-governanca .grid-row.gov-bloco-inferior {
        display: flex;
        flex-direction: column;
    }

    .section-governanca .grid-row.gov-bloco-inferior .col-8 {
        order: 1;
    }

    .section-governanca .grid-row.gov-bloco-inferior .col-4 {
        order: 2;
        margin-top: 30px;
    }

    /* Inner grid do bloco inferior */
    .section-governanca .col-8 .grid-row .col-6 {
        grid-column: span 12;
        margin-bottom: 20px;
    }
}

@media (max-width: 768px) {
    .section-governanca .section-title-large {
        font-size: calc(24px * var(--font-scale, 1));
        margin-bottom: 20px;
    }

    .section-governanca .subtitle-28 {
        font-size: calc(20px * var(--font-scale, 1));
        margin-bottom: 15px;
    }

    .section-governanca .subtitle-22 {
        font-size: calc(18px * var(--font-scale, 1));
        margin-bottom: 10px;
        margin-top: 25px;
    }

    .section-governanca .mb-60 {
        margin-bottom: 40px !important;
    }

    .section-governanca .mb-40 {
        margin-bottom: 30px !important;
    }
}

/* --- RESPONSIVO: SEÃ‡ÃƒO EQUIPE --- */

@media (max-width: 1024px) {

    .section-equipe .col-4,
    .section-equipe .col-6,
    .section-equipe .col-8 {
        grid-column: span 12;
    }

    /* Inverter ordem para as Diretorias: Imagem vir depois do TÃ­tulo no Mobile se preferir, 
       mas aqui o layout jÃ¡ tem o tÃ­tulo fora da col-4/col-8 em alguns casos. 
       No PHP, o tÃ­tulo "Diretoria Executiva" estÃ¡ numa col-12 separada. 
       EntÃ£o a ordem natural Imagem (col-4) -> Texto (col-8) funciona bem. 
    */

    .section-equipe .lead-image-box {
        margin-bottom: 10px;
        /* Reduzido para aproximar o texto da imagem */
    }

    /* Aproxima o tÃ­tulo da diretoria da imagem no mobile (apenas onde tem mb-20) */
    .section-equipe .col-12 h3.subtitle-28.mb-20 {
        margin-bottom: 5px !important;
    }

    /* Garante que o tÃ­tulo dos NÃºcleos (mb-40) mantenha um respiro adequado no mobile */
    .section-equipe .col-12 h3.subtitle-28.mb-40 {
        margin-bottom: 25px !important;
        /* Reduzido de 40 para 25 no mobile, mas ainda com respiro */
    }

    .section-equipe .grid-row {
        row-gap: 15px;
        /* Reduz o espaÃ§o entre as linhas da grade no mobile */
    }

    /* EspaÃ§amento interno das biografias no mobile */
    .section-equipe .col-8 .text-p h4 {
        margin-top: 0;
        margin-bottom: 5px !important;
        /* Aproxima o nome do cargo */
    }

    .section-equipe .col-8 .text-p h5 {
        margin-bottom: 15px !important;
        /* Aproxima o cargo da biografia */
    }

    /* Bloco do Conselho (col-4 texto / col-8 imagem) */
    .section-equipe .grid-row.equipe-conselho .col-4 {
        order: 1;
    }

    .section-equipe .grid-row.equipe-conselho .col-8 {
        order: 2;
        margin-top: 20px;
    }

    /* Bloco Final (col-4 texto / col-8 imagem) */
    .section-equipe .grid-row.equipe-bloco-final .col-4 {
        order: 1;
    }

    .section-equipe .grid-row.equipe-bloco-final .col-8 {
        order: 2;
        margin-top: 20px;
    }
}

@media (max-width: 768px) {
    .section-equipe .subtitle-28 {
        font-size: calc(22px * var(--font-scale, 1));
        margin-bottom: 15px;
    }

    .section-equipe .subtitle-22 {
        font-size: calc(18px * var(--font-scale, 1));
        margin-bottom: 15px;
    }

    .section-equipe .text-small {
        font-size: calc(15px * var(--font-scale, 1));
        line-height: 1.5;
    }

    .section-equipe .nucleo-item h5 {
        font-size: calc(18px * var(--font-scale, 1));
    }

    .section-equipe .mb-60 {
        margin-bottom: 40px !important;
    }
}

@media (max-width: 480px) {
    .section-equipe .nucleo-item {
        text-align: center;
    }
}

/* --- RESPONSIVO: SEÃ‡ÃƒO DOCUMENTOS LEGAIS --- */

@media (max-width: 1024px) {
    .section-docs .col-6 {
        grid-column: span 12;
    }

    .section-docs .docs-card-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .section-docs .subtitle-28 {
        font-size: calc(22px * var(--font-scale, 1));
        margin-bottom: 20px;
    }

    .doc-card {
        flex-direction: column;
        height: auto;
        min-height: auto;
        padding: 15px;
    }

    .doc-card-img {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        margin-right: 0;
        margin-bottom: 20px;
    }

    .doc-card-content h4 {
        font-size: calc(20px * var(--font-scale, 1));
        margin-bottom: 10px;
    }

    .doc-card-meta {
        font-size: calc(14px * var(--font-scale, 1));
        margin-bottom: 15px;
    }

    .doc-card-description {
        font-size: calc(16px * var(--font-scale, 1));
        margin-bottom: 20px;
    }

    .doc-card-actions {
        flex-direction: column;
        /* BotÃµes empilhados no mobile */
        gap: 10px;
    }

    .doc-btn {
        width: 100%;
        padding: 12px;
        font-size: calc(14px * var(--font-scale, 1));
    }
}

@media (max-width: 480px) {
    .section-docs .section-title-large {
        font-size: calc(24px * var(--font-scale, 1));
    }
}

/* PaginaÃ§Ã£o de Projetos */
.pagination-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin-top: 50px;
    margin-bottom: 30px;
}

.pagination-btn {
    background: transparent;
    border: none;
    color: #4A5568;
    font-size: calc(1.125rem * var(--font-scale, 1));
    cursor: pointer;
    padding: 5px 10px;
    transition: all 0.3s ease;
    font-family: inherit;
    display: flex;
    align-items: center;
}

.pagination-numbers {
    display: flex;
    gap: 10px;
    align-items: center;
}

.pagination-btn.num-btn {
    font-weight: 400;
}

.pagination-btn.num-btn.active {
    font-weight: 700;
    color: #2D3748;
}

.pagination-btn.nav-btn {
    font-weight: 400;
}

.pagination-btn:hover {
    color: #2D3748;
}

.pagination-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

/* Equipe Adicional Grid */
.equipe-membros-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 20px;
    margin-bottom: 60px;
}

.membro-grade-item {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.membro-img-box {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #D9D9D9;
    margin-bottom: 15px;
    overflow: hidden;
}

.membro-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.membro-img-placeholder {
    width: 100%;
    height: 100%;
    background: #D9D9D9;
}

.membro-nome {
    font-family: var(--font-primary);
    font-size: calc(1rem * var(--font-scale, 1));
    /* Padronizado com os nÃºcleos (16px) */
    font-weight: 700;
    color: var(--color-text-dark);
    margin: 0 0 5px 0;
    text-transform: uppercase;
    line-height: 1.2;
}

.membro-cargo {
    display: block;
    font-family: var(--font-primary);
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* Padronizado com os nÃºcleos (14px) */
    font-weight: 400;
    color: var(--color-text-dark);
    margin-bottom: 10px;
    line-height: 1.2;
}

.membro-desc {
    font-size: calc(0.875rem * var(--font-scale, 1));
    /* Padronizado com os nÃºcleos (14px) */
    line-height: 1.4;
    color: var(--color-text-body);
}

.membro-desc p {
    margin-bottom: 5px;
}

@media (max-width: 1024px) {
    .equipe-membros-grid {
        grid-template-columns: repeat(6, 1fr);
    }
}

@media (max-width: 768px) {
    .equipe-membros-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
}

@media (max-width: 480px) {
    .equipe-membros-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Pagination Dark Mode */
body.dark-mode .pagination-btn {
    color: #fff;
}

body.dark-mode .pagination-btn.num-btn.active,
body.dark-mode .pagination-btn:hover {
    color: #fff;
}

/* --- Read More / Expandable Content --- */
.expandable-content {
    position: relative;
    max-height: 120px;
    /* Mostra aproximadamente 4-5 linhas */
    overflow: hidden;
    transition: max-height 0.5s ease;
}

.expandable-content.is-expanded {
    max-height: 2000px;
    /* Grande o suficiente para qualquer bio */
}

.expandable-content::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40px;
    background: linear-gradient(transparent, var(--color-white));
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.expandable-content.is-expanded::after,
.expandable-content.no-fade::after {
    opacity: 0;
}

body.dark-mode .expandable-content::after {
    background: linear-gradient(transparent, #191919);
}

.read-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: none;
    border: none;
    color: var(--color-primary);
    font-weight: 700;
    font-size: 0.9rem;
    cursor: pointer;
    padding: 10px 0;
    text-transform: uppercase;
    font-family: var(--font-primary);
}

.read-more-btn:hover {
    text-decoration: underline;
}

/* --- Atuação: Álbuns de Galeria --- */
.albums-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 40px;
}

.album-item {
    flex: 0 0 calc(25% - 15px);
    cursor: pointer;
    transition: transform 0.3s ease;
    background: #fff;
    padding: 10px;
    border: 1px solid #eee;
}

.album-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.album-cover {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #f0f0f0;
    margin-bottom: 10px;
}

.album-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.album-item:hover .album-cover img {
    transform: scale(1.05);
}

.album-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;
}

.album-item:hover .album-overlay {
    opacity: 1;
}

.album-view-icon {
    font-size: 1.5rem;
    color: #fff;
    background: var(--color-primary);
    width: 45px;
    height: 45px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.album-info {
    text-align: center;
}

.album-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #000;
    margin: 0;
    text-transform: uppercase;
    line-height: 1.2;
}

.album-year {
    display: block;
    font-size: 0.8rem;
    color: var(--color-primary);
    font-weight: 700;
    margin-top: 4px;
}

/* Responsivo Galeria */
@media (max-width: 1024px) {
    .album-item {
        flex: 0 0 calc(33.33% - 14px);
    }
}

@media (max-width: 768px) {
    .album-item {
        flex: 0 0 calc(50% - 10px);
    }
}

@media (max-width: 480px) {
    .album-item {
        flex: 0 0 100%;
    }
}