:root {
    --color-primary: #b5121b;
    --color-primary-dark: #8f0e15;
    --color-dark: #15191d;
    --color-muted: #65707a;
    --color-light: #f4f5f6;
    --color-white: #ffffff;

    --container: 1180px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    color: var(--color-dark);
    background: var(--color-white);
    line-height: 1.6;
}

a {
    color: inherit;
}

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

/* Header */

.site-header {
    background: var(--color-white);
    border-bottom: 1px solid #e7e9eb;
}

.header-inner {
    min-height: 86px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: var(--color-dark);
    text-decoration: none;
}

.brand-mark {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;

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

    font-weight: 800;
    letter-spacing: -0.03em;
}

.brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.brand-text strong {
    font-size: 15px;
}

.brand-text span {
    margin-top: 3px;
    font-size: 13px;
    color: var(--color-muted);
}

.main-nav {
    display: flex;
    align-items: center;
    gap: 24px;
}

.main-nav a {
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
}

.main-nav a:hover,
.main-nav a:focus-visible {
    color: var(--color-primary);
}

/* Hero */

.hero {
    min-height: 620px;
    display: flex;
    align-items: center;

    background:
        linear-gradient(
            90deg,
            rgba(12, 15, 18, 0.94),
            rgba(12, 15, 18, 0.72)
        ),
        url("../img/placeholder-hero.jpg")
        center / cover no-repeat;

    color: var(--color-white);
}

.hero-content {
    padding-block: 110px;
}

.eyebrow {
    margin: 0 0 14px;

    color: var(--color-primary);
    font-size: 13px;
    font-weight: 800;

    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.hero .eyebrow {
    color: #ff858b;
}

.hero h1 {
    max-width: 750px;
    margin: 0;

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(58px, 9vw, 108px);
    line-height: 0.95;

    letter-spacing: -0.055em;
}

.hero-lead {
    max-width: 600px;
    margin: 28px 0 0;

    font-size: clamp(18px, 2vw, 23px);
    color: rgba(255, 255, 255, 0.82);
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;

    margin-top: 36px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 50px;
    padding: 0 25px;

    border: 1px solid transparent;
    text-decoration: none;

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

.btn-primary {
    background: var(--color-primary);
    color: var(--color-white);
}

.btn-primary:hover {
    background: var(--color-primary-dark);
}

.btn-secondary {
    border-color: rgba(255, 255, 255, 0.55);
    color: var(--color-white);
}

.btn-secondary:hover {
    background: var(--color-white);
    color: var(--color-dark);
}

/* Intro */

.intro-section {
    padding: 100px 0;
}

.intro-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 80px;
}

.intro-grid h2 {
    margin: 0;

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 5vw, 62px);
    line-height: 1.05;
    letter-spacing: -0.035em;
}

.intro-grid p {
    margin-top: 0;
    font-size: 18px;
    color: var(--color-muted);
}

.placeholder-note {
    font-size: 14px !important;
}

/* Info */

.quick-info {
    padding: 0 0 100px;
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid #dfe2e5;
}

.info-grid article {
    padding: 42px 25px 25px 0;
}

.info-number {
    display: block;

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 700;

    line-height: 1;
}

.info-label {
    display: block;
    margin-top: 10px;

    color: var(--color-muted);
    font-size: 14px;
}

/* Footer */

.site-footer {
    padding: 58px 0;
    background: var(--color-dark);
    color: var(--color-white);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr auto;
    gap: 50px;
}

.site-footer p {
    color: #adb4ba;
}

.emergency {
    display: flex;
    flex-direction: column;
}

.emergency span {
    margin-top: 5px;

    color: #ff6b72;
    font-size: 46px;
    font-weight: 800;
    line-height: 1;
}

/* Responsive */

@media (max-width: 900px) {
    .main-nav {
        display: none;
    }

    .intro-grid,
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .info-grid {
        grid-template-columns: 1fr;
    }

    .info-grid article {
        border-bottom: 1px solid #dfe2e5;
    }
}

@media (max-width: 600px) {
    .container {
        width: min(
            calc(100% - 28px),
            var(--container)
        );
    }

    .header-inner {
        min-height: 74px;
    }

    .hero {
        min-height: 560px;
    }

    .hero-content {
        padding-block: 80px;
    }

    .intro-section {
        padding: 70px 0;
    }

    .quick-info {
        padding-bottom: 70px;
    }
}

/* Pages */

.page-header {
    padding: 90px 0 72px;
    background: var(--color-dark);
    color: var(--color-white);
}

.page-header h1 {
    margin: 0;

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(52px, 8vw, 88px);
    line-height: 1;

    letter-spacing: -0.045em;
}

.page-header p:last-child {
    max-width: 650px;
    margin: 22px 0 0;

    color: #b8bec3;
    font-size: 19px;
}

/* News */

.home-news,
.news-section {
    padding: 95px 0;
    background: #f5f5f4;
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;

    margin-bottom: 40px;
}

.section-heading h2 {
    margin: 0;

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 5vw, 58px);
    line-height: 1;

    letter-spacing: -0.035em;
}

.section-link,
.news-link,
.article-back {
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: none;
}

.section-link:hover,
.news-link:hover,
.article-back:hover {
    text-decoration: underline;
}

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

.news-card {
    overflow: hidden;

    background: var(--color-white);
    border: 1px solid #e0e1df;
}

.news-image {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #dfe1e2;
}

.news-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;

    transition: transform 0.35s ease;
}

.news-card:hover .news-image img {
    transform: scale(1.025);
}

.news-image-placeholder {
    display: grid;
    place-items: center;

    background:
        linear-gradient(
            135deg,
            #191d21,
            #30363b
        );

    color: rgba(255,255,255,0.18);
    text-decoration: none;
}

.news-image-placeholder span {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 66px;
    font-weight: 800;
}

.news-card-content {
    padding: 25px;
}

.news-card time,
.article-header time {
    color: var(--color-primary);

    font-size: 12px;
    font-weight: 800;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.news-card h2,
.news-card h3 {
    margin: 10px 0 12px;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 26px;
    line-height: 1.15;

    letter-spacing: -0.025em;
}

.news-card h2 a,
.news-card h3 a {
    text-decoration: none;
}

.news-card h2 a:hover,
.news-card h3 a:hover {
    color: var(--color-primary);
}

.news-card p {
    margin: 0 0 20px;
    color: var(--color-muted);
}

.news-link {
    font-size: 14px;
}

.empty-state {
    padding: 60px;

    background: var(--color-white);
    border: 1px solid #e0e1df;

    text-align: center;
}

/* Article */

.article-header {
    padding: 80px 0 65px;
    background: var(--color-dark);
    color: var(--color-white);
}

.article-header-inner {
    max-width: 900px;
}

.article-back {
    display: inline-block;
    margin-bottom: 45px;
}

.article-header h1 {
    max-width: 900px;
    margin: 14px 0 0;

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(46px, 7vw, 78px);
    line-height: 1.02;

    letter-spacing: -0.045em;
}

.article-lead {
    max-width: 760px;
    margin: 25px 0 0;

    color: #c0c5c9;
    font-size: 21px;
}

.article-image {
    max-width: 1000px;
    padding-top: 60px;
}

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

.article-body {
    max-width: 800px;
    padding-top: 65px;
    padding-bottom: 100px;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 19px;
    line-height: 1.8;
}

.article-body p {
    margin: 0 0 1.5em;
}

/* Responsive news */

@media (max-width: 900px) {
    .news-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 650px) {
    .home-news,
    .news-section {
        padding: 70px 0;
    }

    .section-heading {
        align-items: start;
        flex-direction: column;
    }

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

    .article-header {
        padding: 60px 0 50px;
    }

    .article-back {
        margin-bottom: 35px;
    }

    .article-body {
        padding-top: 45px;
        padding-bottom: 70px;
        font-size: 18px;
    }
}


/* ==================================================
   NOVO HEADER + HERO
   ================================================== */

.site-header {
    position: fixed;
    z-index: 1000;

    top: 0;
    left: 0;
    right: 0;

    background: transparent;
    color: #ffffff;

    border-bottom: 0;

    transition:
        background .25s ease,
        color .25s ease,
        box-shadow .25s ease;
}

.site-header::after {
    content: "";

    position: absolute;

    left: 4vw;
    right: 4vw;
    bottom: 0;

    height: 1px;

    background: rgba(255, 255, 255, .24);

    transition: opacity .25s ease;
}

.site-header.is-scrolled {
    background: rgba(255, 255, 255, .96);
    color: #101316;

    box-shadow: 0 1px 0 rgba(0, 0, 0, .08);

    backdrop-filter: blur(12px);
}

.site-header.is-scrolled::after {
    opacity: 0;
}

.header-inner {
    width: 100%;

    min-height: 92px;

    padding: 0 4vw;

    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;

    gap: 35px;
}

.brand {
    display: inline-flex;
    align-items: center;

    gap: 12px;

    text-decoration: none;
}

.brand-logo {
    width: 62px;
    height: 62px;

    display: block;

    object-fit: contain;

    padding: 3px;

    background: rgba(255,255,255,.94);

    border-radius: 50%;
}

.brand-text {
    display: flex;
    flex-direction: column;

    line-height: 1.1;
}

.brand-text strong {
    font-size: 14px;
    font-weight: 800;
}

.brand-text span {
    margin-top: 4px;

    font-size: 12px;

    opacity: .72;
}

.main-nav {
    justify-self: center;

    display: flex;
    align-items: center;

    gap: clamp(18px, 2vw, 33px);
}

.main-nav a {
    position: relative;

    color: inherit;

    text-decoration: none;

    font-size: 13px;
    font-weight: 700;
}

.main-nav a::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: -8px;

    width: 0;
    height: 2px;

    background: #c8101e;

    transition: width .2s ease;
}

.main-nav a:hover::after {
    width: 100%;
}

.header-112 {
    display: flex;
    align-items: center;

    gap: 10px;

    padding-left: 20px;

    border-left: 1px solid currentColor;

    color: inherit;

    text-decoration: none;
}

.header-112 span {
    font-size: 10px;
    font-weight: 800;

    letter-spacing: .13em;
    text-transform: uppercase;

    opacity: .68;
}

.header-112 strong {
    color: #ff5b65;

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

.site-header.is-scrolled .header-112 strong {
    color: #c8101e;
}

.menu-toggle {
    display: none;
}


/* Hero */

.hero-home {
    position: relative;

    min-height: 100svh;

    display: flex;
    align-items: flex-end;

    overflow: hidden;

    background:
        url("../img/hero-castanheira.jpg")
        center center / cover no-repeat;

    color: #ffffff;
}

.hero-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(5, 8, 10, .86) 0%,
            rgba(5, 8, 10, .64) 32%,
            rgba(5, 8, 10, .18) 67%,
            rgba(5, 8, 10, .04) 100%
        ),
        linear-gradient(
            0deg,
            rgba(5, 8, 10, .65) 0%,
            transparent 44%
        );
}

.hero-content {
    position: relative;
    z-index: 2;

    width: 100%;

    padding:
        170px
        5vw
        clamp(85px, 10vh, 135px);
}

.hero-kicker {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-bottom: 28px;

    font-size: 11px;
    font-weight: 900;

    letter-spacing: .19em;
    text-transform: uppercase;
}

.hero-kicker span {
    width: 46px;
    height: 3px;

    background: #c8101e;
}

.hero-home h1 {
    max-width: 1000px;

    margin: 0;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Helvetica Neue",
        Arial,
        sans-serif;

    font-size:
        clamp(78px, 12vw, 185px);

    font-weight: 900;

    line-height: .75;

    letter-spacing: -.085em;
}

.hero-home h1 span {
    display: block;
}

.hero-home h1 span:last-child {
    margin-left: clamp(45px, 8vw, 120px);
}

.hero-bottom {
    max-width: 900px;

    display: grid;
    grid-template-columns: 1fr auto;

    align-items: end;

    gap: 60px;

    margin-top: 58px;
}

.hero-bottom p {
    max-width: 450px;

    margin: 0;

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

    font-size: clamp(17px, 1.5vw, 21px);
}

.hero-actions {
    display: flex;

    gap: 12px;
}

.hero-btn {
    min-height: 54px;

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

    gap: 28px;

    padding: 0 24px;

    text-decoration: none;

    border: 1px solid transparent;

    font-size: 13px;
    font-weight: 800;
}

.hero-btn-primary {
    background: #c8101e;
    color: #ffffff;
}

.hero-btn-primary:hover {
    background: #990c16;
}

.hero-btn-secondary {
    color: #ffffff;

    border-color: rgba(255,255,255,.5);
}

.hero-btn-secondary:hover {
    background: #ffffff;
    color: #111417;
}

.hero-scroll {
    position: absolute;
    z-index: 3;

    right: 4vw;
    bottom: 55px;

    display: flex;
    align-items: center;

    gap: 14px;

    transform: rotate(90deg);
    transform-origin: right center;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .18em;
    text-transform: uppercase;
}

.hero-scroll i {
    width: 58px;
    height: 1px;

    display: block;

    background: rgba(255,255,255,.55);
}


/* Responsive */

@media (max-width: 1100px) {

    .header-112 {
        display: none;
    }

    .header-inner {
        grid-template-columns: auto 1fr;
    }

    .main-nav {
        justify-self: end;

        gap: 18px;
    }

    .brand-text {
        display: none;
    }

}


@media (max-width: 850px) {

    .header-inner {
        min-height: 76px;

        display: flex;
        justify-content: space-between;

        padding-inline: 20px;
    }

    .brand-logo {
        width: 54px;
        height: 54px;
    }

    .menu-toggle {
        position: relative;
        z-index: 1002;

        width: 50px;
        height: 50px;

        display: grid;
        place-content: center;

        gap: 7px;

        padding: 0;

        border: 0;

        background: transparent;
        color: inherit;
    }

    .menu-toggle span {
        width: 27px;
        height: 2px;

        display: block;

        background: currentColor;

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

    .main-nav {
        position: fixed;
        z-index: 1001;

        inset: 0;

        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;

        gap: 18px;

        padding: 90px 25px;

        background: #0d1013;

        color: #ffffff;

        opacity: 0;
        visibility: hidden;

        pointer-events: none;
    }

    .menu-open .main-nav {
        opacity: 1;
        visibility: visible;

        pointer-events: auto;
    }

    .main-nav a {
        font-size: clamp(32px, 8vw, 50px);

        line-height: 1;

        letter-spacing: -.04em;
    }

    .menu-open .menu-toggle {
        color: #ffffff;
    }

    .menu-open .menu-toggle span:first-child {
        transform:
            translateY(4.5px)
            rotate(45deg);
    }

    .menu-open .menu-toggle span:last-child {
        transform:
            translateY(-4.5px)
            rotate(-45deg);
    }

    .hero-home {
        min-height: 820px;

        background-position: 57% center;
    }

    .hero-content {
        padding:
            150px
            22px
            80px;
    }

    .hero-home h1 {
        font-size:
            clamp(72px, 19vw, 145px);
    }

    .hero-home h1 span:last-child {
        margin-left: 0;
    }

    .hero-bottom {
        grid-template-columns: 1fr;

        gap: 32px;

        margin-top: 40px;
    }

    .hero-actions {
        flex-wrap: wrap;
    }

    .hero-scroll {
        display: none;
    }

}


@media (max-width: 560px) {

    .hero-home {
        min-height: 760px;
    }

    .hero-home h1 {
        font-size:
            clamp(68px, 22vw, 104px);
    }

    .hero-actions {
        width: 100%;

        flex-direction: column;
    }

    .hero-btn {
        width: 100%;

        justify-content: space-between;
    }

}


/* ==================================================
   AFINAÇÃO HERO V2.1
   ================================================== */

.brand-logo {
    width: 68px;
    height: 68px;

    background: rgba(255,255,255,.97);
}

.brand-text strong {
    color: #ffffff;

    font-size: 15px;
}

.brand-text span {
    color: rgba(255,255,255,.72);
}

.site-header.is-scrolled .brand-text strong {
    color: #101316;
}

.site-header.is-scrolled .brand-text span {
    color: #6e7479;
}


.hero-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(5,8,10,.82) 0%,
            rgba(5,8,10,.58) 30%,
            rgba(5,8,10,.16) 64%,
            rgba(5,8,10,.02) 100%
        ),
        linear-gradient(
            0deg,
            rgba(5,8,10,.62) 0%,
            rgba(5,8,10,.12) 46%,
            transparent 70%
        );
}


.hero-home h1 {
    font-size:
        clamp(76px, 10.8vw, 166px);
}


.hero-bottom {
    max-width: 810px;

    grid-template-columns: 360px 1fr;

    gap: 42px;

    margin-top: 54px;
}


.hero-actions {
    justify-content: flex-start;
}


@media (max-width: 850px) {

    .brand-logo {
        width: 56px;
        height: 56px;
    }

    .hero-home h1 {
        font-size:
            clamp(70px, 18vw, 132px);
    }

    .hero-bottom {
        grid-template-columns: 1fr;

        max-width: 520px;
    }

}


/* ==================================================
   HEADER GLASS + HISTÓRIA V3
   ================================================== */

/* Header glass */

.site-header {
    top: 16px;
    padding-inline: 2vw;
    background: transparent;
    box-shadow: none;
    pointer-events: none;
}

.site-header::after {
    display: none;
}

.header-inner {
    width: min(calc(100% - 20px), 1500px);
    min-height: 80px;
    margin-inline: auto;
    padding: 8px 24px;

    border: 1px solid rgba(255,255,255,.18);
    border-radius: 20px;

    background:
        linear-gradient(
            90deg,
            rgba(8,11,14,.68),
            rgba(20,27,33,.36)
        );

    box-shadow:
        0 14px 42px rgba(0,0,0,.18),
        inset 0 1px 0 rgba(255,255,255,.07);

    backdrop-filter: blur(18px) saturate(125%);
    -webkit-backdrop-filter: blur(18px) saturate(125%);

    pointer-events: auto;
}

.site-header.is-scrolled {
    top: 8px;
    padding-inline: 2vw;

    background: transparent;
    box-shadow: none;
}

.site-header.is-scrolled .header-inner {
    min-height: 70px;

    background: rgba(12,15,18,.92);
    border-color: rgba(255,255,255,.11);

    color: #fff;

    box-shadow:
        0 12px 38px rgba(0,0,0,.25);
}

.site-header.is-scrolled .brand-text strong {
    color: #fff;
}

.site-header.is-scrolled .brand-text span {
    color: rgba(255,255,255,.65);
}

.site-header.is-scrolled .header-112 strong {
    color: #ff4d59;
}

.brand-logo {
    width: 60px;
    height: 60px;

    border: 2px solid rgba(255,255,255,.72);
    box-shadow: 0 4px 16px rgba(0,0,0,.2);
}

.main-nav a {
    text-shadow: 0 1px 7px rgba(0,0,0,.35);
}


/* História */

.history-home {
    position: relative;

    overflow: hidden;

    padding:
        clamp(110px, 10vw, 165px)
        5vw
        clamp(100px, 10vw, 150px);

    background: #f5f3ef;
    color: #111417;
}

.history-year {
    position: absolute;
    z-index: 0;

    left: -2vw;
    bottom: -3vw;

    color: rgba(13,16,19,.055);

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Helvetica Neue",
        Arial,
        sans-serif;

    font-size: clamp(220px, 32vw, 520px);
    font-weight: 900;
    line-height: .72;

    letter-spacing: -.10em;

    user-select: none;
    pointer-events: none;
}

.history-lines {
    position: absolute;
    inset: 0;
    z-index: 0;

    opacity: .17;

    pointer-events: none;

    background:
        radial-gradient(
            ellipse at 15% 50%,
            transparent 0 20%,
            rgba(30,35,38,.14) 20.2% 20.35%,
            transparent 20.5% 28%,
            rgba(30,35,38,.10) 28.2% 28.35%,
            transparent 28.5% 37%,
            rgba(30,35,38,.07) 37.2% 37.35%,
            transparent 37.5%
        );
}

.history-inner {
    position: relative;
    z-index: 2;

    max-width: 1420px;

    display: grid;
    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(280px, .65fr)
        minmax(350px, .9fr);

    align-items: center;

    gap: clamp(42px, 5vw, 85px);

    margin-inline: auto;
}

.history-kicker {
    margin: 0 0 20px;

    color: #c8101e;

    font-size: 11px;
    font-weight: 900;

    letter-spacing: .2em;
    text-transform: uppercase;
}

.history-title h2 {
    max-width: 650px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: clamp(50px, 5.2vw, 86px);
    font-weight: 700;

    line-height: .94;
    letter-spacing: -.055em;
}

.history-title h2 span {
    display: block;
}

.history-copy {
    padding-top: 45px;
}

.history-copy p {
    max-width: 430px;

    margin: 0 0 22px;

    color: #697076;

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

.history-copy .history-lead {
    color: #343a3f;

    font-size: clamp(17px, 1.4vw, 20px);
}

.history-link {
    display: inline-flex;
    align-items: center;

    gap: 26px;

    margin-top: 15px;

    color: #c8101e;

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;
}

.history-link span {
    transition: transform .2s ease;
}

.history-link:hover span {
    transform: translateX(5px);
}

.history-photo {
    position: relative;
    z-index: 3;

    min-height: 520px;

    margin: 0;

    overflow: hidden;

    box-shadow: 0 28px 65px rgba(13,16,19,.14);
}

.history-photo img {
    width: 100%;
    height: 100%;
    min-height: 520px;

    display: block;

    object-fit: cover;
}

.history-photo figcaption {
    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    padding: 21px 25px;

    background: rgba(193,14,27,.95);

    color: white;
}

.history-photo figcaption span,
.history-photo figcaption strong {
    display: block;
}

.history-photo figcaption span {
    margin-bottom: 4px;

    font-size: 9px;
    font-weight: 900;

    letter-spacing: .17em;
    text-transform: uppercase;

    opacity: .72;
}

.history-photo figcaption strong {
    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 21px;
}


@media (max-width: 1100px) {

    .history-inner {
        grid-template-columns: 1fr 1fr;
    }

    .history-title {
        grid-column: 1 / -1;
    }

    .history-copy {
        padding-top: 0;
    }
}


@media (max-width: 850px) {

    .site-header {
        top: 8px;
        padding-inline: 8px;
    }

    .header-inner {
        width: 100%;
        min-height: 66px;

        padding: 5px 9px 5px 12px;

        border-radius: 16px;
    }

    .site-header.is-scrolled {
        top: 6px;
        padding-inline: 8px;
    }

    .site-header.is-scrolled .header-inner {
        min-height: 64px;
    }

    .history-home {
        padding:
            95px
            22px
            85px;
    }

    .history-inner {
        grid-template-columns: 1fr;

        gap: 42px;
    }

    .history-title h2 {
        font-size: clamp(48px, 13vw, 74px);
    }

    .history-copy {
        max-width: 580px;
    }

    .history-photo,
    .history-photo img {
        min-height: 450px;
    }

    .history-year {
        left: -10px;
        bottom: 28%;

        font-size: clamp(180px, 55vw, 340px);
    }
}


@media (max-width: 560px) {

    .history-photo,
    .history-photo img {
        min-height: 380px;
    }
}


/* ==================================================
   HOME V3.1 — AFINAÇÃO HERO + HISTÓRIA
   ================================================== */


/* --------------------------------------------------
   HEADER
   -------------------------------------------------- */

.site-header {
    top: 20px;
}

.header-inner {
    width: min(calc(100% - 44px), 1480px);

    min-height: 84px;

    padding:
        8px
        28px;

    border-radius: 24px;

    background:
        linear-gradient(
            90deg,
            rgba(8, 11, 14, .78) 0%,
            rgba(16, 22, 27, .63) 50%,
            rgba(20, 30, 37, .55) 100%
        );

    border:
        1px solid
        rgba(255, 255, 255, .18);

    box-shadow:
        0 16px 44px
        rgba(0, 0, 0, .24),
        inset 0 1px 0
        rgba(255, 255, 255, .08);

    backdrop-filter:
        blur(20px)
        saturate(130%);

    -webkit-backdrop-filter:
        blur(20px)
        saturate(130%);
}

.brand-logo {
    width: 64px;
    height: 64px;
}

.brand-text strong {
    font-size: 15px;
}

.brand-text span {
    font-size: 12px;
}


/* Quando fazemos scroll */

.site-header.is-scrolled {
    top: 9px;
}

.site-header.is-scrolled .header-inner {
    min-height: 72px;

    background:
        rgba(10, 13, 16, .94);

    border-color:
        rgba(255, 255, 255, .12);
}


/* --------------------------------------------------
   HERO
   -------------------------------------------------- */

.hero-home {
    min-height: 100svh;

    background-position:
        center 48%;
}

.hero-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(4, 7, 9, .88) 0%,
            rgba(4, 7, 9, .64) 30%,
            rgba(4, 7, 9, .19) 64%,
            rgba(4, 7, 9, .05) 100%
        ),
        linear-gradient(
            0deg,
            rgba(4, 7, 9, .72) 0%,
            rgba(4, 7, 9, .15) 47%,
            rgba(4, 7, 9, .04) 70%
        );
}

.hero-content {
    padding:
        175px
        5vw
        78px;
}

.hero-home h1 {
    max-width: 930px;

    font-size:
        clamp(76px, 10.5vw, 164px);

    line-height: .76;
}

.hero-home h1 span:last-child {
    margin-left:
        clamp(55px, 7.5vw, 115px);
}

.hero-bottom {
    max-width: 790px;

    grid-template-columns:
        350px
        auto;

    gap: 42px;

    margin-top: 52px;
}


/* --------------------------------------------------
   HISTÓRIA
   -------------------------------------------------- */

.history-home {
    min-height: 860px;

    padding:
        clamp(105px, 9vw, 145px)
        4vw
        clamp(105px, 9vw, 145px);
}


/*
 * A fotografia passa a ter muito mais peso.
 * Antes a coluna da imagem era demasiado estreita.
 */

.history-inner {
    max-width: 1500px;

    grid-template-columns:
        minmax(420px, 1.05fr)
        minmax(270px, .62fr)
        minmax(470px, 1.15fr);

    gap:
        clamp(45px, 4.5vw, 82px);

    align-items: stretch;
}


/* Título */

.history-title {
    align-self: center;
}

.history-title h2 {
    max-width: 620px;

    font-size:
        clamp(54px, 5.1vw, 88px);

    line-height: .92;
}


/* Texto */

.history-copy {
    align-self: center;

    padding-top: 30px;
}


/* --------------------------------------------------
   FOTOGRAFIA HISTÓRIA
   -------------------------------------------------- */

.history-photo {
    align-self: stretch;

    min-height: 680px;

    margin:
        -30px
        0
        -30px;

    box-shadow:
        0 34px 80px
        rgba(13, 16, 19, .16);
}

.history-photo img {
    width: 100%;
    height: 100%;

    min-height: 680px;

    object-fit: cover;

    object-position: center center;
}


/*
 * Faixa vermelha ligeiramente maior para equilibrar
 * a nova altura da fotografia.
 */

.history-photo figcaption {
    min-height: 112px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        24px
        30px;
}

.history-photo figcaption strong {
    font-size: 23px;
}


/* --------------------------------------------------
   1948
   -------------------------------------------------- */

.history-year {
    left: -3vw;
    bottom: -3vw;

    font-size:
        clamp(250px, 33vw, 535px);

    color:
        rgba(13, 16, 19, .052);
}


/* --------------------------------------------------
   TABLET
   -------------------------------------------------- */

@media (max-width: 1180px) {

    .history-inner {
        grid-template-columns:
            1fr
            1fr;

        gap: 55px;
    }

    .history-title {
        grid-column:
            1 / -1;
    }

    .history-copy {
        padding-top: 0;
    }

    .history-photo {
        min-height: 610px;

        margin: 0;
    }

    .history-photo img {
        min-height: 610px;
    }

}


/* --------------------------------------------------
   MOBILE
   -------------------------------------------------- */

@media (max-width: 850px) {

    .site-header {
        top: 8px;
    }

    .header-inner {
        width: 100%;

        border-radius: 17px;
    }


    .hero-content {
        padding:
            140px
            22px
            76px;
    }

    .hero-home h1 {
        font-size:
            clamp(68px, 18vw, 130px);
    }

    .hero-home h1 span:last-child {
        margin-left: 0;
    }

    .hero-bottom {
        grid-template-columns:
            1fr;

        max-width: 520px;
    }


    .history-home {
        min-height: auto;

        padding:
            90px
            22px
            90px;
    }

    .history-inner {
        grid-template-columns:
            1fr;

        gap: 44px;
    }

    .history-photo {
        min-height: 560px;

        margin: 0;
    }

    .history-photo img {
        min-height: 560px;
    }

}


/* --------------------------------------------------
   MOBILE PEQUENO
   -------------------------------------------------- */

@media (max-width: 560px) {

    .history-title h2 {
        font-size:
            clamp(48px, 13vw, 66px);
    }

    .history-photo {
        min-height: 500px;
    }

    .history-photo img {
        min-height: 500px;
    }

    .history-photo figcaption {
        min-height: 100px;

        padding:
            20px
            22px;
    }

}


/* ==================================================
   HOME NEWS V4 — EDITORIAL
   ================================================== */

.news-home-editorial {
    padding:
        clamp(100px, 10vw, 155px)
        5vw;

    background:
        #ffffff;
}

.news-home-header {
    max-width: 1500px;

    display: flex;
    align-items: end;
    justify-content: space-between;

    gap: 50px;

    margin:
        0
        auto
        clamp(55px, 6vw, 90px);
}

.news-home-kicker {
    margin:
        0
        0
        18px;

    color: #c8101e;

    font-size: 11px;
    font-weight: 900;

    letter-spacing: .2em;
    text-transform: uppercase;
}

.news-home-header h2 {
    max-width: 900px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(54px, 6vw, 96px);

    line-height: .92;

    letter-spacing: -.055em;
}

.news-home-header h2 span {
    display: block;
}

.news-all-link {
    display: inline-flex;
    align-items: center;

    gap: 30px;

    padding:
        16px
        20px;

    border:
        1px solid
        rgba(13,16,19,.18);

    color: #111417;

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;
}

.news-all-link span {
    color: #c8101e;

    transition:
        transform .2s ease;
}

.news-all-link:hover span {
    transform:
        translateX(5px);
}


/* Layout */

.news-home-layout {
    max-width: 1500px;

    display: grid;

    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(350px, .75fr);

    gap:
        clamp(45px, 5vw, 82px);

    margin-inline: auto;
}


/* Notícia principal */

.news-main {
    display: grid;

    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(300px, .8fr);

    min-height: 620px;

    background:
        #f5f3ef;
}

.news-main-media {
    position: relative;

    display: block;

    min-height: 620px;

    overflow: hidden;

    background:
        #151a1f;
}

.news-main-media img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition:
        transform .55s ease;
}

.news-main:hover .news-main-media img {
    transform:
        scale(1.025);
}

.news-main-placeholder {
    width: 100%;
    height: 100%;

    min-height: 620px;

    display: grid;
    place-items: center;

    background:
        linear-gradient(
            135deg,
            #12171b,
            #2b3238
        );

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

    font-size: 110px;
    font-weight: 900;
}

.news-main-date {
    position: absolute;

    left: 0;
    bottom: 0;

    padding:
        16px
        20px;

    background:
        #c8101e;

    color: #ffffff;

    font-size: 11px;
    font-weight: 900;

    letter-spacing: .14em;
}

.news-main-content {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        clamp(35px, 4vw, 65px);
}

.news-category {
    margin:
        0
        0
        15px;

    color: #c8101e;

    font-size: 10px !important;
    font-weight: 900;

    letter-spacing: .17em;
    text-transform: uppercase;
}

.news-main-content h3 {
    margin:
        0
        0
        22px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(34px, 3.2vw, 52px);

    line-height: 1;

    letter-spacing: -.045em;
}

.news-main-content h3 a {
    text-decoration: none;
}

.news-main-content > p:not(.news-category) {
    max-width: 500px;

    margin:
        0
        0
        30px;

    color: #697076;

    font-size: 16px;

    line-height: 1.65;
}

.news-read-link {
    display: inline-flex;
    align-items: center;

    align-self: flex-start;

    gap: 30px;

    color: #c8101e;

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;
}

.news-read-link span {
    transition:
        transform .2s ease;
}

.news-read-link:hover span {
    transform:
        translateX(5px);
}


/* Notícias laterais */

.news-side {
    border-top:
        1px solid
        rgba(13,16,19,.16);
}

.news-side-item {
    position: relative;

    padding:
        34px
        54px
        38px
        0;

    border-bottom:
        1px solid
        rgba(13,16,19,.16);
}

.news-side-meta {
    display: flex;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 14px;

    color: #c8101e;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .14em;
    text-transform: uppercase;
}

.news-side-item h3 {
    max-width: 470px;

    margin:
        0
        0
        14px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(29px, 2.8vw, 42px);

    line-height: 1;

    letter-spacing: -.04em;
}

.news-side-item h3 a {
    text-decoration: none;
}

.news-side-item p {
    max-width: 440px;

    margin: 0;

    color: #73797e;

    font-size: 14px;

    line-height: 1.6;
}

.news-side-arrow {
    position: absolute;

    right: 0;
    top: 50%;

    transform:
        translateY(-50%);

    color: #c8101e;

    text-decoration: none;

    font-size: 30px;

    transition:
        transform .2s ease;
}

.news-side-arrow:hover {
    transform:
        translate(5px, -50%);
}


/* Vazio */

.news-empty {
    max-width: 1500px;

    margin-inline: auto;

    padding:
        50px;

    border:
        1px solid
        rgba(13,16,19,.14);
}


/* Tablet */

@media (max-width: 1150px) {

    .news-home-layout {
        grid-template-columns:
            1fr;
    }

    .news-side {
        display: grid;

        grid-template-columns:
            1fr
            1fr;
    }

    .news-side-item {
        padding:
            32px
            50px
            32px
            0;
    }

    .news-side-item:nth-child(odd) {
        margin-right: 30px;
    }

}


/* Mobile */

@media (max-width: 850px) {

    .news-home-editorial {
        padding:
            90px
            22px;
    }

    .news-home-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .news-home-header h2 {
        font-size:
            clamp(50px, 13vw, 72px);
    }

    .news-main {
        grid-template-columns:
            1fr;

        min-height: auto;
    }

    .news-main-media,
    .news-main-placeholder {
        min-height: 450px;
    }

    .news-side {
        grid-template-columns:
            1fr;
    }

    .news-side-item:nth-child(odd) {
        margin-right: 0;
    }

}


/* Mobile pequeno */

@media (max-width: 560px) {

    .news-main-media,
    .news-main-placeholder {
        min-height: 340px;
    }

    .news-main-content {
        padding:
            30px
            24px
            35px;
    }

    .news-all-link {
        width: 100%;

        justify-content: space-between;
    }

}


/* ==================================================
   INTERNAL PAGES — HEADER CLEARANCE FIX
   Evita que kicker/título fiquem atrás do menu glass
   ================================================== */

.page-header,
.article-header {
    padding-top: 175px;
}


/* Tablet / mobile */

@media (max-width: 850px) {

    .page-header,
    .article-header {
        padding-top: 135px;
    }

}


/* ==================================================
   HOME NEWS V4.1 — REFINAMENTO
   ================================================== */

/* Mais equilíbrio entre imagem e texto principal */

.news-main {
    grid-template-columns:
        minmax(0, 1.08fr)
        minmax(340px, .92fr);
}


/* Área visual mais controlada */

.news-main-media {
    min-height: 590px;
    max-height: 650px;
}

.news-main-media img {
    object-fit: cover;
}


/*
 * Cartazes verticais devem aparecer completos.
 * Para a notícia da colheita de sangue usamos contain.
 */

.news-main-media.is-poster {
    background: #f3f1ed;
}

.news-main-media.is-poster img {
    object-fit: contain;

    padding: 0;

    background: #ffffff;
}


/* Texto da notícia principal com mais largura */

.news-main-content {
    padding:
        clamp(38px, 4vw, 68px);
}

.news-main-content h3 {
    max-width: 480px;

    font-size:
        clamp(36px, 3.1vw, 50px);
}


/* Categoria */

.news-category {
    color: #c8101e;
}


/* --------------------------------------------------
   LATERAIS
   -------------------------------------------------- */

.news-side-item {
    isolation: isolate;

    transition:
        background .22s ease,
        padding-left .22s ease;
}

.news-side-overlay {
    position: absolute;
    z-index: 3;

    inset: 0;
}


/* Títulos mais controlados */

.news-side-item h3 {
    display: -webkit-box;

    overflow: hidden;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;

    line-clamp: 3;

    max-width: 500px;
}


/* Resumo também controlado */

.news-side-item p {
    display: -webkit-box;

    overflow: hidden;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;

    line-clamp: 3;
}


/* Hover */

.news-side-item:hover {
    background:
        #f7f5f1;

    padding-left: 18px;
}

.news-side-item:hover h3 {
    color: #c8101e;
}

.news-side-arrow {
    z-index: 2;

    pointer-events: none;

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

.news-side-item:hover .news-side-arrow {
    transform:
        translate(6px, -50%);

    color: #9d0b15;
}


/* Linha ligeiramente mais marcada no hover */

.news-side-item::before {
    content: "";

    position: absolute;

    left: 0;
    top: -1px;

    width: 0;
    height: 1px;

    background: #c8101e;

    transition: width .25s ease;
}

.news-side-item:hover::before {
    width: 100%;
}


/* --------------------------------------------------
   RESPONSIVO
   -------------------------------------------------- */

@media (max-width: 1150px) {

    .news-main {
        grid-template-columns:
            1fr
            .85fr;
    }

}


@media (max-width: 850px) {

    .news-main {
        grid-template-columns:
            1fr;
    }

    .news-main-media {
        min-height: 430px;
        max-height: none;
    }

    .news-main-media.is-poster img {
        max-height: 620px;
        margin-inline: auto;
    }

}


@media (max-width: 560px) {

    .news-main-media {
        min-height: 320px;
    }

    .news-main-media.is-poster img {
        max-height: 520px;
    }

    .news-side-item:hover {
        padding-left: 10px;
    }

}


/* ==================================================
   ARTICLE HERO V2 — IMAGEM DESFOCADA
   ================================================== */

.article-header {
    position: relative;

    isolation: isolate;

    overflow: hidden;

    min-height: 720px;

    display: flex;
    align-items: flex-end;

    padding:
        180px
        var(--pad)
        85px;

    background:
        #111519;

    color:
        #ffffff;
}


/* imagem de fundo */

.article-hero-background {
    position: absolute;
    z-index: -3;

    inset: -40px;

    background-position:
        center center;

    background-size:
        cover;

    background-repeat:
        no-repeat;

    filter:
        blur(18px);

    transform:
        scale(1.08);

    opacity:
        .72;
}


/* overlay para garantir contraste */

.article-hero-overlay {
    position: absolute;
    z-index: -2;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(8,11,14,.94) 0%,
            rgba(8,11,14,.82) 40%,
            rgba(8,11,14,.58) 72%,
            rgba(8,11,14,.42) 100%
        ),
        linear-gradient(
            0deg,
            rgba(8,11,14,.72) 0%,
            rgba(8,11,14,.20) 60%,
            rgba(8,11,14,.35) 100%
        );
}


/* conteúdo */

.article-header-inner {
    position: relative;
    z-index: 2;

    max-width: 1080px;
}

.article-meta {
    display: flex;
    align-items: center;

    gap: 18px;

    margin-bottom:
        55px;
}

.article-back {
    margin: 0;

    color:
        #e31b2b;
}

.article-meta time {
    color:
        #e31b2b;

    font-size:
        10px;

    font-weight:
        900;

    letter-spacing:
        .14em;

    text-transform:
        uppercase;
}


.article-header h1 {
    max-width:
        1050px;

    margin:
        0;

    font-size:
        clamp(58px, 7.6vw, 112px);

    line-height:
        .92;

    letter-spacing:
        -.06em;
}


.article-lead {
    max-width:
        850px;

    margin:
        28px
        0
        0;

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

    font-size:
        clamp(18px, 1.7vw, 24px);

    line-height:
        1.55;
}


/* imagem real da notícia */

.article-image {
    max-width:
        1180px;

    padding-top:
        70px;
}

.article-image img {
    width:
        100%;

    max-height:
        760px;

    display:
        block;

    object-fit:
        contain;

    background:
        #f3f1ed;
}


/* mobile */

@media (max-width: 850px) {

    .article-header {
        min-height:
            620px;

        padding:
            140px
            22px
            65px;
    }

    .article-meta {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            10px;

        margin-bottom:
            38px;
    }

    .article-header h1 {
        font-size:
            clamp(47px, 13vw, 78px);
    }

    .article-hero-background {
        filter:
            blur(14px);
    }

}


@media (max-width: 560px) {

    .article-header {
        min-height:
            560px;
    }

}


/* ==================================================
   ARTICLE HERO V2.1
   Imagem mais perceptível + título menor + clearance
   ================================================== */


/* --------------------------------------------------
   HERO
   -------------------------------------------------- */

.article-header {
    position: relative;

    min-height: 650px;

    display: flex;
    align-items: flex-end;

    overflow: hidden;
    isolation: isolate;

    padding:
        185px
        var(--pad)
        72px;

    background: #111519;
    color: #ffffff;
}


/* --------------------------------------------------
   IMAGEM DE FUNDO
   Blur muito mais suave
   -------------------------------------------------- */

.article-hero-background {
    position: absolute;
    z-index: -3;

    inset: -8px;

    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;

    filter: blur(3px);

    transform: scale(1.015);

    opacity: 1;
}


/* --------------------------------------------------
   OVERLAY
   Mantém contraste mas deixa a imagem visível
   -------------------------------------------------- */

.article-hero-overlay {
    position: absolute;
    z-index: -2;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(7,10,12,.86) 0%,
            rgba(7,10,12,.72) 38%,
            rgba(7,10,12,.43) 68%,
            rgba(7,10,12,.28) 100%
        ),
        linear-gradient(
            0deg,
            rgba(7,10,12,.63) 0%,
            rgba(7,10,12,.10) 58%,
            rgba(7,10,12,.24) 100%
        );
}


/* --------------------------------------------------
   CONTEÚDO
   -------------------------------------------------- */

.article-header-inner {
    position: relative;
    z-index: 2;

    max-width: 1180px;
}


/* Voltar + data */

.article-meta {
    display: flex;
    align-items: center;

    gap: 20px;

    margin-bottom: 38px;
}

.article-back {
    margin: 0;

    color: #e21a2b;

    font-size: 13px;
    font-weight: 800;
}

.article-meta time {
    color: #e21a2b;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .15em;
    text-transform: uppercase;
}


/* --------------------------------------------------
   TÍTULO
   -------------------------------------------------- */

.article-header h1 {
    max-width: 900px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(48px, 5.1vw, 78px);

    line-height: .98;

    letter-spacing: -.048em;
}


/* --------------------------------------------------
   RESUMO
   -------------------------------------------------- */

.article-lead {
    max-width: 800px;

    margin:
        24px
        0
        0;

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

    font-size:
        clamp(17px, 1.45vw, 21px);

    line-height: 1.55;
}


/* --------------------------------------------------
   IMAGEM NORMAL ABAIXO DO HERO
   -------------------------------------------------- */

.article-image {
    max-width: 1180px;

    padding-top: 65px;
}

.article-image img {
    width: 100%;

    max-height: 720px;

    display: block;

    object-fit: contain;

    background: #f4f2ee;
}


/* --------------------------------------------------
   CORPO DA NOTÍCIA
   -------------------------------------------------- */

.article-body {
    max-width: 800px !important;

    padding-top: 60px;
    padding-bottom: 110px;

    font-size: 18px;
    line-height: 1.8;
}


/* ==================================================
   TABLET
   ================================================== */

@media (max-width: 1000px) {

    .article-header {
        min-height: 610px;

        padding-top: 155px;
    }

    .article-header h1 {
        max-width: 780px;

        font-size:
            clamp(46px, 7vw, 68px);
    }

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 850px) {

    .article-header {
        min-height: 580px;

        padding:
            125px
            22px
            60px;
    }

    .article-meta {
        align-items: flex-start;
        flex-direction: column;

        gap: 8px;

        margin-bottom: 30px;
    }

    .article-header h1 {
        font-size:
            clamp(42px, 11.5vw, 66px);

        line-height: .98;
    }

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

    .article-hero-background {
        inset: -5px;

        filter: blur(2px);

        transform: scale(1.01);
    }

}


/* ==================================================
   MOBILE PEQUENO
   ================================================== */

@media (max-width: 560px) {

    .article-header {
        min-height: 540px;

        padding-top: 115px;
    }

    .article-header h1 {
        font-size:
            clamp(39px, 11vw, 54px);
    }

}


/* ==================================================
   ARTICLE BODY V3 — IMAGEM ESQUERDA / TEXTO DIREITA
   ================================================== */

.article-content-section {
    padding:
        70px
        5vw
        110px;

    background: #ffffff;
}

.article-content-grid {
    max-width: 1420px;

    display: grid;

    grid-template-columns:
        minmax(0, 1.08fr)
        minmax(360px, .92fr);

    gap:
        clamp(50px, 6vw, 95px);

    align-items: start;

    margin-inline: auto;
}


/* imagem */

.article-content-media {
    position: sticky;

    top: 110px;
}

.article-content-media img {
    width: 100%;

    display: block;

    border-radius: 18px;

    box-shadow:
        0 24px 60px
        rgba(13,16,19,.10);
}


/* texto */

.article-content-copy {
    max-width: 660px;

    padding-top: 4px;
}

.article-content-copy .article-body {
    max-width: none !important;

    padding: 0;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Helvetica Neue",
        Arial,
        sans-serif;

    font-size: 18px;

    line-height: 1.75;
}

.article-content-copy .article-body p {
    margin:
        0
        0
        28px;

    color: #30363b;
}


/* partilha */

.article-share {
    display: flex;
    align-items: center;

    gap: 22px;

    margin-top: 28px;

    padding-top: 24px;

    border-top:
        1px solid
        rgba(13,16,19,.14);
}

.article-share > span {
    color: #41474c;

    font-size: 14px;
}

.article-share a {
    width: 34px;
    height: 34px;

    display: inline-grid;
    place-items: center;

    color: #d31827;

    text-decoration: none;

    font-size: 21px;
    font-weight: 800;

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

.article-share a:hover {
    color: #9e0d17;

    transform:
        translateY(-2px);
}


/* tablet */

@media (max-width: 1000px) {

    .article-content-grid {
        grid-template-columns: 1fr;

        gap: 45px;
    }

    .article-content-media {
        position: static;
    }

    .article-content-copy {
        max-width: 760px;
    }

}


/* mobile */

@media (max-width: 650px) {

    .article-content-section {
        padding:
            50px
            22px
            80px;
    }

    .article-content-media img {
        max-height: 560px;

        border-radius: 12px;
    }

    .article-content-copy .article-body {
        font-size: 17px;
    }

}


/* ==================================================
   ARTICLE BODY V3.1 — AFINAÇÃO FINAL
   ================================================== */

.article-content-grid {
    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(420px, .95fr);
}

.article-content-copy {
    max-width: 720px;
}

.article-content-media img {
    border-radius: 14px;
}

.article-content-copy .article-body {
    font-size: 17px;
    line-height: 1.68;
}

.article-share {
    margin-top: 34px;
    padding-top: 26px;
}


/* ==================================================
   ARTICLE V4 — HERO SPACE + GALLERY + SHARE ICONS
   ================================================== */


/* Mais respiração entre resumo e final do hero */

.article-header {
    padding-bottom: 105px;
}

.article-lead {
    margin-bottom: 0;
}


/* ==================================================
   GALERIA / CARROSSEL
   ================================================== */

.article-gallery {
    position: sticky;
    top: 110px;

    width: 100%;

    overflow: hidden;

    border-radius: 14px;

    background: #111519;

    box-shadow:
        0 24px 60px
        rgba(13,16,19,.11);
}

.article-content-media {
    position: static;
}


/* palco */

.article-gallery-stage {
    position: relative;

    width: 100%;

    aspect-ratio: 4 / 3;

    overflow: hidden;
}


/* cada fotografia */

.article-gallery-slide {
    position: absolute;

    inset: 0;

    margin: 0;

    opacity: 0;

    visibility: hidden;

    transition:
        opacity .65s ease,
        visibility .65s ease;
}

.article-gallery-slide.is-active {
    opacity: 1;
    visibility: visible;
}

.article-gallery-slide img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    border-radius: 0;

    box-shadow: none;
}


/* legenda */

.article-gallery-slide figcaption {
    position: absolute;

    left: 18px;
    right: 18px;
    bottom: 18px;

    width: fit-content;
    max-width: calc(100% - 36px);

    padding:
        9px
        13px;

    background:
        rgba(10,13,16,.78);

    color: white;

    border-radius: 5px;

    backdrop-filter: blur(8px);

    font-size: 12px;
}


/* setas */

.article-gallery-arrow {
    position: absolute;
    z-index: 5;

    top: 50%;

    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    transform:
        translateY(-50%);

    border:
        1px solid
        rgba(255,255,255,.35);

    border-radius: 50%;

    background:
        rgba(9,12,15,.58);

    color: white;

    cursor: pointer;

    font-size: 20px;

    backdrop-filter:
        blur(8px);

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

.article-gallery-arrow:hover {
    background:
        #c8101e;
}

.article-gallery-prev {
    left: 17px;
}

.article-gallery-next {
    right: 17px;
}


/* indicadores */

.article-gallery-dots {
    position: absolute;
    z-index: 6;

    left: 50%;
    bottom: 17px;

    display: flex;

    gap: 7px;

    transform:
        translateX(-50%);
}

.article-gallery-dot {
    width: 7px;
    height: 7px;

    padding: 0;

    border: 0;
    border-radius: 50%;

    background:
        rgba(255,255,255,.45);

    cursor: pointer;

    transition:
        width .2s ease,
        border-radius .2s ease,
        background .2s ease;
}

.article-gallery-dot.is-active {
    width: 25px;

    border-radius: 6px;

    background:
        #ffffff;
}


/* ==================================================
   PARTILHA
   ================================================== */

.article-share a {
    width: 36px;
    height: 36px;

    padding: 7px;
}

.article-share a svg {
    width: 100%;
    height: 100%;

    display: block;

    fill: currentColor;
}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 1000px) {

    .article-gallery {
        position: relative;
        top: auto;
    }

}


@media (max-width: 650px) {

    .article-header {
        padding-bottom: 75px;
    }

    .article-gallery-stage {
        aspect-ratio: 4 / 3;
    }

    .article-gallery-arrow {
        width: 40px;
        height: 40px;
    }

}


/* ==================================================
   ARTICLE HERO V4.2 — CORREÇÃO LIMPA
   Mantém o visual anterior e evita sobreposição
   ================================================== */

.article-header {
    position: relative;

    min-height: 680px;

    display: flex;
    align-items: center;

    padding:
        155px
        var(--pad)
        85px;

    overflow: hidden;
    isolation: isolate;

    background: #111519;
    color: #ffffff;
}


/* conteúdo sempre abaixo do menu */

.article-header-inner {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 1180px;

    margin-inline: auto;

    padding-top: 28px;
}


/* voltar + data */

.article-meta {
    margin-bottom: 34px;
}


/* título */

.article-header h1 {
    max-width: 900px;

    margin: 0;

    font-size:
        clamp(46px, 4.6vw, 72px);

    line-height: .98;

    letter-spacing: -.048em;
}


/* resumo */

.article-lead {
    max-width: 820px;

    margin:
        26px
        0
        0;

    font-size:
        clamp(17px, 1.4vw, 21px);

    line-height: 1.55;
}


/* imagem continua perceptível */

.article-hero-background {
    inset: -6px;

    filter: blur(2px);

    transform: scale(1.01);

    opacity: 1;
}


/* overlay ligeiramente mais leve */

.article-hero-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(7,10,12,.84) 0%,
            rgba(7,10,12,.68) 38%,
            rgba(7,10,12,.40) 68%,
            rgba(7,10,12,.24) 100%
        ),
        linear-gradient(
            0deg,
            rgba(7,10,12,.58) 0%,
            rgba(7,10,12,.08) 58%,
            rgba(7,10,12,.20) 100%
        );
}


/* tablet */

@media (max-width: 1000px) {

    .article-header {
        min-height: 630px;

        padding:
            145px
            var(--pad)
            75px;
    }

    .article-header h1 {
        font-size:
            clamp(44px, 6.5vw, 66px);
    }

}


/* mobile */

@media (max-width: 850px) {

    .article-header {
        min-height: 590px;

        padding:
            115px
            22px
            65px;
    }

    .article-header-inner {
        padding-top: 20px;
    }

    .article-header h1 {
        font-size:
            clamp(40px, 10.8vw, 60px);
    }

}



/* ==================================================
   STATS HOME V2
   ================================================== */

.stats-home {
    position: relative;

    overflow: hidden;

    padding:
        clamp(95px, 9vw, 145px)
        5vw;

    background: #101418;
    color: #ffffff;
}

.stats-home::before {
    content: "";

    position: absolute;

    width: 700px;
    height: 700px;

    right: -280px;
    top: -280px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(200,16,30,.20),
            rgba(200,16,30,0) 68%
        );

    pointer-events: none;
}

.stats-home-inner {
    position: relative;
    z-index: 2;

    max-width: 1500px;

    display: grid;

    grid-template-columns:
        minmax(320px, .72fr)
        minmax(0, 1.28fr);

    gap:
        clamp(70px, 8vw, 135px);

    margin-inline: auto;
}


/* intro */

.stats-kicker {
    margin:
        0
        0
        18px;

    color: #e21a2b;

    font-size: 11px;
    font-weight: 900;

    letter-spacing: .2em;
    text-transform: uppercase;
}

.stats-intro h2 {
    max-width: 520px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(54px, 5.5vw, 90px);

    line-height: .92;

    letter-spacing: -.055em;
}

.stats-intro h2 span {
    display: block;
}


/* grid */

.stats-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    border-top:
        1px solid
        rgba(255,255,255,.18);
}

.stat-item {
    position: relative;

    min-height: 390px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    padding:
        32px
        28px
        28px;

    border-right:
        1px solid
        rgba(255,255,255,.14);

    transition:
        background .22s ease;
}

.stat-item:last-child {
    border-right: 0;
}

.stat-item:hover {
    background:
        rgba(255,255,255,.035);
}


/* labels */

.stat-label {
    color:
        rgba(255,255,255,.52);

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .18em;
    text-transform: uppercase;
}


/* números */

.stat-item strong,
.stat-item > a {
    display: block;

    margin:
        auto
        0;

    color: #ffffff;

    text-decoration: none;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Helvetica Neue",
        Arial,
        sans-serif;

    font-size:
        clamp(64px, 6vw, 105px);

    font-weight: 900;

    line-height: .82;

    letter-spacing: -.075em;
}


/* emergência */

.stat-emergency > a {
    color: #e21a2b;

    font-size:
        clamp(88px, 8vw, 135px);
}


/* telefone */

.stat-station > a {
    font-size:
        clamp(48px, 4.7vw, 78px);

    line-height: .84;
}


/* descrições */

.stat-item p {
    max-width: 220px;

    margin:
        28px
        0
        0;

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

    font-size: 13px;

    line-height: 1.55;
}


/* detalhe vermelho no topo */

.stat-item::before {
    content: "";

    position: absolute;

    left: 0;
    top: -1px;

    width: 0;
    height: 3px;

    background: #e21a2b;

    transition:
        width .28s ease;
}

.stat-item:hover::before {
    width: 100%;
}


/* tablet */

@media (max-width: 1100px) {

    .stats-home-inner {
        grid-template-columns: 1fr;

        gap: 60px;
    }

}


/* mobile */

@media (max-width: 800px) {

    .stats-home {
        padding:
            85px
            22px;
    }

    .stats-intro h2 {
        font-size:
            clamp(50px, 13vw, 72px);
    }

    .stats-grid {
        grid-template-columns: 1fr;
    }

    .stat-item {
        min-height: 260px;

        border-right: 0;

        border-bottom:
            1px solid
            rgba(255,255,255,.14);
    }

    .stat-item:last-child {
        border-bottom: 0;
    }

}


/* mobile pequeno */

@media (max-width: 520px) {

    .stat-item strong,
    .stat-item > a {
        font-size: 64px;
    }

    .stat-emergency > a {
        font-size: 96px;
    }

    .stat-station > a {
        font-size: 54px;
    }

}


/* ==================================================
   FOOTER V2
   ================================================== */

.footer-v2 {
    padding: 0;

    background: #080b0d;
    color: #ffffff;
}


/* bloco principal */

.footer-main {
    max-width: 1500px;

    display: grid;
    grid-template-columns:
        minmax(380px, .9fr)
        minmax(0, 1.1fr);

    gap:
        clamp(70px, 8vw, 140px);

    margin-inline: auto;

    padding:
        clamp(90px, 9vw, 145px)
        5vw
        clamp(80px, 8vw, 125px);
}


/* identidade */

.footer-identity {
    position: relative;
}

.footer-logo {
    width: 92px;
    height: 92px;

    display: block;

    object-fit: contain;

    margin-bottom: 38px;

    padding: 5px;

    background: #ffffff;

    border-radius: 50%;
}

.footer-kicker {
    margin:
        0
        0
        18px !important;

    color: #d71828 !important;

    font-size: 10px !important;
    font-weight: 900;

    letter-spacing: .2em;

    text-transform: uppercase;
}

.footer-motto {
    max-width: 560px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(70px, 8vw, 125px);

    font-weight: 700;

    line-height: .78;

    letter-spacing: -.075em;
}

.footer-motto span {
    display: block;

    margin-left:
        clamp(35px, 5vw, 80px);
}


/* informação */

.footer-info {
    align-self: end;

    display: grid;
    grid-template-columns:
        1fr
        1fr;

    gap:
        55px
        70px;

    padding-top: 35px;
}

.footer-column {
    display: flex;
    flex-direction: column;

    gap: 9px;
}

.footer-label {
    display: block;

    margin-bottom: 5px;

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

    font-size: 9px;
    font-weight: 900;

    letter-spacing: .18em;
    text-transform: uppercase;
}

.footer-column strong {
    max-width: 390px;

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

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

.footer-column address {
    color: rgba(255,255,255,.62);

    font-size: 14px;
    font-style: normal;

    line-height: 1.7;
}

.footer-column a {
    align-self: flex-start;

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

    text-decoration: none;

    font-size: 14px;

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

.footer-column a:hover {
    color: #ffffff;

    transform:
        translateX(3px);
}


/* emergência */

.footer-emergency-band {
    min-height: 210px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 50px;

    padding:
        45px
        5vw;

    background: #c8101e;

    color: #ffffff;
}

.footer-emergency-band > div span,
.footer-emergency-band > div strong {
    display: block;
}

.footer-emergency-band > div span {
    margin-bottom: 7px;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .2em;

    text-transform: uppercase;

    opacity: .7;
}

.footer-emergency-band > div strong {
    max-width: 620px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(28px, 3vw, 46px);

    line-height: 1.05;
}

.footer-emergency-band > a {
    display: inline-flex;
    align-items: center;

    gap: 28px;

    color: #ffffff;

    text-decoration: none;

    font-size:
        clamp(90px, 10vw, 150px);

    font-weight: 900;

    line-height: .72;

    letter-spacing: -.08em;
}

.footer-emergency-band > a span {
    font-size: .28em;

    transition:
        transform .2s ease;
}

.footer-emergency-band > a:hover span {
    transform:
        translateX(8px);
}


/* linha final */

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    padding:
        25px
        5vw;

    border-top:
        1px solid
        rgba(255,255,255,.08);

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

    font-size: 10px;

    letter-spacing: .03em;
}


/* tablet */

@media (max-width: 1000px) {

    .footer-main {
        grid-template-columns: 1fr;

        gap: 70px;
    }

    .footer-info {
        padding-top: 0;
    }

}


/* mobile */

@media (max-width: 700px) {

    .footer-main {
        padding:
            80px
            22px
            70px;
    }

    .footer-logo {
        width: 76px;
        height: 76px;
    }

    .footer-motto {
        font-size:
            clamp(66px, 20vw, 95px);
    }

    .footer-motto span {
        margin-left: 0;
    }

    .footer-info {
        grid-template-columns: 1fr;

        gap: 38px;
    }

    .footer-emergency-band {
        align-items: flex-start;
        flex-direction: column;

        padding:
            50px
            22px;
    }

    .footer-emergency-band > a {
        font-size: 105px;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;

        padding:
            24px
            22px;
    }

}


/* ==================================================
   FOOTER — CRÉDITO K4W
   ================================================== */

.footer-credit {
    white-space: nowrap;
}

.footer-credit a {
    position: relative;

    margin-left: 4px;

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

    font-weight: 800;

    letter-spacing: .08em;

    text-decoration: none;

    transition:
        color .2s ease;
}

.footer-credit a::after {
    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: -4px;

    height: 1px;

    background: #c8101e;

    transform: scaleX(0);

    transform-origin: right;

    transition:
        transform .25s ease;
}

.footer-credit a:hover {
    color: #ffffff;
}

.footer-credit a:hover::after {
    transform: scaleX(1);

    transform-origin: left;
}



/* ==================================================
   LEGAL PAGES V1
   ================================================== */

.legal-hero {
    padding:
        175px
        5vw
        95px;

    background: #101418;
    color: #fff;
}

.legal-hero-inner {
    max-width: 1500px;
    margin-inline: auto;
}

.legal-kicker,
.error-kicker {
    display: block;

    margin-bottom: 22px;

    color: #d71828;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .2em;
    text-transform: uppercase;
}

.legal-hero h1 {
    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(58px, 7vw, 110px);

    line-height: .86;
    letter-spacing: -.065em;
}

.legal-hero p {
    max-width: 650px;

    margin:
        38px
        0
        0;

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

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


.legal-content {
    padding:
        clamp(80px, 9vw, 140px)
        5vw;

    background: #fff;
}

.legal-layout {
    max-width: 1250px;

    display: grid;

    grid-template-columns:
        240px
        minmax(0, 760px);

    gap:
        clamp(60px, 9vw, 140px);

    margin-inline: auto;
}

.legal-aside span {
    display: block;

    margin-bottom: 14px;

    color: #c8101e;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .18em;
    text-transform: uppercase;
}

.legal-aside strong {
    color: #111519;

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

.legal-article h2 {
    margin:
        0
        0
        20px;

    color: #111519;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(28px, 3vw, 40px);

    line-height: 1.05;
}

.legal-article h2:not(:first-child) {
    margin-top: 65px;
}

.legal-article p {
    margin:
        0
        0
        18px;

    color: #50565a;

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

.legal-article a {
    color: #c8101e;
}


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

.error-page {
    position: relative;

    min-height: 100vh;

    display: flex;
    align-items: center;

    overflow: hidden;

    padding:
        175px
        5vw
        100px;

    background: #101418;
    color: #ffffff;
}

.error-code {
    position: absolute;

    right: -2vw;
    top: 50%;

    transform:
        translateY(-52%);

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

    font-size:
        clamp(260px, 38vw, 650px);

    font-weight: 900;

    line-height: .7;

    letter-spacing: -.12em;

    pointer-events: none;
}

.error-content {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 1500px;

    margin-inline: auto;
}

.error-content h1 {
    max-width: 850px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(60px, 7vw, 110px);

    line-height: .86;
    letter-spacing: -.065em;
}

.error-content h1 em {
    color: #d71828;
    font-style: normal;
}

.error-content p {
    max-width: 570px;

    margin:
        38px
        0
        35px;

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

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

.error-home {
    display: inline-flex;
    align-items: center;

    gap: 25px;

    padding-bottom: 7px;

    border-bottom:
        1px solid
        rgba(255,255,255,.35);

    color: #fff;

    font-size: 13px;
    font-weight: 800;

    text-decoration: none;
}

.error-home span {
    transition:
        transform .2s ease;
}

.error-home:hover span {
    transform:
        translateX(7px);
}

.error-emergency {
    position: absolute;
    z-index: 3;

    right: 5vw;
    bottom: 70px;

    text-align: right;
}

.error-emergency span {
    display: block;

    margin-bottom: 7px;

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

    font-size: 10px;

    text-transform: uppercase;
    letter-spacing: .12em;
}

.error-emergency a {
    color: #d71828;

    font-size: 30px;
    font-weight: 900;

    text-decoration: none;
}


/* ==================================================
   FOOTER LEGAL
   ================================================== */

.footer-legal {
    display: flex;
    align-items: center;

    gap: 22px;
}

.footer-legal a {
    color:
        rgba(255,255,255,.35);

    font-size: 10px;

    text-decoration: none;

    transition:
        color .2s ease;
}

.footer-legal a:hover {
    color: #ffffff;
}


/* ==================================================
   LEGAL + 404 MOBILE
   ================================================== */

@media (max-width: 800px) {

    .legal-hero {
        padding:
            135px
            22px
            75px;
    }

    .legal-content {
        padding:
            75px
            22px;
    }

    .legal-layout {
        grid-template-columns: 1fr;

        gap: 55px;
    }

    .error-page {
        align-items: flex-start;

        padding:
            145px
            22px
            180px;
    }

    .error-code {
        top: 35%;
        right: -15vw;
    }

    .error-emergency {
        left: 22px;
        right: auto;
        bottom: 65px;

        text-align: left;
    }

    .footer-legal {
        align-items: flex-start;
        flex-direction: column;

        gap: 8px;
    }

}


/* ==================================================
   COOKIE BANNER V1
   ================================================== */

.cookie-banner {
    position: fixed;
    z-index: 5000;

    left: 22px;
    right: 22px;
    bottom: 22px;

    color: #ffffff;
}

.cookie-banner[hidden] {
    display: none;
}

.cookie-banner-inner {
    max-width: 1240px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;

    margin-inline: auto;

    padding:
        22px
        24px;

    border:
        1px solid
        rgba(255,255,255,.14);

    border-radius: 18px;

    background:
        rgba(10,13,16,.94);

    box-shadow:
        0 20px 60px
        rgba(0,0,0,.28);

    backdrop-filter:
        blur(18px)
        saturate(125%);

    -webkit-backdrop-filter:
        blur(18px)
        saturate(125%);
}

.cookie-banner-copy {
    max-width: 740px;
}

.cookie-label {
    display: block;

    margin-bottom: 6px;

    color: #e21a2b;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .18em;
    text-transform: uppercase;
}

.cookie-banner-copy p {
    margin: 0;

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

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

.cookie-banner-copy a {
    color: #ffffff;

    text-decoration:
        underline;

    text-underline-offset: 3px;
}

.cookie-banner-actions {
    display: flex;
    align-items: center;

    gap: 10px;

    flex-shrink: 0;
}

.cookie-button {
    min-height: 44px;

    padding:
        0
        17px;

    border-radius: 7px;

    font-size: 12px;
    font-weight: 800;

    cursor: pointer;

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

.cookie-reject {
    border:
        1px solid
        rgba(255,255,255,.24);

    background:
        transparent;

    color:
        rgba(255,255,255,.8);
}

.cookie-reject:hover {
    border-color:
        rgba(255,255,255,.52);

    color: #ffffff;
}

.cookie-accept {
    border:
        1px solid
        #c8101e;

    background:
        #c8101e;

    color:
        #ffffff;
}

.cookie-accept:hover {
    background:
        #990c16;

    border-color:
        #990c16;
}


/* mobile */

@media (max-width: 760px) {

    .cookie-banner {
        left: 10px;
        right: 10px;
        bottom: 10px;
    }

    .cookie-banner-inner {
        align-items: stretch;
        flex-direction: column;

        gap: 18px;

        padding:
            20px;
    }

    .cookie-banner-actions {
        width: 100%;
    }

    .cookie-button {
        flex: 1;
    }

}


@media (max-width: 480px) {

    .cookie-banner-actions {
        flex-direction: column;
    }

    .cookie-button {
        width: 100%;
    }

}


/* ==================================================
   CONSIGNAR IRS V1
   ================================================== */

.irs-hero {
    padding:
        175px
        5vw
        105px;

    background: #101418;
    color: #ffffff;
}

.irs-hero-inner {
    max-width: 1500px;

    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(330px, .55fr);

    align-items: end;

    gap:
        clamp(70px, 10vw, 160px);

    margin-inline: auto;
}

.irs-kicker {
    display: block;

    margin-bottom: 20px;

    color: #e21a2b;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .2em;
    text-transform: uppercase;
}

.irs-hero h1,
.irs-explainer h2,
.irs-impact h2,
.irs-help h2 {
    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    letter-spacing: -.06em;
}

.irs-hero h1 {
    max-width: 850px;

    font-size:
        clamp(62px, 7vw, 110px);

    line-height: .86;
}

.irs-hero h1 em {
    color: #e21a2b;
    font-style: normal;
}

.irs-hero-copy > p {
    max-width: 670px;

    margin:
        38px
        0
        0;

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

    font-size: 18px;
    line-height: 1.7;
}


/* NIF */

.irs-nif-card {
    padding:
        38px;

    border:
        1px solid
        rgba(255,255,255,.14);

    background:
        rgba(255,255,255,.035);
}

.irs-nif-card > span {
    display: block;

    margin-bottom: 30px;

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

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .18em;
    text-transform: uppercase;
}

.irs-nif-card strong {
    display: block;

    margin-bottom: 32px;

    font-size:
        clamp(66px, 6vw, 102px);

    line-height: .78;

    letter-spacing: -.075em;
}

.irs-copy-nif {
    min-height: 46px;

    padding:
        0
        18px;

    border:
        1px solid
        rgba(255,255,255,.28);

    background: transparent;

    color: #ffffff;

    font-weight: 800;

    cursor: pointer;
}


/* como fazer */

.irs-how {
    padding:
        clamp(95px, 9vw, 145px)
        5vw;

    background: #ffffff;
}

.irs-how-inner {
    max-width: 1500px;

    margin-inline: auto;
}

.irs-section-heading {
    margin-bottom:
        clamp(60px, 7vw, 100px);
}

.irs-section-heading > span {
    display: block;

    margin-bottom: 17px;

    color: #c8101e;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .18em;
    text-transform: uppercase;
}

.irs-section-heading h2 {
    max-width: 800px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(52px, 5.5vw, 88px);

    line-height: .92;

    letter-spacing: -.055em;
}

.irs-steps {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    border-top:
        1px solid
        rgba(13,16,19,.15);
}

.irs-steps article {
    min-height: 360px;

    padding:
        30px
        35px
        35px;

    border-right:
        1px solid
        rgba(13,16,19,.13);
}

.irs-steps article:last-child {
    border-right: 0;
}

.irs-step-number {
    display: block;

    margin-bottom: 70px;

    color: #c8101e;

    font-size: 11px;
    font-weight: 900;
}

.irs-steps h3 {
    max-width: 330px;

    margin:
        0
        0
        22px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 34px;

    line-height: 1;
}

.irs-steps p {
    max-width: 350px;

    margin: 0;

    color: #697075;

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

.irs-inline-nif {
    margin:
        0
        0
        20px;

    color: #c8101e;

    font-size: 30px;
    font-weight: 900;
}


/* explicação */

.irs-explainer {
    padding:
        clamp(100px, 10vw, 160px)
        5vw;

    background: #f4f2ee;
}

.irs-explainer-inner {
    max-width: 1350px;

    display: grid;

    grid-template-columns:
        1fr
        .8fr;

    gap:
        clamp(70px, 9vw, 140px);

    margin-inline: auto;
}

.irs-explainer h2 {
    font-size:
        clamp(52px, 5.5vw, 86px);

    line-height: .92;
}

.irs-explainer-copy p {
    margin:
        0
        0
        24px;

    color: #666d72;

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

.irs-explainer-copy .irs-lead {
    color: #252b2f;

    font-size: 20px;
}


/* impacto */

.irs-impact {
    display: grid;
    grid-template-columns:
        1fr
        .65fr;

    background: #101418;
    color: #ffffff;
}

.irs-impact-copy,
.irs-impact-number {
    padding:
        clamp(90px, 9vw, 145px)
        5vw;
}

.irs-impact h2 {
    font-size:
        clamp(54px, 6vw, 95px);

    line-height: .88;
}

.irs-impact-copy p {
    max-width: 620px;

    margin:
        35px
        0
        0;

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

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

.irs-impact-number {
    display: flex;
    flex-direction: column;
    justify-content: center;

    background: #c8101e;
}

.irs-impact-number span,
.irs-impact-number small {
    font-size: 11px;
    font-weight: 900;

    letter-spacing: .17em;
    text-transform: uppercase;
}

.irs-impact-number strong {
    margin:
        25px
        0;

    font-size:
        clamp(130px, 15vw, 230px);

    line-height: .65;

    letter-spacing: -.1em;
}


/* contacto */

.irs-help {
    max-width: 1500px;

    display: grid;
    grid-template-columns:
        .8fr
        1.2fr;

    gap: 70px;

    margin-inline: auto;

    padding:
        clamp(90px, 9vw, 140px)
        5vw;
}

.irs-help h2 {
    font-size:
        clamp(52px, 5vw, 80px);
}

.irs-help-links {
    align-self: end;

    display: grid;
    grid-template-columns: 1fr 1fr;
}

.irs-help-links a {
    padding:
        28px;

    border-top:
        1px solid
        rgba(13,16,19,.15);

    color: #111519;

    text-decoration: none;
}

.irs-help-links span,
.irs-help-links strong {
    display: block;
}

.irs-help-links span {
    margin-bottom: 10px;

    color: #8a8f93;

    font-size: 10px;

    text-transform: uppercase;

    letter-spacing: .15em;
}

.irs-help-links strong {
    font-size: 18px;
}


/* responsive */

@media (max-width: 900px) {

    .irs-hero-inner,
    .irs-explainer-inner,
    .irs-impact,
    .irs-help {
        grid-template-columns: 1fr;
    }

    .irs-steps {
        grid-template-columns: 1fr;
    }

    .irs-steps article {
        min-height: auto;

        border-right: 0;

        border-bottom:
            1px solid
            rgba(13,16,19,.13);
    }

    .irs-step-number {
        margin-bottom: 35px;
    }

}


@media (max-width: 650px) {

    .irs-hero {
        padding:
            135px
            22px
            80px;
    }

    .irs-how,
    .irs-explainer {
        padding:
            80px
            22px;
    }

    .irs-help {
        padding:
            80px
            22px;
    }

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

}


/* ==================================================
   APOIAR V1
   ================================================== */

.support-hero {
    padding:
        170px
        5vw
        95px;

    background: #f4f2ee;
}

.support-hero-inner {
    max-width: 1500px;

    display: grid;
    grid-template-columns:
        minmax(0, .9fr)
        minmax(420px, 1.1fr);

    align-items: stretch;

    gap:
        clamp(60px, 7vw, 110px);

    margin-inline: auto;
}

.support-kicker {
    display: block;

    margin-bottom: 20px;

    color: #c8101e;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .2em;
    text-transform: uppercase;
}

.support-hero-copy {
    align-self: center;
}

.support-hero h1,
.support-heading h2,
.support-impact h2,
.support-contact h2 {
    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    letter-spacing: -.06em;
}

.support-hero h1 {
    max-width: 720px;

    font-size:
        clamp(62px, 7vw, 112px);

    line-height: .86;
}

.support-hero h1 span {
    display: block;

    color: #c8101e;
}

.support-hero-copy > p {
    max-width: 590px;

    margin:
        35px
        0
        0;

    color: #555c61;

    font-size: 18px;
    line-height: 1.7;
}

.support-hero-media {
    min-height: 620px;

    overflow: hidden;
}

.support-hero-media img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}


/* métodos */

.support-methods {
    padding:
        clamp(95px, 9vw, 145px)
        5vw;

    background: #ffffff;
}

.support-methods-inner {
    max-width: 1500px;

    margin-inline: auto;
}

.support-heading {
    margin-bottom:
        clamp(60px, 7vw, 95px);
}

.support-heading > span {
    display: block;

    margin-bottom: 17px;

    color: #c8101e;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .18em;
    text-transform: uppercase;
}

.support-heading h2 {
    max-width: 820px;

    font-size:
        clamp(52px, 5.5vw, 88px);

    line-height: .92;
}

.support-heading h2 span {
    display: block;
}

.support-cards {
    display: grid;
    grid-template-columns:
        repeat(3, 1fr);

    border-top:
        1px solid
        rgba(13,16,19,.15);
}

.support-card {
    min-height: 440px;

    padding:
        30px
        34px
        35px;

    border-right:
        1px solid
        rgba(13,16,19,.13);
}

.support-card:last-child {
    border-right: 0;
}

.support-card-number {
    display: block;

    margin-bottom: 65px;

    color: #c8101e;

    font-size: 11px;
    font-weight: 900;
}

.support-card h3 {
    max-width: 330px;

    margin:
        0
        0
        28px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 34px;

    line-height: 1;
}

.support-card p {
    max-width: 350px;

    color: #6b7176;

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

.support-card a {
    display: inline-flex;
    align-items: center;

    gap: 25px;

    margin-top: 24px;

    color: #c8101e;

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;
}

.support-data {
    margin-bottom: 20px;
}

.support-data span,
.support-data strong {
    display: block;
}

.support-data span {
    margin-bottom: 6px;

    color: #8c9195;

    font-size: 9px;
    font-weight: 900;

    letter-spacing: .15em;
    text-transform: uppercase;
}

.support-data strong {
    color: #111519;

    font-size: 20px;
}


/* impacto */

.support-impact {
    display: grid;
    grid-template-columns:
        1fr
        1fr;

    background: #101418;
    color: #ffffff;
}

.support-impact-copy,
.support-impact-list {
    padding:
        clamp(90px, 9vw, 145px)
        5vw;
}

.support-impact h2 {
    max-width: 700px;

    font-size:
        clamp(52px, 5.5vw, 90px);

    line-height: .9;
}

.support-impact h2 span {
    display: block;
}

.support-impact-copy > p {
    max-width: 600px;

    margin:
        35px
        0
        0;

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

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

.support-impact-list {
    display: flex;
    flex-direction: column;
    justify-content: center;

    background: #c8101e;
}

.support-impact-list article {
    padding:
        28px
        0;

    border-bottom:
        1px solid
        rgba(255,255,255,.24);
}

.support-impact-list article:last-child {
    border-bottom: 0;
}

.support-impact-list strong {
    display: block;

    margin-bottom: 8px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 30px;
}

.support-impact-list p {
    max-width: 470px;

    margin: 0;

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

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


/* contacto */

.support-contact {
    max-width: 1500px;

    display: grid;
    grid-template-columns:
        .8fr
        1.2fr;

    gap: 70px;

    margin-inline: auto;

    padding:
        clamp(90px, 9vw, 140px)
        5vw;
}

.support-contact h2 {
    font-size:
        clamp(52px, 5vw, 80px);
}

.support-contact-links {
    align-self: end;

    display: grid;
    grid-template-columns:
        1fr
        1fr;
}

.support-contact-links a {
    padding: 28px;

    border-top:
        1px solid
        rgba(13,16,19,.15);

    color: #111519;

    text-decoration: none;
}

.support-contact-links span,
.support-contact-links strong {
    display: block;
}

.support-contact-links span {
    margin-bottom: 10px;

    color: #8a8f93;

    font-size: 10px;

    text-transform: uppercase;

    letter-spacing: .15em;
}

.support-contact-links strong {
    font-size: 18px;
}


/* responsive */

@media (max-width: 950px) {

    .support-hero-inner,
    .support-impact,
    .support-contact {
        grid-template-columns: 1fr;
    }

    .support-cards {
        grid-template-columns: 1fr;
    }

    .support-card {
        min-height: auto;

        border-right: 0;

        border-bottom:
            1px solid
            rgba(13,16,19,.13);
    }

}


@media (max-width: 650px) {

    .support-hero {
        padding:
            135px
            22px
            75px;
    }

    .support-methods {
        padding:
            80px
            22px;
    }

    .support-contact {
        padding:
            80px
            22px;
    }

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

    .support-hero-media {
        min-height: 430px;
    }

}


/* ==================================================
   APOIAR — HERO V2
   imagem desde o topo / por baixo do menu
   ================================================== */

.support-hero {
    position: relative;

    margin-top: 0;

    padding:
        0
        0
        0;

    min-height: 780px;

    background: #f4f2ee;

    overflow: hidden;
}


.support-hero-inner {
    max-width: none;

    min-height: 780px;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(430px, 42vw);

    gap: 0;

    margin: 0;
}


/* TEXTO */

.support-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        175px
        clamp(55px, 8vw, 150px)
        100px
        max(5vw, calc((100vw - 1500px) / 2));

    position: relative;

    z-index: 2;
}


.support-hero-copy > p {
    max-width: 590px;
}


/* FOTOGRAFIA */

.support-hero-media {
    position: relative;

    min-height: 780px;

    overflow: hidden;
}


.support-hero-media img {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    /*
       A fotografia é vertical.
       Mantemos a frente da primeira viatura
       como principal ponto de interesse.
    */

    object-position: 50% 58%;
}


/*
   Transição muito subtil entre texto e imagem.
   Evita parecer que são dois blocos independentes.
*/

.support-hero-media::after {
    content: "";

    position: absolute;

    inset:
        0
        auto
        0
        0;

    width: 90px;

    background:
        linear-gradient(
            90deg,
            #f4f2ee 0%,
            rgba(244,242,238,.72) 25%,
            rgba(244,242,238,0) 100%
        );

    pointer-events: none;
}


/* ==================================================
   HEADER SOBRE O HERO APOIAR
   ================================================== */

body:has(.support-hero) .site-header {
    position: absolute;

    top: 14px;
    left: 0;
    right: 0;

    z-index: 1000;

    background: transparent;
}


/*
   Mantemos o próprio header glass.
   A fotografia passa por baixo dele.
*/

body:has(.support-hero) .header-inner {
    background:
        rgba(12, 17, 20, .80);

    backdrop-filter:
        blur(18px);

    -webkit-backdrop-filter:
        blur(18px);
}


/* ==================================================
   TABLET
   ================================================== */

@media (max-width: 950px) {

    .support-hero {
        min-height: auto;
    }

    .support-hero-inner {
        min-height: auto;

        grid-template-columns: 1fr;
    }

    .support-hero-copy {
        min-height: 620px;

        padding:
            150px
            7vw
            80px;
    }

    .support-hero-media {
        min-height: 680px;
    }

    .support-hero-media::after {
        display: none;
    }

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 650px) {

    .support-hero-copy {
        min-height: auto;

        padding:
            135px
            22px
            70px;
    }

    .support-hero-media {
        min-height: 620px;
    }

    .support-hero-media img {
        object-position: 50% 50%;
    }

}


/* ==================================================
   QUEM SOMOS V1
   ================================================== */


/* HERO */

.about-hero {
    position: relative;

    min-height: 760px;

    display: flex;
    align-items: flex-end;

    overflow: hidden;

    padding:
        175px
        5vw
        100px;

    background: #101418;
    color: #ffffff;
}

.about-hero-bg {
    position: absolute;

    inset: 0;

    background-size: cover;
    background-position: center 50%;

    transform: scale(1.01);
}

.about-hero-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(7,10,12,.91) 0%,
            rgba(7,10,12,.72) 42%,
            rgba(7,10,12,.25) 75%,
            rgba(7,10,12,.12) 100%
        ),
        linear-gradient(
            0deg,
            rgba(7,10,12,.62),
            rgba(7,10,12,.04) 60%
        );
}

.about-hero-inner {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 1500px;

    margin-inline: auto;
}

.about-kicker {
    display: block;

    margin-bottom: 20px;

    color: #d71828;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .2em;
    text-transform: uppercase;
}

.about-hero h1 {
    max-width: 950px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(64px, 8vw, 126px);

    line-height: .84;

    letter-spacing: -.07em;
}

.about-hero h1 em {
    color: #d71828;
    font-style: normal;
}

.about-hero p {
    max-width: 650px;

    margin:
        35px
        0
        0;

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

    font-size: 19px;

    line-height: 1.65;
}


/* INTRO */

.about-intro {
    padding:
        clamp(100px, 10vw, 160px)
        5vw;

    background: #ffffff;
}

.about-intro-inner {
    max-width: 1350px;

    display: grid;

    grid-template-columns:
        .9fr
        1.1fr;

    gap:
        clamp(70px, 10vw, 150px);

    margin-inline: auto;
}

.about-intro-title h2 {
    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(58px, 6vw, 95px);

    line-height: .9;

    letter-spacing: -.06em;
}

.about-intro-copy {
    max-width: 650px;
}

.about-intro-copy p {
    margin:
        0
        0
        25px;

    color: #697075;

    font-size: 16px;

    line-height: 1.8;
}

.about-intro-copy .about-lead {
    color: #252a2e;

    font-size: 21px;
}


/* HISTÓRIA */

.about-history {
    position: relative;

    overflow: hidden;

    padding:
        clamp(100px, 10vw, 155px)
        5vw;

    background: #f4f2ee;
}

.about-history-number {
    position: absolute;

    right: -3vw;
    bottom: -3vw;

    color:
        rgba(13,16,19,.045);

    font-size:
        clamp(260px, 35vw, 560px);

    font-weight: 900;

    line-height: .7;

    letter-spacing: -.1em;

    pointer-events: none;
}

.about-history-inner {
    position: relative;
    z-index: 2;

    max-width: 1450px;

    display: grid;

    grid-template-columns:
        1.1fr
        .9fr;

    align-items: center;

    gap:
        clamp(65px, 8vw, 125px);

    margin-inline: auto;
}

.about-history-photo {
    min-height: 680px;

    margin: 0;

    overflow: hidden;
}

.about-history-photo img {
    width: 100%;
    height: 100%;

    min-height: 680px;

    display: block;

    object-fit: cover;
}

.about-history-copy h2 {
    margin:
        0
        0
        35px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(50px, 5vw, 80px);

    line-height: .92;

    letter-spacing: -.055em;
}

.about-history-copy h2 span {
    display: block;
}

.about-history-copy p {
    margin:
        0
        0
        22px;

    color: #656c71;

    font-size: 16px;

    line-height: 1.75;
}

.about-history-copy .about-confirm {
    margin-top: 35px;

    padding-top: 20px;

    border-top:
        1px solid
        rgba(13,16,19,.15);

    color: #999;

    font-size: 12px;
}


/* VALORES */

.about-values {
    padding:
        clamp(100px, 10vw, 155px)
        5vw;

    background: #101418;

    color: #ffffff;
}

.about-values-heading {
    max-width: 1500px;

    margin:
        0
        auto
        85px;
}

.about-values-heading h2 {
    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(55px, 6vw, 95px);

    line-height: .9;

    letter-spacing: -.06em;
}

.about-values-heading h2 span {
    display: block;
}

.about-values-grid {
    max-width: 1500px;

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    margin-inline: auto;

    border-top:
        1px solid
        rgba(255,255,255,.17);
}

.about-values-grid article {
    min-height: 350px;

    padding:
        28px
        30px;

    border-right:
        1px solid
        rgba(255,255,255,.13);
}

.about-values-grid article:last-child {
    border-right: 0;
}

.about-values-grid article > span {
    color: #d71828;

    font-size: 11px;

    font-weight: 900;
}

.about-values-grid h3 {
    margin:
        100px
        0
        18px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 35px;
}

.about-values-grid p {
    max-width: 260px;

    margin: 0;

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

    font-size: 14px;

    line-height: 1.65;
}


/* TERRITÓRIO */

.about-territory {
    padding:
        clamp(100px, 10vw, 150px)
        5vw;

    background: #ffffff;
}

.about-territory-inner {
    max-width: 1350px;

    display: grid;

    grid-template-columns:
        1fr
        .8fr;

    gap:
        clamp(70px, 10vw, 150px);

    margin-inline: auto;
}

.about-territory h2 {
    max-width: 700px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(52px, 5vw, 82px);

    line-height: .92;

    letter-spacing: -.055em;
}

.about-territory h2 span {
    display: block;
}

.about-territory-copy p {
    margin:
        0
        0
        30px;

    color: #62696e;

    font-size: 17px;

    line-height: 1.75;
}

.about-territory-copy address {
    margin-bottom: 30px;

    color: #2c3236;

    font-style: normal;

    line-height: 1.7;
}

.about-territory-copy > a {
    display: inline-flex;

    align-items: center;

    gap: 30px;

    color: #c8101e;

    text-decoration: none;

    font-size: 20px;

    font-weight: 900;
}


/* FINAL */

.about-final {
    display: grid;

    grid-template-columns:
        1fr
        .65fr;

    background: #c8101e;

    color: #ffffff;
}

.about-final-copy,
.about-final-actions {
    padding:
        clamp(80px, 8vw, 125px)
        5vw;
}

.about-final .about-kicker {
    color:
        rgba(255,255,255,.65);
}

.about-final h2 {
    max-width: 750px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(52px, 5.5vw, 88px);

    line-height: .9;

    letter-spacing: -.06em;
}

.about-final h2 span {
    display: block;
}

.about-final-actions {
    display: flex;
    flex-direction: column;

    justify-content: center;

    gap: 14px;

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

.about-final-actions a {
    display: flex;

    justify-content: space-between;
    align-items: center;

    padding:
        20px
        22px;

    text-decoration: none;

    font-size: 13px;

    font-weight: 800;
}

.about-action-primary {
    background: #ffffff;

    color: #111519;
}

.about-action-secondary {
    border:
        1px solid
        rgba(255,255,255,.45);

    color: #ffffff;
}


/* RESPONSIVO */

@media (max-width: 950px) {

    .about-intro-inner,
    .about-history-inner,
    .about-territory-inner,
    .about-final {
        grid-template-columns: 1fr;
    }

    .about-values-grid {
        grid-template-columns:
            1fr
            1fr;
    }

    .about-values-grid article:nth-child(2) {
        border-right: 0;
    }

}


@media (max-width: 650px) {

    .about-hero {
        min-height: 650px;

        padding:
            135px
            22px
            75px;
    }

    .about-intro,
    .about-history,
    .about-values,
    .about-territory {
        padding:
            80px
            22px;
    }

    .about-history-photo,
    .about-history-photo img {
        min-height: 480px;
    }

    .about-values-grid {
        grid-template-columns: 1fr;
    }

    .about-values-grid article {
        min-height: 250px;

        border-right: 0;

        border-bottom:
            1px solid
            rgba(255,255,255,.13);
    }

    .about-values-grid h3 {
        margin-top: 60px;
    }

    .about-final-copy,
    .about-final-actions {
        padding:
            70px
            22px;
    }

}


/* ==================================================
   CONTACTOS V1
   ================================================== */

.contact-hero {
    padding:
        175px
        5vw
        95px;

    background: #101418;
    color: #ffffff;
}

.contact-hero-inner {
    max-width: 1500px;

    display: grid;
    grid-template-columns:
        1fr
        .6fr;

    gap:
        clamp(70px, 10vw, 150px);

    align-items: end;

    margin-inline: auto;
}

.contact-kicker {
    display: block;

    margin-bottom: 20px;

    color: #d71828;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .2em;
    text-transform: uppercase;
}

.contact-hero h1 {
    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(68px, 8vw, 125px);

    line-height: .84;

    letter-spacing: -.07em;
}

.contact-hero-copy > p {
    max-width: 580px;

    margin:
        35px
        0
        0;

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

    font-size: 18px;
    line-height: 1.7;
}


/* emergência */

.contact-hero-emergency {
    border-left:
        1px solid
        rgba(255,255,255,.15);

    padding-left:
        clamp(35px, 5vw, 75px);
}

.contact-hero-emergency > span {
    display: block;

    margin-bottom: 12px;

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

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .18em;
    text-transform: uppercase;
}

.contact-hero-emergency > a {
    display: block;

    color: #d71828;

    text-decoration: none;

    font-size:
        clamp(110px, 12vw, 190px);

    font-weight: 900;

    line-height: .75;

    letter-spacing: -.09em;
}

.contact-hero-emergency p {
    margin:
        18px
        0
        0;

    color:
        rgba(255,255,255,.5);
}


/* detalhes */

.contact-details {
    padding:
        clamp(90px, 9vw, 140px)
        5vw;

    background: #ffffff;
}

.contact-details-inner {
    max-width: 1500px;

    display: grid;
    grid-template-columns:
        repeat(4, 1fr);

    margin-inline: auto;

    border-top:
        1px solid
        rgba(13,16,19,.15);
}

.contact-details article {
    min-height: 300px;

    padding:
        30px
        28px;

    border-right:
        1px solid
        rgba(13,16,19,.12);
}

.contact-details article:last-child {
    border-right: 0;
}

.contact-label {
    display: block;

    margin-bottom: 75px;

    color: #c8101e;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .16em;
    text-transform: uppercase;
}

.contact-details h2 {
    margin:
        0
        0
        18px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 32px;

    line-height: 1;
}

.contact-details address,
.contact-details a {
    color: #676e73;

    font-size: 14px;
    font-style: normal;

    line-height: 1.7;

    text-decoration: none;
}


/* mapa */

.contact-map {
    display: grid;
    grid-template-columns:
        .65fr
        1.35fr;

    min-height: 680px;

    background: #f4f2ee;
}

.contact-map-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        clamp(70px, 8vw, 120px)
        5vw;
}

.contact-map-copy h2 {
    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(55px, 6vw, 95px);

    line-height: .88;

    letter-spacing: -.06em;
}

.contact-map-copy p {
    margin:
        30px
        0;

    color: #646b70;

    font-size: 16px;

    line-height: 1.75;
}

.contact-map-copy > a {
    display: inline-flex;

    align-items: center;

    gap: 30px;

    align-self: flex-start;

    color: #c8101e;

    text-decoration: none;

    font-size: 13px;

    font-weight: 800;
}

.contact-map-frame {
    min-height: 680px;
}

.contact-map-frame iframe {
    width: 100%;
    height: 100%;

    min-height: 680px;

    border: 0;

    display: block;
}


/* final */

.contact-final {
    display: grid;
    grid-template-columns:
        1fr
        .6fr;

    background: #c8101e;

    color: #ffffff;
}

.contact-final > div {
    padding:
        clamp(75px, 8vw, 120px)
        5vw;
}

.contact-final .contact-kicker {
    color:
        rgba(255,255,255,.65);
}

.contact-final h2 {
    max-width: 700px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(50px, 5.5vw, 88px);

    line-height: .9;

    letter-spacing: -.06em;
}

.contact-final h2 span {
    display: block;
}

.contact-final-actions {
    display: flex;
    flex-direction: column;
    justify-content: center;

    gap: 14px;

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

.contact-final-actions a {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding:
        20px
        22px;

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;
}

.contact-action-primary {
    background: #ffffff;

    color: #111519;
}

.contact-action-secondary {
    border:
        1px solid
        rgba(255,255,255,.45);

    color: #ffffff;
}


/* responsive */

@media (max-width: 1000px) {

    .contact-hero-inner,
    .contact-map,
    .contact-final {
        grid-template-columns: 1fr;
    }

    .contact-details-inner {
        grid-template-columns:
            1fr
            1fr;
    }

    .contact-hero-emergency {
        border-left: 0;

        border-top:
            1px solid
            rgba(255,255,255,.15);

        padding:
            45px
            0
            0;
    }

}


@media (max-width: 650px) {

    .contact-hero {
        padding:
            135px
            22px
            75px;
    }

    .contact-details {
        padding:
            80px
            22px;
    }

    .contact-details-inner {
        grid-template-columns: 1fr;
    }

    .contact-details article {
        min-height: 220px;

        border-right: 0;

        border-bottom:
            1px solid
            rgba(13,16,19,.12);
    }

    .contact-label {
        margin-bottom: 45px;
    }

    .contact-map-copy {
        padding:
            75px
            22px;
    }

    .contact-map-frame,
    .contact-map-frame iframe {
        min-height: 500px;
    }

    .contact-final > div {
        padding:
            70px
            22px;
    }

}


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

.error404 {
    position: relative;

    min-height: 100svh;

    display: flex;
    align-items: center;

    overflow: hidden;

    padding:
        170px
        5vw
        100px;

    background: #101418;
    color: #ffffff;
}


.error404-number {
    position: absolute;

    right: -3vw;
    top: 50%;

    transform:
        translateY(-52%);

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

    font-size:
        clamp(280px, 40vw, 680px);

    font-weight: 900;

    line-height: .7;

    letter-spacing: -.12em;

    user-select: none;
    pointer-events: none;
}


.error404-inner {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 1500px;

    display: grid;
    grid-template-columns:
        1fr
        .5fr;

    align-items: end;

    gap:
        clamp(70px, 10vw, 150px);

    margin-inline: auto;
}


.error404-kicker {
    display: block;

    margin-bottom: 20px;

    color: #d71828;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .2em;
    text-transform: uppercase;
}


.error404 h1 {
    max-width: 900px;

    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(62px, 7vw, 112px);

    line-height: .87;

    letter-spacing: -.065em;
}


.error404 h1 span {
    display: block;

    color: #d71828;
}


.error404-copy > p {
    max-width: 580px;

    margin:
        35px
        0
        32px;

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

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


.error404-home {
    display: inline-flex;
    align-items: center;

    gap: 28px;

    padding-bottom: 8px;

    border-bottom:
        1px solid
        rgba(255,255,255,.32);

    color: #ffffff;

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;
}


.error404-home span {
    transition:
        transform .2s ease;
}


.error404-home:hover span {
    transform:
        translateX(7px);
}


/* emergência */

.error404-emergency {
    padding-left:
        clamp(30px, 5vw, 70px);

    border-left:
        1px solid
        rgba(255,255,255,.14);
}


.error404-emergency > span {
    display: block;

    margin-bottom: 12px;

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

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .15em;
    text-transform: uppercase;
}


.error404-emergency > a {
    display: block;

    color: #d71828;

    text-decoration: none;

    font-size:
        clamp(110px, 12vw, 185px);

    font-weight: 900;

    line-height: .72;

    letter-spacing: -.09em;
}


.error404-emergency small {
    display: block;

    margin-top: 16px;

    color:
        rgba(255,255,255,.42);
}


/* responsive */

@media (max-width: 900px) {

    .error404-inner {
        grid-template-columns: 1fr;

        gap: 70px;
    }

    .error404-emergency {
        padding:
            45px
            0
            0;

        border-left: 0;

        border-top:
            1px solid
            rgba(255,255,255,.14);
    }

}


@media (max-width: 650px) {

    .error404 {
        align-items: flex-start;

        padding:
            135px
            22px
            80px;
    }

    .error404 h1 {
        font-size:
            clamp(54px, 15vw, 78px);
    }

    .error404-number {
        top: 40%;
        right: -18vw;
    }

    .error404-emergency > a {
        font-size: 105px;
    }

}


/* ==================================================
   ARTICLE NAVIGATION V1
   anterior / próxima notícia
   ================================================== */

.article-navigation {
    position: relative;

    padding:
        35px
        5vw
        clamp(85px, 8vw, 125px);

    background: #ffffff;
}


.article-navigation-inner {
    max-width: 1500px;

    display: grid;

    grid-template-columns:
        1fr
        1fr;

    margin-inline: auto;

    overflow: hidden;

    border:
        1px solid
        rgba(17,21,25,.11);

    border-radius: 18px;

    background: #f7f6f3;

    box-shadow:
        0 18px 60px
        rgba(13,16,19,.035);
}


/* cartões */

.article-nav-card {
    position: relative;

    min-height: 205px;

    display: grid;

    align-items: center;

    gap: 28px;

    padding:
        28px
        32px;

    overflow: hidden;

    color: #111519;

    text-decoration: none;

    transition:
        background .25s ease;
}


.article-nav-prev {
    grid-template-columns:
        70px
        112px
        minmax(0, 1fr);

    border-right:
        1px solid
        rgba(17,21,25,.11);
}


.article-nav-next {
    grid-template-columns:
        minmax(0, 1fr)
        112px
        70px;
}


/* grande seta */

.article-nav-big-arrow {
    position: relative;

    z-index: 1;

    display: flex;

    align-items: center;
    justify-content: center;

    color:
        rgba(17,21,25,.14);

    font-family:
        Arial,
        sans-serif;

    font-size: 118px;

    font-weight: 200;

    line-height: .65;

    transition:
        color .25s ease,
        transform .3s ease;
}


.article-nav-card:hover
.article-nav-big-arrow {
    color:
        rgba(200,16,30,.34);
}


.article-nav-prev:hover
.article-nav-big-arrow {
    transform:
        translateX(-8px);
}


.article-nav-next:hover
.article-nav-big-arrow {
    transform:
        translateX(8px);
}


/* thumbnail */

.article-nav-thumb {
    position: relative;

    z-index: 2;

    width: 112px;
    height: 112px;

    overflow: hidden;

    border-radius: 12px;

    background: #151a1e;
}


.article-nav-thumb img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition:
        transform .45s ease;
}


.article-nav-card:hover
.article-nav-thumb img {
    transform:
        scale(1.055);
}


.article-nav-thumb > span {
    width: 100%;
    height: 100%;

    display: grid;
    place-items: center;

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

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 30px;
}


/* texto */

.article-nav-copy {
    position: relative;

    z-index: 2;

    min-width: 0;
}


.article-nav-label {
    display: block;

    margin-bottom: 12px;

    color: #767c80;

    font-size: 9px;

    font-weight: 900;

    letter-spacing: .17em;

    text-transform: uppercase;
}


.article-nav-copy h3 {
    max-width: 390px;

    margin:
        0
        0
        14px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(21px, 1.8vw, 29px);

    line-height: 1.05;

    letter-spacing: -.025em;
}


.article-nav-copy time {
    color: #c8101e;

    font-size: 10px;

    font-weight: 900;

    letter-spacing: .08em;

    text-transform: uppercase;
}


/* próximo alinhado à direita */

.article-nav-next
.article-nav-copy {
    text-align: right;
}


.article-nav-next
.article-nav-copy h3 {
    margin-left: auto;
}


/* hover geral */

a.article-nav-card:hover {
    background: #f1efeb;
}


/* indisponível */

.article-nav-card.is-disabled {
    opacity: .32;
}


/* ==================================================
   TABLET
   ================================================== */

@media (max-width: 1050px) {

    .article-nav-prev {
        grid-template-columns:
            50px
            90px
            minmax(0, 1fr);
    }


    .article-nav-next {
        grid-template-columns:
            minmax(0, 1fr)
            90px
            50px;
    }


    .article-nav-thumb {
        width: 90px;
        height: 90px;
    }


    .article-nav-big-arrow {
        font-size: 88px;
    }

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 760px) {

    .article-navigation {
        padding:
            20px
            16px
            70px;
    }


    .article-navigation-inner {
        grid-template-columns: 1fr;
    }


    .article-nav-card {
        min-height: 155px;

        padding:
            22px
            18px;

        gap: 16px;
    }


    .article-nav-prev {
        grid-template-columns:
            38px
            78px
            minmax(0, 1fr);

        border-right: 0;

        border-bottom:
            1px solid
            rgba(17,21,25,.11);
    }


    .article-nav-next {
        grid-template-columns:
            minmax(0, 1fr)
            78px
            38px;
    }


    .article-nav-thumb {
        width: 78px;
        height: 78px;

        border-radius: 9px;
    }


    .article-nav-big-arrow {
        font-size: 66px;
    }


    .article-nav-copy h3 {
        font-size: 19px;
    }

}


/* telemóveis pequenos */

@media (max-width: 460px) {

    .article-nav-thumb {
        display: none;
    }


    .article-nav-prev {
        grid-template-columns:
            36px
            minmax(0, 1fr);
    }


    .article-nav-next {
        grid-template-columns:
            minmax(0, 1fr)
            36px;
    }

}


/* ==================================================
   POSTERS / IMAGENS VERTICAIS
   ================================================== */

/*
 * Uma imagem vertical fica centrada na coluna.
 * A caixa não fica artificialmente larga.
 */

@supports (aspect-ratio: 1 / 1) {

    .article-gallery-slide img {
        object-position: center;
    }

}


/* ==================================================
   TABLET
   ================================================== */

@media (max-width: 1000px) {

    .article-gallery-slide img {
        max-height: 760px;
    }

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 650px) {

    .article-gallery-slide img {
        max-width: 100%;
        max-height: 680px;

        border-radius: 12px;
    }


    .article-gallery-prev {
        left: 8px;
    }


    .article-gallery-next {
        right: 8px;
    }

}


/* ==================================================
   SETAS DA GALERIA
   ================================================== */

.article-gallery-arrow {
    position: absolute !important;

    z-index: 10;

    top: 50% !important;

    transform:
        translateY(-50%) !important;
}


.article-gallery-prev {
    left: 14px !important;
}


.article-gallery-next {
    right: 14px !important;
}


.article-gallery-dots {
    position: relative !important;

    left: auto !important;
    right: auto !important;
    bottom: auto !important;

    margin-top: 18px !important;
}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 650px) {

    .article-gallery-slide img {
        width: auto !important;
        height: auto !important;

        max-width: 100% !important;
        max-height: none !important;

        border-radius: 12px;
    }


    .article-gallery-prev {
        left: 7px !important;
    }


    .article-gallery-next {
        right: 7px !important;
    }

}


/* ==================================================
   GALERIA
   ================================================== */

.article-gallery {
    position: relative !important;

    width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    display: block !important;

    overflow: visible !important;

    background: transparent !important;
}


.article-gallery-stage {
    position: relative !important;

    width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    display: block !important;

    overflow: visible !important;
}


/*
 * Apenas a imagem ativa participa no fluxo.
 */

.article-gallery-slide {
    position: static !important;

    width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    margin: 0 !important;

    display: none !important;

    opacity: 1 !important;
    visibility: visible !important;

    transform: none !important;

    overflow: visible !important;
}


.article-gallery-slide.is-active {
    display: block !important;
}


/* ==================================================
   IMAGEM
   ================================================== */

/*
 * A imagem define a sua própria altura.
 *
 * Nenhum crop.
 * Nenhum aspect-ratio artificial.
 * Nenhum max-height.
 */

.article-gallery-slide img {
    position: static !important;

    width: 100% !important;
    height: auto !important;

    max-width: 100% !important;
    max-height: none !important;

    min-width: 0 !important;
    min-height: 0 !important;

    display: block !important;

    margin: 0 !important;

    object-fit: contain !important;
    object-position: center !important;

    aspect-ratio: auto !important;

    border-radius: 16px;

    box-shadow:
        0 18px 55px
        rgba(15,20,24,.08);
}


/*
 * Para cartazes verticais não queremos
 * que fiquem excessivamente largos.
 *
 * A coluna continua normal, mas o cartaz
 * fica centrado e com tamanho editorial.
 */

.article-gallery-slide img[src*="news10julho"] {
    width: auto !important;

    max-width: min(
        100%,
        620px
    ) !important;

    height: auto !important;

    margin:
        0
        auto !important;
}


/* ==================================================
   TEXTO
   ================================================== */

.article-content-copy {
    position: relative !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    align-self: start !important;
}


/* ==================================================
   NAVEGAÇÃO ENTRE NOTÍCIAS
   ================================================== */

/*
 * Garante espaço claro depois do conteúdo,
 * sem qualquer sobreposição com a galeria.
 */

.article-navigation {
    position: relative !important;

    z-index: 1;

    clear: both;

    margin-top:
        clamp(
            55px,
            6vw,
            95px
        ) !important;

    padding-top: 0 !important;
}


/* ==================================================
   SETAS DA GALERIA
   ================================================== */

.article-gallery-arrow {
    position: absolute !important;

    z-index: 10;

    top: 50% !important;

    transform:
        translateY(-50%) !important;
}


.article-gallery-prev {
    left: 14px !important;
}


.article-gallery-next {
    right: 14px !important;
}


.article-gallery-dots {
    position: relative !important;

    left: auto !important;
    right: auto !important;
    bottom: auto !important;

    margin:
        18px
        auto
        0 !important;
}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 760px) {

    .article-gallery-slide img,
    .article-gallery-slide img[src*="news10julho"] {
        width: 100% !important;

        max-width: 100% !important;

        height: auto !important;

        margin: 0 !important;

        border-radius: 12px;
    }


    .article-navigation {
        margin-top:
            55px !important;
    }

}


/* ==================================================
   ARTICLE GALLERY FINAL
   proporção real + altura natural
   ================================================== */

.article-content-section {
    padding:
        70px
        5vw
        90px;

    overflow: visible;
}


.article-content-grid {
    max-width: 1420px;

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(420px, .95fr);

    gap:
        clamp(50px, 6vw, 95px);

    align-items: start;

    margin-inline: auto;
}


/* Colunas */

.article-content-media,
.article-content-copy {
    position: static;

    min-width: 0;

    align-self: start;
}


/* ==================================================
   GALERIA
   ================================================== */

.article-gallery {
    position: relative;

    width: 100%;

    overflow: visible;

    background: transparent;

    border-radius: 0;

    box-shadow: none;
}


.article-gallery-stage {
    position: relative;

    width: 100%;

    /*
     * Fundamental:
     * deixa de existir aspect-ratio fixo.
     */

    aspect-ratio: auto;

    overflow: visible;
}


/* slides */

.article-gallery-slide {
    position: static;

    inset: auto;

    width: 100%;

    height: auto;

    margin: 0;

    display: none;

    opacity: 1;
    visibility: visible;

    transform: none;
}


.article-gallery-slide.is-active {
    display: block;
}


/* ==================================================
   IMAGENS
   ================================================== */

.article-gallery-slide img {
    position: static;

    width: auto;
    height: auto;

    max-width: 100%;
    max-height: none;

    display: block;

    margin-inline: auto;

    object-fit: contain;

    border-radius: 14px;

    box-shadow:
        0 22px 55px
        rgba(13,16,19,.09);
}


/*
 * Cartaz da colheita:
 * não ocupa desnecessariamente toda a largura
 * mas permanece integral.
 */

.article-gallery-slide img[src*="news10julho"] {
    width: auto;

    max-width: min(
        100%,
        600px
    );

    height: auto;
}


/* legenda */

.article-gallery-slide figcaption {
    position: static;

    width: auto;
    max-width: 700px;

    margin:
        14px
        auto
        0;

    padding: 0;

    background: transparent;

    color: #72787c;

    font-size: 12px;
    line-height: 1.5;

    backdrop-filter: none;
}


/* ==================================================
   CONTROLOS DA GALERIA
   ================================================== */

.article-gallery-arrow {
    position: absolute;

    z-index: 10;

    top: 50%;

    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    transform:
        translateY(-50%);

    border:
        1px solid
        rgba(255,255,255,.45);

    border-radius: 50%;

    background:
        rgba(10,13,16,.58);

    color: #ffffff;

    cursor: pointer;
}


.article-gallery-prev {
    left: 15px;
}


.article-gallery-next {
    right: 15px;
}


.article-gallery-dots {
    position: relative;

    left: auto;
    bottom: auto;

    display: flex;
    justify-content: center;

    gap: 7px;

    margin-top: 18px;

    transform: none;
}


/* ==================================================
   NAVEGAÇÃO ENTRE NOTÍCIAS
   ================================================== */

.article-navigation {
    position: relative;

    clear: both;

    margin: 0;

    padding:
        0
        5vw
        clamp(85px, 8vw, 125px);

    background: #ffffff;
}


/*
 * Espaço entre o final real do conteúdo
 * e o navegador anterior/próxima.
 */

.article-content-section + .article-navigation {
    padding-top:
        clamp(35px, 4vw, 65px);
}


/* ==================================================
   TABLET
   ================================================== */

@media (max-width: 1000px) {

    .article-content-grid {
        grid-template-columns: 1fr;
    }

    .article-content-copy {
        max-width: 760px;

        margin-inline: auto;
    }

    .article-content-media {
        width: 100%;
    }

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 650px) {

    .article-content-section {
        padding:
            45px
            20px
            65px;
    }

    .article-gallery-slide img,
    .article-gallery-slide img[src*="news10julho"] {
        width: auto;

        max-width: 100%;

        height: auto;

        border-radius: 10px;
    }

    .article-gallery-prev {
        left: 8px;
    }

    .article-gallery-next {
        right: 8px;
    }

}


/* ==================================================
   ARTICLE CONTENT V5
   alinhamento imagem / título / texto
   ================================================== */


/*
 * Reduz o espaço entre o hero e o conteúdo.
 * Mantém imagem e coluna de texto alinhadas no topo.
 */

.article-content-section {
    padding-top: 42px !important;
}


.article-content-grid {
    align-items: start !important;
}


.article-content-media,
.article-content-copy {
    padding-top: 0 !important;
    margin-top: 0 !important;
}


/* título dentro do corpo da notícia */

.article-content-title {
    max-width: 720px;

    margin:
        0
        0
        24px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            34px,
            3vw,
            48px
        );

    font-weight: 700;

    line-height: 1.02;

    letter-spacing: -.04em;

    color: #111519;
}


/*
 * O primeiro parágrafo fica próximo do título,
 * sem criar espaço excessivo.
 */

.article-content-copy .article-body {
    margin-top: 0 !important;
}


.article-content-copy .article-body p:first-child {
    margin-top: 0 !important;
}


/* tablet */

@media (max-width: 1000px) {

    .article-content-section {
        padding-top: 36px !important;
    }


    .article-content-title {
        margin-bottom: 20px;

        font-size:
            clamp(
                32px,
                5vw,
                44px
            );
    }

}


/* telemóvel */

@media (max-width: 650px) {

    .article-content-section {
        padding-top: 28px !important;
    }


    .article-content-title {
        margin-bottom: 18px;

        font-size:
            clamp(
                30px,
                9vw,
                40px
            );

        line-height: 1.04;
    }

}



/* ==================================================
   ARTICLE ALIGNMENT V1
   alinhar topo da imagem com título da notícia
   ================================================== */


/*
 * Mantemos o espaçamento geral da secção.
 * A imagem sobe ligeiramente dentro da coluna esquerda
 * para ficar visualmente alinhada com o título.
 */

.article-content-grid {
    align-items: start !important;
}


.article-content-media {
    position: relative !important;

    transform:
        translateY(-18px);

    padding-top: 0 !important;
}


.article-content-copy {
    padding-top: 0 !important;
}


.article-content-title {
    margin-top: 0 !important;
}


/* tablet / mobile:
   removemos o deslocamento porque as colunas
   passam a ficar empilhadas */

@media (max-width: 1000px) {

    .article-content-media {
        transform: none;
    }

}




/* ==================================================
   ARTICLE ALIGNMENT FIX V2
   neutralizar antigos top:110px
   ================================================== */

/*
 * O CSS original tinha:
 *
 * .article-content-media {
 *     position: sticky;
 *     top: 110px;
 * }
 *
 * e:
 *
 * .article-gallery {
 *     position: sticky;
 *     top: 110px;
 * }
 *
 * Ao mudar posteriormente para position:relative,
 * o top continuou ativo e deslocava a imagem.
 */


.article-content-media {
    position: relative !important;

    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;

    transform: none !important;

    margin-top: 0 !important;
    padding-top: 0 !important;

    align-self: start !important;
}


.article-gallery {
    position: relative !important;

    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;

    margin-top: 0 !important;

    transform: none !important;
}


.article-gallery-stage {
    margin-top: 0 !important;
}


.article-content-copy {
    margin-top: 0 !important;
    padding-top: 0 !important;

    align-self: start !important;
}


.article-content-title {
    margin-top: 0 !important;
}


/*
 * As duas colunas começam exatamente
 * na mesma linha da grelha.
 */

.article-content-grid {
    align-items: start !important;
}


/* mobile / tablet */

@media (max-width: 1000px) {

    .article-content-media,
    .article-gallery {
        top: auto !important;
        transform: none !important;
    }

}



/* ==================================================
   ARTICLE SPACING V2
   espaço entre hero e conteúdo da notícia
   ================================================== */

.article-content-section {
    padding-top: 72px !important;
}


/* tablet */

@media (max-width: 1000px) {

    .article-content-section {
        padding-top: 58px !important;
    }

}


/* mobile */

@media (max-width: 650px) {

    .article-content-section {
        padding-top: 42px !important;
    }

}

