/* Ajuste para telas menores (768px e abaixo) */

.hero {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background-image: url("../../assets/media/animated/hero-bg.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* Vídeo de fundo: cobre toda a hero e fica atrás do conteúdo.
   Forçamos GPU compositing (translateZ + will-change) para evitar
   travamento quando o vídeo começa a tocar. */
.hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: -1;
    pointer-events: none;
    will-change: transform, opacity;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.hero__bg-mask {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, 0.6);
    pointer-events: none;
}

/* Placeholder do hero (invisível) */
.hero__placeholder {
    height: 100vh;
    width: 100%;
    pointer-events: none;
    visibility: hidden;
}
#hero {
    position: relative;
    z-index: 5;
    /* deixa o fundo do hero transparente para o background-image da classe .hero preencher atrás do header */
    background-color: transparent;
    /* Remove o fixed do background se for usar o código abaixo, 
       pois o código já vai fixar a seção inteira */
    background-attachment: scroll;
}

/* Placeholder para evitar o pulo de layout */
.hero-placeholder {
    display: none;
    height: 100vh;
    width: 100%;
}

/* Estado fixo real (trava tudo: logo, texto, fundo) */
#hero.is-stuck {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 5;
}

    #hero.is-stuck + .hero-placeholder {
        display: block;
    }

/* Garante que a Choose suba por cima sem frestas */
#choose {
    position: relative;
    z-index: 10;
    background: #000;
    margin-top: -1px; /* Mata a linha cinza de 1px */
}
/* Hero FIXO (seção inteira travada) */
#hero.is-stuck {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 5;
}

/* Garante que o choose passe por cima do hero sem “linha” */
#choose {
    position: relative;
    z-index: 10;
    background: #000;
}

/* Remove cor de fundo que pode aparecer como linha */
html, body {
    background: #000;
}
/* Placeholder para manter o espaço no scroll */
.choose__placeholder {
    width: 100%;
    height: 100vh;
    visibility: hidden;
    pointer-events: none;
}

/* Estado inicial da Choose */
#choose {
    position: relative;
    z-index: 10;
    background: #000;
}

/* Quando a Choose está subindo sobre o Hero */
#choose.is-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 100;
    /* O transform será controlado via JS para ser 100% sincronizado com o dedo/mouse */
    will-change: transform;
}
.hero__logo-intro {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .8s ease;
    z-index: 20;
}

    .hero__logo-intro.is-visible {
        opacity: 1;
    }

.hero__logo-full {
    width: min(480px, 70vw);
    height: auto;
}

.hero__text-sequence {
    position: absolute;
    inset: 0;
    z-index: 10;
    opacity: 0;
    visibility: hidden;
    transition: opacity .55s ease, visibility 0s linear .55s;
}

    .hero__text-sequence.is-visible {
        opacity: 1;
        visibility: visible;
        transition: opacity .55s ease, visibility 0s;
    }

.hero__block {
    position: absolute;
    opacity: 0;
    font-family: 'Syncopate', sans-serif;
    color: #fff;
    transition: opacity .8s ease;
    max-width: 92vw;
}

.hero__text-sequence.is-visible .hero__block {
    opacity: 1;
}

/* Posicionamento Desktop */
[data-position="top-right"] {
    top: 20%;
    right: 8%;
}

[data-position="center-left"] {
    top: 50%;
    left: 8%;
    transform: translateY(-50%);
}

[data-position="bottom-right"] {
    bottom: 20%;
    right: 12%;
}

#heroBlock1 {
    right: 60%;
    max-width: 88vw;
}

#heroBlock3 {
    right: 60%;
    max-width: 88vw;
}

/* ========= O CORTE CINEMÁTICO ========= */
.hero__block-part {
    overflow: hidden;
    display: block;
    height: clamp(18px, 2.4vw, 62px);
    position: relative;
}

    .hero__block-part span {
        display: block;
        font-size: clamp(35px, 5vw, 75px);
        font-weight: 400;
        line-height: 1;
        letter-spacing: 0.15em;
        white-space: nowrap;
    }

/* 🔄 Lógica da Animação Cruzada */
.hero__block-part--top span {
    transform: translateY(220%);
}

.hero__block-part--bottom {
    display: flex;
    align-items: flex-end;
}

    .hero__block-part--bottom span {
        transform: translateY(-220%);
    }

.hero__word-half {
    font-weight: 500 !important;
}

/* Palavra grande (onde ocorre o cruzamento) */
.hero__word {
    position: relative;
    display: inline-block;
    font-size: clamp(50px, 8vw, 98px);
    font-weight: 400;
    letter-spacing: .15em;
    line-height: 1;
}

/* metades sobrepostas no MESMO lugar */
.hero__word-half {
    position: absolute;
    left: 0;
    top: 0;
    white-space: nowrap;
    will-change: transform, opacity;
}

/* Top = mostra metade superior */
.hero__word-half--top {
    clip-path: inset(0 0 50% 0);
}

/* Bottom = mostra metade inferior */
.hero__word-half--bottom {
    clip-path: inset(50% 0 0 0);
}

/* estado base (parado, escondido fora) */
.hero__text-sequence .hero__word-half--top {
    transform: translateY(160%);
    opacity: 0;
}

.hero__text-sequence .hero__word-half--bottom {
    transform: translateY(-160%);
    opacity: 0;
}

/* Ajuste do Subtexto (Meio) - Unificado */
.hero__block-part--middle {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    transform: translateY(calc(-50% + var(--hero-middle-offset, 14px)));
    text-align: center;
    z-index: 5;
    height: auto !important;
    overflow: visible !important;
    margin-top: 0px;
}

    .hero__block-part--middle span {
        display: inline-block;
        white-space: nowrap;
        overflow: visible !important;
        max-width: none !important;
        font-size: clamp(18px, 2.4vw, 34px);
        letter-spacing: .44em;
        text-transform: none;
        opacity: 0; /* ✅ Base: invisível fora da animação */
        transform: scaleX(1.12);
        transform-origin: left center;
        line-height: 1.1;
        margin-left: 10px;
    }

/* JS vai controlar apenas o left */
.hero__block-part--middle {
    position: absolute;
    right: auto;
}

/* Animação contínua e cruzando - Unificada para 14s 1 both (sem duplicação) */
.hero__text-sequence.is-animating .hero__word-half--top {
    animation: heroCrossTop 14s cubic-bezier(.16,1,.3,1) 1 both;
}

.hero__text-sequence.is-animating .hero__word-half--bottom {
    animation: heroCrossBottom 14s cubic-bezier(.16,1,.3,1) 1 both;
}

.hero__text-sequence.is-animating .hero__block-part--middle span {
    animation: heroMiddle 14s cubic-bezier(.16,1,.3,1) 1 both;
}

/* Keyframes */
@keyframes heroCrossTop {
    0% {
        transform: translateY(160%);
        opacity: 1;
    }

    22% {
        transform: translateY(-25%);
        opacity: 1;
    }

    34% {
        transform: translateY(-22%);
        opacity: 1;
    }

    78% {
        transform: translateY(-19%);
        opacity: 1;
    }

    100% {
        transform: translateY(160%);
        opacity: 0;
    }
}

@keyframes heroCrossBottom {
    0% {
        transform: translateY(-160%);
        opacity: 1;
    }

    22% {
        transform: translateY(25%);
        opacity: 1;
    }

    34% {
        transform: translateY(22%);
        opacity: 1;
    }

    78% {
        transform: translateY(19%);
        opacity: 1;
    }

    100% {
        transform: translateY(-160%);
        opacity: 0;
    }
}

@keyframes heroMiddle {
    0% {
        opacity: 0;
        transform: scale(.72) scaleX(1.10);
        filter: blur(12px);
    }

    26% {
        opacity: 1;
        transform: scale(1.08) scaleX(1.10);
        filter: blur(2px);
    }

    50% {
        opacity: 1;
        transform: scale(1) scaleX(1.10);
        filter: blur(0);
    }

    78% {
        opacity: .9;
        transform: scale(1) scaleX(1.10);
        filter: blur(0);
    }

    100% {
        opacity: 0;
        transform: scale(.72) scaleX(1.10);
        filter: blur(12px);
    }
}
/* =========================
   HERO - BOTÃO SCROLL (CLEAN)
   ========================= */

.hero__scroll-indicator {
    position: absolute;
    left: 50%;
    bottom: 26px;
    transform: translateX(-50%) translateY(14px);
    opacity: 0;
    pointer-events: none;
    z-index: 60;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .20);
    background: rgba(15, 15, 15, .36);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    color: rgba(255, 255, 255, .92);
    text-decoration: none;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .30);
    transition: opacity .6s ease, transform .6s cubic-bezier(.16, 1, .3, 1), background .25s ease, border-color .25s ease;
    /* Remove qualquer “ponto”/decoração global em links */
    outline: none;
}

    .hero__scroll-indicator.is-visible {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
        pointer-events: auto;
    }

    .hero__scroll-indicator:hover {
        background: rgba(15, 15, 15, .50);
        border-color: rgba(255, 255, 255, .34);
    }

/* ===== Texto: sobe e troca por ele mesmo ===== */
.hero__scroll-label {
    position: relative;
    z-index: 1;
    display: inline-block;
    height: 18px; /* antes: 14px */
    overflow: hidden;
}

.hero__scroll-label-inner {
    display: block;
    transform: translateY(0);
    transition: transform .28s cubic-bezier(.16,1,.3,1);
    will-change: transform;
}

.hero__scroll-indicator:hover .hero__scroll-label-inner {
    transform: translateY(-18px); /* antes: -14px */
}

.hero__scroll-label-text {
    display: block;
    line-height: 18px; /* antes: 14px */
    white-space: nowrap;
    font: 650 14px/1.1 system-ui, -apple-system, Segoe UI, Roboto, Arial;
    letter-spacing: .12em;
}

/* ===== Seta "↓" grande (sem animação) ===== */
.hero__scroll-arrow {
    font: 650 22px/1 system-ui, -apple-system, Segoe UI, Roboto, Arial;
    line-height: 1;
    transform: translateY(-2px); /* ajuste fino: teste -1px, -2px, -3px */
    opacity: .95;
}

/* Remove qualquer “ponto”/decoração global em links */
.hero__scroll-indicator,
.hero__scroll-indicator:hover,
.hero__scroll-indicator:focus,
.hero__scroll-indicator:focus-visible {
    outline: none !important;
    text-decoration: none !important;
}

/* Mobile */
@media (max-width: 768px) {
    .hero__scroll-indicator {
        bottom: 18px;
        padding: 11px 14px;
    }

    .hero__scroll-label {
        height: 13px;
    }

    .hero__scroll-label-text {
        line-height: 13px;
        font: 650 12px/1.1 system-ui, -apple-system, Segoe UI, Roboto, Arial;
        letter-spacing: .10em;
    }

    .hero__scroll-arrow {
        font: 650 20px/1 system-ui, -apple-system, Segoe UI, Roboto, Arial; /* Ajuste para mobile */
    }
}





/* Mobile */
@media (max-width:768px) {
    .hero__scroll-indicator {
        bottom: 18px;
        padding: 11px 14px;
    }

    .hero__scroll-text {
        font: 650 12px/1.1 system-ui,-apple-system,Segoe UI,Roboto,Arial;
        letter-spacing: .10em;
    }

    .hero__scroll-arrow {
        font: 650 20px/1 system-ui,-apple-system,Segoe UI,Roboto,Arial;
    }
}
/* Ajuste para telas ainda menores (Tablets) */
@media (max-width: 1024px) and (min-width: 769px) {
    .hero__word {
        font-size: clamp(35px, 5vw, 65px) !important;
    }

    #heroBlock1, #heroBlock3 {
        right: 55% !important;
    }

    .hero__word-half span {
        letter-spacing: 0.06em !important;
    }
}
/* Ajuste para evitar corte de "EXPERIÊNCIA" em desktops médios (ex: 1366x768) */
@media (max-width: 1440px) and (min-width: 1025px) {
    #heroBlock3 .hero__word {
        font-size: clamp(40px, 6.2vw, 82px) !important;
        letter-spacing: 0.10em !important;
    }
}
:root {
    --hero-middle-offset: 28px;
}
@media (max-width: 1440px) {
    :root {
        --hero-middle-offset: 25px;
    }
}

@media (max-width: 1280px) {
    :root {
        --hero-middle-offset: 24px;
    }
}

@media (max-width: 1024px) {
    :root {
        --hero-middle-offset: 17px;
    }

    @media (max-width: 768px) {
        :root {
            --hero-middle-offset: 13px;
        }
    }
}
/* Ajuste para telas menores (768px e abaixo) */
/* MOBILE (<=768): centralizado, sem corte, 1 bloco por vez */
@media (max-width: 768px) {
    /* 1) No mobile, não use max-content (isso causa corte) */
    .hero__block {
        width: 92vw !important;
        max-width: 92vw !important;
        overflow: visible !important;
    }

    /* 2) Centraliza TODOS os blocos no mesmo ponto do logo */
    .hero__block,
    [data-position="top-right"],
    [data-position="center-left"],
    [data-position="bottom-right"],
    #heroBlock1,
    #heroBlock3 {
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
    }

    /* 3) Só o bloco ativo fica visível */
    .hero__text-sequence.is-visible .hero__block {
        opacity: 0 !important;
    }

        .hero__text-sequence.is-visible .hero__block.is-active {
            opacity: 1 !important;
        }

    /* 4) Não quebrar linha + encolher para caber */
    .hero__block-part span,
    .hero__word,
    .hero__word-half,
    .hero__word-half span,
    .hero__block-part--middle span {
        white-space: nowrap !important;
        max-width: 92vw !important;
    }

    /* “segredo” anti-corte: deixa encolher em flex/inline contexts */
    .hero__block-part--top,
    .hero__block-part--bottom {
        min-width: 0 !important;
    }

    /* 5) Reduz fontes e espaçamentos no mobile (sem quebrar) */
    .hero__word {
        font-size: clamp(30px, 9.2vw, 56px) !important;
        letter-spacing: 0.06em !important;
    }

    .hero__block-part span {
        font-size: clamp(22px, 7.0vw, 44px) !important;
        letter-spacing: 0.06em !important;
    }

    .hero__word-half span {
        letter-spacing: 0.06em !important;
    }

    .hero__block-part--middle span {
        font-size: clamp(12px, 3.6vw, 18px) !important;
        letter-spacing: 0.22em !important;
        margin-left: 0 !important; /* tira o empurrão pra direita */
        transform-origin: center !important; /* evita puxar para um lado */
    }

    /* 6) Offset vertical do middle no mobile (você já tem variável) */
    :root {
        --hero-middle-offset: 13px;
    }

}
@media (max-width: 768px) {
    :root {
        --hero-middle-offset: 13px;
    }

    /* 1. Centraliza o container do bloco na tela */
    .hero__block {
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        width: 95vw !important;
        max-width: 95vw !important;
        text-align: center !important;
        display: block !important;
    }

    /* 2. Centraliza as metades da palavra (Top/Bottom) */
    .hero__word {
        display: block !important;
        margin: 0 auto !important;
        width: 100% !important;
        text-align: center !important;
    }

    .hero__word-half {
        left: 0 !important;
        width: 100% !important;
        text-align: center !important;
    }

    /* 3. Centraliza o Middle (Subtexto) */
    .hero__block-part--middle {
        left: 0 !important;
        width: 100% !important;
        text-align: center !important;
        transform: translateY(calc(-50% + var(--hero-middle-offset))) !important;
    }

        .hero__block-part--middle span {
            margin-left: 0 !important;
            transform-origin: center !important;
        }

    /* 4. Visibilidade um por vez */
    .hero__text-sequence.is-visible .hero__block {
        opacity: 0 !important;
    }

        .hero__text-sequence.is-visible .hero__block.is-active {
            opacity: 1 !important;
        }

    /* 5. Ajuste de tamanhos para não cortar */
    .hero__word {
        font-size: clamp(38px, 10vw, 65px) !important;
        letter-spacing: 0.08em !important;
    }

    .hero__block-part span {
        font-size: clamp(24px, 7vw, 48px) !important;
        letter-spacing: 0.08em !important;
    }

    .hero__block-part--middle span {
        font-size: clamp(12px, 4vw, 20px) !important;
        letter-spacing: 0.25em !important;
    }
}
/* Desktop: quando o indicador aparecer, cria respiro no rodapé */
@media (min-width: 769px) {
    .hero:has(#heroScrollIndicator.is-visible) [data-position="center-left"] {
        top: 47%;
    }

    .hero:has(#heroScrollIndicator.is-visible) [data-position="bottom-right"] {
        bottom: 26%;
    }
}

