/* Global tour layout fix: keeps content visible and booking aligned on all tour pages */

html.activity-page body {
    background: #f4f7fc !important;
}

.tour-page {
    background: #f4f7fc;
    overflow: visible;
}

.tour-page .tour-hero {
    margin-bottom: 0;
}

.tour-duration-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 14px 0 0;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.42);
    background: rgba(8, 47, 115, 0.36);
    backdrop-filter: blur(2px);
    color: #ffffff;
    font-size: 0.96rem;
    line-height: 1.35;
}

.tour-duration-badge strong {
    font-weight: 700;
}

.tour-duration-badge__icon {
    font-size: 1rem;
    line-height: 1;
}

/* Tour pages must never hide core content due animation state. */
html.activity-page [data-aos],
html.qb-aos-fallback [data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* Required reusable layout */
.tour-layout {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    padding: 24px 16px;
    overflow: visible;
}

.tour-content {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    overflow: visible;
}

.tour-booking {
    flex: 0 0 380px;
    width: 380px;
    max-width: 100%;
    position: sticky;
    top: 110px;
    align-self: flex-start;
}

.tour-booking .booking-widget {
    width: 100%;
    margin-top: 0;
}

/* Keep content sections readable */
.tour-content .description-section,
.tour-content .info-grid,
.tour-content .section-title {
    margin-bottom: 20px;
}

@media (max-width: 992px) {
    .tour-layout {
        flex-direction: column;
        gap: 18px;
    }

    .tour-booking {
        width: 100%;
        flex: 1 1 auto;
        position: static;
    }
}

@media (min-width: 992px) {
    .tour-layout {
        padding: 24px;
    }
}
