/* -------------------------------------------------------------------------- */
/* --------------------------- Import Google Fonts -------------------------- */

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Nothing+You+Could+Do&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');



/* -------------------------------------------------------------------------- */
/* -------------------- CSS Custom Properties (Variables) ------------------- */

:root {
    /* Fonts  */
    --font-inter: 'Inter', sans-serif;
    --font-brand: 'Nothing You Could Do', cursive;
    --font-roboto: 'Roboto', sans-serif;

    /* Official Colors */
    --ic-blue: #1E414B;
    --ic-blue-light: #415358;
    --ic-blue-lighter: #96A8AB;
    --ic-heliblau: #D5DCDD;
    --ic-dark-grau: #2F2F2F;
    --ic-light-grau: #494F51;
    --ic-gold: #C5A35B;
    --ic-gold-darker: #776132;
    --ic-cream: #D4CDC3;
    --ic-cream-deschis: #EFECE6;
    --ic-cream-f-deschis: #F8F7F6;
    --ic-glacier-white: #FAFAFA;
    --ic-white: #ffffff;
    --ic-skyblue-bg: #EAF4FC;
    --ic-skyblue-border: #CEE6F9;
    --ic-gold-star: #F5D60C;
    --ic-range-bg: #EEEEEE;
}



/* -------------------------------------------------------------------------- */
/* ---------------------- Basic Reset and Global Styles --------------------- */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: var(--font-inter);
}

html {
    /* 10px */
    font-size: 62.5%;
}

@media (max-width: 1440px) {
    html {
        /* 10px */
        font-size: 62.5%;
    }
}

@media (max-width: 1200px) {
    html {
        /* 9px */
        font-size: 56.25%;
    }
}

@media (max-width: 992px) {
    html {
        /* 8.48px */
        font-size: 53%;
    }
}

@media (max-width: 768px) {
    html {
        /* 8.48px */
        font-size: 53%;
    }
}

@media (max-width: 576px) {
    html {
        /* 8.2px */
        font-size: 51.25%;
    }
}

@media (max-width: 480px) {
    html {
        /* 8px */
        font-size: 50%;
    }
}

@media (max-width: 368px) {
    html {
        /* 7.84px */
        font-size: 49%;
    }
}

body {
    font-family: var(--font-inter);
    background-color: var(--ic-glacier-white);
    color: var(--ic-dark-grau);
    overflow-x: hidden;
}

img {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    pointer-events: auto;
}

ul,
ol {
    list-style: none;
    margin: 0;
    padding: 0;
    font-weight: 500;
}

a {
    text-decoration: none;
}

p {
    font-weight: 500;
}

.no-scroll {
    overflow: hidden;
}

.container {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 2rem;
}

.section {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.section-py-8 {
    padding-top: 8rem;
    padding-bottom: 8rem;
}

.section-py-11 {
    padding-top: 11rem;
    padding-bottom: 11rem;
}

.section-pt-8 {
    padding-top: 8rem;
}

.section-pb-8 {
    padding-bottom: 8rem;
}

.empty_section_divier_4 {
    width: 100%;
    height: 4rem;
    flex-shrink: 0;
}



/* -------------------------------------------------------------------------- */
/* -------------------------- Reusable Button Styles ------------------------ */

.btn_primary_fill,
.btn_primary_outline,
.btn_white_outline {
    padding: 0rem 2.4rem;
    border-radius: 5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    cursor: pointer;
    transition: 0.3s ease;
    border: 1px solid transparent;
    white-space: nowrap;
    flex-shrink: 0;
    font-family: var(--font-roboto);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.btn_primary_fill {
    background: var(--ic-blue);
    color: var(--ic-white);
}

.btn_primary_fill:hover {
    opacity: 0.9;
}

.btn_primary_outline {
    background: transparent;
    border-color: var(--ic-blue);
    color: var(--ic-blue);
}

.btn_primary_outline:hover {
    background: var(--ic-blue);
    color: var(--ic-white);
}

.btn_white_outline {
    background: transparent;
    border-color: var(--ic-white);
    color: var(--ic-white);
}

.btn_white_outline:hover {
    background: var(--ic-white);
    color: var(--ic-blue);
}



/* -------------------------------------------------------------------------- */
/* ------------------------ Reusable Components Styles ---------------------- */

/* ----- CUSTOM SELECT ----- */

.custom_select {
    position: relative;
    width: 100%;
}

.custom_select_trigger {
    width: 100%;
    height: 5.2rem;
    padding: 0 2.4rem;
    border: 1px solid var(--ic-blue);
    border-radius: 5rem;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.custom_select_arrow {
    color: var(--ic-blue);
    font-size: 1.4rem;
    transition: 0.3s ease;
}

.custom_select.active .custom_select_arrow {
    transform: rotate(180deg);
}

.custom_select_dropdown {
    position: absolute;
    top: calc(100% + .4rem);
    left: 0;
    width: 100%;
    background: var(--ic-white);
    border: 1px solid var(--ic-blue);
    border-radius: 2rem;
    padding: .8rem;
    box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .08);
    display: none;
    z-index: 50;
}

.custom_select.active .custom_select_dropdown {
    display: block;
}

.custom_select_option {
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    padding: 1.2rem 1.4rem;
    border-radius: 1.2rem;
    cursor: pointer;
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.custom_select_option:hover,
.custom_select_option.active {
    background: var(--ic-cream-deschis);
}

/* ----- CUSTOM RADIO GROUP ----- */

.custom_radio_group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
}

.custom_radio_option {
    height: 4rem;
    padding: 0 2rem;
    border-radius: 5rem;
    border: 1px solid var(--ic-blue);
    background: transparent;
    cursor: pointer;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
    transition: .3s ease;
}

.custom_radio_option.active {
    background: var(--ic-blue);
    color: var(--ic-white);
}

/* ----- CUSTOM CHECKBOX ----- */

.custom_check_item {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    cursor: pointer;
}

.custom_check_item input {
    width: 1.8rem;
    height: 1.8rem;
    cursor: pointer;
    accent-color: var(--ic-blue);
}

.custom_check_item span {
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

/* ----- CUSTOM RADIO ----- */

.custom_choice_item {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    cursor: pointer;
}

.custom_choice_item input {
    appearance: none;
    -webkit-appearance: none;
    width: 1.8rem;
    height: 1.8rem;
    border: 0.2rem solid var(--ic-blue-light);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    margin: 0;
    flex-shrink: 0;
}

.custom_choice_item input:checked {
    border: 0.6rem solid var(--ic-blue-light);
}

.custom_choice_item span {
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

/* ----- CUSTOM RANGE ----- */

.custom_range {
    width: 100%;
    --range-progress: 30%;
}

.custom_range input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 2.8rem;
    background: transparent;
    cursor: pointer;
    margin: 0;
}

.custom_range input[type="range"]::-webkit-slider-runnable-track {
    height: 0.4rem;
    border-radius: 5rem;
    background: linear-gradient(to right,
            var(--ic-gold) 0%,
            var(--ic-gold) var(--range-progress),
            var(--ic-range-bg) var(--range-progress),
            var(--ic-range-bg) 100%);
}

.custom_range input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background: var(--ic-white);
    border: 0.3rem solid var(--ic-heliblau);
    margin-top: -0.9rem;
    box-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.08);
}

.custom_range input[type="range"]::-moz-range-track {
    height: 0.4rem;
    border-radius: 5rem;
    background: var(--ic-glacier-white);
}

.custom_range input[type="range"]::-moz-range-progress {
    height: 0.4rem;
    border-radius: 5rem;
    background: var(--ic-gold);
}

.custom_range input[type="range"]::-moz-range-thumb {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: var(--ic-white);
    border: 0.2rem solid var(--ic-cream);
    box-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.08);
}

.custom_range_values {
    margin-top: 1rem;
    display: flex;
    justify-content: space-between;
}

.custom_range_values span {
    font-size: 1.6rem;
    color: var(--ic-blue);
}

/* ----- CUSTOM SWITCH ----- */

.custom_switch {
    position: relative;
    display: inline-block;
    width: 5rem;
    height: 2.8rem;
}

.custom_switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.custom_switch_slider {
    position: absolute;
    inset: 0;
    background: var(--ic-blue-lighter);
    border-radius: 5rem;
    cursor: pointer;
    transition: .3s ease;
}

.custom_switch_slider::before {
    content: "";
    position: absolute;
    width: 2rem;
    height: 2rem;
    left: .4rem;
    top: .4rem;
    background: var(--ic-white);
    border-radius: 50%;
    transition: .3s ease;
}

.custom_switch input:checked+.custom_switch_slider {
    background: var(--ic-blue);
}

.custom_switch input:checked+.custom_switch_slider::before {
    transform: translateX(2.2rem);
}

/* ----- CUSTOM TABS ----- */

.custom_tabs {
    margin-top: 2.4rem;
    padding: 0.4rem;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--ic-heliblau);
    border-radius: 5rem;
    background: transparent;
}

.custom_tabs.bg_white {
    background: var(--ic-white);
}

.custom_tab {
    min-width: fit-content;
    height: 4rem;
    padding: 0 2rem;
    border: none;
    border-radius: 5rem;
    background: transparent;
    color: var(--ic-blue);
    font-size: 1.6rem;
    cursor: pointer;
    transition: 0.3s ease;
}

.custom_tab.active {
    background: var(--ic-blue);
    color: var(--ic-white);
}



/* -------------------------------------------------------------------------- */
/* --------------------------------- Header --------------------------------- */

.header {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    background: var(--ic-glacier-white);
    border-top: 1px solid var(--ic-blue-lighter);
}


/* Header Navbar */
.header .header_navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding-top: 1.8rem;
    padding-bottom: 1.8rem;
}

/* Header Brand */
.header .header_brand {
    flex: 1;
    display: flex;
    align-items: center;
}

.header .header_brand_link,
.header .header_brand_picture {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: fit-content;
    line-height: 0;
}

.header .header_brand_logo {
 display: block;
    width: auto;
    max-width: 35rem;
    max-height: 4.2rem;
    height: auto;
    object-fit: contain;
}

/* Header Actions */
.header .header_actions {
    display: flex;
    align-items: center;
    gap: 2.8rem;
}


.header .header_icon_btn,
.header .header_menu_btn,
.header .header_close_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--ic-blue);
    transition: 0.3s ease;
}

.header .header_icon_btn:hover,
.header .header_menu_btn:hover,
.header .header_close_btn:hover {
    color: var(--ic-gold);
}

.header .header_icon_btn a {
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.header #angeboteBtn,
.header #angeboteBtn:hover {
    color: var(--ic-gold);
}

.header .header_icon_btn svg,
.header .header_menu_btn svg {
    width: 2rem;
    height: 2rem;
    display: block;
    fill: currentColor;
    transition: 0.3s ease;
}

.header .header_close_btn svg {
    width: 3rem;
    height: 3rem;
    display: block;
    fill: currentColor;
    transition: 0.3s ease;
}

.header .header_contact_btn {
    width: fit-content;
    height: 4rem;
}
/* Header contact flyout */
.header .header_contact_wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.header .header_contact_flyout {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 1005;
    min-width: 30rem;
    padding-top: 1.4rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-0.8rem);
    transition: 0.25s ease;
    pointer-events: none;
}

.header .header_contact_wrap:hover .header_contact_flyout,
.header .header_contact_wrap:focus-within .header_contact_flyout,
.header .header_contact_wrap.active .header_contact_flyout {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.header .header_contact_flyout_inner {
    padding: 2.2rem;
    border-radius: 1.2rem;
    background: var(--ic-white);
    box-shadow: 0 1.2rem 4rem rgba(0, 0, 0, 0.14);
    color: var(--ic-dark-grau);
}

.header .header_contact_flyout_group {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 1.6rem;
}

.header .header_contact_flyout_group strong {
    color: var(--ic-dark-grau);
    font-size: 1.6rem;
    line-height: 140%;
    font-weight: 600;
}
.header .header_contact_flyout_group span {
    color: var(--ic-dark-grau);
    font-size: 1.4rem;
    line-height: 150%;
    font-weight: 400;
}
.header .header_contact_flyout_group a {
    color: var(--ic-blue);
    font-size: 1.6rem;
    line-height: 150%;
    font-weight: 500;
    text-decoration: none;
}

.header .header_contact_flyout_link {
    display: inline-flex;
    margin-top: 0.4rem;
    color: var(--ic-blue-light);
    font-size: 1.5rem;
    line-height: 150%;
    font-weight: 600;
    text-decoration: none;
}

.header .header_contact_flyout_link:hover {
    color: var(--ic-blue);
}
/* Mobile contact sticky + modal */
.mobile_contact_sticky {
    display: none;
}

.mobile_contact_modal {
    display: none;
}

.mobile_contact_modal.active {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: flex-end;
}

.mobile_contact_modal_overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
}

.mobile_contact_modal_box {
    position: relative;
    z-index: 1;
    width: 100%;
    max-height: 82vh;
    overflow-y: auto;
    padding: 3.2rem 2.4rem 2.8rem;
    border-radius: 2.4rem 2.4rem 0 0;
    background: var(--ic-white);
    color: var(--ic-dark-grau);
    box-shadow: 0 -1rem 4rem rgba(0, 0, 0, 0.16);
}

.mobile_contact_modal_close {
    position: absolute;
    top: 1.4rem;
    right: 2rem;
    border: none;
    background: transparent;
    color: var(--ic-dark-grau);
    font-size: 3rem;
    line-height: 1;
    cursor: pointer;
}

.mobile_contact_modal_title {
    margin: 0 0 2.4rem;
    font-size: 2.4rem;
    line-height: 120%;
    font-weight: 600;
}

.mobile_contact_modal_group {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 2rem;
}

.mobile_contact_modal_group strong {
    font-size: 1.6rem;
    line-height: 140%;
    font-weight: 600;
}
.mobile_contact_modal_group span {
    color: var(--ic-dark-grau);
    font-size: 1.4rem;
    line-height: 150%;
    font-weight: 400;
}
.mobile_contact_modal_group a {
    color: var(--ic-blue);
    font-size: 1.8rem;
    line-height: 150%;
    font-weight: 600;
    text-decoration: none;
}

.mobile_contact_modal_btn {
    width: 100%;
    height: 5.2rem;
    min-height: 5.2rem;
    margin-top: 1.6rem;
    font-size: 1.6rem;
    font-weight: 600;
}

body.no-scroll .mobile_contact_sticky {
    display: none !important;
}
body.holiday_date_range_open .mobile_contact_sticky {
    display: none !important;
}
@media (max-width: 991px) {
    .header .header_contact_wrap {
        display: none;
    }

    .mobile_contact_sticky {
        position: fixed;
        right: 2rem;
        bottom: calc(2rem + env(safe-area-inset-bottom));
        z-index: 9999;
        display: flex;
        justify-content: flex-end;
        pointer-events: none;
    }

    .mobile_contact_sticky_btn {
        width: auto;
        min-width: 14rem;
        height: 5.2rem;
        padding: 0 2.4rem;
        border: 1px solid var(--ic-heliblau);
        border-radius: 999px;
        background: var(--ic-white);
        color: var(--ic-blue);
        font-size: 1.6rem;
        font-weight: 600;
        cursor: pointer;
        pointer-events: auto;
        box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.18);
    }

    .mobile_contact_sticky_btn:hover {
        background: var(--ic-glacier-white);
    }
}
@media (min-width: 769px) and (max-width: 991px) {
    .mobile_contact_modal.active {
        align-items: center;
        justify-content: center;
        padding: 2rem;
    }

    .mobile_contact_modal_box {
        max-width: 52rem;
        border-radius: 2.4rem;
    }
}
/* Header Overlay */
.header .header_overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    visibility: hidden;
    cursor: pointer;
    transition: 0.3s ease;
}

/* Header Sidebar */
.header .header_sidebar {
    position: fixed;
    top: 0;
    right: -68rem;
    width: 48rem;
    max-width: 100%;
    height: 100dvh;
    background: var(--ic-glacier-white);
    border-left: 1px solid var(--ic-blue-lighter);
    overflow-y: auto;
    transition: 0.1s ease;
}

.header .header_close_btn {
    position: absolute;
    top: 2.8rem;
    right: 2.8rem;
}

.header .header_sidebar_inner {
    padding: 8rem 5.8rem 4rem;
}

.header .header_sidebar_nav {
    display: flex;
    flex-direction: column;
    gap: 2.8rem;
}

.header .header_sidebar_nav a {
    color: var(--ic-blue);
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1.25;
    transition: 0.3s ease;
}

.header .header_sidebar_nav a:hover {
    color: var(--ic-blue-lighter);
}

.header .header_sidebar_info {
    margin-top: 4.2rem;
}

.header .header_sidebar_info a,
.header .header_sidebar_info p {
    display: block;
    margin-bottom: 0.8rem;
    color: var(--ic-blue);
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.5;
}

.header .header_sidebar_info a {
    text-decoration: underline;
}

.header .header_sidebar_social {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-top: 2.6rem;
}

.header .header_sidebar_social a {
    color: var(--ic-blue);
    transition: 0.3s ease;
}

.header .header_sidebar_social a:hover {
    color: var(--ic-gold);
}

.header .header_sidebar_social a svg {
    width: 2.2rem;
    height: 2.2rem;
    display: block;
    fill: currentColor;
}

/* Nav Drill Down */
.nav_panel {
    display: none;
}

.nav_panel.nav_panel_active {
    display: block;
}

.nav_panel.nav_slide_in_right {
    display: block;
    animation: nav_slide_in_right 0.28s ease forwards;
}

.nav_panel.nav_slide_in_left {
    display: block;
    animation: nav_slide_in_left 0.28s ease forwards;
}

.nav_panel.nav_slide_out_left {
    display: block;
    animation: nav_slide_out_left 0.28s ease forwards;
}

.nav_panel.nav_slide_out_right {
    display: block;
    animation: nav_slide_out_right 0.28s ease forwards;
}

@keyframes nav_slide_in_right {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0);    opacity: 1; }
}

@keyframes nav_slide_in_left {
    from { transform: translateX(-20%); opacity: 0; }
    to   { transform: translateX(0);    opacity: 1; }
}

@keyframes nav_slide_out_left {
    from { transform: translateX(0);    opacity: 1; }
    to   { transform: translateX(-20%); opacity: 0; }
}

@keyframes nav_slide_out_right {
    from { transform: translateX(0);   opacity: 1; }
    to   { transform: translateX(100%); opacity: 0; }
}

.nav_back_btn {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin-bottom: 2.8rem;
    color: var(--ic-blue);
    font-size: 1.6rem;
    font-weight: 600;
    transition: 0.3s ease;
}

.nav_back_btn:hover {
    color: var(--ic-blue-lighter);
}

.nav_drill_btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    color: var(--ic-blue);
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1.25;
    transition: 0.3s ease;
    padding: 0;
}

.nav_drill_btn:hover {
    color: var(--ic-blue-lighter);
}

/* Header Active */
.header.header_active .header_overlay {
    opacity: 1;
    visibility: visible;
}

.header.header_active .header_sidebar {
    right: 0;
}

/* ---------- Header Responsive ---------- */

@media (max-width: 768px) {

    /* Header Actions */
    .header .header_icon_btn svg,
    .header .header_menu_btn svg {
        width: 2.2rem;
        height: 2.2rem;
    }

    /* Header Brand */
    .header .header_brand_logo {
        max-height: 5rem;
    }

    /* Header Sidebar */
    .header .header_sidebar_inner {
        padding: 8rem 4.5rem 4rem;
    }
}

@media (max-width: 480px) {

    /* Header Actions */
    .header .header_contact_btn {
        display: none;
    }

    .header .header_icon_btn svg,
    .header .header_menu_btn svg {
        width: 2.4rem;
        height: 2.4rem;
    }

    /* Header Sidebar */
    .header .header_sidebar {
        width: 100%;
    }

    .header .header_sidebar_inner {
        padding: 8rem 3.8rem 4rem;
    }
}



/* -------------------------------------------------------------------------- */
/* --------------------------------- Footer --------------------------------- */

.footer {
    padding-top: 8rem;
    padding-bottom: 3.2rem;
    background: var(--ic-blue);
    color: var(--ic-white);
}

/* Footer Main */
.footer .footer_main {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 6.2rem;
    padding-bottom: 8rem;
    border-bottom: 1px solid var(--ic-blue-light);
}

/* Footer Newsletter */
.footer .footer_newsletter {
    max-width: 56rem;
}

.footer .footer_brand_logo {
    display: block;
    width: auto;
    height: 3.2rem;
}

.footer .footer_newsletter_text {
    max-width: 56rem;
    margin-top: 2.4rem;
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0.5px;
}

.footer .footer_form {
    display: flex;
    align-items: center;
    gap: 1.6rem;
    margin-top: 2.4rem;
}

.footer .footer_input {
    flex: 1;
    height: 4.8rem;
    padding: 0 2.4rem;
    outline: none;
    border: 1px solid var(--ic-glacier-white);
    border-radius: 5rem;
    background: transparent;
    cursor: pointer;
    color: var(--ic-white);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.footer .footer_input::placeholder {
    color: var(--ic-blue-lighter);
}

.footer .footer_submit_btn {
    width: fit-content;
    align-self: stretch;
}

.footer .footer_policy_text {
    margin-top: 1.2rem;
    font-weight: 300;
    font-size: 1.2rem;
    line-height: 150%;
    letter-spacing: 0.5px;
}

.footer .footer_policy_text a {
    color: var(--ic-white);
    text-decoration: underline;
}

/* Footer Links */
.footer .footer_links {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3.2rem;
}

.footer .footer_links .footer_column {
    max-width: 17.8rem;
}

.footer .footer_title {
    margin-bottom: 2.4rem;
    font-weight: 300;
    font-size: 2.4rem;
    line-height: 24px;
    letter-spacing: 0.5px;
}

.footer .footer_list,
.footer .footer_social_list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.footer .footer_list a,
.footer .footer_social_list a {
    color: var(--ic-white);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.footer .footer_list a:hover,
.footer .footer_bottom_links a:hover {
    color: var(--ic-blue-lighter);
}

.footer .footer_social_list a {
    display: flex;
    align-items: center;
    gap: 1.8rem;
    color: var(--ic-white);
    transition: 0.3s ease;
}

.footer .footer_social_list a:hover {
    color: var(--ic-gold);
}

.footer .footer_social_list svg {
    width: 2rem;
    height: 2rem;
    display: block;
    fill: currentColor;
    flex-shrink: 0;
    transition: 0.3s ease;
}

/* Footer Bottom */
.footer .footer_bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    padding-top: 3.2rem;
}

.footer .footer_copy {
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 0.5px;
}

.footer .footer_bottom_links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3.2rem;
}

.footer .footer_bottom_links a {
    color: var(--ic-white);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 0.5px;
    text-decoration: underline;
    transition: 0.3s ease;
}

/* ---------- Footer Responsive ---------- */

@media (max-width: 991px) {

    .footer {
        text-align: center;
    }

    /* Footer Main */
    .footer .footer_main {
        grid-template-columns: 1fr;
        gap: 4.2rem;
        padding-bottom: 6.2rem;
    }

    /* Footer Newsletter */
    .footer .footer_newsletter {
        display: flex;
        flex-direction: column;
        align-items: center;
        max-width: 80rem;
        margin: auto;
    }

    .footer .footer_form {
        width: 100%;
        flex-direction: row;
    }

    .footer .footer_submit_btn {
        flex-shrink: 0;
    }

    .footer .footer_policy_text {
        margin-left: auto;
        margin-right: auto;
    }

    /* Footer Links */
    .footer .footer_links {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-around;
        gap: 0;
        width: 100%;
        text-align: start;
        max-width: 80rem;
        margin: auto;
    }

    .footer .footer_links .footer_column {
        flex: 0 0 auto;
    }

    /* Footer Bottom */
    .footer .footer_bottom {
        flex-direction: column;
        text-align: center;
    }

    .footer .footer_bottom_links {
        justify-content: center;
        gap: 2rem;
    }
}

@media (max-width: 768px) {

    /* Footer Newsletter */
    .footer .footer_newsletter {
        max-width: 60rem;
        margin: auto;
    }

    .footer .footer_form {
        flex-direction: column;
        align-items: stretch;
    }

    .footer .footer_form .footer_input,
    .footer .footer_form .footer_submit_btn {
        width: 100%;
        height: 5.2rem;
        flex: none;
    }

    /* Footer Links */
    .footer .footer_links {
        display: grid;
        grid-template-columns: 1fr;
        text-align: center;
        gap: 4.2rem;
    }

    .footer .footer_links .footer_column {
        min-width: auto;
        max-width: 100%;
    }

    .footer .footer_column:nth-child(3) .footer_social_list {
        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;
        gap: 2rem;
    }

    .footer .footer_column:nth-child(3) .footer_social_list span {
        display: none;
    }

    .footer .footer_column:nth-child(3) .footer_social_list a {
        justify-content: center;
    }

    .footer .footer_column:nth-child(3) .footer_social_list svg {
        width: 2.2rem;
        height: 2.2rem;
    }
}



/* -------------------------------------------------------------------------- */
/* ------------------------------ Hero Section ------------------------------ */

.hero_section {
    overflow: hidden;
}

.hero_section .hero_section_container {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    min-height: 50rem;
}

/* Hero Content */
.hero_section .hero_section_content {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.hero_section .hero_section_content_inner {
    width: 100%;
    max-width: 72rem;
    padding-left: 2rem;
    padding-right: 8rem;
}

.hero_section .hero_section_title {
    max-width: 52rem;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4.8rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.hero_section .hero_section_text {
    max-width: 52rem;
    margin-top: 2.4rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.ship_hero_section .hero_section_text * {
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
}

.ship_hero_section .hero_section_text p {
    margin: 0;
}
.hero_section .hero_section_actions {
    margin-top: 3.2rem;
    display: flex;
    align-items: center;
    gap: 2rem;
}

.hero_section .hero_section_actions a {
    width: fit-content;
    height: 4.8rem;
}


/* Hero Image */
.hero_section .hero_section_media {
    min-height: 50rem;
}

.hero_section .hero_section_image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left;
}

/* ---------- Hero Section Responsive ---------- */

@media (max-width: 991px) {

    .hero_section .hero_section_container {
        display: block;
        min-height: initial;
    }

    /* Hero Content */
    .hero_section .hero_section_content {
        align-items: center;
        justify-content: flex-start;
    }

    .hero_section .hero_section_content_inner {
        max-width: 100%;
        padding: 10rem 2rem;
    }

    .hero_section .hero_section_title {
        color: var(--ic-white);
    }

    .hero_section .hero_section_text {
        color: var(--ic-white);
    }

    .hero_section .hero_section_btn_primary {
        background: var(--ic-white);
        color: var(--ic-blue);
    }

    .hero_section .hero_section_btn_outline {
        color: var(--ic-white);
        border-color: var(--ic-white);
    }

    .hero_section .hero_section_btn_outline:hover {
        background: var(--ic-white);
        color: var(--ic-blue);
        border-color: var(--ic-white);
    }

    /* Hero Image */
    .hero_section .hero_section_media {
        position: absolute;
        inset: 0;
        min-height: auto;
    }

    .hero_section .hero_section_image {
        position: absolute;
        inset: 0;
    }

    .hero_section .hero_section_media::after {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.65);
    }
}

@media (max-width: 768px) {

    /* Hero Content */
    .hero_section .hero_section_title {
        font-size: 4.2rem;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    .hero_section .hero_section_text,
    .hero_section .hero_section_text p {
        font-size: 1.7rem;
        line-height: 155%;
    }

    .hero_section .hero_section_actions {
        flex-wrap: wrap;
    }
}


/* ---------------------------- Hero Full Section --------------------------- */

.hero_full_section {
    overflow: hidden;
}

/* Hero Image */
.hero_full_section .hero_full_section_media {
    position: relative;
    width: 100%;
    height: 60rem;
    overflow: hidden;
}

.hero_full_section .hero_full_section_image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero_full_section .hero_full_section_image.image_position_bottom {
    object-position: center bottom;
}

/* Type Layer: Luxus / Expedition */
.hero_full_section .hero_full_section_type_layer {
    position: absolute;
    left: 50%;
    bottom: -2rem;
    z-index: 2;
    display: block;
    width: 102%;
    max-width: none;
    height: auto;
    transform: translateX(-50%);
    pointer-events: none;
}
.hero_full_section .hero_full_section_type_layer_expedition {
    bottom: -2rem;
}

.hero_full_section .hero_full_section_type_layer_luxus {
    bottom: -6rem;
}
/* Hero Content */
.hero_full_section .hero_full_section_content {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.hero_full_section .hero_full_section_content_inner {
    max-width: 76rem;
    text-align: center;
    position: relative;
}

.hero_full_section .hero_full_section_partner_logo {
    position: absolute;
    top: 0rem;
    right: -32rem;
    z-index: 2;
    max-width: 22rem;
}

.hero_full_section .hero_full_section_partner_logo img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}


.hero_full_section .hero_full_section_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4.8rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.hero_full_section .hero_full_section_text {
    margin-top: 3.2rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.hero_full_section .hero_full_section_text p {
    margin: 0;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.hero_full_section .hero_full_section_actions {
    margin-top: 3.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.6rem;
    width: 100%;
}

.hero_full_section .hero_full_section_actions .hero_section_btn_primary,
.hero_full_section .hero_full_section_actions .hero_section_btn_outline {
    width: fit-content;
    height: 4.8rem;
}

/* ---------- Hero Full Section Responsive ---------- */

@media (max-width: 1440px) {

    .hero_full_section .hero_full_section_partner_logo {
        right: -20rem;
    }

}

@media (max-width: 1200px) {

    .hero_full_section .hero_full_section_partner_logo {
        right: -16rem;
    }

}

@media (max-width: 991px) {

    /* Hero Image */
    .hero_full_section .hero_full_section_media {
        height: 44rem;
    }

    /* Hero Content */
    .hero_full_section .hero_full_section_title {
        font-size: 4rem;
    }

    .hero_full_section .hero_full_section_partner_logo {
        position: static;
        margin: 0 auto 2rem;
        max-width: 16rem;
    }
}

@media (max-width: 768px) {

    /* Hero Image */
    .hero_full_section .hero_full_section_media {
        height: 30rem;
    }

    /* Hero Content */
    .hero_full_section .hero_full_section_title {
        font-size: 3.2rem;
    }

}



/* -------------------------------------------------------------------------- */
/* ------------------------- Holiday Search Section ------------------------- */

.holiday_search_section {
    margin-top: 1.6rem;
    padding-top: 4.8rem;
    padding-bottom: 4.8rem;
    position: relative;
    background-color: var(--ic-cream-deschis);
    background-image: url("../assets/backgrounds/logo-pattern-bg.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.holiday_search_section .holiday_search_title {
    text-align: center;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

/* Holiday Search Form */
.holiday_search_section .holiday_search_form {
    display: grid;
    grid-template-columns: repeat(4, 1fr) auto;
    align-items: center;
    gap: 1.6rem;
    margin-top: 3.2rem;
    padding: 1.6rem;
    border: 1px solid var(--ic-cream);
    border-radius: 6rem;
    background: var(--ic-white);
}

/* Holiday Search Group */
.holiday_search_section .holiday_search_group {
    height: 4.8rem;
}

.holiday_search_section .holiday_search_group .custom_select_trigger {
    height: 100%;
    border-color: var(--ic-blue-lighter);
}

.holiday_search_section .holiday_search_group .custom_select_dropdown {
    border-color: var(--ic-blue-lighter);
}


.holiday_search_section .holiday_search_group .custom_select_placeholder {
    display: flex;
    align-items: center;
    gap: 1.2rem;
}

.holiday_search_section .custom_select_placeholder svg {
    width: 2rem;
    height: 2rem;
    color: var(--ic-blue-light);
    fill: currentColor;
    flex-shrink: 0;
    display: block;
}

.holiday_search_section .holiday_search_group .custom_select_trigger .custom_select_arrow {
    color: var(--ic-blue-light);
}

/* Holiday Search Btn */
.holiday_search_section .holiday_search_btn {
    height: 4.8rem;
}


/* Holiday Search Multi Select: Reederei + Destination */
.holiday_search_section .holiday_search_group[data-qs-field="red"] .custom_select_placeholder,
.holiday_search_section .holiday_search_group[data-qs-field="region"] .custom_select_placeholder,
.holiday_search_section .holiday_search_group[data-qs-field="dur"] .custom_select_placeholder {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.holiday_search_section .holiday_search_group[data-qs-field="red"] .custom_select_dropdown,
.holiday_search_section .holiday_search_group[data-qs-field="region"] .custom_select_dropdown,
.holiday_search_section .holiday_search_group[data-qs-field="dur"] .custom_select_dropdown {
    max-height: 34rem;
    overflow: hidden;
    padding: 0.8rem;
}

.holiday_search_section .custom_select_search_wrap {
    padding-bottom: 0.8rem;
}

.holiday_search_section .custom_select_search_input {
    width: 100%;
    height: 4.4rem;
    padding: 0 1.4rem;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 1.2rem;
    outline: none;
    color: var(--ic-blue);
    font-size: 1.5rem;
    line-height: 140%;
    background: var(--ic-white);
}

.holiday_search_section .custom_select_options_scroll {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    max-height: 25rem;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-right: 0.4rem;
    scrollbar-gutter: stable;
}

.holiday_search_section .custom_select_multi_option {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 4rem;
    padding: 0.8rem 1rem;
    font-size: 1.5rem;
    line-height: 140%;
}

.holiday_search_section .custom_select_multi_check {
    width: 1.6rem;
    height: 1.6rem;
    flex-shrink: 0;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 0.4rem;
    background: var(--ic-white);
}

.holiday_search_section .custom_select_multi_option.active .custom_select_multi_check {
    border-color: var(--ic-blue);
    background: var(--ic-blue);
}

.holiday_search_section .custom_select_multi_option.active .custom_select_multi_check::after {
    content: "";
    display: block;
    width: 0.8rem;
    height: 0.4rem;
    margin: 0.42rem auto 0;
    border-left: 2px solid var(--ic-white);
    border-bottom: 2px solid var(--ic-white);
    transform: rotate(-45deg);
}

.holiday_search_section .custom_select_multi_label {
    min-width: 0;
    overflow-wrap: break-word;
}

@media (hover: hover) and (pointer: fine) {
    .holiday_search_section .custom_select_multi_option:hover {
        background: var(--ic-cream-deschis);
    }
}

@media (hover: none), (pointer: coarse) {
    .holiday_search_section .custom_select_multi_option:hover {
        background: transparent;
    }

    .holiday_search_section .custom_select_multi_option.active,
    .holiday_search_section .custom_select_multi_option.active:hover {
        background: var(--ic-cream-deschis);
    }
}

@media (max-width: 480px) {
    .holiday_search_section .holiday_search_group[data-qs-field="red"] .custom_select_dropdown,
    .holiday_search_section .holiday_search_group[data-qs-field="region"] .custom_select_dropdown,
    .holiday_search_section .holiday_search_group[data-qs-field="dur"] .custom_select_dropdown {
        max-height: 32rem;
    }

    .holiday_search_section .custom_select_options_scroll {
        max-height: 23rem;
    }
}
/* Holiday Search Date Range Picker */
.holiday_search_section .holiday_search_group[data-qs-field="period"] .custom_select_placeholder {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.holiday_search_section .holiday_search_group[data-qs-field="period"] .custom_select_dropdown {
    left: auto;
    right: 0;
}

.holiday_search_section .holiday_date_range_dropdown {
    width: 62rem;
    max-width: calc(100vw - 4rem);
    padding: 1.2rem;
    overflow: visible;
}

.holiday_search_section .date_range_picker {
    width: 100%;
}

.holiday_search_section .date_range_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    margin-bottom: 1.6rem;
}

.holiday_search_section .date_range_title {
    color: var(--ic-blue);
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 140%;
}

.holiday_search_section .date_range_nav {
    width: 3.6rem;
    height: 3.6rem;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--ic-blue);
    cursor: pointer;
    font-size: 1.4rem;
}

.holiday_search_section .date_range_nav:hover {
    background: var(--ic-cream-deschis);
}

.holiday_search_section .date_range_months {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem;
}

.holiday_search_section .date_range_month_title {
    margin-bottom: 1rem;
    text-align: center;
    color: var(--ic-blue);
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 140%;
}

.holiday_search_section .date_range_weekdays,
.holiday_search_section .date_range_days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.2rem;
}

.holiday_search_section .date_range_weekdays {
    margin-bottom: 0.6rem;
}

.holiday_search_section .date_range_weekdays span {
    text-align: center;
    color: var(--ic-blue-lighter);
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 140%;
}

.holiday_search_section .date_range_day {
    width: 100%;
    aspect-ratio: 1 / 1;
    border: none;
    border-radius: 0.6rem;
    background: transparent;
    color: var(--ic-blue);
    font-size: 1.3rem;
    font-weight: 500;
    cursor: pointer;
}

.holiday_search_section .date_range_day:hover {
    background: var(--ic-cream-deschis);
}

.holiday_search_section .date_range_day.muted {
    color: var(--ic-blue-lighter);
    opacity: 0.45;
}

.holiday_search_section .date_range_day.is-in-range {
    background: var(--ic-skyblue-bg);
    color: var(--ic-blue);
    border-radius: 0.4rem;
}

.holiday_search_section .date_range_day.is-selected-start,
.holiday_search_section .date_range_day.is-selected-end {
    background: var(--ic-blue);
    color: var(--ic-white);
    opacity: 1;
}

.holiday_search_section .date_range_footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    margin-top: 1.4rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--ic-heliblau);
}

.holiday_search_section .date_range_selected {
    color: var(--ic-blue-light);
    font-size: 1.4rem;
    line-height: 140%;
}

.holiday_search_section .date_range_actions {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.holiday_search_section .date_range_btn {
    height: 4rem;
    padding: 0 1.6rem;
    border: none;
    border-radius: 5rem;
    cursor: pointer;
    font-size: 1.4rem;
    font-weight: 600;
}

.holiday_search_section .date_range_btn_light {
    background: var(--ic-cream-deschis);
    color: var(--ic-blue);
}

.holiday_search_section .date_range_btn_primary {
    background: var(--ic-blue);
    color: var(--ic-white);
}
@media (min-width: 521px) and (max-width: 768px) {
    .holiday_search_section .holiday_search_group[data-qs-field="period"] .custom_select_dropdown {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    }
    .holiday_search_section .holiday_date_range_dropdown {
        width: calc(100vw - 4rem);
        padding: 1.2rem;
    }

    .holiday_search_section .date_range_months {
        gap: 1rem;
    }

    .holiday_search_section .date_range_month_title {
        font-size: 1.5rem;
    }

    .holiday_search_section .date_range_day {
        font-size: 1.2rem;
        border-radius: 0.5rem;
    }

    .holiday_search_section .date_range_footer {
        gap: 1.2rem;
    }

    .holiday_search_section .date_range_btn {
        padding: 0 1.2rem;
    }
}
@media (max-width: 520px) {
    .holiday_search_section .holiday_search_group[data-qs-field="period"] .custom_select_dropdown {
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }

    .holiday_search_section .holiday_date_range_dropdown {
        width: min(42rem, calc(100vw - 3rem));
        max-width: calc(100vw - 3rem);
        padding: 1.2rem;
    }

    .holiday_search_section .date_range_months {
        grid-template-columns: 1fr;
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }

    .holiday_search_section .date_range_day {
        justify-self: center;
        width: 4.8rem;
        height: 4.8rem;
        aspect-ratio: auto;
        font-size: 1.3rem;
    }

    .holiday_search_section .date_range_footer {
        flex-direction: column;
        align-items: stretch;
        gap: 1.2rem;
    }

    .holiday_search_section .date_range_actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }

    .holiday_search_section .date_range_btn_primary {
        grid-column: 1 / -1;
    }
}
/* ---------- Holiday Search Section Responsive ---------- */

@media (max-width: 991px) {

    /* Holiday Search Form */
    .holiday_search_section .holiday_search_form {
        grid-template-columns: repeat(2, 1fr);
        border-radius: 3rem;
    }

    /* Holiday Search Btn */
    .holiday_search_section .holiday_search_btn {
        grid-column: span 2;
    }
}

@media (max-width: 768px) {

    /* Holiday Search Form */
    .holiday_search_section .holiday_search_form {
        grid-template-columns: 1fr;
    }

    /* Holiday Search Btn */
    .holiday_search_section .holiday_search_btn {
        grid-column: auto;
        width: 100%;
    }
}

@media (max-width: 480px) {

    /* Holiday Search Group */
    .holiday_search_section .holiday_search_group {
        height: 5.2rem;
    }

    /* Holiday Search Btn */
    .holiday_search_section .holiday_search_btn {
        height: 5.2rem;
    }
}



/* -------------------------------------------------------------------------- */
/* --------------------------- About Story Section -------------------------- */

.about_story_section {
    overflow: hidden;
}

/* Shared Grid */
.about_story_section .about_story_grid {
    display: grid;
    align-items: center;
    gap: 9.6rem;
    grid-template-columns: 52rem 1fr;
}

/* Shared Media */
.about_story_section .about_story_media {
    display: flex;
    justify-content: flex-start;
}

.about_story_section .about_story_image_wrap {
    position: relative;
}

.about_story_section .about_story_image_back,
.about_story_section .about_story_image_front {
    position: absolute;
    display: block;
    object-fit: cover;
}

/* Default Two Images */
.about_story_section .about_story_image_wrap {
    width: 56rem;
    height: 54rem;
}

.about_story_section .about_story_image_back {
    top: 0;
    left: 0;
    width: 33rem;
    height: 44rem;
}

.about_story_section .about_story_image_front {
    right: 0;
    bottom: 0;
    width: 33rem;
    height: 44rem;
}

/* Shared Content */
.about_story_section .about_story_content {
    width: 100%;
    padding-right: 2rem;
}

.about_story_section .about_story_label {
    display: inline-block;
    padding-bottom: 0.4rem;
    border-bottom: 0.2rem solid var(--ic-blue-light);
    color: var(--ic-blue-light);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 3%;
}

.about_story_section .about_story_title {
    margin-top: 1.6rem;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.about_story_section .about_story_text {
    margin-top: 2.4rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.about_story_section .about_story_signature {
    margin-top: 1.6rem;
    color: var(--ic-gold);
    font-family: var(--font-brand);
    font-weight: 400;
    font-size: 3.3rem;
    line-height: 150%;
    letter-spacing: 0px;
}

.about_story_section .about_story_btn {
    margin-top: 4.8rem;
    width: fit-content;
    height: 4.8rem;
}

/* Layout 2 : Single Left */
.about_story_section.about_story_single_left .about_story_grid {
    grid-template-columns: 36rem 1fr;
    gap: 8rem;
}

.about_story_section.about_story_single_left .about_story_image_wrap {
    width: 33rem;
    height: 44rem;
}

.about_story_section.about_story_single_left .about_story_image_front {
    inset: 0;
    width: 100%;
    height: 100%;
}

.about_story_section.about_story_single_left .about_story_image_back {
    display: none;
}

/* Layout 3 : Single Right */
.about_story_section.about_story_single_right .about_story_grid {
    grid-template-columns: 1fr 36rem;
    gap: 8rem;
}

.about_story_section.about_story_single_right .about_story_image_wrap {
    width: 33rem;
    height: 44rem;
}

.about_story_section.about_story_single_right .about_story_image_front {
    inset: 0;
    width: 100%;
    height: 100%;
}

.about_story_section.about_story_single_right .about_story_image_back {
    display: none;
}

/* ---------- About Story Section Responsive ---------- */



    @media (max-width:991px) {

    /* All Layouts = Single Column */
    .about_story_section .about_story_grid,
    .about_story_section.about_story_single_left .about_story_grid,
    .about_story_section.about_story_single_right .about_story_grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 4rem;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .about_story_section .about_story_content,
    .about_story_section .about_story_text,
    .about_story_section .about_story_text p,
    .about_story_section .about_story_text li,
    .about_story_section .about_story_text span,
    .about_story_section .about_story_text div {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow-wrap: break-word;
        word-break: normal;
        white-space: normal;
    }

    /* Center Media */
    .about_story_section .about_story_media {
        justify-content: center;
    }

    /* Content */
    .about_story_section .about_story_content {
        padding-right: 0;
        text-align: center;
    }

    .about_story_section .about_story_title,
    .about_story_section .about_story_text,
    .about_story_section .about_story_btn {
        margin-left: auto;
        margin-right: auto;
    }

    .about_story_section .about_story_btn {
        margin-top: 2.8rem;
    }

    /* Right Layout Image First */
    .about_story_section.about_story_single_right .about_story_media {
        order: 1;
    }

    .about_story_section.about_story_single_right .about_story_content {
        order: 2;
    }
    }

@media (max-width:480px) {

    /* Default Two Image */
    .about_story_section .about_story_image_wrap {
    width: 100%;
    max-width: 42rem;
    height: 39rem;
    }

    .about_story_section .about_story_image_back {
        width: 25rem;
        height: 33rem;
    }

    .about_story_section .about_story_image_front {
        width: 25rem;
        height: 33rem;
    }

    /* Single Layouts */
    .about_story_section.about_story_single_left .about_story_image_wrap,
    .about_story_section.about_story_single_right .about_story_image_wrap {
        width: 25rem;
        height: 33rem;
    }
}



/* -------------------------------------------------------------------------- */
/* --------------------------- Why Choose Section --------------------------- */

.why_choose_section {
    overflow: hidden;
}

/* Why Choose Title */
.why_choose_section .why_choose_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

/* Why Choose Grid */
.why_choose_section .why_choose_grid {
    margin-top: 4.8rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4.8rem;
}

/* Why Choose Item */
.why_choose_section .why_choose_item {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.why_choose_section .why_choose_icon {
    display: flex;
}

.why_choose_section .why_choose_icon svg {
    color: var(--ic-gold);
    width: 4rem;
    height: 4rem;
    line-height: 1;
}

.why_choose_section .why_choose_icon img {
    width: 4rem;
    height: 4rem;
    object-fit: contain;
}

.why_choose_section .why_choose_item_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 140%;
    letter-spacing: 1%;
}

.why_choose_section .why_choose_item_text {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* ----------  Why Choose Section Responsive ---------- */

@media (max-width: 991px) {

    /* Why Choose Grid */
    .why_choose_section .why_choose_grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 568px) {

    /* Why Choose Title */
    .why_choose_section .why_choose_title {
        text-align: center;
    }

    /* Why Choose Grid */
    .why_choose_section .why_choose_grid {
        grid-template-columns: 1fr;
    }

    /* Why Choose Item */
    .why_choose_section .why_choose_item {
        max-width: 50rem;
        margin: auto;
        align-items: center;
        text-align: center;
    }
}



/* -------------------------------------------------------------------------- */
/* ------------------------- Partners Logo Section ------------------------- */

.partners_logo_section {
    overflow: hidden;
}

/* Partners Logo Container */
.partners_logo_section .partners_logo_container {
    width: 100%;
}

/* Partners Logo Title */
.partners_logo_section .partners_logo_title {
    text-align: center;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 140%;
    letter-spacing: 1%;
}

/* Partners Logo Slider */
.partners_logo_section .partners_logo_slider {
    width: 100%;
    margin-top: 4.8rem;
    overflow: hidden;
}

.partners_logo_section .partners_logo_track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: partnersLogoSlide 40s linear infinite;
}

.partners_logo_section .partners_logo_item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0 3.2rem;
}

.partners_logo_section .partners_logo_link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 7rem;
    min-width: 16rem;
}

.partners_logo_section .partners_logo_image {
    display: block;
    width: auto;
    max-width: 20rem;
    height: 5.8rem;
    object-fit: contain;
    object-position: center;
    opacity: 1;
}

/* Partners Logo Actions */
.partners_logo_section .partners_logo_actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 2.4rem;
    margin-top: 4.8rem;
}

.partners_logo_section .partners_logo_actions a {
    width: fit-content;
    height: 4.8rem;
}

/* Animation */
@keyframes partnersLogoSlide {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}



/* -------------------------------------------------------------------------- */
/* --------------------------- Showcase Slider Section ---------------------- */

.showcase_slider_section {
    overflow: hidden;
}

.showcase_slider_section.bg_cream {
    background-color: var(--ic-cream-deschis);
}

.showcase_slider_section .showcase_slider_section_container {
    padding-left: 0;
    padding-right: 0;
}

/* Showcase Slider Section Head */
.showcase_slider_section .showcase_slider_section_head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 4rem;
    margin-bottom: 4.8rem;
}

.showcase_slider_section .showcase_slider_section_label {
    display: inline-block;
    padding-bottom: 0.4rem;
    border-bottom: 0.2rem solid var(--ic-blue-light);
    color: var(--ic-blue-light);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 3%;
}

.showcase_slider_section .showcase_slider_section_title {
    margin-top: 1.6rem;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.showcase_slider_section .showcase_slider_section_text {
    margin-top: 2.4rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}
.showcase_slider_section .showcase_slider_section_text p,
.showcase_slider_section .showcase_slider_section_text li,
.showcase_slider_section .showcase_slider_section_text span,
.showcase_slider_section .showcase_slider_section_text div {
    font-weight: 300;
}
.showcase_slider_section .showcase_slider_section_top_btn {
    align-self: center;
    width: fit-content;
    height: 4.8rem;
}

/* Showcase Horizontal Slider */
.showcase_slider_section .showcase_slider {
    width: calc(100% + ((100vw - 144rem) / 2));
    max-width: none;
    margin-left: 0;
    margin-right: calc(((100vw - 144rem) / -2));
    overflow: visible;
}

.showcase_slider_section .swiper-slide {
    height: auto !important;
}

.showcase_slider_section .showcase_slider_card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--ic-heliblau);
    border-radius: 1.2rem;
    background: var(--ic-white);
}

.showcase_slider_section .showcase_slider_card_image {
    display: block;
    width: 100%;
    height: 27rem;
    object-fit: cover;
}

.showcase_slider_section .showcase_slider_card_content {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    flex: 1;
    padding: 2.4rem 2.4rem 3.4rem 2.4rem;
}

.showcase_slider_section .room_cards_slider .rooms_cards_code {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
    margin-bottom: 0.8rem;
}

.showcase_slider_section .showcase_slider_card_label {
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.showcase_slider_section .showcase_slider_card_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 140%;
    letter-spacing: 1%;
}

.showcase_slider_section .showcase_slider_card_text {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.showcase_slider_section .showcase_slider_card_points {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.showcase_slider_section .showcase_slider_card_points li {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 2rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.showcase_slider_section .showcase_slider_card_points strong {
    text-align: right;

    color: var(--ic-blue);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.showcase_slider_section .showcase_slider_card_btn {
    width: fit-content;
    height: 4rem;
    margin-top: auto;
    position: relative;
    top: 0.8rem;
}

/* Showcase Horizontal Slider Controls */
.showcase_slider_section .showcase_slider_section_controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    margin-top: 6.4rem;
}

.showcase_slider_section .showcase_slider_section_pagination {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.showcase_slider_section .showcase_slider_section_pagination .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    margin: 0 !important;
    opacity: 1;
    background: color-mix(in srgb, var(--ic-blue) 20%, transparent);
}

.showcase_slider_section .showcase_slider_section_pagination .swiper-pagination-bullet-active {
    background: var(--ic-blue);
}

.showcase_slider_section .showcase_slider_section_nav {
    display: flex;
    gap: 1.2rem;
}

.showcase_slider_section .showcase_slider_section_prev,
.showcase_slider_section .showcase_slider_section_next {
    width: 4.8rem;
    height: 4.8rem;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 50%;
    background: transparent;
    color: var(--ic-blue);
    cursor: pointer;
    transition: 0.3s ease;
}

.showcase_slider_section .showcase_slider_section_prev i,
.showcase_slider_section .showcase_slider_section_next i {
    font-size: 1.6rem;
}

.showcase_slider_section .showcase_slider_section_prev:hover,
.showcase_slider_section .showcase_slider_section_next:hover {
    background: var(--ic-blue);
    color: var(--ic-white);
}

/* Showcase Room Cards Slider */
.showcase_slider_section .room_cards_slider {
    width: 100%;
}

.showcase_slider_section .room_cards_slider .rooms_cards_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3.2rem;
}

.showcase_slider_section .room_cards_slider .rooms_cards_item {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--ic-heliblau);
    border-radius: 1.2rem;
    background: var(--ic-white);
}

.showcase_slider_section .room_cards_slider .rooms_cards_media {
    position: relative;
}

.showcase_slider_section .room_cards_slider .rooms_cards_gallery {
    position: relative;
    overflow: hidden;
}

.showcase_slider_section .room_cards_slider .rooms_cards_gallery .swiper-slide {
    height: auto !important;
}

.showcase_slider_section .room_cards_slider .rooms_cards_image {
    display: block;
    width: 100%;
    height: 27rem;
    object-fit: cover;
}

.rooms_cards_gallery .rooms_cards_pagination {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 1.4rem;
    z-index: 5;
    display: flex;
    justify-content: center;
    align-items: center;
}

.rooms_cards_gallery .swiper-pagination-bullet {
    width: 1rem;
    height: 1rem;
    background: var(--ic-white);
    opacity: 0.4;
}

.rooms_cards_gallery .swiper-pagination-bullet-active {
    background: var(--ic-white);
    opacity: 1;
}

.showcase_slider_section .room_cards_slider .rooms_cards_prev,
.showcase_slider_section .room_cards_slider .rooms_cards_next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 4rem;
    height: 4rem;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 50%;
    background: var(--ic-white);
    color: var(--ic-blue);
    cursor: pointer;
    transition: 0.3s ease;
}

.showcase_slider_section .room_cards_slider .rooms_cards_prev {
    left: 1rem;
}

.showcase_slider_section .room_cards_slider .rooms_cards_next {
    right: 1rem;
}

.showcase_slider_section .room_cards_slider .rooms_cards_body {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    flex: 1;
    padding: 2.4rem 2.4rem 3.4rem 2.4rem;
}

/* ---------- Showcase Slider Section Responsive ---------- */
.inspiration_section .inspiration_mobile_btn_wrap {
    display: none;
}

@media (max-width: 768px) {
    .inspiration_section .inspiration_desktop_btn {
        display: none;
    }

    .inspiration_section .inspiration_mobile_btn_wrap {
        display: flex;
        justify-content: center;
        margin-top: 3.2rem;
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .inspiration_section .inspiration_mobile_btn {
        width: fit-content;
        height: 4.8rem;
    }
}

@media (max-width: 1440px) {

    /* Showcase Slider Section Head */
    .showcase_slider_section .showcase_slider_section_head {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    /* Showcase Horizontal Slider */
    .showcase_slider_section .showcase_slider {
        width: 100%;
        margin-right: 0;
        overflow: hidden;
        padding-left: 2rem;
        padding-right: 2rem;
    }

    /* Showcase Horizontal Slider Controls  */
    .showcase_slider_section .showcase_slider_section_controls {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    /* Showcase Room Cards Slider */
    .showcase_slider_section .room_cards_slider {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

@media (max-width:1200px) {

    /* Showcase Room Cards Slider */
    .showcase_slider_section .room_cards_slider .rooms_cards_grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {

    /* Showcase Slider Section Head */
    .showcase_slider_section .showcase_slider_section_head {
        flex-direction: column;
    }

    /* Showcase Horizontal Slider Controls */
    .showcase_slider_section .showcase_slider_section_controls {
        margin-top: 4rem;
        gap: 2rem;
    }
}

@media (max-width: 568px) {

    /* Showcase Room Cards Slider */
    .showcase_slider_section .room_cards_slider .rooms_cards_grid {
        grid-template-columns: 1fr;
    }

    .showcase_slider_section .room_cards_slider .rooms_cards_prev,
    .showcase_slider_section .room_cards_slider .rooms_cards_next {
        font-size: 1.4rem;
    }
}



/* -------------------------------------------------------------------------- */
/* ---------------------------- Offers Cards Section ------------------------ */

.offers_cards_section {
    background: var(--ic-cream-deschis);
    overflow: hidden;
}

/* Offers Cards Section Head */
.offers_cards_section .offers_cards_section_head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 4rem;
    margin-bottom: 4.8rem;
}

.offers_cards_section .offers_cards_section_label {
    display: inline-block;
    padding-bottom: 0.4rem;
    border-bottom: 0.2rem solid var(--ic-blue-light);
    color: var(--ic-blue-light);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 3%;
}

.offers_cards_section .offers_cards_section_title {
    margin-top: 1.6rem;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.offers_cards_section .offers_cards_section_text {
    margin-top: 2.4rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.offers_cards_section .offers_cards_section_top_btn {
    align-self: flex-end;
    width: fit-content;
    height: 4.8rem;
}

/* Offers Cards Grid */
.offers_cards_section .offers_cards_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3.2rem;
}

/* Offers Cards Item */
.offers_cards_section .offers_cards_item {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--ic-heliblau);
    border-radius: 1.2rem;
    background: var(--ic-white);
}

.offers_cards_section .offers_cards_image_wrap {
    position: relative;
}

.offers_cards_section .offers_cards_image {
    display: block;
    width: 100%;
    height: 24rem;
    object-fit: cover;
}

.offers_cards_section .offers_cards_tag {
    position: absolute;
    top: 1.6rem;
    right: 1.6rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.8rem;
    height: 3rem;
    padding: 0 1.4rem;
    border-radius: 5rem;
    background: color-mix(in srgb, var(--ic-white) 80%, transparent);
    color: var(--ic-blue);
    font-weight: 600;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.offers_cards_section .offers_cards_tag svg {
    width: 1.4rem;
    height: 1.4rem;
    display: block;
    flex-shrink: 0;
    fill: currentColor;
}

/* Offers Cards Content */
.offers_cards_section .offers_cards_content {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 2.4rem;
}

.offers_cards_section .offers_cards_code {
    color: var(--ic-blue-light);
    font-weight: 500;
    font-size: 1.2rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.offers_cards_section .offers_cards_item_title {
    margin-top: 0.4rem;
    color: var(--ic-blue);
    font-weight: 600;
    font-size: 2rem;
    line-height: 140%;
    letter-spacing: 1%;
}

/* Offers Cards Points */
.offers_cards_section .offers_cards_points {
    margin-top: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.offers_cards_section .offers_cards_points_row strong {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.offers_cards_section .offers_cards_points_row span {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.offers_cards_section .offers_cards_points_logo_row {
    display: block;
}


/* Offers Cards Price */
.offers_cards_section .offers_cards_price {
    margin-top: 1.2rem;
    margin-bottom: 1.6rem;
    padding-top: 1.4rem;
    padding-bottom: 1.4rem;
    border-top: 1px solid var(--ic-heliblau);
    border-bottom: 1px solid var(--ic-heliblau);
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 120%;
    letter-spacing: 4%;
}

.offers_cards_section .offers_cards_tags {
  position: absolute;
  top: 1.6rem;
  right: 1.6rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.8rem;
}

.offers_cards_section .offers_cards_tags .offers_cards_tag {
  position: static;
}


.offers_cards_section .offers_cards_points_logo_row .offers_cards_points_row {
  min-width: 0;
  padding-right: 12rem;
}

.offers_cards_section .offers_cards_logo_wrap {
  position: absolute;
  right: 2.4rem;
  bottom: 2.8rem;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
}

.offers_cards_section .offers_cards_logo {
  display: block;
  width: auto;
  height: 3.2rem;
  max-width: 12rem;
  max-height: 3.2rem;
  object-fit: contain;
  object-position: right center;
}

.offers_cards_section .offers_cards_points_row_reise span {
  display: block;
}

.offers_cards_section .offers_cards_points_row_reise span br {
  display: block;
  content: "";
  margin-top: 0.4rem;
}

.offers_cards_section .offers_cards_price small {
  margin-left: 0.4rem;
  color: var(--ic-blue-light);
  font-size: 1.2rem;
  font-weight: 300;
  line-height: 150%;
  letter-spacing: 1%;
}

.offers_cards_section .offers_cards_btn {
  width: fit-content;
  height: 4rem;
  margin-top: auto;
  max-width: calc(100% - 13rem);
}
.offers_cards_section .offers_cards_no_price_spacer {
  width: 100%;
  height: 2.4rem;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .offers_cards_section .offers_cards_points_logo_row .offers_cards_points_row {
    padding-right: 0;
  }

  .offers_cards_section .offers_cards_logo_wrap {
    position: static;
    justify-content: flex-end;
    margin-top: 2.4rem;
  }

  .offers_cards_section .offers_cards_btn {
    max-width: 100%;
    margin-top: 2rem;
  }
}
/* ---------- Offers Cards Section Responsive ---------- */

@media (max-width: 991px) {

    /* Offers Cards Section Head */
    .offers_cards_section .offers_cards_section_head {
        flex-direction: column;
        align-items: flex-start;
    }

    /* Offers Cards Grid */
    .offers_cards_section .offers_cards_grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {

    /* Offers Cards Grid */
    .offers_cards_section .offers_cards_grid {
        grid-template-columns: 1fr;
    }
}



/* -------------------------------------------------------------------------- */
/* -------------------------- Testimonials Section -------------------------- */

.testimonials_section {
    overflow: hidden;
}

/* Testimonials Grid */
.testimonials_section .testimonials_grid {
    display: grid;
    grid-template-columns: 1fr 60rem;
    align-items: start;
    gap: 6rem;
}
.testimonials_section .testimonials_content,
.testimonials_section .testimonials_slider_wrap {
    align-self: start;
}
/* Testimonials Content */
.testimonials_section .testimonials_content {
    min-width: 0;
}

.testimonials_section .testimonials_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.testimonials_section .testimonials_text {
    margin-top: 1.6rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* Testimonials Slider */
.testimonials_section .testimonials_slider_wrap {
    width: 100%;
    min-width: 0;
}

.testimonials_section .testimonials_slider {
    width: 100%;
    overflow: hidden;
}

/* Testimonials Card */
.testimonials_section .testimonials_card {
    padding: 3.2rem;
    border: 1px solid var(--ic-heliblau);
    border-radius: 1.2rem;
    background: var(--ic-white);
}

.testimonials_section .testimonials_rating {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    color: var(--ic-gold);
    font-size: 1.8rem;
    line-height: 1;
}

.testimonials_section .testimonials_quote {
    margin-top: 2.4rem;
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.8rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.testimonials_section .testimonials_user {
    margin-top: 2.4rem;
    display: flex;
    align-items: center;
    gap: 1.6rem;
}

.testimonials_section .testimonials_user_image {
    display: block;
    flex-shrink: 0;
    width: 4.8rem;
    height: 4.8rem;
    border-radius: 50%;
    object-fit: cover;
}

.testimonials_section .testimonials_user_info {
    min-width: 0;
}

.testimonials_section .testimonials_user_name {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.testimonials_section .testimonials_user_meta {
    display: block;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* Testimonials Controls */
.testimonials_section .testimonials_controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    margin-top: 4rem;
}

.testimonials_section .testimonials_pagination {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.8rem;
}

.testimonials_section .testimonials_pagination .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    margin: 0 !important;
    opacity: 1;
    background: color-mix(in srgb, var(--ic-blue) 20%, transparent);
}

.testimonials_section .testimonials_pagination .swiper-pagination-bullet-active {
    background: var(--ic-blue);
}

.testimonials_section .testimonials_nav {
    display: flex;
    gap: 1.2rem;
}

.testimonials_section .testimonials_prev,
.testimonials_section .testimonials_next {
    width: 4.8rem;
    height: 4.8rem;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 50%;
    background: transparent;
    color: var(--ic-blue);
    cursor: pointer;
    flex-shrink: 0;
    transition: 0.3s ease;
    font-size: 1.6rem;
}

.testimonials_section .testimonials_prev:hover,
.testimonials_section .testimonials_next:hover {
    background: var(--ic-blue);
    color: var(--ic-white);
}

/* ---------- Testimonials Section Responsive ---------- */

@media (max-width: 991px) {

    /* Testimonials Grid */
    .testimonials_section .testimonials_grid {
        grid-template-columns: 1fr;
    }

    /* Testimonials Content */
    .testimonials_section .testimonials_content {
        text-align: center;
    }

    /* Testimonials Slider */
    .testimonials_section .testimonials_slider_wrap {
        max-width: 72rem;
        margin: 0 auto;
    }

    .testimonials_section .testimonials_slider_wrap .testimonials_slider {
        max-width: 71.5rem;
    }
}

@media (max-width: 480px) {

    /* Testimonials Grid */
    .testimonials_section .testimonials_grid {
        gap: 4rem;
    }

    /* Testimonials Content */
    .testimonials_section .testimonials_user {
        align-items: flex-start;
    }
}



/* -------------------------------------------------------------------------- */
/* ---------------------------- Newsletter Section -------------------------- */

.newsletter_section {
    background-color: var(--ic-cream-deschis);
    overflow: hidden;
    position: relative;
    background-image: url("../assets/backgrounds/logo-pattern-bg.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

/* Newsletter Banner */
.newsletter_section .newsletter_banner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    overflow: hidden;
    border-radius: 1.2rem;
    background: var(--ic-white);
}

.newsletter_section .newsletter_banner_content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 4.8rem;
}

.newsletter_section .newsletter_banner_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.newsletter_section .newsletter_banner_text {
    margin-top: 2.4rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.newsletter_section .newsletter_banner_actions {
    margin-top: 3.2rem;
    display: flex;
    align-items: center;
    gap: 1.6rem;
}

.newsletter_section .newsletter_banner_btn_primary,
.newsletter_section .newsletter_banner_btn_outline {
    width: fit-content;
    height: 4.8rem;
}

.newsletter_section .newsletter_banner_media {
    min-height: 41.6rem;
}

.newsletter_section .newsletter_banner_image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Newsletter Subscribe */
.newsletter_section .newsletter_subscribe {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 3.2rem;
    margin-top: 8rem;
    padding: 4.8rem;
    border-radius: 1.2rem;
    background: var(--ic-white);
}

.newsletter_section .newsletter_subscribe_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.newsletter_section .newsletter_subscribe_text {
    margin-top: 1.6rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.newsletter_section .newsletter_subscribe_form {
    display: flex;
    align-items: center;
    gap: 1.6rem;
}

.newsletter_section .newsletter_subscribe_input {
    flex: 1;
    height: 4.8rem;
    padding: 0 2.4rem;
    outline: none;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 5rem;
    background: transparent;
    cursor: pointer;
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.newsletter_section .newsletter_subscribe_input::placeholder {
    color: var(--ic-blue-lighter);
}

.newsletter_section .newsletter_subscribe_btn {
    width: fit-content;
    height: 4.8rem;
}

.newsletter_section .newsletter_subscribe_note {
    margin-top: 1.6rem;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.newsletter_section .newsletter_subscribe_note a {
    color: var(--ic-blue-light);
    text-decoration: underline;
}

/* ---------- Newsletter Section Responsive ---------- */

@media (max-width: 991px) {

    /* Newsletter Banner */
    .newsletter_section .newsletter_banner {
        grid-template-columns: 1fr;
    }

    .newsletter_section .newsletter_banner_media {
        min-height: initial;
        max-height: 38rem;
    }

    /* Newsletter Subscribe */
    .newsletter_section .newsletter_subscribe {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {

    .newsletter_section .newsletter_banner_content,
    .newsletter_section .newsletter_subscribe {
        padding: 4rem 2.4rem;
    }

    .newsletter_section .newsletter_subscribe {
        margin-top: 6rem;
    }

    .newsletter_section .newsletter_banner_title,
    .newsletter_section .newsletter_subscribe_title {
        font-size: 3rem;
    }

    /* Newsletter Banner */
    .newsletter_section .newsletter_banner_content {
        align-items: center;
        text-align: center;
    }

    .newsletter_section .newsletter_banner_actions {
        flex-wrap: wrap;
        justify-content: center;
    }

    /* Newsletter Subscribe */
    .newsletter_section .newsletter_subscribe {
        text-align: center;
    }

    .newsletter_section .newsletter_subscribe_input {
        height: 5.2rem;
    }
}
@media (max-width: 480px) {
    .newsletter_section .newsletter_subscribe_form {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }

    .newsletter_section .newsletter_subscribe_input,
    .newsletter_section .newsletter_subscribe_btn {
        width: 100%;
        height: 5.2rem;
        flex: none;
    }

    .newsletter_section .newsletter_subscribe_note {
        overflow-wrap: break-word;
        word-break: normal;
    }
}


/* -------------------------------------------------------------------------- */
/* ------------------------ Destination Cards Section ----------------------- */

.destination_cards {
    overflow: hidden;
}

/* Destination Section Grid */
.destination_cards .destination_section_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3.2rem;
}

.destination_cards .destination_section_grid.four_grid {
    grid-template-columns: repeat(4, 1fr);
}

/* Destination Section Card */
.destination_cards .destination_section_card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--ic-heliblau);
    border-radius: 1.2rem;
    background: var(--ic-white);
}

/* Destination Card Image */
.destination_cards .destination_card_image_link {
    display: block;
    overflow: hidden;
}

.destination_cards .destination_card_image {
    display: block;
    width: 100%;
    height: 20rem;
    object-fit: cover;
}

/* Destination Card Content */
.destination_cards .destination_card_content {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    flex: 1;
    padding: 2.4rem 2.4rem 3.4rem 2.4rem;
}

.destination_cards .destination_card_label {
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.destination_cards .destination_card_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 140%;
    letter-spacing: 1%;
}

.destination_cards .destination_card_text {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* Destination Card Footer */
.destination_cards .destination_card_footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin-top: auto;
}

.destination_cards .destination_btn {
    width: fit-content;
    height: 4rem;
    margin-top: auto;
    position: relative;
    top: 0.8rem;
}

.destination_cards .destination_partner_logo {
    flex-shrink: 0;
    width: auto;
    height: 3.2rem;
    object-fit: contain;
}

/* ---------- Destination Cards Section Responsive ---------- */

@media (max-width: 1200px) {

    /* Destination Section Grid */
    .destination_cards .destination_section_grid.four_grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 991px) {

    /* Destination Section Grid */
    .destination_cards .destination_section_grid,
    .destination_cards .destination_section_grid.four_grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 680px) {

    /* Destination Section Grid */
    .destination_cards .destination_section_grid,
    .destination_cards .destination_section_grid.four_grid {
        grid-template-columns: 1fr;
    }
}



/* -------------------------------------------------------------------------- */
/* -------------------------- Gallery Slider Section ------------------------ */

.gallery_slider_section {
    overflow: hidden;
}

/* Gallery Slider Container */
.gallery_slider_section .gallery_slider_container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 8rem;
}

/* Gallery Slider */
.gallery_slider_section .gallery_slider_wrap {
    width: 100%;
    min-width: 0;
}

.gallery_slider_section .gallery_slider {
    width: 100%;
    overflow: hidden;
}

.gallery_slider_section .gallery_slider .swiper-slide {
    height: auto;
}

.gallery_slider_section .gallery_slider_image {
    display: block;
    width: 100%;
    height: 58rem;
    object-fit: cover;
}

/* Gallery Slider Controls */
.gallery_slider_section .gallery_slider_controls {
    display: grid;
    grid-template-columns: 5rem 1fr 5rem;
    align-items: center;
    gap: 2rem;
    margin-top: 2.4rem;
}

.gallery_slider_section .gallery_slider_prev,
.gallery_slider_section .gallery_slider_next {
    width: 5rem;
    height: 5rem;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 50%;
    background: transparent;
    color: var(--ic-blue);
    font-size: 1.8rem;
    cursor: pointer;
    transition: 0.3s ease;
}

.gallery_slider_section .gallery_slider_prev:hover,
.gallery_slider_section .gallery_slider_next:hover {
    background: var(--ic-blue);
    color: var(--ic-white);
}

.gallery_slider_section .gallery_slider_pagination {
    text-align: center;
}

.gallery_slider_section .gallery_slider_pagination .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    margin: 0 0.5rem !important;
    opacity: 1;
    background: color-mix(in srgb, var(--ic-blue) 20%, transparent);
}

.gallery_slider_section .gallery_slider_pagination .swiper-pagination-bullet-active {
    background: var(--ic-blue);
}

/* Gallery Slider Content */
.gallery_slider_section .gallery_slider_text {
    color: var(--ic-dark-grau);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.gallery_slider_section .gallery_slider_text h3 {
    margin: 0 0 2.4rem;
    color: var(--ic-dark-grau);
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.gallery_slider_section .gallery_slider_text p {
    margin: 0;
    color: var(--ic-dark-grau);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* ---------- Gallery Slider Section Responsive ---------- */

@media (max-width: 991px) {

    /* Gallery Slider Container */
    .gallery_slider_section .gallery_slider_container {
        grid-template-columns: 1fr;
        gap: 4rem;
    }

    /* Gallery Slider */
    .gallery_slider_section .gallery_slider_wrap {
        width: 100%;
        max-width: 48rem;
        margin: 0 auto;
    }

    /* Gallery Slider Content */
    .gallery_slider_section .gallery_slider_text {
        text-align: center;
    }
}

@media (max-width: 768px) {

    /* Gallery Slider */
    .gallery_slider_section .gallery_slider_wrap,
    .gallery_slider_section .gallery_slider {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
    }

    .gallery_slider_section .gallery_slider .swiper-wrapper {
        width: 100%;
    }

    .gallery_slider_section .gallery_slider .swiper-slide {
        width: 100% !important;
        flex-shrink: 0;
    }

    .gallery_slider_section .gallery_slider_image {
        height: 52rem;
    }
}

@media (max-width: 480px) {

    /* Gallery Slider */
    .gallery_slider_section .gallery_slider_image {
        height: 38rem;
    }

    .gallery_slider_section .gallery_slider_controls {
        grid-template-columns: 4.4rem 1fr 4.4rem;
        gap: 1.2rem;
        margin-top: 2rem;
    }

    .gallery_slider_section .gallery_slider_prev,
    .gallery_slider_section .gallery_slider_next {
        width: 4.4rem;
        height: 4.4rem;
        font-size: 1.5rem;
    }
}



/* -------------------------------------------------------------------------- */
/* ------------------------------ Content Section --------------------------- */

.content_section {
    background: var(--ic-cream-deschis);
    overflow: hidden;
}

/* Content Section Title */
.content_section .content_section_title {
    max-width: 100%;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

/* Content Section Text Wrap */
.content_section .content_section_text_wrap,
.content_section_text_wrap {
    max-width: 100%;
    margin-top: 1.6rem;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}

.content_section .content_section_text,
.content_section_text {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.content_section .content_section_text p,
.content_section_text p {
    margin: 0;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* ---------- Content Section Responsive ---------- */

@media (max-width: 768px) {

    /* Content Section Title */
    .content_section .content_section_title {
        text-align: center;
    }

    /* Content Section Text Wrap */
    .content_section .content_section_text_wrap {
        text-align: center;
    }
}



/* -------------------------------------------------------------------------- */
/* ---------------------------- Travel Time Section ------------------------- */

.travel_time_section {
    background: var(--ic-glacier-white);
    overflow: hidden;
}

/* Travel Time Title */
.travel_time_section .travel_time_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

/* Travel Time Months */
.travel_time_section .travel_time_months {
    margin-top: 4.8rem;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    align-items: center;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--ic-heliblau);
}

.travel_time_section .travel_time_month {
    color: var(--ic-blue-light);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* Travel Time Line */
.travel_time_section .travel_time_line {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    height: 4rem;
}

.travel_time_section .travel_time_range {
    grid-row: 1;
    height: 100%;
}

.travel_time_section .travel_time_range_light {
    background: var(--ic-blue-lighter);
}

.travel_time_section .travel_time_range_dark {
    background: var(--ic-blue);
}
/* Travel Time Legend */

.travel_time_section .travel_time_legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2.4rem;
    margin-top: 1.6rem;
}

.travel_time_section .travel_time_legend_item {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.travel_time_section .travel_time_legend_color {
    display: block;
    width: 3.2rem;
    height: 1.2rem;
    flex-shrink: 0;
}

.travel_time_section .travel_time_legend_color_dark {
    background: var(--ic-blue);
}

.travel_time_section .travel_time_legend_color_light {
    background: var(--ic-blue-lighter);
}

.travel_time_section .travel_time_text {
    width: 100%;
    max-width: none;
    margin-top: 6.4rem;
    color: var(--ic-dark-grau);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
    overflow-wrap: break-word;
}

.travel_time_section .travel_time_text p,
.travel_time_section .travel_time_text li,
.travel_time_section .travel_time_text span,
.travel_time_section .travel_time_text div {
    color: var(--ic-dark-grau);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.travel_time_section .travel_time_text p {
    margin: 0 0 1.6rem;
}

.travel_time_section .travel_time_text p:last-child {
    margin-bottom: 0;
}

.travel_time_section .travel_time_text ul,
.travel_time_section .travel_time_text ol {
    margin: 1.6rem 0;
    padding-left: 2.4rem;
}

.travel_time_section .travel_time_text ul {
    list-style: disc;
}

.travel_time_section .travel_time_text ol {
    list-style: decimal;
}

.travel_time_section .travel_time_text li {
    display: list-item;
    margin-bottom: 0.4rem;
}

/* ---------- Travel Time Section Responsive ---------- */

@media (max-width: 991px) {

    /* Travel Time Months */
    .travel_time_section .travel_time_months {
        gap: 0.6rem;
    }

    /* Travel Time Line */
    .travel_time_section .travel_time_line {
        height: 3.4rem;
    }
}

@media (max-width: 768px) {

    /* Travel Time Title */
    .travel_time_section .travel_time_title {
        text-align: center;
        font-size: 2rem;
    }

    /* Travel Time Months */
    .travel_time_section .travel_time_months {
        margin-top: 2.8rem;
        gap: 0.4rem;
    }

    .travel_time_section .travel_time_month {
        text-align: center;
        font-size: 1.2rem;
    }

    /* Travel Time Line */
    .travel_time_section .travel_time_line {
        height: 2.8rem;
    }
}

@media (max-width: 480px) {

    /* Travel Time Months */
    .travel_time_section .travel_time_months {
        gap: 0.2rem;
        padding-bottom: 0.8rem;
    }

    /* Travel Time Line */
    .travel_time_section .travel_time_line {
        height: 2.2rem;
    }
}



/* -------------------------------------------------------------------------- */
/* -------------------------------- FAQ Section ----------------------------- */

.faq_section {
    background-color: var(--ic-cream-deschis);
    overflow: hidden;
    position: relative;
    background-color: var(--ic-cream-deschis);
    background-image: url("../assets/backgrounds/faq-pattern-bg.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

/* FAQ Head */
.faq_section .faq_head {
    margin-bottom: 4.8rem;
}

.faq_section .faq_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.faq_section .faq_text {
    margin-top: 1.6rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* FAQ List */
.faq_section .faq_list {
    border-top: 1px solid var(--ic-cream);
}

.faq_section .faq_item {
    border-bottom: 1px solid var(--ic-cream);
}

.faq_section .faq_question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    width: 100%;
    padding: 2rem 0;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.faq_section .faq_question span {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 2rem;
    line-height: 140%;
    letter-spacing: 1%;
}

.faq_section .faq_toggle {
    flex-shrink: 0;
    color: var(--ic-blue);
    font-size: 2rem;
    line-height: 1;
}

/* FAQ Answer */
.faq_section .faq_answer {
    display: none;
    max-width: 90rem;
    padding-bottom: 2.4rem;
}

.faq_section .faq_item_active .faq_answer {
    display: block;
}

.faq_section .faq_answer p {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* ---------- FAQ Section Responsive ---------- */

@media (max-width: 768px) {

    /* FAQ Head */
    .faq_section .faq_head {
        margin-bottom: 3rem;
    }
}



/* -------------------------------------------------------------------------- */
/* --------------------------- Contact Page Section ------------------------- */

.contact_page_section {
    overflow: hidden;
}

/* Contact Container */
.contact_page_section .contact_container {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    align-items: start;
    gap: 8rem;
}

/* Contact Content */
.contact_page_section .contact_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4.8rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.contact_page_section .contact_text {
    margin-top: 1.6rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* Contact Gallery */
.contact_page_section .contact_gallery {
    position: relative;
    height: 54rem;
    margin-top: 3.2rem;
}

.contact_page_section .contact_gallery_item {
    position: absolute;
    overflow: hidden;
}

.contact_page_section .contact_gallery_item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contact_page_section .contact_gallery_item_one {
    top: 0;
    left: 0;
    width: 33rem;
    height: 44rem;
}

.contact_page_section .contact_gallery_item_two {
    right: 0;
    bottom: 0;
    width: 33rem;
    height: 44rem;
}

/* Contact Info */
.contact_page_section .contact_info {
    margin-top: 3.2rem;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}

.contact_page_section .contact_info_item {
    display: flex;
    align-items: center;
    gap: 1.6rem;
}

.contact_page_section .contact_info_item svg {
    width: 1.6rem;
    height: 1.6rem;
    display: block;
    flex-shrink: 0;
    color: var(--ic-blue);
    fill: currentColor;
}

.contact_page_section .contact_info_item a,
.contact_page_section .contact_info_item p {
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.contact_page_section .contact_info_item a {
    text-decoration: underline;
}

.contact_page_section .contact_about_btn {
    margin-top: 3.2rem;
    width: fit-content;
    height: 4.8rem;
}

/* Contact Form */
.contact_page_section .contact_form {
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
}

.contact_page_section .contact_form_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: start;
    gap: 2.4rem;
}

.contact_page_section .contact_form_group {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.contact_page_section .contact_label {
    color: var(--ic-blue-light);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.contact_page_section .contact_input {
    width: 100%;
    flex: 0 0 auto;
    min-height: 4.8rem;
    padding: 0 2.4rem;
    outline: none;
    border: 1px solid var(--ic-blue-light);
    border-radius: 5rem;
    background: transparent;
    cursor: text;
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}
.contact_page_section .contact_field_error {
    margin-top: 0.6rem;
    color: #b42318;
    font-size: 1.3rem;
    line-height: 140%;
}

.contact_page_section .contact_field_error[hidden] {
    display: none;
}

.contact_page_section .contact_input.has-error {
    border-color: #b42318;
}
.contact_page_section .custom_select_trigger,
.contact_page_section .contact_date_trigger {
    cursor: pointer;
}

.contact_page_section .contact_input::placeholder {
    color: var(--ic-blue-lighter);
}

.contact_page_section .contact_textarea {
    min-height: 18rem;
    padding-top: 1.8rem;
    border-radius: 2rem;
    resize: none;
}

/* Contact Date Picker */
.contact_page_section .contact_date_picker {
    position: relative;
    width: 100%;
}

.contact_page_section .contact_date_trigger {
    width: 100%;
    height: 4.8rem;
    min-height: 4.8rem;
    padding: 0 2.4rem;
    border: 1px solid var(--ic-blue-light);
    border-radius: 5rem;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    outline: none;
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
    text-align: left;
}

.contact_page_section .contact_date_value {
    min-width: 0;
    overflow: hidden;
    color: var(--ic-blue-lighter);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contact_page_section .contact_date_trigger.has-value .contact_date_value {
    color: var(--ic-blue);
}

.contact_page_section .contact_date_icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    color: var(--ic-blue);
}

.contact_page_section .contact_date_icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.contact_page_section .contact_date_dropdown {
    position: absolute;
    top: calc(100% + 0.8rem);
    left: 0;
    right: auto;
    z-index: 90;
    width: min(42rem, 100%);
    max-width: 100%;
    padding: 1.2rem;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 2rem;
    background: var(--ic-white);
    box-shadow: 0 1.2rem 3.2rem rgba(0, 0, 0, 0.12);
}

.contact_page_section .contact_date_calendar {
    width: 100%;
}

.contact_page_section .contact_date_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    margin-bottom: 1.6rem;
}

.contact_page_section .contact_date_title {
    color: var(--ic-blue);
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 140%;
}

.contact_page_section .contact_date_nav {
    width: 3.6rem;
    height: 3.6rem;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--ic-blue);
    cursor: pointer;
    font-size: 1.8rem;
    line-height: 1;
}

.contact_page_section .contact_date_nav:hover {
    background: var(--ic-cream-deschis);
}

.contact_page_section .contact_date_months {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.4rem;
}

.contact_page_section .contact_date_month_title {
    margin-bottom: 1rem;
    text-align: center;
    color: var(--ic-blue);
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 140%;
}

.contact_page_section .contact_date_weekdays,
.contact_page_section .contact_date_days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.2rem;
}

.contact_page_section .contact_date_weekdays {
    margin-bottom: 0.6rem;
}

.contact_page_section .contact_date_weekdays span {
    text-align: center;
    color: var(--ic-blue-lighter);
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 140%;
}

.contact_page_section .contact_date_day {
    width: 100%;
    height: 3.4rem;
    aspect-ratio: auto;
    border: none;
    border-radius: 0.6rem;
    background: transparent;
    color: var(--ic-blue);
    font-size: 1.3rem;
    font-weight: 500;
    cursor: pointer;
}

.contact_page_section .contact_date_day:hover {
    background: var(--ic-cream-deschis);
}

.contact_page_section .contact_date_day.muted {
    color: var(--ic-blue-lighter);
    opacity: 0.45;
}

.contact_page_section .contact_date_day.is-today {
    box-shadow: inset 0 0 0 1px var(--ic-blue-lighter);
}

.contact_page_section .contact_date_day.is-selected {
    background: var(--ic-blue);
    color: var(--ic-white);
    opacity: 1;
}

.contact_page_section .contact_date_footer {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.2rem;
    margin-top: 1.4rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--ic-heliblau);
}

.contact_page_section .contact_date_selected {
    color: var(--ic-blue-light);
    font-size: 1.4rem;
    line-height: 140%;
}

.contact_page_section .contact_date_actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.contact_page_section .contact_date_btn {
    width: 100%;
    height: 4rem;
    padding: 0 1.2rem;
    border: none;
    border-radius: 5rem;
    cursor: pointer;
    font-size: 1.4rem;
    font-weight: 600;
    white-space: nowrap;
}

.contact_page_section .contact_date_btn_light {
    background: var(--ic-cream-deschis);
    color: var(--ic-blue);
}

.contact_page_section .contact_date_btn_primary {
    background: var(--ic-blue);
    color: var(--ic-white);
}

@media (max-width: 768px) {
    .contact_page_section .contact_date_trigger {
        height: 5.2rem;
        min-height: 5.2rem;
        padding-left: 2.4rem;
        padding-right: 2.4rem;
        font-size: 1.6rem;
        line-height: normal;
    }

    .contact_page_section .contact_textarea {
        min-height: 16rem;
    }
}

@media (max-width: 520px) {
    .contact_page_section .contact_date_dropdown {
        left: 0;
        right: auto;
        width: 100%;
        max-width: 100%;
        padding: 1rem;
        transform: none;
        max-height: none;
        overflow: visible;
    }

    .contact_page_section .contact_date_months {
        grid-template-columns: 1fr;
    }

    .contact_page_section .contact_date_month_title {
        margin-bottom: 0.8rem;
        font-size: 1.5rem;
    }

    .contact_page_section .contact_date_weekdays {
        margin-bottom: 0.4rem;
    }

    .contact_page_section .contact_date_weekdays span {
        font-size: 1.1rem;
    }

    .contact_page_section .contact_date_day {
        width: 100%;
        height: 3.4rem;
        aspect-ratio: auto;
        font-size: 1.2rem;
    }

    .contact_page_section .contact_date_footer {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
        margin-top: 1rem;
        padding-top: 1rem;
    }

    .contact_page_section .contact_date_selected {
        font-size: 1.3rem;
    }

    .contact_page_section .contact_date_actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.8rem;
    }

    .contact_page_section .contact_date_btn {
        height: 3.8rem;
        padding: 0 1rem;
        font-size: 1.3rem;
    }

    .contact_page_section .contact_date_btn_primary {
        grid-column: 1 / -1;
    }
}
/* Contact Options */
.contact_page_section .contact_options {
    margin-top: 1.6rem;
}

.contact_page_section .contact_options_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.contact_page_section .contact_options_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.4rem;
    margin-top: 2rem;
}

.contact_page_section .contact_check_single {
    margin-top: 4rem;
    margin-bottom: 1.6rem;
}

.contact_page_section .contact_submit_btn {
    width: fit-content;
    height: 4.8rem;
}

.contact_page_section .contact_note {
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 0%;
}

/* ---------- Contact Page Section Responsive ---------- */

@media (max-width: 991px) {

    /* Contact Container */
    .contact_page_section .contact_container {
        grid-template-columns: 1fr;
        gap: 6rem;
    }

    /* Contact Gallery */
    .contact_page_section .contact_gallery {
        height: 48rem;
    }

    .contact_page_section .contact_gallery_item_one,
    .contact_page_section .contact_gallery_item_two {
        width: 80%;
        height: 38rem;
    }
}

@media (max-width: 768px) {

    /* Contact Form */
    .contact_page_section .contact_form_grid {
        grid-template-columns: 1fr;
    }

    .contact_page_section .contact_input {
        min-height: 5.2rem;
    }

    .contact_page_section .contact_textarea {
        min-height: 16rem;
    }
}

@media (max-width: 480px) {

    /* Contact Content */
    .contact_page_section .contact_title {
        font-size: 4.2rem;
    }

    /* Contact Gallery */
    .contact_page_section .contact_gallery {
        height: 40rem;
    }

    .contact_page_section .contact_gallery_item_one {
        width: 68%;
        height: 33rem;
    }

    .contact_page_section .contact_gallery_item_two {
        width: 68%;
        height: 33rem;
    }
}

@media (max-width: 380px) {

    /* Contact Options */
    .contact_page_section .contact_options_grid {
        grid-template-columns: 1fr;
    }
}



/* -------------------------------------------------------------------------- */
/* ------------------------- Travel Search Section -------------------------- */

/* Travel Search Head */
.travel_search_section .travel_search_head {
    margin-bottom: 8rem;
}

.travel_search_section .travel_search_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4.8rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.travel_search_section .travel_search_text {
    margin-top: 1.6rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* Travel Search Layout */
.travel_search_section .travel_search_layout {
    display: grid;
    grid-template-columns: 28rem 1fr;
    align-items: start;
    gap: 6.4rem;
}

/* Travel Search Sidebar */
.travel_search_section .travel_search_sidebar {
    position: sticky;
    top: 2rem;
    z-index: 200;
    align-self: start;
}

.travel_search_section .travel_search_sidebar_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.travel_search_section .travel_search_sidebar_title {
    color: var(--ic-blue);
    font-weight: 600;
    font-size: 2.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.travel_search_section .travel_search_clear {
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
    transition: 0.3s ease;
}

.travel_search_section .travel_search_clear:hover {
    text-decoration: underline;
}

.travel_search_section .travel_search_count {
    margin-top: 2.4rem;
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}
.travel_search_section
.travel_search_child_age.has-error
.custom_select_trigger {
    border-color: #b42318;
    box-shadow: 0 0 0 1px #b42318;
}

.travel_search_section .travel_search_field_error {
    margin: 0.6rem 0 0;
    color: #b42318;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 140%;
}

.travel_search_section .travel_search_field_error[hidden] {
    display: none;
}
/* Travel Search Menu */
.travel_search_section .travel_search_menu {
    margin-top: 2.4rem;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.travel_search_section .travel_search_menu_item {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* Travel Search Filters */
.travel_search_section .sidebar_filters {
    display: flex;
    flex-direction: column;
    margin-top: 2rem;
}

.travel_search_section .travel_search_filter {
    border-top: 1px solid var(--ic-heliblau);
}

.travel_search_section .travel_search_filter_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    width: 100%;
    height: 6.7rem;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}

.travel_search_section .travel_search_filter_title {
    color: var(--ic-blue);
    font-size: 1.8rem;
    font-weight: 600;
}

.travel_search_section .travel_search_filter_icon {
    color: var(--ic-blue);
    font-size: 1.2rem;
    transition: 0.3s ease;
}

.travel_search_section
.travel_search_filter.travel_search_filter_active
> .travel_search_filter_head
.travel_search_filter_icon {
    transform: rotate(180deg);
}

.travel_search_section .travel_search_filter_body {
    margin-bottom: 3rem;
    overflow: visible;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.travel_search_section
.travel_search_filter:not(.travel_search_filter_active)
> .travel_search_filter_body {
    display: none;
}
/* Travel Search: internal option scrolling */

.travel_search_section .travel_search_options_scroll {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    max-height: 30.4rem;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 0.2rem 0.6rem 0.2rem 0;
    scrollbar-gutter: stable;
}

.travel_search_section .custom_select_dropdown {
    max-height: none;
    overflow: visible;
}

.travel_search_section .custom_select_options_scroll {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    width: 100%;
    max-height: 29.4rem;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 0.2rem 0.6rem 0.2rem 0;
    scrollbar-gutter: stable;
}

.travel_search_section .travel_search_options_scroll,
.travel_search_section .custom_select_options_scroll {
    scrollbar-width: thin;
    scrollbar-color:
        var(--ic-blue-lighter)
        transparent;
}

.travel_search_section
.travel_search_options_scroll::-webkit-scrollbar,
.travel_search_section
.custom_select_options_scroll::-webkit-scrollbar {
    width: 0.6rem;
}

.travel_search_section
.travel_search_options_scroll::-webkit-scrollbar-track,
.travel_search_section
.custom_select_options_scroll::-webkit-scrollbar-track {
    background: transparent;
}

.travel_search_section
.travel_search_options_scroll::-webkit-scrollbar-thumb,
.travel_search_section
.custom_select_options_scroll::-webkit-scrollbar-thumb {
    border-radius: 5rem;
    background: var(--ic-blue-lighter);
}
/* Travel Search: searchable multi-select */

.travel_search_section .travel_search_filter_search {
    width: 100%;
}

.travel_search_section .travel_search_filter_search input {
    width: 100%;
    height: 4.4rem;
    padding: 0 1.4rem;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 1.2rem;
    outline: none;
    background: var(--ic-white);
    color: var(--ic-blue);
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 150%;
}

.travel_search_section .travel_search_filter_search input:focus {
    border-color: var(--ic-blue);
}

.travel_search_section .travel_search_filter_search input::placeholder {
    color: var(--ic-blue-lighter);
}
.travel_search_section
.travel_search_filter_search
input[type="search"]::-webkit-search-cancel-button {
    cursor: pointer;
}
.travel_search_section .travel_search_multi_option {
    display: flex;
    align-items: flex-start;
    flex: 0 0 auto;
    gap: 1.2rem;
    width: 100%;
    min-height: 4rem;
    height: auto;
    padding: 0.8rem 0.6rem;
    border: none;
    border-radius: 0.8rem;
    background: transparent;
    color: var(--ic-blue);
    text-align: left;
    cursor: pointer;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 150%;
}
.travel_search_section
.travel_search_multi_option
> span:last-child {
    flex: 1;
    min-width: 0;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
}

.travel_search_section
.travel_search_multi_option
.travel_search_multi_check {
    margin-top: 0.25rem;
}
.travel_search_section .travel_search_multi_option:hover {
    background: var(--ic-cream-deschis);
}

.travel_search_section .travel_search_multi_option[hidden] {
    display: none !important;
}

.travel_search_section .travel_search_multi_check {
    position: relative;
    width: 1.8rem;
    height: 1.8rem;
    flex-shrink: 0;
    border: 1px solid var(--ic-blue-light);
    border-radius: 0.4rem;
    background: var(--ic-white);
}

.travel_search_section
.travel_search_multi_option.active
.travel_search_multi_check {
    border-color: var(--ic-blue);
    background: var(--ic-blue);
}

.travel_search_section
.travel_search_multi_option.active
.travel_search_multi_check::after {
    content: "";
    position: absolute;
    top: 0.35rem;
    left: 0.32rem;
    width: 0.8rem;
    height: 0.4rem;
    border-left: 2px solid var(--ic-white);
    border-bottom: 2px solid var(--ic-white);
    transform: rotate(-45deg);
}

@media (max-width: 768px) {
    
    .travel_search_section .travel_search_filter_search input {
        height: 4.8rem;
        font-size: 1.6rem;
    }

    .travel_search_section .travel_search_multi_option {
        min-height: 4.4rem;
        font-size: 1.6rem;
    }
}
.travel_search_section .travel_search_filter_group {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.travel_search_section
.travel_search_filter_group
+ .travel_search_filter_group {
    margin-top: 1.8rem;
    padding-top: 1.8rem;
    border-top: 1px solid var(--ic-heliblau);
}

.travel_search_section .travel_search_filter_label {
    color: var(--ic-blue);
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 150%;
}
/* Travel Search Input */
.travel_search_section .travel_search_input_wrap,
.travel_search_section .travel_search_search {
    display: flex;
    align-items: center;
    gap: 1.6rem;
    height: 4.8rem;
    padding: 0 2rem;
    border: 1px solid var(--ic-blue-light);
    border-radius: 5rem;
    background: var(--ic-white);
    cursor: pointer;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 150%;
}

.travel_search_section .travel_search_input_wrap svg,
.travel_search_section .travel_search_search svg {
    width: 1.6rem;
    height: 1.6rem;
    display: block;
    flex-shrink: 0;
    color: var(--ic-blue);
    fill: currentColor;
}

.travel_search_section .travel_search_input_wrap input,
.travel_search_section .travel_search_search input {
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    color: var(--ic-blue);
    font-size: inherit;
    font-weight: inherit;
}

.travel_search_section .custom_select_trigger {
    border: 1px solid var(--ic-blue-light);
    font-size: 1.4rem;
}

.travel_search_section .custom_select_option {
    font-size: 1.4rem;
}

@media (max-width: 768px) {
    .travel_search_section .travel_search_options_scroll {
        max-height: 33.2rem;
    }

    .travel_search_section .travel_search_multi_option {
        min-height: 4.4rem;
        font-size: 1.6rem;
    }
}
/* Travel Search Content */
.travel_search_section .travel_search_content_head {
    display: flex;
    justify-content: space-between;
    gap: 2.4rem;
    margin-bottom: 4.8rem;
}

.travel_search_section .travel_search_content_title {
    color: var(--ic-blue);
    font-weight: 600;
    font-size: 2.4rem;
    line-height: 140%;
    letter-spacing: 0%;
}

.travel_search_section .travel_search_content_text {
    margin-top: 0.8rem;
    max-width: 58rem;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

/* Travel Search Toolbar */
.travel_search_section .travel_search_toolbar {
    display: flex;
    align-items: flex-end;
    gap: 1.6rem;
}

.travel_search_section .travel_search_search {
    width: 100%;
}

.travel_search_section .travel_search_sort_select {
    width: 20rem;
    max-width: 20rem;
}

.travel_search_section .travel_search_sidebar_open,
.travel_search_section .travel_search_sidebar_close {
    display: none;
}

/* Travel Cards */
.travel_search_section .travel_cards_section .travel_cards_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3.2rem;
}

.travel_search_section .travel_cards_section .travel_cards_item {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--ic-heliblau);
    border-radius: 1.2rem;
    background: var(--ic-white);
}

.travel_search_section .travel_cards_section .travel_cards_image_wrap {
    position: relative;
}

.travel_search_section .travel_cards_section .travel_cards_image {
    display: block;
    width: 100%;
    height: 24rem;
    object-fit: cover;
}

.travel_search_section .travel_cards_section .travel_cards_tag {
    position: absolute;
    top: 1.6rem;
    right: 1.6rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.8rem;
    height: 3rem;
    padding: 0 1.4rem;
    border-radius: 5rem;
    background: color-mix(in srgb, var(--ic-white) 80%, transparent);
    color: var(--ic-blue);
    font-weight: 600;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.travel_search_section .travel_cards_section .travel_cards_tag svg {
    width: 1.4rem;
    height: 1.4rem;
    display: block;
    flex-shrink: 0;
    fill: currentColor;
}

.travel_search_section .travel_cards_section .travel_cards_content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 2.4rem;
}

.travel_search_section .travel_cards_section .travel_cards_code {
    color: var(--ic-blue-light);
    font-weight: 500;
    font-size: 1.2rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.travel_search_section .travel_cards_section .travel_cards_item_title {
    margin-top: 0.4rem;
    color: var(--ic-blue);
    font-weight: 600;
    font-size: 2rem;
    line-height: 140%;
    letter-spacing: 1%;
}

.travel_search_section .travel_cards_section .travel_cards_points {
    margin-top: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.travel_search_section .travel_cards_section .travel_cards_points_row strong,
.travel_search_section .travel_cards_section .travel_cards_points_row span {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.travel_search_section .travel_cards_section .travel_cards_points_row strong {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.travel_search_section .travel_cards_section .travel_cards_points_logo_row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.6rem;
}

.travel_search_section .travel_cards_section .travel_cards_logo_wrap {
    display: flex;
    justify-content: center;
    align-items: center;
}

.travel_search_section .travel_cards_section .travel_cards_logo {
    width: auto;
    height: 3.2rem;
}

.travel_search_section .travel_cards_section .travel_cards_price {
    margin-top: 1.2rem;
    margin-bottom: 1.6rem;
    padding-top: 1.4rem;
    padding-bottom: 1.4rem;
    border-top: 1px solid var(--ic-heliblau);
    border-bottom: 1px solid var(--ic-heliblau);
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 120%;
    letter-spacing: 4%;
}

.travel_search_section .travel_cards_section .travel_cards_btn {
    width: fit-content;
    height: 4rem;
    margin-top: auto;
}
.travel_search_section .travel_search_child_ages {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.travel_search_section .travel_search_child_age
.travel_search_filter_label {
    margin-top: 0;
}

.travel_search_section .travel_search_filter_hint {
    color: var(--ic-blue-light);
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 150%;
}
/* Travel Search: date range picker */

.travel_search_section .travel_search_date_range {
    position: relative;
    width: 100%;
}

.travel_search_section .travel_search_date_trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
    width: 100%;
    min-height: 5.2rem;
    padding: 0 1.8rem;
    border: 1px solid var(--ic-blue-light);
    border-radius: 5rem;
    background: var(--ic-white);
    color: var(--ic-blue);
    cursor: pointer;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 150%;
    text-align: left;
}

.travel_search_section .travel_search_date_trigger i {
    flex-shrink: 0;
    font-size: 1.6rem;
}

.travel_search_section .travel_search_date_range.active
.travel_search_date_trigger {
    border-color: var(--ic-blue);
}

.travel_search_section .travel_search_date_dropdown {
    position: absolute;
    top: calc(100% + 0.8rem);
    left: 0;
    z-index: 100;
    width: 64rem;
    max-width: calc(100vw - 4rem);
    padding: 1.6rem;
    border: 1px solid var(--ic-blue-lighter);
    border-radius: 2rem;
    background: var(--ic-white);
    box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, 0.12);
}

.travel_search_section
.travel_search_date_dropdown[hidden] {
    display: none;
}

.travel_search_section .travel_date_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    margin-bottom: 1.6rem;
}

.travel_search_section .travel_date_title {
    color: var(--ic-blue);
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 140%;
}

.travel_search_section .travel_date_nav {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.8rem;
    height: 3.8rem;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--ic-blue);
    cursor: pointer;
}

.travel_search_section .travel_date_nav:hover {
    background: var(--ic-cream-deschis);
}

.travel_search_section .travel_date_months {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
}

.travel_search_section .travel_date_month_title {
    margin-bottom: 1rem;
    color: var(--ic-blue);
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 140%;
    text-align: center;
}

.travel_search_section .travel_date_weekdays,
.travel_search_section .travel_date_days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.2rem;
}

.travel_search_section .travel_date_weekdays {
    margin-bottom: 0.6rem;
}

.travel_search_section .travel_date_weekdays span {
    color: var(--ic-blue-lighter);
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 140%;
    text-align: center;
}

.travel_search_section .travel_date_day {
    width: 100%;
    aspect-ratio: 1 / 1;
    border: none;
    border-radius: 0.6rem;
    background: transparent;
    color: var(--ic-blue);
    cursor: pointer;
    font-size: 1.2rem;
    font-weight: 500;
}

.travel_search_section .travel_date_day:hover {
    background: var(--ic-cream-deschis);
}

.travel_search_section .travel_date_day.muted {
    color: var(--ic-blue-lighter);
    opacity: 0.45;
}

.travel_search_section .travel_date_day.is-in-range {
    border-radius: 0.4rem;
    background: var(--ic-skyblue-bg);
    color: var(--ic-blue);
}

.travel_search_section
.travel_date_day.is-selected-start,
.travel_search_section
.travel_date_day.is-selected-end {
    background: var(--ic-blue);
    color: var(--ic-white);
    opacity: 1;
}

.travel_search_section .travel_date_footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6rem;
    margin-top: 1.6rem;
    padding-top: 1.4rem;
    border-top: 1px solid var(--ic-heliblau);
}

.travel_search_section .travel_date_selected {
    color: var(--ic-blue-light);
    font-size: 1.3rem;
    line-height: 140%;
}

.travel_search_section .travel_date_actions {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.travel_search_section .travel_date_button {
    min-height: 4rem;
    padding: 0 1.5rem;
    border: none;
    border-radius: 5rem;
    cursor: pointer;
    font-size: 1.3rem;
    font-weight: 600;
}

.travel_search_section .travel_date_button_light {
    background: var(--ic-cream-deschis);
    color: var(--ic-blue);
}

.travel_search_section .travel_date_button_primary {
    background: var(--ic-blue);
    color: var(--ic-white);
}

@media (max-width: 520px) {
    .travel_search_section .travel_search_date_dropdown {
        width: 100%;
        max-width: 100%;
        padding: 1.2rem;
    }

    .travel_search_section .travel_date_months {
        grid-template-columns: 1fr;
    }

    .travel_search_section .travel_date_day {
        min-height: 4.4rem;
        aspect-ratio: auto;
        font-size: 1.3rem;
    }

    .travel_search_section .travel_date_footer {
        flex-direction: column;
        align-items: stretch;
    }

    .travel_search_section .travel_date_actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .travel_search_section
    .travel_date_button_primary {
        grid-column: 1 / -1;
    }
}
/* Cruise Cards */
.cruise_deals_section .cruise_deals_list {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}

.cruise_deals_section .cruise_deal_card {
    display: grid;
    grid-template-columns: 34rem 1fr;
    border: 1px solid var(--ic-heliblau);
    border-radius: 1.2rem;
    overflow: hidden;
    background: var(--ic-white);
}

.cruise_deals_section .cruise_deal_media {
    position: relative;
    min-height: 48rem;
}

.cruise_deals_section .cruise_deal_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cruise_deals_section .cruise_deal_ship {
    position: absolute;
    top: 1.2rem;
    left: 1.2rem;
    right: 1.2rem;
    padding: 1.2rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    column-gap: 1.6rem;
    row-gap: 0.8rem;
    align-items: center;
    background: var(--ic-white);
    border-radius: 1.2rem;
}

.cruise_deals_section .cruise_deal_ship_left {
    display: contents;
    min-width: 0;
}

.cruise_deals_section .cruise_deal_ship_name {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: center;
    gap: 0.8rem;
    min-width: 0;
}

.cruise_deals_section .cruise_deal_ship_name svg {
    width: 1.8rem;
    height: 1.8rem;
    display: block;
    flex-shrink: 0;
    color: var(--ic-blue-light);
    fill: currentColor;
}

.cruise_deals_section .cruise_deal_ship_name span {
    min-width: 0;
    overflow: hidden;
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cruise_deals_section .cruise_deal_ship_meta {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 1.6rem;
    min-width: 0;
    margin-top: 0;
}

.cruise_deals_section .cruise_deal_ship_meta div {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    white-space: nowrap;
}

.cruise_deals_section .cruise_deal_ship_meta svg {
    width: 1.4rem;
    height: 1.4rem;
    display: block;
    flex-shrink: 0;
    color: var(--ic-blue-light);
    fill: currentColor;
}

.cruise_deals_section .cruise_deal_ship_meta div:last-child i {
    font-size: 1.2rem;
    color: var(--ic-gold-star);
}

.cruise_deals_section .cruise_deal_ship_meta span {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.2rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.cruise_deals_section .cruise_deal_logo {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    display: block;
    width: auto;
    max-width: 11rem;
    max-height: 3.2rem;
    height: auto;
    object-fit: contain;
    object-position: center right;
}
/* Desktop: ship information as overlay on image */
@media (min-width: 992px) {
    .cruise_deals_section .cruise_deal_card {
        grid-template-columns: 32.6rem minmax(0, 1fr);
        align-items: stretch;
    }

    .cruise_deals_section .cruise_deal_media {
        position: relative;
        display: block;
        width: 100%;
        height: 100%;
        min-height: 25.6rem;
        overflow: hidden;
        background: var(--ic-white);
    }

    .cruise_deals_section .cruise_deal_image {
        display: block;
        width: 100%;
        height: 100%;
        min-height: 25.6rem;
        object-fit: cover;
        object-position: center;
        aspect-ratio: auto;
    }

    .cruise_deals_section .cruise_deal_ship {
        position: absolute;
        top: 0.8rem;
        left: 0.8rem;
        right: 1.2rem;
        z-index: 2;
        min-height: 0;
        padding: 0.9rem 1.1rem;
        border: 1px solid var(--ic-heliblau);
        border-radius: 1.2rem;
        background: rgba(255, 255, 255, 0.96);
        box-shadow: 0 0.6rem 1.6rem rgba(30, 65, 75, 0.12);
    }

    .cruise_deals_section .cruise_deal_ship_left {
        min-width: 0;
    }

    .cruise_deals_section .cruise_deal_logo {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        align-self: center;
        display: block;
        width: auto;
        max-width: 11rem;
        max-height: 3.2rem;
        height: auto;
        object-fit: contain;
        object-position: center right;
        flex-shrink: 0;
    }
}
.cruise_deals_section .cruise_deal_content {
    min-width: 0;
    padding: 2.4rem;
    display: flex;
    flex-direction: column;
}

.cruise_deals_section .cruise_deal_head {
    display: flex;
    justify-content: space-between;
    gap: 2.4rem;
}

.cruise_deals_section .cruise_deal_title {
    display: -webkit-box;
    max-width: 100%;
    overflow: hidden;
    color: var(--ic-blue);
    font-weight: 600;
    font-size: 2rem;
    line-height: 140%;
    letter-spacing: 1%;
    overflow-wrap: break-word;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.cruise_deals_section .cruise_deal_date_text {
    margin-top: 0.8rem;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 1%;
}

.cruise_deals_section .cruise_deal_provider_ship {
    margin-top: 0.4rem;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 1%;
}

.cruise_deals_section .cruise_deal_provider_ship span {
    display: inline-block;
    margin: 0 0.5rem;
    color: var(--ic-blue-lighter);
}

.cruise_deals_section .cruise_deal_price {
    text-align: right;
    flex-shrink: 0;
}

.cruise_deals_section .cruise_deal_from {
    display: block;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.cruise_deals_section .cruise_deal_price strong {
    display: block;
    color: var(--ic-blue-light);
    font-weight: 500;
    font-size: 2.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.cruise_deals_section .cruise_deal_price small {
    display: block;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.cruise_deals_section .cruise_deal_route {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    margin-top: 1.6rem;
    padding: 0.8rem 1.2rem;
    border: 1px solid var(--ic-skyblue-border);
    border-radius: 1.2rem;
    background: var(--ic-skyblue-bg);
}

.cruise_deals_section .cruise_deal_route svg {
    width: 1.8rem;
    height: 1.8rem;
    margin-top: 0.2rem;
    display: block;
    flex-shrink: 0;
    color: var(--ic-blue);
    fill: currentColor;
}

.cruise_deals_section .cruise_deal_route strong {
    display: block;
    color: var(--ic-blue);
    font-weight: 600;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 1%;
}

.cruise_deals_section .cruise_deal_route span {
    display: block;
    margin-top: 0.2rem;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}



/* Pricing List */
.cruise_deals_section .cruise_deal_cabin_list {
    margin-top: 0.8rem;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.cruise_deals_section .cruise_deal_cabin_list .cruise_deal_cabin_row {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
}

.cruise_deals_section .cruise_deal_cabin_list .cruise_deal_cabin_row span {
    color: var(--ic-blue);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.cruise_deals_section .cruise_deal_cabin_list .cruise_deal_cabin_row strong {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}
/* Cruise deal port list */

.cruise_deals_section .cruise_deal_route_content {
    min-width: 0;
}

.cruise_deals_section .cruise_deal_ports {
    display: block;
    width: 100%;
    max-height: 4.8rem;
    overflow: hidden;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 1%;
    overflow-wrap: anywhere;
}
.cruise_deals_section
.cruise_deal_route
.cruise_deal_ports
.cruise_deal_ports_more {
    display: inline;
    margin: 0;
    color: inherit;
    font: inherit;
    font-weight: 700;
    letter-spacing: inherit;
}
.cruise_deals_section .cruise_deal_actions {
    margin-top: auto;
    padding-top: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 1.2rem;
}

.cruise_deals_section .cruise_deal_btn_outline,
.cruise_deals_section .cruise_deal_btn_fill {
    width: auto;
    height: 4.8rem;
    flex: 0 0 auto;
    padding-left: 2.4rem;
    padding-right: 2.4rem;
}

.cruise_deal_bookmark {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.8rem;
    height: 4.8rem;
    flex-shrink: 0;
    border: 1px solid var(--ic-heliblau);
    border-radius: 0.6rem;
    background: transparent;
    cursor: pointer;
    color: var(--ic-blue-lighter);
    transition: color 0.2s ease, border-color 0.2s ease;
    margin-left: auto;
}

.cruise_deal_bookmark:hover {
    color: var(--ic-gold);
    border-color: var(--ic-gold);
}

.cruise_deal_bookmark.is-bookmarked {
    color: var(--ic-gold);
    border-color: var(--ic-gold);
}

.cruise_deal_bookmark svg {
    width: 2rem;
    height: 1.8rem;
    display: block;
    fill: currentColor;
}

/* ---------- Travel Search Section Responsive ---------- */

@media (max-width: 1440px) {

    /* Travel Search Content */
    .travel_search_section .travel_search_content_head {
        flex-direction: column;
    }

    /* Travel Cards */
    .travel_search_section .travel_cards_section .travel_cards_grid {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media (max-width: 1200px) {

    /* Travel Search Layout */
    .travel_search_section .travel_search_layout {
        grid-template-columns: 1fr;
        gap: 4.4rem;
    }

    /* Travel Search Sidebar */
    .travel_search_section .travel_search_sidebar {
        position: fixed;
        top: 0;
        left: -100%;
        z-index: 100;
        width: 100%;
        height: 100vh;
        padding: 8rem 2.4rem 3rem;
        background: var(--ic-white);
        overflow-y: auto;
        transition: 0.3s ease;
        box-shadow: 0 0 2rem rgba(0, 0, 0, 0.08);
    }

    .travel_search_section.travel_search_sidebar_active .travel_search_sidebar {
        left: 0;
    }

    .travel_search_section .travel_search_sidebar_open {
        height: 5.2rem;
        padding: 0 2.4rem;
        border-radius: 5rem;
        flex-shrink: 0;
    }

    .travel_search_section .travel_search_sidebar_close,
    .travel_search_section .travel_search_sidebar_open {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .travel_search_section .travel_search_sidebar_close {
        position: absolute;
        top: 2rem;
        right: 1rem;
        width: 4rem;
        height: 4rem;
        border: 1px solid var(--ic-blue-lighter);
        border-radius: 50%;
        background: transparent;
        cursor: pointer;
    }

    .travel_search_section .travel_search_sidebar_close svg {
        width: 2.4rem;
        height: 2.4rem;
        display: block;
        flex-shrink: 0;
        fill: currentColor;
    }

    .travel_search_section .travel_search_sidebar_close:hover {
        color: var(--ic-white);
        border: 1px solid var(--ic-blue);
        background-color: var(--ic-blue);
    }

    /* Travel Cards */
    .travel_search_section .travel_cards_section .travel_cards_grid {
        grid-template-columns: repeat(3, 1fr);
    }

}

@media (max-width: 991px) {

    /* Travel Search Head */
    .travel_search_section .travel_search_head {
        margin-bottom: 5rem;
    }

    .travel_search_section .travel_search_content_text {
        max-width: 100%;
    }

    /* Travel Search Toolbar */
    .travel_search_section .travel_search_toolbar {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 1.2rem;
        width: 100%;
    }

    .travel_search_section .travel_search_search {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 100%;
    }

    .travel_search_section .travel_search_sort_select {
        width: 100%;
        max-width: none;
    }

    /* Travel Cards */
    .travel_search_section .travel_cards_section .travel_cards_grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
}

@media (max-width: 768px) {

    /* Travel Search Head */
    .travel_search_section .travel_search_title {
        font-size: 4.2rem;
    }

    /* Travel Search Sidebar */
    .travel_search_section .travel_search_input_wrap,
    .travel_search_section .travel_search_search {
        height: 5.2rem;
        font-size: 1.6rem;
    }

    .travel_search_section .custom_select_trigger {
        font-size: 1.6rem;
    }

    .travel_search_section .custom_select_option {
        font-size: 1.6rem;
    }

    /* Travel Cards */
    .travel_search_section .travel_cards_section .travel_cards_image {
        height: 24rem;
    }

}

@media (max-width: 568px) {

    /* Travel Cards */
    .travel_search_section .travel_cards_section .travel_cards_grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {

    /* Travel Search Sidebar */
    .travel_search_section .travel_search_sidebar {
        padding: 8rem 1.8rem 2.4rem;
    }
}

/* -------------------------------------------------------------------------- */
/* ---------------- Cruise Deal Cards: Responsive Final --------------------- */

/* Tablet and mobile */

@media (max-width: 991px) {
    .cruise_deals_section .cruise_deal_card {
        width: 100%;
        min-width: 0;
        grid-template-columns: minmax(0, 1fr);
    }

    .cruise_deals_section .cruise_deal_media {
        position: relative;
        width: 100%;
        min-width: 0;
        max-width: none;
        min-height: 0;
        max-height: none;
        justify-self: stretch;
        aspect-ratio: 16 / 9;
        overflow: hidden;
        border-bottom: 1px solid var(--ic-heliblau);
        background: var(--ic-white);
    }

    .cruise_deals_section .cruise_deal_image {
        display: block;
        width: 100%;
        min-width: 0;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .cruise_deals_section .cruise_deal_ship {
        position: absolute;
        top: 1.2rem;
        left: 1.2rem;
        right: 1.2rem;
        z-index: 2;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        align-items: center;
        column-gap: 1.2rem;
        row-gap: 0.5rem;
        min-height: 0;
        padding: 1.1rem 1.3rem;
        border: none;
        border-radius: 1.2rem;
        background: rgba(255, 255, 255, 0.97);
        box-shadow: 0 0.8rem 2rem rgba(30, 65, 75, 0.12);
    }

    .cruise_deals_section .cruise_deal_ship_left {
        display: contents;
        min-width: 0;
    }

    .cruise_deals_section .cruise_deal_ship_name {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
    }

    .cruise_deals_section .cruise_deal_ship_name span {
        min-width: 0;
        overflow: hidden;
        font-size: 1.7rem;
        line-height: 140%;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .cruise_deals_section .cruise_deal_logo {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        align-self: center;
        display: block;
        width: auto;
        max-width: 9rem;
        max-height: 2.6rem;
        height: auto;
        margin-top: 0;
        object-fit: contain;
        object-position: center right;
        flex-shrink: 0;
    }

    .cruise_deals_section .cruise_deal_ship_meta {
        grid-column: 1 / -1;
        grid-row: 2;
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.6rem 1.2rem;
        min-width: 0;
        margin-top: 0;
    }

    .cruise_deals_section .cruise_deal_ship_meta div {
        display: flex;
        align-items: center;
        gap: 0.6rem;
        white-space: nowrap;
    }

    .cruise_deals_section .cruise_deal_ship_meta span {
        font-size: 1.35rem;
        line-height: 140%;
    }

    .cruise_deals_section .cruise_deal_content {
        min-width: 0;
        padding: 2rem;
    }

    .cruise_deals_section .cruise_deal_head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 1.6rem;
    }

    .cruise_deals_section .cruise_deal_head_text {
        min-width: 0;
    }

    .cruise_deals_section .cruise_deal_title {
        font-size: 2rem;
        line-height: 135%;
        -webkit-line-clamp: 3;
    }

    .cruise_deals_section .cruise_deal_date_text,
    .cruise_deals_section .cruise_deal_provider_ship {
        font-size: 1.65rem;
        line-height: 145%;
    }

    .cruise_deals_section .cruise_deal_price {
        text-align: right;
    }

    .cruise_deals_section .cruise_deal_from,
    .cruise_deals_section .cruise_deal_price small {
        font-size: 1.5rem;
    }

    .cruise_deals_section .cruise_deal_price strong {
        font-size: 2.6rem;
        line-height: 140%;
    }

    .cruise_deals_section .cruise_deal_route {
        margin-top: 1.6rem;
        padding: 1.2rem 1.4rem;
    }

    .cruise_deals_section .cruise_deal_route_content {
        min-width: 0;
        flex: 1;
    }

    .cruise_deals_section .cruise_deal_route strong {
        font-size: 1.65rem;
        line-height: 140%;
    }

    .cruise_deals_section
    .cruise_deal_route
    .cruise_deal_ports {
        font-size: 1.5rem;
        line-height: 145%;
    }
}

/* Mobile */

@media (max-width: 768px) {
    .cruise_deals_section .cruise_deal_actions {
        width: 100%;
        margin-top: 1.8rem;
        padding-top: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
    }

    .cruise_deals_section .cruise_deal_btn_outline,
    .cruise_deals_section .cruise_deal_btn_fill,
    .cruise_deals_section .cruise_deal_route_btn {
        width: 100%;
        min-height: 5.2rem;
        height: 5.2rem;
        justify-content: center;
        padding-left: 2rem;
        padding-right: 2rem;
        font-size: 1.8rem;
    }
}

/* Prevent mobile touch hover flash */

@media (hover: none), (pointer: coarse) {
    .cruise_deals_section
    .cruise_deal_btn_outline {
        transition: none;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }

    .cruise_deals_section
    .cruise_deal_btn_outline:hover,
    .cruise_deals_section
    .cruise_deal_btn_outline:active {
        border-color: var(--ic-blue);
        background: transparent;
        color: var(--ic-blue);
    }
}

/* Small mobile */

@media (max-width: 480px) {
    .cruise_deals_section .cruise_deal_media {
        aspect-ratio: 4 / 3;
        max-height: none;
    }

    .cruise_deals_section .cruise_deal_ship {
        top: 0.8rem;
        left: 0.8rem;
        right: 0.8rem;
        padding: 0.8rem 1rem;
        row-gap: 0.4rem;
        border-radius: 1rem;
    }

    .cruise_deals_section .cruise_deal_ship_name span {
        font-size: 1.65rem;
        line-height: 140%;
    }

    .cruise_deals_section .cruise_deal_ship_meta {
        gap: 0.5rem 1rem;
    }

    .cruise_deals_section .cruise_deal_ship_meta span {
        font-size: 1.3rem;
        line-height: 140%;
    }

    .cruise_deals_section .cruise_deal_logo {
        max-width: 8rem;
        max-height: 2.3rem;
        height: auto;
    }

    .cruise_deals_section .cruise_deal_content {
        padding: 2rem 1.6rem 2.2rem;
    }

    .cruise_deals_section .cruise_deal_title {
        font-size: 2.1rem;
        line-height: 135%;
    }

    .cruise_deals_section .cruise_deal_date_text,
    .cruise_deals_section .cruise_deal_provider_ship {
        font-size: 1.7rem;
    }

    .cruise_deals_section .cruise_deal_price strong {
        font-size: 2.8rem;
    }

    .cruise_deals_section .cruise_deal_route strong {
        font-size: 1.7rem;
    }

    .cruise_deals_section
    .cruise_deal_route
    .cruise_deal_ports {
        font-size: 1.6rem;
    }
}

/* Very small mobile */

@media (max-width: 430px) {
    .cruise_deals_section .cruise_deal_head {
        grid-template-columns: minmax(0, 1fr);
        gap: 1rem;
    }

    .cruise_deals_section .cruise_deal_price {
        text-align: left;
    }
}

/* Desktop vertical alignment */

@media (min-width: 992px) {
    .cruise_deals_section .cruise_deal_content {
        padding: 1.4rem 2.4rem 1.4rem;
    }

    .cruise_deals_section .cruise_deal_head {
        align-items: flex-start;
    }

    .cruise_deals_section .cruise_deal_route {
        margin-top: 0.8rem;
        padding: 0.7rem 1.2rem;
    }

    .cruise_deals_section .cruise_deal_actions {
        margin-top: 1.2rem;
        padding-top: 0;
        justify-content: flex-end;
        align-items: center;
        gap: 1.2rem;
    }

    .cruise_deals_section .cruise_deal_btn_outline,
    .cruise_deals_section .cruise_deal_btn_fill {
        width: auto;
        flex: 0 0 auto;
        height: 4.4rem;
        min-height: 4.4rem;
    }
}
@media (min-width: 1201px) {
    .travel_search_section {
        padding-top: 3.2rem;
    }

    .travel_search_section .travel_search_layout {
        grid-template-columns: 31rem minmax(0, 1fr);
        gap: 3.4rem;
    }

    .travel_search_section .travel_search_sidebar {
        top: 9rem;
        width: 31rem;
        max-height: calc(100vh - 11rem);
        max-height: calc(100dvh - 11rem);

        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior-y: contain;

        scrollbar-gutter: stable;
        scrollbar-width: thin;
        scrollbar-color:
            var(--ic-blue-lighter)
            transparent;
    }

    .travel_search_section .travel_search_sidebar_head,
    .travel_search_section .travel_search_count,
    .travel_search_section .sidebar_filters {
        width: 28rem;
        max-width: 28rem;
    }

    .travel_search_section
    .travel_search_sidebar::-webkit-scrollbar {
        width: 0.8rem;
    }

    .travel_search_section
    .travel_search_sidebar::-webkit-scrollbar-track {
        border-radius: 5rem;
        background: transparent;
    }

    .travel_search_section
    .travel_search_sidebar::-webkit-scrollbar-thumb {
        border-radius: 5rem;
        background: var(--ic-blue-lighter);
    }

    .travel_search_section
    .travel_search_sidebar::-webkit-scrollbar-thumb:hover {
        background: var(--ic-blue-light);
    }
    .travel_search_section
    .travel_search_date_dropdown {
        position: fixed;
        right: auto;
        max-height: calc(100vh - 3.2rem);
        max-height: calc(100dvh - 3.2rem);
        overflow-y: auto;
        z-index: 500;
    }
}

/* -------------------------------------------------------------------------- */
/* --------------------------- Story Split Section -------------------------- */

.story_split_section {
    overflow: hidden;
}
.story_split_section.story_split_bg_white {
    background: var(--ic-glacier-white);
}

.story_split_section.story_split_bg_beige {
    background: var(--ic-cream-deschis);
}

.story_split_section.story_split_text_only .story_split_grid {
    grid-template-columns: 1fr;
    gap: 0;
}

.story_split_section.story_split_text_only .story_split_content {
    width: 100%;
    max-width: 100%;
}
.story_split_section .story_split_text p,
.story_split_section .story_split_text li,
.story_split_section .story_split_text span,
.story_split_section .story_split_text div {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.story_split_section .story_split_text p {
    margin: 0 0 1.6rem;
}

.story_split_section .story_split_text p:last-child {
    margin-bottom: 0;
}

.story_split_section .story_split_text ul,
.story_split_section .story_split_text ol {
    margin: 1.6rem 0;
    padding-left: 2.4rem;
}

.story_split_section .story_split_text ul {
    list-style: disc;
}

.story_split_section .story_split_text ol {
    list-style: decimal;
}

.story_split_section .story_split_text li {
    display: list-item;
    margin-bottom: 0.4rem;
}
/* Layout 1 */
.story_split_section .story_split_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8rem;
    align-items: center;
}

/* Layout 2 */
.story_split_section.story_split_reverse .story_split_grid {
    grid-template-columns: 1fr 1fr;
}

/* Media */
.story_split_section .story_split_media {
    width: 100%;
}

.story_split_section .story_split_image {
    width: 100%;
    height: 60rem;
    object-fit: cover;
    display: block;
}

/* Content */
.story_split_section .story_split_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.story_split_section .story_split_text {
    margin-top: 2.4rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

/* ---------- Story Split Section Responsive ---------- */

@media (max-width:1200px) {

    /* Both Layouts = Two Equal Columns */
    .story_split_section .story_split_grid,
    .story_split_section.story_split_reverse .story_split_grid {
        gap: 6rem;
    }
}

@media (max-width:991px) {

    /* Both Layouts = Single Column */
    .story_split_section .story_split_grid,
    .story_split_section.story_split_reverse .story_split_grid {
        grid-template-columns: 1fr;
        gap: 4rem;
    }

    /* Reverse Layout = Show Image First */
    .story_split_section.story_split_reverse .story_split_media {
        order: 1;
    }

    .story_split_section.story_split_reverse .story_split_content {
        order: 2;
    }
}

@media (max-width:768px) {

    /* Image Height */
    .story_split_section .story_split_image {
        height: 42rem;
    }

    /* Title */
    .story_split_section .story_split_title {
        font-size: 3.2rem;
    }
}

@media (max-width:480px) {

    /* Image Height */
    .story_split_section .story_split_image {
        height: 30rem;
    }
}



/* -------------------------------------------------------------------------- */
/* ---------------------------- Feature Panel Section ----------------------- */

.feature_panel_section {
    overflow: hidden;
    background-color: var(--ic-cream-deschis);
}

/* Layout Grid */
.feature_panel_section .feature_panel_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4.8rem;
    align-items: stretch;
}

.feature_panel_section.feature_panel_reverse .feature_panel_grid {
    grid-template-columns: 1fr 1fr;
}

/* Content Box */
.feature_panel_section .feature_panel_box {
    position: relative;
    padding: 4.8rem 3.2rem;
    border: 1px solid var(--ic-gold);
    min-height: 65rem;
}

.feature_panel_section .feature_panel_badge {
    position: absolute;
    top: -3rem;
    left: 50%;
    transform: translateX(-50%);
    padding: 0 4rem;
    background: var(--ic-cream-deschis);
    display: flex;
    align-items: center;
    justify-content: center;
}

.feature_panel_section .feature_panel_badge_logo {
    width: auto;
    height: 6rem;
    display: block;
}

.feature_panel_section .feature_panel_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.feature_panel_section .feature_panel_list {
    margin-top: 3.2rem;
    padding-left: 2rem;
    list-style: disc;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}

.feature_panel_section .feature_panel_list li {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%
}

.feature_panel_section .feature_panel_list li::marker {
    color: var(--ic-blue-light);
    opacity: 1;
}

.feature_panel_section .feature_panel_box p,
.feature_panel_section .feature_panel_box li,
.feature_panel_section .feature_panel_box span,
.feature_panel_section .feature_panel_box div {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.feature_panel_section .feature_panel_box p,
.feature_panel_section .feature_panel_box li {
    margin-top: 1.6rem;
}

.feature_panel_section .feature_panel_box ul,
.feature_panel_section .feature_panel_box ol {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Media */
.feature_panel_section .feature_panel_media {
    width: 100%;
}

.feature_panel_section .feature_panel_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Full Width Layout */
.feature_panel_section.feature_panel_full .feature_panel_box {
    min-height: auto;
}

.feature_panel_section.feature_panel_full .feature_panel_title {
    max-width: 100%;
    text-align: left;
}

.feature_panel_section.feature_panel_full .feature_panel_box p {
    text-align: left;
}

/* ---------- Feature Panel Section Responsive ---------- */

@media (max-width:991px) {

    /* Layout Grid */
    .feature_panel_section .feature_panel_grid,
    .feature_panel_section.feature_panel_reverse .feature_panel_grid {
        grid-template-columns: 1fr;
        gap: 2.8rem;
    }

    /* Always Show Content First */
    .feature_panel_section .feature_panel_box {
        min-height: fit-content;
        order: 1;
    }

    /* Always Show Image Second */
    .feature_panel_section .feature_panel_media {
        order: 2;
    }

    /* Image */
    .feature_panel_section .feature_panel_image {
        height: 50rem;
    }
}

@media (max-width:768px) {

    /* Content Box */
    .feature_panel_section .feature_panel_box {
        padding: 4rem 2.4rem 3rem;
        min-height: auto;
    }

    /* Image */
    .feature_panel_section .feature_panel_image {
        height: 40rem;
    }

    /* Title */
    .feature_panel_section .feature_panel_title {
        font-size: 3.2rem;
    }
}

@media (max-width:480px) {

    /* Image */
    .feature_panel_section .feature_panel_image {
        height: 28rem;
    }
}



/* -------------------------------------------------------------------------- */
/* ---------------------------- Promo Story Section ------------------------ */

.promo_story_section {
    background: var(--ic-blue);
    overflow: hidden;
}

/* Layout Grid */
.promo_story_section .promo_story_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8rem;
    align-items: stretch;
}

/* Media */
.promo_story_section .promo_story_media {
    position: relative;
}

.promo_story_section .promo_story_image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.promo_story_section .promo_story_badge {
    position: absolute;
    top: 3.5rem;
    right: 3.5rem;
    width: 8rem;
    height: 8rem;
    border-radius: 50%;
    background: var(--ic-white);
    display: flex;
    align-items: center;
    justify-content: center;
}

.promo_story_section .promo_story_badge svg {
    width: 3rem;
    height: 3rem;
    display: block;
    flex-shrink: 0;
    color: var(--ic-gold);
    fill: currentColor;
}

/* Content */
.promo_story_section .promo_story_content {
    min-height: 60rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.promo_story_section .promo_story_title {
    color: var(--ic-white);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.promo_story_section .promo_story_text {
    margin-top: 2.4rem;
    color: var(--ic-white);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.promo_story_section .promo_story_list {
    margin-top: 2.4rem;
    padding-left: 2.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    list-style: disc;
}

.promo_story_section .promo_story_list li {
    color: var(--ic-white);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.promo_story_section .promo_story_btn {
    margin-top: 3.2rem;
    width: fit-content;
    height: 4.8rem;
}

/* ---------- Promo Story Section Responsive ---------- */

@media (max-width:1200px) {

    /* Grid */
    .promo_story_section .promo_story_grid {
        gap: 6rem;
    }
}

@media (max-width:991px) {

    /* Grid */
    .promo_story_section .promo_story_grid {
        grid-template-columns: 1fr;
        gap: 4rem;
    }

    /* Image */
    .promo_story_section .promo_story_image {
        height: 50rem;
    }

    /* Content */
    .promo_story_section .promo_story_content {
        max-width: 100%;
        min-height: fit-content;
        justify-content: start;
    }
}

@media (max-width:768px) {

    /* Image */
    .promo_story_section .promo_story_image {
        height: 40rem;
    }

    /* Badge */
    .promo_story_section .promo_story_badge {
        width: 6rem;
        height: 6rem;
        top: 2rem;
        right: 2rem;
    }

    .promo_story_section .promo_story_badge i {
        font-size: 2rem;
    }

    /* Title */
    .promo_story_section .promo_story_title {
        font-size: 3.2rem;
    }
}

@media (max-width:480px) {

    /* Image */
    .promo_story_section .promo_story_image {
        height: 28rem;
    }
}



/* -------------------------------------------------------------------------- */
/* ------------------------- Article Content Section ------------------------ */

.article_content_section {
    overflow: hidden;
}

/* Cream Background Version */
.article_content_section.article_content_cream {
    background: var(--ic-cream-deschis);
}

/* Wrapper */
.article_content_section .article_content_wrap {
    max-width: 90rem;
    margin: 0 auto;
}

/* Headings */
.article_content_section .article_content_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 0%;
}

.article_content_section .article_content_title.inner_heading {
    margin-top: 4rem;
}

.article_content_section .article_content_subtitle {
    margin-top: 6.2rem;
    color: var(--ic-blue);
    font-weight: 600;
    font-size: 2rem;
    line-height: 140%;
    letter-spacing: 0%;
}

/* Text */
.article_content_section .article_content_text {
    margin-top: 1.6rem;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

/* Lists */
.article_content_section .article_content_list,
.article_content_section .article_content_ordered {
    margin-top: 1.6rem;
    padding-left: 2.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.article_content_section .article_content_list {
    list-style: disc;
}

.article_content_section .article_content_ordered {
    list-style: decimal;
}

.article_content_section .article_content_list li,
.article_content_section .article_content_ordered li {
    display: list-item;
    list-style-position: outside;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.article_content_section .article_content_list li::marker,
.article_content_section .article_content_ordered li::marker {
    color: var(--ic-blue);
    opacity: 1;
}

/* Image */
.article_content_section .article_content_figure {
    margin-top: 4.8rem;
}

.article_content_section .article_content_image {
    width: 100%;
    height: 40rem;
    object-fit: cover;
    display: block;
}

.article_content_section .article_content_caption {
    margin-top: 0.8rem;
    padding-left: 1.2rem;
    border-left: 0.3rem solid var(--ic-heliblau);
    color: var(--ic-blue);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 0%;
}

/* Quote */
.article_content_section .article_content_quote {
    margin-top: 3.6rem;
    margin-bottom: 3.6rem;
    padding-left: 2.4rem;
    border-left: 0.3rem solid var(--ic-heliblau);
    color: var(--ic-blue);
    font-style: italic;
    font-size: 2rem;
    line-height: 2.8rem;
    letter-spacing: 0%;
}

/* Buttons */
.article_content_section .article_content_actions {
    margin-top: 2.4rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem;
}

.article_content_section .article_content_actions a {
    width: fit-content;
    height: 4.8rem;
}

/* ---------- Article Content Section Responsive ---------- */

@media (max-width:768px) {

    /* Image */
    .article_content_section .article_content_image {
        height: 40rem;
    }
}



/* -------------------------------------------------------------------------- */
/* ---------------------------- Video Split Section ------------------------- */

.video_split_section {
    overflow: hidden;
}

/* Layout */
.video_split_section .video_split_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8rem;
    align-items: center;
}

/* Content */
.video_split_section .video_split_title {
    color: var(--ic-blue);
    font-weight: 500;
    font-size: 5.6rem;
    line-height: 120%;
    letter-spacing: 0%;
}

.video_split_section .video_split_text {
    margin-top: 2.4rem;
    color: var(--ic-blue-light);
    font-weight: 400;
    font-size: 1.8rem;
    line-height: 150%;
    letter-spacing: 0%;
}

.video_split_section .video_split_actions {
    margin-top: 3.2rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem;
}

.video_split_section .video_split_actions a {
    width: fit-content;
    height: 4.8rem;
}

/* Media */
.video_split_section .video_split_media {
    position: relative;
}

.video_split_section .video_split_video {
    width: 100%;
    height: 60rem;
    object-fit: cover;
    display: block;
}

/* Play Button */
.video_split_section .video_split_play_btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 7rem;
    height: 7rem;
    border: none;
    border-radius: 50%;
    background: var(--ic-white);
    color: var(--ic-blue);
    font-size: 2.2rem;
    cursor: pointer;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
}

.video_split_section .video_split_play_btn:hover {
    transform: translate(-50%, -50%) scale(1.08);
}

/* ---------- Video Split Section Responsive ---------- */

@media (max-width:991px) {

    /* Layout */
    .video_split_section .video_split_grid {
        grid-template-columns: 1fr;
        gap: 6rem;
    }

    /* Title */
    .video_split_section .video_split_title {
        font-size: 4.8rem;
    }

    /* Video */
    .video_split_section .video_split_content {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
    }
}

@media (max-width:768px) {

    /* Layout */
    .video_split_section .video_split_grid {
        gap: 4rem;
    }

    /* Title */
    .video_split_section .video_split_title {
        font-size: 3.2rem;
    }

    /* Video */
    .video_split_section .video_split_video {
        height: 40rem;
    }
}

@media (max-width:480px) {

    /* Video */
    .video_split_section .video_split_video {
        height: 28rem;
    }

    /* Play Button */
    .video_split_section .video_split_play_btn {
        height: 5.2rem;
    }
}



/* -------------------------------------------------------------------------- */
/* ---------------------------- Video Banner Section ------------------------ */

.video_banner_section {
    overflow: hidden;
}

/* Media */
.video_banner_section .video_banner_media {
    position: relative;
}

.video_banner_section .video_banner_video {
    width: 100%;
    height: 72rem;
    object-fit: cover;
    display: block;
}

/* Play Button */
.video_banner_section .video_banner_play_btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 7rem;
    height: 7rem;
    border: none;
    border-radius: 50%;
    background: var(--ic-heliblau);
    color: var(--ic-blue);
    font-size: 2.2rem;
    cursor: pointer;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
}

.video_banner_section .video_banner_play_btn:hover {
    transform: translate(-50%, -50%) scale(1.08);
}

/* ---------- Video Banner Section Responsive ---------- */

@media (max-width:768px) {

    /* Video */
    .video_banner_section .video_banner_video {
        height: 38rem;
    }
}

@media (max-width:480px) {

    /* Video */
    .video_banner_section .video_banner_video {
        height: 28rem;
    }

    /* Play Button */
    .video_banner_section .video_banner_play_btn {
        width: 5.4rem;
        height: 5.4rem;
        font-size: 1.8rem;
    }
}

/* -------------------------------------------------------------------------- */

.header .header_brand_picture .logo,
.header .header_brand_picture img {
    display: block;
    width: auto;
    max-height: 4.2rem;
    height: auto;
}

.footer .footer_brand {
    width: fit-content;
}

.footer .footer_brand_link {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: fit-content;
    line-height: 0;
}

.footer .footer_brand .logo,
.footer .footer_brand img {
    display: block;
    width: 35rem;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

/* -------------------------------------------------------------------------- */
/* ----------- Free Text Section -------------------------------------------- */

.free_text_section p,
.free_text_section li,
.free_text_section span,
.free_text_section div {
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}
/* -------------------------------------------------------------------------- */
/* ----------- Destination Experience Free Text 1 --------------------------- */

.free_text_section_1 {
    background: var(--ic-cream-deschis);
}

.free_text_section_1 .free_text_section_1_inner {
    width: 100%;
}

.free_text_section_1 .free_text_section_1_inner.has_image {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 48rem);
    gap: 6.4rem;
    align-items: center;
}

.free_text_section_1 .free_text_section_1_content {
    width: 100%;
}

.free_text_section_1 .free_text_section_1_media {
    width: 100%;
}

.free_text_section_1 .free_text_section_1_image {
    display: block;
    width: 100%;
    height: 42rem;
    object-fit: cover;
    border-radius: 1.2rem;
}

@media (max-width: 991px) {
    .free_text_section_1 .free_text_section_1_inner.has_image {
        grid-template-columns: 1fr;
        gap: 4rem;
    }

    .free_text_section_1 .free_text_section_1_image {
        height: 36rem;
    }
}

@media (max-width: 576px) {
    .free_text_section_1 .free_text_section_1_image {
        height: 28rem;
    }
}
/* -------------------------------------------------------------------------- */
/* ----------- About Story HTML field (description) ------------------------- */

.about_story_section .about_story_text p,
.about_story_section .about_story_text li,
.about_story_section .about_story_text span,
.about_story_section .about_story_text div {
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 150%;
    letter-spacing: 2%;
}
/* -------------------------------------------------------------------------- */
/* ----------- Strong / Bold Text ------------------------------------------- */

main strong,
main b {
    font-weight: 800;
}
/* -------------------------------------------------------------------------- */
/* ----------- General Display Text Color ----------------------------------- */

.header .header_sidebar_nav a,
.header .header_sidebar_info a,
.header .header_sidebar_info p,
.nav_back_btn,
.nav_drill_btn,
.hero_section .hero_section_title,
.hero_section .hero_section_text,
.hero_full_section .hero_full_section_title,
.hero_full_section .hero_full_section_text,
.hero_full_section .hero_full_section_text p,
.holiday_search_section .holiday_search_title,
.about_story_section .about_story_label,
.about_story_section .about_story_title,
.about_story_section .about_story_text,
.about_story_section .about_story_text p,
.why_choose_section .why_choose_title,
.why_choose_section .why_choose_item_title,
.why_choose_section .why_choose_item_text,
.partners_logo_section .partners_logo_title,
.showcase_slider_section .showcase_slider_section_label,
.showcase_slider_section .showcase_slider_section_title,
.showcase_slider_section .showcase_slider_section_text,
.showcase_slider_section .showcase_slider_card_label,
.showcase_slider_section .showcase_slider_card_title,
.showcase_slider_section .showcase_slider_card_text,
.showcase_slider_section .showcase_slider_card_points li,
.showcase_slider_section .showcase_slider_card_points strong,
.offers_cards_section .offers_cards_section_label,
.offers_cards_section .offers_cards_section_title,
.offers_cards_section .offers_cards_section_text,
.offers_cards_section .offers_cards_code,
.offers_cards_section .offers_cards_item_title,
.offers_cards_section .offers_cards_points_row strong,
.offers_cards_section .offers_cards_points_row span,
.offers_cards_section .offers_cards_price,
.testimonials_section .testimonials_title,
.testimonials_section .testimonials_text,
.testimonials_section .testimonials_quote,
.testimonials_section .testimonials_user_name,
.testimonials_section .testimonials_user_meta,
.newsletter_section .newsletter_banner_title,
.newsletter_section .newsletter_banner_text,
.newsletter_section .newsletter_subscribe_title,
.newsletter_section .newsletter_subscribe_text,
.newsletter_section .newsletter_subscribe_note,
.newsletter_section .newsletter_subscribe_note a,
.destination_cards .destination_card_label,
.destination_cards .destination_card_title,
.destination_cards .destination_card_text,
.gallery_slider_section .gallery_slider_text,
.gallery_slider_section .gallery_slider_text p,
.content_section .content_section_title,
.content_section .content_section_text,
.content_section .content_section_text p,
.content_section_text,
.content_section_text p,
.travel_time_section .travel_time_title,
.travel_time_section .travel_time_month,
.faq_section .faq_title,
.faq_section .faq_text,
.faq_section .faq_question span,
.faq_section .faq_answer p,
.contact_page_section .contact_title,
.contact_page_section .contact_text,
.contact_page_section .contact_label,
.contact_page_section .contact_options_title,
.contact_page_section .contact_note,
.contact_page_section .contact_info_item a,
.contact_page_section .contact_info_item p,
.travel_search_section .travel_search_title,
.travel_search_section .travel_search_text,
.travel_search_section .travel_search_sidebar_title,
.travel_search_section .travel_search_clear,
.travel_search_section .travel_search_count,
.travel_search_section .travel_search_menu_item,
.travel_search_section .travel_search_filter_title,
.travel_search_section .travel_search_content_title,
.travel_search_section .travel_search_content_text,
.travel_search_section .travel_cards_section .travel_cards_code,
.travel_search_section .travel_cards_section .travel_cards_item_title,
.travel_search_section .travel_cards_section .travel_cards_points_row strong,
.travel_search_section .travel_cards_section .travel_cards_points_row span,
.travel_search_section .travel_cards_section .travel_cards_price,
.cruise_deals_section .cruise_deal_ship_name span,
.cruise_deals_section .cruise_deal_ship_meta span,
.cruise_deals_section .cruise_deal_title,
.cruise_deals_section .cruise_deal_subtitle,
.cruise_deals_section .cruise_deal_from,
.cruise_deals_section .cruise_deal_price strong,
.cruise_deals_section .cruise_deal_price small,
.cruise_deals_section .cruise_deal_route strong,
.cruise_deals_section .cruise_deal_route span,
.cruise_deals_section .cruise_deal_date span,
.cruise_deals_section .cruise_deal_date small,
.cruise_deals_section .cruise_deal_date strong,
.cruise_deals_section .cruise_deal_cabin .cruise_deal_label,
.cruise_deals_section .cruise_deal_cabin_grid .cruise_deal_cabin_item span,
.cruise_deals_section .cruise_deal_cabin_grid .cruise_deal_cabin_item strong,
.cruise_deals_section .cruise_deal_cabin_list .cruise_deal_cabin_row span,
.cruise_deals_section .cruise_deal_cabin_list .cruise_deal_cabin_row strong,
.story_split_section .story_split_title,
.story_split_section .story_split_text,
.feature_panel_section .feature_panel_title,
.feature_panel_section .feature_panel_list li,
.feature_panel_section .feature_panel_box p,
.feature_panel_section .feature_panel_box li,
.article_content_section .article_content_title,
.article_content_section .article_content_subtitle,
.article_content_section .article_content_text,
.article_content_section .article_content_list li,
.article_content_section .article_content_ordered li,
.article_content_section .article_content_caption,
.article_content_section .article_content_quote,
.video_split_section .video_split_title,
.video_split_section .video_split_text,
.free_text_section p,
.free_text_section li,
.free_text_section span,
.free_text_section div,
.about_story_section .about_story_text p,
.about_story_section .about_story_text li,
.about_story_section .about_story_text span,
.about_story_section .about_story_text div {
    color: var(--ic-dark-grau);
}

/* -------------------------------------------------------------------------- */
/* ----------- Hero Responsive Text Color Override ------------------------------ */

@media (max-width: 991px) {
    .hero_section .hero_section_title,
    .hero_section .hero_section_text,
    .hero_section .hero_section_text p {
        color: var(--ic-white);
    }
}

/* -------------------------------------------------------------------------- */
/* ------------------------------ Text Block -------------------------------- */

.text_block_section {
    overflow: hidden;
}

.text_block_section.text_block_bg_white {
    background: #fafafa;
}

.text_block_section.text_block_bg_beige {
    background: var(--ic-cream-deschis);
}

.text_block_section .text_block_inner {
    width: 100%;
}

.text_block_section .text_block_title {
    color: var(--ic-dark-grau);
    font-weight: 500;
    font-size: 4rem;
    line-height: 120%;
    letter-spacing: 1%;
}

.text_block_section .text_block_content {
    margin-top: 1.6rem;
    color: var(--ic-dark-grau);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.text_block_section .text_block_content p,
.text_block_section .text_block_content li,
.text_block_section .text_block_content span,
.text_block_section .text_block_content div {
    color: var(--ic-dark-grau);
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 150%;
    letter-spacing: 2%;
}

.text_block_section .text_block_content p {
    margin: 0 0 1.6rem;
}

.text_block_section .text_block_content p:last-child {
    margin-bottom: 0;
}

.text_block_section .text_block_content strong,
.text_block_section .text_block_content b {
    font-weight: 800;
}

.text_block_section .text_block_content ul,
.text_block_section .text_block_content ol {
    margin: 1.6rem 0;
    padding-left: 2.4rem;
}

.text_block_section .text_block_content ul {
    list-style: disc;
}

.text_block_section .text_block_content ol {
    list-style: decimal;
}

.text_block_section .text_block_content li {
    display: list-item;
}

/* Trennlinie im HTML-Textfeld */
.text_block_section .text_block_content hr {
    width: 100%;
    height: 2px;
    margin: 4rem 0;
    border: none;
    background: var(--ic-heliblau);
}

@media (max-width: 768px) {
    .text_block_section .text_block_title {
        font-size: 3.2rem;
    }

    .text_block_section .text_block_content hr {
        margin: 3rem 0;
    }
}
/* HTML bullet points */
.free_text_section ul,
.free_text_section ol {
    margin: 1.6rem 0;
    padding-left: 2.4rem;
}

.free_text_section ul {
    list-style: disc;
}

.free_text_section ol {
    list-style: decimal;
}

.free_text_section li {
    display: list-item;
    margin-bottom: 0.4rem;
}

.free_text_section li::marker {
    color: var(--ic-dark-grau);
}
/* HTML bullet points in content sections / shipping company pages */
.content_section .content_section_text ul,
.content_section .content_section_text ol {
    margin: 1.6rem 0;
    padding-left: 2.4rem;
    list-style-position: outside;
    font-weight: inherit;
    color: inherit;
}

.content_section .content_section_text ul {
    list-style-type: disc;
}

.content_section .content_section_text ol {
    list-style-type: decimal;
}

.content_section .content_section_text li {
    display: list-item;
    margin-bottom: 0.4rem;
    font-weight: inherit;
    color: inherit;
}

.content_section .content_section_text li::marker {
    color: currentColor;
}

/* Ship cards on shipping company pages */
.shipping_company_ships_slider
.showcase_slider_card {
    width: 100%;
    max-width: none;
}
/* Shipping company slider: keep last card fully visible */

@media (min-width: 1441px) {
    .shipping_company_ships_slider
    .showcase_slider {
        width: calc(
            100% +
            ((100vw - 144rem) / 2) -
            2.4rem
        );

        margin-right: calc(
            ((100vw - 144rem) / -2) +
            2.4rem
        );
    }
}
/* ── Travel Search Pagination ── */
.travel_search_pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    margin-top: 4rem;
    flex-wrap: wrap;
}

.travel_search_pagination .travel_search_page_btn,
.travel_search_pagination .travel_search_page_arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    border: 1px solid var(--ic-heliblau);
    background: var(--ic-white);
    color: var(--ic-blue);
    font-family: var(--font-roboto);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    transition: 0.2s ease;
    cursor: pointer;
    flex-shrink: 0;
}

.travel_search_pagination .travel_search_page_btn:hover,
.travel_search_pagination .travel_search_page_arrow:hover {
    background: var(--ic-heliblau);
    border-color: var(--ic-heliblau);
}

.travel_search_pagination .travel_search_page_btn.active {
    background: var(--ic-blue);
    border-color: var(--ic-blue);
    color: var(--ic-white);
    font-weight: 500;
}

.travel_search_pagination .travel_search_page_arrow.disabled {
    opacity: 0.35;
    pointer-events: none;
}

.travel_search_pagination .travel_search_page_arrow svg {
    width: 1.4rem;
    height: 1.4rem;
    display: block;
    flex-shrink: 0;
}

.travel_search_pagination .travel_search_page_dots {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    color: var(--ic-blue-lighter);
    font-size: 1.5rem;
    letter-spacing: 0.2rem;
    user-select: none;
}

/* ── Travel Search – Form Elements ── */
.travel_search_filter_label {
    display: block;
    color: var(--ic-blue-light);
    font-size: 1.3rem;
    font-weight: 400;
    margin-bottom: 0.6rem;
    margin-top: 1.2rem;
}
.travel_search_filter_label:first-child { margin-top: 0; }

.travel_search_date_input {
    width: 100%;
    padding: 1rem 1.4rem;
    border: 1px solid var(--ic-heliblau);
    border-radius: 0.8rem;
    font-size: 1.4rem;
    font-family: var(--font-roboto);
    color: var(--ic-blue);
    background: var(--ic-white);
    outline: none;
    transition: border-color 0.2s ease;
}
.travel_search_date_input:focus { border-color: var(--ic-blue); }

.travel_search_submit {
    width: 100%;
    height: 4.8rem;
    margin-top: 2.4rem;
}

.travel_search_empty {
    padding: 4rem 2.4rem;
    text-align: center;
    color: var(--ic-blue-lighter);
    font-size: 1.6rem;
    border: 1px solid var(--ic-heliblau);
    border-radius: 1.2rem;
}
/* ---------- Travel Search Active Filters ---------- */

.travel_search_active_filters {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.6rem;
    width: 100%;
    margin: 0 0 3.2rem;
    padding: 0;
    border-radius: 0;
    background: transparent;
}

.travel_search_active_filters[hidden] {
    display: none;
}

.travel_search_active_filter_list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    width: 100%;
}

.travel_search_active_filter_tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.9rem;
    min-height: 4.8rem;
    padding: 1rem 1.6rem;
    border: 0.1rem solid #1d4b57;
    border-radius: 10rem;
    background: #fff;
    color: #1d4b57;
    font: inherit;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.35;
    cursor: pointer;
    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease,
        opacity 0.2s ease;
}

.travel_search_active_filter_tag:hover,
.travel_search_active_filter_tag:focus-visible {
    border-color: #1d4b57;
    background: #1d4b57;
    color: #fff;
}

.travel_search_active_filter_text {
    text-align: left;
}

.travel_search_active_filter_close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1;
}

.travel_search_active_filter_reset {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 3.8rem;
    padding: 0 0 0.4rem;
    border: 0;
    background: transparent;
    color: #1d4b57;
    font: inherit;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
}

.travel_search_active_filter_reset::before {
    content: "\00d7";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.5rem;
    height: 1.5rem;
    font-size: 1.9rem;
    font-weight: 400;
    line-height: 1;
    transform: translateY(-0.05rem);
}

.travel_search_active_filter_reset::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 0.1rem;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.2s ease;
}
.travel_search_active_filter_reset:hover::after,
.travel_search_active_filter_reset:focus-visible::after {
    transform: scaleX(1);
}

/* Ladezustand */

.travel_search_active_filters.is-loading {
    pointer-events: none;
    opacity: 0.65;
}

.travel_search_active_filter_tag.is-removing
.travel_search_active_filter_close {
    display: none;
}

.travel_search_active_filter_tag.is-removing::after {
    content: "";
    flex: 0 0 auto;
    width: 1.6rem;
    height: 1.6rem;
    border: 0.2rem solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: travel-filter-loading 0.7s linear infinite;
}

@keyframes travel-filter-loading {
    to {
        transform: rotate(360deg);
    }
}

/* ---------- Travel Search: mobile overflow fix ---------- */

@media (max-width: 768px) {

    .travel_search_section {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
        overflow-x: clip;
    }

    .travel_search_section .travel_search_container,
    .travel_search_section .travel_search_layout,
    .travel_search_section .travel_search_content,
    .travel_search_section .travel_search_content_head,
    .travel_search_section .travel_search_toolbar,
    .travel_search_section .travel_search_active_filters {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .travel_search_section .travel_search_layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .travel_search_section .travel_search_toolbar {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .travel_search_section .travel_search_sort_select {
        width: 100%;
        max-width: none;
        min-width: 0;
    }

    .travel_search_section .travel_search_search {
        width: 100%;
        min-width: 0;
    }

    /*
     * Outer area must never enlarge the page.
     */
    .travel_search_section .travel_search_active_filters {
        gap: 1rem;
        margin: 0 0 2rem;
        padding: 0;
        overflow: hidden;
    }

    /*
     * Only this element may scroll horizontally.
     */
    .travel_search_section .travel_search_active_filter_list {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.8rem;

        width: 100%;
        max-width: 100%;
        min-width: 0;

        padding: 0 0 0.6rem;

        overflow-x: auto;
        overflow-y: hidden;

        overscroll-behavior-x: contain;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .travel_search_section
    .travel_search_active_filter_list::-webkit-scrollbar {
        display: none;
    }

    .travel_search_section .travel_search_active_filter_tag {
        flex: 0 0 auto;
        width: auto;
        max-width: calc(100% - 1rem);
        min-height: 4.4rem;

        margin: 0;
        padding: 0.8rem 1.2rem;

        justify-content: flex-start;
        gap: 0.7rem;

        border-color: var(--ic-blue);
        background: var(--ic-white);
        color: var(--ic-blue);

        font-size: 1.4rem;
        line-height: 1.2;
        text-align: left;
        white-space: nowrap;

        scroll-snap-align: start;
    }

    .travel_search_section .travel_search_active_filter_text {
        display: block;
        min-width: 0;
        max-width: 22rem;

        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .travel_search_section .travel_search_active_filter_close {
        flex: 0 0 auto;
        width: 1.8rem;
        height: 1.8rem;
        font-size: 1.8rem;
    }

    .travel_search_section .travel_search_active_filter_reset {
        max-width: 100%;
        min-height: 3.4rem;
        padding-bottom: 0.3rem;
        font-size: 1.4rem;
    }
}

@media (max-width: 380px) {
    .travel_search_section .travel_search_active_filter_text {
        max-width: 18rem;
    }
}
/* Ship overview filter */
.ship_overview_section .ship_filter_bar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1.8rem;
    margin-bottom: 4.8rem;
}

.ship_overview_section .ship_filter_label {
    color: var(--ic-dark-grau);
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 150%;
    white-space: nowrap;
}

.ship_overview_section .ship_filter_select {
    width: 28rem;
    max-width: 100%;
}

.ship_overview_section .ship_filter_select .custom_select_trigger {
    height: 4.8rem;
    padding: 0 2rem;
    border-color: var(--ic-blue-lighter);
    background: var(--ic-glacier-white);
}

.ship_overview_section .ship_filter_select .custom_select_placeholder {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ship_overview_section .ship_filter_select .custom_select_arrow {
    margin-left: 1.2rem;
    color: var(--ic-blue-light);
    font-size: 1.4rem;
    flex-shrink: 0;
    transition: 0.3s ease;
}

.ship_overview_section .ship_filter_select.active .custom_select_arrow {
    transform: rotate(180deg);
}

.ship_overview_section .ship_filter_select .custom_select_dropdown {
    max-height: none;
    overflow: hidden;
    border-color: var(--ic-blue-lighter);
    background: var(--ic-white);
    padding: 0.8rem;
}

.ship_overview_section .ship_filter_select .ship_filter_options {
    max-height: 32rem;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-right: 0.8rem;
    scrollbar-gutter: stable;
}

.ship_overview_section .ship_filter_select.custom_select.active .custom_select_dropdown {
    display: block;
}

.ship_overview_section .ship_filter_select .custom_select_option:hover,
.ship_overview_section .ship_filter_select .custom_select_option.active {
    background: var(--ic-cream-deschis);
}

@media (max-width: 768px) {
    .ship_overview_section .ship_filter_bar {
        flex-direction: column;
        align-items: stretch;
        gap: 1.2rem;
        margin-bottom: 3.2rem;
    }

    .ship_overview_section .ship_filter_select {
        width: 100%;
    }
}

/* -------------------------------------------------------------------------- */
/* ----------- Mobile readability fixes ---------------------- */

@media (max-width: 768px) {
    html {
        font-size: 53%;
    }

    /* Main mobile headings */
    .hero_section .hero_section_title,
    .hero_full_section .hero_full_section_title,
    .contact_page_section .contact_title,
    .travel_search_section .travel_search_title {
        font-size: 4rem;
        line-height: 120%;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    /* Section headings */
    .showcase_slider_section .showcase_slider_section_title,
    .offers_cards_section .offers_cards_section_title,
    .newsletter_section .newsletter_banner_title,
    .newsletter_section .newsletter_subscribe_title,
    .content_section .content_section_title,
    .faq_section .faq_title,
    .text_block_section .text_block_title,
    .about_story_section .about_story_title,
    .story_split_section .story_split_title,
    .feature_panel_section .feature_panel_title,
    .article_content_section .article_content_title {
        font-size: 3.4rem;
        line-height: 125%;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    /* Smaller special headings */
    .travel_time_section .travel_time_title {
        font-size: 2.8rem;
        line-height: 130%;
        text-align: center;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    /* Body text */
    .hero_section .hero_section_text,
    .hero_section .hero_section_text p,
    .hero_full_section .hero_full_section_text,
    .hero_full_section .hero_full_section_text p,
    .showcase_slider_section .showcase_slider_section_text,
    .showcase_slider_section .showcase_slider_section_text p,
    .newsletter_section .newsletter_banner_text,
    .newsletter_section .newsletter_subscribe_text,
    .content_section .content_section_text,
    .content_section .content_section_text p,
    .content_section_text,
    .content_section_text p,
    .text_block_section .text_block_content,
    .text_block_section .text_block_content p,
    .text_block_section .text_block_content li,
    .about_story_section .about_story_text,
    .about_story_section .about_story_text p,
    .about_story_section .about_story_text li,
    .story_split_section .story_split_text,
    .story_split_section .story_split_text p,
    .story_split_section .story_split_text li,
    .feature_panel_section .feature_panel_box p,
    .feature_panel_section .feature_panel_box li,
    .article_content_section .article_content_text,
    .article_content_section .article_content_list li,
    .article_content_section .article_content_ordered li,
    .travel_time_section .travel_time_text,
    .travel_time_section .travel_time_text p,
    .travel_time_section .travel_time_text li,
    .free_text_section p,
    .free_text_section li,
    .free_text_section span,
    .free_text_section div {
        font-size: 1.8rem;
        line-height: 160%;
    }


    /* Additional module body text */
    .why_choose_section .why_choose_item_text,
    .why_choose_section .why_choose_item_text p,
    .why_choose_section .why_choose_item_text li,
    .why_choose_section .why_choose_item_text span,
    .why_choose_section .why_choose_item_text div,
    .testimonials_section .testimonials_text,
    .testimonials_section .testimonials_text p,
    .testimonials_section .testimonials_text li,
    .testimonials_section .testimonials_text span,
    .testimonials_section .testimonials_text div,
    .gallery_slider_section .gallery_slider_text,
    .gallery_slider_section .gallery_slider_text p,
    .gallery_slider_section .gallery_slider_text li,
    .gallery_slider_section .gallery_slider_text span,
    .gallery_slider_section .gallery_slider_text div {
        font-size: 1.8rem;
        line-height: 160%;
    }

    .gallery_slider_section .gallery_slider_text h3 {
        font-size: 2.6rem;
        line-height: 135%;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    /* Cards */
    .showcase_slider_section .showcase_slider_card_title,
    .destination_cards .destination_card_title,
    .offers_cards_section .offers_cards_item_title,
    .travel_search_section .travel_cards_section .travel_cards_item_title {
        font-size: 2.6rem;
        line-height: 135%;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    .showcase_slider_section .showcase_slider_card_text,
    .destination_cards .destination_card_text,
    .showcase_slider_section .showcase_slider_card_label,
    .destination_cards .destination_card_label,
    .travel_search_section .travel_cards_section .travel_cards_code,
    .travel_search_section .travel_cards_section .travel_cards_points_row strong,
    .travel_search_section .travel_cards_section .travel_cards_points_row span,
    .faq_section .faq_answer p {
        font-size: 1.7rem;
        line-height: 160%;
    }

    .showcase_slider_section .showcase_slider_card_points li,
    .showcase_slider_section .showcase_slider_card_points strong,
    .offers_cards_section .offers_cards_points_row strong,
    .offers_cards_section .offers_cards_points_row span {
        font-size: 1.7rem;
        line-height: 155%;
    }

    .showcase_slider_section .showcase_slider_card_content,
    .destination_cards .destination_card_content {
        gap: 1.2rem;
    }

    /* Form and button text */
    .btn_primary_fill,
    .btn_primary_outline,
    .btn_white_outline,
    .custom_select_trigger,
    .custom_select_option,
    .custom_tab,
    .newsletter_section .newsletter_subscribe_input,
    .footer .footer_input {
        font-size: 1.7rem;
    }
}

@media (max-width: 680px) {
    /* Force card grids to one column on narrow mobile screens */
    .destination_cards .destination_section_grid,
    .destination_cards .destination_section_grid.four_grid,
    .offers_cards_section .offers_cards_grid,
    .travel_search_section .travel_cards_section .travel_cards_grid,
    .showcase_slider_section .room_cards_slider .rooms_cards_grid,
    .ship_overview_section .destination_section_grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .destination_cards .destination_section_card,
    .showcase_slider_section .showcase_slider_card,
    .offers_cards_section .offers_cards_item,
    .travel_search_section .travel_cards_section .travel_cards_item {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .destination_cards .destination_card_footer {
        flex-wrap: wrap;
    }
}

@media (max-width: 576px) {
    html {
        font-size: 52%;
    }

    .hero_section .hero_section_title,
    .hero_full_section .hero_full_section_title,
    .contact_page_section .contact_title,
    .travel_search_section .travel_search_title {
        font-size: 3.8rem;
    }

    .showcase_slider_section .showcase_slider_section_title,
    .offers_cards_section .offers_cards_section_title,
    .newsletter_section .newsletter_banner_title,
    .newsletter_section .newsletter_subscribe_title,
    .content_section .content_section_title,
    .faq_section .faq_title,
    .text_block_section .text_block_title,
    .about_story_section .about_story_title,
    .story_split_section .story_split_title,
    .feature_panel_section .feature_panel_title,
    .article_content_section .article_content_title {
        font-size: 3.2rem;
    }
}

@media (max-width: 480px) {
    html {
        font-size: 51%;
    }

    /* Newsletter form */
    .newsletter_section .newsletter_subscribe_form {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }

    .newsletter_section .newsletter_subscribe_input,
    .newsletter_section .newsletter_subscribe_btn {
        width: 100%;
        height: 5.2rem;
        flex: none;
    }

    .newsletter_section .newsletter_subscribe_note {
        overflow-wrap: break-word;
        word-break: normal;
    }

    /* About CTA button: allow long button text to wrap instead of clipping */
    .about_story_section .about_story_btn {
        width: 100%;
        max-width: 100%;
        height: auto;
        min-height: 5.2rem;
        padding: 1.2rem 2rem;
        white-space: normal;
        text-align: center;
        line-height: 130%;
    }

    /* Card spacing */
    .showcase_slider_section .showcase_slider_card_content,
    .destination_cards .destination_card_content {
        padding: 2.6rem 2.4rem 3.6rem;
    }

    .showcase_slider_section .showcase_slider_card_points li {
        gap: 1.4rem;
    }

    .destination_cards .destination_partner_logo {
        max-width: 14rem;
    }
}

@media (max-width: 368px) {
    html {
        font-size: 50%;
    }

    .hero_section .hero_section_title,
    .hero_full_section .hero_full_section_title,
    .contact_page_section .contact_title,
    .travel_search_section .travel_search_title {
        font-size: 3.4rem;
    }

    .showcase_slider_section .showcase_slider_section_title,
    .offers_cards_section .offers_cards_section_title,
    .newsletter_section .newsletter_banner_title,
    .newsletter_section .newsletter_subscribe_title,
    .content_section .content_section_title,
    .faq_section .faq_title,
    .text_block_section .text_block_title,
    .about_story_section .about_story_title,
    .story_split_section .story_split_title,
    .feature_panel_section .feature_panel_title,
    .article_content_section .article_content_title {
        font-size: 3rem;
    }
}
/* -------------------------------------------------------------------------- */
/* ----------- mobile fixes: cards and sticky contact ----------------- */

.mobile_contact_sticky.mobile_contact_hidden {
    display: none !important;
}

@media (max-width: 430px) {
    .showcase_slider_section .showcase_slider,
    .shipping_company_ships_slider,
    .ship_overview_section .swiper {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding-left: 2rem;
        padding-right: 2rem;
        overflow: hidden;
    }

    .showcase_slider_section .showcase_slider .swiper-wrapper,
    .shipping_company_ships_slider .swiper-wrapper,
    .ship_overview_section .swiper-wrapper {
        align-items: stretch;
    }


    .showcase_slider_section .showcase_slider .swiper-slide,
    .shipping_company_ships_slider .swiper-slide,
    .ship_overview_section .swiper-slide {
        height: auto !important;
    }

    .showcase_slider_section .showcase_slider_card,
    .shipping_company_ships_slider .showcase_slider_card,
    .ship_overview_section .showcase_slider_card,
    .destination_cards .destination_section_card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .destination_cards .destination_section_grid,
    .destination_cards .destination_section_grid.four_grid,
    .showcase_slider_section .destination_section_grid,
    .ship_overview_section .destination_section_grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 2.4rem !important;
    }

    .showcase_slider_section .showcase_slider_card_image,
    .destination_cards .destination_card_image {
        height: 26rem;
    }

    .showcase_slider_section .showcase_slider_card_content,
    .destination_cards .destination_card_content {
        padding: 2.8rem 2.4rem 3.6rem;
    }

    .showcase_slider_section .showcase_slider_card_points li {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 1.2rem;
        row-gap: 0.4rem;
        align-items: start;
    }

    .showcase_slider_section .showcase_slider_card_points strong {
        min-width: 0;
        max-width: 100%;
        flex-shrink: 1;
        text-align: right;
        white-space: normal;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .showcase_slider_section .showcase_slider_card_btn,
    .destination_cards .destination_btn {
        width: 100%;
        min-height: 5.2rem;
        height: auto;
        margin-top: 2.4rem;
        top: 0;
        white-space: normal;
        text-align: center;
    }
}
/* -------------------------------------------------------------------------- */
/* ----------- Mobile card button alignment fix ----------------------------- */

@media (max-width: 768px) {
    .showcase_slider_section .showcase_slider .swiper-slide,
    .shipping_company_ships_slider .swiper-slide,
    .ship_overview_section .swiper-slide {
        display: flex;
        height: auto !important;
    }

    .showcase_slider_section .showcase_slider_card,
    .shipping_company_ships_slider .showcase_slider_card,
    .ship_overview_section .showcase_slider_card {
        display: flex;
        flex-direction: column;
        height: 100%;
    }

    .showcase_slider_section .showcase_slider_card_content {
        display: flex;
        flex-direction: column;
        flex: 1;
    }

    .showcase_slider_section .showcase_slider_card_title {
        min-height: 7.2rem;
    }

    .showcase_slider_section .showcase_slider_card_points {
        margin-bottom: 2.4rem;
    }

    .showcase_slider_section .showcase_slider_card_btn {
        margin-top: auto;
        align-self: stretch;
    }
}

@media (max-width: 430px) {
    .showcase_slider_section .showcase_slider_card_title {
        min-height: auto;
    }

    .showcase_slider_section .showcase_slider_card_btn {
        width: 100%;
    }
}
/* -------------------------------------------------------------------------- */
/* ----------- Small mobile slider controls fix ----------------------------- */

@media (max-width: 400px) {
    .showcase_slider_section .showcase_slider_section_controls {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 1.8rem;
        margin-top: 3.2rem;
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .showcase_slider_section .showcase_slider_section_pagination {
        width: 100%;
        max-width: 100%;
        justify-content: center;
        flex-wrap: wrap;
        gap: 0.7rem;
    }

    .showcase_slider_section .showcase_slider_section_nav {
        width: 100%;
        justify-content: center;
        gap: 1.6rem;
    }

    .showcase_slider_section .showcase_slider_section_prev,
    .showcase_slider_section .showcase_slider_section_next {
        width: 4.4rem;
        height: 4.4rem;
        min-width: 4.4rem;
        flex-shrink: 0;
    }
}
/* -------------------------------------------------------------------------- */
/* ---------------------------- Cruise Route Modal -------------------------- */

.cruise_route_modal[hidden],
.cruise_route_modal [hidden] {
    display: none !important;
}

.cruise_route_modal {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.4rem;
}

.cruise_route_modal_overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
    background: rgba(15, 35, 41, 0.58);
    cursor: pointer;
}

.cruise_route_modal_dialog {
    position: relative;
    z-index: 1;
    width: min(96rem, 100%);
    max-height: calc(100vh - 4.8rem);
    padding: 3.2rem;
    overflow-y: auto;
    border-radius: 1.6rem;
    background: var(--ic-white);
    box-shadow: 0 2.4rem 7rem rgba(0, 0, 0, 0.24);
    outline: none;
}

.cruise_route_modal_close {
    position: absolute;
    top: 1.6rem;
    right: 1.8rem;
    z-index: 2;
    width: 4.4rem;
    height: 4.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--ic-blue);
    font-size: 3.4rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.cruise_route_modal_close:hover {
    background: var(--ic-cream-deschis);
}

.cruise_route_modal_header {
    padding-right: 5rem;
    margin-bottom: 2.4rem;
}

.cruise_route_modal_label {
    display: block;
    margin-bottom: 0.8rem;
    color: var(--ic-blue-light);
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 140%;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.cruise_route_modal_title {
    margin: 0;
    color: var(--ic-blue);
    font-size: 2.8rem;
    font-weight: 600;
    line-height: 125%;
}

.cruise_route_modal_subtitle {
    margin: 0.8rem 0 0;
    color: var(--ic-blue-light);
    font-size: 1.6rem;
    line-height: 150%;
}

.cruise_route_modal_body {
    min-height: 30rem;
}

.cruise_route_modal_map {
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--ic-heliblau);
    border-radius: 1.2rem;
    background: var(--ic-glacier-white);
}

.cruise_route_modal_image {
    display: block;
    width: 100%;
    max-height: 65vh;
    object-fit: contain;
}

.cruise_route_modal_loading {
    min-height: 30rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.4rem;
    color: var(--ic-blue-light);
    font-size: 1.6rem;
}

.cruise_route_modal_spinner {
    width: 4rem;
    height: 4rem;
    border: 0.4rem solid var(--ic-heliblau);
    border-top-color: var(--ic-blue);
    border-radius: 50%;
    animation: cruise-route-spin 0.8s linear infinite;
}

.cruise_route_modal_error {
    min-height: 24rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ic-blue-light);
    font-size: 1.6rem;
    text-align: center;
}

.cruise_deals_section .cruise_deal_route_btn {
    gap: 0.8rem;
}

.cruise_deals_section .cruise_deal_route_btn i {
    font-size: 1.4rem;
}

@keyframes cruise-route-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 768px) {
    .cruise_route_modal {
        align-items: flex-end;
        padding: 0;
    }

    .cruise_route_modal_dialog {
        width: 100%;
        max-height: 92vh;
        max-height: 92dvh;
        padding:
            2.4rem
            1rem
            calc(1.2rem + env(safe-area-inset-bottom));
        border-radius: 2rem 2rem 0 0;
    }

    .cruise_route_modal_header {
        margin-bottom: 1.6rem;
        padding-left: 1rem;
        padding-right: 5.2rem;
    }

    .cruise_route_modal_title {
        font-size: 2.4rem;
    }

    .cruise_route_modal_body {
        min-height: 0;
    }

    .cruise_route_modal_map {
        width: 100%;
    }

    .cruise_route_modal_image {
        display: block;
        width: 100%;
        height: auto;
        max-height: none;
        object-fit: contain;
    }

    .cruise_route_modal_loading {
        min-height: 24rem;
    }

    .cruise_route_modal_error {
        min-height: 18rem;
    }
}
/* Ship cards: shipping company label */

.ship_overview_section .showcase_slider_card_label,
.shipping_company_ships_slider .showcase_slider_card_label {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--ic-blue-light);
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 150%;
    letter-spacing: 2%;
}

@media (max-width: 768px) {
    .ship_overview_section .showcase_slider_card_label,
    .shipping_company_ships_slider .showcase_slider_card_label {
        font-size: 1.6rem;
        line-height: 150%;
    }
}
