
/* =========================================================
   HERO SYSTEM — FINAL PROPORTION CONTRACT
   v16.93
   All four hero types use the exact same outer proportion.
   ========================================================= */

:root{
    --guia-hero-final-height-desktop: 430px;
    --guia-hero-final-height-mobile: 320px;
    --guia-hero-final-gutter: 40px;
    --guia-hero-final-title: clamp(42px, 4.5vw, 58px);
}

/* EXACT OUTER PROPORTION — desktop */
html body .guia-hero.guia-hero--home,
html body .guia-hero.guia-hero--archive,
html body .guia-hero.guia-hero--single,
html body .guia-hero.guia-hero--event{
    height: var(--guia-hero-final-height-desktop) !important;
    min-height: var(--guia-hero-final-height-desktop) !important;
    max-height: var(--guia-hero-final-height-desktop) !important;
    width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* The image always fills the same box. */
html body .guia-hero.guia-hero--home > .ggp-v25-hero-image,
html body .guia-hero.guia-hero--archive > .guia-praias-hero__media,
html body .guia-hero.guia-hero--single > .sp-hero-bg,
html body .guia-hero.guia-hero--event > .gevento-hero__media{
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
}

html body .guia-hero.guia-hero--home > .ggp-v25-hero-image img,
html body .guia-hero.guia-hero--archive > .guia-praias-hero__media img,
html body .guia-hero.guia-hero--single > .sp-hero-bg img,
html body .guia-hero.guia-hero--event > .gevento-hero__media img{
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    display: block !important;
}

/* One content rail */
html body .guia-hero :is(
    .ggp-v25-hero-content,
    .guia-praias-hero__content,
    .sp-hero-content,
    .gevento-hero__container
){
    width: min(1200px, calc(100% - 80px)) !important;
    max-width: 1200px !important;
    box-sizing: border-box !important;
}

/* One H1 scale */
html body .guia-hero :is(
    .ggp-v25-hero-content h1,
    .guia-praias-hero__copy h1,
    .sp-hero-title,
    .gevento-hero__title
){
    font-size: var(--guia-hero-final-title) !important;
    line-height: 0.98 !important;
    letter-spacing: -0.04em !important;
}

/* HOME: centered */
html body .guia-hero.guia-hero--home{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}

html body .guia-hero.guia-hero--home .ggp-v25-hero-content{
    text-align:center !important;
    max-width:860px !important;
}

/* ARCHIVE: mesma linguagem da Home — conteúdo centralizado */
html body .guia-hero.guia-hero--archive{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}

html body .guia-hero.guia-hero--archive .guia-praias-hero__content{
    height:auto !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:42px 0 !important;
}

html body .guia-hero.guia-hero--archive .guia-praias-hero__inner{
    width:min(920px,100%) !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:0 !important;
    text-align:center !important;
    margin-inline:auto !important;
}

html body .guia-hero.guia-hero--archive .guia-praias-hero__copy{
    width:100% !important;
    max-width:760px !important;
    margin-inline:auto !important;
}

html body .guia-hero.guia-hero--archive .guia-praias-hero__copy h1{
    text-align:center !important;
    margin:0 !important;
}

html body .guia-hero.guia-hero--archive .guia-praias-lead{
    text-align:center !important;
    margin:12px auto 22px !important;
}

html body .guia-hero.guia-hero--archive .guia-praias-hero__tools{
    width:min(760px,100%) !important;
    max-width:760px !important;
    margin-inline:auto !important;
    text-align:center !important;
}

html body .guia-hero.guia-hero--archive .guia-praias-search-wrapper{
    width:100% !important;
}

html body .guia-hero.guia-hero--archive .guia-praias-filters-wrapper,
html body .guia-hero.guia-hero--archive .guia-praias-filter-status{
    justify-content:center !important;
    text-align:center !important;
}

html body .guia-hero.guia-hero--archive .guia-praias-filters{
    justify-content:center !important;
}

/* SINGLE BEACH + EVENT: same height; content at bottom */
html body .guia-hero.guia-hero--single{
    display:flex !important;
    align-items:flex-end !important;
}

html body .guia-hero.guia-hero--single .sp-hero-content{
    padding-bottom:34px !important;
}

html body .guia-hero.guia-hero--event{
    display:flex !important;
    align-items:flex-end !important;
}

html body .guia-hero.guia-hero--event .gevento-hero__container{
    padding-bottom:34px !important;
}

/* HOME CTA is intrinsic width. */
html body .ggp-v25-all-button{
    display:inline-flex !important;
    width:max-content !important;
    max-width:100% !important;
    flex:0 0 auto !important;
}

/* Tablet / mobile: still one exact proportion */
@media (max-width: 780px){
    :root{
        --guia-hero-final-height-mobile: 320px;
        --guia-hero-final-gutter: 24px;
        --guia-hero-final-title: clamp(34px, 9vw, 46px);
    }

    html body .guia-hero.guia-hero--home,
    html body .guia-hero.guia-hero--archive,
    html body .guia-hero.guia-hero--single,
    html body .guia-hero.guia-hero--event{
        height: var(--guia-hero-final-height-mobile) !important;
        min-height: var(--guia-hero-final-height-mobile) !important;
        max-height: var(--guia-hero-final-height-mobile) !important;
    }

    html body .guia-hero :is(
        .ggp-v25-hero-content,
        .guia-praias-hero__content,
        .sp-hero-content,
        .gevento-hero__container
    ){
        width: calc(100% - 48px) !important;
        max-width:none !important;
    }

    html body .guia-hero.guia-hero--archive .guia-praias-hero__content{
        padding:28px 0 !important;
    }

    html body .guia-hero.guia-hero--archive .guia-praias-hero__inner{
        width:100% !important;
        display:flex !important;
        flex-direction:column !important;
        align-items:center !important;
    }

    html body .guia-hero.guia-hero--archive .guia-praias-hero__tools{
        width:100% !important;
        max-width:760px !important;
        margin-top:0 !important;
    }

    html body .guia-hero.guia-hero--single .sp-hero-content,
    html body .guia-hero.guia-hero--event .gevento-hero__container{
        padding-bottom:22px !important;
    }
}

@media (max-width: 520px){
    :root{
        --guia-hero-final-gutter:16px;
        --guia-hero-final-title:34px;
    }

    html body .guia-hero :is(
        .ggp-v25-hero-content,
        .guia-praias-hero__content,
        .sp-hero-content,
        .gevento-hero__container
    ){
        width: calc(100% - 32px) !important;
    }

    html body .guia-hero.guia-hero--archive .guia-praias-hero__filters-wrapper{
        width:100% !important;
        overflow-x:auto !important;
        scrollbar-width:none;
    }

    html body .guia-hero.guia-hero--archive .guia-praias-hero__filters{
        justify-content:flex-start !important;
        width:max-content !important;
        min-width:100% !important;
    }

    html body .guia-hero.guia-hero--archive .guia-praias-hero__filters-wrapper::-webkit-scrollbar{
        display:none;
    }
}
