/* Site-wide mobile hardening. Loaded last so every template gets the same responsive safety net. */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}

@supports not (overflow-x: clip) {
    html,
    body {
        overflow-x: hidden;
    }
}

body {
    min-width: 0;
}

.site-shell,
.site-main {
    width: 100%;
    min-width: 0;
    overflow-x: clip;
}

img,
picture,
video,
canvas,
svg,
iframe {
    max-width: 100%;
}

img,
video {
    height: auto;
}

iframe {
    display: block;
    width: 100%;
}

pre,
code,
.source-reader-main__document pre {
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

input,
select,
textarea,
button {
    max-width: 100%;
    min-width: 0;
}

.container,
.vard-container,
.vard-v2-container {
    max-width: min(100%, var(--container-max, 1220px));
}

.btn,
.hp2-btn,
.hp2-btn-gold,
.hp2-btn-ghost,
.ab-button,
.ab-text-link,
.dest-guide-cta-btn,
.vard-about-cta-btn,
.hotel-single-cta__btn,
.hotel-single-glance__cta,
.nbi-card-cta,
.source-library__actions a {
    max-width: 100%;
    white-space: normal;
}

@media (max-width: 1180px) {
    .vard-ft-newsletter,
    .vard-ft-main,
    .vard-ft-grid,
    .vard-contact-grid,
    .vard-process-layout,
    .vard-story-grid,
    .vard-promise-grid,
    .vard-cta-inner,
    .vard-tour-inc-grid,
    .hp2-cta-inner,
    .dest-index__shell,
    .source-library__shell,
    .source-reader-main__shell,
    .nbi-single__layout {
        grid-template-columns: 1fr !important;
    }

    .vard-contact-info,
    .source-library__intro,
    .dest-index__intro,
    .source-reader-main__aside {
        position: static !important;
    }
}

@media (max-width: 980px) {
    html body .site-header.vard-v2-site-header,
    html body .site-header.vard-v2-site-header.is-scrolled,
    html body.home .site-header.vard-v2-site-header:not(.is-scrolled),
    html body:not(.home) .site-header.vard-v2-site-header:not(.is-scrolled) {
        right: 0.5rem !important;
        left: 0.5rem !important;
        width: auto !important;
        max-width: none !important;
        border-radius: 24px !important;
    }

    html body .site-header.vard-v2-site-header .header-inner,
    html body .site-header.vard-v2-site-header.is-scrolled .header-inner,
    html body.home .site-header.vard-v2-site-header:not(.is-scrolled) .header-inner,
    html body:not(.home) .site-header.vard-v2-site-header:not(.is-scrolled) .header-inner {
        grid-template-columns: minmax(0, 1fr) auto !important;
        min-height: 64px !important;
        padding: 0 0.65rem 0 0.95rem !important;
    }

    .site-header.vard-v2-site-header .brand-copy strong,
    .site-header.vard-v2-site-header.is-scrolled .brand-copy strong {
        max-width: calc(100vw - 6.5rem) !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .site-header.vard-v2-site-header .brand-kicker {
        display: none !important;
    }

    .site-header.vard-v2-site-header .menu-toggle,
    .site-header.vard-v2-site-header.is-scrolled .menu-toggle,
    body.home .site-header.vard-v2-site-header:not(.is-scrolled) .menu-toggle,
    body:not(.home) .site-header.vard-v2-site-header:not(.is-scrolled) .menu-toggle {
        display: inline-flex !important;
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        flex: 0 0 44px !important;
    }

    .site-header.vard-v2-site-header .primary-nav,
    .site-header.vard-v2-site-header.is-scrolled .primary-nav,
    body.home .site-header.vard-v2-site-header:not(.is-scrolled) .primary-nav,
    body:not(.home) .site-header.vard-v2-site-header:not(.is-scrolled) .primary-nav {
        top: calc(100% + 0.55rem) !important;
        right: 0 !important;
        left: 0 !important;
        width: auto !important;
        max-height: calc(100svh - 86px) !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
    }

    .site-header.vard-v2-site-header .primary-nav .menu,
    .site-header.vard-v2-site-header .primary-nav ul {
        grid-template-columns: 1fr !important;
    }

    .site-header.vard-v2-site-header .primary-nav a {
        width: 100% !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .site-header.vard-v2-site-header .primary-nav .menu > li {
        min-width: 0 !important;
    }

    .site-header.vard-v2-site-header .destination-mega,
    .site-header.vard-v2-site-header .primary-nav .destination-mega {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    .site-header.vard-v2-site-header .destination-mega__inner,
    .site-header.vard-v2-site-header .primary-nav .destination-mega__inner {
        grid-template-columns: 1fr !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .site-header.vard-v2-site-header .destination-mega__grid,
    .site-header.vard-v2-site-header .primary-nav .destination-mega__grid {
        grid-template-columns: 1fr !important;
    }

    .ab-feature__inner,
    .ab-feature--reverse .ab-feature__inner,
    .hp-split,
    .hp-split--flip,
    .dest-guide-section,
    .dest-guide-section--flip,
    .hotel-single-section,
    .hotel-single-section--reverse,
    .dest-chapter,
    .dest-chapter--flip,
    .nbi-intro__row,
    .nbi-intro__row--reverse,
    .vard-v2-story-lede,
    .vard-contact-grid,
    .vard-process-layout,
    .vard-story-grid,
    .vard-promise-grid,
    .vard-cta-inner,
    .hotel-single-glance__inner,
    .hotel-single-highlights__inner,
    .hotel-single-cta__inner {
        display: grid !important;
        grid-template-columns: 1fr !important;
        direction: ltr !important;
        min-height: 0 !important;
    }

    .dest-guide-section--flip > *,
    .dest-chapter--flip > *,
    .nbi-intro__row--reverse > *,
    .ab-feature--reverse .ab-feature__inner > * {
        direction: ltr !important;
    }

    .dest-guide-section__visual,
    .hotel-single-section__media,
    .dest-chapter__visual,
    .ab-photo,
    .ab-collage,
    .hp-split__visual,
    .nbi-intro__img-col,
    .vard-process-media,
    .vard-story-media,
    .vard-promise-media {
        width: 100% !important;
        min-height: clamp(280px, 58vw, 460px) !important;
        max-height: none !important;
    }

    .dest-guide-section__visual img,
    .hotel-single-section__media img,
    .dest-chapter__visual img,
    .ab-photo img,
    .ab-collage img,
    .hp-split__visual img,
    .nbi-intro__img-col img,
    .vard-process-media img,
    .vard-story-media img,
    .vard-promise-media img {
        width: 100% !important;
        height: 100% !important;
        min-height: clamp(280px, 58vw, 460px) !important;
        object-fit: cover !important;
    }

    .dest-guide-section__body,
    .dest-guide-section--flip .dest-guide-section__body,
    .hotel-single-section__content,
    .dest-chapter__body,
    .dest-chapter--flip .dest-chapter__body,
    .ab-copy,
    .hp-split__body,
    .nbi-intro__text-col {
        padding-right: clamp(1.1rem, 5vw, 2rem) !important;
        padding-left: clamp(1.1rem, 5vw, 2rem) !important;
    }

    .dest-guide-section__inner,
    .hotel-single-section__content,
    .dest-chapter__inner,
    .ab-copy,
    .hp-split__inner,
    .nbi-intro__text-col,
    .vard-v2-story-copy {
        max-width: 100% !important;
    }

    .dest-guide-hero,
    .hotel-single-hero,
    .vard-v2-hero,
    .ab-hero,
    .hp2-hero,
    .hp-hero {
        min-height: clamp(560px, 78svh, 760px) !important;
        height: auto !important;
    }

    .dest-guide-hero__content,
    .source-reader-hero__content,
    .vard-v2-hero__inner,
    .ab-hero__content,
    .hp2-hero-content,
    .hp-hero__content {
        width: calc(100% - 2rem) !important;
        max-width: 760px !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    .dest-guide-hero__facts,
    .dest-guide-overview__facts,
    .dest-guide-facts,
    .dest-chapter__facts,
    .hotel-single-glance__facts,
    .vard-tour-glance__inner,
    .vard-contact-stats,
    .ab-process__grid,
    .vard-reason-grid,
    .vard-steps-grid,
    .source-library__grid,
    .dest-tours-grid,
    .nbi-exp-grid,
    .nbi-collection__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .dest-property-card {
        grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1fr) !important;
    }

    .dest-guide-image-library__grid,
    .hotel-single-gallery__grid,
    .vard-gallery,
    .nbi-single__gallery-grid,
    .source-file-archive__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        grid-auto-rows: auto !important;
    }
}

@media (max-width: 760px) {
    .container,
    .vard-container,
    .vard-v2-container,
    .dest-index__shell,
    .source-library__shell,
    .source-reader-main__shell,
    .dest-guide-overview .vard-container,
    .dest-property-directory .vard-container,
    .dest-tours-grid-section .vard-container,
    .dest-guide-image-library .vard-container {
        width: calc(100% - 1.5rem) !important;
        max-width: calc(100% - 1.5rem) !important;
        margin-right: auto !important;
        margin-left: auto !important;
    }

    h1,
    .dest-guide-hero__title,
    .hotel-single-hero .dest-guide-hero__title,
    .vard-v2-hero__title,
    .ab-hero__title,
    .hp2-hero-content h1,
    .hp-hero__content h1 {
        font-size: clamp(2.55rem, 12vw, 4.4rem) !important;
        line-height: 0.98 !important;
        letter-spacing: 0 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    h2,
    .dest-guide-section__h2,
    .hotel-single-section__h2,
    .hotel-single-highlights__h2,
    .hotel-single-gallery__h2,
    .hotel-single-cta__h2,
    .dest-chapter__inner h2,
    .source-reader-main__aside h2,
    .source-library__intro h2,
    .dest-index__intro h2,
    .ab-copy h2,
    .ab-process__title,
    .vard-section-head h2,
    .vard-cta-copy h2,
    .nbi-section-head h2,
    .nbi-collection__intro h1 {
        max-width: 100% !important;
        font-size: clamp(2.1rem, 9.5vw, 3.4rem) !important;
        line-height: 1.03 !important;
        letter-spacing: 0 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    h3,
    .source-library__card h3,
    .dest-property-card__name,
    .dest-tour-card h3,
    .nbi-exp-card h3 {
        font-size: clamp(1.35rem, 6vw, 2rem) !important;
        line-height: 1.12 !important;
    }

    p,
    li,
    .dest-guide-section__lead,
    .dest-guide-section__body-text,
    .hotel-single-section__lead,
    .hotel-single-section__p,
    .destination-richtext,
    .ab-copy p,
    .source-reader-main__document pre {
        font-size: clamp(0.95rem, 3.7vw, 1.05rem) !important;
        line-height: 1.68 !important;
    }

    .eyebrow,
    .dest-guide-eyebrow,
    .hotel-single-eyebrow,
    .ab-eyebrow {
        letter-spacing: 0.12em !important;
        overflow-wrap: anywhere !important;
    }

    .dest-guide-hero__facts,
    .dest-guide-overview__facts,
    .dest-guide-facts,
    .dest-chapter__facts,
    .hotel-single-glance__facts,
    .vard-tour-glance__inner,
    .vard-contact-stats,
    .ab-process__grid,
    .vard-reason-grid,
    .vard-steps-grid,
    .source-library__grid,
    .dest-tours-grid,
    .nbi-exp-grid,
    .nbi-collection__grid,
    .dest-guide-image-library__grid,
    .hotel-single-gallery__grid,
    .vard-gallery,
    .nbi-single__gallery-grid,
    .source-file-archive__grid {
        grid-template-columns: 1fr !important;
    }

    .dest-property-list {
        display: grid !important;
        gap: 1rem !important;
    }

    .dest-property-card,
    .dest-property-card--no-image {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .dest-property-card__media {
        min-height: 230px !important;
    }

    .dest-property-card__num {
        position: static !important;
        width: fit-content !important;
        margin: 1rem 1rem 0 !important;
    }

    .dest-property-card__body {
        padding: 1rem !important;
    }

    .dest-property-card__link {
        width: calc(100% - 2rem) !important;
        margin: 0 1rem 1rem !important;
        justify-content: center !important;
    }

    .dest-guide-section,
    .dest-guide-section--flip,
    .hotel-single-section,
    .hotel-single-section--reverse,
    .dest-chapter,
    .dest-chapter--flip {
        margin: 0 !important;
        padding: 0 !important;
    }

    .dest-guide-section__visual,
    .hotel-single-section__media,
    .dest-chapter__visual {
        min-height: 300px !important;
    }

    .dest-guide-section__visual img,
    .hotel-single-section__media img,
    .dest-chapter__visual img {
        min-height: 300px !important;
    }

    .dest-guide-nav .vard-container,
    .dest-guide-nav ul,
    .dest-guide-hero__facts,
    .source-reader-hero__meta,
    .dest-guide-tour-pills,
    .nbi-intro__pills,
    .nbi-things__pills,
    .vard-pill-grid {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        scroll-snap-type: x proximity !important;
    }

    .dest-guide-nav a,
    .dest-guide-hero__facts li,
    .source-reader-hero__meta span,
    .source-reader-hero__meta a,
    .dest-guide-tour-pills span,
    .nbi-pill,
    .vard-pill-grid span {
        flex: 0 0 auto !important;
    }

    .vard-form-grid,
    .vard-ft-newsletter__form,
    .search-form {
        grid-template-columns: 1fr !important;
    }

    .vard-form-submit,
    .vard-cta-actions,
    .ab-actions,
    .hp2-hero-actions,
    .hp-hero__actions,
    .nbi-single__cta-row,
    .source-library__actions {
        align-items: stretch !important;
        flex-direction: column !important;
    }

    .btn,
    .hp2-btn,
    .hp2-btn-gold,
    .hp2-btn-ghost,
    .ab-button,
    .dest-guide-cta-btn,
    .vard-about-cta-btn,
    .hotel-single-cta__btn,
    .hotel-single-glance__cta,
    .nbi-card-cta,
    .source-library__actions a,
    .vard-form-submit button,
    .vard-ft-newsletter__form button {
        display: inline-flex !important;
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
    }

    .dest-guide-map-section__frame iframe,
    .dest-guide-map iframe {
        min-height: 300px !important;
        height: 300px !important;
    }

    .vard-whatsapp-fab {
        right: 1rem !important;
        bottom: 1rem !important;
        width: 56px !important;
        height: 56px !important;
    }
}

@media (max-width: 480px) {
    html body .site-header.vard-v2-site-header,
    html body .site-header.vard-v2-site-header.is-scrolled,
    html body.home .site-header.vard-v2-site-header:not(.is-scrolled),
    html body:not(.home) .site-header.vard-v2-site-header:not(.is-scrolled) {
        right: 0.35rem !important;
        left: 0.35rem !important;
        border-radius: 20px !important;
    }

    .site-header.vard-v2-site-header .brand-copy strong {
        max-width: calc(100vw - 6rem) !important;
        font-size: 1.14rem !important;
        letter-spacing: 0.1em !important;
    }

    .site-header.vard-v2-site-header .primary-nav,
    .site-header.vard-v2-site-header.is-scrolled .primary-nav {
        max-height: calc(100svh - 78px) !important;
        padding: 0.6rem !important;
        border-radius: 18px !important;
    }

    .dest-guide-hero,
    .hotel-single-hero,
    .vard-v2-hero,
    .ab-hero,
    .hp2-hero,
    .hp-hero {
        min-height: 620px !important;
    }

    h1,
    .dest-guide-hero__title,
    .hotel-single-hero .dest-guide-hero__title,
    .vard-v2-hero__title,
    .ab-hero__title,
    .hp2-hero-content h1,
    .hp-hero__content h1 {
        font-size: clamp(2.2rem, 13vw, 3.35rem) !important;
    }

    h2,
    .dest-guide-section__h2,
    .hotel-single-section__h2,
    .hotel-single-highlights__h2,
    .hotel-single-gallery__h2,
    .hotel-single-cta__h2,
    .dest-chapter__inner h2,
    .source-reader-main__aside h2,
    .source-library__intro h2,
    .dest-index__intro h2,
    .ab-copy h2,
    .ab-process__title,
    .vard-section-head h2,
    .vard-cta-copy h2,
    .nbi-section-head h2,
    .nbi-collection__intro h1 {
        font-size: clamp(1.9rem, 10.5vw, 2.85rem) !important;
    }

    .dest-guide-section__body,
    .dest-guide-section--flip .dest-guide-section__body,
    .hotel-single-section__content,
    .dest-chapter__body,
    .dest-chapter--flip .dest-chapter__body,
    .ab-copy,
    .hp-split__body,
    .nbi-intro__text-col,
    .vard-form-panel,
    .vard-contact-info-body {
        padding-right: 1rem !important;
        padding-left: 1rem !important;
    }

    .source-reader-main__document {
        padding: 0.9rem !important;
    }

    .source-file-archive__grid a,
    .source-library__card,
    .dest-index__card,
    .nbi-exp-card,
    .dest-tour-card,
    .vard-reason-card,
    .vard-step-card {
        min-width: 0 !important;
    }
}

@media (max-width: 980px) {
    html body.page-template-page-about .site-header.vard-v2-site-header .brand-copy strong,
    html body.page-template-page-about .site-header.vard-v2-site-header.is-scrolled .brand-copy strong {
        max-width: calc(100vw - 6.25rem) !important;
        overflow: visible !important;
        text-overflow: clip !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 480px) {
    html body.page-template-page-about .site-header.vard-v2-site-header .brand-copy strong,
    html body.page-template-page-about .site-header.vard-v2-site-header.is-scrolled .brand-copy strong {
        max-width: calc(100vw - 5.75rem) !important;
        font-size: 1rem !important;
        letter-spacing: 0.1em !important;
    }
}
