/**
 * Costa Platform â€” Destination Page Continuity Bridge
 *
 * CorreÃ§Ã£o estrutural global para a pÃ¡gina individual de destinos.
 * Deve ser carregado depois dos CSS especÃ­ficos das seÃ§Ãµes.
 */

:root {
    --cst-destination-page-max: 1480px;
    --cst-destination-page-gutter: 32px;
    --cst-destination-page-space: 40px;
    --cst-destination-page-reading: 780px;
}

.cst-destination-hero,
.cst-destination-overview,
.cst-destination-useful-info,
.cst-destination-guide,
.cst-destination-things-to-do,
.cst-destination-services,
.cst-destination-final-cta {
    position: relative;
    left: 50%;
    width: 100vw !important;
    max-width: none !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
}

.elementor-widget-shortcode:has(
    .cst-destination-overview,
    .cst-destination-useful-info,
    .cst-destination-guide,
    .cst-destination-things-to-do,
    .cst-destination-services,
    .cst-destination-final-cta
),
.elementor-widget-shortcode:has(
    .cst-destination-overview,
    .cst-destination-useful-info,
    .cst-destination-guide,
    .cst-destination-things-to-do,
    .cst-destination-services,
    .cst-destination-final-cta
) > .elementor-widget-container,
.elementor-widget-shortcode:has(
    .cst-destination-overview,
    .cst-destination-useful-info,
    .cst-destination-guide,
    .cst-destination-things-to-do,
    .cst-destination-services,
    .cst-destination-final-cta
) .elementor-shortcode {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.cst-destination-overview__inner,
.cst-destination-useful-info__inner,
.cst-destination-guide__inner,
.cst-destination-things-to-do__inner,
.cst-destination-services__inner,
.cst-destination-final-cta__inner {
    width: min(
        100%,
        calc(
            var(--cst-destination-page-max)
            + (var(--cst-destination-page-gutter) * 2)
        )
    ) !important;
    max-width: none !important;
    margin-inline: auto !important;
    padding-inline: var(--cst-destination-page-gutter) !important;
}

.cst-destination-overview,
.cst-destination-useful-info,
.cst-destination-guide,
.cst-destination-things-to-do,
.cst-destination-services,
.cst-destination-final-cta {
    padding-top: var(--cst-destination-page-space) !important;
    padding-bottom: var(--cst-destination-page-space) !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.cst-destination-useful-info__header,
.cst-destination-guide__header,
.cst-destination-things-to-do__header,
.cst-destination-services__header {
    width: min(100%, 860px) !important;
    max-width: 860px !important;
    margin-bottom: 28px !important;
}

.cst-destination-things-to-do__introduction {
    width: min(100%, var(--cst-destination-page-reading)) !important;
    max-width: var(--cst-destination-page-reading) !important;
}

.cst-destination-overview__inner {
    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(480px, 0.95fr) !important;
    gap: clamp(48px, 5vw, 84px) !important;
}

.cst-destination-overview__content {
    max-width: 820px;
}

.cst-destination-overview__media {
    min-height: clamp(520px, 39vw, 650px) !important;
}

.cst-destination-useful-info__grid {
    width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

.cst-destination-useful-info__grid > * {
    height: 100%;
}

.cst-destination-guide__header {
    margin-bottom: 40px !important;
}

.cst-destination-guide__content,
.cst-destination-guide__body,
.cst-destination-guide__main {
    margin-top: 0 !important;
}

.cst-destination-guide__chapter + .cst-destination-guide__chapter,
.cst-destination-guide__item + .cst-destination-guide__item,
.cst-destination-guide__section + .cst-destination-guide__section {
    margin-top: 40px !important;
}

.cst-destination-guide [class*="cta"],
.cst-destination-guide [class*="closing"],
.cst-destination-guide [class*="summary"] {
    margin-top: 44px !important;
}

.cst-destination-things-to-do__planner {
    margin-top: 40px !important;
    padding-top: 36px !important;
}

.cst-destination-things-to-do__planner-header {
    margin-bottom: 36px !important;
}

.cst-destination-things-to-do__actions-grid {
    gap: 20px !important;
}

.cst-destination-services__header {
    margin-bottom: 48px !important;
}

.cst-destination-services__content,
.cst-destination-services__grid,
.cst-destination-services__blocks {
    width: 100%;
    max-width: none !important;
}

.cst-destination-services__block + .cst-destination-services__block,
.cst-destination-services__group + .cst-destination-services__group {
    margin-top: 48px !important;
}

.cst-destination-final-cta__card,
.cst-destination-final-cta__box {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.cst-destination-overview,
.cst-destination-guide,
.cst-destination-services {
    background-color: #ffffff;
}

.cst-destination-useful-info,
.cst-destination-things-to-do {
    background-color: #f7f9fc;
}

.cst-destination-useful-info::before,
.cst-destination-guide::before,
.cst-destination-things-to-do::before,
.cst-destination-services::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: min(
        calc(100% - (var(--cst-destination-page-gutter) * 2)),
        var(--cst-destination-page-max)
    );
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(6, 43, 87, 0.08) 16%,
        rgba(212, 175, 55, 0.24) 50%,
        rgba(6, 43, 87, 0.08) 84%,
        transparent
    );
    transform: translateX(-50%);
    pointer-events: none;
}

@media (max-width: 1023px) {
    :root {
        --cst-destination-page-gutter: 24px;
        --cst-destination-page-space: 32px;
    }

    .cst-destination-overview__inner {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 44px !important;
    }

    .cst-destination-useful-info__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    :root {
        --cst-destination-page-gutter: 16px;
        --cst-destination-page-space: 28px;
    }

    .cst-destination-overview,
    .cst-destination-useful-info,
    .cst-destination-guide,
    .cst-destination-things-to-do,
    .cst-destination-services,
    .cst-destination-final-cta {
        left: auto;
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .cst-destination-useful-info__header,
    .cst-destination-guide__header,
    .cst-destination-things-to-do__header,
    .cst-destination-services__header {
        margin-bottom: 32px !important;
    }

    .cst-destination-useful-info__grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 16px !important;
    }

    .cst-destination-guide__chapter + .cst-destination-guide__chapter,
    .cst-destination-guide__item + .cst-destination-guide__item,
    .cst-destination-guide__section + .cst-destination-guide__section {
        margin-top: 36px !important;
    }

    .cst-destination-things-to-do__planner {
        margin-top: 48px !important;
        padding-top: 28px !important;
    }
}