#preloader {
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    background: #fff;
    opacity: 1;
    z-index: 9999;
    transition: all .3s;
}

    #preloader .spinner-border {
        width: 4rem;
        height: 4rem;
        border: var(--bs-spinner-border-width) solid var(--bs-primary);
    }

.preloader-done {
    opacity: 0 !important;
    visibility: hidden;
    pointer-events: none !important;
}

/* TOPBAR (barra de utilidades acima do menu, estrutura tipo gov.pt) */
.topbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1031;
    background-color: #fff;
    min-height: 36px;
    font-size: 13px;
}
/* END TOPBAR */

/* NAVBAR */
.navbar.fixed-top {
    top: 36px;
}

.navbar {
    transition: background 0s, box-shadow .3s;
}

    .navbar.affix {
        background-color: #fff;
        box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    }

/* --- Botão do menu (hamburger) mobile --- */
.navbar-toggler {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    transition: background-color .2s ease;
}

    .navbar-toggler:focus,
    .navbar-toggler:active {
        box-shadow: none;
        outline: none;
    }

    .navbar-toggler .icon-menu {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
        width: 26px;
        height: 20px;
    }

    .navbar-toggler .icon-bar {
        display: block;
        width: 100%;
        height: 2.5px;
        border-radius: 2px;
        transition: transform .3s ease, opacity .2s ease;
    }

    /* Anima as barras para um "X" quando o menu está aberto */
    .navbar-toggler[aria-expanded="true"] .icon-bar:nth-child(1) {
        transform: translateY(6.5px) rotate(45deg);
    }

    .navbar-toggler[aria-expanded="true"] .icon-bar:nth-child(2) {
        opacity: 0;
    }

    .navbar-toggler[aria-expanded="true"] .icon-bar:nth-child(3) {
        transform: translateY(-6.5px) rotate(-45deg);
    }

    /* Texto "MENU" visível na cor da marca (override do text-white) */
    .navbar-toggler .menu-text {
        color: var(--bs-secondary) !important;
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 1.5px;
    }

.navbar .nav-item.dropdown {
    display: flex;
    align-items: center;
}

    .navbar .nav-item.dropdown .nav-link {
        padding-right: 4px;
    }

.navbar .nav-link:hover svg {
    color: var(--bs-primary);
}

.navbar .dropdown-toggle::after {
    margin-bottom: -1px;
    border-top: 0;
    border-left: 0;
}

.navbar .dropdown-menu {
    border: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

    .navbar .dropdown-menu li {
        margin-bottom: 7px;
    }

        .navbar .dropdown-menu li:last-child {
            margin-bottom: 0;
        }

.navbar .dropdown-item {
    position: relative;
}

    .navbar .dropdown-item.active,
    .navbar .dropdown-item:active {
        color: var(--bs-dropdown-link-hover-color);
        font-weight: 600;
        background-color: var(--bs-dropdown-link-hover-bg);
    }

    .navbar .dropdown-item:before,
    .navbar .dropdown-item:before {
        content: "";
        position: absolute;
        left: 0;
        top: 20%;
        width: 1px;
        height: 40%;
        background: transparent;
        transition: height 0.7s ease, top 0.7s ease, background 0.3s ease;
    }

    .navbar .dropdown-item.active:before,
    .navbar .dropdown-item:active:before,
    .navbar .dropdown-item:hover:before,
    .navbar .dropdown-item:hover:before {
        height: 100%;
        top: 0;
        background: var(--bs-primary);
    }

.navbar .navbar-top .btn {
    font-size: 12px;
    font-weight: 500;
}

    .navbar .navbar-top .btn:hover {
        box-shadow: none;
        transform: none;
    }

@media (max-width: 1399.98px) {
    .navbar .nav-item.dropdown {
        flex-direction: column;
        align-items: stretch;
    }

        .navbar .nav-item.dropdown .dropdown-menu {
            width: 100%;
            box-shadow: none;
        }
}

/* END NAVBAR */

/* SWIPER BANNER */
.swiper-button-next svg,
.swiper-button-prev svg {
    color: var(--bs-primary);
}
/* END SWIPER BANNER */

/* CONTENT */
.container-fluid {
    max-width: 1905px;
}

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

.mt-10 {
    margin-top: clamp(2.5rem, 7vw, 6rem);
}

a .shape {
    position: absolute;
    width: 12px;
    height: 12px;
    margin-top: 0;
    margin-left: 5px;
    content: '';
    background-image: url(img/spp-shape.svg);
    opacity: 0;
    transition: all .15s ease;
}

a .display-4 .shape {
    width: 20px;
    height: 20px;
    margin-top: 10px;
    margin-left: 5px;
}

a:hover .shape {
    opacity: 1;
}

/* INTRO */
.intro-content {
    margin-bottom: 2rem;
}

@media (min-width: 992px) {
    .intro-content {
        margin-bottom: clamp(80px, 11vw, 165px);
    }
}

.intro-section .swiper-button-next,
.intro-section .swiper-button-prev {
    transform: scale(.8);
    transition: all .1s
}

    .intro-section .swiper-button-next:hover,
    .intro-section .swiper-button-prev:hover {
        transform: scale(1);
    }

    .intro-section .swiper-button-next.swiper-button-disabled,
    .intro-section .swiper-button-prev.swiper-button-disabled {
        opacity: 0;
    }
/* END INTRO */

/* SHORTCUTS */

@media (max-width: 991.98px) {
    .shortcuts .ratio {
        --bs-aspect-ratio: 56% !important;
    }
}

/* FILES LIST */
.files-list .list-group-item {
    border: 0;
    border-bottom: 1px solid #e8e8e8;
    padding: 15px 10px;
}

    .files-list .list-group-item:hover {
        background: #efefef;
        color: #1d1d1d;
    }

    .files-list .list-group-item .file-title {
        color: var(--bs-body-color);
        font-weight: 500;
        font-size: 16px;
    }

    .files-list .list-group-item .badge {
        font-size: 0.875rem;
        height: fit-content;
        padding-bottom: 6px;
    }

    .files-list .list-group-item .icon {
        width: 30px;
        height: 20px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

.grid-layout ul li .icon a[href$=".pdf"]:before,
.grid-layout ul li .icon a[href$=".PDF"]:before {
    background-image: url(img/content/files/file-pdf.svg);
}

.grid-layout ul li .icon a[href$=".DOC"]:before,
.grid-layout ul li .icon a[href$=".DOCX"]:before,
.grid-layout ul li .icon a[href$=".doc"]:before,
.grid-layout ul li .icon a[href$=".docx"]:before {
    background-image: url(img/content/files/file-word.svg);
}

.grid-layout ul li .icon a[href$=".xls"]:before,
.grid-layout ul li .icon a[href$=".XLS"]:before,
.grid-layout ul li .icon a[href$=".xlsx"]:before,
.grid-layout ul li .icon a[href$=".XLSX"]:before {
    background-image: url(img/content/files/file-excel.svg);
}

.grid-layout ul li .icon a[href$=".zip"]:before,
.grid-layout ul li .icon a[href$=".ZIP"]:before,
.grid-layout ul li .icon a[href$=".rar"]:before,
.grid-layout ul li .icon a[href$=".RAR"]:before {
    background-image: url(img/content/files/file-zip.svg);
}

.applied-filters .btn svg {
    margin-top: 2px;
}

.applied-filters .reset-filters .btn:hover svg {
    color: var(--bs-danger);
}

.event-badge {
    color: #fff;
    font-size: 0.875rem;
    font-weight: 700;
    padding: 2px 4px;
    width: 28px;
    height: 28px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.has-events:hover .fc-daygrid-day-frame,
.has-events.active-day .fc-daygrid-day-frame {
    transition: all 0.2s ease;
}

.fc .fc-toolbar.fc-header-toolbar {
    margin-bottom: 20px;
}

.fc .fc-button-group .fc-button-primary {
    background: transparent;
    border-color: transparent;
    color: #646464;
}

    .fc .fc-button-group .fc-button-primary:hover {
        background: transparent;
        border-color: transparent;
        color: #000;
    }

.fc-theme-standard th {
    border: 1px solid var(--bs-primary);
}

.fc .fc-col-header-cell-cushion {
    color: #fff;
    padding: 12px 6px;
}

.fc .fc-daygrid-day-number {
    color: var(--bs-dark);
}

.fc .fc-button {
    padding: 5px 10px;
    font-size: 14px;
}

    .fc .fc-button .icon {
        line-height: 1;
    }

.fc .fc-button-primary:disabled {
    cursor: no-drop;
}

.fc-daygrid-day.fc-day-today {
    background: rgba(13,110,253,.1);
}

.fc-daygrid-event-harness {
    display: none;
}
/* END CALENDAR */

/* FOOTER */
footer {
    background: linear-gradient(180deg, var(--bs-light), transparent);
    border-top: 4px solid #f0f4f8;
    color: #525252;
}

    footer .logo-footer {
    }

    footer a,
    .nav .nav-link {
        font-size: 15.75px;
        color: var(--bs-secondary);
    }

        footer a:hover,
        .nav .nav-link:hover {
            color: var(--bs-primary);
        }

    footer .social-media .icon {
        width: 44px;
        height: 44px;
        display: flex;
        justify-content: center;
        align-items: center;
        transition: all .3s;
    }

        footer .social-media .icon img {
            filter: brightness(0) invert(1);
        }

    footer .nav .nav-item {
        margin-bottom: 10px;
    }
/* END FOOTER */

/* Fechado e aberto */
.accordion-green,
.accordion-button:not(.collapsed).accordion-green {
    background-color: rgb(70, 185, 172);
    color: #fff;
}

/* Remove a sombra azul quando abre */
.accordion-button:not(.collapsed).accordion-green {
    box-shadow: none;
}

/* Seta sempre branca */
.accordion-green::after {
    filter: brightness(0) invert(1);
}

.accordion-body .list-group-item a {
    text-decoration: none;
}

    .accordion-body .list-group-item a:hover {
        text-decoration: underline;
    }

.card-img-top {
    width: 100%;
    height: 200px;
    object-fit: contain;
    background-color: #f8f9fa;
}

.icon-file-word {
    color: #2b579a;
}

/* Cartão de imagem clicável (ElementListImage com embedLink) */
.image-card-clickable {
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}

    .image-card-clickable:hover {
        transform: translateY(-3px);
        box-shadow: 0 6px 16px rgba(0, 0, 0, .12);
    }

/* Tabelas inseridas via Rich Text (RTE) - dar bordas e espaçamento (o site não as tinha) */
.rich-text table,
.accordion-body table,
.grid-layout table,
.rte-description table {
    /* !important para vencer o width inline que o Tiptap põe na tabela */
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse;
    margin-bottom: 1rem;
}

    /* Ignora as larguras fixas do colgroup para as colunas distribuírem pela largura toda */
    .rich-text table col,
    .accordion-body table col,
    .grid-layout table col,
    .rte-description table col {
        width: auto !important;
    }

    .rich-text table th, .rich-text table td,
    .accordion-body table th, .accordion-body table td,
    .grid-layout table th, .grid-layout table td,
    .rte-description table th, .rte-description table td {
        border: 1px solid #dee2e6;
        padding: 0.5rem 0.75rem;
        vertical-align: top;
    }

/* Headers do accordion: quebrar texto longo para nova linha em vez de transbordar */
.accordion-button {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.card {
    height: 100%;
}

/* DISTRICT MAP (Atividades) */
.district-map svg {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

#activitiesCalendar {
    max-width: 750px;
    margin: 0 auto;
}

.district-map path {
    fill: rgba(var(--bs-primary-rgb), .25);
    cursor: pointer;
}

    .district-map path:hover,
    .district-map path:focus {
        fill: rgba(var(--bs-primary-rgb), .55);
        outline: none;
    }

    .district-map path.active {
        fill: var(--bs-primary);
    }

/* ACTIVITIES LIST */
.event-date {
    width: 56px;
}

.fc-daygrid-day-frame {
    position: relative;
}
/* END DISTRICT MAP / ACTIVITIES */

/* HEADER UTILITIES: redes sociais + seletor de idioma */
.header-utilities .social-media-header {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.header-utilities .lang-switch-item {
    text-decoration: none;
}

    .header-utilities .lang-switch-item.active {
        color: var(--bs-primary);
        text-decoration: underline;
    }

    .header-utilities .lang-switch-item + .lang-switch-item::before {
        margin-right: 6px;
        color: #ccc;
        text-decoration: none;
    }
/* END HEADER UTILITIES */

/* RESOURCE CARDS (Recursos) */
.resource-card {
    background-color: aliceblue;
    border-radius: 1rem;
    overflow: hidden;
}

a.btn-download:hover {
    color: #fff !important;
    background-color: #034ad8 !important;
    border-color: #034ad8 !important;
}
/* END RESOURCE CARDS */

/* HOMEPAGE HIGHLIGHT CARDS */
.highlight-card {
    transition: transform .3s ease, box-shadow .3s ease;
}
/* END HOMEPAGE HIGHLIGHT CARDS */

.footer-banner-img {
    max-height: 80px;
    width: auto;
}

/* HOMEPAGE HERO */
.hero-banner {
    position: relative;
    overflow: hidden;
    background-color: var(--bs-primary);
    padding-block: 80px;
}

    .hero-banner::before {
        top: 0;
        right: 0;
        bottom: 0;
        background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .01) 0, rgba(255, 255, 255, .01) 2px, transparent 2px, transparent 14px);
    }

.hero-image-frame {
    background-color: rgba(255, 255, 255, .08);
}

/* FEATURED ACTIVITIES */
.featured-activity-card {
    background-color: #fff;
    border: 1px solid var(--bs-border-color);
    transition: transform .3s ease, box-shadow .3s ease;
}

    .featured-activity-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
    }

.featured-activity-description {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* END HOMEPAGE HERO */

:root {
    --pnlm-spacing-4: 4px;
    --pnlm-target: 44px;
    --pnlm-border-width: 2px;
    --pnlm-shade-rgb: 39, 44, 98;

    --pnlm-teal-dark: #195a50;

    --font-sans: "quicksand", "Noto Sans", sans-serif;
    --pnlm-font-body: "Noto Sans", sans-serif;
}

:root {
    --bs-primary: var(--color-primary-900);
    --bs-primary-rgb: 39, 44, 98;
    --bs-primary-text-emphasis: var(--color-primary-800);
    --bs-primary-bg-subtle: var(--color-primary-100);
    --bs-primary-border-subtle: var(--color-primary-300);
    --bs-secondary: var(--color-primary-900);
    --bs-secondary-rgb: 39, 44, 98;
    --bs-success: var(--color-success-600);
    --bs-success-rgb: 0, 114, 76;
    --bs-success-text-emphasis: var(--color-success-800);
    --bs-success-bg-subtle: var(--color-success-100);
    --bs-danger: var(--color-danger-600);
    --bs-danger-rgb: 209, 35, 50;
    --bs-danger-text-emphasis: var(--color-danger-800);
    --bs-danger-bg-subtle: var(--color-danger-100);
    --bs-warning: var(--color-warning-600);
    --bs-warning-rgb: 251, 187, 60;
    --bs-warning-text-emphasis: var(--color-warning-900);
    --bs-warning-bg-subtle: var(--color-warning-100);
    --bs-info: var(--color-informative-500);
    --bs-info-rgb: 0, 121, 191;
    --bs-info-text-emphasis: var(--color-informative-800);
    --bs-info-bg-subtle: var(--color-informative-100);
    --bs-light: var(--color-neutral-100);
    --bs-light-rgb: 241, 243, 248;
    --bs-dark: var(--color-neutral-900);
    --bs-dark-rgb: 43, 54, 60;
    --bs-body-font-family: var(--pnlm-font-body);
    --bs-body-font-size: 1rem;
    --bs-body-line-height: 1.75;
    --bs-body-color: var(--color-neutral-900);
    --bs-body-color-rgb: 43, 54, 60;
    --bs-body-bg: #fff;
    --bs-secondary-color: var(--color-neutral-700);
    --bs-tertiary-color: var(--color-neutral-700);
    --bs-emphasis-color: var(--color-neutral-900);
    --bs-border-color: var(--color-neutral-300);
    --bs-border-color-translucent: var(--color-neutral-300);
    --bs-border-radius: var(--radius-none);
    --bs-border-radius-sm: var(--radius-none);
    --bs-border-radius-lg: var(--radius-none);
    --bs-border-radius-xl: var(--radius-none);
    --bs-border-radius-2xl: var(--radius-none);
    --bs-link-color: var(--color-primary-900);
    --bs-link-color-rgb: 39, 44, 98;
    --bs-link-hover-color: var(--pnlm-teal-dark);
    --bs-link-hover-color-rgb: 25, 90, 80;
    --bs-heading-color: var(--color-primary-900);
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--pnlm-font-body);
    font-size: var(--text-m-regular);
    line-height: 1.75;
    color: var(--color-neutral-900);
    background-color: #fff;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--font-sans);
    color: var(--color-primary-900);
    letter-spacing: 0;
    text-wrap: balance;
}

h1, .h1 {
    font-size: clamp(1.875rem, 1.2rem + 2.6vw, var(--text-3xl-regular));
    line-height: 1.25;
    font-weight: 700;
}

h2, .h2 {
    font-size: clamp(1.625rem, 1.15rem + 1.9vw, var(--text-2xl-regular));
    line-height: 1.3;
    font-weight: 700;
}

h3, .h3 {
    font-size: clamp(1.25rem, 1.05rem + 0.85vw, var(--text-xl-regular));
    line-height: 1.4;
    font-weight: 600;
}

h4, .h4 {
    font-size: var(--text-l-regular);
    line-height: 1.45;
    font-weight: 600;
}

h5, .h5 {
    font-size: 1.125rem;
    font-weight: 600;
}

h6, .h6 {
    font-size: 1rem;
    font-weight: 700;
}

.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    font-family: var(--font-sans);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
    padding-top: 50px;
}

.display-4 {
    font-size: clamp(1.875rem, 1.1rem + 3vw, var(--text-3xl-regular));
}

.display-5 {
    font-size: clamp(1.75rem, 1.1rem + 2.4vw, var(--text-3xl-regular));
}

.lead {
    font-size: var(--text-l-regular);
    font-weight: 400;
    line-height: 1.65;
    color: var(--color-neutral-800);
}

strong, b, .fw-bold {
    font-weight: 700;
}

main a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand):not(.page-link):not(.list-group-item):not(.card-link),
footer a:not(.btn):not(.nav-link):not(.icon) {
    color: var(--color-primary-900);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.25em;
    transition: color .15s ease, text-decoration-thickness .15s ease;
}

    main a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand):not(.page-link):not(.list-group-item):not(.card-link):hover,
    footer a:not(.btn):not(.nav-link):not(.icon):hover {
        color: var(--color-secondary-800);
        text-decoration-thickness: 2px;
    }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
.btn:focus-visible,
.nav-link:focus-visible,
.dropdown-item:focus-visible,
.btn-close:focus-visible,
.navbar-toggler:focus-visible,
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.page-link:focus,
.accordion-button:focus {
    outline: 3px solid var(--color-focus) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 5px #fff, 0 0 0 7px rgba(var(--pnlm-shade-rgb), .35);
}

.btn:focus:not(:focus-visible),
.nav-link:focus:not(:focus-visible),
.dropdown-item:focus:not(:focus-visible) {
    outline: none;
    box-shadow: none;
}

.hero-banner :where(a, button):focus-visible,
.ag-surface-dark :where(a, button):focus-visible {
    box-shadow: 0 0 0 5px rgba(var(--pnlm-shade-rgb), .9), 0 0 0 7px #fff;
}

#main,
:target {
    scroll-margin-top: 9rem;
}

main,
main > section {
    display: flow-root;
}

main {
    overflow-x: clip;
}

.skip-to-main {
    z-index: 1080;
}

    .skip-to-main a {
        display: inline-block;
        padding: var(--spacing-8) var(--spacing-16);
        background: var(--color-primary-900);
        color: #fff;
        font-weight: 700;
        text-decoration: underline;
        border-radius: var(--radius-none);
    }

.btn,
.nav-link,
.dropdown-item,
.page-link,
.navbar-toggler,
.btn-close {
    min-height: var(--pnlm-target);
}

footer .social-media .icon,
.header-utilities a {
    min-width: var(--pnlm-target);
    min-height: var(--pnlm-target);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }

    .wow,
    .animated {
        visibility: visible !important;
        animation: none !important;
        opacity: 1 !important;
    }
}

#preloader {
    animation: ag-preloader-fallback 0s linear 3s forwards;
}

@keyframes ag-preloader-fallback {
    to {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
}

@media (forced-colors: active) {
    .btn,
    .card,
    .form-control,
    .dropdown-menu {
        border: 1px solid ButtonBorder;
    }

    :focus-visible {
        outline: 3px solid Highlight;
    }
}

.container,
.container-lg,
.container-xl,
.container-xxl {
    max-width: 1440px;
    padding-left: clamp(1rem, 4vw, 2rem);
    padding-right: clamp(1rem, 4vw, 2rem);
}

.container-max {
    max-width: 1440px;
}

.mt-10 {
    margin-top: clamp(var(--spacing-48), 6vw, var(--spacing-64));
}

.mb-10 {
    margin-bottom: clamp(var(--spacing-48), 6vw, var(--spacing-64));
}

#header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background-color: #fff;
}

.h-menu {
    display: none;
}

.topbar {
    position: static;
    min-height: 0;
    background-color: var(--color-primary-900);
    border-bottom: 0 !important;
    font-size: var(--text-s-regular);
    color: #fff;
}

    .topbar .topbar-tagline {
        color: rgba(255, 255, 255, .85) !important;
        font-size: var(--text-s-regular);
    }

.header-utilities .social-media-header {
    width: auto;
    height: auto;
    max-width: 20px;
    max-height: 20px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    opacity: .85;
    transition: opacity .15s ease;
}

.header-utilities a:hover .social-media-header {
    opacity: 1;
}

.header-utilities .lang-switch-item {
    color: rgba(255, 255, 255, .85);
    font-size: var(--text-s-regular);
    font-weight: 700;
    padding: var(--pnlm-spacing-4) var(--spacing-8);
    border-radius: var(--radius-none);
}

    .header-utilities .lang-switch-item:hover {
        color: #fff;
        background-color: rgba(255, 255, 255, .12);
        text-decoration: underline;
    }

    .header-utilities .lang-switch-item.active,
    .header-utilities .lang-switch-item[aria-current="true"] {
        color: var(--color-primary-900);
        background-color: #fff;
        text-decoration: none;
    }

    .header-utilities .lang-switch-item + .lang-switch-item::before {
        content: none;
    }

.social-header {
    gap: var(--pnlm-spacing-4);
    padding-right: var(--spacing-8);
    margin-right: var(--pnlm-spacing-4);
    border-right: 1px solid rgba(255, 255, 255, .25);
}

    .social-header a {
        color: rgba(255, 255, 255, .85);
        transition: background-color .15s ease, color .15s ease;
    }

        .social-header a:hover {
            color: #fff;
            background-color: rgba(255, 255, 255, .12);
        }

.ag-side-media img {
    display: block;
    width: 100%;
}

.ag-split {
    display: flex;
    flex-direction: column;
}

.ag-split--surface {
    background-color: var(--color-neutral-100);
}

.ag-split__media {
    height: 240px;
}

    .ag-split__media img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.ag-split__body {
    padding-block: var(--spacing-32);
}

.ag-split__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-24);
}

@media (min-width: 768px) {
    .ag-split__media {
        height: 320px;
    }

    .ag-split__body {
        padding-block: var(--spacing-64);
    }
}

@media (min-width: 992px) {
    .ag-split {
        position: relative;
        display: block;
        min-height: 460px;
    }

    .ag-split__media {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        width: 50%;
        height: auto;
    }

    .ag-split__body {
        position: relative;
        display: flex;
        align-items: center;
        min-height: 460px;
        padding-block: var(--spacing-48);
    }

        .ag-split__body .container {
            display: flex;
            justify-content: flex-end;
        }

    .ag-split__content {
        width: 31.25rem;
        max-width: 100%;
    }

    /* Versão espelhada: imagem à direita, texto à esquerda. */
    .ag-split--reverse .ag-split__media {
        left: auto;
        right: 0;
    }

    .ag-split--reverse .ag-split__body .container {
        justify-content: flex-start;
    }
}

.ag-band {
    background-color: var(--color-primary-900);
    color: #fff;
    padding-block: var(--spacing-48);
}

@media (min-width: 768px) {
    .ag-band {
        padding-block: var(--spacing-80);
    }
}

.ag-band h2 {
    color: #fff;
}

.ag-band__cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-32);
}

    .ag-band__cta > div {
        display: flex;
        flex-direction: column;
        gap: var(--spacing-8);
        max-width: 42rem;
    }

    .ag-band__cta p {
        color: rgba(255, 255, 255, .92);
        margin-bottom: 0;
    }

/* Newsletter: texto de um lado, formulário do outro, a partir de md. */
.ag-newsletter-grid {
    display: grid;
    gap: var(--spacing-32);
}

@media (min-width: 768px) {
    .ag-newsletter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--spacing-56);
    }
}

.ag-newsletter-intro {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-8);
}

.ag-kicker {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 0;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 1.5px;
    line-height: 1.4;
    text-transform: uppercase;
    color: #545454;
}

    .ag-kicker::before {
        content: "";
        flex: none;
        width: 34px;
        height: 2px;
        background: #545454;
    }

@media (min-width: 992px) {
    .ag-side-media {
        position: relative;
        height: 100%;
        min-height: 240px;
    }

        .ag-side-media img {
            position: absolute;
            inset: 0;
            height: 100%;
            object-fit: cover;
        }
}

.ag-cover {
    --bs-aspect-ratio: 38%;
    background-color: var(--color-neutral-200);
    overflow: hidden;
}

.ag-cover__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-neutral-200);
}

    .ag-cover__placeholder i {
        font-size: 2rem;
        color: var(--color-neutral-500);
    }

.community-slider-band {
    position: relative;
    padding-block: var(--spacing-80);
}

    .community-slider-band::before {
        content: "";
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: 100vw;
        top: 0;
        bottom: 0;
        background-color: var(--color-primary-900);
        z-index: 0;
    }

    .community-slider-band > .swiper,
    .community-band__head {
        position: relative;
        z-index: 1;
    }

.community-band__head {
    --bs-secondary-color: rgba(255, 255, 255, .92);
    --bs-tertiary-color: rgba(255, 255, 255, .92);
    color: rgba(255, 255, 255, .92);
}

    .community-band__head .text-secondary {
        color: #fff !important;
    }

    .community-band__head a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand):not(.page-link):not(.list-group-item):not(.card-link) {
        color: #fff;
    }

        .community-band__head a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand):not(.page-link):not(.list-group-item):not(.card-link):hover {
            color: var(--color-secondary-900);
        }

    .community-band__head .ag-section-title::before {
        background-color: var(--color-secondary-900);
    }

.community-swiper .swiper-slide {
    height: auto;
}

.community-card .ag-cover {
    --bs-aspect-ratio: 56%;
}

.community-swiper:not(.swiper-initialized) .swiper-slide {
    width: 100%;
    flex-shrink: 0;
}

.resource-card .card-body,
.toolkit-card .card-body,
.community-card .card-body {
    padding: var(--spacing-24);
}

.resource-card .card-body,
.toolkit-card .card-body {
    gap: var(--spacing-16);
}

.ag-card-desc {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ag-card-open {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

    .ag-card-open::after {
        content: "";
        position: absolute;
        inset: 0;
    }

    .ag-card-open:hover {
        color: #3cd6bf;
        text-decoration: underline;
    }

    .ag-card-open:focus-visible {
        outline: none !important;
        box-shadow: none;
    }

        .ag-card-open:focus-visible::after {
            outline: 3px solid var(--color-focus);
            outline-offset: 2px;
            box-shadow: 0 0 0 5px #fff, 0 0 0 7px rgba(var(--pnlm-shade-rgb), .35);
        }

.resource-card .btn-download,
.toolkit-card .btn-download {
    position: relative;
    z-index: 1;
}

.resource-card:hover,
.toolkit-card:hover,
.community-card:hover {
    box-shadow: var(--shadow-bottom-high);
}

.ag-detail-modal__cover {
    --bs-aspect-ratio: 50%;
    background-color: var(--color-neutral-200);
    overflow: hidden;
}

.ag-detail-modal .modal-footer {
    justify-content: flex-start;
}

.social-fallback {
    font-size: var(--text-s-regular);
    font-weight: 600;
    padding: 0 var(--pnlm-spacing-4);
    white-space: nowrap;
}

.navbar.fixed-top {
    position: static;
    top: auto;
    background-color: #fff;
    border-bottom: 1px solid var(--color-neutral-200);
    padding-block: 20px;
}

    .navbar.fixed-top.affix {
        border-bottom-color: transparent;
        box-shadow: var(--shadow-center-medium);
    }

.navbar .navbar-brand img {
    height: 50px;
    width: auto;
}

.navbar-brand:focus-visible {
    outline-offset: 4px;
}

.ag-logo {
    display: block;
    height: 56px;
    width: auto;
    max-width: 100%;
}

@media (max-width: 575.98px) {
    .ag-logo {
        height: 42px;
    }
}

.logo-footer .ag-logo {
    height: 52px;
}

@media print {
    .ag-logo rect {
        fill: #000;
    }

    .ag-logo text {
        fill: #000;
    }

        .ag-logo rect + text,
        .ag-logo text:nth-of-type(-n+2) {
            fill: #fff;
        }
}

.navbar .nav-link.btn {
    min-height: var(--pnlm-target);
}

@media (min-width: 1400px) {
    .navbar-nav {
        gap: var(--spacing-16);
    }

        .navbar-nav > .nav-item {
            display: flex;
            align-items: center;
        }
}

.navbar .nav-link {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-neutral-900);
    padding: var(--spacing-8) var(--spacing-16);
    border-radius: var(--radius-none);
    display: flex;
    align-items: center;
    position: relative;
    gap: 15px;
}

    .navbar .nav-link::before {
        content: "";
        position: absolute;
        left: var(--spacing-16);
        right: var(--spacing-16);
        bottom: 0;
        height: 3px;
        background-color: var(--color-primary-900);
        border-radius: var(--radius-none);
        opacity: 0;
    }

    .navbar .nav-link:hover::before,
    .navbar .nav-link.active::before,
    .navbar .nav-link[aria-current="page"]::before {
        opacity: 1;
    }

    .navbar .nav-link.active,
    .navbar .nav-link[aria-current="page"] {
        color: var(--color-primary-700);
    }

.navbar .dropdown-toggle::after {
    content: "";
    display: inline-block;
    margin-left: var(--spacing-8);
    height: 6px;
    width: 6px;
    border: 0;
    border-bottom: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform .2s ease;
}

.navbar .dropdown-toggle[aria-expanded="true"]::after {
    transform: rotate(-135deg) translate(-2px, -2px);
}

.navbar .dropdown-menu {
    --bs-dropdown-border-width: 0;
    --bs-dropdown-border-radius: 0 0 var(--radius-none) var(--radius-none);
    --bs-dropdown-padding-y: var(--spacing-8);
    --bs-dropdown-link-color: var(--color-neutral-900);
    --bs-dropdown-link-hover-color: var(--color-primary-700);
    --bs-dropdown-link-hover-bg: var(--color-primary-100);
    --bs-dropdown-link-active-color: var(--color-primary-700);
    --bs-dropdown-link-active-bg: var(--color-primary-100);
    font-size: 0.9375rem;
    box-shadow: inset 0 4px 0 -1px var(--color-primary-900), var(--shadow-bottom-high);
}

.navbar .dropdown-item {
    padding: var(--spacing-8) var(--spacing-16);
    font-weight: 500;
    display: flex;
    align-items: center;
}

    .navbar .dropdown-item.active::before,
    .navbar .dropdown-item:hover::before {
        background: var(--color-primary-900);
    }

.navbar-toggler {
    border-radius: var(--radius-none);
    padding: var(--spacing-8) var(--spacing-16);
}

    .navbar-toggler .icon-bar {
        background-color: var(--color-primary-900);
    }

    .navbar-toggler .menu-text {
        color: var(--color-primary-900) !important;
    }

    .navbar-toggler:hover {
        background-color: var(--color-primary-100);
    }

@media (max-width: 1399.98px) {
    .navbar-collapse {
        padding-top: var(--spacing-8);
        padding-bottom: var(--spacing-8);
        max-height: calc(100vh - 9rem);
        overflow-y: auto;
    }

        .navbar-collapse .nav-item {
            border-bottom: 1px solid var(--color-neutral-200);
        }

        .navbar-collapse .nav-link {
            padding-top: var(--spacing-16);
            padding-bottom: var(--spacing-16);
        }

        .navbar-collapse .dropdown-menu {
            box-shadow: none;
            background-color: var(--color-neutral-50);
            border-radius: 0;
        }
}

.btn {
    --bs-btn-padding-x: var(--spacing-24);
    --bs-btn-padding-y: 0.75rem;
    --bs-btn-font-size: var(--text-m-regular);
    --bs-btn-font-weight: 600;
    --bs-btn-line-height: 1.5;
    --bs-btn-border-width: var(--pnlm-border-width);
    --bs-btn-border-radius: var(--radius-none);
    --bs-btn-focus-shadow-rgb: 244, 8, 252;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-8);
    min-height: 52px;
    text-decoration: none;
    border-radius: var(--radius-none);
    letter-spacing: normal;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

    .btn:hover {
        transform: none;
        box-shadow: none;
    }

.btn-lg {
    --bs-btn-padding-x: var(--spacing-32);
    --bs-btn-font-size: var(--text-l-regular);
    min-height: 60px;
}

.btn-sm {
    --bs-btn-padding-x: var(--spacing-16);
    --bs-btn-padding-y: 0.5rem;
    --bs-btn-font-size: var(--text-s-regular);
    min-height: var(--pnlm-target);
}

.btn.rounded-pill,
.badge.rounded-pill,
.btn.rounded-4,
.btn.rounded-3 {
    border-radius: var(--radius-none) !important;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--color-primary-900);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--color-primary-700);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--color-primary-800);
    --bs-btn-active-border-color: transparent;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--color-neutral-500);
    --bs-btn-disabled-border-color: transparent;
    --bs-btn-disabled-opacity: 1;
}

.btn-secondary {
    --bs-btn-bg: var(--color-secondary-900);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: var(--color-primary-900);
    --bs-btn-hover-bg: var(--color-secondary-400);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--pnlm-teal-dark);
    --bs-btn-disabled-bg: var(--color-neutral-300);
    --bs-btn-disabled-color: var(--color-neutral-700);
    --bs-btn-disabled-opacity: 1;
}

.btn-outline-primary {
    --bs-btn-color: var(--color-primary-900);
    --bs-btn-border-color: var(--color-primary-900);
    --bs-btn-bg: transparent;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--color-primary-900);
    --bs-btn-hover-border-color: var(--color-primary-900);
    --bs-btn-active-bg: var(--color-primary-800);
    --bs-btn-active-border-color: var(--color-primary-800);
}

.btn-outline-secondary {
    --bs-btn-color: var(--color-primary-900);
    --bs-btn-border-color: var(--color-neutral-700);
    --bs-btn-bg: #fff;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--color-primary-900);
    --bs-btn-hover-border-color: var(--color-primary-900);
    --bs-btn-active-bg: var(--color-primary-800);
    --bs-btn-active-border-color: var(--color-primary-800);
}

.btn-outline-light {
    --bs-btn-color: #fff;
    --bs-btn-border-color: #fff;
    --bs-btn-bg: transparent;
    --bs-btn-hover-color: var(--color-primary-900);
    --bs-btn-hover-bg: #fff;
    --bs-btn-hover-border-color: #fff;
    --bs-btn-active-color: var(--color-primary-900);
    --bs-btn-active-bg: #fff;
}

.btn-light {
    --bs-btn-color: var(--color-primary-900);
    --bs-btn-bg: #fff;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: var(--color-primary-900);
    --bs-btn-hover-bg: var(--color-neutral-100);
    --bs-btn-hover-border-color: transparent;
}

.btn-link {
    --bs-btn-color: var(--color-primary-900);
    --bs-btn-hover-color: var(--color-primary-800);
    --bs-btn-border-color: transparent;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.4rem;
}

    .btn-link:hover {
        text-decoration-color: currentColor;
    }

.card {
    --bs-card-border-color: var(--color-neutral-200);
    --bs-card-border-radius: var(--radius-none);
    --bs-card-inner-border-radius: var(--radius-none);
    --bs-card-spacer-x: var(--spacing-24);
    --bs-card-spacer-y: var(--spacing-24);
    --bs-card-cap-bg: var(--color-neutral-100);
    background-color: #fff;
}

.ag-card,
.resource-card,
.footer-contact-card,
.featured-activity-card {
    background-color: var(--color-neutral-100);
    border: 0;
    border-radius: var(--radius-none);
    box-shadow: none;
    transition: box-shadow .2s ease, transform .2s ease;
}

.ag-card--accent,
.footer-contact-card {
    border-left: 4px solid var(--color-primary-500);
}

a.ag-card:hover,
a.resource-card:hover,
.featured-activity-card:hover,
.image-card-clickable:hover,
.highlight-card:hover {
    box-shadow: var(--shadow-bottom-high);
    transform: translateY(-2px);
}

.featured-activity-card {
    border: 0;
}

.ag-card,
.featured-activity-card,
.resource-card,
.footer-contact-card,
.alert,
.files-list .list-group-item,
.card,
footer {
    --bs-secondary-color: var(--color-neutral-800);
    --bs-tertiary-color: var(--color-neutral-800);
}

.rounded-4,
.rounded-3 {
    border-radius: var(--radius-none) !important;
}

.ratio > img, .card-img-top {
    border-radius: var(--radius-none);
    background-color: var(--color-neutral-100);
}

.ratio > .card-img-top {
    height: 100%;
    width: 100%;
}

.form-label {
    font-weight: 600;
    color: var(--color-primary-900);
    margin-bottom: var(--spacing-8);
}

.form-control,
.form-select {
    min-height: 52px;
    padding: 0.75rem var(--spacing-16);
    font-size: var(--text-m-regular);
    color: var(--color-neutral-900);
    background-color: #fff;
    border: var(--pnlm-border-width) solid var(--color-neutral-700);
    border-radius: var(--radius-none);
}

    .form-control::placeholder {
        color: var(--color-neutral-700);
        opacity: 1;
    }

    .form-control:hover,
    .form-select:hover {
        border-color: var(--color-primary-900);
    }

    .form-control:disabled {
        background-color: var(--color-neutral-100);
        border-color: var(--color-neutral-400);
        color: var(--color-neutral-800);
    }

.form-check-input {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.2rem;
    border: var(--pnlm-border-width) solid var(--color-neutral-700);
    border-radius: var(--radius-none);
}

    .form-check-input:checked {
        background-color: var(--color-primary-900);
        border-color: var(--color-primary-900);
    }

.form-check-label {
    padding-left: var(--pnlm-spacing-4);
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
    cursor: pointer;
}

.form-check {
    padding-left: 1.9rem;
}

    .form-check .form-check-input {
        margin-left: -1.9rem;
    }

#regionFilters .form-check {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

    #regionFilters .form-check .form-check-input {
        margin-top: 0;
        flex-shrink: 0;
    }

#regionFilters {
    width: max-content;
    max-width: calc(100vw - 2rem);
}

.ag-required {
    color: var(--pnlm-teal-dark);
    font-weight: 700;
}

.invalid-feedback {
    color: var(--color-danger-600);
    font-size: var(--text-s-regular);
}

.form-control.is-invalid,
.form-select.is-invalid,
.form-check-input.is-invalid {
    border-color: var(--color-danger-600);
    border-width: 2px;
}

.applied-filters .btn {
    background-color: var(--color-primary-100);
    border: 1px solid var(--color-primary-300);
    color: var(--color-primary-800);
    border-radius: var(--radius-none) !important;
    font-weight: 600;
}

    .applied-filters .btn:hover {
        background-color: var(--color-primary-200);
        border-color: var(--color-primary-900);
    }

.applied-filters .reset-filters .btn {
    background-color: transparent;
    border-color: transparent;
    color: var(--color-primary-900);
    text-decoration: underline;
}

    .applied-filters .reset-filters .btn:hover {
        background-color: var(--color-neutral-200);
        border-color: transparent;
        color: var(--color-neutral-900);
    }

.results-count {
    margin-bottom: var(--spacing-16);
    font-size: var(--text-s-regular);
    font-weight: 600;
    color: var(--color-neutral-800);
}

    .results-count:empty {
        display: none;
    }

.ag-row {
    position: relative;
    background-color: #fff;
    border-color: var(--color-neutral-200);
}

    .ag-row:hover {
        background-color: var(--color-primary-100);
    }

    .ag-row .badge {
        position: relative;
        z-index: 1;
    }

.badge {
    font-weight: 600;
    font-size: 0.875rem;
    letter-spacing: .02em;
    padding: 0.35em 0.7em;
    border-radius: var(--radius-none);
}

.ag-status {
    display: inline-block;
    padding: 0.3em 0.65em;
    border-radius: var(--radius-none);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.35;
}

.ag-status--live {
    background-color: var(--color-primary-700);
    color: #fff;
}

.ag-status--open {
    background-color: var(--color-success-600);
    color: #fff;
}

.ag-status--soon {
    background-color: var(--color-warning-900);
    color: #fff;
}

.bg-primary-subtle {
    background-color: var(--color-primary-100) !important;
}

.text-primary-emphasis {
    color: var(--color-primary-800) !important;
}

.bg-success-subtle {
    background-color: var(--color-success-100) !important;
}

.text-success-emphasis {
    color: var(--color-success-800) !important;
}

.bg-warning-subtle {
    background-color: var(--color-warning-100) !important;
}

.text-warning-emphasis {
    color: var(--color-warning-900) !important;
}

.alert {
    --bs-alert-border-radius: var(--radius-none);
    border: 0;
    border-left: 4px solid var(--color-primary-900);
    background-color: var(--color-primary-100);
    color: var(--color-neutral-900);
    padding: var(--spacing-16) var(--spacing-24);
}

.alert-light {
    background-color: var(--color-neutral-100);
    border-left-color: var(--color-neutral-700);
}

.nav-tabs {
    --bs-nav-tabs-border-width: 2px;
    --bs-nav-tabs-border-color: var(--color-neutral-300);
    --bs-nav-tabs-border-radius: 0;
    --bs-nav-tabs-link-active-color: var(--color-primary-700);
    --bs-nav-tabs-link-active-bg: transparent;
    --bs-nav-tabs-link-active-border-color: transparent transparent var(--color-primary-900);
    --bs-nav-link-color: var(--color-neutral-800);
    --bs-nav-link-hover-color: var(--color-primary-700);
    gap: var(--spacing-8);
}

    .nav-tabs .nav-link {
        font-weight: 600;
        border-width: 0 0 2px 0;
        border-radius: 0;
        padding: var(--spacing-16) var(--spacing-24);
        margin-bottom: -2px;
    }

        .nav-tabs .nav-link.active {
            border-bottom-width: 4px;
            margin-bottom: -2px;
        }

.accordion {
    --bs-accordion-border-color: var(--color-neutral-300);
    --bs-accordion-border-radius: var(--radius-none);
    --bs-accordion-btn-focus-box-shadow: none;
    --bs-accordion-active-color: var(--color-primary-900);
    --bs-accordion-active-bg: var(--color-primary-100);
    --bs-accordion-btn-padding-y: var(--spacing-16);
    --bs-accordion-btn-padding-x: var(--spacing-24);
}

.accordion-button {
    font-weight: 600;
    color: var(--color-primary-900);
    min-height: 56px;
}

    .accordion-green,
    .accordion-button:not(.collapsed).accordion-green {
        background-color: var(--color-primary-900);
        color: #fff;
    }

.accordion-body .list-group-item a {
    color: var(--color-primary-900);
}

    .accordion-body .list-group-item a:hover {
        color: var(--color-primary-800);
    }

.list-group {
    --bs-list-group-border-color: var(--color-neutral-200);
    --bs-list-group-border-radius: var(--radius-none);
    --bs-list-group-action-hover-bg: var(--color-primary-100);
    --bs-list-group-active-bg: var(--color-primary-900);
    --bs-list-group-active-border-color: var(--color-primary-900);
}

.files-list .list-group-item:nth-child(odd) {
    background-color: var(--color-neutral-50);
}

.files-list .list-group-item .badge {
    color: var(--color-neutral-800);
}

.files-list .list-group-item:hover {
    background-color: var(--color-primary-100);
    color: var(--color-primary-900);
}

.modal {
    --bs-modal-border-radius: var(--radius-none);
    --bs-modal-border-width: 0;
    --bs-modal-header-border-color: var(--color-neutral-200);
}

.modal-search .input-group {
    border-color: var(--color-primary-900) !important;
}

.rich-text table th,
.accordion-body table th,
.grid-layout table th,
.rte-description table th {
    background-color: var(--color-neutral-100);
    color: var(--color-primary-900);
    font-weight: 700;
    border-color: var(--color-neutral-300);
}

.rich-text table td,
.accordion-body table td,
.grid-layout table td,
.rte-description table td {
    border-color: var(--color-neutral-300);
}

.hero-banner {
    position: relative;
    overflow: hidden;
    background-color: var(--color-primary-900);
    color: #fff;
}

    .hero-banner::before {
        content: "";
        position: absolute;
        inset: 0;
        width: 100%;
        background-color: transparent;
    }

    .hero-banner::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 45%;
        background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .005) 0, rgba(255, 255, 255, .005) 2px, transparent 2px, transparent 14px);
        pointer-events: none;
    }

.hero-banner--with-media::after {
    right: auto;
    left: 0;
    width: 50%;
}

.hero-banner .container {
    position: relative;
    z-index: 1;
}

.hero-media {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 50%;
    z-index: 0;
    pointer-events: none;
}

    .hero-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display: block;
    }

@media (min-width: 992px) {
    .hero-banner--with-media {
        min-height: clamp(26rem, 38vw, 34rem);
        display: flex;
        align-items: center;
    }

        .hero-banner--with-media > .container {
            width: 100%;
        }
}

@media (max-width: 991.98px) {
    .hero-banner--with-media {
        display: flex;
        flex-direction: column;
    }

        .hero-banner--with-media::after {
            display: none;
        }

    .hero-media {
        order: 2;
        position: relative;
        width: 100%;
        height: clamp(10rem, 40vw, 15rem);
    }

    .hero-banner--with-media > .container {
        order: 1;
    }
}

.hero-banner h1,
.hero-banner h2 {
    color: #fff;
}

.hero-kicker {
    display: flex;
    align-items: center;
    gap: var(--spacing-8);
    color: var(--color-secondary-900);
    letter-spacing: .08em;
    font-size: 20px;
    font-weight: 700;
}

    .hero-kicker::before {
        content: "";
        flex: none;
        width: 40px;
        height: 3px;
        background: currentColor;
    }

.hero-title {
    font-size: clamp(1.875rem, 1.1rem + 3vw, 3rem);
    line-height: 1.15;
    font-weight: 700;
}

.hero-description {
    color: rgba(255, 255, 255, .92);
    font-size: 18px;
    max-width: 40rem;
    font-weight: 500;
}

.hero-index-card {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--spacing-16) var(--spacing-32);
    margin: var(--spacing-24) 0 0;
    padding: var(--spacing-24);
    background-color: #fff;
    border-radius: var(--radius-none);
    box-shadow: var(--shadow-bottom-low);
}

@media (min-width: 992px) {
    .hero-index-card {
        margin-top: calc(var(--spacing-48) * -1);
        padding: var(--spacing-32) var(--spacing-48);
        position: relative;
        z-index: 2;
    }
}

.hero-stat {
    display: flex;
    font-weight: 400;
    flex-direction: column-reverse;
    gap: var(--pnlm-spacing-4);
}

    .hero-stat + .hero-stat {
        border-left: 1px solid var(--color-neutral-200);
        padding-left: var(--spacing-32);
    }

@media (max-width: 991.98px) {
    .hero-stat + .hero-stat {
        border-left: 0;
        padding-left: 0;
        border-top: 1px solid var(--color-neutral-200);
        padding-top: var(--spacing-16);
    }
}

.hero-stat-number {
    margin: 0;
    font-size: var(--text-2xl-regular);
    font-weight: 700;
    line-height: 1.1;
    color: var(--color-primary-900);
    font-variant-numeric: tabular-nums;
}

.hero-stat-label {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-neutral-800);
}

.ag-card--article {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-8);
    padding: var(--spacing-24);
}

.ag-card__link {
    color: var(--color-primary-900);
    text-decoration: none;
}

    .ag-card__link::after {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: inherit;
    }

    .ag-card__link:hover {
        color: var(--color-primary-700);
        text-decoration: underline;
    }

    .ag-card__link:focus-visible {
        outline: none !important;
        box-shadow: none;
    }

        .ag-card__link:focus-visible::after {
            outline: 3px solid var(--color-focus);
            outline-offset: 2px;
            box-shadow: 0 0 0 5px #fff, 0 0 0 7px rgba(var(--pnlm-shade-rgb), .35);
        }

.ag-card__link--onimage,
.ag-card__link--onimage:hover {
    color: #fff;
}

    .ag-card__link--onimage:focus-visible::after {
        outline-offset: -4px;
        box-shadow: inset 0 0 0 6px rgba(var(--pnlm-shade-rgb), .85);
    }

.highlight-card {
    background-color: var(--color-neutral-200);
    border-radius: var(--radius-none);
}

    .highlight-card img {
        transition: transform .4s ease;
    }

    .highlight-card:hover {
        transform: none;
        box-shadow: var(--shadow-bottom-high);
    }

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

@media (prefers-reduced-motion: reduce) {
    .highlight-card:hover img {
        transform: none;
    }
}

.ag-section-title {
    position: relative;
    padding-left: var(--spacing-16);
}

    .ag-section-title::before {
        content: "";
        position: absolute;
        left: 0;
        top: .15em;
        bottom: .15em;
        width: 4px;
        background-color: var(--color-primary-900);
        border-radius: var(--radius-none);
    }

.highlight-card-overlay {
    background: linear-gradient(to top, rgba(var(--pnlm-shade-rgb), .85), rgba(var(--pnlm-shade-rgb), 0) 70%);
}

.district-map path {
    stroke: #fff;
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
    transition: fill .15s ease;
}

.district-map .district--empty {
    fill: var(--color-neutral-300);
    cursor: default;
}

.district-map .district--has-activities {
    fill: var(--color-primary-400);
    cursor: pointer;
}

.district-map .district--empty.district--in-region {
    fill: var(--color-neutral-500);
}

.district-map .district--has-activities.district--in-region {
    fill: var(--color-primary-700);
}

    .district-map .district--has-activities.district--in-region:hover,
    .district-map .district--has-activities.district--in-region:focus-visible {
        fill: var(--color-primary-900);
    }

.district-map .district--has-activities:hover {
    fill: var(--color-primary-600);
}

.district-map .district--has-activities:focus-visible {
    fill: var(--color-primary-600);
    outline: none;
    stroke: var(--color-focus);
    stroke-width: 3;
}

.district-map .district.active {
    fill: var(--color-primary-900);
}

.event-badge {
    background: var(--color-primary-900);
    border-radius: var(--radius-none);
}

.fc {
    --fc-border-color: var(--color-neutral-200);
    --fc-today-bg-color: var(--color-primary-100);
    --fc-page-bg-color: #fff;
    font-family: var(--pnlm-font-body);
}

    .fc .fc-toolbar-title {
        font-size: var(--text-l-regular);
        font-weight: 700;
        color: var(--color-primary-900);
    }

    .fc .fc-button {
        min-height: var(--pnlm-target);
        border-radius: var(--radius-none);
        font-weight: 600;
    }

    .fc .fc-button-primary {
        background: transparent;
        border: 2px solid transparent;
        color: var(--color-neutral-800);
    }

        .fc .fc-button-primary:hover {
            background: var(--color-primary-100);
            border-color: transparent;
            color: var(--color-primary-700);
        }

        .fc .fc-button-primary:focus-visible {
            outline: 3px solid var(--color-focus);
            outline-offset: 2px;
            box-shadow: 0 0 0 5px #fff;
        }

        .fc .fc-button-primary:disabled {
            opacity: .45;
            background: transparent;
            color: var(--color-neutral-800);
        }

.fc-theme-standard th {
    border-color: var(--color-primary-900);
    background: var(--color-primary-900);
}

#activitiesCalendar .fc-col-header-cell-cushion,
#activitiesCalendar .fc-col-header-cell-cushion:hover {
    color: #fff;
    font-weight: 600;
    padding: var(--spacing-8) var(--pnlm-spacing-4);
    text-decoration: none;
}

#activitiesCalendar .fc-daygrid-day-number,
#activitiesCalendar .fc-daygrid-day-number:hover {
    color: var(--color-neutral-900);
    text-decoration: none;
}

    #activitiesCalendar .fc-daygrid-day-number:focus-visible,
    #activitiesCalendar .fc-col-header-cell-cushion:focus-visible {
        outline: 3px solid var(--color-focus);
        outline-offset: -3px;
    }

.fc .fc-daygrid-day.fc-day-today {
    background-color: var(--color-primary-100);
}

.has-events:hover .fc-daygrid-day-frame,
.has-events.active-day .fc-daygrid-day-frame {
    box-shadow: inset 0 0 0 2px var(--color-primary-900);
}

footer {
    background: var(--color-primary-900);
    border-top: 4px solid var(--color-secondary-900);
    color: rgba(255, 255, 255, .92);
    --bs-secondary-color: rgba(255, 255, 255, .92);
    --bs-tertiary-color: rgba(255, 255, 255, .92);
    padding-block: 80px;
}

    footer h2, footer h3 {
        color: #fff;
        font-size: var(--text-m-regular);
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .06em;
    }

    footer li a {
        padding-block: 11px;
    }

    footer a,
    footer .nav .nav-link {
        font-size: var(--text-m-regular);
        color: rgba(255, 255, 255, .92);
    }

        footer a:hover,
        footer .nav .nav-link:hover {
            color: #3cd6bf;
        }

        footer a:not(.btn):not(.nav-link):not(.icon) {
            color: rgba(255, 255, 255, .92);
        }

            footer a:not(.btn):not(.nav-link):not(.icon):hover {
                color: #3cd6bf;
            }

    footer .text-dark,
    footer .text-secondary {
        color: rgba(255, 255, 255, .92) !important;
    }

    footer .text-primary {
        color: var(--color-secondary-900) !important;
    }

    footer .footer-contact-card .text-dark {
        color: var(--color-neutral-900) !important;
    }

    footer .footer-contact-card .text-secondary {
        color: var(--color-primary-900) !important;
    }

    footer .footer-contact-card a:not(.btn):not(.nav-link):not(.icon) {
        color: var(--color-primary-900);
    }

    footer .social-media .icon {
        background-color: rgba(255, 255, 255, .12);
        border-radius: var(--radius-none);
    }

        footer .social-media .icon .social-media-footer {
            width: auto;
            height: auto;
            max-width: 22px;
            max-height: 22px;
            object-fit: contain;
        }

        footer .social-media .icon:hover {
            background-color: rgba(255, 255, 255, .22);
        }

    footer .footer-bottom__feed {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: var(--pnlm-target);
        min-height: var(--pnlm-target);
        padding: var(--pnlm-spacing-4) var(--spacing-8);
        margin: calc(var(--pnlm-spacing-4) * -1) calc(var(--spacing-8) * -1);
        color: rgba(255, 255, 255, .92);
        font-size: 1.1rem;
    }

        footer .footer-bottom__feed:hover,
        footer .footer-bottom__feed:focus-visible {
            color: var(--color-secondary-900);
        }

.footer-col-title {
    color: #3cd6bf !important;
    font-size: 20px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-bottom: var(--spacing-16);
}

.footer-contacts {
    font-style: normal;
    line-height: 2;
    margin-bottom: 16px;
}

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

    .footer-links li + li {
        margin-block: 24px;
    }

.footer-map {
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(255, 255, 255, .25);
    min-height: 240px;
}

    .footer-map img,
    .footer-map iframe {
        width: 100%;
        display: block;
        border: 0;
    }

    .footer-map img {
        height: auto;
    }

    .footer-map iframe {
        flex: 1 1 auto;
        height: 100%;
    }

.footer-map--consent {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: var(--spacing-8);
    padding: var(--spacing-16);
}

.footer-map--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-s-regular);
    color: rgba(255, 255, 255, .75);
    background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, .01) 0, rgba(255, 255, 255, .01) 6px, transparent 6px, transparent 14px);
}

.footer-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-8);
    padding: var(--spacing-8) var(--spacing-16);
    background-color: #fff;
    border: 1px solid #fff;
    min-height: var(--pnlm-target);
}

.footer-badge__text {
    color: var(--color-primary-900);
    font-size: var(--text-s-regular);
    font-weight: 700;
}

.footer-badge__rcm {
    color: var(--color-neutral-700);
    font-size: 0.875rem;
    font-weight: 400;
    white-space: nowrap;
}

.footer-badge--seal {
    background-color: transparent;
    border-color: var(--color-secondary-900);
    color: var(--color-secondary-900);
}

.footer-bottom__links {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-8) var(--spacing-24);
    margin: 0;
    padding: 0;
    font-size: var(--text-s-regular);
}

footer .copyright {
    background-color: transparent !important;
    border: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, .18) !important;
    color: rgba(255, 255, 255, .85);
    font-size: var(--text-s-regular);
    margin-top: var(--spacing-48) !important;
}

    footer .copyright,
    footer .copyright .text-muted {
        color: rgba(255, 255, 255, .85) !important;
    }

        footer .copyright a:not(.btn):not(.nav-link) {
            color: #fff;
            text-decoration: underline;
        }

            footer .copyright a:not(.btn):not(.nav-link):hover {
                color: var(--color-primary-300);
            }

.footer-contact-card {
    background-color: #fff;
    box-shadow: var(--shadow-center-medium);
}

.footer-banner-img {
    max-height: 72px;
    width: auto;
}

a.btn-download {
    color: var(--color-primary-900) !important;
    border: var(--pnlm-border-width) solid var(--color-primary-900) !important;
    background-color: transparent !important;
    border-radius: var(--radius-none) !important;
}

    a.btn-download i {
        color: inherit !important;
    }

    a.btn-download:hover,
    a.btn-download:focus-visible {
        color: #fff !important;
        background-color: var(--color-primary-900) !important;
    }

.icon-file-word {
    color: var(--color-primary-800);
}

.icon-file-excel {
    color: var(--color-success-600);
}

.icon-file-zip {
    color: var(--color-warning-900);
}

#preloader .spinner-border {
    border-color: var(--color-primary-900);
    border-right-color: transparent;
}

.cc_div .c-bn,
#cc--main .c-bn {
    border-radius: var(--radius-none) !important;
    min-height: var(--pnlm-target);
    font-family: var(--pnlm-font-body);
}

.cc_div .c-tgl,
#cc--main .c-tgl {
    min-height: var(--pnlm-target);
    height: var(--pnlm-target);
}

.cc_div :where(button, a, input):focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 2px;
}

@media print {
    .topbar,
    .navbar,
    #preloader,
    .skip-to-main,
    .modal,
    footer .social-media {
        display: none !important;
    }

    body {
        color: #000;
        background: #fff;
    }

    footer,
    footer .copyright {
        background: #fff !important;
        color: #000 !important;
        border-top: 1px solid #000 !important;
    }

        footer h2, footer h3,
        footer a,
        footer .nav .nav-link,
        footer .text-dark,
        footer .text-secondary,
        footer .text-primary {
            color: #000 !important;
        }

    main a[href^="http"]::after {
        content: " (" attr(href) ")";
        font-size: 0.75rem;
        word-break: break-all;
    }
}

.ag-contact-list dt {
    font-size: var(--text-s-regular);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-neutral-700);
    margin-bottom: var(--pnlm-spacing-4);
}

.ag-contact-list dd {
    margin-bottom: var(--spacing-32);
}

    .ag-contact-list dd:last-child {
        margin-bottom: 0;
    }

.ag-contact-list address {
    font-style: normal;
    line-height: 1.7;
}

.ag-declaracao-falta {
    color: var(--color-danger-600);
    font-weight: 600;
    border-left: 4px solid var(--color-danger-600);
    padding: var(--spacing-8) var(--spacing-24);
    background-color: var(--color-neutral-100);
}

.ag-article-dates {
    margin-top: var(--spacing-48);
    padding-top: var(--spacing-16);
    border-top: 1px solid var(--color-neutral-200);
    font-size: var(--text-s-regular);
    color: var(--color-neutral-700);
}

    .ag-article-dates span + span::before {
        content: "·";
        margin: 0 var(--spacing-8);
    }

.ag-pagination ul {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-8);
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
}

.ag-pagination a,
.ag-pagination .ag-pagination__current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--pnlm-target);
    min-height: var(--pnlm-target);
    padding: 0 var(--spacing-16);
    border-radius: var(--radius-none);
    text-decoration: none;
}

.ag-pagination a {
    border: 1px solid var(--color-neutral-200);
}

    .ag-pagination a:hover,
    .ag-pagination a:focus-visible {
        background-color: var(--color-neutral-100);
    }

.ag-pagination .ag-pagination__current {
    background-color: var(--color-primary-700);
    color: #fff;
    font-weight: 700;
}

.ag-share {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-8);
    margin-top: var(--spacing-32);
}

.ag-share__label {
    font-size: var(--text-s-regular);
    font-weight: 700;
    color: var(--color-neutral-700);
    margin-right: var(--pnlm-spacing-4);
}

.ag-share__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--pnlm-target);
    min-height: var(--pnlm-target);
    border-radius: var(--radius-none);
    background-color: var(--color-neutral-100);
    color: var(--color-neutral-800);
    font-size: 1.1rem;
    text-decoration: none;
}

    .ag-share__link:hover,
    .ag-share__link:focus-visible {
        background-color: var(--color-primary-700);
        color: #fff;
    }

.newsletter-band, .activities-band{
    padding-block: var(--spacing-80);
}

.resource-page {
    display: flex;
    flex-direction: column;
    gap: clamp(var(--spacing-48), 6vw, var(--spacing-64));
    margin-block: clamp(var(--spacing-48), 6vw, var(--spacing-64));
}

.resource-page .files-list .list-group-item {
    padding: var(--spacing-24) var(--spacing-16);
}

.resource-page .list-unstyled > li + li {
    margin-top: var(--spacing-16);
}
