/* Vigour V58 — hero, inline AI popup and contact-page responsive layer */
:root {
    --v58-green: #8dc63f;
    --v58-green-dark: #65a52d;
    --v58-teal: #087c78;
    --v58-navy: #063d5b;
    --v58-line: #dce8eb;
    --v58-page-pad: clamp(18px, 3vw, 56px);
}

.home-page .vg-page-wrapper,
.contact-page-body .vg-page-wrapper {
    width: 100%;
    max-width: none;
    justify-content: center;
    padding: 0;
}

.home-page .vg-main-column,
.contact-page-body .vg-main-column {
    width: 100%;
    max-width: none;
    min-width: 0;
    flex: 1 1 auto;
}

.home-page .vg-container,
.contact-page-body .v46-wrap {
    width: 100%;
    max-width: none;
    margin-inline: auto;
    padding-inline: var(--v58-page-pad);
}

/* Two-column hero: quick booking + slider only. */
@media (min-width: 1200px) {
    .home-page .hm-hero-three-cols {
        display: grid !important;
        grid-template-columns: minmax(300px, 360px) minmax(0, 1fr) !important;
        align-items: stretch !important;
        gap: 20px !important;
        padding: 22px 0 30px !important;
    }

    .home-page .hm-booking,
    .home-page .hm-hero-video-wrapper,
    .home-page .hm-hero-swiper,
    .home-page .hm-hero-swiper .swiper-wrapper,
    .home-page .hm-hero-swiper .swiper-slide,
    .home-page .hm-slider-item-link,
    .home-page .hm-slider-media {
        width: 100% !important;
        height: 650px !important;
        min-height: 650px !important;
        max-height: 650px !important;
    }

    .home-page .hm-booking {
        overflow-y: auto;
        scrollbar-width: thin;
    }

    .home-page .hm-slider-media {
        object-fit: cover !important;
        object-position: center !important;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .home-page .hm-hero-three-cols {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
        padding: 18px 0 28px !important;
    }

    .home-page .hm-hero-video-wrapper {
        grid-row: 1;
        min-height: 0 !important;
        height: auto !important;
        aspect-ratio: 16 / 8;
    }

    .home-page .hm-booking {
        grid-row: 2;
        width: min(100%, 720px) !important;
        justify-self: center;
    }
}

@media (max-width: 767px) {
    :root { --v58-page-pad: 12px; }

    .home-page .hm-hero-three-cols {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
        padding: 12px 0 22px !important;
    }

    .home-page .hm-hero-video-wrapper {
        order: 1;
        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;
        aspect-ratio: 16 / 10;
        border-radius: 16px;
    }

    .home-page .hm-booking {
        order: 2;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        border-radius: 16px;
    }

    .home-page .hm-hero-swiper,
    .home-page .hm-hero-swiper .swiper-wrapper,
    .home-page .hm-hero-swiper .swiper-slide,
    .home-page .hm-slider-item-link,
    .home-page .hm-slider-media {
        min-height: 0 !important;
        height: 100% !important;
        border-radius: 16px;
    }
}

/* Footer AI launcher and same-page chat popup. */
.vg-ai-popup-launcher {
    position: fixed;
    z-index: 1060;
    inset-inline-end: 22px;
    bottom: 22px;
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    border: 3px solid #fff;
    border-radius: 22px;
    color: #fff;
    background: linear-gradient(135deg, var(--v58-teal), var(--v58-green));
    box-shadow: 0 15px 36px rgba(8, 124, 120, .32);
    cursor: pointer;
    font-size: 25px;
    transition: transform .22s ease;
}

.vg-ai-popup-launcher:hover { transform: translateY(-4px); }
.vg-ai-popup-launcher span {
    position: absolute;
    top: -7px;
    inset-inline-end: -6px;
    min-width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    padding-inline: 5px;
    border: 2px solid #fff;
    border-radius: 99px;
    background: #ef5350;
    color: #fff;
    font-size: 9px;
    font-weight: 900;
}

.vg-ai-popup-backdrop {
    position: fixed;
    z-index: 1065;
    inset: 0;
    background: rgba(3, 42, 64, .36);
    backdrop-filter: blur(3px);
}

.vg-ai-popup {
    position: fixed;
    z-index: 1070;
    inset-inline-end: 22px;
    bottom: 98px;
    width: min(430px, calc(100vw - 28px));
    height: min(650px, calc(100dvh - 130px));
    overflow: hidden;
    border: 1px solid var(--v58-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 28px 70px rgba(3, 42, 64, .28);
}

.vg-ai-popup[hidden],
.vg-ai-popup-backdrop[hidden] { display: none !important; }
.vg-ai-popup .ai-shell { width: 100%; height: 100%; padding: 0; }
.vg-ai-popup .ai-shell__inner { width: 100%; height: 100%; display: block; padding: 0; }
.vg-ai-popup .ai-chat {
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.vg-ai-popup .ai-chat__header {
    color: #fff;
    background: linear-gradient(135deg, #075e5d, #0b8984);
}
.vg-ai-popup .ai-chat__identity h2,
.vg-ai-popup .ai-chat__identity p { color: #fff; }
.vg-ai-popup .ai-chat__avatar { color: #fff; background: rgba(255,255,255,.16); }
.vg-ai-popup__close {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 12px;
    color: #fff;
    background: rgba(255,255,255,.12);
    cursor: pointer;
}

/* Contact page aligned with the platform's full-width public pages. */
.contact-page-body .v46-page { width: 100%; overflow: hidden; }
.contact-page-body .v46-hero { padding-block: clamp(46px, 5vw, 72px); }
.contact-page-body .v46-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(360px, .88fr);
    gap: clamp(28px, 4vw, 64px);
}
.contact-page-body .v46-media { min-height: clamp(360px, 33vw, 500px); }
.contact-page-body .v46-section { padding-block: clamp(46px, 5vw, 70px); }
.contact-page-body .v46-contact-layout {
    grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
    gap: clamp(18px, 2vw, 30px);
}
.contact-page-body .v46-panel { height: 100%; }

@media (max-width: 980px) {
    .contact-page-body .v46-hero-grid,
    .contact-page-body .v46-contact-layout { grid-template-columns: 1fr; }
    .contact-page-body .v46-media { min-height: 360px; }
}

@media (max-width: 620px) {
    .vg-ai-popup-launcher {
        inset-inline-end: 14px;
        bottom: 14px;
        width: 56px;
        height: 56px;
        border-radius: 19px;
        font-size: 22px;
    }
    .vg-ai-popup {
        inset-inline: 8px;
        bottom: 78px;
        width: auto;
        height: min(620px, calc(100dvh - 94px));
        border-radius: 20px;
    }
    .vg-ai-popup-backdrop { background: rgba(3, 42, 64, .48); }
    .vg-ai-popup .ai-chat__header { padding: 14px; }
    .vg-ai-popup .ai-chat__messages { padding: 14px; }
    .vg-ai-popup .ai-quick { padding: 10px; gap: 7px; }
    .vg-ai-popup .ai-quick__btn { min-height: 36px; padding: 7px 9px; font-size: 12px; }
    .vg-ai-popup .ai-composer { padding: 11px; }
    .contact-page-body .v46-hero { padding-block: 34px; }
    .contact-page-body .v46-title { font-size: clamp(32px, 10vw, 44px); }
    .contact-page-body .v46-lead { font-size: 15px; }
    .contact-page-body .v46-media { min-height: 280px; border-radius: 20px; }
    .contact-page-body .v46-section { padding-block: 36px; }
    .contact-page-body .v46-panel { padding: 20px 16px; border-radius: 20px; }
    .contact-page-body .v46-form-grid { grid-template-columns: 1fr; }
    .contact-page-body .v46-map iframe { height: 310px; }
}

