.thank-you-donation {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(200px, 260px);
    align-items: center;
    gap: 28px;
    margin-block: 36px;
    padding: clamp(20px, 4vw, 32px);
    border-radius: 20px;
    background: #fff;
    color: var(--ink);
    text-align: left;
}

.thank-you-donation h2 {
    color: var(--blue-deep);
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    line-height: 1.1;
}

.thank-you-donation p:not(.eyebrow) {
    margin-top: 16px;
    font-size: .95rem;
    line-height: 1.6;
}

.thank-you-donation .button {
    margin-top: 20px;
}

.thank-you-donation__qr {
    display: block;
    width: 100%;
    max-width: 300px;
    height: auto;
    margin-inline: auto;
    padding: 12px;
    background: #fff;
}

@media (max-width: 640px) {
    .thank-you-donation {
        grid-template-columns: 1fr;
    }
}

:root {
    --container-wide: 1580px;
    --container: 1380px;
    --container-reading: 760px;
    --container-narrow: 620px;
    --space-xs: 8px;
    --space-sm: 16px;
    --space-md: clamp(24px, 2.2vw, 36px);
    --space-lg: clamp(40px, 4vw, 64px);
    --space-xl: clamp(56px, 6vw, 96px);
    --space-section: clamp(76px, 8vw, 128px);
    --radius-card: 20px;
    --radius-feature: 28px;
}

body {
    font-size: clamp(.95rem, .25vw + .88rem, 1.08rem);
}

.container {
    width: min(100%, calc(var(--container) + (var(--gutter) * 2)));
}

.section {
    padding-block: var(--space-section);
}

.section-heading {
    max-width: 820px;
    margin-bottom: var(--space-lg);
}

.section-heading h2,
.weekly-intro h2,
.timeline__intro h2,
.submit-story__intro h2 {
    font-size: clamp(3rem, 5.3vw, 5.35rem);
    line-height: .92;
}

.eyebrow {
    margin-bottom: 14px;
    font-size: clamp(.68rem, .15vw + .65rem, .78rem);
}

.button {
    min-height: 46px;
    border-radius: 12px;
    padding: 12px 20px;
    font-size: clamp(.82rem, .2vw + .8rem, .94rem);
    box-shadow: none;
}

.button--large {
    min-height: 52px;
    padding-inline: 25px;
    font-size: clamp(.9rem, .3vw + .86rem, 1.05rem);
}

.button--xl {
    min-height: 56px;
    padding-inline: 28px;
    font-size: clamp(.95rem, .35vw + .9rem, 1.12rem);
}

.button--header {
    min-height: 42px;
    border-radius: 10px;
    padding-inline: 16px;
    font-size: .76rem;
}

.button--accent {
    box-shadow: 0 8px 20px rgba(255, 183, 25, .12);
}

/* Header: presença discreta, navegação respirada e estado sticky sólido. */
.site-header__inner {
    min-height: 78px;
    gap: clamp(20px, 2.2vw, 34px);
}

.site-nav {
    gap: clamp(13px, 1.15vw, 22px);
}

.site-nav > a:not(.button) {
    font-size: clamp(.68rem, .15vw + .65rem, .78rem);
    letter-spacing: .065em;
}

.site-header.is-sticky {
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    background: rgba(0, 3, 84, .96);
    box-shadow: 0 8px 24px rgba(0, 0, 30, .14);
    backdrop-filter: blur(8px);
}

.brand__name { font-size: 22px; }
.brand__sub { letter-spacing: .25em; }

/* Hero: escala editorial controlada para revelar o início do carrossel. */
.hero {
    min-height: 100svh;
}

.hero__overlay {
    background:
        radial-gradient(ellipse at 72% 40%, transparent 0 22%, rgba(0, 3, 84, .18) 62%, rgba(0, 3, 84, .48) 100%),
        linear-gradient(90deg, rgba(0, 3, 84, .96) 0%, rgba(0, 3, 84, .78) 43%, rgba(0, 3, 84, .26) 82%),
        linear-gradient(180deg, rgba(0, 3, 84, .12), rgba(0, 3, 84, .45));
}

.hero::after {
    height: clamp(140px, 18vh, 210px);
    background: linear-gradient(180deg, transparent, rgba(0, 3, 84, .82) 72%, var(--blue-deep));
}

.hero__content {
    display: grid;
    min-height: 100svh;
    place-items: center;
    align-items: center;
    justify-content: center;
    padding-top: clamp(96px, 13svh, 132px);
    padding-bottom: clamp(110px, 15svh, 150px);
}

.hero__copy {
    width: min(80vw, 1000px);
    max-width: 1000px;
    margin-inline: auto;
    text-align: center;
}

.hero__copy .eyebrow {
    justify-content: center;
}

.hero h1 {
    max-width: 13.5ch;
    margin-inline: auto;
    font-size: clamp(3.5rem, 6.5vw, 6.5rem);
    line-height: .88;
    letter-spacing: -.042em;
}

.hero__text {
    max-width: 56ch;
    margin-inline: auto;
    margin-top: clamp(20px, 2.4vw, 28px);
    gap: 7px;
    font-size: clamp(.94rem, .35vw + .86rem, 1.08rem);
    line-height: 1.55;
}

.hero__actions {
    justify-content: center;
    margin-top: clamp(22px, 2.6vw, 30px);
}

.hero__microcopy {
    margin-top: clamp(18px, 2vw, 24px);
    font-size: .7rem;
}

.hero__scroll {
    position: absolute;
    z-index: 6;
    bottom: clamp(104px, 13svh, 126px);
    left: 50%;
    display: grid;
    width: 32px;
    height: 48px;
    transform: translateX(-50%);
    place-items: start center;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 18px;
}

.hero__scroll span {
    width: 4px;
    height: 8px;
    margin-top: 9px;
    border-radius: 4px;
    background: var(--yellow-accent);
    animation: hero-scroll-cue 1.8s var(--ease-out) infinite;
}

@keyframes hero-scroll-cue {
    0%, 100% { transform: translateY(0); opacity: .55; }
    50% { transform: translateY(17px); opacity: 1; }
}

.hero__stars {
    top: 22%;
    right: 8%;
    opacity: .7;
}

/* Destaques: 2,5–3 cards em notebooks, sem escala excessiva. */
.featured-overlap {
    margin-top: -92px;
    padding-bottom: var(--space-xl);
    background: linear-gradient(180deg, transparent 0 92px, var(--blue-royal) 92px 100%);
}

.section-kicker-row {
    min-height: 70px;
}

.featured-overlap .section-kicker-row {
    padding-bottom: clamp(24px, 3vw, 42px);
}

.section-mini-title {
    font-size: clamp(1.9rem, 2.7vw, 2.8rem);
}

.slider-controls button {
    width: 44px;
    height: 44px;
    background: rgba(0, 3, 84, .22);
    font-size: 18px;
}

.featured-slider {
    gap: clamp(16px, 1.65vw, 24px);
    padding-top: 12px;
}

.feature-card {
    width: clamp(300px, 27vw, 410px);
    height: auto;
    aspect-ratio: 4 / 5;
    border-radius: var(--radius-feature) var(--radius-feature) 8px var(--radius-feature);
    box-shadow: 0 18px 44px rgba(0, 0, 40, .2);
}

.feature-card__content {
    padding: clamp(22px, 2.2vw, 30px);
}

.feature-card__badge {
    margin-bottom: 8px;
    padding: 5px 9px;
    font-size: .62rem;
}

.feature-card h3 {
    display: -webkit-box;
    max-width: 13ch;
    margin-top: 6px;
    overflow: hidden;
    font-size: clamp(1.8rem, 2.55vw, 2.65rem);
    line-height: .94;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.feature-card__content > p:not(.feature-card__category) {
    display: -webkit-box;
    max-width: 40ch;
    margin: 10px 0 14px;
    overflow: hidden;
    font-size: .82rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* Dupla editorial: assimetria menor e leitura mais sofisticada. */
.nation-stories .section-heading {
    margin-bottom: clamp(30px, 3.5vw, 46px);
}

.nation-stories {
    padding-block: clamp(60px, 6vw, 88px);
}

.nation-stories .container {
    width: min(100%, calc(1160px + (var(--gutter) * 2)));
}

.nation-stories .section-heading h2 {
    font-size: clamp(2.8rem, 4.4vw, 4.5rem);
}

.editorial-pair {
    gap: clamp(20px, 2.7vw, 38px);
}

.editorial-card {
    min-width: 0;
    border-radius: var(--radius-feature) 8px var(--radius-feature) 8px;
    box-shadow: 0 14px 42px rgba(0, 3, 84, .12);
}

.editorial-card--offset {
    margin-top: clamp(16px, 2vw, 28px);
    border-radius: 8px var(--radius-feature) 8px var(--radius-feature);
}

.editorial-card__media {
    aspect-ratio: 16 / 8.3;
}

.editorial-card__media img {
    object-position: center top;
}

.editorial-card__body {
    padding: clamp(22px, 2.4vw, 34px);
}

.editorial-card h3 {
    font-size: clamp(2.25rem, 3.3vw, 3.4rem);
}

.editorial-card h4 {
    max-width: 28ch;
    margin-top: 9px;
    font-size: clamp(1.08rem, 1.35vw, 1.35rem);
}

.editorial-card__body > p:not(.eyebrow) {
    max-width: 48ch;
    display: block;
    margin: 14px 0 19px;
    font-size: clamp(.86rem, .2vw + .83rem, .96rem);
    line-height: 1.55;
}

.editorial-card__body > .editorial-card__number {
    margin: 0 0 14px;
    color: var(--blue-primary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.editorial-card .eyebrow {
    margin-bottom: 10px;
}

.editorial-card .button {
    min-height: 44px;
    padding: 11px 18px;
    font-size: .8rem;
}

/* História da semana como capa editorial horizontal. */
.weekly-intro {
    display: flex;
    width: min(90vw, 1280px);
    max-width: 1280px;
    flex-direction: column;
    align-items: center;
    margin-inline: auto;
    margin-bottom: clamp(36px, 4vw, 52px);
    text-align: center;
}

.weekly-intro .eyebrow {
    justify-content: center;
}

.weekly-intro h2 {
    width: 100%;
    max-width: 16ch;
    margin-inline: auto;
    text-wrap: balance;
}

.weekly-intro > p:last-child {
    max-width: 620px;
    margin: clamp(22px, 2.5vw, 32px) auto 0;
    text-wrap: pretty;
}

.weekly-feature {
    min-height: 0;
    grid-template-columns: minmax(0, 1.38fr) minmax(340px, .92fr);
    border-radius: 30px 8px 30px 8px;
    box-shadow: 0 18px 54px rgba(0, 3, 84, .15);
}

.weekly-feature__media {
    min-height: 0;
    aspect-ratio: 1.42 / 1;
}

.weekly-feature__content {
    padding: clamp(34px, 4vw, 58px);
}

.weekly-feature h3 {
    max-width: 12ch;
    margin: 12px 0 18px;
    font-size: clamp(2.25rem, 3.6vw, 4rem);
}

.weekly-feature blockquote {
    margin: 22px 0;
    font-size: clamp(1.15rem, 1.5vw, 1.55rem);
}

.weekly-feature__number {
    bottom: -24px;
    font-size: clamp(8rem, 15vw, 14rem);
}

/* Linha do tempo: 34/66 e cards de coleção mais compactos. */
.timeline__line { left: 31%; }

.timeline__layout {
    grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr);
    gap: clamp(42px, 5vw, 72px);
}

.timeline__carousel {
    min-width: 0;
}

.timeline__controls {
    justify-content: flex-end;
    margin-top: clamp(20px, 2.2vw, 30px);
    padding-right: 2px;
}

.timeline__intro h2 {
    max-width: 8ch;
}

.timeline-card {
    width: clamp(285px, 23vw, 360px);
    min-height: 0;
    aspect-ratio: .72;
    border-radius: 24px 24px 7px 24px;
    box-shadow: 0 14px 38px rgba(0, 0, 35, .2);
}

.timeline-card__media {
    height: 44%;
    border-radius: 24px 24px 24px 0;
}

.timeline-card__media img {
    filter: saturate(.72) contrast(1.08) brightness(.82);
}

.timeline-card__media::after {
    background:
        linear-gradient(180deg, rgba(0, 23, 99, .08), rgba(0, 3, 84, .74)),
        linear-gradient(90deg, rgba(7, 62, 174, .2), transparent);
}

.timeline-card:hover .timeline-card__media img {
    filter: saturate(.88) contrast(1.06) brightness(.9);
}

.timeline__controls button {
    border-color: rgba(255, 255, 255, .34);
    background: rgba(255, 255, 255, .05);
}

.timeline__controls button:hover:not(:disabled) {
    border-color: var(--yellow-accent);
    background: var(--yellow-accent);
    color: var(--blue-deep);
}

.timeline__controls button:disabled {
    border-color: rgba(255, 255, 255, .14);
}

.timeline-card__year {
    right: 18px;
    bottom: 12px;
    font-size: clamp(1.8rem, 2.6vw, 2.6rem);
}

.timeline-card__body {
    padding: clamp(22px, 2vw, 27px);
}

.timeline-card h3 {
    margin: 7px 0 12px;
    font-size: clamp(1.8rem, 2.3vw, 2.35rem);
}

.timeline-card__description {
    min-height: 0;
    font-size: .82rem;
}

.timeline-card .text-link { margin-top: 18px; }

/* Memórias: grid editorial assimétrico, sem aparência de dashboard. */
.memory-grid {
    grid-template-columns: 1.15fr .85fr 1fr;
    grid-template-rows: repeat(2, minmax(185px, auto));
    border: 0;
    border-radius: 0;
    background: transparent;
    gap: 12px;
}

.memory-tile {
    min-height: 0;
    border: 1px solid var(--border-dark);
    border-radius: 4px 20px 4px 20px;
    padding: clamp(24px, 2.8vw, 38px);
}

.memory-tile:nth-child(1),
.memory-tile:nth-child(5) {
    background: var(--blue-primary);
    color: var(--white);
}

.memory-tile:nth-child(2),
.memory-tile:nth-child(6) {
    transform: translateY(18px);
}

.memory-tile p {
    max-width: 18ch;
    margin-top: clamp(28px, 3vw, 42px);
    font-size: clamp(1.45rem, 2vw, 2rem);
}

.memory-tile:hover { transform: translateY(-3px); }
.memory-tile:nth-child(2):hover,
.memory-tile:nth-child(6):hover { transform: translateY(15px); }

/* Manifesto: impacto por ritmo e contraste, não por gigantismo. */
.manifesto,
.final-cta,
.thank-you {
    min-height: clamp(650px, 88svh, 900px);
}

.thank-you {
    justify-content: center;
}

.thank-you__content {
    display: flex;
    width: 100%;
    max-width: none;
    flex-direction: column;
    align-items: center;
    padding-block: clamp(130px, 14vh, 170px) clamp(80px, 10vh, 120px);
    text-align: center;
}

.thank-you__content .eyebrow {
    justify-content: center;
}

.thank-you h1 {
    width: 80vw;
    max-width: 1280px;
    margin-inline: auto;
    font-size: clamp(3.5rem, 7vw, 7rem);
    line-height: .9;
    text-wrap: balance;
}

.thank-you__lead,
.thank-you__content > p:not(.eyebrow, .thank-you__lead) {
    margin-inline: auto;
}

.thank-you__lead {
    max-width: 720px;
    font-size: clamp(1.15rem, 1.65vw, 1.55rem);
}

.thank-you__content > p:not(.eyebrow, .thank-you__lead) {
    max-width: 580px;
}

.thank-you__mark {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
}

.manifesto__background {
    background: url("../img/hero/manifesto-familia-cruzeiro.png") center / cover no-repeat;
}

.manifesto__overlay {
    background: linear-gradient(180deg, rgba(0, 3, 84, .78), rgba(0, 3, 84, .88));
}

.manifesto__content {
    padding-block: var(--space-xl);
}

.manifesto h2 {
    color: #fff;
    font-size: clamp(4.1rem, 8vw, 8.2rem);
}

.manifesto__words {
    max-width: 980px;
    gap: 6px 18px;
    margin: clamp(30px, 4vw, 44px) auto;
}

.manifesto__words span {
    font-size: clamp(1.35rem, 2.45vw, 2.55rem);
}

.manifesto__words span:nth-child(3n + 1) { font-weight: 800; }
.manifesto__words span:nth-child(4n) { font-size: clamp(1.65rem, 3vw, 3.1rem); }

.manifesto__final {
    font-size: clamp(1.35rem, 2.2vw, 2.25rem);
}

/* Passos: composição aberta, conectada e menos “card de produto”. */
.steps { gap: clamp(18px, 2.4vw, 32px); }

.steps::before {
    top: 51px;
    right: 9%;
    left: 9%;
    background: rgba(10, 50, 139, .22);
}

.step {
    min-height: 275px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: clamp(20px, 2.4vw, 32px) clamp(10px, 1.5vw, 22px);
}

.step:hover { box-shadow: none; }

.step__number {
    display: inline-block;
    color: var(--blue-primary);
    font-size: clamp(2.5rem, 3.5vw, 3.5rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.03em;
}

.step__icon {
    width: 58px;
    height: 58px;
    margin-top: 14px;
    border: 7px solid var(--surface-light);
    border-radius: 50%;
    font-size: 21px;
}

.step h3 {
    margin-top: 22px;
    font-size: clamp(1.75rem, 2.2vw, 2.25rem);
}

.step p { max-width: 26ch; }

/* Conversão: mais largura útil para campos e card menos inflado. */
.submit-story {
    overflow: clip;
}

.submit-story__layout {
    grid-template-columns: minmax(290px, .7fr) minmax(560px, 1fr);
    align-items: start;
    gap: clamp(48px, 6vw, 88px);
}

@media (min-width: 1025px) {
    .submit-story__intro {
        position: sticky;
        top: clamp(96px, 12svh, 132px);
        align-self: start;
    }
}

.submit-story__intro h2 {
    max-width: 10ch;
    font-size: clamp(3rem, 5.1vw, 5rem);
}

.submit-story__intro > p:not(.eyebrow) { max-width: 48ch; }

.story-form-card {
    border-radius: 26px 7px 26px 7px;
    padding: clamp(26px, 3vw, 44px);
    box-shadow: 0 18px 52px rgba(0, 0, 35, .22);
}

.form-grid { gap: 18px; }
.field label { font-size: clamp(.8rem, .18vw + .78rem, .9rem); }
.field input,
.field select { min-height: 52px; }
.field input,
.field textarea,
.field select { font-size: clamp(.9rem, .15vw + .87rem, 1rem); }
.form-microcopy { font-size: .76rem; }

/* Fechamento com largura editorial e footer compacto. */
.final-cta {
    overflow: hidden;
    isolation: isolate;
    min-height: clamp(650px, 82svh, 820px);
    justify-content: center;
}

.final-cta__background {
    z-index: 0;
    background:
        linear-gradient(rgba(0, 3, 84, .18), rgba(0, 3, 84, .18)),
        url("../img/titulos/1976.webp") center 42% / cover no-repeat;
    transform: scale(1.02);
}

.final-cta__overlay {
    z-index: 1;
    background:
        radial-gradient(circle at 50% 34%, rgba(21, 155, 238, .13), transparent 38%),
        linear-gradient(180deg, rgba(0, 3, 62, .64), rgba(0, 3, 84, .88));
}

.final-cta .giant-star { display: none; }

.final-cta__content {
    display: flex;
    width: min(90vw, 1500px);
    max-width: none;
    flex-direction: column;
    align-items: center;
    padding-block: var(--space-xl);
    text-align: center;
}

.final-cta__content .eyebrow { justify-content: center; }

.final-cta h2 {
    color: #fff;
    width: 100%;
    max-width: 18ch;
    margin-inline: auto;
    font-size: clamp(3.4rem, 5.8vw, 6.5rem);
    line-height: .91;
    text-wrap: balance;
}
.final-cta__content > p:not(.eyebrow) {
    max-width: 58ch;
    margin: 24px auto 28px;
    font-size: clamp(.95rem, .3vw + .9rem, 1.08rem);
}

.footer { padding-top: clamp(58px, 6vw, 84px); }
.footer__grid { gap: clamp(30px, 5vw, 70px); padding-bottom: clamp(46px, 5vw, 66px); }

@media (max-width: 1359px) {
    .hero__copy { width: min(80vw, 960px); }
    .hero h1 { font-size: clamp(3.6rem, 7vw, 5.75rem); }
    .feature-card { width: clamp(300px, 30vw, 380px); }
}

@media (max-width: 1024px) {
    .hero { min-height: 100svh; }
    .hero__content { min-height: 100svh; align-items: center; justify-content: center; padding-block: clamp(100px, 14svh, 128px); }
    .hero__copy { width: min(80vw, 820px); }
    .hero h1 { max-width: 12ch; }
    .featured-overlap { margin-top: -76px; background: linear-gradient(180deg, transparent 0 76px, var(--blue-royal) 76px 100%); }
    .weekly-feature { grid-template-columns: 1fr; }
    .weekly-feature__media { max-height: 520px; aspect-ratio: 16 / 10; }
    .timeline__layout { grid-template-columns: 1fr; }
    .timeline__intro h2 { max-width: 10ch; }
    .memory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
    .memory-tile:nth-child(2), .memory-tile:nth-child(6) { transform: none; }
    .memory-tile:nth-child(2):hover, .memory-tile:nth-child(6):hover { transform: translateY(-3px); }
    .submit-story__layout { grid-template-columns: 1fr; }
    .submit-story__intro { max-width: 680px; }
}

@media (max-width: 767px) {
    :root { --space-section: clamp(68px, 18vw, 88px); }
    .section-heading h2,
    .weekly-intro h2,
    .timeline__intro h2,
    .submit-story__intro h2 { font-size: clamp(2.8rem, 13vw, 4.1rem); }
    .hero { min-height: 100svh; }
    .hero__content { min-height: 100svh; align-items: center; justify-content: center; padding-top: clamp(104px, 15svh, 124px); padding-bottom: clamp(106px, 14svh, 120px); }
    .hero__copy { width: 80vw; }
    .hero h1 { max-width: 11ch; font-size: clamp(3.25rem, 15.5vw, 4.75rem); }
    .hero__text { max-width: 42ch; margin-top: 20px; }
    .hero__actions { margin-top: 22px; }
    .hero__microcopy { margin-top: 18px; }
    .hero__scroll { bottom: 70px; width: 28px; height: 42px; }
    .hero__scroll span { margin-top: 7px; }
    .featured-overlap { margin-top: -64px; background: linear-gradient(180deg, transparent 0 64px, var(--blue-royal) 64px 100%); }
    .feature-card { width: min(84vw, 360px); max-width: calc(100vw - 40px); height: auto; }
    .editorial-pair { grid-template-columns: 1fr; }
    .editorial-card--offset { margin-top: 0; }
    .nation-stories { padding-block: 68px; }
    .nation-stories .section-heading h2 { font-size: clamp(2.75rem, 13vw, 3.8rem); }
    .editorial-card__media { aspect-ratio: 16 / 9; }
    .weekly-intro { grid-template-columns: 1fr; }
    .weekly-feature__media { min-height: 300px; aspect-ratio: 4 / 3; }
    .weekly-feature h3 { font-size: clamp(2.3rem, 11vw, 3.35rem); }
    .timeline-card { width: min(84vw, 340px); max-width: calc(100vw - 40px); }
    .memory-grid { grid-template-columns: 1fr; gap: 10px; }
    .memory-tile { min-height: 165px; }
    .manifesto, .final-cta, .thank-you { min-height: auto; }
    .manifesto__content { padding-block: 92px; }
    .manifesto h2 { font-size: clamp(3.8rem, 18vw, 5.7rem); }
    .manifesto__words { display: flex; gap: 7px 12px; }
    .manifesto__words span { font-size: clamp(1.25rem, 7vw, 1.8rem); }
    .manifesto__words span:nth-child(4n) { font-size: clamp(1.45rem, 8vw, 2.1rem); }
    .step { min-height: auto; border-bottom: 1px solid var(--border-dark); padding: 24px 8px 30px; }
    .step:last-child { border-bottom: 0; }
    .story-form-card { border-radius: 22px 6px 22px 6px; padding: 24px 18px; }
    .final-cta { min-height: 640px; }
    .final-cta h2 { max-width: 12ch; font-size: clamp(2.7rem, 11vw, 4rem); }
}

@media (max-width: 430px) {
    .hero h1 { font-size: clamp(3rem, 15vw, 4rem); }
    .hero__text p:first-child br { display: none; }
    .section-mini-title { font-size: 1.8rem; }
    .feature-card, .timeline-card { width: calc(100vw - 54px); }
}

@media (min-width: 1600px) {
    .hero__copy { width: min(60%, 840px); }
    .feature-card { width: 400px; }
    .timeline-card { width: 350px; }
}

/* Hero cinematográfica v2 */
.site-header__inner {
    grid-template-columns: minmax(180px, 1fr) auto;
    justify-content: space-between;
}

.site-header .brand {
    justify-self: start;
    align-items: flex-start;
    text-align: left;
}

.site-nav--primary {
    justify-self: end;
    justify-content: flex-end;
}

.site-header .button--accent {
    border-color: var(--yellow-accent);
    background: var(--yellow-accent);
    color: var(--blue-deep);
    box-shadow: none;
}

.site-header .button--accent:hover {
    border-color: var(--yellow-accent-hover);
    background: var(--yellow-accent-hover);
}

.hero {
    isolation: isolate;
    min-height: 100svh;
    background: #000225;
}

.hero::before {
    position: absolute;
    z-index: 3;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
    content: "";
    opacity: .045;
    pointer-events: none;
    mix-blend-mode: soft-light;
}

.hero::after {
    z-index: 4;
    height: 32%;
    background: linear-gradient(180deg, transparent, rgba(0, 2, 42, .68) 70%, #000225);
}

.hero__media {
    overflow: hidden;
    background: #000225;
}

.hero__video {
    transform: scale(1.01);
    object-position: center 42%;
    filter: saturate(.74) contrast(1.08) brightness(.72);
    will-change: transform;
}

.hero__overlay {
    background:
        radial-gradient(circle at 50% 24%, rgba(90, 181, 255, .16), transparent 26%),
        radial-gradient(ellipse at center, transparent 18%, rgba(0, 3, 54, .3) 62%, rgba(0, 2, 37, .8) 100%),
        linear-gradient(180deg, rgba(0, 3, 49, .32), rgba(0, 3, 68, .62));
}

.hero__watermark {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    width: clamp(300px, 40vw, 660px);
    transform: translate(-50%, -48%);
    opacity: .035;
    pointer-events: none;
    filter: grayscale(1) brightness(2.2);
    mix-blend-mode: screen;
    will-change: transform;
}

.hero__content {
    z-index: 6;
    min-height: 100svh;
    padding-top: clamp(112px, 15svh, 150px);
    padding-bottom: clamp(94px, 12svh, 126px);
}

.hero__copy {
    width: min(88vw, 1000px);
    max-width: 1000px;
}

.hero__copy .hero__eyebrow {
    display: flex;
    margin-bottom: clamp(20px, 2.5vw, 30px);
    color: rgba(255, 255, 255, .78);
    font-family: var(--font-body);
    font-size: clamp(.65rem, .22vw + .61rem, .75rem);
    font-weight: 700;
    letter-spacing: .2em;
}

.hero__eyebrow::before {
    width: auto;
    height: auto;
    background: none;
    color: var(--yellow-accent);
    content: "★";
    font-size: 1.15em;
    line-height: 1;
}

.hero__eyebrow > span {
    display: block;
    overflow: hidden;
}

.hero h1 {
    max-width: none;
    font-family: "Archivo", var(--font-body);
    font-size: clamp(3.6rem, 6.3vw, 6.2rem);
    font-weight: 900;
    line-height: .91;
    letter-spacing: -.065em;
    text-transform: uppercase;
}

.hero__title-line {
    display: block;
    overflow: hidden;
    padding: .06em .08em .09em;
    margin: -.06em -.08em -.09em;
    white-space: nowrap;
}

.hero__title-line > span {
    display: block;
}

.hero h1 .hero__title-line:first-child > span {
    color: #fff;
}

.hero h1 em {
    color: var(--blue-light);
    font-style: normal;
}

.hero__text {
    max-width: 640px;
    gap: 5px;
    margin-top: clamp(24px, 2.8vw, 34px);
    color: rgba(255, 255, 255, .72);
    font-size: clamp(.95rem, .42vw + .86rem, 1.12rem);
    line-height: 1.6;
}

.hero__text p:first-child {
    color: rgba(255, 255, 255, .94);
    font-weight: 500;
}

.hero__actions {
    margin-top: clamp(24px, 2.7vw, 32px);
}

.button--hero {
    min-height: clamp(54px, 4.2vw, 58px);
    overflow: hidden;
    border-color: var(--yellow-accent);
    border-radius: 12px;
    background: var(--yellow-accent);
    color: var(--blue-deep);
    padding-inline: clamp(24px, 2.4vw, 34px);
    box-shadow: 0 12px 30px rgba(0, 0, 28, .18);
    transition: transform .3s var(--ease-out), background-color .3s, border-color .3s, color .3s;
    will-change: transform;
}

.button--hero:hover {
    border-color: var(--yellow-accent-hover);
    background: var(--yellow-accent-hover);
    color: var(--blue-deep);
}

.button--hero span {
    font-size: .9em;
    transition: transform .3s var(--ease-out);
}

.button--hero:hover span {
    transform: translateX(4px);
}

.hero__microcopy {
    margin-top: clamp(16px, 1.7vw, 21px);
    color: rgba(255, 255, 255, .48);
    font-family: var(--font-body);
    font-size: clamp(.65rem, .2vw + .61rem, .73rem);
    font-weight: 500;
    letter-spacing: .12em;
}

.hero__scroll {
    z-index: 7;
    bottom: clamp(34px, 5svh, 54px);
    width: 24px;
    height: 38px;
    border-color: rgba(255, 255, 255, .28);
}

.hero__scroll span {
    width: 3px;
    height: 6px;
    margin-top: 7px;
    background: rgba(255, 255, 255, .78);
}

[data-hero-copy] > * {
    opacity: 1;
    transform: none;
    animation: none;
}

@media (max-width: 767px) {
    .hero__content {
        padding-top: clamp(104px, 14svh, 124px);
        padding-bottom: clamp(82px, 10svh, 96px);
    }

    .hero__copy { width: min(92vw, 650px); }

    .hero h1 {
        font-size: clamp(1.9rem, 7.9vw, 3.8rem);
        line-height: .93;
        letter-spacing: -.06em;
    }

    .hero__text {
        max-width: min(86vw, 580px);
        margin-top: 22px;
        font-size: clamp(.9rem, 2.9vw, 1rem);
    }

    .hero__actions { margin-top: 24px; }
    .button--hero { width: auto; min-width: min(82vw, 280px); }
    .hero__microcopy { max-width: 34ch; margin-inline: auto; }
    .hero__watermark { width: 92vw; }
    .hero__scroll { bottom: 24px; }
}

@media (max-width: 410px) {
    .hero h1 { font-size: clamp(1.9rem, 7.9vw, 2.2rem); }
    .hero__copy .hero__eyebrow { margin-bottom: 18px; letter-spacing: .15em; }
    .hero__text p { max-width: 34ch; margin-inline: auto; }
}

@media (max-height: 740px) and (min-width: 768px) {
    .hero__content { padding-top: 96px; padding-bottom: 72px; }
    .hero h1 { font-size: clamp(3.4rem, 6vw, 5.4rem); }
    .hero__copy .hero__eyebrow { margin-bottom: 18px; }
    .hero__text { margin-top: 20px; }
    .hero__actions { margin-top: 22px; }
    .hero__microcopy { margin-top: 14px; }
    .hero__scroll { bottom: 20px; }
}

/* Faixa cronológica entre a abertura e as histórias. */
.titles-marquee {
    position: relative;
    z-index: 12;
    overflow: hidden;
    border-block: 1px solid rgba(255, 255, 255, .1);
    background: #02063f;
    color: var(--yellow-accent);
    padding-block: clamp(14px, 1.5vw, 19px);
}

.titles-marquee::before,
.titles-marquee::after {
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    width: clamp(28px, 7vw, 120px);
    content: "";
    pointer-events: none;
}

.titles-marquee::before {
    left: 0;
    background: linear-gradient(90deg, #02063f, transparent);
}

.titles-marquee::after {
    right: 0;
    background: linear-gradient(-90deg, #02063f, transparent);
}

.titles-marquee__track {
    display: flex;
    width: max-content;
    animation: titles-marquee 34s linear infinite;
    will-change: transform;
}

.titles-marquee__group {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: clamp(34px, 4.5vw, 76px);
    padding-right: clamp(34px, 4.5vw, 76px);
}

.titles-marquee__item {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    gap: 10px;
    color: var(--yellow-accent);
}

.titles-marquee__item svg {
    width: clamp(19px, 1.6vw, 24px);
    height: auto;
}

.titles-marquee__item strong {
    color: rgba(255, 255, 255, .94);
    font-family: "Archivo", var(--font-body);
    font-size: clamp(.82rem, .5vw + .72rem, 1rem);
    font-weight: 800;
    letter-spacing: .12em;
}

@keyframes titles-marquee {
    to { transform: translateX(-50%); }
}

.featured-overlap {
    margin-top: 0;
    padding-top: clamp(58px, 6vw, 88px);
    background:
        radial-gradient(circle at 92% 8%, rgba(21, 155, 238, .08), transparent 24%),
        var(--white-pure);
    color: var(--ink);
}

.featured-overlap .eyebrow--light {
    color: var(--blue-primary);
}

.featured-overlap .section-mini-title {
    color: var(--blue-deep);
}

.featured-overlap .slider-controls button {
    border-color: rgba(7, 22, 61, .18);
    background: transparent;
    color: var(--blue-deep);
}

.featured-overlap .slider-controls button:hover:not(:disabled) {
    border-color: var(--blue-primary);
    background: var(--blue-primary);
    color: var(--white);
}

.featured-overlap .slider-controls button:disabled {
    border-color: rgba(7, 22, 61, .1);
    color: rgba(7, 22, 61, .42);
}

@media (max-width: 767px) {
    .titles-marquee__track { animation-duration: 25s; }
    .featured-overlap {
        margin-top: 0;
        padding-top: 54px;
        background:
            radial-gradient(circle at 92% 8%, rgba(21, 155, 238, .08), transparent 24%),
            var(--white-pure);
    }
}

@media (prefers-reduced-motion: reduce) {
    .titles-marquee__track {
        width: auto;
        transform: none;
        animation: none;
    }

    .titles-marquee__group[aria-hidden="true"] { display: none; }
}

/* Painel fora do cabeçalho: o desfoque sticky não limita sua altura. */
@media (max-width: 1359px) {
    .site-header { z-index: 120; }
    .site-header__inner {
        min-height: var(--header-height);
        grid-template-columns: minmax(0, 1fr) auto;
    }
    body.menu-open .site-header {
        position: fixed;
        top: 0;
        background: var(--blue-deep);
    }
    .mobile-menu {
        z-index: 119;
        inset: var(--header-height) 0 auto;
        height: calc(100vh - var(--header-height));
        height: calc(100dvh - var(--header-height));
        color: var(--white);
        overflow: hidden;
        overscroll-behavior: contain;
    }
    .mobile-menu nav {
        padding: 20px var(--gutter) max(28px, env(safe-area-inset-bottom));
        overscroll-behavior: contain;
    }
    .mobile-menu nav > a { flex-shrink: 0; }
    .mobile-menu nav > a:not(.button) {
        padding-block: 14px;
        font-size: clamp(1.35rem, 4vw, 2rem);
    }
}

@media (max-width: 767px) {
    .hero__copy, .hero__text { width: 100%; max-width: 100%; }
    .hero h1 { font-size: clamp(1.7rem, 7.5vw, 3.5rem); }
    .hero__actions .button { min-width: 0; }
    .final-cta__content { width: 100%; }
    .manifesto h2 { font-size: clamp(2.7rem, 12vw, 4.4rem); }
    .weekly-feature__media { min-height: 0; max-height: none; }
    .section-kicker-row { flex-wrap: wrap; gap: 16px; }
    .weekly-feature__content, .editorial-card__body,
    .submit-story__layout > *, .field, .footer__grid > * { min-width: 0; }
    .weekly-feature h3, .editorial-card h3, .footer a { overflow-wrap: anywhere; }
    .field input, .field textarea, .field select { font-size: 16px; max-width: 100%; }
    .upload-box { min-width: 0; }
    [data-file-name] { max-width: 100%; overflow-wrap: anywhere; }
    .thank-you-donation { max-width: 100%; }
}

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