/* Fontes locais: Montserrat */
@font-face {
    font-family: "Montserrat";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/montserrat/montserrat-latin-400-normal.woff2') format('woff2');
}

@font-face {
    font-family: "Montserrat";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/montserrat/montserrat-latin-500-normal.woff2') format('woff2');
}

@font-face {
    font-family: "Montserrat";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/montserrat/montserrat-latin-600-normal.woff2') format('woff2');
}

@font-face {
    font-family: "Montserrat";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/montserrat/montserrat-latin-700-normal.woff2') format('woff2');
}

/* Fontes locais: Manrope (SIL Open Font License 1.1) */
@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-400-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
        U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
        U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-ext-400-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
        U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-500-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
        U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
        U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-ext-500-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
        U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-600-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
        U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
        U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-ext-600-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
        U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-700-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
        U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
        U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-ext-700-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
        U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-800-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
        U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
        U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-ext-800-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
        U+2C60-2C7F, U+A720-A7FF;
}

/* Fontes locais: Sora (SIL Open Font License 1.1) */
@font-face {
    font-family: "Sora";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/sora/sora-latin-500-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
        U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
        U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Sora";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/sora/sora-latin-ext-500-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
        U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Sora";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/sora/sora-latin-600-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
        U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
        U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Sora";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/sora/sora-latin-ext-600-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
        U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Sora";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/sora/sora-latin-700-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
        U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
        U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Sora";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/sora/sora-latin-ext-700-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
        U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Sora";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/sora/sora-latin-800-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
        U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
        U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Sora";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/sora/sora-latin-ext-800-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
        U+2C60-2C7F, U+A720-A7FF;
}

/* Layout público */
:root {
    --site-blue: #2f54a2;
    --site-background: #dadada;
    --site-header-height: 80px;

    /* Mantém componentes do Bootstrap (checkbox, utilitários) na cor da marca. */
    --bs-primary: #2f54a2;

    /* Componentes do Bootstrap (tooltip, popover) herdam a tipografia do site. */
    --bs-font-sans-serif: "Manrope", "Montserrat", Arial, Helvetica, sans-serif;
}

html {
    scroll-padding-top: var(--site-header-height);
}

body {
    min-height: 100vh;
    margin: 0;
    padding-top: var(--site-header-height);
    color: var(--site-blue);
    font-family: "Manrope", "Montserrat", Arial, Helvetica, sans-serif;
    background: linear-gradient(#fafafa, var(--site-background) 300px);
    background-color: var(--site-background);
    background-repeat: no-repeat;
}

/* Títulos e cabeçalhos do front público usam Sora. */
h1,
h2,
h3,
h4,
h5,
h6,
.site-footer__title,
.convenios-results__empty-title {
    font-family: "Sora", "Montserrat", Arial, Helvetica, sans-serif;
}

a:focus-visible,
button:focus-visible {
    outline: 3px solid var(--site-blue);
    outline-offset: 5px;
}

.skip-link:focus {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 1040;
    padding: 12px;
    background: white;
}

/* Cabeçalho e navegação */
.site-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1030;
    height: var(--site-header-height);
    background: #fff;
    border-bottom: 1px solid #e2e5e9;
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
}

.site-header__inner {
    display: flex;
    align-items: center;
    height: 100%;
    min-height: 80px;
    gap: 1.75rem;
}

.site-brand {
    flex: none;
    width: 250px;
    max-width: 55vw;
}

.site-brand__image {
    display: block;
    width: 100%;
    height: auto;
}

.site-desktop-navigation {
    display: none;
    margin-left: auto;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-nav__link {
    color: #526274;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    transition: color .2s ease;
}

.site-nav__link:hover,
.site-nav__link:focus-visible {
    color: #004b99;
}

.site-nav__item {
    position: relative;
    display: flex;
    align-items: center;
}

/* "Benefícios" abre um dropdown; por ser botão, repete o visual do link. */
.site-nav__toggle {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: 0;
    border: 0;
    color: #526274;
    font-family: inherit;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    background: transparent;
    cursor: pointer;
    transition: color .2s ease;
}

.site-nav__toggle:hover,
.site-nav__toggle:focus-visible,
.site-nav__toggle--ativo {
    color: #004b99;
}

/* Substitui a seta padrão do Bootstrap pelo chevron próprio. */
.site-nav__toggle.dropdown-toggle::after {
    display: none;
}

.site-nav__chevron {
    flex: none;
    width: 14px;
    height: 14px;
    transition: transform .2s ease;
}

.site-nav__toggle[aria-expanded="true"] .site-nav__chevron {
    transform: rotate(180deg);
}

/* Menu do dropdown no mesmo visual do cabeçalho. */
.site-nav__dropdown {
    min-width: 15rem;
    margin-top: .5rem;
    padding: .375rem;
    border: 1px solid #e2e5e9;
    border-radius: .5rem;
    box-shadow: 0 18px 40px rgb(7 22 42 / 12%);
}

.site-nav__dropdown-item {
    padding: .55rem .75rem;
    border-radius: .35rem;
    color: #0e1b2a;
    font-size: .875rem;
    font-weight: 600;
}

.site-nav__dropdown-item:hover,
.site-nav__dropdown-item:focus-visible {
    color: #004b99;
    background: #f2f7fd;
}

.site-nav__dropdown-item--ativo {
    color: #004b99;
    background: #eef5fd;
}

.site-account-btn {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    min-height: 2.8rem;
    margin-left: 1.75rem;
    padding: .75rem 1.15rem;
    border: 0;
    border-radius: .35rem;
    color: #fafcfe;
    font-size: .875rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    background: #004b99;
    transition: background-color .2s ease;
}

.site-account-btn:hover,
.site-account-btn:focus-visible {
    color: #fff;
    background: #003d80;
}

.site-account-btn__icon {
    flex: none;
    width: 17px;
    height: 17px;
}

/* Conta autenticada: botão que abre o dropdown de ações no desktop */
.site-account {
    position: relative;
    flex: none;
    margin-left: 1.75rem;
}

.site-account .site-account-btn {
    margin-left: 0;
    cursor: pointer;
    font-family: inherit;
}

.site-account-btn__greeting {
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-account-btn__chevron {
    flex: none;
    width: 14px;
    height: 14px;
    transition: transform .2s ease;
}

.site-account-btn[aria-expanded="true"] .site-account-btn__chevron {
    transform: rotate(180deg);
}

/* Substitui a seta padrão do Bootstrap pelo chevron próprio. */
.site-account-btn.dropdown-toggle::after {
    display: none;
}

.site-account-dropdown {
    min-width: 15rem;
    max-width: min(20rem, calc(100vw - 2rem));
    margin-top: .5rem;
    padding: .5rem;
    border: 1px solid #e2e5e9;
    border-radius: .5rem;
    box-shadow: 0 18px 40px rgb(7 22 42 / 12%);
}

.site-account-dropdown__name {
    margin: 0;
    padding: .5rem .75rem .6rem;
    color: #0e1b2a;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.site-account-dropdown__item {
    display: flex;
    align-items: center;
    gap: .6rem;
    width: 100%;
    padding: .55rem .75rem;
    border: 0;
    border-radius: .35rem;
    color: #0e1b2a;
    font-family: inherit;
    font-size: .875rem;
    font-weight: 600;
    text-align: left;
    background: transparent;
    cursor: pointer;
}

.site-account-dropdown__item:hover,
.site-account-dropdown__item:focus-visible {
    color: #004b99;
    background: #f2f7fd;
}

.site-account-dropdown__icon {
    flex: none;
    width: 17px;
    height: 17px;
}

.site-menu-toggle {
    display: none;
}

.site-mobile-menu {
    display: none;
}

@media (min-width: 992px) {
    .site-desktop-navigation {
        display: block;
    }
}

/* Hero */
.home-hero {
    position: relative;
    background: #f6fbff;
}

.home-hero__stage {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 760px;
    overflow: hidden;
    color: #fafcfe;
}

.home-hero__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.home-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgb(7 22 42 / 94%) 0%,
        rgb(7 22 42 / 72%) 48%,
        rgb(7 22 42 / 12%) 100%
    );
}

.home-hero__lines {
    position: absolute;
    inset: 0;
    opacity: .16;
    background-image:
        linear-gradient(
            120deg,
            transparent 58%,
            #fafcfe 58%,
            #fafcfe 58.25%,
            transparent 58.25%
        ),
        linear-gradient(
            120deg,
            transparent 67%,
            #f89700 67%,
            #f89700 67.35%,
            transparent 67.35%
        );
    pointer-events: none;
}

.home-hero__inner {
    position: relative;
    z-index: 1;
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.home-hero__content {
    max-width: 48rem;
}

.home-hero__eyebrow {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1.25rem;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.home-hero__eyebrow-line {
    flex: none;
    width: 2.5rem;
    height: 1px;
    background: #f89700;
}

.home-hero__title {
    margin: 0;
    font-size: clamp(3rem, 6vw, 5.5rem);
    font-weight: 700;
    line-height: .96;
    letter-spacing: -.01em;
}

.home-hero__title-accent {
    color: #f89700;
}

.home-hero__lead {
    max-width: 36rem;
    margin: 1.5rem 0 0;
    font-size: 1.125rem;
    line-height: 1.625;
    color: rgb(250 252 254 / 80%);
}

.home-hero__search {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    max-width: 42rem;
    margin-top: 2.25rem;
    padding: .5rem;
    background: #fff;
    box-shadow: 0 20px 55px rgb(7 22 42 / 18%);
}

.home-hero__search-field {
    display: flex;
    flex: 1;
    align-items: center;
    gap: .75rem;
    padding: .5rem 1rem;
    color: #0e1b2a;
}

.home-hero__search-icon {
    flex: none;
    color: #004b99;
}

.home-hero__search-input {
    width: 100%;
    padding: .5rem 0;
    border: 0;
    color: #0e1b2a;
    font-size: .875rem;
    background: transparent;
    outline: none;
}

.home-hero__search-input::placeholder {
    color: #526274;
    opacity: 1;
}

.home-hero__search-input:focus-visible {
    border-radius: .25rem;
    outline: 2px solid #004b99;
    outline-offset: 2px;
}

.home-hero__search-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-height: 2.8rem;
    padding: .75rem 1.15rem;
    border: 0;
    border-radius: .35rem;
    color: #fafcfe;
    font-size: .875rem;
    font-weight: 700;
    line-height: 1;
    background: #004b99;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}

.home-hero__search-button:hover {
    box-shadow: 0 10px 24px rgb(0 75 153 / 25%);
    transform: translateY(-2px);
}

.home-hero__partners {
    margin: 1rem 0 0;
    font-size: .875rem;
    font-weight: 500;
    color: rgb(250 252 254 / 75%);
}

.home-hero__partners strong {
    color: #fafcfe;
}

.home-hero__shortcuts-wrap {
    position: relative;
    z-index: 2;
    margin-top: -4rem;
}

.home-hero__shortcuts {
    background: #fff;
    box-shadow: 0 20px 55px rgb(7 22 42 / 18%);
}

.home-hero__shortcut-link {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 8rem;
    padding: 1.35rem;
    border-right: 1px solid #cdd9e4;
    border-bottom: 1px solid #cdd9e4;
    color: #0e1b2a;
    text-decoration: none;
    transition: background-color .2s ease, transform .2s ease;
}

.home-hero__shortcut-link:hover {
    background: #dceefc;
    transform: translateY(-3px);
}

.home-hero__shortcut-icon {
    display: grid;
    place-items: center;
    flex: none;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    color: #004b99;
    background: #dceefc;
}

.home-hero__shortcut-text {
    display: block;
}

.home-hero__shortcut-text strong,
.home-hero__shortcut-text small {
    display: block;
}

.home-hero__shortcut-text strong {
    font-size: 1rem;
    font-weight: 700;
}

.home-hero__shortcut-text small {
    margin-top: .2rem;
    color: #526274;
}

.home-hero__shortcut-arrow {
    flex: none;
    margin-left: auto;
    color: #0e1b2a;
}

@media (min-width: 576px) {
    .home-hero__search {
        flex-direction: row;
    }

    .home-hero__search-button {
        flex: none;
    }
}

@media (min-width: 992px) {
    .home-hero__stage {
        min-height: 820px;
    }
}

@media (max-width: 767.98px) {
    .home-hero__stage {
        min-height: 640px;
    }

    .home-hero__overlay {
        background: linear-gradient(
            90deg,
            rgb(7 22 42 / 92%),
            rgb(7 22 42 / 58%)
        );
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-hero__search-button,
    .home-hero__shortcut-link {
        transition: none;
    }

    .home-hero__search-button:hover,
    .home-hero__shortcut-link:hover {
        transform: none;
    }
}

/* Menu mobile em tela inteira */
.site-mobile-menu__nav {
    padding: 24px clamp(24px, 7vw, 48px) 40px;
}

.site-mobile-menu__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-mobile-menu__link {
    display: block;
    padding: 10px 0;
    color: #0e1b2a;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
    transition: color .2s ease;
}

.site-mobile-menu__link:hover,
.site-mobile-menu__link:focus-visible {
    color: #004b99;
}

.site-mobile-menu__account {
    margin-top: 24px;
}

.site-account-btn--block {
    width: 100%;
    margin-left: 0;
    justify-content: center;
}

/* Conta autenticada dentro do menu mobile: bloco compacto com ações */
.site-mobile-account {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    padding: 16px;
    border: 1px solid #dceefc;
    border-radius: .5rem;
    background: #f2f7fd;
}

.site-mobile-account__greeting {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
    color: #0e1b2a;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.site-mobile-account__icon {
    flex: none;
    width: 20px;
    height: 20px;
    color: #004b99;
}

.site-mobile-account__name {
    margin: 0;
    color: #526274;
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.site-mobile-account__logout {
    margin: 0;
}

.site-mobile-account__logout-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    min-height: 2.75rem;
    padding: .75rem 1rem;
    border: 1px solid #cdd9e4;
    border-radius: .35rem;
    color: #0e1b2a;
    font-family: inherit;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1;
    background: #fff;
    cursor: pointer;
    transition: color .2s ease, border-color .2s ease;
}

.site-mobile-account__logout-btn:hover,
.site-mobile-account__logout-btn:focus-visible {
    color: #004b99;
    border-color: #004b99;
}

.site-mobile-account__logout-icon {
    flex: none;
    width: 18px;
    height: 18px;
}

/* Submenu de "Benefícios" dentro do painel recolhido no celular. */
.site-mobile-menu__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
    padding: 10px 0;
    border: 0;
    color: #0e1b2a;
    font-family: inherit;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.3;
    text-align: left;
    background: transparent;
    cursor: pointer;
    transition: color .2s ease;
}

.site-mobile-menu__toggle:hover,
.site-mobile-menu__toggle:focus-visible,
.site-mobile-menu__toggle[aria-expanded="true"],
.site-mobile-menu__toggle--ativo {
    color: #004b99;
}

.site-mobile-menu__chevron {
    flex: none;
    width: 18px;
    height: 18px;
    transition: transform .2s ease;
}

.site-mobile-menu__toggle[aria-expanded="true"] .site-mobile-menu__chevron {
    transform: rotate(180deg);
}

.site-mobile-menu__sublist {
    margin: 0 0 .5rem;
    padding: 0 0 0 .85rem;
    border-left: 2px solid #dceefc;
}

.site-mobile-menu__sublink {
    display: block;
    padding: 8px 0;
    color: #526274;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    transition: color .2s ease;
}

.site-mobile-menu__sublink:hover,
.site-mobile-menu__sublink:focus-visible,
.site-mobile-menu__sublink--ativo {
    color: #004b99;
}

/* Adaptação para tablets e celulares até 992 px */
@media (max-width: 991.98px) {
    :root {
        --site-mobile-header-height: 80px;
    }

    /* Evita salto horizontal quando o offcanvas bloqueia a rolagem do body. */
    html {
        scrollbar-gutter: stable;
    }

    body {
        padding-top: var(--site-mobile-header-height);
    }

    .site-header {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        z-index: 1030;
        height: var(--site-mobile-header-height);
    }

    .site-header__inner {
        height: 100%;
        min-height: 0;
        gap: 1rem;
    }

    .site-brand {
        width: min(56vw, 250px);
    }

    .site-desktop-navigation,
    .site-account,
    .site-account-btn:not(.site-account-btn--block) {
        display: none;
    }

    .site-menu-toggle {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        flex: none;
        width: 44px;
        height: 44px;
        margin-left: auto;
        padding: 0;
        border: 0;
        border-radius: .375rem;
        color: #03294f;
        background: #dceefc;
        cursor: pointer;
    }

    .site-menu-toggle span {
        display: block;
        width: 22px;
        height: 2px;
        border-radius: 2px;
        background: currentColor;
        transition: opacity .2s ease, transform .2s ease;
    }

    .site-header:has(+ .site-mobile-menu.is-open)
    .site-menu-toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .site-header:has(+ .site-mobile-menu.is-open)
    .site-menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    .site-header:has(+ .site-mobile-menu.is-open)
    .site-menu-toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    /* Painel próprio: abre abaixo da navbar sem bloquear o body. */
    .site-mobile-menu {
        position: fixed;
        top: var(--site-mobile-header-height);
        right: 0;
        left: 0;
        z-index: 1020;
        display: block;
        width: 100%;
        height: calc(100vh - var(--site-mobile-header-height));
        height: calc(100dvh - var(--site-mobile-header-height));
        overflow-y: auto;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        background: #fff;
        transform: translateY(-10px);
        transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    }

    .site-mobile-menu.is-open {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }
}

/* Propósito e áreas de atuação (home) */
.home-proposito {
    --home-proposito-background: #f6fbff;
    --home-proposito-foreground: #0e1b2a;
    --home-proposito-primary: #004b99;
    --home-proposito-muted: #526274;
    --home-proposito-border: #cdd9e4;
    padding: 7rem 0;
    color: var(--home-proposito-foreground);
    background: var(--home-proposito-background);
}

.home-proposito__eyebrow {
    margin: 0;
    color: var(--home-proposito-primary);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.home-proposito__title {
    margin: 12px 0 0;
    color: var(--home-proposito-foreground);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.08;
}

.home-proposito__text {
    margin: 0;
    color: var(--home-proposito-muted);
    font-size: 1.125rem;
    line-height: 1.65;
}

.home-proposito__areas {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin-top: 32px;
    background: var(--home-proposito-border);
}

.home-proposito__area {
    padding: 20px;
    background: var(--home-proposito-background);
}

.home-proposito__area-icon {
    display: block;
    width: 24px;
    height: 24px;
    color: var(--home-proposito-primary);
}

.home-proposito__area-label {
    display: block;
    margin-top: 12px;
    color: var(--home-proposito-foreground);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

/* Propósito e áreas de atuação (home): telas menores */
@media (min-width: 640px) {
    .home-proposito__title {
        font-size: 3rem;
    }
}

@media (max-width: 767.98px) {
    .home-proposito {
        padding: 5rem 0;
    }
}

@media (max-width: 639.98px) {
    .home-proposito__areas {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Convênios (home) */
.home-convenios {
    --home-convenios-background: #f6fbff;
    --home-convenios-foreground: #0e1b2a;
    --home-convenios-primary: #004b99;
    --home-convenios-primary-foreground: #fafcfe;
    --home-convenios-secondary: #dceefc;
    --home-convenios-muted: #526274;
    --home-convenios-border: #cdd9e4;
    --home-convenios-card: #fff;
    padding: 7rem 0;
    color: var(--home-convenios-foreground);
    background: var(--home-convenios-background);
}

.home-convenios__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
}

.home-convenios__eyebrow {
    margin: 0;
    color: var(--home-convenios-primary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.home-convenios__title {
    max-width: 720px;
    margin: .45rem 0 0;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 700;
    line-height: 1.05;
}

.home-convenios__intro {
    max-width: 430px;
    margin: 0;
    color: var(--home-convenios-muted);
    font-size: 1rem;
    line-height: 1.7;
}

.home-convenios__categories {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 2.5rem;
}

.home-convenios__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: .65rem;
    min-height: 10rem;
    padding: 1.15rem;
    border: 1px solid var(--home-convenios-border);
    border-radius: .45rem;
    color: var(--home-convenios-primary);
    text-align: left;
    text-decoration: none;
    background: var(--home-convenios-card);
}

.home-convenios__card:hover,
.home-convenios__card:focus-visible {
    border-color: var(--home-convenios-primary);
}

.home-convenios__card:focus-visible {
    outline: 3px solid var(--home-convenios-primary);
    outline-offset: 3px;
}

.home-convenios__card-icon {
    width: 28px;
    height: 28px;
    /* O SVG usa currentColor (preto em <img>); a máscara pinta a forma
       com a cor da marca sem depender de mapeamento de arquivos. */
    background-color: var(--home-convenios-primary);
    -webkit-mask-image: var(--home-convenios-icon);
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-image: var(--home-convenios-icon);
    mask-position: center;
    mask-size: contain;
    mask-repeat: no-repeat;
}

.home-convenios__card-name {
    color: var(--home-convenios-foreground);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
}

.home-convenios__card-count {
    color: var(--home-convenios-muted);
    font-size: .75rem;
}

/* Categorias além das duas primeiras linhas ficam ocultas até expandir. */
.home-convenios__card--hidden {
    display: none;
}

.home-convenios__more {
    display: flex;
    width: fit-content;
    margin: 1.5rem auto 0;
    padding: .7rem 1.6rem;
    border: 1px solid var(--home-convenios-primary);
    border-radius: 999px;
    color: var(--home-convenios-primary);
    font: inherit;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    background: transparent;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}

.home-convenios__more:hover {
    color: var(--home-convenios-primary-foreground);
    background: var(--home-convenios-primary);
}

.home-convenios__more:focus-visible {
    outline: 3px solid var(--home-convenios-primary);
    outline-offset: 3px;
}

.home-convenios__more[hidden] {
    display: none !important;
}

@media (prefers-reduced-motion: no-preference) {
    .home-convenios__card--revealed {
        animation: home-convenios-reveal .28s ease both;
    }
}

@keyframes home-convenios-reveal {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* Mensagem exibida quando não há categorias ativas. */
.home-convenios__empty {
    margin: 2.5rem 0 0;
    color: var(--home-convenios-muted);
    font-size: 1rem;
    line-height: 1.7;
}

/* Convênios (home): adaptação para telas menores */
@media (min-width: 576px) {
    .home-convenios__categories {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .home-convenios__categories {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .home-convenios {
        padding: 5rem 0;
    }

    .home-convenios__heading {
        display: block;
    }

    .home-convenios__intro {
        margin-top: 1rem;
    }

    .home-convenios__card {
        min-height: 8.5rem;
    }
}

/* Benefícios (home) */
.home-beneficios {
    --home-beneficios-background: #004b99;
    --home-beneficios-foreground: #fafcfe;
    --home-beneficios-muted: rgba(250, 252, 254, .72);
    --home-beneficios-highlight: #f89700;
    --home-beneficios-highlight-foreground: #2e1201;
    --home-beneficios-action-hover: #8ab4ff;
    --home-beneficios-radius: .5rem;
    padding: 7rem 0;
    color: var(--home-beneficios-foreground);
    background: var(--home-beneficios-background);
}

.home-beneficios__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
}

.home-beneficios__eyebrow {
    margin: 0;
    color: var(--home-beneficios-highlight);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.home-beneficios__title {
    max-width: 720px;
    margin: .45rem 0 0;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 700;
    line-height: 1.05;
}

.home-beneficios__intro {
    max-width: 430px;
    margin: 0;
    color: var(--home-beneficios-muted);
    font-size: 1rem;
    line-height: 1.7;
}

.home-beneficios__grid {
    margin-top: 2.5rem;
}

.home-beneficios__col {
    display: flex;
}

.home-beneficios__main {
    position: relative;
    display: block;
    width: 100%;
    min-height: 500px;
    overflow: hidden;
    border-radius: var(--home-beneficios-radius);
    color: var(--home-beneficios-foreground);
    text-decoration: none;
    transition: box-shadow .2s ease;
}

.home-beneficios__main-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.home-beneficios__main-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 2rem;
    background: linear-gradient(
        0deg,
        rgba(7, 22, 42, .88),
        transparent 75%
    );
}

.home-beneficios__badge {
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.home-beneficios__main-title {
    max-width: 480px;
    margin: .65rem 0 1.25rem;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.1;
}

.home-beneficios__action {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: max-content;
    font-size: .85rem;
    font-weight: 800;
    transition: color .2s ease;
}

.home-beneficios__action-icon {
    flex: none;
    transition: transform .2s ease;
}

.home-beneficios__notes {
    display: grid;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    width: 100%;
}

.home-beneficios__note {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
    min-height: 238px;
    padding: 1.75rem;
    border-radius: var(--home-beneficios-radius);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.home-beneficios__note--highlight {
    color: var(--home-beneficios-highlight-foreground);
    background: var(--home-beneficios-highlight);
}

.home-beneficios__note--light {
    color: var(--home-beneficios-background);
    background: var(--home-beneficios-foreground);
}

.home-beneficios__note-icon {
    flex: none;
}

.home-beneficios__note-title {
    max-width: 380px;
    margin: .45rem 0 0;
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1.1;
}

/* Benefícios: estados de interação */
/* Reafirma as cores da seção para o hover global de `a` do Bootstrap não
   pintar todo o texto de azul. Só a ação do card de foto muda de cor. */
.home-beneficios__main:hover,
.home-beneficios__main:focus-visible {
    color: var(--home-beneficios-foreground);
    box-shadow: 0 20px 55px rgba(7, 22, 42, .35);
}

.home-beneficios__main:hover .home-beneficios__main-image {
    transform: scale(1.03);
}

.home-beneficios__main:hover .home-beneficios__action,
.home-beneficios__main:focus-visible .home-beneficios__action {
    color: var(--home-beneficios-action-hover);
}

.home-beneficios__note--highlight:hover,
.home-beneficios__note--highlight:focus-visible {
    color: var(--home-beneficios-highlight-foreground);
}

.home-beneficios__note--light:hover,
.home-beneficios__note--light:focus-visible {
    color: var(--home-beneficios-background);
}

.home-beneficios__note:hover {
    box-shadow: 0 18px 40px rgba(7, 22, 42, .22);
    transform: translateY(-3px);
}

.home-beneficios__main:hover .home-beneficios__action-icon,
.home-beneficios__main:focus-visible .home-beneficios__action-icon,
.home-beneficios__note:hover .home-beneficios__action-icon,
.home-beneficios__note:focus-visible .home-beneficios__action-icon {
    transform: translateX(4px);
}

.home-beneficios a:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .home-beneficios__main,
    .home-beneficios__main-image,
    .home-beneficios__note,
    .home-beneficios__action-icon {
        transition: none;
    }

    .home-beneficios__main:hover .home-beneficios__main-image,
    .home-beneficios__note:hover {
        transform: none;
    }
}

/* Benefícios: adaptação para telas menores */
@media (max-width: 767.98px) {
    .home-beneficios {
        padding: 5rem 0;
    }

    .home-beneficios__heading {
        display: block;
    }

    .home-beneficios__intro {
        margin-top: 1rem;
    }

    .home-beneficios__main {
        min-height: 430px;
    }

    .home-beneficios__main-overlay {
        padding: 1.5rem;
    }

    .home-beneficios__main-title {
        font-size: 1.65rem;
    }

    .home-beneficios__note {
        min-height: 200px;
        padding: 1.5rem;
    }

    .home-beneficios__note-title {
        font-size: 1.4rem;
    }
}

/* Notícias (home) */
.home-noticias {
    --home-noticias-background: #f6fbff;
    --home-noticias-foreground: #0e1b2a;
    --home-noticias-primary: #004b99;
    --home-noticias-secondary: #dceefc;
    --home-noticias-muted: #526274;
    --home-noticias-border: #cdd9e4;
    --home-noticias-card: #fff;
    padding: 7rem 0;
    color: var(--home-noticias-foreground);
    background: var(--home-noticias-background);
}

.home-noticias__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
}

.home-noticias__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    color: var(--home-noticias-primary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.home-noticias__title {
    max-width: 720px;
    margin: .45rem 0 0;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 700;
    line-height: 1.05;
}

/* Link "Ver todas": a seta avança no hover e no foco. */
.home-noticias__all {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: max-content;
    color: var(--home-noticias-primary);
    font-size: .85rem;
    font-weight: 800;
    text-decoration: none;
}

.home-noticias__all:hover,
.home-noticias__all:focus-visible {
    color: var(--home-noticias-primary);
    text-decoration: underline;
    text-underline-offset: .25rem;
}

.home-noticias__grid {
    margin-top: 2.5rem;
}

/* Sem `min-width: 0` as colunas do grid impedem que os cards encolham
   em telas estreitas e forçam overflow horizontal. */
.home-noticias__grid > [class*="col"] {
    min-width: 0;
}

/* Card editorial do destaque. O card inteiro é um único link. */
.home-noticias__feature {
    display: block;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--home-noticias-border);
    border-radius: .5rem;
    color: inherit;
    text-decoration: none;
    background: var(--home-noticias-card);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.home-noticias__feature:hover,
.home-noticias__feature:focus-visible {
    color: inherit;
    border-color: var(--home-noticias-primary);
    box-shadow: 0 18px 40px rgba(7, 22, 42, .12);
}

.home-noticias__feature-image {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    max-height: 400px;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    transition: transform .3s ease;
}

/* Sem imagem de capa: preenche o espaço com um degradê da seção. */
.home-noticias__feature-image--vazia {
    background: linear-gradient(
        135deg,
        var(--home-noticias-secondary),
        #eef5fd
    );
}

.home-noticias__feature:hover .home-noticias__feature-image,
.home-noticias__feature:focus-visible .home-noticias__feature-image {
    transform: scale(1.03);
}

.home-noticias__feature-body {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: 1.5rem;
}

.home-noticias__feature-title {
    margin: .5rem 0;
    color: var(--home-noticias-foreground);
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1.15;
}

.home-noticias__feature-summary {
    margin: 0;
    color: var(--home-noticias-muted);
    font-size: 1rem;
    line-height: 1.6;
}

/* Ação textual com seta, como na referência. */
.home-noticias__action {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: max-content;
    margin-top: 1rem;
    color: var(--home-noticias-primary);
    font-size: .85rem;
    font-weight: 800;
}

.home-noticias__action--small {
    margin-top: 0;
    font-size: .75rem;
}

.home-noticias__action-icon {
    flex: none;
    transition: transform .2s ease;
}

.home-noticias__feature:hover .home-noticias__action-icon,
.home-noticias__feature:focus-visible .home-noticias__action-icon,
.home-noticias__row:hover .home-noticias__action-icon,
.home-noticias__row:focus-visible .home-noticias__action-icon {
    transform: translateX(4px);
}

/* Itens compactos empilhados ao lado do destaque. */
.home-noticias__list {
    display: grid;
    gap: 1rem;
}

.home-noticias__row {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 1.25rem;
    padding: 1.3rem 0;
    border-bottom: 1px solid var(--home-noticias-border);
    color: inherit;
    text-decoration: none;
    transition: border-color .2s ease;
}

.home-noticias__row-body {
    min-width: 0;
}

.home-noticias__row:first-child {
    padding-top: 0;
}

.home-noticias__row:hover,
.home-noticias__row:focus-visible {
    color: inherit;
    border-color: var(--home-noticias-primary);
}

.home-noticias__row-date {
    color: var(--home-noticias-primary);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.home-noticias__row-category {
    display: block;
    color: var(--home-noticias-muted);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.home-noticias__row-title {
    margin: .35rem 0 .75rem;
    color: var(--home-noticias-foreground);
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.25;
}

.home-noticias__row:hover .home-noticias__row-title,
.home-noticias__row:focus-visible .home-noticias__row-title {
    text-decoration: underline;
    text-underline-offset: .25rem;
}

.home-noticias a:focus-visible {
    outline: 3px solid var(--home-noticias-primary);
    outline-offset: 4px;
}

/* A área de capa só ganha padding maior a partir de telas pequenas. */
@media (min-width: 576px) {
    .home-noticias__feature-body {
        padding: 2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-noticias__feature,
    .home-noticias__feature-image,
    .home-noticias__action-icon {
        transition: none;
    }

    .home-noticias__feature:hover .home-noticias__feature-image,
    .home-noticias__feature:focus-visible .home-noticias__feature-image,
    .home-noticias__feature:hover .home-noticias__action-icon,
    .home-noticias__feature:focus-visible .home-noticias__action-icon,
    .home-noticias__row:hover .home-noticias__action-icon,
    .home-noticias__row:focus-visible .home-noticias__action-icon {
        transform: none;
    }
}

/* Notícias (home): telas menores */
@media (max-width: 767.98px) {
    .home-noticias {
        padding: 5rem 0;
    }

    .home-noticias__heading {
        display: block;
    }

    .home-noticias__all {
        margin-top: 1rem;
    }

    .home-noticias__feature-title {
        font-size: 1.4rem;
    }

    .home-noticias__row {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 1rem;
    }
}

/* Espaços e reservas (home) */
.home-espacos {
    --home-espacos-background: #dceefc;
    --home-espacos-foreground: #0e1b2a;
    --home-espacos-primary: #004b99;
    --home-espacos-primary-foreground: #fafcfe;
    --home-espacos-muted: #526274;
    --home-espacos-border: #cdd9e4;
    color: var(--home-espacos-foreground);
    background: var(--home-espacos-background);
}

.home-espacos__grid {
    align-items: stretch;
}

.home-espacos__media {
    position: relative;
    min-height: clamp(300px, 50vw, 430px);
    overflow: hidden;
}

.home-espacos__slider {
    position: absolute;
    inset: 0;
}

.home-espacos .swiper {
    width: 100%;
    height: 100%;
}

.home-espacos .swiper-wrapper,
.home-espacos .swiper-slide {
    height: 100%;
}

.home-espacos__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-espacos__image--vazia,
.home-espacos__media-empty {
    background: var(--home-espacos-border);
}

.home-espacos__media-empty {
    width: 100%;
    min-height: clamp(300px, 50vw, 430px);
}

/* Legenda sobre a imagem: exibida apenas na versão mobile. */
.home-espacos__caption {
    display: none;
}

.home-espacos__panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 4rem 1.5rem;
}

.home-espacos__eyebrow {
    margin: 0;
    color: var(--home-espacos-primary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.home-espacos__title {
    max-width: 720px;
    margin: .75rem 0 0;
    font-size: clamp(2.25rem, 3.4vw, 3rem);
    font-weight: 700;
    line-height: 1.1;
}

.home-espacos__intro {
    max-width: 36rem;
    margin: 1.25rem 0 0;
    color: var(--home-espacos-muted);
    font-size: 1rem;
    line-height: 1.7;
}

.home-espacos__place {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-top: 2rem;
    padding: 1.25rem 0;
    border-top: 1px solid var(--home-espacos-border);
    border-bottom: 1px solid var(--home-espacos-border);
}

.home-espacos__place-icon {
    display: inline-flex;
    flex: none;
    color: var(--home-espacos-primary);
}

.home-espacos__place-name {
    display: block;
    font-size: 1rem;
    font-weight: 700;
}

.home-espacos__place-subtitle {
    color: var(--home-espacos-muted);
    font-size: .875rem;
}

.home-espacos__cta {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    gap: .65rem;
    min-height: 2.8rem;
    margin-top: 1.75rem;
    padding: .75rem 1.15rem;
    border: 0;
    border-radius: .35rem;
    color: var(--home-espacos-primary-foreground);
    font-size: .875rem;
    font-weight: 700;
    text-decoration: none;
    background: var(--home-espacos-primary);
    transition: box-shadow .2s ease, transform .2s ease;
}

.home-espacos__cta:hover,
.home-espacos__cta:focus-visible {
    color: var(--home-espacos-primary-foreground);
    box-shadow: 0 10px 24px rgb(0 75 153 / 25%);
    transform: translateY(-2px);
}

.home-espacos__cta-icon {
    flex: none;
}

.home-espacos__empty {
    max-width: 36rem;
    margin: 2rem 0 0;
    color: var(--home-espacos-muted);
    font-size: 1rem;
    line-height: 1.7;
}

.home-espacos__arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: var(--home-espacos-primary);
    background: #fff;
    box-shadow: 0 6px 18px rgb(7 22 42 / 20%);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.home-espacos__arrow:hover,
.home-espacos__arrow:focus-visible {
    color: var(--home-espacos-primary-foreground);
    background: var(--home-espacos-primary);
}

.home-espacos__arrow--prev {
    left: 1.25rem;
}

.home-espacos__arrow--next {
    right: 1.25rem;
}

@media (min-width: 992px) {
    .home-espacos__panel {
        padding-inline: 4rem;
    }
}

/* Espaços e reservas (home): telas menores */
@media (max-width: 991.98px) {
    .home-espacos__title {
        font-size: clamp(2rem, 4vw, 2.5rem);
    }

    /* A partir daqui a navbar vira mobile: o nome e o subtítulo passam a
       ficar sobre a imagem, como no mobile, em vez do painel. */
    .home-espacos__place {
        display: none;
    }

    .home-espacos__caption {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1;
        display: flex;
        align-items: center;
        gap: .6rem;
        padding: 3rem 1rem 1rem;
        color: #fff;
        text-align: left;
        background: linear-gradient(
            to top,
            rgb(7 22 42 / 98%),
            rgb(7 22 42 / 72%) 50%,
            rgb(7 22 42 / 0%)
        );
        pointer-events: none;
    }

    .home-espacos__caption-icon {
        display: inline-flex;
        flex: none;
    }

    .home-espacos__caption-text {
        display: flex;
        flex-direction: column;
        gap: .15rem;
        min-width: 0;
    }

    .home-espacos__caption-name {
        display: block;
        font-size: 1rem;
        font-weight: 600;
        line-height: 1.25;
    }

    .home-espacos__caption-subtitle {
        display: block;
        color: rgb(255 255 255 / 82%);
        font-size: .8125rem;
        font-weight: 500;
        line-height: 1.3;
    }
}

@media (max-width: 767.98px) {
    .home-espacos__panel {
        padding: 2.25rem 1.5rem 2.75rem;
    }

    .home-espacos__title {
        font-size: 2rem;
    }

    .home-espacos__cta {
        align-self: stretch;
        justify-content: center;
    }

    .home-espacos__arrow {
        width: 38px;
        height: 38px;
    }

    .home-espacos__arrow--prev {
        left: .75rem;
    }

    .home-espacos__arrow--next {
        right: .75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-espacos__cta,
    .home-espacos__arrow {
        transition: none;
    }

    .home-espacos__cta:hover,
    .home-espacos__cta:focus-visible {
        transform: none;
    }
}

/* Contato */
.contact-page {
    padding: 56px 0 72px;
}

.contact-page__alert {
    margin-bottom: 28px;
    border-radius: 12px;
}

.contact-page__title {
    margin: 0;
    font-size: 44px;
    font-weight: 700;
    line-height: 1.15;
}

.contact-page__text {
    max-width: 480px;
    margin: 20px 0 0;
    font-size: 17px;
    line-height: 1.7;
}

.contact-page__cta {
    display: inline-block;
    width: min(330px, 80vw);
    margin-top: 28px;
    border-radius: 20px;
}

.contact-page__list {
    display: grid;
    gap: 14px;
    margin: 32px 0 0;
}

.contact-page__list a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    font-size: 16px;
    line-height: 1.5;
    text-decoration: none;
}

.contact-page__list a:hover,
.contact-page__list a:focus-visible {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.contact-page__icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.contact-page__map-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 28px;
    padding: 12px 22px;
    border: 2px solid var(--site-blue);
    border-radius: 999px;
    color: inherit;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease;
}

.contact-page__map-link:hover,
.contact-page__map-link:focus-visible {
    color: #fff;
    background-color: var(--site-blue);
}

.contact-page__arrow {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.contact-page__card {
    padding: 32px;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 18px 50px rgb(47 84 162 / 12%);
}

.contact-form__field {
    margin-bottom: 18px;
}

.contact-form__field .form-label {
    margin-bottom: 4px;
    font-size: 14px;
    font-weight: 600;
}

.contact-form .form-control {
    padding: 10px 14px;
    border-color: #d7e0ef;
    border-radius: 10px;
    font-size: 15px;
}

.contact-form .form-control:focus {
    border-color: var(--site-blue);
    box-shadow: 0 0 0 3px rgb(47 84 162 / 15%);
}

.contact-form__honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.contact-form__consent {
    display: flex;
    gap: 10px;
    margin: 4px 0 24px;
    font-size: 14px;
    line-height: 1.5;
}

.contact-form__consent .form-check-input {
    flex-shrink: 0;
    margin-top: 3px;
}

.contact-form__consent a {
    color: inherit;
    font-weight: 600;
}

.contact-form__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 13px 26px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    background-color: var(--site-blue);
    transition: background-color .2s ease;
}

.contact-form__submit:hover,
.contact-form__submit:focus-visible {
    color: #fff;
    background-color: #27468a;
}

/* Política de privacidade */
.policy-page {
    padding: 56px 0 72px;
    background: #f6fbff;
}

.policy-page__content {
    max-width: 820px;
    margin: 0 auto;
}

.policy-page__title {
    margin: 0;
    font-size: 40px;
    font-weight: 700;
    line-height: 1.15;
}

.policy-page__updated {
    margin: 10px 0 0;
    font-size: 14px;
    opacity: .75;
}

.policy-page__body {
    margin-top: 26px;
    font-size: 16px;
    line-height: 1.75;
}

.policy-page__body h2 {
    margin: 30px 0 10px;
    font-size: 20px;
    font-weight: 700;
}

.policy-page__body p {
    margin: 0 0 14px;
}

/* Contato e política: telas menores */
@media (max-width: 991.98px) {
    .contact-page,
    .policy-page {
        padding: 40px 0 56px;
    }

    .contact-page__title {
        font-size: 36px;
    }

    .policy-page__title {
        font-size: 32px;
    }
}

@media (max-width: 767.98px) {
    .contact-page__card {
        padding: 24px;
        border-radius: 18px;
    }

    .contact-page__map-link,
    .contact-form__submit {
        width: 100%;
        justify-content: center;
    }
}

/* Quem somos */
/* Cabeçalho: o gradiente e as linhas vêm de .hero-surface.
   Sem altura fixa; o padding acompanha o título e o texto de apoio. */
.about-intro {
    padding: clamp(2.5rem, 5vw, 4rem) 0;
}

.about-intro__title {
    max-width: 60rem;
    margin: 0;
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #fff;
}

.about-intro__text {
    max-width: 42rem;
    margin: 1rem 0 0;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.6;
    color: rgb(250 252 254 / 85%);
}

/* Corpo da página: fundo claro contínuo sob o cabeçalho azul. */
.about-history,
.about-gallery,
.about-purpose {
    color: #0e1b2a;
    background: #f6fbff;
}

.about-history {
    padding: 3rem 0 0;
}

.about-history__title {
    margin: 0 0 1.25rem;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.2;
    color: #0e1b2a;
}

.about-history__content {
    max-width: 48rem;
    font-size: 1.0625rem;
    line-height: 1.8;
    color: #33475b;
}

.about-history__content p {
    margin: 0 0 .875rem;
}

.about-history__content p:last-child {
    margin-bottom: 0;
}

.about-gallery {
    padding: 3rem 0 0;
}

.about-gallery__link {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 1rem;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 10px 26px rgb(47 84 162 / 10%);
}

.about-gallery__image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .3s ease;
}

.about-gallery__link:hover .about-gallery__image,
.about-gallery__link:focus-visible .about-gallery__image {
    transform: scale(1.04);
}

.about-gallery__caption {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 1.75rem 1rem .875rem;
    font-size: .875rem;
    font-weight: 600;
    background: linear-gradient(transparent, rgb(15 33 71 / 78%));
}

.about-purpose {
    padding: 3rem 0 0;
}

.about-purpose__stack {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    height: 100%;
}

.about-purpose__card {
    padding: 1.75rem;
    border: 1px solid #d7e2ee;
    border-radius: 1rem;
    background: #fff;
}

.about-purpose__icon {
    width: 2.5rem;
    height: 2.5rem;
    margin-bottom: .875rem;
    color: #004b99;
}

.about-purpose__title {
    margin: 0;
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.25;
    color: #0e1b2a;
}

.about-purpose__title span {
    color: #004b99;
}

.about-purpose__text {
    margin: .75rem 0 0;
    font-size: 1rem;
    line-height: 1.7;
    color: #33475b;
}

.about-purpose__list {
    margin: 1rem 0 0;
    padding: 0;
    font-size: 1rem;
    line-height: 1.7;
    list-style: none;
}

.about-purpose__list li {
    position: relative;
    margin-bottom: .875rem;
    padding-left: 1.5rem;
    color: #33475b;
}

.about-purpose__list li:last-child {
    margin-bottom: 0;
}

.about-purpose__list li::before {
    content: "";
    position: absolute;
    top: .65em;
    left: .125rem;
    width: .4rem;
    height: .4rem;
    border-radius: 50%;
    background: #004b99;
}

@media (max-width: 991.98px) {
    .about-purpose {
        padding-top: 2.5rem;
    }
}

@media (max-width: 767.98px) {
    .about-history,
    .about-gallery,
    .about-purpose {
        padding-top: 2.25rem;
    }
}

/* Espaços e reservas (listagem) */
/* Paleta alinhada à listagem de notícias. */
.spaces-page {
    --spaces-page-background: #f6fbff;
    --spaces-page-foreground: #0e1b2a;
    --spaces-page-primary: #004b99;
    --spaces-page-secondary: #dceefc;
    --spaces-page-muted: #526274;
    --spaces-page-border: #cdd9e4;
    --spaces-page-card: #fff;
    padding: 0 0 72px;
    color: var(--spaces-page-foreground);
    background: var(--spaces-page-background);
}

/* Cabeçalho: fundo institucional compartilhado, com a altura ditada pelo
   conteúdo. O padding inferior repõe o respiro que existia antes. */
.spaces-page__hero {
    padding: 56px 0 32px;
}

.spaces-page__title {
    margin: 0;
    color: #fafcfe;
    font-size: 44px;
    font-weight: 700;
    line-height: 1.15;
}

.spaces-page__title span {
    color: #dbe6f7;
}

.spaces-page__text {
    max-width: 620px;
    margin: 14px 0 0;
    color: rgb(250 252 254 / 82%);
    font-size: 17px;
    line-height: 1.7;
}

.spaces-page__empty {
    margin: 40px 0 0;
    color: var(--spaces-page-muted);
    font-size: 17px;
}

.spaces-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    margin: 40px 0 0;
}

/* 2 colunas em telas pequenas e 3 em desktops. */
@media (min-width: 576px) {
    .spaces-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .spaces-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.space-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--spaces-page-border);
    border-radius: .5rem;
    color: inherit;
    text-decoration: none;
    background: var(--spaces-page-card);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.space-card:hover,
.space-card:focus-visible {
    color: inherit;
    border-color: var(--spaces-page-primary);
    box-shadow: 0 18px 40px rgb(7 22 42 / 12%);
}

.space-card__image {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

/* Sem imagem de capa: mesmo degradê da seção de notícias. */
.space-card__image--vazia {
    background: linear-gradient(
        135deg,
        var(--spaces-page-secondary),
        #eef5fd
    );
}

.space-card__body {
    display: grid;
    gap: .5rem;
    padding: 1.5rem;
}

.space-card__name {
    color: var(--spaces-page-foreground);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
}

.space-card__subtitle {
    color: var(--spaces-page-muted);
    font-size: .95rem;
    line-height: 1.6;
}

/* Ação textual com seta, como nos cards de notícia da home. */
.space-card__action {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: max-content;
    margin: .35rem auto 0;
    color: var(--spaces-page-primary);
    font-size: .85rem;
    font-weight: 800;
}

.space-card__action-icon {
    flex: none;
    transition: transform .2s ease;
}

.space-card:hover .space-card__action-icon,
.space-card:focus-visible .space-card__action-icon {
    transform: translateX(4px);
}

/* Espaço (detalhe) */
.space-detail {
    padding: 48px 0 72px;
    color: #fff;
    background: #0451a4;
}

.space-detail__title {
    margin: 0;
    font-size: 48px;
    font-weight: 700;
    line-height: 1.15;
}

.space-detail__title span {
    color: #dbe6f7;
}

.space-detail__rule {
    max-width: 960px;
    margin: 22px 0 32px;
    border: 0;
    border-top: 3px solid rgb(255 255 255 / 85%);
    opacity: 1;
}

.space-gallery {
    overflow: hidden;
    border-radius: 18px;
}

.space-gallery__slider {
    position: relative;
}

.space-gallery .swiper-slide {
    position: relative;
}

.space-gallery__image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.space-gallery__caption {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 12px;
    font-size: 14px;
    background: rgb(15 33 71 / 55%);
}

.space-gallery__arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #0451a4;
    font-size: 24px;
    line-height: 1;
    background: rgb(255 255 255 / 88%);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background-color .2s ease, color .2s ease;
}

.space-gallery__arrow--prev {
    left: 14px;
}

.space-gallery__arrow--next {
    right: 14px;
}

.space-gallery__arrow:hover,
.space-gallery__arrow:focus-visible {
    color: #fff;
    background: #0451a4;
}

.space-gallery__arrow:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.space-gallery__pagination {
    bottom: 10px !important;
}

.space-gallery__pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    opacity: .72;
    background: #fff;
}

.space-gallery__pagination .swiper-pagination-bullet-active {
    opacity: 1;
    background: #fff;
}

.space-detail__info {
    display: grid;
    gap: 14px;
    margin: 0;
    font-size: 17px;
    line-height: 1.6;
}

.space-detail__description {
    margin-top: 28px;
    font-size: 16px;
    line-height: 1.75;
}

.space-detail__description h3 {
    display: inline-block;
    margin: 26px 0 8px;
    padding: 4px 10px;
    border-radius: 4px;
    color: #0451a4;
    font-size: 15px;
    font-weight: 700;
    background: #fff;
}

.space-detail__description p {
    margin: 0 0 12px;
}

.space-detail__description ul {
    padding-left: 20px;
}

/* Espaços: telas menores */
@media (max-width: 991.98px) {
    .spaces-page {
        padding: 0 0 56px;
    }

    .spaces-page__hero {
        padding: 40px 0 32px;
    }

    .space-detail {
        padding: 40px 0 56px;
    }

    .spaces-page__title,
    .space-detail__title {
        font-size: 34px;
    }
}

/* Página 404 */
.error-page {
    padding: 72px 0 88px;
    text-align: center;
}

.error-page__code {
    margin: 0;
    font-size: 72px;
    font-weight: 700;
    line-height: 1;
    color: #0451a4;
}

.error-page__title {
    margin: 18px 0 0;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.2;
}

.error-page__text {
    max-width: 520px;
    margin: 12px auto 0;
    font-size: 17px;
    line-height: 1.7;
}

.error-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
    margin-top: 28px;
}

.error-page__action {
    display: inline-flex;
    align-items: center;
    padding: 12px 22px;
    border: 2px solid var(--site-blue);
    border-radius: 999px;
    color: inherit;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease;
}

.error-page__action:hover,
.error-page__action:focus-visible {
    color: #fff;
    background-color: var(--site-blue);
}

/* Cabeçalho de conteúdo: fundo institucional compartilhado */
/* Extraído do hero de Convênios. Aplica somente o gradiente e as linhas
   decorativas paralelas; não define altura, padding nem tipografia. */
.hero-surface {
    position: relative;
    overflow: hidden;
    color: #fafcfe;
    background: linear-gradient(135deg, #004b99 0%, #00366e 100%);
}

/* Linhas decorativas inclinadas, atrás do conteúdo e sem capturar cliques. */
.hero-surface__lines {
    position: absolute;
    inset: 0;
    opacity: .18;
    background-image:
        linear-gradient(
            120deg,
            transparent 62%,
            #fafcfe 62%,
            #fafcfe 62.2%,
            transparent 62.2%
        ),
        linear-gradient(
            120deg,
            transparent 71%,
            #f89700 71%,
            #f89700 71.3%,
            transparent 71.3%
        );
    pointer-events: none;
}

/* Conteúdo acima das linhas decorativas. */
.hero-surface__inner {
    position: relative;
    z-index: 1;
}

/* Benefícios: cabeçalho e conteúdo compartilhados (Brindes e Compre) */
.benefits-hero {
    padding: 48px 0 44px;
    color: #fff;
}

.benefits-hero__eyebrow {
    margin: 0 0 .5rem;
    color: #dbe6f7;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.benefits-hero__title {
    margin: 0;
    font-size: 48px;
    font-weight: 700;
    line-height: 1.15;
}

.benefits-hero__title span {
    color: #dbe6f7;
}

.benefits-hero__text {
    max-width: 620px;
    margin: 14px 0 0;
    font-size: 17px;
    line-height: 1.7;
}

/* Fundo claro alinhado às páginas já renovadas. */
.benefits-content {
    --benefits-foreground: #0e1b2a;
    --benefits-muted: #526274;
    --benefits-primary: #004b99;
    --benefits-border: #cdd9e4;
    --benefits-surface: #f2f7fd;

    padding: 40px 0 72px;
    color: var(--benefits-foreground);
    background: #f6fbff;
}

.benefits-content a:focus-visible {
    outline: 3px solid var(--benefits-primary);
    outline-offset: 4px;
}

/* Filtros: aceitam rótulos longos sem transbordar no celular. */
.gifts-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin: 0 0 1.75rem;
}

.gifts-tags__item {
    display: inline-block;
    max-width: 100%;
    padding: .5rem 1rem;
    border: 1px solid var(--benefits-border);
    border-radius: 999px;
    color: var(--benefits-foreground);
    font-size: .8125rem;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    overflow-wrap: anywhere;
    background: #fff;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.gifts-tags__item:hover,
.gifts-tags__item:focus-visible {
    color: #fff;
    border-color: var(--benefits-primary);
    background: var(--benefits-primary);
}

.gifts-tags__item--ativo {
    color: #fff;
    border-color: var(--benefits-primary);
    background: var(--benefits-primary);
}

/* Brindes: apresentação editorial vinda do painel. */
.gifts-intro {
    margin-bottom: 2rem;
    padding: 1.75rem;
    border: 1px solid var(--benefits-border);
    border-radius: .5rem;
    background: #fff;
}

.gifts-intro__label {
    margin: 0 0 .35rem;
    color: var(--benefits-primary);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gifts-intro__title {
    margin: 0;
    color: var(--benefits-foreground);
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.25;
}

.gifts-intro__text {
    margin-top: .75rem;
    color: var(--benefits-muted);
    font-size: 1rem;
    line-height: 1.7;
}

.gifts-intro__text > :last-child {
    margin-bottom: 0;
}

.gifts-intro__image {
    display: block;
    max-width: 100%;
    max-height: 240px;
    margin-inline: auto;
    object-fit: contain;
}

/* Cartões informativos: bordas discretas, sem aparência de clique. */
.gift-card,
.purchase-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--benefits-border);
    border-radius: .5rem;
    background: #fff;
}

.gift-card__figure,
.purchase-card__figure {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4 / 3;
    margin: 0;
    padding: 1.25rem;
    border-bottom: 1px solid #e7eef6;
    background: var(--benefits-surface);
}

.gift-card__image,
.purchase-card__image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Sem imagem: apresentação compacta com ícone, sem retângulo vazio. */
.gift-card__figure--icon,
.purchase-card__figure--icon {
    color: var(--benefits-primary);
}

.gift-card__icon,
.purchase-card__icon {
    width: 48px;
    height: 48px;
}

.gift-card__name {
    margin: 0;
    padding: 1.25rem;
    color: var(--benefits-foreground);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.45;
}

.purchase-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: .65rem;
    padding: 1.5rem;
}

.purchase-card__title {
    margin: 0;
    color: var(--benefits-foreground);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
}

.purchase-card__text {
    color: var(--benefits-muted);
    font-size: .95rem;
    line-height: 1.65;
}

.purchase-card__text p {
    margin: 0 0 .5rem;
}

.purchase-card__text > :last-child {
    margin-bottom: 0;
}

.purchase-card__text strong,
.purchase-card__text b {
    color: var(--benefits-foreground);
    font-weight: 700;
}

.purchase-card__action {
    display: inline-flex;
    align-items: center;
    align-self: center;
    gap: .5rem;
    margin-top: auto;
    padding: .7rem 1.25rem;
    border: 1px solid var(--benefits-primary);
    border-radius: .375rem;
    color: var(--benefits-primary);
    font-size: .875rem;
    font-weight: 600;
    text-decoration: none;
    background: transparent;
    transition: background-color .2s ease, color .2s ease;
}

.purchase-card__action:hover,
.purchase-card__action:focus-visible {
    color: #fff;
    background: var(--benefits-primary);
}

.purchase-card__leading-icon,
.purchase-card__arrow {
    flex: none;
    width: 16px;
    height: 16px;
}

/* Estado vazio integrado ao fundo claro. */
.benefits-empty {
    display: grid;
    justify-items: center;
    gap: .75rem;
    padding: 3rem 1.5rem;
    border: 1px dashed var(--benefits-border);
    border-radius: .5rem;
    color: var(--benefits-muted);
    text-align: center;
    background: #fff;
}

.benefits-empty__icon {
    width: 40px;
    height: 40px;
    color: var(--benefits-primary);
}

.benefits-empty__text {
    margin: 0;
    font-size: 1rem;
}

/* Benefícios: telas menores */
@media (max-width: 991.98px) {
    .benefits-hero {
        padding: 40px 0 32px;
    }

    .benefits-hero__title {
        font-size: 34px;
    }

    .gifts-intro {
        padding: 1.25rem;
    }

    .gifts-intro__title {
        font-size: 1.35rem;
    }
}

/* Convênios (catálogo) */
/* Hero compacto: fundo azul da marca, sem fotografia e sem altura fixa.
   O gradiente e as linhas vêm da classe compartilhada .hero-surface. */
.convenios-hero {
    padding: clamp(2.25rem, 5vw, 3.5rem) 0;
}

.convenios-hero__eyebrow {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0 0 1rem;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgb(250 252 254 / 80%);
}

.convenios-hero__eyebrow-line {
    flex: none;
    width: 2.25rem;
    height: 1px;
    background: #f89700;
}

.convenios-hero__title {
    margin: 0;
    font-size: clamp(1.875rem, 5vw, 3rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.01em;
    /* Categorias longas quebram sem transbordar em telas pequenas. */
    overflow-wrap: break-word;
}

/* Destaque laranja da categoria selecionada, no mesmo valor usado no
   destaque "a você." da home. */
.convenios-hero__title-accent {
    color: #f89700;
}

.convenios-hero__lead {
    max-width: 34rem;
    margin: 1rem 0 0;
    font-size: 1rem;
    line-height: 1.65;
    color: rgb(250 252 254 / 82%);
}

.convenios-hero__search {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    max-width: 42rem;
    margin-top: 1.75rem;
    padding: .5rem;
    background: #fff;
    box-shadow: 0 18px 45px rgb(3 20 40 / 22%);
}

.convenios-hero__search-field {
    display: flex;
    flex: 1;
    align-items: center;
    gap: .75rem;
    padding: .5rem 1rem;
    color: #0e1b2a;
}

.convenios-hero__search-icon {
    flex: none;
    color: #004b99;
}

.convenios-hero__search-input {
    width: 100%;
    padding: .5rem 0;
    border: 0;
    color: #0e1b2a;
    font-size: .9375rem;
    background: transparent;
    outline: none;
}

.convenios-hero__search-input::placeholder {
    color: #526274;
    opacity: 1;
}

.convenios-hero__search-input:focus-visible {
    border-radius: .25rem;
    outline: 2px solid #004b99;
    outline-offset: 2px;
}

.convenios-hero__search-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    min-height: 2.8rem;
    padding: .75rem 1.25rem;
    border: 0;
    border-radius: .35rem;
    color: #fafcfe;
    font-size: .875rem;
    font-weight: 700;
    line-height: 1;
    background: #004b99;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}

.convenios-hero__search-button:hover {
    box-shadow: 0 10px 24px rgb(0 75 153 / 25%);
    transform: translateY(-2px);
}

.convenios-hero__context {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 1.15rem 0 0;
    padding: .45rem .9rem;
    border: 1px solid rgb(250 252 254 / 30%);
    border-radius: 999px;
    font-size: .8125rem;
    color: rgb(250 252 254 / 92%);
    background: rgb(250 252 254 / 10%);
}

.convenios-hero__context-icon {
    flex: none;
    color: #f89700;
}

@media (min-width: 576px) {
    .convenios-hero__search {
        flex-direction: row;
    }

    .convenios-hero__search-button {
        flex: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .convenios-hero__search-button {
        transition: none;
    }

    .convenios-hero__search-button:hover {
        transform: none;
    }
}

/* Categorias e resultados compartilham fundo claro e o mesmo container. */
.convenios-catalog {
    --convenios-fg: #0e1b2a;
    --convenios-primary: #004b99;
    --convenios-secondary: #dceefc;
    --convenios-muted: #526274;
    --convenios-border: #cdd9e4;
    --convenios-card: #fff;
    --convenios-media-bg: #f5f6f8;
    padding: clamp(2.5rem, 5vw, 3.5rem) 0 clamp(3rem, 6vw, 4.5rem);
    color: var(--convenios-fg);
    background: #f6fbff;
}

/* Convênios (catálogo): filtros e cards de categoria */
.convenios-categories__heading {
    margin-bottom: 1.25rem;
}

.convenios-categories__eyebrow {
    margin: 0;
    color: var(--convenios-primary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.convenios-categories__title {
    margin: .3rem 0 0;
    font-size: clamp(1.35rem, 3vw, 1.75rem);
    font-weight: 700;
    line-height: 1.2;
}

.convenios-categories__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

/* Item de categoria: base branca, borda azul clara e tipografia Manrope. */
.convenios-categories__card {
    --convenios-category-border: #cfe0f3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: .5rem;
    min-height: 7.5rem;
    padding: 1rem;
    border: 1px solid var(--convenios-category-border);
    border-radius: .45rem;
    color: var(--convenios-primary);
    font-family: "Manrope", "Montserrat", Arial, Helvetica, sans-serif;
    text-align: left;
    text-decoration: none;
    background: var(--convenios-card);
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease,
        color .2s ease, box-shadow .2s ease;
}

/* Hover das inativas: apenas realce, sem confundir com a seleção. */
.convenios-categories__card:hover {
    border-color: var(--convenios-primary);
    background: var(--convenios-secondary);
}

.convenios-categories__card:focus-visible {
    border-color: var(--convenios-primary);
    outline: 3px solid var(--convenios-primary);
    outline-offset: 2px;
}

/* Categoria ativa: azul sólido com texto, ícone e contagem em branco. */
.convenios-categories__card[aria-current="true"] {
    border-color: var(--convenios-primary);
    color: #fff;
    background: var(--convenios-primary);
    box-shadow: none;
}

.convenios-categories__card[aria-current="true"]:hover {
    border-color: var(--convenios-primary);
    background: var(--convenios-primary);
}

.convenios-categories__card[aria-current="true"]:focus-visible {
    outline-color: var(--convenios-fg);
}

.convenios-categories__card-icon {
    width: 26px;
    height: 26px;
    background-color: var(--convenios-primary);
    -webkit-mask-image: var(--convenios-icon);
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-image: var(--convenios-icon);
    mask-position: center;
    mask-size: contain;
    mask-repeat: no-repeat;
}

.convenios-categories__card[aria-current="true"] .convenios-categories__card-icon {
    background-color: #fff;
}

.convenios-categories__card-name {
    color: var(--convenios-fg);
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.2;
}

.convenios-categories__card[aria-current="true"] .convenios-categories__card-name {
    color: #fff;
}

.convenios-categories__card-count {
    color: var(--convenios-muted);
    font-size: .75rem;
}

.convenios-categories__card[aria-current="true"] .convenios-categories__card-count {
    color: rgba(255, 255, 255, .85);
}

/* Categorias além das duas primeiras linhas ficam ocultas até expandir. */
.convenios-categories__card--hidden {
    display: none;
}

.convenios-categories__more {
    display: flex;
    width: fit-content;
    margin: 1.5rem auto 0;
    padding: .7rem 1.6rem;
    border: 1px solid var(--convenios-primary);
    border-radius: 999px;
    color: var(--convenios-primary);
    font-family: "Manrope", "Montserrat", Arial, Helvetica, sans-serif;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    background: transparent;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}

.convenios-categories__more:hover {
    color: #fff;
    background: var(--convenios-primary);
}

.convenios-categories__more:focus-visible {
    outline: 3px solid var(--convenios-primary);
    outline-offset: 3px;
}

.convenios-categories__more[hidden] {
    display: none !important;
}

@media (prefers-reduced-motion: no-preference) {
    .convenios-categories__card--revealed {
        animation: convenios-categories-reveal .28s ease both;
    }
}

@keyframes convenios-categories-reveal {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* Resultados */
.convenios-results {
    margin-top: clamp(2rem, 4vw, 2.75rem);
}

.convenios-results__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--convenios-border);
}

.convenios-results__count {
    margin: 0;
    font-size: .9375rem;
    font-weight: 600;
}

.convenios-results__clear {
    padding: .35rem .25rem;
    border: 0;
    color: var(--convenios-primary);
    font: inherit;
    font-size: .8125rem;
    font-weight: 700;
    text-decoration: underline;
    background: transparent;
    cursor: pointer;
}

.convenios-results__clear[hidden] {
    display: none;
}

.convenios-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--convenios-border);
    border-radius: .5rem;
    color: inherit;
    text-decoration: none;
    background: var(--convenios-card);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.convenios-card:hover {
    border-color: var(--convenios-primary);
    box-shadow: 0 12px 28px rgb(7 22 42 / 8%);
}

.convenios-card:focus-visible {
    border-color: var(--convenios-primary);
    outline: 3px solid var(--convenios-primary);
    outline-offset: 2px;
}

/* Cabeçalho: encosta nas bordas do card; os cantos superiores seguem o
   arredondamento do card por meio do recorte do próprio card. A cor de
   fundo vem da variável por card, com o cinza claro como padrão. */
.convenios-card__header {
    display: grid;
    width: 100%;
    min-height: 7.5rem;
    padding: .5rem 1rem;
    background: var(--convenios-media-bg, #f5f6f8);
    place-items: center;
}

/* Conteúdo abaixo do cabeçalho: fundo branco do card e padding próprio. */
.convenios-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1.1rem;
}

/* Logo e fallback ocupam a mesma célula, sempre centralizados. */
.convenios-card__logo,
.convenios-card__logo-placeholder {
    grid-area: 1 / 1;
}

/* Logo real: proporção preservada, sem corte, máscara ou fundo.
   O raio suaviza só os cantos, sem cortar nem esticar a marca. */
.convenios-card__logo {
    width: auto;
    height: auto;
    max-width: min(100%, 13.75rem);
    max-height: 6rem;
    border-radius: .375rem;
    object-fit: contain;
}

/* Parceiro sem logo: quadrado azul-claro com o ícone da categoria. */
.convenios-card__logo-placeholder {
    display: grid;
    width: 4rem;
    height: 4rem;
    border-radius: .6rem;
    color: var(--convenios-primary);
    background: var(--convenios-secondary);
    place-items: center;
}

.convenios-card__logo-placeholder-icon {
    width: 32px;
    height: 32px;
    background-color: currentColor;
    -webkit-mask-image: var(--convenios-icon);
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-image: var(--convenios-icon);
    mask-position: center;
    mask-size: contain;
    mask-repeat: no-repeat;
}

/* Com logo real, não há quadrado atrás da marca. */
.convenios-card__header.has-logo .convenios-card__logo-placeholder {
    display: none;
}

/* Falha ao carregar: mantém a faixa e volta ao fallback da categoria. */
.convenios-card__header.is-logo-error .convenios-card__logo {
    display: none;
}

.convenios-card__header.is-logo-error .convenios-card__logo-placeholder {
    display: grid;
}

.convenios-card__category {
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--convenios-primary);
}

.convenios-card__name {
    margin: .4rem 0 0;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.25;
}

.convenios-card__summary {
    margin: .45rem 0 0;
    color: var(--convenios-muted);
    font-size: .875rem;
    line-height: 1.6;
}

.convenios-card__region {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin: .85rem 0 0;
    color: var(--convenios-muted);
    font-size: .78rem;
}

.convenios-card__region-icon {
    flex: none;
    color: var(--convenios-primary);
}

.convenios-card__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-top: auto;
    padding-top: 1rem;
}

/* Quantidade de benefícios da oferta. */
.convenios-card__offers {
    margin: 0;
    color: var(--convenios-muted);
    font-size: .8rem;
    font-weight: 600;
}

/* Ação visível que leva à página individual; o card inteiro é o link. */
.convenios-card__action {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-left: auto;
    color: var(--convenios-primary);
    font-size: .8125rem;
    font-weight: 700;
}

.convenios-results__pagination {
    margin-top: 2rem;
}

.convenios-results__pagination .page-link {
    color: var(--convenios-primary);
}

.convenios-results__pagination .page-item.active .page-link {
    border-color: var(--convenios-primary);
    background: var(--convenios-primary);
}

.convenios-results__pagination .page-item.disabled .page-link {
    color: var(--convenios-muted);
}

/* Lista vazia */
.convenios-results__empty {
    margin-top: 2rem;
    padding: 2.5rem 1.5rem;
    border: 1px dashed var(--convenios-border);
    border-radius: .5rem;
    text-align: center;
    background: var(--convenios-card);
}

.convenios-results__empty-title {
    margin: 0;
    color: var(--convenios-fg);
    font-size: 1.15rem;
    font-weight: 700;
}

.convenios-results__empty-text {
    max-width: 32rem;
    margin: .5rem auto 0;
    color: var(--convenios-muted);
    font-size: .9rem;
    line-height: 1.6;
}

.convenios-results__empty-action {
    margin: 1rem 0 0;
}

.convenios-results__empty-action a {
    color: var(--convenios-primary);
    font-size: .875rem;
    font-weight: 700;
}

/* Convênios (catálogo): telas menores */
@media (min-width: 576px) {
    .convenios-categories__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .convenios-categories__grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .convenios-categories__card {
        min-height: 6.75rem;
    }
}

/* Convênios (detalhe do parceiro) */
.convenio-detalhe {
    --convenio-primary: #004b99;
    --convenio-secondary: #dceefc;
    --convenio-muted: #526274;
    --convenio-border: #e2e5e9;
    --convenio-fg: #0e1b2a;
    --convenio-card: #fff;
    --convenio-media-bg: #f5f6f8;
    /* Quanto o logo avança sobre a borda inferior da capa. */
    --convenio-logo-overlap: 36px;
    color: var(--convenio-fg);
    background: #fff;
}

/* Apresentação branca e conteúdo sobre fundo neutro. */
.convenio-detalhe__intro {
    padding-top: clamp(1.75rem, 4vw, 2.5rem);
    padding-bottom: 1.5rem;
}

.convenio-detalhe__body {
    padding: 2rem 0 clamp(3rem, 6vw, 4.5rem);
    background: #f7f8fa;
}

/* Faixa superior: breadcrumb à esquerda e retorno à listagem à direita. */
.convenio-detalhe__topbar {
    margin-bottom: 1rem;
}

.convenio-detalhe__breadcrumb {
    min-width: 0;
}

.convenio-detalhe__breadcrumb .breadcrumb {
    --bs-breadcrumb-divider-color: var(--convenio-muted);

    margin: 0;
    font-size: .8125rem;
}

.convenio-detalhe__breadcrumb a {
    color: var(--convenio-primary);
    text-decoration: none;
}

.convenio-detalhe__breadcrumb a:hover,
.convenio-detalhe__breadcrumb a:focus-visible {
    text-decoration: underline;
    text-underline-offset: .2rem;
}

.convenio-detalhe__breadcrumb .active {
    color: var(--convenio-muted);
}

/* Impede que nomes longos estiquem a faixa ou gerem rolagem horizontal. */
.convenio-detalhe__breadcrumb-current {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.convenio-detalhe__back {
    margin: 0;
}

.convenio-detalhe__back a {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--convenio-primary);
    font-size: .8125rem;
    font-weight: 700;
    text-decoration: none;
}

.convenio-detalhe__back a:hover {
    text-decoration: underline;
}

.convenio-detalhe__back a:focus-visible {
    border-radius: .25rem;
    outline: 3px solid var(--convenio-primary);
    outline-offset: 2px;
}

/* Cabeçalho: banner inteiro (proporção natural) ou faixa compacta com a cor.
   O estado sem capa não renderiza nenhuma área aqui. */
.convenio-detalhe__header {
    position: relative;
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--convenio-border);
    border-radius: .5rem;
}

.convenio-detalhe__header[hidden] {
    display: none;
}

/* Banner: a imagem dita a altura, preservando a proporção sem recorte. */
.convenio-detalhe__header.has-banner {
    background: var(--convenio-card);
}

.convenio-detalhe__header.has-banner:not(.is-media-error) {
    height: auto;
}

/* Faixa pela cor cadastrada ou fallback quando o banner falha e há cor. */
.convenio-detalhe__header.has-color,
.convenio-detalhe__header.is-media-error {
    height: clamp(160px, 16vw, 180px);
    background: var(--convenio-media-bg, #f5f6f8);
}

.convenio-detalhe__banner {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    background: transparent;
}

.convenio-detalhe__header.is-media-error .convenio-detalhe__banner {
    display: none;
}

/* Identificação: logo, categoria, nome e ação do WhatsApp. */
.convenio-detalhe__identity {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    margin-top: 1.5rem;
}

/* Com capa, o logo sobe sobre a borda inferior e a identificação cola nela. */
.convenio-detalhe__identity.has-cover {
    margin-top: 0;
}

.convenio-detalhe__identity.has-cover .convenio-detalhe__logo {
    margin-top: calc(-1 * var(--convenio-logo-overlap));
}

.convenio-detalhe__logo {
    position: relative;
    display: grid;
    flex: none;
    width: 140px;
    height: 140px;
    padding: .75rem;
    border: 1px solid var(--convenio-border);
    border-radius: .75rem;
    background: var(--convenio-card);
    box-shadow: 0 2px 12px rgb(14 27 42 / 10%);
    place-items: center;
}

.convenio-detalhe__logo-image {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    border-radius: .4rem;
    object-fit: contain;
}

.convenio-detalhe__logo-placeholder {
    display: grid;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: .75rem;
    color: var(--convenio-primary);
    background: var(--convenio-secondary);
    place-items: center;
}

.convenio-detalhe__logo-icon {
    width: 40px;
    height: 40px;
    background-color: currentColor;
    -webkit-mask-image: var(--convenio-icon);
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-image: var(--convenio-icon);
    mask-position: center;
    mask-size: contain;
    mask-repeat: no-repeat;
}

.convenio-detalhe__logo.has-logo .convenio-detalhe__logo-placeholder {
    display: none;
}

.convenio-detalhe__logo.is-media-error .convenio-detalhe__logo-image {
    display: none;
}

.convenio-detalhe__logo.is-media-error .convenio-detalhe__logo-placeholder {
    display: grid;
}

.convenio-detalhe__identity-text {
    flex: 1 1 16rem;
    min-width: 0;
}

.convenio-detalhe__category {
    color: var(--convenio-primary);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.convenio-detalhe__name {
    margin: .35rem 0 0;
    font-size: clamp(1.5rem, 4vw, 2.15rem);
    font-weight: 700;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.convenio-detalhe__area {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin: .6rem 0 0;
    color: var(--convenio-muted);
    font-size: .8125rem;
}

.convenio-detalhe__area-icon {
    flex: none;
    color: var(--convenio-primary);
}

.convenio-detalhe__whatsapp {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: .55rem;
    padding: .8rem 1.35rem;
    border-radius: .45rem;
    color: #fff;
    font-size: .875rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    background: #128c4a;
    transition: background-color .2s ease, box-shadow .2s ease;
}

/* Mantém texto e ícone brancos: o `a:hover` do Bootstrap tem especificidade
   maior que esta classe e aplicaria a cor azul de link. */
.convenio-detalhe__whatsapp:hover {
    color: #fff;
    box-shadow: 0 10px 24px rgb(18 140 74 / 25%);
    background: #0f7a40;
}

.convenio-detalhe__whatsapp:focus-visible {
    color: #fff;
    outline: 3px solid #128c4a;
    outline-offset: 2px;
}

.convenio-detalhe__whatsapp-icon {
    flex: none;
    width: 20px;
    height: 20px;
}

/* Conteúdo: benefícios e apresentação à esquerda; contato e local à direita. */
.convenio-detalhe__content {
    margin-top: calc(-1 * var(--bs-gutter-y));
}

.convenio-detalhe__section {
    margin-top: 2.25rem;
}

.convenio-detalhe__section:first-child {
    margin-top: 0;
}

.convenio-detalhe__section-title {
    margin: 0 0 1rem;
    font-size: clamp(1.2rem, 2.5vw, 1.5rem);
    font-weight: 700;
    line-height: 1.2;
}

.convenio-detalhe__benefits {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 0;
}

.convenio-detalhe__benefit {
    padding: 1.25rem;
    border: 1px solid var(--convenio-border);
    border-radius: .5rem;
    background: var(--convenio-card);
}

.convenio-detalhe__benefit-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem 1rem;
}

.convenio-detalhe__benefit-title {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.convenio-detalhe__benefit-value {
    flex: none;
    padding: .3rem .7rem;
    border-radius: 999px;
    color: var(--convenio-primary);
    font-size: .875rem;
    font-weight: 800;
    background: var(--convenio-secondary);
}

.convenio-detalhe__benefit-text {
    margin: .75rem 0 0;
    color: var(--convenio-muted);
    font-size: .9375rem;
    line-height: 1.65;
    white-space: pre-line;
}

.convenio-detalhe__benefit-terms {
    margin: .75rem 0 0;
    color: var(--convenio-muted);
    font-size: .875rem;
    line-height: 1.6;
    white-space: pre-line;
}

.convenio-detalhe__benefit-validity {
    margin: .75rem 0 0;
    color: var(--convenio-primary);
    font-size: .8125rem;
    font-weight: 700;
}

.convenio-detalhe__empty {
    margin: 0;
    padding: 1.5rem;
    border: 1px dashed var(--convenio-border);
    border-radius: .5rem;
    color: var(--convenio-muted);
    font-size: .9375rem;
    line-height: 1.6;
    background: var(--convenio-card);
}

.convenio-detalhe__about {
    color: var(--convenio-muted);
    font-size: .9375rem;
    line-height: 1.7;
}

.convenio-detalhe__about > :last-child {
    margin-bottom: 0;
}

.convenio-detalhe__sidebar {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.convenio-detalhe__card {
    padding: 1.25rem;
    border: 1px solid var(--convenio-border);
    border-radius: .5rem;
    background: var(--convenio-card);
}

.convenio-detalhe__card-title {
    margin: 0 0 .85rem;
    font-size: 1.0625rem;
    font-weight: 700;
}

.convenio-detalhe__contacts {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin: 0;
    font-size: .9375rem;
}

/* Contato: ícone azul institucional à esquerda, texto preto e quebra
   segura de e-mails e URLs longos dentro do card. */
.convenio-detalhe__contact {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    color: #000;
    text-decoration: none;
    transition: color .2s ease;
}

.convenio-detalhe__contact:hover,
.convenio-detalhe__contact:focus-visible {
    color: var(--convenio-primary);
}

.convenio-detalhe__contact:focus-visible {
    border-radius: .25rem;
    outline: 3px solid var(--convenio-primary);
    outline-offset: 2px;
}

.convenio-detalhe__contact-icon {
    flex: 0 0 1.15rem;
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .1rem;
    color: var(--convenio-primary);
}

.convenio-detalhe__contact-text {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Localização: pin azul institucional alinhado ao texto escuro do endereço. */
.convenio-detalhe__address-row {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
}

.convenio-detalhe__address-icon {
    flex: 0 0 1.15rem;
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .1rem;
    color: var(--convenio-primary);
}

.convenio-detalhe__address {
    display: flex;
    flex-direction: column;
    margin: 0;
    color: #000;
    font-size: .9375rem;
    font-style: normal;
    line-height: 1.6;
}

.convenio-detalhe__map {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-top: 1rem;
    padding: .65rem 1.1rem;
    border: 1px solid var(--convenio-primary);
    border-radius: .45rem;
    color: var(--convenio-primary);
    font-size: .8125rem;
    font-weight: 700;
    text-decoration: none;
    background: transparent;
    transition: background-color .2s ease, color .2s ease;
}

.convenio-detalhe__map-icon {
    flex: none;
    width: 1rem;
    height: 1rem;
}

.convenio-detalhe__map:hover {
    color: #fff;
    background: var(--convenio-primary);
}

.convenio-detalhe__map:focus-visible {
    outline: 3px solid var(--convenio-primary);
    outline-offset: 2px;
}

@media (min-width: 992px) {
    .convenio-detalhe__sidebar {
        position: sticky;
        top: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .convenio-detalhe {
        /* Sobreposição menor no celular. */
        --convenio-logo-overlap: 22px;
    }

    .convenio-detalhe__identity {
        /* Em coluna, o `flex-basis` vertical do texto era herdado como
           16rem de altura e abria um vão grande antes do WhatsApp. */
        flex-direction: column;
        align-items: flex-start;
    }

    .convenio-detalhe__identity-text {
        flex: 0 0 auto;
        width: 100%;
    }

    .convenio-detalhe__logo {
        width: 104px;
        height: 104px;
    }

    .convenio-detalhe__whatsapp {
        justify-content: center;
        width: 100%;
        /* gap (1rem) + este margin ≈ 30px até o botão. */
        margin-top: 1rem;
    }
}

/* Convênios (detalhe do parceiro): navegação anterior/próximo */
.convenio-detalhe__nav {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--convenio-border);
}

.convenio-detalhe__nav-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .75rem;
    margin: 0;
}

.convenio-detalhe__nav-link {
    display: flex;
    flex: 1 1 16rem;
    align-items: center;
    gap: .75rem;
    min-width: 0;
    max-width: 22rem;
    padding: .85rem 1.1rem;
    border: 1px solid var(--convenio-border);
    border-radius: .5rem;
    color: var(--convenio-fg);
    text-decoration: none;
    background: var(--convenio-card);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.convenio-detalhe__nav-link:hover {
    border-color: var(--convenio-primary);
    box-shadow: 0 8px 20px rgb(14 27 42 / 8%);
}

.convenio-detalhe__nav-link:focus-visible {
    outline: 3px solid var(--convenio-primary);
    outline-offset: 2px;
}

/* Próximo alinha-se à direita mesmo quando só ele existe. */
.convenio-detalhe__nav-link--next {
    justify-content: flex-end;
    margin-left: auto;
    text-align: right;
}

.convenio-detalhe__nav-icon {
    flex: none;
    color: var(--convenio-primary);
}

.convenio-detalhe__nav-text {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    min-width: 0;
}

.convenio-detalhe__nav-label {
    color: var(--convenio-muted);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.convenio-detalhe__nav-name {
    font-size: .9375rem;
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

/* No celular cada destino ocupa a própria linha, com toque confortável. */
@media (max-width: 575.98px) {
    .convenio-detalhe__nav-link {
        flex-basis: 100%;
        max-width: none;
    }
}

/* Rodapé */
.site-footer {
    --site-footer-bg: #07162a;
    --site-footer-fg: #f1f6fa;
    color: var(--site-footer-fg);
    background: var(--site-footer-bg);
}

.site-footer__main {
    padding: 56px 0;
}

.site-footer__main .container {
    --bs-gutter-x: 2.5rem;
}

.site-footer__row {
    --bs-gutter-x: 2.5rem;
    --bs-gutter-y: 2.5rem;
}

.site-footer__brand {
    display: inline-block;
    max-width: 240px;
}

.site-footer__logo {
    display: block;
    width: 100%;
    height: auto;
}

.site-footer__about {
    max-width: 32rem;
    margin: 20px 0 0;
    color: rgba(241, 246, 250, .65);
    font-size: .875rem;
    line-height: 1.625;
}

.site-footer__title {
    margin: 0;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.site-footer__links {
    display: grid;
    gap: 8px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.site-footer__links a {
    color: rgba(241, 246, 250, .7);
    font-size: .875rem;
    line-height: 1.5;
    text-decoration: none;
}

.site-footer__links a:hover,
.site-footer__links a:focus-visible {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.site-footer__contact {
    display: grid;
    gap: 12px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
    color: rgba(241, 246, 250, .7);
    font-size: .875rem;
}

.site-footer__contact li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.site-footer__contact-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: inherit;
    text-decoration: none;
}

.site-footer__contact-link:hover,
.site-footer__contact-link:focus-visible {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.site-footer__icon {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}

.site-footer__icon--pin {
    margin-top: 2px;
}

.site-footer__address {
    margin: 0;
    font-style: normal;
    line-height: 1.5;
}

.site-footer__address a {
    color: inherit;
    text-decoration: none;
}

.site-footer__address a:hover,
.site-footer__address a:focus-visible {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.site-footer__bottom {
    padding: 20px 0;
    border-top: 1px solid rgba(241, 246, 250, .1);
    color: rgba(241, 246, 250, .45);
    font-size: .75rem;
    text-align: center;
}

@media (max-width: 767.98px) {
    .site-footer__main {
        padding: 44px 0;
    }

    .site-footer__row {
        --bs-gutter-y: 2rem;
    }
}

/* Acessibilidade */
@media (prefers-reduced-motion: reduce) {
    .about-gallery__image,
    .space-card,
    .space-card__action-icon,
    .error-page__action,
    .home-convenios__more {
        transition: none;
    }

    .space-card:hover .space-card__action-icon,
    .space-card:focus-visible .space-card__action-icon {
        transform: none;
    }
}

/* Reserva de espaço */
.space-reservation {
    padding: 80px 0;
    background: #f6f8fc;
}

.space-reservation__heading {
    max-width: 720px;
    margin: 0 auto 48px;
    text-align: center;
}

.space-reservation__eyebrow {
    margin-bottom: 10px;
    color: #0539b6;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.space-reservation__heading h2 {
    margin-bottom: 14px;
    color: #061b52;
    font-size: clamp(28px, 3vw, 40px);
}

.space-reservation__heading p,
.space-reservation__form-heading p {
    margin-bottom: 0;
    color: #52606d;
}

.space-reservation__success {
    max-width: 760px;
    margin: 0 auto 32px;
}

.reservation-calendar,
.space-reservation__form {
    height: 100%;
    padding: 28px;
    background: #fff;
    border: 1px solid #dce3ee;
    border-radius: 10px;
}

.reservation-calendar__toolbar {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.reservation-calendar__month {
    margin: 0;
    color: #061b52;
    font-size: 22px;
    font-weight: 700;
    text-align: center;
}

.reservation-calendar__navigation {
    width: 40px;
    height: 40px;
    color: #0539b6;
    font-size: 22px;
    background: #fff;
    border: 1px solid #dce3ee;
    border-radius: 50%;
}

.reservation-calendar__navigation:hover,
.reservation-calendar__navigation:focus-visible {
    color: #fff;
    background: #0539b6;
}

.reservation-calendar__legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 18px;
    margin-bottom: 20px;
    color: #52606d;
    font-size: 13px;
}

.reservation-calendar__legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.reservation-calendar__legend i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.reservation-calendar__legend .is-available {
    background: #fff;
    border: 1px solid #9baec4;
}

.reservation-calendar__legend .is-unavailable {
    background: #d8dee8;
}

.reservation-calendar__legend .is-reserved {
    background: #e05d43;
}

.reservation-calendar__legend .is-selected {
    background: #0539b6;
}

.reservation-calendar__weekdays,
.reservation-calendar__days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 6px;
}

.reservation-calendar__weekdays {
    margin-bottom: 8px;
    color: #52606d;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
}

.reservation-calendar__loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    margin-bottom: 6px;
    color: #52606d;
    font-size: 14px;
}

.reservation-calendar__loading[hidden] {
    display: none;
}

.reservation-calendar__days > span,
.reservation-calendar__day {
    min-height: 46px;
}

.reservation-calendar__day {
    color: #1f2933;
    font-weight: 600;
    background: #fff;
    border: 1px solid #dce3ee;
    border-radius: 6px;
}

.reservation-calendar__day:hover:not(:disabled),
.reservation-calendar__day:focus-visible:not(:disabled),
.reservation-calendar__day.is-selected {
    color: #fff;
    background: #0539b6;
    border-color: #0539b6;
}

.reservation-calendar__day:disabled,
.reservation-calendar__day.is-unavailable {
    color: #8a98a8;
    background: #edf0f4;
    border-color: #edf0f4;
    cursor: not-allowed;
}

.reservation-calendar__day:disabled.is-reserved,
.reservation-calendar__day.is-reserved {
    color: #9f2d18;
    background: #fff0ec;
    border-color: #f1b8aa;
    cursor: not-allowed;
}

.space-reservation__form-heading {
    margin-bottom: 24px;
}

.space-reservation__form-heading h3 {
    margin-bottom: 6px;
    color: #061b52;
    font-size: 24px;
}

.space-reservation__form .form-label {
    color: #1f2933;
    font-weight: 600;
}

.space-reservation__honeypot {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.space-reservation__consent {
    margin: 24px 0;
    color: #52606d;
    font-size: 14px;
}

.space-reservation__consent a {
    color: #0539b6;
}

.space-reservation__policy-link {
    padding: 0;
    color: #0539b6;
    text-decoration: underline;
    text-underline-offset: 2px;
    background: transparent;
    border: 0;
}

.space-reservation__policy-link:hover,
.space-reservation__policy-link:focus-visible {
    color: #021780;
}

.space-reservation__policy-content h2,
.space-reservation__policy-content h3 {
    margin-top: 1.5rem;
    color: #061b52;
}

.space-reservation__policy-content h2:first-child,
.space-reservation__policy-content h3:first-child {
    margin-top: 0;
}

.space-reservation__submit {
    min-height: 46px;
    padding: 0 22px;
    color: #fff;
    font-weight: 700;
    background: #0539b6;
    border: 1px solid #0539b6;
    border-radius: 5px;
}

.space-reservation__submit:hover,
.space-reservation__submit:focus-visible {
    background: #021780;
    border-color: #021780;
}

@media (max-width: 575.98px) {
    .space-reservation {
        padding: 56px 0;
    }

    .space-reservation__heading {
        margin-bottom: 32px;
    }

    .reservation-calendar,
    .space-reservation__form {
        padding: 20px;
    }

    .reservation-calendar__days > span,
    .reservation-calendar__day {
        min-height: 40px;
    }
}

/* Notícias */
/* Cabeçalho compacto: o gradiente e as linhas vêm de .hero-surface.
   Mantém padding próprio, sem herdar dimensões de Convênios. */
.news-hero {
    padding: 48px 0 44px;
    color: #fff;
}

.news-hero__title {
    margin: 0;
    font-size: 48px;
    font-weight: 700;
    line-height: 1.15;
}

.news-hero__title span {
    color: #dbe6f7;
}

.news-hero__text {
    max-width: 620px;
    margin: 14px 0 0;
    font-size: 17px;
    line-height: 1.7;
}

.news-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 28px 0 0;
}

.news-tags__item {
    display: inline-flex;
    padding: 8px 16px;
    border: 1px solid rgb(255 255 255 / 55%);
    border-radius: 999px;
    color: #fff;
    font-size: 13px;
    text-decoration: none;
    background: rgb(255 255 255 / 12%);
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.news-tags__item:hover,
.news-tags__item:focus-visible {
    color: #0451a4;
    background: #fff;
    border-color: #fff;
}

.news-tags__item--ativo {
    color: #0451a4;
    font-weight: 600;
    background: #fff;
    border-color: #fff;
}

/* Paleta alinhada ao card de destaque da Home (Notícias). */
.news-list {
    --news-list-background: #f6fbff;
    --news-list-foreground: #0e1b2a;
    --news-list-primary: #004b99;
    --news-list-secondary: #dceefc;
    --news-list-muted: #526274;
    --news-list-border: #cdd9e4;
    --news-list-card: #fff;
    padding: 44px 0 72px;
    color: var(--news-list-foreground);
    background: var(--news-list-background);
}

.news-list__breadcrumb .breadcrumb {
    --bs-breadcrumb-divider-color: var(--news-list-muted);

    margin: 0 0 1.5rem;
    font-size: .875rem;
}

.news-list__breadcrumb a {
    color: var(--news-list-primary);
    text-decoration: none;
}

.news-list__breadcrumb a:hover,
.news-list__breadcrumb a:focus-visible {
    text-decoration: underline;
    text-underline-offset: .2rem;
}

.news-list__breadcrumb .active {
    color: var(--news-list-muted);
}

.news-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--news-list-border);
    border-radius: .5rem;
    color: inherit;
    background: var(--news-list-card);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.news-card:hover,
.news-card:focus-within {
    border-color: var(--news-list-primary);
    box-shadow: 0 18px 40px rgb(7 22 42 / 12%);
}

.news-card__image {
    display: block;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    transition: transform .3s ease;
}

/* Sem imagem de capa: mesmo degradê da seção de notícias da Home. */
.news-card__image--vazia {
    background: linear-gradient(
        135deg,
        var(--news-list-secondary),
        #eef5fd
    );
}

.news-card:hover .news-card__image,
.news-card:focus-within .news-card__image {
    transform: scale(1.03);
}

.news-card__body {
    display: grid;
    gap: .5rem;
    padding: 1.5rem;
}

.news-card__category {
    color: var(--news-list-primary);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.news-card__date {
    color: var(--news-list-muted);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.news-card__title {
    margin: 0;
    color: var(--news-list-foreground);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
}

.news-card__link {
    color: inherit;
    text-decoration: none;
}

.news-card__link:hover,
.news-card__link:focus-visible {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: .25rem;
}

.news-card__summary {
    margin: 0;
    color: var(--news-list-muted);
    font-size: .95rem;
    line-height: 1.6;
}

.news-list a:focus-visible {
    outline: 3px solid var(--news-list-primary);
    outline-offset: 4px;
}

.news-list__empty {
    margin: 0;
    color: var(--news-list-muted);
    font-size: 1rem;
}

.news-list__empty-action {
    margin: 10px 0 0;
}

.news-pagination {
    margin-top: 36px;
}

.news-pagination .pagination {
    margin-bottom: 0;
}

.news-pagination .page-link {
    color: var(--news-list-primary);
}

.news-pagination .active > .page-link {
    border-color: var(--news-list-primary);
    background: var(--news-list-primary);
}

.news-pagination .page-link:hover,
.news-pagination .page-link:focus-visible {
    color: #fff;
    border-color: var(--news-list-primary);
    background: var(--news-list-primary);
}

@media (prefers-reduced-motion: reduce) {
    .news-card,
    .news-card__image {
        transition: none;
    }

    .news-card:hover .news-card__image,
    .news-card:focus-within .news-card__image {
        transform: none;
    }
}

/* Notícias: telas menores */
@media (max-width: 991.98px) {
    .news-hero {
        padding: 40px 0 32px;
    }

    .news-hero__title {
        font-size: 34px;
    }
}

/* Detalhe da notícia */
.news-article {
    --news-article-background: #f6fbff;
    --news-article-foreground: #0e1b2a;
    --news-article-primary: #004b99;
    --news-article-secondary: #dceefc;
    --news-article-muted: #526274;
    --news-article-text: #2f3d55;
    --news-article-border: #cdd9e4;
    --news-article-container: 1080px;
    --news-article-reading: 780px;
    padding: 24px 0;
    color: var(--news-article-foreground);
    background: var(--news-article-background);
}

/* Coluna editorial geral (cabeçalho e capa) e coluna de leitura (corpo). */
.news-article__inner {
    width: 100%;
    max-width: var(--news-article-container);
    margin-inline: auto;
}

.news-article__reading {
    width: 100%;
    max-width: var(--news-article-reading);
    margin-inline: auto;
}

.news-article__header {
    margin-bottom: 40px;
}

.news-breadcrumb .breadcrumb {
    --bs-breadcrumb-divider-color: var(--news-article-muted);

    margin: 0;
    font-size: .875rem;
}

.news-breadcrumb {
    margin-bottom: 1rem;
}

.news-breadcrumb a {
    color: var(--news-article-primary);
    text-decoration: none;
}

.news-breadcrumb a:hover,
.news-breadcrumb a:focus-visible {
    text-decoration: underline;
    text-underline-offset: .2rem;
}

.news-breadcrumb .active {
    color: var(--news-article-muted);
}

.news-article__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
}

/* Categoria como rótulo editorial, no estilo dos eyebrows da referência. */
.news-article__badge {
    color: var(--news-article-primary);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-decoration: none;
    text-transform: uppercase;
}

.news-article__badge:hover,
.news-article__badge:focus-visible {
    color: var(--news-article-primary);
    text-decoration: underline;
    text-underline-offset: .3rem;
}

.news-article__date {
    color: var(--news-article-muted);
    font-size: .875rem;
    font-weight: 600;
}

/* Separa categoria e data com um ponto apenas quando as duas existem. */
.news-article__badge + .news-article__date::before {
    margin-right: 10px;
    content: "·";
}

.news-article__title {
    margin: 0;
    color: var(--news-article-foreground);
    font-size: clamp(2.1rem, 4.5vw, 3rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.01em;
}

.news-article__summary {
    margin: 20px 0 0;
    color: var(--news-article-muted);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    line-height: 1.6;
}

.news-article__cover {
    margin: 0 0 48px;
}

.news-article__cover-image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: .75rem;
    background: var(--news-article-secondary);
}

.news-article__body {
    color: var(--news-article-text);
}

.news-article__content {
    font-size: 1.0625rem;
    line-height: 1.85;
}

.news-article__content p {
    margin: 0 0 1.3em;
}

/* Subtítulo editorial: o editor só oferece h3 no conteúdo. */
.news-article__content h3 {
    margin: 2.25em 0 .65em;
    color: var(--news-article-primary);
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.3;
}

.news-article__content ul,
.news-article__content ol {
    margin: 0 0 1.3em;
    padding-left: 24px;
}

.news-article__content li {
    margin-bottom: .5em;
}

.news-article__content a {
    color: var(--news-article-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.news-article__content a:hover,
.news-article__content a:focus-visible {
    color: #033a78;
}

.news-article__content strong,
.news-article__content b {
    color: var(--news-article-foreground);
    font-weight: 700;
}

.news-article__content em,
.news-article__content i {
    font-style: italic;
}

.news-article__content u {
    text-decoration: underline;
}

.news-article__gallery {
    margin-top: 48px;
}

.news-article__gallery-title {
    margin: 0 0 18px;
    color: var(--news-article-foreground);
    font-size: 1.375rem;
    font-weight: 700;
}

.news-gallery__item {
    display: block;
    overflow: hidden;
    border-radius: .75rem;
}

.news-gallery__image {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    transition: transform .2s ease;
}

.news-gallery__item:hover .news-gallery__image,
.news-gallery__item:focus-visible .news-gallery__image {
    transform: scale(1.04);
}

.news-gallery-modal__image {
    max-width: 100%;
    max-height: 72vh;
    height: auto;
}

.news-gallery-modal__caption {
    margin-top: 12px;
    color: var(--news-article-muted);
    font-size: .875rem;
}

/* Fecho editorial: a ação de retorno fica separada por um filete. */
.news-article__actions {
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid var(--news-article-border);
}

.news-article__action {
    padding: 12px 24px;
    color: #fff;
    font-weight: 700;
    background: var(--news-article-primary);
    border: 1px solid var(--news-article-primary);
    border-radius: .5rem;
}

.news-article__action:hover,
.news-article__action:focus-visible {
    color: #fff;
    background: #033a78;
    border-color: #033a78;
}

/* Detalhe da notícia: telas menores */
@media (max-width: 991.98px) {
    .news-article {
        padding: 22px 0;
    }

    .news-article__header {
        margin-bottom: 32px;
    }

    .news-article__cover {
        margin-bottom: 36px;
    }
}

@media (max-width: 767.98px) {
    .news-article {
        padding: 20px 0;
    }

    .news-article__title {
        font-size: 2rem;
    }

    .news-article__summary {
        margin-top: 16px;
        font-size: 1.05rem;
    }

    .news-article__cover-image {
        border-radius: .5rem;
    }

    .news-article__content {
        font-size: 1rem;
        line-height: 1.8;
    }

    .news-article__actions {
        margin-top: 40px;
        padding-top: 28px;
    }
}

/* Respiro antes do rodapé */
.home-proposito,
.about-purpose,
.contact-page,
.policy-page,
.spaces-page,
.benefits-content,
.news-list,
.news-article,
.space-reservation {
    padding-bottom: 140px;
}

@media (max-width: 991.98px) {
    .home-proposito,
    .about-purpose,
    .contact-page,
    .policy-page,
        .spaces-page,
        .benefits-content,
        .news-list,
    .news-article,
    .space-reservation {
        padding-bottom: 112px;
    }
}

@media (max-width: 767.98px) {
    .home-proposito,
    .about-purpose,
    .contact-page,
    .policy-page,
        .spaces-page,
        .benefits-content,
        .news-list,
    .news-article,
    .space-reservation {
        padding-bottom: 96px;
    }
}

/* Botão flutuante de contato (WhatsApp) */
.site-whatsapp {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1010;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 22px;
    border-radius: 12px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    background: var(--site-blue);
    box-shadow: 0 12px 28px rgb(47 84 162 / 35%);
    transition: transform .2s ease, box-shadow .2s ease;
}

.site-whatsapp:hover,
.site-whatsapp:focus-visible {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgb(47 84 162 / 45%);
}

.site-whatsapp__icon {
    flex: none;
    width: 22px;
    height: 22px;
}

@media (max-width: 575.98px) {
    .site-whatsapp {
        right: 16px;
        bottom: 16px;
        padding: 12px;
        border-radius: 50%;
    }

    .site-whatsapp__label {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-whatsapp {
        transition: none;
    }
}
