:root {
    --color-primary: #4E6E36;
    --color-player: #A6B69A;
    --color-text: #707070;
    --color-text-light: #8F8F8F;
    --color-border: #DDDDDD;
    --color-footer: #F6F6F6;
    --color-white: #FFFFFF;

    --font-family: 'Montserrat', Arial, sans-serif;

    /* O layout de referência foi considerado em 1920px de largura. */
    --page-width: 1420px;
    --header-width: 1760px;
    --nav-width: 1100px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--color-white);
    color: var(--color-text);
    font-family: var(--font-family);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.modal-open {
    overflow: hidden;
}

img {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button {
    font: inherit;
}

.page-container {
    width: min(var(--page-width), calc(100% - 80px));
    margin-inline: auto;
}

/* =========================================================
   HEADER
   ========================================================= */
.site-header__top {
    height: 180px;
    background: var(--color-primary);
}

.site-header__inner {
    width: min(var(--header-width), calc(100% - 120px));
    height: 100%;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.site-logo {
    display: inline-flex;
    align-items: center;
}

.site-logo img {
    width: 220px;
    height: auto;
}

.site-social {
    margin-top: 4px;
    color: var(--color-white);
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 14px;
}

.site-social__label {
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
}

.site-social__links {
    display: flex;
    align-items: center;
    gap: 18px;
    /*padding-right: 3px;*/
    text-align: center;
    margin: 0 auto;
}

.site-social__links a {
    display: block;
}

.site-social__links img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.site-nav {
    height: 50px;
    margin-top: 20px;
    border-bottom: 1px solid #BEBEBE;
    background: var(--color-white);
}

.site-nav__inner {
    width: min(var(--nav-width), 100%);
    height: 100%;
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.site-nav__link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8E8E8E;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    transition: color .2s ease;
}

.site-nav__link:hover,
.site-nav__link.is-active {
    color: var(--color-primary);
}

.site-nav__link.is-active::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -1px;
    width: 124px;
    height: 7px;
    border-radius: 8px 8px 0 0;
    background: var(--color-primary);
    transform: translateX(-50%);
}

/* =========================================================
   PLAYER + BANNER
   ========================================================= */
.home-player {
    margin-top: 34px;
    display: flex;
    justify-content: center;
}

.mini-player {
    width: 525px;
    height: 90px;
    padding: 11px 14px;
    border-radius: 14px;
    background: var(--color-player);
    color: var(--color-white);
    display: grid;
    grid-template-columns: 68px 1fr 46px 126px;
    align-items: center;
    column-gap: 14px;
    box-shadow: 0 5px 9px rgba(0, 0, 0, .08);
}

.mini-player__brand {
    width: 68px;
    height: 68px;
    padding: 8px 5px;
    border-radius: 8px;
    background: var(--color-primary);
    display: grid;
    place-items: center;
    overflow: hidden;
}

.mini-player__brand img {
    width: 62px;
    height: auto;
}

.mini-player__track {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1.12;
}

.mini-player__track small {
    margin-bottom: 4px;
    font-size: 10px;
    font-weight: 400;
}

.mini-player__track strong {
    overflow: hidden;
    font-size: 14px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mini-player__track span {
    margin-top: 5px;
    overflow: hidden;
    font-size: 11px;
    font-weight: 400;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mini-player__play {
    width: 46px;
    height: 46px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.mini-player__play img {
    width: 46px;
    height: 46px;
}

.mini-player__listen {
    width: 126px;
    height: 44px;
    padding: 0 14px 0 20px;
    border: 2px solid rgba(255, 255, 255, .9);
    border-radius: 24px;
    background: transparent;
    color: var(--color-white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 10px;
    font-weight: 500;
    line-height: 1;
}

.mini-player__listen b {
    margin-top: -1px;
    font-size: 23px;
    font-weight: 400;
    line-height: 1;
}

.home-ad {
    margin-top: 35px;
    display: flex;
    justify-content: center;
}

.home-ad img {
    width: 1000px;
    height: 215px;
    object-fit: cover;
}

/* =========================================================
   CABEÇALHOS DE SEÇÃO
   ========================================================= */
.home-section {
    position: relative;
}

.section-heading {
    min-height: 44px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 38px;
}

.section-heading h2,
.center-heading h2 {
    margin: 0;
    color: var(--color-primary);
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
}

.section-heading__line,
.center-heading > span {
    height: 2px;
    background: var(--color-primary);
}

.outline-button {
    min-width: 145px;
    height: 44px;
    padding: 0 24px;
    border: 2px solid var(--color-primary);
    border-radius: 24px;
    color: var(--color-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    transition: background-color .2s ease, color .2s ease;
}

.outline-button:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

/* =========================================================
   NOTÍCIAS
   ========================================================= */
.home-news {
    margin-top: 75px;
}

.news-grid {
    margin-top: 42px;
    display: grid;
    grid-template-columns: 271px 617px minmax(0, 362px);
    column-gap: 85px;
    align-items: start;
}

.news-left {
    display: flex;
    flex-direction: column;
}

.news-tile {
    text-align: center;
}

.news-tile--left {
    min-height: 338px;
    padding-bottom: 31px;
    margin-bottom: 31px;
    border-bottom: 1px solid var(--color-border);
}

.news-tile--left:last-child {
    margin-bottom: 0;
    border-bottom: 0;
}

.news-tile__image {
    display: block;
    overflow: hidden;
    border-radius: 24px;
}

.news-tile__image img {
    width: 271px;
    height: 189px;
    object-fit: cover;
    transition: transform .25s ease;
}

.news-tile h3,
.news-compact h3 {
    margin: 14px 0 6px;
    color: var(--color-text);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.16;
}

.news-tile--left h3 {
    min-height: 48px;
}

.read-more {
    color: var(--color-primary);
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
}

.news-tile:hover .news-tile__image img,
.news-compact:hover .news-compact__image img,
.feature-news:hover .feature-news__image img,
.promotion-card:hover .promotion-card__image img {
    transform: scale(1.02);
}

.feature-news {
    text-align: center;
}

.feature-news__image {
    display: block;
    overflow: hidden;
    border-radius: 24px;
}

.feature-news__image img {
    width: 617px;
    height: 381px;
    object-fit: cover;
    transition: transform .25s ease;
}

.feature-news__content {
    min-height: 246px;
    padding: 23px 4px 0;
}

.feature-news__date {
    display: block;
    margin-bottom: 13px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
}

.feature-news h3 {
    max-width: 590px;
    margin: 0 auto;
    color: var(--color-text);
    font-size: 28px;
    font-weight: 800;
    line-height: 1.08;
}

.feature-news p {
    max-width: 590px;
    margin: 14px auto 13px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.25;
}

.read-more--feature {
    font-size: 16px;
}

.news-center__bottom {
    width: 637px;
    margin-top: 45px;
    margin-left: -10px;
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
    display: grid;
    grid-template-columns: 271px 271px;
    justify-content: space-between;
}

.news-tile--bottom {
    position: relative;
}

.news-tile--bottom:first-child::after {
    content: '';
    position: absolute;
    top: -14px;
    right: -48px;
    width: 1px;
    height: calc(100% + 14px);
    background: var(--color-border);
}

.news-tile--bottom h3 {
    min-height: 48px;
}

.news-right {
    display: flex;
    flex-direction: column;
}

.news-compact {
    min-height: 190px;
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--color-border);
    display: grid;
    grid-template-columns: 147px 1fr;
    column-gap: 14px;
    align-items: center;
}

.news-compact:last-child {
    margin-bottom: 0;
    border-bottom: 0;
}

.news-compact__image {
    display: block;
    overflow: hidden;
    border-radius: 24px;
}

.news-compact__image img {
    width: 147px;
    height: 148px;
    object-fit: cover;
    transition: transform .25s ease;
}

.news-compact h3 {
    margin: 0 0 9px;
    text-align: left;
}

.news-compact .read-more {
    display: block;
    text-align: left;
}

/* =========================================================
   PROMOÇÕES
   ========================================================= */
.home-promotions {
    margin-top: 69px;
}

.home-promotions .section-heading {
    margin-bottom: 55px;
}

.promotions-grid {
    display: grid;
    grid-template-columns: repeat(3, 433px);
    justify-content: space-between;
}

.promotion-card {
    text-align: center;
}

.promotion-card__image {
    display: block;
    overflow: hidden;
    border-radius: 25px;
}

.promotion-card__image img {
    width: 433px;
    height: 257px;
    object-fit: cover;
    transition: transform .25s ease;
}

.promotion-card h3 {
    margin: 17px 0 12px;
    color: var(--color-text);
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}

.participate-button {
    min-width: 139px;
    height: 35px;
    padding: 0 23px;
    border-radius: 20px;
    background: var(--color-primary);
    color: var(--color-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
}

/* =========================================================
   LOCUTORES
   ========================================================= */
.home-speakers {
    margin-top: 69px;
    padding-bottom: 61px;
}

.center-heading {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 40px;
}

.center-heading h2 {
    font-size: 28px;
}

.speakers-grid {
    width: 1043px;
    margin-top: 40px;
    margin-left: 170px;
    display: flex;
    justify-content: space-between;
}

.speaker-card {
    width: 230px;
    text-align: center;
}

.speaker-card img {
    width: 230px;
    height: 230px;
    border-radius: 50%;
    object-fit: cover;
}

.speaker-card h3 {
    margin: 18px 0 0;
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer__main {
    height: 132px;
    background: var(--color-footer);
}

.site-footer__content {
    width: 760px;
    height: 100%;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 42px;
}

.footer-app {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: var(--color-text-light);
    font-size: 14px;
    font-weight: 400;
}

.footer-app__badges {
    display: flex;
    align-items: center;
    gap: 8px;
}

.footer-app__badges img {
    width: 134px;
    height: 41px;
    object-fit: contain;
}

.footer-divider {
    width: 2px;
    height: 68px;
    background: var(--color-primary);
}

.footer-links {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--color-text-light);
    font-size: 14px;
    font-weight: 400;
}

.footer-links span {
    color: var(--color-primary);
    font-size: 20px;
}

.site-footer__bar {
    height: 48px;
    padding: 0 20px;
    background: var(--color-primary);
    color: rgba(255, 255, 255, .67);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    text-align: center;
}

/* =========================================================
   PÁGINAS INTERNAS PROVISÓRIAS
   ========================================================= */
.content-section {
    width: min(var(--page-width), calc(100% - 80px));
    margin: 80px auto;
    font-size: 16px;
}

.content-section .section-heading {
    margin-bottom: 35px;
}

/* =========================================================
   MODAL DO PLAYER
   ========================================================= */
.player-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    place-items: center;
}

.player-modal.is-open {
    display: grid;
}

.player-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .58);
}

.player-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(92vw, 560px);
    padding: 40px;
    border-radius: 16px;
    background: var(--color-white);
    box-shadow: 0 20px 70px rgba(0, 0, 0, .28);
    text-align: center;
}

.player-modal__dialog h2 {
    margin: 0 0 10px;
    color: var(--color-primary);
}

.player-modal__dialog p {
    margin: 0;
    font-size: 15px;
}

.player-modal__close {
    position: absolute;
    top: 9px;
    right: 13px;
    border: 0;
    background: transparent;
    color: var(--color-primary);
    cursor: pointer;
    font-size: 30px;
    line-height: 1;
}

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width: 1599px) {
    :root {
        --header-width: calc(100% - 90px);
    }

    .site-header__top {
        height: 145px;
    }

    .site-logo img {
        width: 185px;
    }

    .site-nav {
        height: 72px;
    }

    .site-nav__link {
        font-size: 20px;
    }

    .page-container,
    .content-section {
        width: calc(100% - 70px);
    }

    .news-grid {
        grid-template-columns: minmax(220px, .78fr) minmax(500px, 1.8fr) minmax(300px, 1.05fr);
        column-gap: 42px;
    }

    .news-tile__image img,
    .feature-news__image img,
    .news-compact__image img,
    .promotion-card__image img {
        width: 100%;
        height: auto;
    }

    .feature-news__image img {
        aspect-ratio: 617 / 381;
    }

    .news-tile__image img {
        aspect-ratio: 271 / 189;
    }

    .news-center__bottom {
        width: 100%;
        margin-left: 0;
        grid-template-columns: 1fr 1fr;
        gap: 38px;
    }

    .news-tile--bottom:first-child::after {
        right: -19px;
    }

    .news-compact {
        grid-template-columns: 120px 1fr;
    }

    .news-compact__image img {
        width: 120px;
        height: 121px;
    }

    .promotions-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 42px;
    }

    .promotion-card__image img {
        aspect-ratio: 433 / 257;
    }

    .speakers-grid {
        width: 78%;
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 1100px) {
    .site-header__top {
        height: 125px;
    }

    .site-header__inner {
        width: calc(100% - 60px);
    }

    .site-logo img {
        width: 160px;
    }

    .site-social__label {
        font-size: 14px;
    }

    .site-nav {
        height: 68px;
    }

    .site-nav__inner {
        width: 760px;
        max-width: 100%;
    }

    .site-nav__link {
        font-size: 18px;
    }

    .site-nav__link.is-active::after {
        width: 96px;
        height: 5px;
    }

    .home-player {
        margin-top: 26px;
    }

    .home-ad {
        margin-top: 28px;
        padding-inline: 35px;
    }

    .home-ad img {
        width: min(1000px, 100%);
        height: auto;
    }

    .home-news {
        margin-top: 60px;
    }

    .section-heading {
        gap: 22px;
    }

    .section-heading h2,
    .center-heading h2 {
        font-size: 24px;
    }

    .outline-button {
        min-width: 125px;
        height: 40px;
        font-size: 14px;
    }

    .news-grid {
        grid-template-columns: 1fr 1.7fr;
        gap: 45px;
    }

    .news-center {
        grid-column: 1 / -1;
        grid-row: 1;
        width: min(720px, 100%);
        margin-inline: auto;
    }

    .news-left {
        grid-column: 1;
        grid-row: 2;
    }

    .news-right {
        grid-column: 2;
        grid-row: 2;
    }

    .news-left {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 18px;
    }

    .news-tile--left {
        min-height: auto;
        padding-bottom: 0;
        margin-bottom: 0;
        border-bottom: 0;
    }

    .news-compact {
        min-height: 135px;
        grid-template-columns: 105px 1fr;
        margin-bottom: 14px;
        padding-bottom: 14px;
    }

    .news-compact__image img {
        width: 105px;
        height: 106px;
    }

    .home-promotions {
        margin-top: 60px;
    }

    .home-promotions .section-heading {
        margin-bottom: 40px;
    }

    .promotions-grid {
        gap: 24px;
    }

    .home-speakers {
        margin-top: 60px;
    }

    .speakers-grid {
        width: 90%;
    }

    .speaker-card,
    .speaker-card img {
        width: 190px;
        height: auto;
    }

    .speaker-card img {
        aspect-ratio: 1;
    }
}

@media (max-width: 760px) {
    .page-container,
    .content-section {
        width: calc(100% - 32px);
    }

    .site-header__top {
        height: 104px;
    }

    .site-header__inner {
        width: calc(100% - 32px);
    }

    .site-logo img {
        width: 125px;
    }

    .site-social {
        gap: 8px;
    }

    .site-social__label {
        font-size: 11px;
    }

    .site-social__links {
        gap: 12px;
    }

    .site-social__links img {
        width: 22px;
        height: 22px;
    }

    .site-nav {
	height: 30px;
    }

    .site-nav__link {
        font-size: 14px;
    }

    .site-nav__link.is-active::after {
        width: 72px;
        height: 4px;
    }

    .mini-player {
        width: min(525px, calc(100% - 28px));
        height: 78px;
        padding: 9px 10px;
        grid-template-columns: 56px 1fr 38px 104px;
        column-gap: 9px;
    }

    .mini-player__brand {
        width: 56px;
        height: 56px;
    }

    .mini-player__brand img {
        width: 50px;
    }

    .mini-player__track small {
        font-size: 8px;
    }

    .mini-player__track strong {
        font-size: 12px;
    }

    .mini-player__track span {
        font-size: 9px;
    }

    .mini-player__play,
    .mini-player__play img {
        width: 38px;
        height: 38px;
    }

    .mini-player__listen {
        width: 104px;
        height: 36px;
        padding: 0 10px 0 13px;
        font-size: 8px;
    }

    .mini-player__listen b {
        font-size: 19px;
    }

    .home-ad {
        padding-inline: 16px;
    }

    .section-heading {
        grid-template-columns: auto 1fr;
        gap: 16px;
    }

    .section-heading .outline-button {
        grid-column: 1 / -1;
        justify-self: end;
    }

    .section-heading h2,
    .center-heading h2 {
        font-size: 21px;
    }

    .news-grid {
        display: flex;
        flex-direction: column;
        gap: 42px;
    }

    .news-center {
        order: 1;
        width: 100%;
    }

    .news-left {
        order: 2;
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .news-right {
        order: 3;
    }

    .feature-news__content {
        min-height: 0;
        padding-top: 18px;
    }

    .feature-news h3 {
        font-size: 23px;
    }

    .feature-news p {
        font-size: 14px;
    }

    .news-center__bottom {
        width: 100%;
        margin-top: 32px;
        grid-template-columns: 1fr;
        gap: 32px;
        border-top: 0;
    }

    .news-tile--bottom:first-child::after {
        display: none;
    }

    .news-tile__image {
        width: min(360px, 100%);
        margin-inline: auto;
    }

    .news-tile h3,
    .news-compact h3,
    .read-more {
        font-size: 14px;
    }

    .news-compact {
        min-height: 128px;
        grid-template-columns: 110px 1fr;
    }

    .news-compact__image img {
        width: 110px;
        height: 111px;
    }

    .promotions-grid {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .promotion-card__image {
        width: min(433px, 100%);
        margin-inline: auto;
    }

    .promotion-card h3 {
        font-size: 17px;
    }

    .center-heading {
        gap: 18px;
    }

    .speakers-grid {
        width: 100%;
        margin-top: 34px;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }

    .speaker-card,
    .speaker-card img {
        width: 100%;
    }

    .speaker-card h3 {
        font-size: 10px;
        line-height: 1.15;
    }

    .site-footer__main {
        height: auto;
        min-height: 150px;
        padding: 24px 16px;
    }

    .site-footer__content {
        width: 100%;
        flex-direction: column;
        gap: 18px;
    }

    .footer-divider {
        width: 80px;
        height: 1px;
    }
}

@media (max-width: 520px) {
    .site-social__label {
        max-width: 130px;
        text-align: right;
        line-height: 1.2;
    }

    .site-nav__link {
        font-size: 12px;
    }

    .mini-player {
        width: calc(100% - 20px);
        height: auto;
        min-height: 78px;
        grid-template-columns: 52px 1fr 36px;
    }

    .mini-player__brand {
        width: 52px;
        height: 52px;
    }

    .mini-player__listen {
        grid-column: 2 / 4;
        width: 100%;
        margin-top: 8px;
    }

    .home-news,
    .home-promotions,
    .home-speakers {
        margin-top: 48px;
    }

    .section-heading h2,
    .center-heading h2 {
        font-size: 19px;
    }

    .outline-button {
        min-width: 112px;
        height: 38px;
        font-size: 13px;
    }

    .feature-news h3 {
        font-size: 20px;
    }

    .feature-news p {
        font-size: 13px;
    }

    .news-compact {
        grid-template-columns: 92px 1fr;
    }

    .news-compact__image img {
        width: 92px;
        height: 93px;
    }

    .speakers-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .speaker-card {
        width: 180px;
        margin-inline: auto;
    }

    .speaker-card img {
        width: 180px;
    }

    .speaker-card h3 {
        font-size: 12px;
    }

    .footer-app__badges img {
        width: 118px;
        height: auto;
    }

    .footer-links {
        font-size: 12px;
    }
}


/* =========================================================
   AJUSTES MOBILE - SEM ALTERAR A ESTRUTURA DA HOME
   ========================================================= */

@media (max-width: 760px) {

    /* Mantém: TÍTULO ---- LINHA ---- VER TODAS */
    .section-heading {
        display: grid;
        grid-template-columns: auto minmax(15px, 1fr) auto;
        align-items: center;
        gap: 12px;
    }

    .section-heading .outline-button {
        grid-column: auto;
        justify-self: auto;
    }

    .section-heading h2 {
        white-space: nowrap;
    }
}


@media (max-width: 520px) {

    /*
     * Mantém todo o player em uma única linha:
     * LOGO | MÚSICA | PLAY | OUÇA AQUI
     */
    .mini-player {
        width: calc(100% - 20px);
        height: 72px;
        min-height: 72px;

        padding: 8px 9px;

        grid-template-columns:
            46px
            minmax(0, 1fr)
            34px
            88px;

        column-gap: 7px;
    }

    .mini-player__brand {
        width: 46px;
        height: 46px;
        padding: 4px;
    }

    .mini-player__brand img {
        width: 42px;
    }

    .mini-player__track small {
        font-size: 7px;
        margin-bottom: 2px;
    }

    .mini-player__track strong {
        font-size: 11px;
    }

    .mini-player__track span {
        margin-top: 3px;
        font-size: 8px;
    }

    .mini-player__play,
    .mini-player__play img {
        width: 34px;
        height: 34px;
    }

    .mini-player__listen {
        grid-column: auto;
        width: 88px;
        height: 32px;
        margin-top: 0;

        padding: 0 7px 0 10px;

        border-width: 1px;
        font-size: 7px;
    }

    .mini-player__listen b {
        font-size: 16px;
    }
}

/* Ajuste do indicador ativo do menu principal.
   Pode ser adicionado ao final do style.css existente. */
.site-nav__link.is-active::after {
    bottom: 0;
    border-radius: 999px;
}


/* =========================================================
   AJUSTE DO BLOCO DE NOTÍCIAS
   Adicionar ao FINAL do style.css atual.
   Mantém o layout existente e adiciona os separadores verticais.
   ========================================================= */

/* Desktop */
@media (min-width: 1600px) {
    .news-grid {
        position: relative;
        align-items: stretch;
    }

    .news-left,
    .news-center {
        position: relative;
    }

    .news-left::after,
    .news-center::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 1px;
        background: var(--color-border);
        pointer-events: none;
    }

    /* Linha no meio do espaço de 85px entre coluna esquerda e centro */
    .news-left::after {
        right: -43px;
    }

    /* Linha no meio do espaço de 85px entre centro e coluna direita */
    .news-center::after {
        right: -43px;
    }
}

/* Desktop / notebook, onde o gap atual passa para 42px */
@media (min-width: 1101px) and (max-width: 1599px) {
    .news-grid {
        position: relative;
        align-items: stretch;
    }

    .news-left,
    .news-center {
        position: relative;
    }

    .news-left::after,
    .news-center::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 1px;
        background: var(--color-border);
        pointer-events: none;
    }

    .news-left::after,
    .news-center::after {
        right: -21px;
    }
}

/*
 * Em tablet/mobile o bloco muda de estrutura,
 * portanto não exibimos os separadores verticais.
 */
@media (max-width: 1100px) {
    .news-left::after,
    .news-center::after {
        content: none;
    }
}


/* =========================================================
   AJUSTE DO BLOCO DE NOTÍCIAS - LINHAS CONECTADAS
   Adicione ao FINAL do style.css atual.
   ========================================================= */

@media (min-width: 1600px) {
    .news-grid {
        position: relative;
        align-items: stretch;
    }

    .news-left,
    .news-center {
        position: relative;
    }

    .news-left::after,
    .news-center::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        right: -43px;
        width: 1px;
        background: var(--color-border);
        pointer-events: none;
    }

    /* Coluna esquerda: prolonga as linhas horizontais até a vertical */
    .news-tile--left:not(:last-child) {
        position: relative;
        border-bottom: 0;
    }

    .news-tile--left:not(:last-child)::after {
        content: '';
        position: absolute;
        left: 0;
        right: -43px;
        bottom: 0;
        height: 1px;
        background: var(--color-border);
        pointer-events: none;
    }

    /* Centro: a linha acima dos cards inferiores encontra as duas verticais */
    .news-center__bottom {
        position: relative;
        border-top: 0;
    }

    .news-center__bottom::before {
        content: '';
        position: absolute;
        top: 0;
        left: -33px;
        right: -33px;
        height: 1px;
        background: var(--color-border);
        pointer-events: none;
    }

    /* Coluna direita: prolonga as linhas horizontais até a vertical */
    .news-compact:not(:last-child) {
        position: relative;
        border-bottom: 0;
    }

    .news-compact:not(:last-child)::after {
        content: '';
        position: absolute;
        left: -43px;
        right: 0;
        bottom: 0;
        height: 1px;
        background: var(--color-border);
        pointer-events: none;
    }
}

@media (min-width: 1101px) and (max-width: 1599px) {
    .news-grid {
        position: relative;
        align-items: stretch;
    }

    .news-left,
    .news-center {
        position: relative;
    }

    .news-left::after,
    .news-center::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        right: -21px;
        width: 1px;
        background: var(--color-border);
        pointer-events: none;
    }

    .news-tile--left:not(:last-child) {
        position: relative;
        border-bottom: 0;
    }

    .news-tile--left:not(:last-child)::after {
        content: '';
        position: absolute;
        left: 0;
        right: -21px;
        bottom: 0;
        height: 1px;
        background: var(--color-border);
        pointer-events: none;
    }

    .news-center__bottom {
        position: relative;
        border-top: 0;
    }

    .news-center__bottom::before {
        content: '';
        position: absolute;
        top: 0;
        left: -21px;
        right: -21px;
        height: 1px;
        background: var(--color-border);
        pointer-events: none;
    }

    .news-compact:not(:last-child) {
        position: relative;
        border-bottom: 0;
    }

    .news-compact:not(:last-child)::after {
        content: '';
        position: absolute;
        left: -21px;
        right: 0;
        bottom: 0;
        height: 1px;
        background: var(--color-border);
        pointer-events: none;
    }
}

@media (max-width: 1100px) {
    .news-left::after,
    .news-center::after,
    .news-tile--left::after,
    .news-center__bottom::before,
    .news-compact::after {
        content: none;
    }
}


/* =========================================================
   PÁGINA INTERNA: PROMOÇÕES
   Adicionar ao FINAL do style.css oficial.
   ========================================================= */

.promotions-list-page {
    margin-top: 69px;
    padding-bottom: 330px;
}

.promotions-list-page .section-heading {
    margin-bottom: 55px;
}

.promotions-list-grid {
    row-gap: 46px;
}

.promotion-card--listing .promotion-card__image {
    cursor: default;
}

.promotion-card--listing .promotion-card__image img {
    transform: none;
}

.promotion-card--listing:hover .promotion-card__image img {
    transform: none;
}

.promotion-card__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
}

.regulation-button {
    min-width: 139px;
    height: 35px;
    padding: 0 18px;
    border: 1.5px solid var(--color-primary);
    border-radius: 20px;
    background: var(--color-white);
    color: var(--color-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    transition:
        background-color .2s ease,
        color .2s ease;
}

.regulation-button:hover,
.regulation-button:focus-visible {
    background: var(--color-primary);
    color: var(--color-white);
}

/* =========================================================
   MODAL DO REGULAMENTO
   ========================================================= */

.regulation-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: none;
    place-items: center;
    padding: 30px;
}

.regulation-modal.is-open {
    display: grid;
}

.regulation-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .62);
}

.regulation-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(900px, calc(100vw - 60px));
    max-height: min(780px, calc(100vh - 60px));
    padding: 46px 52px 48px;
    overflow: hidden;
    border-radius: 20px;
    background: var(--color-white);
    box-shadow: 0 25px 80px rgba(0, 0, 0, .28);
}

.regulation-modal__dialog h2 {
    margin: 0 48px 26px 0;
    color: var(--color-primary);
    font-size: 27px;
    font-weight: 800;
    line-height: 1.15;
}

.regulation-modal__body {
    max-height: calc(min(780px, calc(100vh - 60px)) - 135px);
    padding-right: 14px;
    overflow-y: auto;
    overscroll-behavior: contain;
    color: var(--color-text);
    font-size: 16px;
    line-height: 1.65;
}

.regulation-modal__body p {
    margin: 0 0 18px;
}

.regulation-modal__body p:last-child {
    margin-bottom: 0;
}

.regulation-modal__body strong {
    color: var(--color-primary);
    font-weight: 700;
}

.regulation-modal__close {
    position: absolute;
    top: 17px;
    right: 21px;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-primary);
    cursor: pointer;
    font-size: 36px;
    font-weight: 400;
    line-height: 1;
}

/* =========================================================
   RESPONSIVO DA LISTAGEM DE PROMOÇÕES
   ========================================================= */

@media (max-width: 1599px) {
    .promotions-list-page {
        padding-bottom: 240px;
    }
}

@media (max-width: 1100px) {
    .promotions-list-page {
        margin-top: 60px;
        padding-bottom: 150px;
    }

    .promotions-list-page .section-heading {
        margin-bottom: 40px;
    }

    .promotions-list-grid {
        row-gap: 40px;
    }

    .promotion-card__actions {
        gap: 7px;
    }

    .participate-button,
    .regulation-button {
        min-width: 118px;
        height: 33px;
        padding-inline: 16px;
        font-size: 10px;
    }
}

@media (max-width: 760px) {
    .promotions-list-page {
        margin-top: 48px;
        padding-bottom: 90px;
    }

    .promotions-list-page .section-heading {
        margin-bottom: 34px;
    }

    .promotions-list-grid {
        row-gap: 38px;
    }

    .promotion-card__actions {
        gap: 8px;
    }

    .regulation-modal {
        padding: 18px;
    }

    .regulation-modal__dialog {
        width: calc(100vw - 36px);
        max-height: calc(100vh - 36px);
        padding: 38px 24px 30px;
        border-radius: 16px;
    }

    .regulation-modal__dialog h2 {
        margin-bottom: 20px;
        font-size: 21px;
    }

    .regulation-modal__body {
        max-height: calc(100vh - 145px);
        padding-right: 8px;
        font-size: 14px;
        line-height: 1.55;
    }

    .regulation-modal__close {
        top: 10px;
        right: 13px;
    }
}

@media (max-width: 420px) {
    .promotion-card__actions {
        flex-wrap: wrap;
    }

    .participate-button,
    .regulation-button {
        min-width: 126px;
    }
}

/* =========================================================
   BOTÃO "VER MAIS PROMOÇÕES"
   ========================================================= */

.promotions-load-more {
    width: 100%;
    margin-top: 58px;
    display: flex;
    justify-content: center;
}

.promotions-load-more__button {
    min-width: 245px;
    height: 46px;
    padding: 0 28px;
    border: 2px solid var(--color-primary);
    border-radius: 24px;
    background: var(--color-white);
    color: var(--color-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    transition:
        background-color .2s ease,
        color .2s ease,
        opacity .2s ease;
}

.promotions-load-more__button:hover,
.promotions-load-more__button:focus-visible {
    background: var(--color-primary);
    color: var(--color-white);
}

.promotions-load-more__button:disabled,
.promotions-load-more__button.is-loading {
    cursor: wait;
    opacity: .65;
}

@media (max-width: 760px) {
    .promotions-load-more {
        margin-top: 42px;
    }

    .promotions-load-more__button {
        min-width: 220px;
        height: 42px;
        padding-inline: 22px;
        font-size: 12px;
    }
}


/* =========================================================
   PÁGINA INTERNA: ANUNCIE
   Adicionar ao FINAL do style.css oficial.
   ========================================================= */

.announce-page {
    margin-top: 69px;
    padding-bottom: 165px;
}

.announce-page .section-heading {
    margin-bottom: 55px;
}

/* =========================================================
   MÍDIA KIT
   ========================================================= */

.announce-media {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.announce-media__link {
    width: 433px;
    display: block;
    overflow: hidden;
    border-radius: 25px;
}

.announce-media__link img {
    width: 433px;
    height: auto;
    aspect-ratio: 873 / 491;
    object-fit: cover;
    transition: transform .25s ease;
}

.announce-media__link:hover img {
    transform: scale(1.015);
}

.announce-media__info {
    margin-top: 10px;
    color: var(--color-text);
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 27px;
    font-weight: 400;
    line-height: 1.18;
}

.announce-media__info strong {
    font-weight: 500;
}

.announce-media__info a {
    margin-top: 2px;
}

/* =========================================================
   FORMULÁRIO
   ========================================================= */

.announce-form {
    width: 500px;
    margin: 86px auto 0;
}

.announce-field {
    position: relative;
    margin-bottom: 31px;
}

.announce-field label {
    position: absolute;
    z-index: 1;
    top: -9px;
    left: 20px;
    padding: 0 7px;
    background: var(--color-white);
    color: var(--color-primary);
    font-size: 14px;
    font-weight: 500;
    line-height: 18px;
}

.announce-field input,
.announce-field textarea {
    width: 100%;
    border: 2px solid #4E6E36;
    border-radius: 4px;
    outline: none;
    background: var(--color-white);
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: 15px;
    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.announce-field input {
    height: 50px;
    padding: 0 18px;
}

.announce-field textarea {
    height: 178px;
    padding: 24px 18px 18px;
    resize: vertical;
    min-height: 150px;
    max-height: 340px;
    line-height: 1.5;
}

.announce-field textarea::placeholder {
    color: #C2C2C2;
    opacity: 1;
    font-size: 13px;
}

.announce-field input:focus,
.announce-field textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(167, 43, 84, .09);
}

.announce-form__actions {
    margin-top: 36px;
    display: flex;
    justify-content: center;
}

.announce-submit {
    min-width: 125px;
    height: 40px;
    padding: 0 24px;
    border: 0;
    border-radius: 9px;
    background: var(--color-primary);
    color: var(--color-white);
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    transition:
        opacity .2s ease,
        transform .2s ease;
}

.announce-submit:hover {
    transform: translateY(-1px);
}

.announce-submit:disabled {
    cursor: wait;
    opacity: .65;
    transform: none;
}

/* =========================================================
   MODAL DO FORMULÁRIO
   ========================================================= */

.announce-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: none;
    place-items: center;
    padding: 24px;
}

.announce-modal.is-open {
    display: grid;
}

.announce-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .58);
}

.announce-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(92vw, 520px);
    padding: 46px 42px 38px;
    border-radius: 18px;
    background: var(--color-white);
    box-shadow: 0 20px 70px rgba(0, 0, 0, .28);
    text-align: center;
}

.announce-modal__dialog h2 {
    margin: 0 30px 14px;
    color: var(--color-primary);
    font-size: 24px;
    font-weight: 800;
    line-height: 1.2;
}

.announce-modal__dialog p {
    margin: 0;
    color: var(--color-text);
    font-size: 15px;
    line-height: 1.5;
}

.announce-modal__close {
    position: absolute;
    top: 10px;
    right: 14px;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-primary);
    cursor: pointer;
    font-size: 32px;
    line-height: 1;
}

.announce-modal__ok {
    min-width: 100px;
    height: 38px;
    margin-top: 26px;
    padding: 0 22px;
    border: 0;
    border-radius: 20px;
    background: var(--color-primary);
    color: var(--color-white);
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
}

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

@media (max-width: 1100px) {
    .announce-page {
        margin-top: 60px;
        padding-bottom: 130px;
    }

    .announce-page .section-heading {
        margin-bottom: 44px;
    }

    .announce-media__info {
        font-size: 23px;
    }

    .announce-form {
        margin-top: 70px;
    }
}

@media (max-width: 760px) {
    .announce-page {
        margin-top: 48px;
        padding-bottom: 90px;
    }

    .announce-page .section-heading {
        margin-bottom: 38px;
    }

    .announce-media__link {
        width: min(433px, 100%);
    }

    .announce-media__link img {
        width: 100%;
    }

    .announce-media__info {
        font-size: 20px;
    }

    .announce-form {
        width: min(500px, 100%);
        margin-top: 58px;
    }

    .announce-field {
        margin-bottom: 27px;
    }

    .announce-field label {
        font-size: 13px;
    }

    .announce-field input {
        height: 48px;
    }

    .announce-field textarea {
        height: 165px;
    }
}

@media (max-width: 520px) {
    .announce-media__info {
        font-size: 18px;
    }

    .announce-form {
        margin-top: 48px;
    }

    .announce-field label {
        left: 14px;
    }

    .announce-modal__dialog {
        padding: 42px 22px 30px;
    }

    .announce-modal__dialog h2 {
        font-size: 21px;
    }
}


/* =========================================================
   PÁGINA INTERNA: LISTAGEM DE NOTÍCIAS
   Adicionar ao FINAL do style.css oficial.
   ========================================================= */

.news-list-page {
    margin-top: 69px;
    padding-bottom: 145px;
}

.news-list-page .section-heading {
    margin-bottom: 55px;
}

/* =========================================================
   GRID DE NOTÍCIAS
   ========================================================= */

.news-list-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 72px;
    row-gap: 52px;
}

.news-list-card {
    min-width: 0;
    text-align: center;
}

.news-list-card__link {
    width: 100%;
    display: block;
}

.news-list-card__image {
    width: 100%;
    overflow: hidden;
    border-radius: 24px;
}

.news-list-card__image img {
    width: 100%;
    height: auto;
    aspect-ratio: 617 / 381;
    object-fit: cover;
    transition: transform .25s ease;
}

.news-list-card__link:hover .news-list-card__image img {
    transform: scale(1.02);
}

.news-list-card__date {
    margin-top: 16px;
    color: var(--color-text);
    display: block;
    font-size: 10px;
    font-weight: 500;
    line-height: 1;
    text-transform: uppercase;
}

.news-list-card h3 {
    max-width: 410px;
    min-height: 44px;
    margin: 10px auto 8px;
    color: var(--color-text);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.08;
}

.news-list-card__more {
    display: inline-block;
    font-size: 14px;
}

/* =========================================================
   BOTÃO "VER MAIS NOTÍCIAS"
   ========================================================= */

.news-load-more {
    width: 100%;
    margin-top: 74px;
    display: flex;
    justify-content: center;
}

.news-load-more__button {
    min-width: 230px;
    height: 46px;
    padding: 0 28px;
    border: 2px solid var(--color-primary);
    border-radius: 24px;
    background: var(--color-white);
    color: var(--color-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    transition:
        background-color .2s ease,
        color .2s ease,
        opacity .2s ease;
}

.news-load-more__button:hover,
.news-load-more__button:focus-visible {
    background: var(--color-primary);
    color: var(--color-white);
}

.news-load-more__button:disabled,
.news-load-more__button.is-loading {
    cursor: wait;
    opacity: .65;
}

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

@media (max-width: 1599px) {
    .news-list-grid {
        column-gap: 44px;
        row-gap: 48px;
    }
}

@media (max-width: 1100px) {
    .news-list-page {
        margin-top: 60px;
        padding-bottom: 120px;
    }

    .news-list-page .section-heading {
        margin-bottom: 42px;
    }

    .news-list-grid {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 36px;
        row-gap: 44px;
    }

    .news-list-card h3 {
        font-size: 17px;
    }

    .news-load-more {
        margin-top: 58px;
    }
}

@media (max-width: 760px) {
    .news-list-page {
        margin-top: 48px;
        padding-bottom: 90px;
    }

    .news-list-page .section-heading {
        margin-bottom: 36px;
    }

    .news-list-grid {
        grid-template-columns: 1fr;
        row-gap: 38px;
    }

    .news-list-card {
        width: min(520px, 100%);
        margin-inline: auto;
    }

    .news-list-card__date {
        margin-top: 13px;
        font-size: 9px;
    }

    .news-list-card h3 {
        max-width: 460px;
        min-height: 0;
        margin-top: 8px;
        font-size: 17px;
    }

    .news-list-card__more {
        font-size: 14px;
    }

    .news-load-more {
        margin-top: 48px;
    }

    .news-load-more__button {
        min-width: 215px;
        height: 42px;
        padding-inline: 22px;
        font-size: 12px;
    }
}

@media (max-width: 520px) {
    .news-list-card h3 {
        font-size: 16px;
    }
}


/* =========================================================
   PÁGINA INTERNA: LEITURA DA NOTÍCIA
   Adicionar ao FINAL do style.css oficial.
   ========================================================= */

.article-page {
    margin-top: 69px;
    padding-bottom: 105px;
}

.article-page .section-heading {
    margin-bottom: 55px;
}

/* =========================================================
   COLUNAS
   ========================================================= */

.article-layout {
    display: grid;
    grid-template-columns: minmax(0, 830px) minmax(360px, 1fr);
    column-gap: 55px;
    align-items: stretch;
}

/* =========================================================
   MATÉRIA
   ========================================================= */

.article-main {
    min-width: 0;
}

.article-header h1 {
    max-width: 790px;
    margin: 0;
    color: var(--color-text);
    font-size: 32px;
    font-weight: 800;
    line-height: 1.08;
}

.article-excerpt {
    max-width: 800px;
    margin: 27px 0 0;
    color: var(--color-text);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.28;
}

.article-meta {
    margin-top: 15px;
    color: var(--color-text-light);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.2;
}

.article-featured-image {
    width: 100%;
    margin: 27px 0 0;
}

.article-featured-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 617 / 381;
    border-radius: 24px;
    object-fit: cover;
}

.article-featured-image figcaption {
    margin-top: 9px;
    color: var(--color-text-light);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.2;
}

.article-content {
    margin-top: 31px;
    color: var(--color-text);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.3;
}

.article-content p {
    margin: 0 0 24px;
}

.article-content p:last-child {
    margin-bottom: 0;
}

/* =========================================================
   NOTÍCIAS DO CANTO DIREITO
   A borda esquerda é a linha vertical do layout.
   Cada border-bottom começa exatamente nela, fazendo com que
   as linhas horizontais se encontrem com a vertical.
   ========================================================= */

.article-related {
    min-width: 0;
    border-left: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
}

.article-related__item {
    min-height: 175px;
    padding: 0 0 20px 35px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--color-border);
    display: grid;
    grid-template-columns: 147px minmax(0, 1fr);
    column-gap: 14px;
    align-items: center;
}

.article-related__item:last-child {
    margin-bottom: 0;
    border-bottom: 0;
}

.article-related__image {
    display: block;
    overflow: hidden;
    border-radius: 24px;
}

.article-related__image img {
    width: 147px;
    height: 148px;
    object-fit: cover;
    transition: transform .25s ease;
}

.article-related__item:hover .article-related__image img {
    transform: scale(1.02);
}

.article-related__content {
    min-width: 0;
}

.article-related__content h3 {
    margin: 0 0 9px;
    color: var(--color-text);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.16;
}

.article-related__content .read-more {
    display: inline-block;
    font-size: 14px;
}

/* =========================================================
   404
   ========================================================= */

.article-not-found {
    min-height: 420px;
    padding: 70px 20px;
    text-align: center;
}

.article-not-found h1 {
    margin: 0 0 15px;
    color: var(--color-primary);
    font-size: 32px;
}

.article-not-found p {
    margin: 0 0 30px;
    font-size: 16px;
}

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

@media (max-width: 1599px) {
    .article-layout {
        grid-template-columns: minmax(0, 1.75fr) minmax(310px, .9fr);
        column-gap: 42px;
    }

    .article-header h1 {
        font-size: 29px;
    }

    .article-excerpt {
        font-size: 17px;
    }

    .article-related__item {
        min-height: 150px;
        padding-left: 24px;
        grid-template-columns: 120px minmax(0, 1fr);
    }

    .article-related__image img {
        width: 120px;
        height: 121px;
    }
}

@media (max-width: 1100px) {
    .article-page {
        margin-top: 60px;
        padding-bottom: 95px;
    }

    .article-page .section-heading {
        margin-bottom: 42px;
    }

    .article-layout {
        grid-template-columns: 1fr;
        row-gap: 60px;
    }

    .article-header h1 {
        max-width: 820px;
        font-size: 28px;
    }

    .article-excerpt {
        max-width: 850px;
        font-size: 16px;
    }

    /*
     * No tablet a lateral passa para baixo da matéria.
     * A linha vertical deixa de fazer sentido e vira uma linha
     * horizontal superior.
     */
    .article-related {
        padding-top: 34px;
        border-top: 1px solid var(--color-border);
        border-left: 0;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        column-gap: 34px;
    }

    .article-related__item {
        min-height: 145px;
        padding: 0 0 20px;
    }
}

@media (max-width: 760px) {
    .article-page {
        margin-top: 48px;
        padding-bottom: 80px;
    }

    .article-page .section-heading {
        margin-bottom: 36px;
    }

    .article-header h1 {
        font-size: 24px;
    }

    .article-excerpt {
        margin-top: 20px;
        font-size: 15px;
    }

    .article-featured-image {
        margin-top: 22px;
    }

    .article-featured-image img {
        border-radius: 18px;
    }

    .article-content {
        margin-top: 25px;
        font-size: 15px;
        line-height: 1.4;
    }

    .article-content p {
        margin-bottom: 20px;
    }

    .article-related {
        grid-template-columns: 1fr;
        row-gap: 0;
    }

    .article-related__item {
        min-height: 128px;
        grid-template-columns: 110px minmax(0, 1fr);
    }

    .article-related__image img {
        width: 110px;
        height: 111px;
    }

    .article-related__content h3,
    .article-related__content .read-more {
        font-size: 14px;
    }
}

@media (max-width: 520px) {
    .article-header h1 {
        font-size: 22px;
    }

    .article-excerpt {
        font-size: 14px;
    }

    .article-content {
        font-size: 14px;
    }

    .article-related__item {
        grid-template-columns: 92px minmax(0, 1fr);
        column-gap: 12px;
    }

    .article-related__image img {
        width: 92px;
        height: 93px;
    }
}


/* =========================================================
   POPUP DO PLAYER JBFM
   Adicionar ao FINAL do style.css oficial.
   Sobrescreve apenas o modal provisório que já existe.
   ========================================================= */

.player-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    place-items: center;
    padding: 16px;
}

.player-modal.is-open {
    display: grid;
}

.player-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .72);
    cursor: pointer;
}

/*
 * Referência enviada: aproximadamente 432 x 749.
 * O popup mantém esta proporção e reduz em telas menores.
 */
.player-modal__dialog {
    position: relative;
    z-index: 1;

    width: min(432px, calc(100vw - 32px));
    aspect-ratio: 432 / 749;

    padding: 0;
    overflow: hidden;

    border-radius: 22px;
    background:
        url('/assets/img/fundo-player-macae.png')
        center center / cover no-repeat;

    box-shadow: 0 28px 90px rgba(0, 0, 0, .42);
    text-align: center;
}

/* =========================================================
   CONTEÚDO CENTRAL
   ========================================================= */

.player-popup__content {
    position: absolute;
    top: 27.2%;
    left: 50%;

    width: 82%;
    transform: translateX(-50%);

    color: #FFFFFF;

    display: flex;
    flex-direction: column;
    align-items: center;
}

.player-popup__cover {
    position: relative;

    width: 106px;
    max-width: 29vw;
    aspect-ratio: 1;

    display: grid;
    place-items: center;
}

.player-popup__cover-bg {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;
    object-fit: contain;
}

.player-popup__logo {
    position: relative;
    z-index: 1;

    width: 78%;
    height: auto;
}

.player-popup__track {
    margin: 13px 0 0;

    color: #FFFFFF;

    font-size: 26px;
    font-weight: 400;
    line-height: 1.12;
    letter-spacing: -.2px;
}

.player-popup__artist {
    margin: 3px 0 0;

    color: rgba(255, 255, 255, .92);

    font-size: 20px;
    font-weight: 300;
    line-height: 1.15;
}

.player-popup__play {
    width: 67px;
    height: 67px;
    margin-top: 25px;
    padding: 0;

    border: 0;
    border-radius: 50%;
    background: transparent;

    cursor: pointer;
    display: grid;
    place-items: center;

    transition:
        transform .18s ease,
        filter .18s ease;
}

.player-popup__play:hover {
    transform: scale(1.035);
}

.player-popup__play:active {
    transform: scale(.98);
}

.player-popup__play img {
    width: 67px;
    height: 67px;
    object-fit: contain;
}

/* =========================================================
   BOTÃO FECHAR
   Mantido discreto para não interferir no layout enviado.
   ========================================================= */

.player-modal__close {
    position: absolute;
    z-index: 3;
    top: 13px;
    right: 13px;

    width: 38px;
    height: 38px;
    padding: 0;

    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .16);
    color: #FFFFFF;

    cursor: pointer;

    display: grid;
    place-items: center;

    font-size: 27px;
    font-weight: 300;
    line-height: 1;

    opacity: 0;
    transition: opacity .18s ease, background-color .18s ease;
}

.player-modal__dialog:hover .player-modal__close,
.player-modal__close:focus-visible {
    opacity: .75;
}

.player-modal__close:hover {
    background: rgba(0, 0, 0, .28);
    opacity: 1;
}

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

@media (max-width: 520px) {
    .player-modal {
        padding: 10px;
    }

    .player-modal__dialog {
        width: min(432px, calc(100vw - 20px));
        border-radius: 18px;
    }

    .player-popup__cover {
        width: 24.5%;
        max-width: none;
    }

    .player-popup__track {
        margin-top: 11px;
        font-size: clamp(22px, 6vw, 26px);
    }

    .player-popup__artist {
        font-size: clamp(17px, 4.7vw, 20px);
    }

    .player-popup__play {
        width: 15.5%;
        height: auto;
        aspect-ratio: 1;
        margin-top: 22px;
    }

    .player-popup__play img {
        width: 100%;
        height: 100%;
    }
}

/*
 * Em telas de pouca altura, reduzimos o popup para que ele
 * permaneça completamente visível.
 */
@media (max-height: 780px) and (min-width: 521px) {
    .player-modal__dialog {
        width: 405px;
    }
}

@media (max-height: 720px) and (min-width: 521px) {
    .player-modal__dialog {
        width: 370px;
    }

    .player-popup__cover {
        width: 92px;
    }

    .player-popup__track {
        font-size: 23px;
    }

    .player-popup__artist {
        font-size: 18px;
    }

    .player-popup__play,
    .player-popup__play img {
        width: 58px;
        height: 58px;
    }
}


.player-modal__dialog .player-popup__track {
    margin: 13px 0 0;
    color: #FFFFFF;
    font-family: var(--font-family);
    font-size: 26px;
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: 0;
    text-align: center;
}

.player-modal__dialog .player-popup__artist {
    margin: 4px 0 0;
    color: rgba(255, 255, 255, .92);
    font-family: var(--font-family);
    font-size: 20px;
    font-weight: 300;
    line-height: 1.1;
    text-align: center;
}


/* =========================================================
   TRITON PLAYER - COMPLEMENTO DO POPUP
   Adicionar DEPOIS do CSS visual do popup.
   ========================================================= */

/* Container técnico exigido pelo MediaPlayer */
.td-player-container {
    position: absolute;
    left: -99999px;
    top: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

/* Status abaixo do botão */
.player-popup__status {
    min-height: 16px;
    margin-top: 13px;

    color: rgba(255, 255, 255, .72);

    font-size: 10px;
    font-weight: 400;
    line-height: 1.2;
    text-align: center;
}

.player-popup__status.is-error {
    color: #FFFFFF;
}

/* =========================================================
   ESTADOS DOS BOTÕES: PLAY / STOP
   ========================================================= */

.player-popup__play,
.mini-player__play {
    position: relative;
}

/*
 * Enquanto conecta: mantém círculo branco e cria spinner.
 */
.player-popup__play.is-loading,
.mini-player__play.is-loading {
    background: #FFFFFF;
}

.player-popup__play.is-loading img,
.mini-player__play.is-loading img {
    visibility: hidden;
}

.player-popup__play.is-loading::after,
.mini-player__play.is-loading::after {
    content: '';

    position: absolute;
    inset: 24%;

    border: 3px solid rgba(167, 43, 84, .25);
    border-top-color: var(--color-primary);
    border-radius: 50%;

    animation: jbfm-player-spin .75s linear infinite;
}

/*
 * Durante a reprodução usamos visual de STOP.
 * Para live streaming a Triton recomenda parar a sessão,
 * em vez de manter o stream efetivamente "pausado".
 */
.player-popup__play.is-playing,
.mini-player__play.is-playing {
    background: #FFFFFF;
}

.player-popup__play.is-playing img,
.mini-player__play.is-playing img {
    visibility: hidden;
}

.player-popup__play.is-playing::before,
.mini-player__play.is-playing::before {
    content: '';

    position: absolute;
    left: 50%;
    top: 50%;

    width: 26%;
    aspect-ratio: 1;

    border-radius: 2px;
    background: var(--color-primary);

    transform: translate(-50%, -50%);
}

.player-popup__play:disabled {
    cursor: wait;
    opacity: .65;
}

@keyframes jbfm-player-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .player-popup__play.is-loading::after,
    .mini-player__play.is-loading::after {
        animation-duration: 1.5s;
    }
}

@media (max-width: 520px) {
    .player-popup__status {
        margin-top: 10px;
        font-size: 9px;
    }
}


/* =========================================================
   PÁGINA INTERNA: FALE CONOSCO
   Adicionar ao FINAL do style.css oficial.
   ========================================================= */

.contact-page {
    margin-top: 69px;
    padding-bottom: 105px;
}

.contact-page .section-heading {
    margin-bottom: 42px;
}

.contact-content {
    width: min(720px, 100%);
    margin-inline: auto;
}

.contact-block {
    text-align: center;
}

.contact-block h3 {
    margin: 0;
    color: #4F4F4F;
    font-size: 30px;
    font-weight: 500;
    line-height: 1.1;
}

.contact-divider {
    width: min(600px, 100%);
    height: 1px;
    margin: 68px auto 24px;
    display: block;
    background: #4E6E36;
}


/* =========================================================
   WHATSAPP
   ========================================================= */

.contact-whatsapp {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.contact-whatsapp__button {
    width: 174px;
    margin-top: 25px;
    display: block;
    transition:
        transform .2s ease,
        opacity .2s ease;
}

.contact-whatsapp__button:hover {
    transform: translateY(-1px);
    opacity: .92;
}

.contact-whatsapp__button img {
    width: 100%;
    height: auto;
}

.contact-whatsapp__phone {
    margin-top: 18px;
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
}

.contact-whatsapp__description {
    width: 270px;
    max-width: 100%;
    margin: 22px 0 0;
    color: #4F4F4F;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}


/* =========================================================
   ENDEREÇO / MAPA
   ========================================================= */

.contact-address h3 {
    margin-bottom: 27px;
}

.contact-map {
    width: min(600px, 100%);
    height: 290px;
    margin-inline: auto;
    overflow: hidden;
    background: #F4F4F4;
}

.contact-map iframe {
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
}

.contact-address__caption {
    margin-top: 21px;
    color: #52688C;
    display: block;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}


/* =========================================================
   E-MAIL
   ========================================================= */

.contact-email h3 {
    margin-bottom: 24px;
}

.contact-email__intro {
    margin: 0;
    color: #4F4F4F;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

.contact-email__intro a {
    font-weight: 700;
}


/* =========================================================
   FORMULÁRIO
   ========================================================= */

.contact-form {
    width: 420px;
    max-width: 100%;
    margin: 55px auto 0;
}

.contact-field {
    position: relative;
    margin-bottom: 28px;
}

.contact-field label {
    position: absolute;
    z-index: 1;
    top: -9px;
    left: 18px;

    padding: 0 6px;

    background: var(--color-white);
    color: var(--color-primary);

    font-size: 14px;
    font-weight: 500;
    line-height: 18px;
}

.contact-field input,
.contact-field textarea {
    width: 100%;

    border: 2px solid #4E6E36;
    border-radius: 4px;
    outline: none;

    background: var(--color-white);
    color: var(--color-text);

    font-family: var(--font-family);
    font-size: 15px;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.contact-field input {
    height: 48px;
    padding: 0 17px;
}

.contact-field textarea {
    height: 160px;
    min-height: 150px;
    max-height: 340px;

    padding: 23px 17px 17px;

    resize: vertical;
    line-height: 1.5;
}

.contact-field textarea::placeholder {
    color: #C2C2C2;
    opacity: 1;
    font-size: 13px;
}

.contact-field input:focus,
.contact-field textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(167, 43, 84, .09);
}

.contact-form__actions {
    margin-top: 29px;
    display: flex;
    justify-content: center;
}

.contact-submit {
    min-width: 125px;
    height: 40px;
    padding: 0 24px;

    border: 0;
    border-radius: 9px;

    background: var(--color-primary);
    color: var(--color-white);

    cursor: pointer;

    font-size: 15px;
    font-weight: 600;
    line-height: 1;

    transition:
        opacity .2s ease,
        transform .2s ease;
}

.contact-submit:hover {
    transform: translateY(-1px);
}

.contact-submit:disabled {
    cursor: wait;
    opacity: .65;
    transform: none;
}


/* =========================================================
   MODAL DO FORMULÁRIO
   ========================================================= */

.contact-modal {
    position: fixed;
    inset: 0;
    z-index: 1300;

    display: none;
    place-items: center;

    padding: 24px;
}

.contact-modal.is-open {
    display: grid;
}

.contact-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .58);
}

.contact-modal__dialog {
    position: relative;
    z-index: 1;

    width: min(92vw, 520px);
    padding: 46px 42px 38px;

    border-radius: 18px;

    background: var(--color-white);
    box-shadow: 0 20px 70px rgba(0, 0, 0, .28);

    text-align: center;
}

.contact-modal__dialog h2 {
    margin: 0 30px 14px;

    color: var(--color-primary);

    font-size: 24px;
    font-weight: 800;
    line-height: 1.2;
}

.contact-modal__dialog p {
    margin: 0;

    color: var(--color-text);

    font-size: 15px;
    line-height: 1.5;
}

.contact-modal__close {
    position: absolute;
    top: 10px;
    right: 14px;

    width: 36px;
    height: 36px;
    padding: 0;

    border: 0;
    background: transparent;

    color: var(--color-primary);

    cursor: pointer;

    font-size: 32px;
    line-height: 1;
}

.contact-modal__ok {
    min-width: 100px;
    height: 38px;
    margin-top: 26px;
    padding: 0 22px;

    border: 0;
    border-radius: 20px;

    background: var(--color-primary);
    color: var(--color-white);

    cursor: pointer;

    font-size: 14px;
    font-weight: 600;
}


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

@media (max-width: 1100px) {

    .contact-page {
        margin-top: 60px;
        padding-bottom: 95px;
    }

    .contact-page .section-heading {
        margin-bottom: 42px;
    }

    .contact-content {
        width: min(650px, 100%);
    }
}


@media (max-width: 760px) {

    .contact-page {
        margin-top: 48px;
        padding-bottom: 80px;
    }

    .contact-page .section-heading {
        margin-bottom: 38px;
    }

    .contact-block h3 {
        font-size: 26px;
    }

    .contact-divider {
        margin-top: 55px;
    }

    .contact-map {
        height: 300px;
    }

    .contact-email__intro br {
        display: none;
    }

    .contact-email__intro {
        width: 440px;
        max-width: 100%;
        margin-inline: auto;
        line-height: 1.5;
    }

    .contact-form {
        margin-top: 48px;
    }
}


@media (max-width: 520px) {

    .contact-content {
        width: 100%;
    }

    .contact-block h3 {
        font-size: 23px;
    }

    .contact-whatsapp__button {
        width: 158px;
        margin-top: 21px;
    }

    .contact-whatsapp__description {
        width: 245px;
        font-size: 11px;
    }

    .contact-divider {
        margin: 48px auto 22px;
    }

    .contact-map {
        height: 255px;
    }

    .contact-form {
        margin-top: 42px;
    }

    .contact-field {
        margin-bottom: 26px;
    }

    .contact-field label {
        left: 14px;
        font-size: 13px;
    }

    .contact-field input {
        height: 48px;
    }

    .contact-field textarea {
        height: 155px;
    }
}


/* =========================================================
   PÁGINA INTERNA: TERMOS DE USO
   Adicionar ao FINAL do style.css oficial.
   ========================================================= */

.terms-page {
    margin-top: 69px;
    padding-bottom: 115px;
}

.terms-page .section-heading {
    margin-bottom: 52px;
}

.terms-content {
    width: min(1050px, 100%);
    margin-inline: auto;

    color: var(--color-text);

    font-size: 16px;
    font-weight: 400;
    line-height: 1.65;
}

.terms-intro {
    margin: 0 0 42px;

    font-size: 17px;
    line-height: 1.65;
}

.terms-section {
    margin-bottom: 34px;
}

.terms-section h3 {
    margin: 0 0 12px;

    color: var(--color-primary);

    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
}

.terms-section p {
    margin: 0 0 14px;
}

.terms-section p:last-child {
    margin-bottom: 0;
}

.terms-section a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.terms-updated {
    margin: 55px 0 0;
    padding-top: 22px;

    border-top: 1px solid var(--color-border);

    color: var(--color-text-light);

    font-size: 13px;
    line-height: 1.4;
}


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

@media (max-width: 1100px) {

    .terms-page {
        margin-top: 60px;
        padding-bottom: 95px;
    }

    .terms-page .section-heading {
        margin-bottom: 44px;
    }

    .terms-content {
        width: min(900px, 100%);

        font-size: 15px;
        line-height: 1.6;
    }

    .terms-intro {
        font-size: 16px;
    }
}


@media (max-width: 760px) {

    .terms-page {
        margin-top: 48px;
        padding-bottom: 80px;
    }

    .terms-page .section-heading {
        margin-bottom: 36px;
    }

    .terms-content {
        font-size: 14px;
        line-height: 1.65;
    }

    .terms-intro {
        margin-bottom: 34px;

        font-size: 15px;
        line-height: 1.6;
    }

    .terms-section {
        margin-bottom: 30px;
    }

    .terms-section h3 {
        margin-bottom: 10px;

        font-size: 18px;
    }

    .terms-updated {
        margin-top: 45px;
    }
}


@media (max-width: 520px) {

    .terms-content {
        font-size: 14px;
    }

    .terms-intro {
        font-size: 14px;
    }

    .terms-section h3 {
        font-size: 17px;
    }
}


/* =========================================================
   HOME - PROMOÇÕES VIA WORDPRESS
   Adicionar ao FINAL do style.css oficial.
   ========================================================= */

/*
 * A Home pode ter 1, 2 ou 3 promoções ativas.
 * Mantemos o tamanho original de 433px e centralizamos
 * quando houver menos de 3 cards.
 */

.home-promotions .promotions-grid--count-1 {
    grid-template-columns: minmax(0, 433px);
    justify-content: center;
}

.home-promotions .promotions-grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 433px));
    justify-content: center;
    gap: 72px;
}


/* =========================================================
   AÇÕES
   ========================================================= */

.home-promotions .promotion-card__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    flex-wrap: wrap;
}

.home-promotions .regulation-button {
    min-width: 139px;
    height: 35px;
    padding: 0 18px;

    border: 1.5px solid var(--color-primary);
    border-radius: 20px;

    background: var(--color-white);
    color: var(--color-primary);

    cursor: pointer;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    font-family: var(--font-family);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;

    transition:
        background-color .2s ease,
        color .2s ease;
}

.home-promotions .regulation-button:hover,
.home-promotions .regulation-button:focus-visible {
    background: var(--color-primary);
    color: var(--color-white);
}


/* =========================================================
   MODAL DO REGULAMENTO
   ========================================================= */

.regulation-modal {
    position: fixed;
    inset: 0;
    z-index: 1400;

    display: none;
    place-items: center;

    padding: 30px;
}

.regulation-modal.is-open {
    display: grid;
}

.regulation-modal__backdrop {
    position: absolute;
    inset: 0;

    background: rgba(0, 0, 0, .62);
}

.regulation-modal__dialog {
    position: relative;
    z-index: 1;

    width: min(900px, calc(100vw - 60px));
    max-height: min(780px, calc(100vh - 60px));

    padding: 46px 52px 48px;
    overflow: hidden;

    border-radius: 20px;

    background: var(--color-white);

    box-shadow:
        0 25px 80px
        rgba(0, 0, 0, .28);
}

.regulation-modal__dialog h2 {
    margin: 0 48px 26px 0;

    color: var(--color-primary);

    font-size: 27px;
    font-weight: 800;
    line-height: 1.15;
}

.regulation-modal__body {
    max-height:
        calc(
            min(
                780px,
                calc(100vh - 60px)
            )
            - 135px
        );

    padding-right: 14px;

    overflow-y: auto;
    overscroll-behavior: contain;

    color: var(--color-text);

    font-size: 16px;
    line-height: 1.65;
}

.regulation-modal__body p {
    margin: 0 0 18px;
}

.regulation-modal__body p:last-child {
    margin-bottom: 0;
}

.regulation-modal__body strong {
    color: var(--color-primary);
    font-weight: 700;
}

.regulation-modal__close {
    position: absolute;
    top: 17px;
    right: 21px;

    width: 40px;
    height: 40px;
    padding: 0;

    border: 0;

    background: transparent;
    color: var(--color-primary);

    cursor: pointer;

    font-size: 36px;
    font-weight: 400;
    line-height: 1;
}


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

@media (max-width: 1100px) {

    .home-promotions .promotions-grid--count-1,
    .home-promotions .promotions-grid--count-2 {
        grid-template-columns: minmax(0, 433px);
        justify-content: center;
        gap: 38px;
    }
}


@media (max-width: 760px) {

    .home-promotions .promotions-grid--count-1,
    .home-promotions .promotions-grid--count-2 {
        grid-template-columns: 1fr;
    }

    .regulation-modal {
        padding: 18px;
    }

    .regulation-modal__dialog {
        width: calc(100vw - 36px);
        max-height: calc(100vh - 36px);

        padding: 38px 25px 32px;

        border-radius: 16px;
    }

    .regulation-modal__dialog h2 {
        margin-bottom: 20px;

        font-size: 22px;
    }

    .regulation-modal__body {
        max-height:
            calc(
                100vh
                - 36px
                - 120px
            );

        padding-right: 8px;

        font-size: 14px;
    }
}



/* =========================================================
   AJUSTE HEADER - LOGO CENTRAL + PRAÇA À ESQUERDA
   ========================================================= */
.site-header__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    grid-template-areas: "location logo social";
    align-items: center;
}

.site-header__location {
    grid-area: location;
    justify-self: start;
    color: var(--color-white);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.site-logo {
    grid-area: logo;
    justify-self: center;
}

.site-social {
    grid-area: social;
    justify-self: end;
}

@media (max-width: 1599px) {
    .site-header__top { height: 126px; }
    .site-header__location { font-size: 18px; }
    .site-logo img { width: 156px; }
}

@media (max-width: 1100px) {
    .site-header__top { height: 112px; }
    .site-header__location { font-size: 15px; }
    .site-logo img { width: 145px; }
    .site-social__label { font-size: 13px; }
}

@media (max-width: 760px) {
    .site-header__top { height: 88px; }

    .site-header__inner {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        grid-template-areas:
            "logo social"
            "location social";
        align-content: center;
        column-gap: 14px;
        row-gap: 2px;
    }

    .site-logo {
        justify-self: start;
        align-self: end;
    }

    .site-logo img { width: 100px; }

    .site-header__location {
        justify-self: start;
        align-self: start;
        font-size: 8px;
        margin-top: 5px;
    }

    .site-social {
        justify-self: end;
        align-self: center;
        margin-top: 0;
        gap: 7px;
    }

    .site-social__label {
        max-width: 102px;
        font-size: 9px;
        line-height: 1.15;
        text-align: right;
    }

    .site-social__links {
        gap: 10px;
        padding-right: 0;
        margin: 0;
    }

    .site-social__links img {
        width: 19px;
        height: 19px;
    }
}

@media (max-width: 520px) {
    .site-social__label { max-width: 92px; }
}
