/* Afacad full glyph set (from Google Fonts static TTFs) */
@font-face {
    font-family: "Afacad";
    src: url("../fonts/Afacad-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Afacad";
    src: url("../fonts/Afacad-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Afacad";
    src: url("../fonts/Afacad-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Afacad";
    src: url("../fonts/Afacad-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "AfacadFull";
    src: url("../fonts/Afacad-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "AfacadFull";
    src: url("../fonts/Afacad-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "AfacadFull";
    src: url("../fonts/Afacad-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "AfacadFull";
    src: url("../fonts/Afacad-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

body {
    font-family: "AfacadFull", "Afacad", sans-serif;
}

.sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "AfacadFull", "Afacad", sans-serif;
}

a.site-button.butn-bg-shape {
    background: linear-gradient(135deg, #8ad60f, #5fb600);
}

/* landing page styles */
body {
    margin: 0;
    overflow-x: hidden;
}

.main-bar {
    padding-left: 32px;
    padding-right: 32px;
}

.sf-hero-header .main-bar-wraper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
    padding: 22px;
    background: transparent;
    box-shadow: none;
}

.sf-hero-header .main-bar {
    background: #ffffff;
    border-radius: 12px;
    margin: 20px auto 0;
    max-width: 1790px;
    box-shadow: 0 18px 40px rgba(15, 40, 50, 0.12);
    min-height: 84px;
    padding: 0 24px;
    display: flex;
    align-items: center;
    position: relative;
}

.sf-hero-header .header-nav {
    align-items: center;
    flex: 1 1 auto;
    display: flex;
}

.sf-hero-header .header-nav.navbar-collapse {
    display: flex;
}

.sf-hero-header .logo-header {
    flex: 0 0 auto;
}

.sf-hero-header .nav>li>a {
    font-weight: 600;
    color: #1f2f36 !important;
}

.sf-hero-header .nav.navbar-nav {
    justify-content: center;
    align-items: center;
    width: 100%;
}

.sf-hero-header .header-nav.navbar-collapse {
    justify-content: center;
}

.sf-hero-header .nav.navbar-nav {
    flex: 1 1 auto;
    justify-content: center;
    position: relative;
    width: 100%;
    padding-right: 0;
}

.sf-hero-header .nav>li {
    padding: 0 12px;
    display: flex;
    align-items: center;
}

.sf-hero-header .sf-menu-cta {
    flex: 0 0 auto;
    margin-left: 16px;
}

/* checkout auth */
.sf-auth-wrap {
    background: #f5fbfb;
    padding: 250px 0 80px 0;
}

.sf-auth-alert {
    margin-bottom: 18px;
}

.sf-auth-grid {
    align-items: stretch;
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 18px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}

.container.sf-inquiry-access-account {
    max-width: 760px;
}

.sf-inquiry-access-intro h1 {
    margin: 0 0 8px;
    color: #0b3a4a;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.25;
}

.sf-inquiry-access-intro p {
    margin: 0;
    color: #5f7b86;
    font-size: 15px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.sf-auth-card.sf-auth-card--login,
.sf-auth-card.sf-auth-card--guest {
    background: #f8fdfd;
    border: 1px solid #e3eef2;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 16px;
    height: 100%;
}


.sf-auth-card h4 {
    font-weight: 700;
    color: #0b3a4a;
    margin: 0;
}

.sf-auth-card__header {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
}

.sf-auth-icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #0b3a4a;
    background: #e8f3ff;
}

.sf-auth-icon--blue {
    background: #e6f0ff;
    color: #1f5fbf;
}

.sf-auth-icon--green {
    background: #ecf9e6;
    color: #3a9b1d;
}

.sf-auth-subtitle {
    font-size: 12px;
    color: #7b8b96;
    margin-top: 4px;
}

.sf-auth-badge {
    font-size: 11px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 12px;
    color: #4c8b1f;
    background: #edf8e6;
    text-transform: lowercase;
}

.sf-auth-button {
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 12px 26px;
    border-radius: 12px;
    font-weight: 500;
    position: relative;
    cursor: pointer;
    display: inline-flex;
    font-family: Afacad, sans-serif;
    font-size: 16px;
    outline: none;
    padding: 15px 30px;
    overflow: hidden;
    border-width: initial;
    border-style: none;
    border-color: initial;
    border-image: initial;
    transition: 0.5s;
    white-space: nowrap;
    border-radius: 12px;
    margin-left: auto;
    margin-right: auto;
    display: block
}

.sf-auth-button--primary {
    background: linear-gradient(135deg, #2f8df0, #2a6edb);
    border: none;
    color: #fff;
    margin-top: 10px;
}

.sf-auth-button--guest {
    background: linear-gradient(135deg, #8ad60f, #5fb600);
    border: none;
    color: #000;
}

.sf-auth-note {
    font-size: 14px;
    color: #0b3a4a;
    margin: 12px 0 16px;
}

.sf-auth-benefits {
    list-style: none;
    padding: 0;
    margin: 16px 0 0;
    display: grid;
    gap: 8px;
    color: #1f2f36;
    font-size: 13px;
}

.sf-auth-benefits li {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sf-auth-benefits i {
    color: #5fb600;
}

.sf-auth-help {
    font-size: 14px;
    color: #0b3a4a;
}

.sf-auth-code {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #e2e8f0;
}

.sf-auth-code-notice {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid #cfe8bd;
    border-radius: 8px;
    background: #f2faec;
    color: #35630f;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
}

.sf-auth-code-notice i {
    color: #6aa70b;
    font-size: 15px;
}

.sf-config-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
    min-height: -webkit-fill-available;
}

.sf-config-card h4 {
    font-weight: 700;
    color: #0b3a4a;
    margin-bottom: 16px;
}

.sf-configurator-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.sf-configurator-stack {
    display: grid;
    gap: 16px;
}

.sf-configurator-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sf-config-title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    margin-bottom: 14px;
}

.sf-date-range {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.sf-date-field label {
    font-size: 12px;
    font-weight: 600;
    color: #6a7a82;
    margin-bottom: 6px;
    display: block;
}

.sf-date-input {
    position: relative;
}

.sf-date-input input {
    padding-right: 36px;
}

.sf-date-icon {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #7a8a92;
    font-size: 16px;
}

.sf-config-items li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
    font-size: 14px;
    color: #4a6a74;
}

.sf-config-items span {
    color: #0b3a4a;
}

.sf-config-total {
    font-size: 20px;
    font-weight: 700;
    color: #0b3a4a;
}

@media (max-width: 991px) {
    .sf-auth-wrap {
        padding: 120px 0 60px;
    }
}

/* checkout summary widget */
.sf-checkout-summary {
    display: grid;
    gap: 16px;
    margin-top: 12px;
}

.sf-checkout-group {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 14px 16px;
    background: #fdfefe;
    box-shadow: 0 10px 26px rgba(15, 40, 50, 0.08);
}

.sf-checkout-group__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.sf-checkout-group__title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-checkout-group__title i {
    font-size: 18px;
    color: #2f6fdc;
}

.sf-checkout-group__value {
    font-weight: 700;
    color: #0b3a4a;
}

.sf-checkout-group__body {
    margin-top: 10px;
    display: grid;
    gap: 10px;
    color: #4a6a74;
}

.sf-checkout-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
}

.sf-checkout-item__label {
    font-weight: 600;
    color: #0b3a4a;
}

.sf-checkout-item__meta {
    color: #7a8a95;
    font-size: 12px;
}

.sf-checkout-flight-note {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: 8px;
    color: #4a6a74;
    font-size: 12px;
    line-height: 1.45;
}

.sf-checkout-flight-note i {
    color: #2f6fdc;
    flex: 0 0 auto;
    font-size: 13px;
    line-height: 1.45;
    margin-top: 1px;
}

.sf-checkout-item__value {
    font-weight: 600;
    color: #0b3a4a;
}


@media (max-width: 991px) {
    .sf-hero-header .main-bar {
        flex-wrap: wrap;
        margin-top: 0;
    }

    .sf-hero-header .sf-menu-cta {
        display: none;
    }
}

.sf-hero-header .header-nav {
    margin-left: auto;
}

.sf-hero-header .navbar-toggler .icon-bar {
    background-color: #1f2f36;
}

.btn-min-green {
    padding: 8px 14px;
    border-radius: 12px;
    font-size: 12px;
    line-height: 1.2;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* gallery section */
.sf-gallery .sf-gallery-desktop {
    display: block !important;
}

.section .sf-page-section .sf-gallery {
    padding-bottom: 40px;
}


.sf-gallery .sf-gallery-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

.sf-gallery .sf-gallery-tile {
    border: none;
    padding: 0;
    background: transparent;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    display: block;
    width: 100%;
    height: 100%;
}

.sf-gallery .sf-gallery-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sf-gallery .sf-gallery-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    height: 180px;
}

.sf-gallery .sf-gallery-tile--large {
    height: 360px;
}

.sf-gallery .sf-gallery-row .sf-gallery-tile {
    height: 100%;
}

.sf-gallery .sf-gallery-count {
    position: absolute;
    right: 14px;
    bottom: 14px;
    background: #ffffff;
    color: #0b3a4a;
    border-radius: 12px;
    padding: 6px 12px;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

.sf-gallery .sf-gallery-mobile {
    display: none !important;
}

.sf-gallery-modal {
    position: fixed;
    inset: 0;
    background: rgba(10, 20, 30, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 2000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .24s ease, visibility .24s ease;
}

.sf-gallery-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

body.sf-gallery-open {
    overflow: hidden;
}

.sf-gallery-modal-content {
    width: min(980px, 94vw);
    background: #ffffff;
    border-radius: 12px;
    padding: 18px;
    position: relative;
    opacity: 0;
    transform: translateY(12px) scale(.98);
    transition: opacity .24s ease, transform .24s ease;
}

.sf-gallery-modal.is-open .sf-gallery-modal-content {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.sf-gallery-modal-content img {
    width: 100%;
    height: 520px;
    object-fit: cover;
    border-radius: 12px;
}

.sf-gallery-modal-close {
    position: absolute;
    top: 10px;
    right: 12px;
    border: none;
    background: #ffffff;
    color: #0b3a4a;
    width: 32px;
    height: 32px;
    border-radius: 12px;
    font-size: 18px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.sf-gallery-modal .swiper-button-prev,
.sf-gallery-modal .swiper-button-next {
    color: #0b3a4a;
}

.sf-gallery-modal .swiper-pagination-bullet {
    background: #0b3a4a;
    opacity: 0.3;
}

.sf-gallery-modal .swiper-pagination-bullet-active {
    opacity: 1;
}

@media (max-width: 991px) {
    .sf-gallery .sf-gallery-tile--large {
        height: 300px;
    }

    .sf-gallery .sf-gallery-row {
        height: 150px;
    }
}

@media (max-width: 767px) {
    .sf-gallery .sf-gallery-mobile {
        display: block !important;
    }

    .sf-gallery .sf-gallery-desktop {
        display: none !important;
    }

    .sf-gallery .sf-gallery-tile {
        height: 240px;
    }

    .sf-gallery-modal-content img {
        height: 320px;
    }
}

.sf-banner-1-wrap {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100vh;
}

.sf-vid-full {
    position: absolute;
    inset: 0;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    background-position: var(--sf-hero-media-position, center center) !important;
    z-index: 1;
}

.hero-video {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.hero-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--sf-hero-media-position, center center);
}

.hero-swiper {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.hero-swiper .swiper-wrapper {
    height: 100%;
    display: flex !important;
}

.hero-swiper .swiper-slide {
    width: 100%;
    height: 100%;
    flex-shrink: 0;
    position: relative;
}

.sf-banner-1-overlay {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: center;
    padding-right: 24px;
}

.sf-banner-1-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    width: 100%;
}

.sf-banner-1-text {
    max-width: 60%;
    min-width: 320px;
}

.hero-swiper {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.hero-swiper .swiper-wrapper,
.hero-swiper .swiper-slide {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.sf-banner-search-card {
    background: rgba(255, 255, 255, 0.95);
    border-radius: 12px;
    padding: 24px;
    min-width: 320px;
    max-width: 420px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
    margin-left: auto;
    margin-right: 24px;
}

.sf-banner-search-card.search-mobile {
    display: none;
    width: calc(100% - 48px);
    max-width: 1200px;
    margin: -60px auto 0 auto;
}

@media (max-width: 1520px) {
    .sf-banner-1-content {
        flex-direction: column;
        align-items: flex-start;
    }

    .sf-banner-1-text {
        max-width: 100%;
    }

    .sf-banner-search-card.search-desktop {
        display: none;
    }

    .sf-banner-search-card.search-mobile {
        display: block;
        position: relative;
        z-index: 5;
        transform: translateY(-60px);
    }
}

.sf-banner-search-card h4 {
    margin-bottom: 16px;
    color: #0b3a4a;
    font-weight: 700;
}

.sf-banner-search-card label {
    font-weight: 600;
    color: #0b3a4a;
    font-size: 14px;
    margin-bottom: 6px;
}

.sf-banner-search-card .form-control {
    border-radius: 12px;
    border: 1px solid #d7e5ec;
    box-shadow: none;
}

.sf-banner-search-card .site-button {
    width: 100%;
    border-radius: 12px;
    text-align: center;
    margin-top: 12px;
}

.sf-auth-wrap input.form-control {
    border-radius: 12px;
    font-size: 18px;
}

.sf-auth-code label.form-label {
    font-size: 16px;
}

/* repeatable expeditions search bar */
.sf-repeatable-search-section {
    position: relative;
    z-index: 6;
}

.sf-repeatable-search-section .sf-repeatable-search-card {
    background: #ffffff;
    border-radius: 12px;
    padding: 16px 18px;
    box-shadow: 0 18px 40px rgba(15, 40, 50, 0.12);
    border: 1px solid rgba(15, 40, 50, 0.08);
    transform: translateY(-140%);
    transition: all 1s ease-out, transform 1s ease-out;
    margin: 0 45px;
}

.sf-repeatable-search-section .sf-repeatable-search-card label {
    font-weight: 600;
    color: #0b3a4a;
    font-size: 14px;
    margin-bottom: 6px;
}

.sf-repeatable-search-section .sf-repeatable-search-card .form-control,
.sf-repeatable-search-section .sf-repeatable-search-card .form-select,
.sf-repeatable-search-section .sf-repeatable-search-card select {
    border-radius: 12px;
    border: 1px solid #d7e5ec;
    box-shadow: none;
    height: 42px;
}

.sf-repeatable-search-section .sf-repeatable-search-card .form-select {
    padding: 0.45rem 0.9rem;
    height: 42px;
}

.sf-repeatable-search-section .sf-repeatable-search-row {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}

.sf-repeatable-search-section .sf-trip-selection-details {
    display: flex;
    flex: 0 0 auto;
    gap: 12px;
    align-items: center;
    min-width: 0;
    border: 1px solid transparent;
    border-radius: 12px;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.sf-repeatable-search-form.is-special-expedition .sf-trip-selection-details {
    margin: -5px;
    padding: 5px;
    border-color: #bfd8fb;
    background: #edf5ff;
    box-shadow: 0 5px 14px rgba(25, 102, 190, 0.08);
}

.sf-repeatable-search-section .sf-repeatable-field {
    flex: 1 1 100px;
    min-width: 100px;
}

.sf-repeatable-search-section .sf-repeatable-date-group {
    flex: 0 0 155px;
    min-width: 155px;
}

.sf-repeatable-search-section .sf-repeatable-length-group {
    flex: 0 0 190px;
    min-width: 190px;
}

.sf-repeatable-search-section .sf-repeatable-origin-group {
    flex: 0 0 190px;
    min-width: 190px;
}

.sf-repeatable-search-section .sf-repeatable-origin-group .bootstrap-select {
    width: 100% !important;
}

.sf-repeatable-search-section .sf-repeatable-origin-group .bootstrap-select>.dropdown-toggle,
.sf-repeatable-search-section .sf-repeatable-length-group .bootstrap-select>.dropdown-toggle {
    height: 42px;
    border-radius: 12px;
    border: 1px solid #d7e5ec;
    background: #ffffff;
    padding: 0.45rem 0.9rem;
    box-shadow: none;
}

.sf-repeatable-search-section .sf-repeatable-origin-group .bootstrap-select .filter-option,
.sf-repeatable-search-section .sf-repeatable-length-group .bootstrap-select .filter-option {
    font-size: 12px;
    font-weight: 600;
    color: #0b3a4a;
}

.sf-repeatable-search-section .sf-repeatable-origin-group .dropdown-menu,
.sf-repeatable-search-section .sf-repeatable-length-group .dropdown-menu {
    border-radius: 12px;
}

.sf-repeatable-search-section .sf-repeatable-people {
    flex: 3 1 520px;
    min-width: 440px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 0px;
}

.sf-repeatable-search-section .sf-repeatable-length .sf-length-toggle {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    min-height: 42px;
    border: 1px solid #d7e5ec;
}

.sf-repeatable-search-section .sf-repeatable-length .sf-length-btn {
    border: 1px solid #dce7ec;
    background: #ffffff;
    border-radius: 12px;
    padding: 6px 10px;
    font-weight: 600;
    color: #0b3a4a;
    font-size: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    line-height: 1;
    text-align: center;
}

.sf-repeatable-search-section .sf-repeatable-length .sf-length-icon {
    font-size: 14px;
    line-height: 1;
}

.sf-repeatable-search-section .sf-repeatable-length .sf-length-btn.is-active {
    background: #f4f8e8;
    border-color: rgba(142, 214, 0, 0.4);
    color: #3c5c1b;
}

.sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row {
    padding: 10px 12px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid #e3eef2;
    box-shadow: none;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    justify-content: space-between;
    flex-wrap: wrap;
}

.sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-label {
    font-size: 13px;
    font-weight: 700;
    color: #0b3a4a;
    white-space: nowrap;
}

.sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-controls {
    margin-left: auto;
}

.sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-controls {
    align-self: center;
}

.sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-label .sf-qty-sub {
    display: block;
    font-weight: 600;
    color: #6a7a82;
    font-size: 12px;
    margin-top: 2px;
}

.sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-controls {
    gap: 0;
    border: 1px solid #dce7ec;
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
    min-width: 86px;
}

.sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-btn {
    width: 28px;
    min-width: 28px;
    height: 28px;
    font-size: 14px;
    background: #ffffff;
    border: none;
}

.sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-value {
    min-width: 28px;
    font-size: 12px;
    font-weight: 700;
    color: #0b3a4a;
    border-left: 1px solid #dce7ec;
    border-right: 1px solid #dce7ec;
    line-height: 28px;
    text-align: center;
}

.sf-repeatable-search-section .sf-repeatable-search-btn {
    width: 100%;
    border-radius: 12px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.sf-repeatable-search-section .sf-repeatable-action {
    flex: 0 0 100px;
}


@media (min-width: 1201px) {
    .sf-repeatable-search-section .sf-repeatable-search-row {
        flex-wrap: nowrap;
        align-items: center;
    }

    .sf-repeatable-search-section .sf-repeatable-search-card .sf-qty-row {
        margin-bottom: 0px;
    }
}

@media (max-width: 1200px) {
    .sf-repeatable-search-section .sf-repeatable-search-card {
        transform: translateY(-35%);
    }

    .sf-repeatable-search-section .sf-repeatable-people {
        grid-template-columns: 1fr;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-trip-selection-details {
        flex: 1 1 100%;
        flex-wrap: wrap;
        min-width: 0;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-search-form.is-special-expedition .sf-trip-selection-details {
        box-sizing: border-box;
        margin: 0;
        padding: 5px;
    }
}

@media (max-width: 640px) {
    .sf-repeatable-search-section .sf-repeatable-search-card {
        padding: 14px;
        transform: translateY(-25%);
    }
}

.sf-upcoming-flights .sf-flight-card {
    background: #ffffff;
    border-radius: 12px;
    padding: 22px;
    box-shadow: 0 12px 24px rgba(15, 40, 50, 0.08);
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sf-upcoming-flights .sf-flight-table {
    width: 100%;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 12px 24px rgba(15, 40, 50, 0.08);
    overflow: hidden;
    max-width: 920px;
    margin: 0 auto;
}

.sf-upcoming-flights .sf-flight-table thead {
    background: #f6f9fb;
}

.sf-upcoming-flights .sf-flight-table th,
.sf-upcoming-flights .sf-flight-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #e6edf1;
    vertical-align: middle;
    font-size: 14px;
}

.sf-upcoming-flights .sf-flight-table tbody tr:last-child td {
    border-bottom: 0;
}

.sf-upcoming-flights .sf-flight-route {
    font-size: 18px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-upcoming-flights .sf-flight-date,
.sf-upcoming-flights .sf-flight-arrival {
    font-size: 14px;
    color: #3c4b54;
}

.sf-upcoming-flights .sf-flight-expedition {
    font-size: 16px;
    font-weight: 600;
    color: #1e4d5d;
}

.sf-upcoming-flights .sf-flight-meta {
    font-size: 13px;
    color: #6c7a80;
}

.sf-upcoming-flights .sf-flight-cta {
    margin-top: auto;
}

.sf-flight-origin-filter {
    border-radius: 12px;
    border: 1px solid rgba(15, 40, 50, 0.08);
    background: #f8fdfd;
    padding: 16px 18px;
}

.sf-flight-origin-title {
    font-weight: 700;
    color: #1f2f36;
    margin-bottom: 12px;
}

.sf-flight-origin-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sf-flight-origin-chip {
    border: 1px solid rgba(15, 40, 50, 0.1);
    background: #ffffff;
    color: #2b3b42;
    border-radius: 12px;
    padding: 8px 16px;
    font-size: 12px;
    font-weight: 600;
    cursor: default;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 86px;
    min-height: 52px;
    justify-content: center;
}

.sf-flight-origin-chip.is-active {
    background: #f4f8e8;
    border-color: rgba(142, 214, 0, 0.4);
    color: #3c5c1b;
}

.sf-flight-origin-code {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #5b6a74;
}

/* landing page overrides */
.sf-hero-header .nav>li>a:hover {
    color: #8ed600 !important;
}

.sf-banner-1-wrap .sf-banner-1-overlay {
    background-color: var(--sf-hero-overlay-background, rgba(0, 0, 0, 0.35));
    border-radius: 12px;
    margin: 35px;
    height: 94%;
}

@media (max-width: 991px) {
    .sf-banner-1-wrap .sf-banner-1-overlay {
        margin: 0px 0px !important;
        border-radius: 15px !important;
        padding: 0 20px 40px;
    }

    body.sf-hero-version2-page .sf-banner-1-wrap .sf-banner-1-overlay {
        margin: 10px 10px !important;
    }

    .sf-banner-1-content {
        align-items: center;
        text-align: center;
        gap: 20px;
    }

    .sf-banner-1-text {
        max-width: 100%;
        min-width: 0;
    }

    .sf-banner-1-text .sf-banner-1-text-small {
        font-size: 24px;
    }

    .sf-banner-1-text .sf-banner-1-text-large,
    .sf-banner-1-text .sf-banner-1-text-large-outline {
        font-size: clamp(36px, 9vw, 56px) !important;
        line-height: 1.08;
    }

    .sf-banner-1-text .sf-banner-text-detail {
        font-size: 18px;
        line-height: 1.6;
        margin: 10px auto 0;
    }

    .sf-banner-1-wrap .sf-banner-1-overlay::after {
        content: '';
        position: absolute;
        inset: 12px 14px 40px;
        border-radius: 22px;
        background: rgba(0, 0, 0, 0.14);
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
        z-index: -1;
    }
}

.sf-hero-header .sf-menu-cta a.site-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 26px;
    line-height: 1;
    border-radius: 12px;
}

.sf-hero-header .sf-menu-cta a.site-button.butn-bg-shape {
    padding: 18px !important;
}

/* hero title sizing */
.sf-banner-1-wrap .sf-banner-1-text .sf-banner-1-text-large,
.sf-banner-1-wrap .sf-banner-1-text .sf-banner-1-text-large-outline {
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-size: clamp(42px, 6vw, 86px) !important;
    line-height: 1.05;
}

.sf-banner-1-wrap .sf-banner-1-text .sf-banner-1-text-small {
    font-size: 22px;
    line-height: 1.2;
}

.sf-banner-1-wrap .sf-banner-1-text .sf-banner-text-detail {
    max-width: 520px;
    margin-left: 0;
    font-size: 18px;
    line-height: 1.5;
}

.sf-hero-dates-card {
    background: #ffffff;
    border: 1px solid rgba(18, 34, 45, 0.08);
    border-radius: 12px;
    padding: 22px;
    color: #12222d;
    max-width: 420px;
    box-shadow: 0 20px 48px rgba(10, 24, 36, 0.12);
    position: relative;
    z-index: 5;
}

.sf-hero-dates-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 16px;
}

.sf-hero-dates-head h4 {
    margin: 0 0 6px;
    font-size: 18px;
    color: #12222d;
    font-weight: 700;
}

.sf-hero-dates-head p {
    margin: 0;
    font-size: 13px;
    color: rgba(18, 34, 45, 0.6);
}

.sf-hero-dates-pill {
    background: #f1f5f7;
    color: #2f6a00;
    border: 1px solid #d9e4ea;
    padding: 6px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.sf-hero-dates-list {
    display: grid;
    gap: 12px;
}

.sf-hero-dates-item {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 12px;
    align-items: center;
    background: #f6fbf7;
    border: 1px solid rgba(18, 34, 45, 0.08);
    border-radius: 12px;
    padding: 12px;
}

.sf-hero-dates-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid rgba(18, 34, 45, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #2f6a00;
}

.sf-hero-dates-meta {
    display: flex;
    flex-direction: column;
}

.sf-hero-dates-date {
    font-weight: 700;
    font-size: 14px;
    color: #12222d;
}

.sf-hero-dates-sub {
    font-size: 12px;
    color: rgba(18, 34, 45, 0.55);
}

.sf-hero-dates-status {
    background: #f1f5f7;
    color: #2f6a00;
    border: 1px solid #d9e4ea;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.sf-hero-dates-action {
    color: #ffffff;
    background: #8ed600;
    border: 1px solid #8ed600;
    border-radius: 12px;
    padding: 10px 16px;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    white-space: nowrap;
}

.sf-hero-dates-action:hover {
    filter: brightness(0.96);
}

.sf-hero-dates-foot {
    margin-top: 14px;
    font-size: 12px;
    color: rgba(18, 34, 45, 0.55);
}

@media (max-width: 991px) {
    .sf-hero-dates-card {
        display: none;
    }
}

/* landing explainer section */
.sf-explainer {
    position: relative;
}

.sf-explainer.sf-explainer-ready .sf-explainer-item,
.sf-explainer.sf-explainer-ready .sf-explainer-preview,
.sf-explainer.sf-explainer-ready .sf-explainer-note,
.sf-explainer.sf-explainer-ready .sf-explainer-markers {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-item,
.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-preview,
.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-note,
.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-markers {
    opacity: 1;
    transform: translateY(0);
}

.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-item:nth-child(1) {
    transition-delay: 0.05s;
}

.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-item:nth-child(2) {
    transition-delay: 0.12s;
}

.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-item:nth-child(3) {
    transition-delay: 0.19s;
}

.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-item:nth-child(4) {
    transition-delay: 0.26s;
}

.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-item:nth-child(5) {
    transition-delay: 0.33s;
}

.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-preview {
    transition-delay: 0.2s;
}

.sf-explainer.sf-explainer-ready.is-visible .sf-explainer-note {
    transition-delay: 0.38s;
}

.sf-explainer .sf-explainer-shell {
    background: transparent;
    border-radius: 12px;
    padding: 32px;
    box-shadow: none;
    border: none;
}

.sf-explainer .sf-explainer-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 1.1fr);
    gap: 32px;
}

.sf-explainer .sf-explainer-left,
.sf-explainer .sf-explainer-right {
    position: relative;
}

.sf-explainer .sf-explainer-sticky {
    position: sticky;
    top: 180px;
    z-index: 2;
}

.sf-explainer .sf-explainer-list {
    display: grid;
    gap: 14px;
    position: relative;
}

.sf-explainer .sf-explainer-list::before {
    content: '';
    position: absolute;
    left: 35px;
    top: 18px;
    bottom: 18px;
    width: 1px;
    background: rgba(15, 40, 50, 0.18);
}

.sf-explainer .sf-explainer-item {
    display: flex;
    gap: 16px;
    padding: 16px 18px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid rgba(15, 40, 50, 0.08);
    box-shadow: 0 10px 24px rgba(15, 40, 50, 0.08);
    transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    position: relative;
    z-index: 1;
}

.sf-explainer .sf-explainer-item:not(.is-active):hover {
    border-color: rgba(15, 40, 50, 0.16);
    box-shadow: 0 12px 28px rgba(15, 40, 50, 0.12);
}

.sf-explainer .sf-explainer-item h4 {
    margin-bottom: 6px;
    color: #1f2f36;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-weight: 700;
    line-height: 1.25;
}

.sf-explainer .sf-explainer-item p {
    margin-bottom: 0;
    color: #55656d;
    font-size: 14px;
}

.sf-explainer .sf-explainer-index {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #ffffff;
    background: #8ed600;
    flex-shrink: 0;
}

.sf-explainer .sf-explainer-item.is-active {
    background: #ffffff;
    border-color: rgba(142, 214, 0, 0.45);
    box-shadow: 0 14px 32px rgba(88, 162, 0, 0.16);
}

.sf-explainer .sf-explainer-item.is-active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 4px;
    border-radius: 12px;
    background: #8ed600;
}

.sf-explainer .sf-explainer-note {
    margin-top: 18px;
    font-size: 13px;
    color: #60717a;
}

.sf-explainer .sf-explainer-preview {
    position: relative;
    min-height: 460px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid rgba(15, 40, 50, 0.08);
    padding: 22px;
    overflow: hidden;
}

.sf-explainer .sf-explainer-preview-desktop {
    display: block;
}

.sf-explainer .sf-explainer-preview-mobile {
    display: none;
}

.sf-explainer {
    --explainer-step-space: 60vh;
}

.sf-explainer .sf-explainer-mobile .sf-explainer-item.is-active {
    box-shadow: 0 12px 26px rgba(15, 40, 50, 0.12);
}

.sf-explainer .sf-explainer-mobile {
    display: none;
}

.sf-explainer .sf-explainer-mobile-stage {
    display: grid;
    gap: 16px;
}

.sf-explainer .sf-explainer-mobile-step-list {
    display: grid;
    gap: 12px;
}

.sf-explainer .sf-explainer-mobile-track {
    height: calc(var(--explainer-steps, 5) * var(--explainer-step-space));
}

.sf-explainer .sf-explainer-mobile-marker {
    display: block;
    height: var(--explainer-step-space);
    opacity: 0;
}

.sf-explainer .sf-explainer-mobile-track,
.sf-explainer .sf-explainer-mobile-marker {
    pointer-events: none;
}

.sf-explainer .sf-explainer-panel {
    position: absolute;
    inset: 0;
    padding: 22px;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.35s ease, transform 0.35s ease;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sf-explainer .sf-explainer-panel.is-active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.sf-explainer .sf-explainer-panel.is-active {
    padding: 15px !important;
}

.sf-explainer .sf-explainer-panel-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.sf-explainer .sf-explainer-panel-head h3 {
    margin-bottom: 6px;
    color: #1f2f36;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-weight: 700;
    line-height: 1.25;
}

.sf-explainer .sf-explainer-panel-head p {
    margin-bottom: 0;
    color: #6a7a83;
    font-size: 14px;
}

.sf-explainer .sf-explainer-panel-subtitle {
    color: #6a7a83;
    font-size: 14px;
}

.sf-explainer .sf-explainer-panel-subtitle p {
    margin-bottom: 0;
}

.sf-explainer .sf-explainer-panel-subtitle p+.sf-explainer-calendar {
    margin-top: 10px;
}

.sf-explainer .sf-explainer-panel-calendar {
    width: 100%;
}

.sf-explainer .sf-explainer-panel-comparation {
    width: 100%;
    margin-top: 12px;
}

.sf-explainer .sf-explainer-panel-hotel {
    width: 100%;
    margin-top: 12px;
}

.sf-explainer .sf-explainer-panel-options {
    width: 100%;
    margin-top: 12px;
}

.sf-explainer .sf-explainer-panel-local-help {
    width: 100%;
    margin-top: 12px;
}

.sf-explainer .sf-explainer-local-help {
    display: grid;
    gap: 12px;
    width: 100%;
}

.sf-explainer .sf-explainer-local-help-title {
    font-size: 20px;
    font-weight: 700;
    color: #1f2f36;
}

.sf-explainer .sf-explainer-local-help-subtitle {
    color: #6a7a83;
    font-size: 13px;
    margin-top: -6px;
}

.sf-explainer .sf-explainer-local-help-list {
    display: grid;
    gap: 10px;
}

.sf-explainer .sf-explainer-local-help-item {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(15, 40, 50, 0.08);
    background: #ffffff;
}

.sf-explainer .sf-explainer-local-help-icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: #f3f7f9;
    color: #5b7e2e;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}

.sf-explainer .sf-explainer-local-help-item-title {
    font-weight: 700;
    color: #1f2f36;
}

.sf-explainer .sf-explainer-local-help-item-text {
    color: #6a7a83;
    font-size: 13px;
}

.sf-explainer .sf-explainer-local-help-footnote {
    color: #2b3b42;
    font-size: 13px;
}

.sf-explainer .sf-explainer-add-options {
    display: grid;
    gap: 12px;
    width: 100%;
}

.sf-explainer .sf-explainer-add-options-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.sf-explainer .sf-explainer-add-options-card {
    border-radius: 12px;
    border: 1px solid rgba(15, 40, 50, 0.08);
    background: #ffffff;
    padding: 12px 14px;
}

.sf-explainer .sf-explainer-add-options-card.is-highlight {
    background: #f4f8e8;
    border-color: rgba(142, 214, 0, 0.4);
}

.sf-explainer .sf-explainer-add-options-card-head {
    text-align: center;
    border-bottom: 1px solid rgba(15, 40, 50, 0.08);
    padding-bottom: 10px;
    margin-bottom: 10px;
}

.sf-explainer .sf-explainer-add-options-card-title {
    font-weight: 700;
    color: #1f2f36;
}

.sf-explainer .sf-explainer-add-options-card-sub {
    color: #6a7a83;
    font-size: 13px;
}

.sf-explainer .sf-explainer-add-options-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
    color: #4c5b64;
    font-size: 13px;
}

.sf-explainer .sf-explainer-add-options-list li {
    display: grid;
    grid-template-columns: 18px 1fr;
    align-items: center;
    gap: 8px;
}

.sf-explainer .sf-explainer-add-options-list i {
    color: #5b7e2e;
    font-size: 14px;
}

.sf-explainer .sf-explainer-add-options-footnote {
    color: #2b3b42;
    font-size: 13px;
}

.sf-explainer .sf-explainer-add-options-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f3f7f9;
    border: 1px solid rgba(15, 40, 50, 0.08);
    border-radius: 12px;
    padding: 6px 12px;
    color: #2b3b42;
    font-size: 12px;
    font-weight: 600;
    width: fit-content;
}

.sf-explainer .sf-explainer-hotel-comparation {
    width: 100%;
}

.sf-explainer .sf-hotel-compare-tabs {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f3f7f9;
    border: 1px solid rgba(15, 40, 50, 0.08);
    border-radius: 12px;
    padding: 4px;
}

.sf-explainer .sf-hotel-compare-tabs button {
    border: 0;
    background: transparent;
    color: #3c4b54;
    font-weight: 600;
    font-size: 13px;
    padding: 6px 14px;
    border-radius: 12px;
}

.sf-explainer .sf-hotel-compare-tabs button.is-active {
    background: #f1f8dc;
    color: #3c5c1b;
    border: 1px solid rgba(142, 214, 0, 0.4);
}

.sf-explainer .sf-hotel-compare-groups {
    margin-top: 14px;
}

.sf-explainer .sf-hotel-compare-group {
    display: none;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.sf-explainer .sf-hotel-compare-group.is-active {
    display: grid;
}

.sf-explainer .sf-hotel-compare-card {
    background: #ffffff;
    border: 1px solid rgba(15, 40, 50, 0.08);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(15, 40, 50, 0.06);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.sf-explainer .sf-hotel-compare-image img {
    width: 100%;
    height: 140px;
    object-fit: cover;
    display: block;
}

.sf-explainer .sf-hotel-compare-body {
    padding: 12px 14px 14px;
    display: grid;
    gap: 10px;
}

.sf-explainer .sf-hotel-compare-body h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: #1f2f36;
}

.sf-explainer .sf-hotel-compare-badges {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.sf-explainer .sf-hotel-compare-badges span {
    margin: 0;
}

.sf-explainer .sf-hotel-compare-body p {
    margin: 0;
    font-size: 13px;
    color: #56666f;
}

.sf-explainer .sf-hotel-compare-footnote {
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid rgba(15, 40, 50, 0.08);
    font-size: 12px;
    color: #55656d;
}

.sf-explainer .sf-explainer-trip-comparation {
    width: 100%;
}

.sf-explainer .sf-trip-compare-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.sf-explainer .sf-trip-compare-card {
    --compare-accent: #8ed600;
    background: #ffffff;
    border: 1px solid rgba(15, 40, 50, 0.08);
    border-radius: 12px;
    padding: 14px;
    box-shadow: 0 10px 24px rgba(15, 40, 50, 0.06);
}

.sf-explainer .sf-trip-compare-card.is-relaxed {
    --compare-accent: #b9d77a;
}

.sf-explainer .sf-trip-compare-head {
    text-align: center;
    margin-bottom: 10px;
}

.sf-explainer .sf-trip-compare-days {
    font-size: 18px;
    font-weight: 700;
    color: #1f2f36;
}

.sf-explainer .sf-trip-compare-sub {
    font-size: 13px;
    color: #6a7a83;
}

.sf-explainer .sf-trip-compare-list {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
    display: grid;
    gap: 6px;
    color: #4c5b64;
    font-size: 13px;
}

.sf-explainer .sf-trip-compare-list li {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sf-explainer .sf-trip-compare-list li::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 12px;
    background: var(--compare-accent);
    display: inline-block;
}

.sf-explainer .sf-trip-compare-meter {
    display: grid;
    gap: 8px;
}

.sf-explainer .sf-trip-compare-meter-row {
    display: flex;
    gap: 4px;
}

.sf-explainer .sf-trip-compare-meter-row span {
    flex: 1 1 0;
    height: 10px;
    border-radius: 12px;
    background: #e6edf2;
}

.sf-explainer .sf-trip-compare-meter-row span.is-active {
    background: var(--compare-accent);
}

.sf-explainer .sf-trip-compare-meter-legend {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #6a7a83;
}

.sf-explainer .sf-trip-compare-dot {
    width: 10px;
    height: 10px;
    border-radius: 12px;
    background: var(--compare-accent);
    display: inline-block;
}

.sf-explainer .sf-explainer-calendar {
    margin-top: 12px;
    border-radius: 12px;
    border: 1px solid rgba(15, 40, 50, 0.08);
    background: #ffffff;
    padding: 8px;
    width: 100%;
}

.sf-explainer .sf-explainer-calendar-head {
    display: grid;
    grid-template-columns: 24px 1fr 24px;
    align-items: center;
    gap: 8px;
    padding: 0 4px 8px;
    color: #2e3a43;
    font-weight: 600;
}

.sf-explainer .sf-explainer-calendar-head button {
    border: 0;
    background: transparent;
    color: #7a8a95;
    font-size: 16px;
    cursor: default;
}

.sf-explainer .sf-explainer-calendar-month {
    text-align: center;
}

.sf-explainer .sf-explainer-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0px;
    padding: 0;
}

.sf-explainer .sf-explainer-calendar-weekday {
    text-align: center;
    font-size: 12px;
    color: #7a8a95;
    font-weight: 600;
}

.sf-explainer .sf-explainer-calendar-day {
    text-align: center;
    font-size: 14px;
    color: #5b6a74;
    display: grid;
    gap: 6px;
    place-items: center;
    padding: 6px 0;
}

.sf-explainer .sf-explainer-calendar-day[data-tooltip] {
    position: relative;
}

.sf-explainer .sf-explainer-calendar-day[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: #ffffff;
    color: #2e3a43;
    border: 1px solid rgba(15, 40, 50, 0.12);
    padding: 6px 10px;
    font-size: 12px;
    border-radius: 12px;
    white-space: nowrap;
    box-shadow: 0 10px 20px rgba(12, 40, 52, 0.12);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
    z-index: 5;
}

.sf-explainer .sf-explainer-calendar-day[data-tooltip]:hover::after {
    opacity: 1;
}

.sf-explainer .sf-explainer-calendar-day span {
    width: 8px;
    height: 8px;
    border-radius: 12px;
    background: #e5edf2;
    display: inline-block;
}

.sf-explainer .sf-explainer-calendar-day.is-available span {
    background: #8ed600;
}

.sf-explainer .sf-explainer-calendar-day.is-last span {
    background: #f2d35b;
}

.sf-explainer .sf-explainer-calendar-day.is-muted {
    color: #c0c9d0;
}

.sf-explainer .sf-explainer-calendar-day.is-muted span {
    background: #e9eff3;
}

.sf-explainer .sf-explainer-calendar-day.is-empty {
    visibility: hidden;
}

.sf-explainer .sf-explainer-calendar-legend {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 12px;
    color: #6a7a83;
    padding: 10px 4px 0;
}

.sf-explainer .sf-explainer-calendar-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sf-explainer .sf-explainer-calendar-legend i {
    width: 8px;
    height: 8px;
    border-radius: 12px;
    background: #e5edf2;
    display: inline-block;
}

.sf-explainer .sf-explainer-calendar-legend .is-available i {
    background: #8ed600;
}

.sf-explainer .sf-explainer-calendar-legend .is-last i {
    background: #f2d35b;
}

.sf-explainer .sf-explainer-pill {
    background: rgba(142, 214, 0, 0.15);
    color: #4b7200;
    border: 1px solid rgba(142, 214, 0, 0.4);
    padding: 6px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.sf-explainer .sf-explainer-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}

.sf-explainer .sf-explainer-tags span {
    background: #f4f7f9;
    border: 1px solid rgba(15, 40, 50, 0.08);
    padding: 6px 12px;
    border-radius: 12px;
    color: #51636b;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sf-explainer .sf-explainer-tags-overlay {
    position: absolute;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    justify-content: center;
    width: calc(100% - 32px);
    margin: 0;
    z-index: 2;
}

.sf-explainer .sf-explainer-image {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(15, 40, 50, 0.08);
    box-shadow: 0 16px 30px rgba(12, 40, 52, 0.12);
}

.sf-explainer .sf-explainer-image img {
    width: 100%;
    height: auto;
    display: block;
}

.sf-explainer .sf-explainer-illustration {
    margin-top: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: center;
    background: #f3f7f9;
    border: 1px solid rgba(15, 40, 50, 0.08);
    border-radius: 12px;
    padding: 18px;
}

.sf-explainer .sf-explainer-card {
    height: 120px;
    border-radius: 12px;
    border: 2px solid rgba(142, 214, 0, 0.7);
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 16px rgba(142, 214, 0, 0.2);
}

.sf-explainer .sf-explainer-dots {
    display: flex;
    gap: 10px;
}

.sf-explainer .sf-explainer-dots span {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid rgba(31, 47, 54, 0.18);
    display: inline-block;
}

.sf-explainer .sf-explainer-dots span.is-active {
    border-color: rgba(142, 214, 0, 0.9);
    box-shadow: 0 0 10px rgba(142, 214, 0, 0.4);
}

.sf-explainer .sf-explainer-lines {
    display: grid;
    gap: 12px;
    width: 70%;
}

.sf-explainer .sf-explainer-lines span {
    height: 10px;
    border-radius: 12px;
    background: rgba(31, 47, 54, 0.12);
}

.sf-explainer .sf-explainer-lines span.is-active {
    background: rgba(142, 214, 0, 0.7);
}

.sf-explainer .sf-explainer-arrow {
    position: relative;
    height: 18px;
    background: linear-gradient(90deg, rgba(142, 214, 0, 0.2), rgba(142, 214, 0, 0.9));
    border-radius: 12px;
}

.sf-explainer .sf-explainer-arrow::after {
    content: '';
    position: absolute;
    right: -4px;
    top: 50%;
    width: 12px;
    height: 12px;
    border-top: 3px solid rgba(142, 214, 0, 0.9);
    border-right: 3px solid rgba(142, 214, 0, 0.9);
    transform: translateY(-50%) rotate(45deg);
}

.sf-explainer .sf-explainer-markers {
    display: grid;
    gap: 0;
    padding-top: 40px;
    padding-bottom: 0;
    height: calc(var(--explainer-steps, 5) * var(--explainer-step-space));
    position: relative;
    z-index: 1;
}

.sf-explainer .sf-explainer-marker {
    display: block;
    height: var(--explainer-step-space);
    opacity: 0;
}

.sf-explainer .sf-explainer-mobile-dots {
    display: none;
}

.sf-explainer .sf-explainer-dot {
    border: 1px solid rgba(15, 40, 50, 0.2);
    background: #ffffff;
    color: #1f2f36;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.sf-explainer .sf-explainer-dot.is-active {
    background: #8ed600;
    color: #ffffff;
    border-color: #8ed600;
    box-shadow: 0 8px 18px rgba(88, 162, 0, 0.18);
}

@keyframes sf-explainer-fade {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.sf-explainer .sf-explainer-actions {
    margin-top: 26px;
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

.sf-explainer .sf-explainer-actions .site-button {
    min-width: 200px;
    text-align: center;
    border-radius: 12px;
    padding: 14px 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    line-height: 1;
}

.sf-menu-cta .site-button {
    padding: 18px !important;
    font-size: 18px;

}

.site-button {
    padding: 8px 14px;
    border-radius: 12px;
    font-size: 12px;
    line-height: 1.2;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sf-feature-cards {
    background: transparent;
    padding-top: 120px;
}

.sf-feature-cards .sf-feature-cards-grid {
    display: grid;
    gap: 22px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.sf-feature-cards .sf-feature-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 22px;
    border: 1px solid rgba(15, 40, 50, 0.08);
    box-shadow: 0 18px 40px rgba(15, 40, 50, 0.08);
    position: relative;
}

.sf-feature-cards .sf-feature-icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: rgba(142, 214, 0, 0.12);
    border: 1px solid rgba(142, 214, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.sf-feature-cards .sf-feature-icon img {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.sf-feature-cards .sf-feature-card h3 {
    margin-bottom: 10px;
    font-size: 18px;
    color: #1f2f36;
    font-weight: 700;
}

.sf-feature-cards .sf-feature-card p {
    margin-bottom: 0;
    color: #5b6a72;
    font-size: 14px;
}

/* FAQ section */
.sf-faq {
    background: transparent;
}

.sf-faq .sf-faq-list {
    max-width: 860px;
    margin: 0 auto;
    display: grid;
    gap: 14px;
}

.sf-faq .sf-faq-item {
    background: #ffffff;
    border: 1px solid #e4edf2;
    border-radius: 12px;
    box-shadow: 0 12px 24px rgba(15, 40, 50, 0.08);
    padding: 14px 18px;
}

.sf-faq .sf-faq-item summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-weight: 600;
    color: #12222d;
}

.sf-faq .sf-faq-item summary::-webkit-details-marker {
    display: none;
}

.sf-faq .sf-faq-item summary::after {
    content: '+';
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 12px;
    background: #f1f5f7;
    color: #2f6a00;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    transition: transform 0.2s ease, background 0.2s ease;
}

.sf-faq .sf-faq-item[open] summary::after {
    content: '-';
    background: #8ed600;
    color: #ffffff;
}

.sf-faq .sf-faq-answer {
    margin-top: 10px;
    color: #4b5b63;
    font-size: 14px;
    line-height: 1.6;
    overflow: hidden;
    transition: height 320ms ease, opacity 240ms ease;
    will-change: height;
}

.sf-faq .sf-faq-item:not([open]) .sf-faq-answer,
.sf-faq .sf-faq-item.is-closing .sf-faq-answer {
    opacity: 0;
}

.sf-faq .sf-faq-item[open] .sf-faq-answer,
.sf-faq .sf-faq-item.is-opening .sf-faq-answer {
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    .sf-faq .sf-faq-answer {
        transition: none;
    }
}

/* Hotels section */
.sf-hotels {
    background: transparent;
}

.sf-hotels .sf-hotels-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 22px;
}

.sf-hotels .sf-hotel-card {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid rgba(15, 40, 50, 0.08);
    box-shadow: 0 18px 40px rgba(15, 40, 50, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 240px;
}

.sf-hotels .sf-hotel-image {
    height: 160px;
    background-size: cover;
    background-position: center;
}

.sf-hotels .sf-hotel-image--empty {
    background: #f1f5f7;
}

.sf-hotels .sf-hotel-body {
    padding: 16px 18px 20px;
}

.sf-hotels .sf-hotel-body h3 {
    margin: 0 0 8px;
    font-size: 18px;
    color: #1f2f36;
    font-weight: 700;
}

.sf-hotels .sf-hotel-location {
    font-size: 13px;
    color: #6a7a82;
}

.sf-hotels .sf-hotel-desc {
    margin-top: 8px;
    font-size: 13px;
    color: #4f5f68;
    line-height: 1.5;
}

.sf-hotels .sf-hotel-actions {
    margin-top: 12px;
}

.sf-hotels .sf-hotel-actions .site-button {
    padding: 8px 14px;
    border-radius: 12px;
    font-size: 12px;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sf-hotels .sf-hotels-cta {
    margin-top: 24px;
    text-align: center;
}

.sf-hotels .sf-hotels-list {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.sf-hotels .sf-hotel-list-card {
    display: grid;
    grid-template-columns: minmax(220px, 360px) minmax(0, 1fr);
    gap: 18px;
    background: #ffffff;
    border-radius: 12px;
    border: 2px solid rgb(228, 238, 243);
    box-shadow: 0 12px 28px rgba(15, 40, 50, 0.08);
    padding: 10px;
    align-items: stretch;
}

.sf-hotels .sf-hotel-list-media {
    border-radius: 12px;
    overflow: hidden;
    background: #e9eff2;
    min-height: 0;
    height: 100%;
    position: relative;
}

.sf-hotels .sf-hotel-list-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sf-hotels .sf-hotel-list-media-empty {
    width: 100%;
    height: 100%;
    background: #e9eff2;
}

.sf-hotel-list-gallery-btn {
    position: absolute;
    left: 12px;
    bottom: 12px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 12px;
    background: rgba(15, 45, 50, 0.72);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    max-width: calc(100% - 24px);
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.1;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.24);
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
    z-index: 2;
}

.sf-hotel-list-gallery-btn span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sf-hotel-list-gallery-btn:hover,
.sf-hotel-list-gallery-btn:focus-visible {
    background: rgba(6, 97, 104, 0.88);
    border-color: #8ed600;
    color: #ffffff;
    transform: translateY(-1px);
}

.sf-hotels .sf-hotel-list-body {
    padding: 8px 10px 8px 4px;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.sf-hotels .sf-hotel-list-location {
    font-size: 13px;
    color: #5b6a72;
    margin-bottom: 6px;
}

.sf-hotels .sf-hotel-list-title {
    margin: 0 0 10px;
    font-size: 22px;
    font-weight: 700;
    color: #15252b;
}

.sf-hotels .sf-hotel-list-desc {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.6;
    color: #4a5a63;
}

.sf-hotels .sf-hotel-list-bottom {
    margin-top: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 186px;
    grid-template-rows: auto auto;
    align-items: end;
    gap: 12px 22px;
}

.sf-hotels .sf-hotel-list-bottom::before {
    content: "";
    grid-column: 1;
    grid-row: 1;
    border-bottom: 2px dotted #d7e5ea;
    padding-top: 10px;
}

.sf-hotels .sf-hotel-list-bottom:not(.has-cheapest) {
    grid-template-columns: minmax(0, 1fr) auto;
}

.sf-hotels .sf-hotel-list-bottom:not(.has-cheapest)::before {
    display: none;
}

.sf-hotels .sf-hotel-list-actions .site-button {
    min-width: 174px;
    padding: 12px 18px;
    font-size: 12px;
    line-height: 1.1;
    border-radius: 12px;
    justify-content: center;
}

.sf-hotels .sf-hotel-list-details-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.sf-hotels .sf-hotel-list-details-btn i {
    font-size: 14px;
    line-height: 1;
}

.sf-hotels .sf-hotel-list-actions {
    display: flex;
    justify-content: flex-end;
}

.sf-hotels .sf-hotel-list-side {
    grid-column: 2;
    grid-row: 1 / 3;
    display: grid;
    gap: 10px;
    justify-items: end;
    align-self: end;
}

.sf-hotels .sf-hotel-list-cheapest-preview {
    grid-column: 1;
    grid-row: 2;
}

.sf-hotels-filter {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 24px;
}

.sf-hotels-search {
    position: relative;
    width: min(100%, 520px);
    min-height: 46px;
    border: 1px solid #dbe8ef;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(9, 55, 69, 0.1);
}

.sf-hotels-search i {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: #066168;
    font-size: 16px;
}

.sf-hotels-search input {
    width: 100%;
    min-height: 44px;
    border: 0;
    border-radius: 8px;
    padding: 11px 16px 11px 46px;
    font-size: 13px;
    color: #0f2d32;
    background: transparent;
    box-shadow: none;
    outline: none;
}

.sf-hotels-search input::placeholder {
    color: #8a9aa8;
}

.sf-hotels-count {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    color: #066168;
    font-size: 13px;
    font-weight: 600;
}

.sf-hotels-count i {
    color: #8ed600;
    font-size: 15px;
}

.sf-hotels-filter-board {
    overflow: hidden;
    border: 1px solid #dbe8ef;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 12px 26px rgba(9, 55, 69, 0.08);
}

.sf-hotels-filter-row {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 12px 14px;
}

.sf-hotels-filter-row+.sf-hotels-filter-row {
    border-top: 1px solid #eef4e4;
}

.sf-hotels-filter-row-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    color: #0f2d32;
    font-size: 13px;
    font-weight: 700;
}

.sf-hotels-filter-row-label i {
    color: #8ed600;
    font-size: 15px;
}

.sf-hotels-filter-row-label span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sf-hotels-filter-tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    min-width: 0;
}

.sf-hotels-filter-row:not(.is-expanded) .sf-hotels-city-btn.is-extra,
.sf-hotels-filter-row:not(.is-expanded) .sf-hotels-tag-btn.is-extra {
    display: none;
}

.sf-hotels-tag-btn,
.sf-hotels-city-btn,
.sf-hotels-filter-more,
.sf-hotels-active-chip,
.sf-hotels-clear-btn {
    min-height: 32px;
    border: 1px solid #dbe8ef;
    background: #ffffff;
    border-radius: 999px;
    color: #0f2d32;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 7px 15px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.1;
    transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
    white-space: nowrap;
}

.sf-hotels-tag-btn:hover,
.sf-hotels-city-btn:hover,
.sf-hotels-filter-more:hover,
.sf-hotels-active-chip:hover,
.sf-hotels-clear-btn:hover {
    border-color: #8ed600;
    color: #066168;
    background: #f4f8e8;
}

.sf-hotels-tag-btn i,
.sf-hotels-city-btn i {
    display: none;
    font-size: 14px;
}

.sf-hotels-tag-btn.is-active,
.sf-hotels-city-btn.is-active {
    border-color: #8ed600;
    background: #8ed600;
    color: #0f2d32;
    box-shadow: 0 8px 16px rgba(142, 214, 0, 0.22);
}

.sf-hotels-tag-btn.is-active i,
.sf-hotels-city-btn.is-active i {
    display: inline-block;
}

.sf-hotels-active-filters {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid #d7e8b5;
    border-radius: 12px;
    background: #f4f8e8;
    padding: 10px 12px;
}

.sf-hotels-active-filters.is-empty {
    display: none;
}

.sf-hotels-active-list {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.sf-hotels-active-label {
    flex: 0 0 auto;
    color: #066168;
    font-size: 13px;
    font-weight: 600;
}

.sf-hotels-active-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.sf-hotels-active-chip {
    min-height: 30px;
    border-color: #d7e8b5;
    padding: 7px 12px;
    background: #ffffff;
}

.sf-hotels-active-chip i {
    font-size: 14px;
}

.sf-hotels-clear-btn {
    flex: 0 0 auto;
    border-color: #8ed600;
    color: #066168;
    border-radius: 8px;
    padding: 8px 14px;
    background: #ffffff;
}

.sf-hotels-clear-btn:disabled {
    opacity: .5;
    pointer-events: none;
}

.sf-hotel-list-tag {
    margin: 0;
}

.sf-hotel-scroll {
    max-height: 520px;
    overflow-y: auto;
    padding-right: 4px;
}

.sf-hotel-scroll.sf-hotel-accordion {
    max-height: none;
    overflow: visible;
    padding-right: 0;
}

#hotel-selection-body.sf-section-body {
    max-height: none;
    overflow: visible;
}

#hotel-selection-body.sf-section-body.is-collapsed {
    max-height: 0;
    overflow: hidden;
}

#flights-body.sf-section-body {
    max-height: none;
    overflow: visible;
}

#flights-body.sf-section-body.is-collapsed {
    max-height: 0;
    overflow: hidden;
}

#secondary-hotels-section .sf-section-body {
    max-height: none;
    overflow: visible;
}

#secondary-hotels-section .sf-section-body.is-collapsed {
    max-height: 0;
    overflow: hidden;
}

@media (max-width: 991px) {
    .sf-hotel-scroll {
        max-height: 420px;
    }
}

.sf-hotel-list-card.is-hidden {
    display: none;
}


.sf-hotels-filter-empty {
    font-size: 13px;
    color: #8a9aa3;
}

@media (max-width: 768px) {
    .sf-hotels-search {
        width: 100%;
    }

    .sf-hotels-filter-row {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .sf-hotels-filter-row-label span {
        white-space: normal;
    }

    .sf-hotels-active-filters,
    .sf-hotels-active-list {
        align-items: stretch;
        flex-direction: column;
    }

    .sf-hotels-clear-btn {
        width: 100%;
    }
}

@media (max-width: 991px) {
    .sf-hotels .sf-hotel-list-card {
        grid-template-columns: 1fr;
    }

    .sf-hotels .sf-hotel-list-media {
        height: 220px;
        min-height: 220px;
    }

    .sf-hotels .sf-hotel-list-bottom {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        align-items: end;
        gap: 12px 14px;
    }

    .sf-hotels .sf-hotel-list-bottom::before {
        display: block;
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .sf-hotels .sf-hotel-list-bottom:not(.has-cheapest)::before {
        display: none;
    }

    .sf-hotels .sf-hotel-list-actions {
        justify-content: flex-end;
    }

    .sf-hotels .sf-hotel-list-cheapest-preview {
        grid-column: 1;
        grid-row: 2;
    }

    .sf-hotels .sf-hotel-list-side {
        grid-column: 2;
        grid-row: 2;
        justify-items: end;
    }
}

@media (max-width: 575px) {
    .sf-hotels .sf-hotel-list-title {
        font-size: 20px;
    }
}

@media (min-width: 481px) and (max-width: 640px) {
    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-trip-selection-details {
        flex-wrap: nowrap;
        gap: 8px;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-date-group {
        flex: 1 1 155px;
        min-width: 0;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-length-group {
        flex: 0 0 100px !important;
        min-width: 100px !important;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-origin-group {
        flex: 1 1 130px !important;
        min-width: 0 !important;
    }
}

/* Trips list section */
.sf-trips {
    background: transparent;
}

.sf-trips .sf-trips-list {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.sf-trips .sf-trip-list-card {
    display: grid;
    grid-template-columns: minmax(220px, 360px) minmax(0, 1fr);
    gap: 18px;
    background: #ffffff;
    border-radius: 12px;
    border: 2px solid rgb(228, 238, 243);
    box-shadow: 0 12px 28px rgba(15, 40, 50, 0.08);
    padding: 12px;
    align-items: center;
}

.sf-trips .sf-trip-list-media {
    border-radius: 12px;
    overflow: hidden;
    background: #e9eff2;
    height: 200px;
}

.sf-trips .sf-trip-list-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sf-trips .sf-trip-list-media-empty {
    width: 100%;
    height: 100%;
    background: #e9eff2;
}

.sf-trips .sf-trip-list-body {
    padding: 8px 10px 8px 4px;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.sf-trips .sf-trip-list-location {
    font-size: 13px;
    color: #5b6a72;
    margin-bottom: 6px;
}

.sf-trips .sf-trip-list-title {
    margin: 0 0 10px;
    font-size: 22px;
    font-weight: 700;
    color: #15252b;
}

.sf-trips .sf-trip-list-desc {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.6;
    color: #4a5a63;
}

.sf-trip-list-tags {
    margin-top: auto;
}

.sf-trip-list-tag {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 12px;
    background: #f4f8e8;
    border: 1px solid #d7e8b5;
    font-size: 12px;
    color: #2a4b2f;
    margin: 4px 6px 0 0;
}

.sf-trips .sf-trip-list-actions .site-button {
    min-width: 120px;
    padding: 8px 16px;
    font-size: 12px;
    line-height: 1.1;
    border-radius: 12px;
    justify-content: center;
}

.sf-trips .sf-trip-list-actions {
    margin-top: 12px;
    display: flex;
    justify-content: flex-end;
}

.sf-page-hotel-trips .sf-trip-list-actions .site-button,
.sf-page-hotel-attractions .sf-trip-list-actions .site-button {
    min-width: 120px;
    padding: 8px 16px;
    font-size: 12px;
    line-height: 1.1;
    border-radius: 12px;
    justify-content: center;
}

.sf-page-hotel-trips .sf-trip-list-actions,
.sf-page-hotel-attractions .sf-trip-list-actions {
    margin-top: 12px;
    display: flex;
    justify-content: flex-end;
}

.sf-trip-list-card.is-hidden {
    display: none;
}

.sf-trips-filter {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 24px;
}

.sf-trips-search {
    position: relative;
    width: min(100%, 520px);
    min-height: 46px;
    border: 1px solid #dbe8ef;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(9, 55, 69, 0.1);
}

.sf-trips-search i {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: #066168;
    font-size: 16px;
}

.sf-trips-search input {
    width: 100%;
    min-height: 44px;
    border: 0;
    border-radius: 8px;
    padding: 11px 16px 11px 46px;
    font-size: 13px;
    color: #0f2d32;
    background: transparent;
    box-shadow: none;
    outline: none;
}

.sf-trips-search input::placeholder {
    color: #8a9aa8;
}

.sf-trips-count {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    color: #066168;
    font-size: 13px;
    font-weight: 600;
}

.sf-trips-count i {
    color: #8ed600;
    font-size: 15px;
}

.sf-trips-filter-board {
    overflow: hidden;
    border: 1px solid #dbe8ef;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 12px 26px rgba(9, 55, 69, 0.08);
}

.sf-trips-filter-row {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 12px 14px;
}

.sf-trips-filter-row+.sf-trips-filter-row {
    border-top: 1px solid #eef4e4;
}

.sf-trips-filter-row-label {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    color: #0f2d32;
    font-size: 13px;
    font-weight: 700;
}

.sf-trips-filter-row-label i {
    color: #8ed600;
    font-size: 15px;
}

.sf-trips-filter-row-label span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sf-trips-filter-tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    min-width: 0;
}

.sf-trips-filter-row:not(.is-expanded) .sf-trips-city-btn.is-extra,
.sf-trips-filter-row:not(.is-expanded) .sf-trips-tag-btn.is-extra {
    display: none;
}

.sf-trips-tag-btn,
.sf-trips-city-btn,
.sf-trips-filter-more,
.sf-trips-active-chip,
.sf-trips-clear-btn {
    min-height: 32px;
    border: 1px solid #dbe8ef;
    background: #ffffff;
    border-radius: 999px;
    color: #0f2d32;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 7px 15px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.1;
    transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
    white-space: nowrap;
}

.sf-trips-tag-btn:hover,
.sf-trips-city-btn:hover,
.sf-trips-filter-more:hover,
.sf-trips-active-chip:hover,
.sf-trips-clear-btn:hover {
    border-color: #8ed600;
    color: #066168;
    background: #f4f8e8;
}

.sf-trips-tag-btn i,
.sf-trips-city-btn i {
    display: none;
    font-size: 14px;
}

.sf-trips-tag-btn.is-active,
.sf-trips-city-btn.is-active {
    border-color: #8ed600;
    background: #8ed600;
    color: #0f2d32;
    box-shadow: 0 8px 16px rgba(142, 214, 0, 0.22);
}

.sf-trips-tag-btn.is-active i,
.sf-trips-city-btn.is-active i {
    display: inline-block;
}

.sf-trips-active-filters {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid #d7e8b5;
    border-radius: 12px;
    background: #f4f8e8;
    padding: 10px 12px;
}

.sf-trips-active-filters.is-empty {
    display: none;
}

.sf-trips-active-list {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.sf-trips-active-label {
    flex: 0 0 auto;
    color: #066168;
    font-size: 13px;
    font-weight: 600;
}

.sf-trips-active-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.sf-trips-active-chip {
    min-height: 30px;
    border-color: #d7e8b5;
    padding: 7px 12px;
    background: #ffffff;
}

.sf-trips-active-chip i {
    font-size: 14px;
}

.sf-trips-clear-btn {
    flex: 0 0 auto;
    border-color: #8ed600;
    color: #066168;
    border-radius: 8px;
    padding: 8px 14px;
    background: #ffffff;
}

.sf-trips-clear-btn:disabled {
    opacity: .5;
    pointer-events: none;
}

.sf-trips-filter-empty {
    font-size: 13px;
    color: #8a9aa3;
}

.sf-trips .sf-trips-list {
    gap: 12px;
}

.sf-trips .sf-trip-list-card {
    grid-template-columns: minmax(220px, 360px) minmax(0, 1fr);
    gap: 18px;
    padding: 10px;
    border: 2px solid rgb(228, 238, 243);
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(15, 40, 50, 0.08);
    align-items: stretch;
}

.sf-trips .sf-trip-list-media {
    position: relative;
    min-height: 0;
    height: 100%;
    border-radius: 12px;
}

.sf-trip-list-gallery-btn {
    position: absolute;
    left: 12px;
    bottom: 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    max-width: calc(100% - 24px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 8px;
    background: rgba(15, 45, 50, 0.72);
    color: #ffffff;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.1;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.24);
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
    z-index: 2;
}

.sf-trip-list-gallery-btn i {
    color: #ffffff;
}

.sf-trip-list-gallery-btn span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sf-trip-list-gallery-btn:hover,
.sf-trip-list-gallery-btn:focus-visible {
    background: rgba(6, 97, 104, 0.88);
    border-color: #8ed600;
    color: #ffffff;
    transform: translateY(-1px);
}

.sf-trips .sf-trip-list-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    gap: 24px;
    padding: 8px 10px 8px 0;
}

.sf-trip-list-main {
    min-width: 0;
}

.sf-trips .sf-trip-list-title {
    margin: 0 0 8px;
    color: #0b3a4a;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.15;
}

.sf-trips .sf-trip-list-desc {
    margin: 0 0 12px;
    color: #456b76;
    font-size: 13px;
    line-height: 1.45;
}

.sf-trip-list-tags {
    margin: 0 0 14px;
}

.sf-trip-list-bottom {
    display: grid;
    gap: 12px;
    margin-top: 8px;
}

.sf-trip-list-bottom::before {
    content: "";
    display: block;
    border-bottom: 2px dotted #d7e5ea;
}

.sf-trip-list-extra-meta {
    padding-top: 2px;
}

.sf-trip-list-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(92px, 1fr));
    gap: 0;
    margin-bottom: 12px;
}

.sf-trip-list-facts span {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 7px;
    align-items: center;
    min-height: 42px;
    padding: 0 12px;
    border-left: 1px solid #e5eef2;
    color: #0b3a4a;
    font-size: 11px;
    font-weight: 800;
}

.sf-trip-list-facts span:first-child {
    border-left: 0;
    padding-left: 0;
}

.sf-trip-list-facts i {
    color: #0f7d8b;
    font-size: 18px;
}

.sf-trip-list-facts small {
    display: block;
    grid-column: 2;
    color: #6b8088;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.1;
}

.sf-trip-list-info-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    max-width: 100%;
    border-radius: 12px;
    background: #f0fbfb;
    color: #0f7d8b;
    overflow: hidden;
}

.sf-trip-list-info-strip span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    padding: 7px 14px;
    border-left: 1px solid #dbe8ef;
    font-size: 11px;
    font-weight: 700;
}

.sf-trip-list-info-strip span:first-child {
    border-left: 0;
}

.sf-trip-list-side {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: 12px;
}

.sf-trip-list-price {
    color: #0b3a4a;
    line-height: 1;
}

.sf-trip-list-price.sf-hotel-cheapest-price {
    display: block;
    text-align: right;
}

.sf-trip-list-price span {
    display: inline;
}

.sf-trip-list-price strong {
    letter-spacing: 0;
}

.sf-trip-list-price em {
    color: #0b3a4a;
    font-size: 17px;
    font-style: normal;
    font-weight: 900;
}

.sf-trip-list-price small {
    display: inline;
}

.sf-trips .sf-trip-list-details-btn {
    min-height: 44px;
    width: 100%;
    border-radius: 12px;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
}

@media (max-width: 768px) {
    .sf-trips-search {
        width: 100%;
    }

    .sf-trips .sf-trip-list-card {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .sf-trips .sf-trip-list-media {
        height: 220px;
    }

    .sf-trips .sf-trip-list-body {
        grid-template-columns: 1fr;
        padding: 4px;
        gap: 14px;
    }

    .sf-trip-list-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .sf-trip-list-bottom {
        margin-top: 12px;
    }

    .sf-trip-list-facts span,
    .sf-trip-list-facts span:first-child {
        border-left: 0;
        border: 1px solid #e5eef2;
        border-radius: 12px;
        padding: 8px 10px;
    }

    .sf-trip-list-info-strip span,
    .sf-trip-list-info-strip span:first-child {
        width: 100%;
        border-left: 0;
        border-top: 1px solid #dbe8ef;
    }

    .sf-trip-list-info-strip span:first-child {
        border-top: 0;
    }

    .sf-trip-list-side {
        align-items: flex-start;
    }

    .sf-trips .sf-trip-list-details-btn {
        width: auto;
        min-width: 170px;
    }

    .sf-trips-filter-row {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .sf-trips-filter-row-label span {
        white-space: normal;
    }

    .sf-trips-active-filters,
    .sf-trips-active-list {
        align-items: stretch;
        flex-direction: column;
    }

    .sf-trips-clear-btn {
        width: 100%;
    }
}

@media (max-width: 991px) {
    .sf-trips .sf-trip-list-card {
        grid-template-columns: 1fr;
    }

    .sf-trips .sf-trip-list-media {
        height: 220px;
    }
}

@media (max-width: 575px) {
    .sf-trips .sf-trip-list-title {
        font-size: 20px;
    }
}

/* Custom pages */
.sf-page {
    padding: 120px 0 80px;
}

.sf-page .sf-head-title-wrap {
    margin-bottom: 40px;
    margin-top: 100px;
}

.inner-page .sf-page .sf-head-title-wrap {
    margin-bottom: 40px;
    margin-top: 0px;
}

.sf-page-section+.sf-page-section {
    margin-top: 40px;
}

.sf-public-expedition-starting-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 16px;
    margin: 0 0 28px;
    padding: 14px 18px;
    border: 1px solid #d8e6e9;
    border-radius: 12px;
    background: #f6fafb;
    color: #17404c;
}

.sf-public-expedition-starting-price strong {
    font-size: 1.2rem;
    line-height: 1.35;
}

.sf-public-expedition-starting-price span {
    font-size: .9rem;
    line-height: 1.45;
}

.sf-page-header,
.sf-page-features--full {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
}

.sf-page-header {
    position: relative;
    overflow: hidden;
    min-height: var(--sf-page-header-height-desktop, 600px);
    margin-top: 0;
    background: #eef5f4;
}

.sf-page-section.sf-page-header {
    margin-top: -122px;
}

.sf-page-header__background {
    display: block;
    width: 100%;
    height: var(--sf-page-header-height-desktop, 600px);
    object-fit: var(--sf-page-header-fit, cover);
    object-position: var(--sf-page-header-position, center center);
}

.sf-page-header__overlays {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    flex-direction: column;
    pointer-events: none;
}

@media (max-width: 1200px) {
    .sf-page-section.sf-page-header {
        margin-top: -120px;
    }

    .sf-page-header {
        min-height: var(--sf-page-header-height-tablet, 420px);
    }

    .sf-page-header__background {
        height: var(--sf-page-header-height-tablet, 420px);
    }

}

@media (max-width: 767px) {
    .sf-page-header {
        min-height: var(--sf-page-header-height-mobile, 280px);
    }

    .sf-page-header__background {
        height: var(--sf-page-header-height-mobile, 280px);
    }

}

.sf-page-features__inner {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.sf-page-rich .sf-page-content {
    font-size: 16px;
    line-height: 1.7;
    color: #2b3b42;
}

.sf-page-content [data-page-text-align="center"],
.sf-page-split-text [data-page-text-align="center"] {
    text-align: center;
}

.sf-page-content [data-page-text-align="right"],
.sf-page-split-text [data-page-text-align="right"] {
    text-align: right;
}

.sf-page-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    align-items: center;
}

.sf-page-split.is-left {
    grid-template-areas: "image text";
}

.sf-page-split.is-left .sf-page-split-text {
    grid-area: text;
}

.sf-page-split.is-left .sf-page-split-image {
    grid-area: image;
}

.sf-page-split-text {
    font-size: 16px;
    line-height: 1.7;
    color: #2b3b42;
}

.sf-page-split--text {
    align-items: start;
}

.sf-page-split-text-section {
    width: min(100%, 1200px);
    margin-right: auto;
    margin-left: auto;
}

.sf-page-split-text-section__title {
    margin: 0 0 20px;
    color: #176a70;
    font-size: clamp(24px, 2.4vw, 34px);
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
}

.sf-page-split--text .sf-page-split-text {
    min-width: 0;
    padding: 26px 30px;
    border: 1px solid rgba(15, 40, 50, .10);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(15, 40, 50, .05);
}

.sf-page-split-image img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    display: block;
    box-shadow: 0 18px 40px rgba(15, 40, 50, 0.08);
}

.sf-page-image-cards__title {
    margin: 0 0 24px;
    color: #176a70;
    font-size: clamp(24px, 2.4vw, 34px);
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
}

.sf-page-image-cards__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
}

.sf-page-image-card {
    flex: 0 1 100%;
}

@media (min-width: 640px) {
    .sf-page-image-card {
        flex-basis: calc((100% - 24px) / 2);
    }
}

@media (min-width: 900px) {
    .sf-page-image-card {
        flex-basis: calc((100% - 48px) / 3);
    }
}

@media (min-width: 1200px) {
    .sf-page-image-card {
        flex-basis: calc((100% - 72px) / 4);
    }
}

.sf-page-image-card {
    min-width: 0;
    color: #2b3b42;
}

.sf-page-image-card__image {
    display: block;
    overflow: hidden;
    border-radius: 12px;
    background: #eef5f4;
}

.sf-page-image-card__image img {
    display: block;
    width: 100%;
    aspect-ratio: 21 / 9;
    object-fit: cover;
    transition: transform 180ms ease;
}

a.sf-page-image-card__image:hover img,
a.sf-page-image-card__image:focus-visible img {
    transform: scale(1.03);
}

.sf-page-image-card h3 {
    margin: 14px 0 6px;
    color: #176a70;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
}

.sf-page-image-card p {
    margin: 0;
    color: #68777d;
    font-size: 14px;
    line-height: 1.5;
}

.sf-page-image-card__content {
    color: #68777d;
    font-size: 14px;
    line-height: 1.5;
}

.sf-page-image-card__content> :first-child {
    margin-top: 0;
}

.sf-page-image-card__content> :last-child {
    margin-bottom: 0;
}

.sf-page-image-card__content [data-page-text-align="center"] {
    text-align: center;
}

.sf-page-image-card__content [data-page-text-align="right"] {
    text-align: right;
}

.sf-page-cta {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: clamp(16px, 2.5vw, 34px);
    align-items: center;
    width: min(100%, 1200px);
    margin-right: auto;
    margin-left: auto;
    padding: clamp(18px, 2.7vw, 30px) clamp(22px, 4vw, 48px);
    overflow: hidden;
    border: 1px solid rgba(21, 158, 171, .20);
    border-radius: 12px;
    background-color: #f5ffff;
    background-image: var(--sf-page-cta-background-image, linear-gradient(105deg, #f8ffff 0%, #e7f9fa 55%, #f4ffff 100%));
    background-position: center 62%;
    background-repeat: no-repeat;
    background-size: cover;
    box-shadow: 0 8px 20px rgba(15, 101, 109, .07);
}

.sf-page-cta__icon,
.sf-page-cta__content,
.sf-page-cta__button {
    position: relative;
    z-index: 0;
}

.sf-page-cta__icon {
    display: grid;
    width: clamp(62px, 6.5vw, 82px);
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    color: #08767e;
    background: rgba(91, 198, 207, .16);
    font-size: clamp(28px, 2.7vw, 38px);
}

.sf-page-cta__content h2 {
    margin: 0 0 6px;
    color: #08717a;
    font-size: clamp(24px, 2.5vw, 34px);
    font-weight: 800;
    line-height: 1.2;
}

.sf-page-cta__content p {
    margin: 0;
    color: #51666d;
    font-size: clamp(14px, 1.25vw, 17px);
    line-height: 1.5;
}

.sf-page-cta__button.site-button {
    gap: 12px;
    align-items: center;
    justify-content: center;
    min-width: min(100%, 190px);
    padding: 14px 22px;
    font-size: 15px;
    line-height: 1;
}

.sf-page-cta__button i {
    font-size: 20px;
}

@media (max-width: 767px) {
    .sf-page-cta {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 18px;
    }

    .sf-page-cta__button {
        grid-column: 1 / -1;
        width: 100%;
    }
}

@media (max-width: 430px) {
    .sf-page-cta {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .sf-page-cta__icon {
        margin: 0 auto;
    }
}

.sf-page-section.sf-page-hotel-rooms {
    width: min(100%, 1200px);
    min-width: 0;
    margin-right: auto;
    margin-left: auto;
    margin-top: 80px;
    box-sizing: border-box;
}

.sf-hotel-has-config .sf-page-section.sf-page-hotel-rooms {
    width: 100%;
    max-width: calc(100% - 400px);
}

@media (max-width: 991px) {
    .sf-hotel-has-config .sf-page-section.sf-page-hotel-rooms {
        max-width: 100%;
    }
}

.sf-page-hotel-location {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
    gap: clamp(14px, 1.5vw, 22px);
    align-items: stretch;
    width: min(100%, 1200px);
    margin-right: auto;
    margin-left: auto;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.sf-page-hotel-location__map-column > h2 {
    margin: 0 0 10px;
    color: #176a70;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
}

.sf-page-hotel-location__map-column {
    display: flex;
    min-height: 0;
    flex-direction: column;
}

.sf-page-hotel-location__map {
    aspect-ratio: 16 / 9;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
    border-radius: 12px;
    background: #f1f8f8;
}

.sf-page-hotel-location__map .sf-google-map-loader,
.sf-page-hotel-location__map iframe,
.sf-page-hotel-location__map-empty {
    min-height: 0;
    height: 100%;
}

.sf-page-hotel-location__map .sf-google-map-loader {
    gap: 8px;
    padding: 16px;
}

.sf-page-hotel-location__map .sf-google-map-loader__icon {
    width: 38px;
    height: 38px;
    font-size: 18px;
}

.sf-page-hotel-location__map .sf-google-map-loader p {
    max-width: 340px;
    font-size: 12px;
}

.sf-page-hotel-location__map .sf-google-map-loader .site-button {
    padding: 7px 11px;
    font-size: 11px;
}

.sf-page-hotel-location__map iframe {
    display: block;
    width: 100%;
    border: 0;
}

.sf-page-hotel-location__map-empty {
    display: grid;
    place-items: center;
    color: #8fb7bb;
    font-size: 42px;
}

.sf-page-hotel-location__content h3 {
    margin: 0 0 8px;
    color: #0b3a4a;
    font-size: clamp(20px, 2vw, 28px);
    font-weight: 800;
    line-height: 1.2;
}

.sf-page-hotel-location__content {
    display: flex;
    min-height: 0;
    flex-direction: column;
    margin-top: 0;
    padding: clamp(18px, 2.5vw, 28px);
    border: 1px solid #e3eef2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(15, 40, 50, .05);
}

.sf-page-hotel-location.has-map-title .sf-page-hotel-location__content {
    margin-top: 33px;
}

.sf-page-hotel-location__content > p {
    margin: 0;
    color: #63747c;
    font-size: 14px;
    line-height: 1.5;
}

.sf-page-hotel-location__features {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.sf-page-hotel-location__features article {
    display: flex;
    min-width: 0;
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid #e3eef2;
    border-radius: 10px;
    background: #fff;
}

.sf-page-hotel-location__features > article > i {
    color: #087980;
    font-size: 22px;
}

.sf-page-hotel-location__features article div {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.sf-page-hotel-location__features strong {
    color: #27454f;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.sf-page-hotel-location__features span {
    color: #70818a;
    font-size: 11px;
    line-height: 1.25;
}

@media (max-width: 767px) {
    .sf-page-hotel-location {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .sf-page-hotel-location__content,
    .sf-page-hotel-location.has-map-title .sf-page-hotel-location__content {
        margin-top: 0;
    }

}

.sf-page-hotel-rooms__title {
    margin: 0 0 20px;
    color: #176a70;
    font-size: clamp(24px, 2.4vw, 34px);
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
}

.sf-page-hotel-rooms__slider {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 0 34px 28px;
    overflow: hidden;
    box-sizing: border-box;
}

.sf-page-hotel-rooms__slider .swiper-wrapper {
    align-items: stretch;
}

.sf-page-hotel-rooms__slider .swiper-slide {
    height: auto;
}

.sf-page-hotel-room-card {
    display: flex;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e3eef2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(15, 40, 50, .06);
}

.sf-page-hotel-room-card__image {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border: 0;
    background: #eef5f4;
    cursor: pointer;
}

.sf-page-hotel-room-card__image img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    transition: transform 180ms ease;
}

.sf-page-hotel-room-card__image:hover img,
.sf-page-hotel-room-card__image:focus-visible img {
    transform: scale(1.03);
}

.sf-page-hotel-room-card__image.is-empty {
    display: grid;
    aspect-ratio: 16 / 10;
    place-items: center;
    color: #9aafb8;
    font-size: 32px;
    cursor: default;
}

.sf-page-hotel-room-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 16px;
}

.sf-page-hotel-room-card h3 {
    margin: 0 0 12px;
    color: #0b3a4a;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
}

.sf-page-hotel-room-card__features {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sf-page-hotel-room-card__features li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    gap: 7px;
    align-items: center;
    color: #6a7b84;
    font-size: 12px;
    line-height: 1.25;
}

.sf-page-hotel-room-card__features i {
    color: #087980;
    font-size: 15px;
}

.sf-page-hotel-room-card__features strong {
    color: #294b56;
    font-weight: 700;
    text-align: right;
}

.sf-page-hotel-room-card__button.site-button {
    align-self: stretch;
    gap: 8px;
    justify-content: center;
    margin-top: 14px;
    padding: 10px 13px;
    font-size: 12px;
    line-height: 1.1;
}

.sf-page-hotel-room-card__price {
    margin: auto 0 0;
    color: #6a7b84;
    font-size: 12px;
    line-height: 1.3;
}

.sf-page-hotel-room-card__price strong {
    color: #087980;
    font-size: 17px;
    font-weight: 800;
}

.sf-page-hotel-rooms__prev,
.sf-page-hotel-rooms__next {
    color: #087980;
}

.sf-page-hotel-rooms__pagination {
    bottom: 0 !important;
}

.sf-page-hotel-rooms__pagination .swiper-pagination-bullet-active {
    background: #087980;
}

@media (max-width: 767px) {
    .sf-page-hotel-rooms__slider {
        padding-right: 0;
        padding-left: 0;
    }

    .sf-page-hotel-rooms__prev,
    .sf-page-hotel-rooms__next {
        display: none;
    }
}

.sf-page-highlight {
    display: grid;
    grid-template-columns: minmax(280px, .85fr) minmax(0, 1.15fr);
    gap: 32px;
    align-items: stretch;
    padding: 16px;
    border: 1px solid #efe5d4;
    border-radius: 12px;
    background: linear-gradient(105deg, #fffdf9 0%, #fff8ed 100%);
    box-shadow: 0 10px 24px rgba(88, 67, 34, .07);
}

.sf-page-highlight.is-image-right .sf-page-highlight__image {
    order: 2;
}

.sf-page-highlight__image {
    min-height: 280px;
    overflow: hidden;
    border-radius: 12px;
    background: #eef5f4;
}

.sf-page-highlight__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sf-page-highlight__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 18px 18px 18px 0;
}

.sf-page-highlight.is-image-right .sf-page-highlight__content {
    padding: 18px 0 18px 18px;
}

.sf-page-highlight h2 {
    margin: 0 0 10px;
    color: #096c73;
    font-size: clamp(25px, 2.6vw, 38px);
    font-weight: 800;
    line-height: 1.15;
}

.sf-page-highlight__description {
    margin: 0;
    color: #5d666a;
    font-size: 16px;
    line-height: 1.65;
}

.sf-page-highlight__description> :first-child {
    margin-top: 0;
}

.sf-page-highlight__description> :last-child {
    margin-bottom: 0;
}

.sf-page-highlight__description [data-page-text-align="center"] {
    text-align: center;
}

.sf-page-highlight__description [data-page-text-align="right"] {
    text-align: right;
}

.sf-page-highlight__items {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 18px;
    margin-top: 26px;
}

.sf-page-highlight__item {
    color: #c5a36a;
    text-align: center;
}

.sf-page-highlight__item i {
    display: block;
    margin-bottom: 8px;
    font-size: 31px;
    line-height: 1;
}

.sf-page-highlight__item p {
    margin: 0;
    color: #627077;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

.sf-page-trip-calendar {
    padding: 0;
}

.sf-page-trip-calendar__title {
    margin: 0 0 20px;
    color: #096c73;
    font-size: clamp(24px, 2.4vw, 34px);
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
}

.sf-page-trip-calendar__slider {
    padding: 0 34px 22px;
}

.sf-page-trip-calendar__month {
    min-width: 0;
    padding: 8px;
    border: 1px solid #e3eef2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 18px rgba(15, 40, 50, .05);
}

.sf-page-trip-calendar__slider .swiper-button-prev,
.sf-page-trip-calendar__slider .swiper-button-next {
    width: 28px;
    height: 28px;
    margin-top: -28px;
    border: 1px solid #dce7ec;
    border-radius: 50%;
    color: #096c73;
    background: #fff;
}

.sf-page-trip-calendar__slider .swiper-button-prev {
    left: 0;
}

.sf-page-trip-calendar__slider .swiper-button-next {
    right: 0;
}

.sf-page-trip-calendar__slider .swiper-button-prev::after,
.sf-page-trip-calendar__slider .swiper-button-next::after {
    font-size: 12px;
    font-weight: 800;
}

.sf-page-trip-calendar__slider .swiper-pagination {
    bottom: 0;
}

.sf-page-trip-calendar__slider .swiper-pagination-bullet-active {
    background: #096c73;
}

.sf-page-trip-calendar__month h3 {
    margin: 0 0 6px;
    color: #096c73;
    font-size: 14px;
    font-weight: 800;
    text-align: center;
    text-transform: capitalize;
}

.sf-page-trip-calendar__weekdays,
.sf-page-trip-calendar__days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 2px;
}

.sf-page-trip-calendar__weekdays {
    margin-bottom: 3px;
    color: #7b8990;
    font-size: 9px;
    font-weight: 700;
    text-align: center;
}

.sf-page-trip-calendar__days time,
.sf-page-trip-calendar__days .is-empty {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    justify-self: center;
    border-radius: 5px;
    font-size: 12px;
    font-weight: 700;
}

.sf-page-trip-calendar__days time {
    color: #3b515a;
}

.sf-page-trip-calendar__days time.is-outside-range {
    visibility: hidden;
}

.sf-page-trip-calendar__days time.has-quota {
    color: #fff;
    background: #096c73;
    box-shadow: 0 4px 10px rgba(9, 108, 115, .22);
}

.sf-page-trip-calendar__empty {
    margin: 18px 0 0;
    color: #68777d;
    font-size: 14px;
    text-align: center;
}

@media (max-width: 767px) {
    .sf-page-trip-calendar__slider {
        padding-right: 0;
        padding-left: 0;
    }

    .sf-page-trip-calendar__slider .swiper-button-prev,
    .sf-page-trip-calendar__slider .swiper-button-next {
        display: none;
    }
}

.sf-page-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.sf-page-gallery-item img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(15, 40, 50, 0.08);
}

.sf-page-features {
    background: #f7fbfb;
    border: 1px solid rgba(15, 40, 50, 0.06);
    border-radius: 8px;
    padding: 24px;
}

.sf-page-features--full {
    padding: 10px 0;
    border: 0;
    border-radius: 0;
    background: linear-gradient(90deg, #effcfb 0%, #f8fdfc 50%, #effcfb 100%);
}

.sf-page-section.sf-page-features--full {
    margin-top: 10px;
}

.sf-page-features--full .sf-page-features-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 22px;
}

.sf-page-features--full .sf-page-feature-card {
    display: grid;
    flex: 0 1 270px;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 92px;
    padding: 14px 18px;
    border: 2px solid rgb(228, 238, 243);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 40, 50, .08);
}

.sf-page-features--full .sf-page-feature-icon {
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 0;
    color: #197a7e;
    background: transparent;
    font-size: 34px;
}

.sf-page-features--full .sf-page-feature-copy h3 {
    margin-bottom: 5px;
    color: #176a70;
    font-size: 16px;
    font-weight: 800;
}

.sf-page-features--full .sf-page-feature-copy p {
    color: #68777d;
    font-size: 13px;
    line-height: 1.38;
}

.sf-page-features-title {
    margin: 0 0 18px;
    color: #0b3a4a;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
}

.sf-page-features-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.sf-page-feature-card {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    align-items: flex-start;
    min-height: 92px;
    padding: 16px;
    background: #ffffff;
    border: 1px solid rgba(15, 40, 50, 0.08);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 40, 50, 0.06);
}

.sf-page-feature-icon {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #72bd00;
    background: #eef9e6;
    border: 1px solid rgba(114, 189, 0, 0.22);
    font-size: 17px;
    line-height: 1;
}

.sf-page-feature-copy {
    min-width: 0;
}

.sf-page-feature-copy h3 {
    margin: 0 0 4px;
    color: #172f38;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.18;
}

.sf-page-feature-copy p {
    margin: 0;
    color: #5f7078;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.35;
}

.sf-page-map-head {
    margin-bottom: 20px;
    text-align: center;
}

.sf-page-map-title {
    margin: 0 0 8px;
    color: #096c73;
    font-size: clamp(24px, 2.4vw, 34px);
    font-weight: 800;
    line-height: 1.2;
}

.sf-page-map-subtitle {
    margin: 0;
    font-size: 14px;
    color: #5b6a72;
}

.sf-page-map-embed {
    border-radius: 12px;
    overflow: hidden;
    background: #f1f5f7;
    box-shadow: 0 16px 40px rgba(15, 40, 50, 0.08);
}

.sf-page-map-embed iframe {
    width: 100%;
    height: 360px;
    border: 0;
    display: block;
}

.sf-page-hotel-trips .sf-page-trips-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 22px;
}

.sf-page-hotel-trips .sf-page-trip-card {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid rgba(15, 40, 50, 0.08);
    box-shadow: 0 18px 40px rgba(15, 40, 50, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 240px;
}

.sf-page-hotel-trips .sf-page-trip-image {
    height: 160px;
    background-size: cover;
    background-position: center;
}

.sf-page-hotel-trips .sf-page-trip-image--empty {
    background: #f1f5f7;
}

.sf-page-hotel-trips .sf-page-trip-body {
    padding: 16px 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1 1 auto;
}

.sf-page-hotel-trips .sf-page-trip-body h3 {
    margin: 0 0 8px;
    font-size: 18px;
    color: #1f2f36;
    font-weight: 700;
}

.sf-page-hotel-trips .sf-page-trip-body p {
    margin: 0;
    font-size: 13px;
    color: #5b6a72;
    line-height: 1.5;
}

.sf-page-hotel-trips .sf-trip-list-actions {
    margin-top: auto;
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 991px) {
    .sf-page {
        padding: 100px 0 60px;
    }

    .sf-page-split {
        grid-template-columns: 1fr;
    }

    .sf-page-split--text .sf-page-split-text {
        padding: 22px 24px;
    }

    .sf-page-highlight {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .sf-page-highlight.is-image-right .sf-page-highlight__image {
        order: -1;
    }

    .sf-page-highlight__image {
        min-height: 230px;
    }

    .sf-page-highlight__content,
    .sf-page-highlight.is-image-right .sf-page-highlight__content {
        padding: 4px 12px 16px;
    }

    .sf-page-features-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .sf-page-features {
        padding: 18px;
    }

    .sf-page-features-grid {
        grid-template-columns: 1fr;
    }

    .sf-page-features__inner {
        width: min(100% - 28px, 1200px);
    }
}

@media (max-width: 767px) {
    .sf-page-features--full {
        padding: 10px 0;
    }

    .sf-page-features--full .sf-page-feature-card {
        flex-basis: min(100%, 270px);
        min-height: 88px;
        padding: 14px 16px;
    }

    .sf-page-map-embed iframe {
        height: 280px;
    }
}

@media (max-width: 991px) {
    .sf-explainer .sf-explainer-grid {
        display: none;
    }

    .sf-explainer .sf-explainer-mobile {
        display: block;
        position: relative;
        min-height: auto;
    }

    .sf-explainer .sf-explainer-mobile-stage {
        position: sticky;
        top: 12vh;
    }

    .sf-explainer .sf-explainer-mobile .sf-explainer-item {
        display: none;
    }

    .sf-explainer .sf-explainer-mobile .sf-explainer-item.is-active {
        display: flex;
    }

    .sf-explainer .sf-explainer-note {
        margin-top: 8px;
    }

    .sf-explainer .sf-explainer-preview-desktop {
        display: none;
    }

    .sf-explainer .sf-explainer-preview-mobile {
        display: block;
        padding: 22px;
    }

    .sf-explainer .sf-explainer-preview-mobile .sf-explainer-panel {
        display: none;
        padding: 0;
    }

    .sf-explainer .sf-explainer-preview-mobile .sf-explainer-panel.is-active {
        display: flex;
        animation: sf-explainer-fade 0.3s ease;
    }

    .sf-explainer .sf-explainer-mobile-dots {
        display: flex;
        gap: 10px;
        justify-content: center;
        margin-top: 16px;
        flex-wrap: wrap;
    }

    .sf-explainer .sf-explainer-markers {
        display: none;
    }

    .sf-explainer .sf-explainer-panel-head {
        padding-top: 2px;
    }
}

@media (max-width: 640px) {
    .sf-explainer .sf-explainer-shell {
        padding: 22px;
    }

    .sf-explainer .sf-trip-compare-grid {
        grid-template-columns: 1fr;
    }

    .sf-explainer .sf-hotel-compare-group {
        grid-template-columns: 1fr;
    }

    .sf-explainer .sf-explainer-add-options-grid {
        grid-template-columns: 1fr;
    }

    .sf-explainer .sf-explainer-illustration {
        grid-template-columns: 1fr;
    }

    .sf-explainer .sf-explainer-arrow {
        height: 14px;
    }
}

/* hotel page widget */
.sf-hotel-page-sections {
    width: 100%;
    max-width: calc(100% - 400px);
    min-width: 0;
}

.sf-hotel-has-config .sf-hotel-page-sections > .sf-page-section {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.sf-hotel-has-config .sf-page-section,
.sf-hotel-has-config .section-head {
    max-width: calc(100% - 400px);
}

.sf-expedition-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
    overflow: visible;
}

.sf-expedition-card h4 {
    font-weight: 700;
    color: #0b3a4a;
    margin-bottom: 18px;
}

.sf-hotel-config-toggle {
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0;
    margin: 0 0 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #0b3a4a;
    font-weight: 700;
    text-align: left;
}

.sf-hotel-config-toggle i {
    display: none;
    font-size: 16px;
    transition: transform .18s ease;
}

.sf-hotel-config-content {
    display: block;
}

.sf-config-actions {
    display: grid;
    gap: 10px;
}

.sf-config-btn {
    width: 100%;
    border: 1px solid #dce7ec;
    border-radius: 12px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    text-align: left;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.sf-config-btn.is-static {
    cursor: default;
    pointer-events: none;
}

.sf-config-btn:hover {
    background: #f8fdfd;
    border-color: #cfe0e6;
}

.sf-config-icon {
    width: 32px;
    height: 32px;
    border-radius: 12px;
    background: #f4f8f0;
    color: #0b3a4a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}

.sf-config-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sf-config-title {
    font-weight: 700;
    color: #0b3a4a;
}

.sf-config-sub {
    font-size: 12px;
    color: #6a7a82;
}

.sf-config-select-btn {
    cursor: default;
    position: relative;
}

.sf-config-select-btn .sf-config-text {
    min-width: 0;
    width: 100%;
}

.sf-config-select-btn .sf-config-sub {
    pointer-events: none;
}

.sf-config-select-shell {
    position: relative;
    display: block;
    width: 100%;
    min-height: 22px;
}

.sf-config-select-value {
    color: #0b3a4a;
    font-weight: 700;
    line-height: 1.2;
}

.sf-config-select {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.sf-config-length-trigger,
.sf-config-airport-trigger {
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    cursor: pointer;
}

.sf-config-length-menu,
.sf-config-airport-menu {
    position: absolute;
    left: 0;
    right: auto;
    top: calc(100% + 8px);
    z-index: 30;
    display: none;
    min-width: 220px;
    max-width: min(320px, calc(100vw - 48px));
    padding: 6px;
    border: 1px solid #dce7ec;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 12px 26px rgba(15, 40, 50, 0.14);
}

.sf-config-select-shell.is-open .sf-config-length-menu,
.sf-config-select-shell.is-open .sf-config-airport-menu {
    display: grid;
    gap: 4px;
}

.sf-config-select-btn:has(.sf-config-select-shell.is-open) {
    z-index: 40;
}

.sf-config-length-menu button,
.sf-config-airport-menu button {
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #0b3a4a;
    padding: 8px 10px;
    text-align: left;
    font-weight: 600;
}

.sf-config-airport-menu button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid transparent;
    line-height: 1.35;
}

.sf-config-length-menu button:hover,
.sf-config-airport-menu button:hover {
    background: #f4f8f0;
}

.sf-config-airport-menu button.is-active,
.sf-config-airport-menu button.is-any-active {
    border-color: #d7e8b5;
    background: #f4f8e8;
    color: #066168;
    box-shadow: 0 1px 3px rgba(9, 55, 69, 0.05);
}

.sf-config-airport-menu button.is-active::after,
.sf-config-airport-menu button.is-any-active::after {
    content: "\F26E";
    font-family: "bootstrap-icons";
    color: #8ed600;
    font-size: 14px;
    line-height: 1;
}

.sf-config-chevron {
    color: #7a8a92;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    line-height: 1;
}

.sf-config-btn.is-static .sf-config-chevron {
    display: none;
}

.sf-next-step-btn {
    padding: 8px 14px;
    border-radius: 12px;
    font-size: 12px;
    line-height: 1.2;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sf-next-step-btn:disabled {
    background: #d8e1e4;
    border-color: #d8e1e4;
    color: #7a8a92;
    cursor: not-allowed;
    opacity: 1;
    box-shadow: none;
}

.sf-length-toggle {
    display: flex;
    gap: 6px;
    padding: 4px;
    border-radius: 12px;
}

.sf-length-btn {
    flex: 1;
    border: 1px solid #dce7ec;
    background: #ffffff;
    border-radius: 12px;
    padding: 8px 12px;
    font-weight: 600;
    color: #0b3a4a;
}

.sf-length-btn.is-active {
    background: #f4f8e8;
    border-color: rgba(142, 214, 0, 0.4);
    color: #3c5c1b;
}

.sf-origin-radios {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.sf-flight-origin-chip {
    border: 1px solid #dce7ec;
    background: #ffffff;
    border-radius: 12px;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 110px;
    font-weight: 600;
    color: #0b3a4a;
}

.sf-flight-origin-chip.is-active {
    background: #f4f8e8;
    border-color: rgba(142, 214, 0, 0.4);
    color: #3c5c1b;
}

.sf-flight-origin-code {
    font-size: 11px;
    color: #6a7a82;
}

.sf-calendar-modal {
    position: fixed;
    inset: 0;
    background: rgba(9, 18, 22, 0.45);
    display: none;
    align-items: flex-start;
    justify-content: center;
    z-index: 10050;
    padding: 24px 20px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

html.sf-calendar-modal-open,
body.sf-calendar-modal-open {
    overflow: hidden;
    overscroll-behavior: none;
}

body.sf-calendar-modal-open {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
}

.sf-calendar-modal.is-open {
    display: flex;
}

.sf-calendar-modal-content {
    width: min(960px, 96vw);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    background: #ffffff;
    border-radius: 12px;
    padding: 24px 28px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
}

.sf-calendar-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.sf-calendar-modal-title {
    font-weight: 700;
    color: #0b3a4a;
    font-size: 20px;
}

.sf-calendar-legend {
    display: flex;
    justify-content: center;
    gap: 28px;
    margin: 2px 0 18px;
}

.sf-calendar-legend-item {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #0b3a4a;
}

.sf-calendar-legend-item + .sf-calendar-legend-item {
    padding-left: 28px;
    border-left: 1px solid #dce7ec;
}

.sf-calendar-legend-item strong,
.sf-calendar-legend-item small {
    display: block;
}

.sf-calendar-legend-item strong {
    font-size: 14px;
}

.sf-calendar-legend-item small {
    margin-top: 2px;
    color: #63767f;
    font-size: 12px;
}

.sf-calendar-legend-symbol {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
}

.sf-calendar-legend-symbol--repeatable {
    border-radius: 50%;
    background: #7ec400;
}

.sf-calendar-legend-symbol--special {
    width: 18px;
    height: 18px;
    background: #0b5dbb;
    transform: rotate(45deg) scale(.72);
}

.sf-calendar-legend-symbol--inquiry {
    border-radius: 5px;
    background: #d68125;
}

.sf-calendar-modal-close {
    border: none;
    background: transparent;
    font-size: 20px;
    color: #0b3a4a;
}

.sf-range-calendar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.sf-range-month {
    padding: 8px 0 0;
}

.sf-range-month-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 700;
    color: #0b3a4a;
    margin-bottom: 8px;
}

.sf-cal-nav {
    border: none;
    background: #0b3a4a;
    color: #fff;
    border-radius: 12px;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sf-cal-nav--mobile-next {
    visibility: hidden;
}

.sf-range-weekdays,
.sf-range-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
}

.sf-range-weekdays span {
    font-size: 11px;
    color: #8a99a0;
    text-align: center;
}

.sf-range-day {
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    border-radius: 12px;
    color: #738086;
    cursor: pointer;
    user-select: none;
    position: relative;
}

.sf-range-day.is-muted {
    color: #c7d0d4;
    cursor: default;
}

.sf-range-day.is-disabled {
    color: #c7d0d4;
    cursor: not-allowed;
}

.sf-range-day.is-start,
.sf-range-day.is-end {
    background: #0b5dbb;
    color: #ffffff;
    font-weight: 700;
}

.sf-range-day.is-in-range {
    background: #e1ebf7;
    color: #0b3a4a;
}

.sf-calendar-expedition-markers {
    position: absolute;
    bottom: 5px;
    left: 50%;
    display: inline-flex;
    gap: 3px;
    transform: translateX(-50%);
}

.sf-calendar-expedition-marker {
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.sf-calendar-expedition-marker--repeatable {
    background: #7ec400;
}

.sf-calendar-expedition-marker--special {
    background: #0b5dbb;
    border-radius: 0;
    transform: rotate(45deg) scale(.82);
}

.sf-calendar-expedition-marker--inquiry {
    background: #d68125;
    border-radius: 2px;
}

.sf-calendar-expedition-choices {
    margin-top: 22px;
}

.sf-calendar-expedition-choices > h3 {
    margin: 0 0 12px;
    color: #0b3a4a;
    font-size: 17px;
    font-weight: 700;
}

.sf-calendar-expedition-slider {
    position: relative;
}

.sf-calendar-expedition-slider-track {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.sf-calendar-expedition-slider-track::-webkit-scrollbar {
    display: none;
}

.sf-calendar-expedition-slider-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 10px;
}

.sf-calendar-expedition-slider-pagination[hidden] {
    display: none;
}

.sf-calendar-expedition-slider-dot {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #b9c7cf;
    cursor: pointer;
    transition: width .2s ease, background .2s ease;
}

.sf-calendar-expedition-slider-dot.is-active {
    width: 20px;
    background: #0b5dbb;
}

.sf-calendar-expedition-slider-dot:focus-visible {
    outline: 2px solid #0b5dbb;
    outline-offset: 2px;
}

.sf-calendar-expedition-slider--desktop.has-navigation {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    column-gap: 10px;
    align-items: center;
}

.sf-calendar-expedition-slider--desktop.has-navigation .sf-calendar-expedition-slider-viewport {
    grid-column: 2;
    min-width: 0;
}

.sf-calendar-expedition-slider--desktop.has-navigation .sf-calendar-expedition-slider-track {
    padding: 1px;
}

.sf-calendar-expedition-slider--desktop.has-navigation .sf-calendar-expedition-slider-pagination {
    grid-column: 1 / -1;
}

.sf-calendar-expedition-card {
    flex: 0 0 calc(50% - 8px);
    min-width: 0;
    padding: 11px 14px;
    border: 1px solid #7ec400;
    border-radius: 12px;
    background: #fff;
    color: #0b3a4a;
    scroll-snap-align: start;
    position: relative;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.sf-calendar-expedition-card[hidden],
.sf-calendar-expedition-mobile-group[hidden] {
    display: none !important;
}

.sf-calendar-expedition-card--special {
    border-color: #0b5dbb;
}

.sf-calendar-expedition-card--inquiry {
    border-color: #d68125;
}

.sf-calendar-expedition-card.is-date-match {
    background: #fbfff5;
}

.sf-calendar-expedition-card--special.is-date-match {
    background: #f6faff;
}

.sf-calendar-expedition-card--inquiry.is-date-match {
    background: #fff8ee;
}

.sf-calendar-expedition-card.is-selected {
    border-color: #75c000;
    box-shadow: 0 0 0 1px rgba(117, 192, 0, .35);
    background: #f6f9ef;
}

.sf-calendar-expedition-card--special.is-selected {
    border-color: #0b5dbb;
    box-shadow: 0 0 0 1px rgba(11, 93, 187, .32);
    background: #f1f6fb;
}

.sf-calendar-expedition-card--inquiry.is-selected {
    border-color: #c87319;
    box-shadow: 0 0 0 1px rgba(200, 115, 25, .3);
    background: #fff8ee;
}

.sf-calendar-expedition-card:hover {
    border-color: #b9c7cf;
    background: #f1f6fa;
}

.sf-calendar-expedition-card.is-selected:hover {
    background: #f6f9ef;
}

.sf-calendar-expedition-card--special.is-selected:hover {
    background: #f1f6fb;
}

.sf-calendar-expedition-card--inquiry.is-selected:hover {
    background: #fff8ee;
}

.sf-calendar-expedition-card:focus-visible {
    outline: 2px solid #0b5dbb;
    outline-offset: 2px;
}

.sf-calendar-expedition-radio {
    position: absolute;
    top: 11px;
    right: 12px;
}

.sf-calendar-expedition-card-badge {
    display: inline-block;
    margin-bottom: 3px;
    color: #65a900;
    font-size: 10px;
    font-weight: 800;
}

.sf-calendar-expedition-card--special .sf-calendar-expedition-card-badge {
    color: #0b5dbb;
}

.sf-calendar-expedition-card--inquiry .sf-calendar-expedition-card-badge,
.sf-calendar-expedition-card--inquiry .sf-calendar-expedition-card-action {
    color: #b76412;
}

.sf-calendar-expedition-card h4 {
    margin: 0 28px 3px 0;
    color: #0b3a4a;
    font-size: 16px;
}

.sf-calendar-expedition-card-date {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0 0 4px;
    color: #0b5dbb;
    font-size: 12px;
    font-weight: 700;
}

.sf-calendar-expedition-card p {
    min-height: 0;
    margin: 0 0 7px;
    color: #61747d;
    font-size: 13px;
    line-height: 1.35;
}

.sf-calendar-expedition-card-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #65a900;
    font-size: 13px;
    font-weight: 700;
}

.sf-calendar-expedition-card--special .sf-calendar-expedition-card-action {
    color: #0b5dbb;
}

.sf-calendar-modal .sf-next-step-btn {
    min-width: 104px;
    min-height: 40px;
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 700;
}

.sf-calendar-expedition-slider-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: #0b3a4a;
    color: #fff;
    font-size: 18px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
}

.sf-calendar-expedition-slider-nav.is-prev {
    left: 0;
}

.sf-calendar-expedition-slider-nav.is-next {
    right: 0;
}

.sf-calendar-expedition-slider--desktop.has-navigation .sf-calendar-expedition-slider-nav {
    position: static;
    transform: none;
}

.sf-calendar-expedition-mobile-groups {
    display: none;
}

.sf-calendar-expedition-empty {
    margin: 12px 0 0;
    color: #63767f;
    text-align: center;
}

.sf-popup {
    position: fixed;
    inset: 0;
    background: rgba(11, 58, 74, 0.35);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 2000;
}

body.sf-popup-open {
    overflow: hidden;
}

.sf-popup.is-open {
    display: flex;
}

.sf-popup-content {
    background: #fff;
    border-radius: 12px;
    padding: 16px;
    width: min(520px, 100%);
    max-height: 80vh;
    overflow: auto;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.2);
}

.sf-popup-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 700;
    color: #0b3a4a;
    margin-bottom: 12px;
}

.sf-popup-close {
    border: none;
    background: transparent;
    font-size: 20px;
    line-height: 1;
    color: #0b3a4a;
}

.sf-popup-footer {
    margin-top: 16px;
    text-align: right;
}

.sf-qty-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #e3eef2;
    border-radius: 12px;
    background: #f8fdfd;
    margin-bottom: 10px;
}

.sf-qty-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.sf-qty-grid .sf-qty-row {
    margin-bottom: 0;
}

.sf-qty-grid .sf-rooms-count-row {
    grid-column: 1 / -1;
}

.sf-qty-label {
    font-weight: 600;
    color: #0b3a4a;
    align-items: baseline;
    gap: 6px;
}

.sf-qty-sub {
    font-size: 12px;
    color: #6a7a82;
    font-weight: 500;
}

.sf-qty-controls {
    display: inline-flex;
    align-items: center;
    border: 1px solid #dce7ec;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    min-height: 32px;
}

.sf-qty-btn {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: #0b3a4a;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sf-qty-value {
    min-width: 34px;
    text-align: center;
    font-weight: 700;
    color: #0b3a4a;
    border-left: 1px solid #dce7ec;
    border-right: 1px solid #dce7ec;
    line-height: 32px;
}

@media (max-width: 991px) {
    .sf-calendar-modal {
        align-items: flex-start;
        padding: 4px 26px;
    }

    .sf-calendar-modal-content {
        width: calc(100vw - 52px);
        max-width: 520px;
        box-sizing: border-box;
        max-height: calc(100dvh - 8px);
        padding: 22px 20px 28px;
        border-radius: 12px;
    }

    .sf-calendar-modal-title {
        font-size: 22px;
    }

    .sf-calendar-legend {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 12px;
        width: 100%;
        margin: 18px 0 24px;
    }

    .sf-calendar-legend-item + .sf-calendar-legend-item {
        padding-left: 0;
        border-left: 0;
    }

    .sf-calendar-legend-item {
        min-width: 0;
        gap: 6px;
    }

    .sf-calendar-legend-symbol {
        width: 14px;
        height: 14px;
    }

    .sf-calendar-legend-symbol--special {
        width: 13px;
        height: 13px;
    }

    .sf-calendar-legend-item strong {
        font-size: clamp(8px, 2.5vw, 11px);
        white-space: nowrap;
    }

    .sf-calendar-legend-item small {
        font-size: clamp(7px, 2.1vw, 9px);
        white-space: nowrap;
    }

    .sf-cal-nav--mobile-next {
        visibility: visible;
    }

    .sf-range-calendar {
        grid-template-columns: 1fr;
    }

    .sf-range-month[data-month-offset="1"] {
        display: none;
    }

    .sf-range-day {
        height: 42px;
        font-size: 15px;
    }

    .sf-calendar-expedition-choices {
        margin-top: 26px;
    }

    .sf-calendar-expedition-choices > h3 {
        font-size: 18px;
    }

    .sf-calendar-expedition-slider--desktop {
        display: none;
    }

    .sf-calendar-expedition-mobile-groups {
        display: block;
    }

    .sf-calendar-expedition-mobile-group + .sf-calendar-expedition-mobile-group {
        margin-top: 18px;
    }

    .sf-calendar-expedition-mobile-group > h4 {
        margin: 0 0 8px;
        color: #0b3a4a;
        font-size: 14px;
    }

}

@media (min-width: 576px) and (max-width: 991px) {
    .sf-calendar-modal {
        align-items: flex-start;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .sf-calendar-modal-content {
        max-height: calc(100vh - 24px);
    }

    .sf-calendar-expedition-slider--desktop {
        display: block;
    }

    .sf-calendar-expedition-mobile-groups {
        display: none;
    }
}

@media (max-width: 575px) {
    .sf-calendar-expedition-slider--desktop.has-navigation {
        display: none;
    }

    .sf-calendar-expedition-mobile-group .sf-calendar-expedition-card {
        flex: 0 0 100%;
    }
}

@media (min-width: 576px) {
    .sf-range-month-head {
        font-size: 16px;
    }

    .sf-range-weekdays span {
        font-size: 12px;
    }

    .sf-range-day {
        height: 38px;
        font-size: 15px;
    }
}

@media (min-width: 576px) and (max-width: 991px) {
    .sf-range-day {
        height: 42px;
        font-size: 16px;
    }
}

@media (max-width: 991px) {
    .sf-configurator-grid {
        grid-template-columns: 1fr;
    }

    .sf-qty-grid {
        grid-template-columns: 1fr;
    }
}

.sf-hotel-config {
    float: right;
    width: 360px;
    margin: 24px 0 24px 24px;
    position: sticky;
    top: 120px;
    padding-top: 30px;
}

.sf-config-card.sticky-top {
    z-index: 980;
    top: 140px;
    transform: translateY(-25px);
}

.sf-hotel-config .sf-expedition-card {
    position: sticky;
}

.sf-hotel-config-bar {
    display: none;
    background: #ffffff;
    border-radius: 12px;
    padding: 12px 16px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
    margin: 12px 0 20px;
    position: sticky;
    top: 90px;
    z-index: 5;
}

div#flight-pairs-pagination {
    width: max-content;
    margin-left: auto;
    margin-right: auto;
}

.sf-hotel-config-bar-title {
    font-weight: 700;
    color: #0b3a4a;
    margin-bottom: 4px;
}

.sf-hotel-config-bar-details {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    font-size: 12px;
    color: #6a7a82;
    margin-bottom: 10px;
}

.sf-hotel-config-bar-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.sf-insurance-bar {
    border: 1px solid #e3edf5;
    border-radius: 12px;
    padding: 12px 16px;
    background: #ffffff;
    box-shadow: 0 8px 24px rgba(12, 35, 64, 0.06);
}

.sf-insurance-title {
    font-weight: 600;
    color: #123a52;
}

.sf-mandatory-insurance-info {
    display: grid;
    gap: 8px;
}

.sf-mandatory-insurance-info__item {
    padding: 10px 12px;
    border: 1px solid #e3edf5;
    border-radius: 10px;
    background: #f8fdfd;
}

.sf-mandatory-insurance-info__name {
    color: #123a52;
    font-weight: 600;
}

.sf-mandatory-insurance-info__detail {
    margin-top: 2px;
    color: #5a6f7a;
    font-size: 14px;
    line-height: 1.35;
}

@media (max-width: 991px) {

    .sf-hotel-page-sections {
        max-width: 100%;
    }

    .sf-hotel-has-config .sf-page-section,
    .sf-hotel-has-config .section-head {
        max-width: 100%;
    }

    .sf-hotel-config {
        display: block;
        float: none;
        width: 100%;
        margin: 20px 0;
        padding-top: 0;
        position: relative;
        top: auto;
        z-index: 60;
    }

    .sf-hotel-config .sf-expedition-card {
        position: relative;
        z-index: 60;
    }

    .sf-hotel-config-toggle {
        margin-bottom: 0;
        min-height: 34px;
        cursor: pointer;
    }

    .sf-hotel-config-toggle i {
        display: inline-flex;
    }

    .sf-hotel-config .sf-expedition-card.is-open .sf-hotel-config-toggle {
        margin-bottom: 18px;
    }

    .sf-hotel-config .sf-expedition-card.is-open .sf-hotel-config-toggle i {
        transform: rotate(180deg);
    }

    .sf-hotel-config-content {
        display: block;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        transform: translateY(-6px);
        transition: max-height .28s ease, opacity .2s ease, transform .28s ease;
    }

    .sf-hotel-config .sf-expedition-card.is-open .sf-hotel-config-content {
        max-height: 900px;
        opacity: 1;
        overflow: visible;
        transform: translateY(0);
        position: relative;
        z-index: 70;
    }

    .sf-config-select-btn .sf-config-text {
        width: 100%;
        min-width: 0;
    }

    .sf-hotel-config-bar {
        display: none;
    }
}

/* Flight tiles */
.sf-flight-tile-header {
    display: flex;
}

.sf-flight-tile-code {
    font-size: 32px;
    align-items: flex-start;
    color: #0b3a4a;
}

.sf-flight-tile-datetime,
.sf-flight-tile-time {
    margin-right: 0px;
    margin-left: auto;
    color: #0b3a4a !important;
}

/* Flight tile typography tweaks */
.sf-flight-tile-name {
    color: #4a6a74;
    font-weight: normal;
    font-size: 12px;
}

.sf-res-subtle {
    color: #4a6a74;
    font-size: 14px;
}

.sf-flight-tile-city {
    color: #4a6a74;
    font-weight: normal;
    font-size: 12px;
}

.sf-flight-tile-col {
    font-weight: 600;
}

.sf-flight-tile-duration {
    color: #4a6a74;
    font-size: 12px;
    text-transform: uppercase;
}

.sf-flight-tile-connection {
    color: #4a6a74;
    font-size: 10px;
    text-transform: uppercase;

}

/* mobile drawer menu */
@media (min-width: 992px) {
    .sf-mobile-drawer-header {
        display: none;
    }

    .sf-mobile-nav-icon {
        display: none;
    }

    .sf-mobile-cta {
        display: none;
    }
}

@media (max-width: 991px) {
    .sf-hero-header .header-nav.navbar-collapse {
        position: fixed;
        top: 0;
        left: 0;
        height: 100vh;
        width: min(82vw, 320px);
        background: #ffffff;
        box-shadow: 0 14px 40px rgba(15, 40, 50, 0.2);
        transform: translateX(-105%);
        transition: transform 0.35s ease;
        padding: 0 0 24px;
        z-index: 9999;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        overflow-y: auto;
    }

    .sf-hero-header.mobile-sider-drawer-menu.active .header-nav.navbar-collapse {
        transform: translateX(0);
    }

    .header-style-1.mobile-sider-drawer-menu.active .header-nav {
        left: 0;
    }

    .header-style-1 .header-nav .nav li i {
        font-size: 20px;
        margin-left: 0;
        margin-top: 0;
    }

    .sf-mobile-drawer-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 16px 18px 12px;
        margin: 0 0 10px;
        border-bottom: 1px solid #e7eef2;
    }

    .sf-mobile-logo img {
        height: 36px;
        width: auto;
        display: block;
    }

    .sf-hero-header .nav.navbar-nav {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 0;
        width: 100%;
    }

    .sf-hero-header .nav>li {
        padding: 0;
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        border-bottom: 1px solid #eef2f4;
    }

    .sf-hero-header .nav>li>a {
        padding: 12px 18px;
        display: flex;
        align-items: center;
        gap: 12px;
        width: 100%;
        font-weight: 600;
        color: #1f2f36 !important;
    }

    .sf-hero-header .nav>li.has-child>a {
        width: calc(100% - 28px);
    }

    .sf-mobile-nav-icon {
        display: inline-flex;
        width: 35px;
        height: 35px;
        border-radius: 12px;
        align-items: center;
        justify-content: center;
        background: #f0f6f8;
        color: #1f2f36;
        font-size: 14px;
        flex: 0 0 auto;
        margin-right: 8px;
    }

    .sf-hero-header .sub-menu {
        position: static;
        width: 100%;
        box-shadow: none;
        background: transparent;
        padding: 0 18px 8px 52px;
        display: none;
    }

    .sf-hero-header .nav>li.nav-active>.sub-menu {
        display: block;
    }

    .sf-hero-header .sub-menu li a {
        padding: 8px 0;
        font-size: 14px;
        color: #5a6d74;
    }

    .sf-hero-header .submenu-toogle {
        margin-left: auto;
        margin-right: 18px;
        width: 22px;
        height: 22px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #1f2f36;
        font-size: 14px;
    }

    .sf-hero-header .nav>li.nav-active>.submenu-toogle {
        transform: rotate(90deg);
    }

    .sf-mobile-cta {
        display: block;
        margin: 16px 18px 0;
    }

    .sf-mobile-cta .site-button {
        width: 100%;
        justify-content: center;
    }
}

.sf-repeatable-search-section .sf-repeatable-length-group {
    flex: 0 0 80px !important;
    min-width: 80px !important;
    padding-right: 100px !important;
}

.sf-repeatable-field.sf-repeatable-origin-group {
    flex: 0 0 130px !important;
    min-width: 130px !important;
}

.sf-repeatable-search-section .sf-repeatable-length-group .dropdown.bootstrap-select.form-select {
    width: unset !important;
}

.sf-repeatable-search-section .sf-repeatable-origin-group .bootstrap-select>.dropdown-toggle,
.sf-repeatable-search-section .sf-repeatable-length-group .bootstrap-select>.dropdown-toggle {
    border: none;
    padding: 4px;
    height: 28px;
}

.sf-repeatable-search-section .sf-repeatable-length-group .bootstrap-select>.dropdown-toggle {
    min-width: 69px;
}

.sf-repeatable-search-section .sf-repeatable-origin-group .bootstrap-select>.dropdown-toggle::after,
.sf-repeatable-search-section .sf-repeatable-length-group .bootstrap-select>.dropdown-toggle::after {
    margin-top: -5px;
}

@media (max-width: 1366px) {
    .sf-banner-1-wrap .sf-banner-1-text {
        padding-top: 0;
    }

    .sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-label {
        display: contents;
    }

    .sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-controls {
        margin: auto;
    }
}

@media (max-width: 1200px) {
    .sf-repeatable-search-section .sf-repeatable-search-card {
        margin: auto;
        max-width: 450px;
    }

    .sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-controls {
        margin: unset;
    }

    .sf-repeatable-search-section .sf-repeatable-search-card .sf-repeatable-qty-row .sf-qty-label {
        display: block;
    }
}



@media (max-width: 640px) {
    .sf-repeatable-search-section .sf-repeatable-search-card {
        transform: translateY(-50%);

    }
}

.sf-repeatable-search-section--top {
    position: fixed;
    top: 20px;
    left: 0;
    right: 0;
    z-index: 998;
    padding: 0 22px;
    background: transparent;
    transition: top 0.22s ease-out;
}

.sf-repeatable-search-section--top.sf-repeatable-search-section--below-header {
    top: 128px;
}

.sf-repeatable-search-section--top.is-at-page-top {
    top: 60px;
}

.sf-repeatable-search-section--top.sf-repeatable-search-section--below-header.is-at-page-top {
    top: 168px;
}

.sf-repeatable-search-section--top .sf-repeatable-search-card {
    transform: none;
    max-width: 1790px;
    margin: 0 auto;
    border-radius: 12px;
    box-shadow: 0 18px 40px rgba(15, 40, 50, 0.12);
    border: 1px solid rgba(15, 40, 50, 0.08);
}

.sf-repeatable-search-section--top-mobile-default {
    display: none;
}

@media (max-width: 1200px) {
    .sf-repeatable-search-section--desktop-top {
        display: none;
    }

    .sf-repeatable-search-section--top-mobile-default {
        display: block;
    }

    .sf-repeatable-search-section--top {
        top: 20px;
    }

    .sf-repeatable-search-section--top.sf-repeatable-search-section--below-header {
        top: 116px;
    }

    .sf-repeatable-search-section--top.is-at-page-top {
        top: 60px;
    }

    .sf-repeatable-search-section--top.sf-repeatable-search-section--below-header.is-at-page-top {
        top: 156px;
    }

    .sf-repeatable-search-section--top .sf-repeatable-search-card {
        max-width: 450px;
        transform: none;
    }
}

@media (max-width: 640px) {
    .sf-repeatable-search-section--top {
        top: 20px;
        padding: 0 14px;
    }

    .sf-repeatable-search-section--top.sf-repeatable-search-section--below-header {
        top: 104px;
    }

    .sf-repeatable-search-section--top.is-at-page-top {
        top: 60px;
    }

    .sf-repeatable-search-section--top.sf-repeatable-search-section--below-header.is-at-page-top {
        top: 144px;
    }

    .sf-repeatable-search-section--top .sf-repeatable-search-card {
        transform: none;
    }
}

/* to uporządkować jeszcze */
.sf-checkout-group {
    background: #f8fdfd;
    border: 1px solid #e3eef2;
    border-radius: 12px;
    padding: 15px;
    margin-bottom: 0px;
}

#summary-route {
    font-size: 24px
}

.sf-summary-line.text-muted {
    font-weight: 600;
}

.sf-hero-header .main-bar {
    margin: 0px auto 0;
}

.sf-expedition-section.sf-hotel-panel {
    padding: 12px;
}

.sf-hotel-list-item .form-check-input {
    left: 10px;
    top: 10px;
}

.sf-hotel-list-item {
    padding: 6px 10px 6px 44px;
}

.sf-hotel-list-title {
    font-size: 16px;
}

.sf-hotel-list-content {
    width: 100%;
}

.sf-hotel-choice-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.sf-hotel-list-action {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 auto;
}

.sf-hotel-pick-btn {
    border: 0;
    background: #7ec400;
    color: #0b3a4a;
    padding: 8px 16px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 13px;
    white-space: nowrap;
}

.sf-hotel-pick-btn:hover {
    filter: brightness(0.96);
}

.sf-hotel-detail-title {
    font-size: 20px;
}

.sf-hotel-detail-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: nowrap;
}

.sf-hotel-detail-thumb {
    width: 180px;
    height: 120px;
    border-radius: 12px;
    overflow: hidden;
    flex: 0 0 auto;
}

.sf-hotel-price-label {
    text-align: end;
}

.sf-room-right {
    min-width: 100px;
}

.sf-trip-search {
    position: relative;
}

.sf-trip-search .form-control {
    border-radius: 12px;
}

.sf-trip-search i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #7a8a95;
}

.sf-trip-filter-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.sf-trip-card {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 12px;
    background: #fff;
    margin-bottom: 12px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: start;
}

.sf-trip-card.is-hidden,
.sf-hotel-card.is-hidden {
    display: none;
}

.sf-trip-list-content {
    width: 100%;
}

.sf-trip-list-title {
    font-weight: 700;
    color: #0b3a4a;
    font-size: 14px;
}

.sf-trip-list-city {
    font-size: 12px;
    color: #6a7a82;
}

.sf-trip-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 6px;
}

.sf-trip-tag {
    margin: 0;
}

.sf-trip-list-date {
    font-size: 12px;
    margin-top: 6px;
}

.sf-trip-list-price {
    margin-top: 6px;
}

.sf-trip-price-label {
    font-weight: 700;
    color: #0b3a4a;
    font-size: 12px;
}

.sf-trip-detail-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.sf-trip-detail-title {
    font-weight: 700;
    color: #0b3a4a;
    font-size: 18px;
}

.sf-trip-detail-city {
    color: #6a7a82;
    font-size: 13px;
    margin-top: 2px;
}

.sf-trip-detail-dates {
    color: #6a7a82;
    font-size: 12px;
    margin-top: 4px;
}

.sf-trip-detail-price {
    margin-top: 8px;
    font-weight: 700;
    color: #0b3a4a;
    font-size: 13px;
}

.sf-trip-detail-thumb {
    width: 180px;
    height: 120px;
    border-radius: 12px;
    overflow: hidden;
    flex: 0 0 auto;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.sf-trip-detail-thumb--page {
    position: relative;
    padding: 0;
    border: 0;
    background: #0b3a4a;
    cursor: pointer;
}

.sf-trip-detail-thumb--page:focus-visible {
    outline: 2px solid #0b5dbb;
    outline-offset: 3px;
}

.sf-hotel-thumb-btn__view {
    z-index: 3;
    pointer-events: none;
}

.sf-room-photo__gallery-label {
    left: 5px;
    bottom: 5px;
    min-height: 22px;
    max-width: calc(100% - 10px);
    padding: 4px 6px;
    font-size: 9px;
    pointer-events: none;
}

.sf-trip-detail-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 991px) {
    .sf-trip-filter-row {
        grid-template-columns: 1fr;
    }

    .sf-trip-detail-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .sf-trip-detail-thumb {
        width: 100%;
        height: 180px;
    }
}

@media (max-width: 991px) {
    .sf-hotel-detail-head {
        flex-direction: column;
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .sf-hotel-detail-thumb {
        width: 100%;
        height: 180px;
    }
}

.bootstrap-select>.dropdown-toggle.sf-hotel-select::after {
    display: none;
}

.bootstrap-select>.dropdown-toggle.sf-hotel-select:focus,
.bootstrap-select>.dropdown-toggle.sf-hotel-select:active {
    box-shadow: none;
    outline: none;
}

.sf-hotel-detail-thumb {
    width: 50%;
    height: 140px;
    margin-bottom: 10px
}

.sf-hotel-detail-title {
    font-size: 20px;
    font-weight: 700;
}

.sf-hotel-detail-cta {
    position: absolute;
    transform: translateY(-120%);
    font-size: 16px;
    font-weight: 600;
}

.sf-hotel-price-label {
    font-size: 12px;
}

.sf-hotel-filter-row {
    display: flex;
}

.sf-hotel-filter-row .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) {
    width: 50%;
}

.sf-rooms-count-row {
    display: flex;
}

.sf-room-count-inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    margin: 0 0 10px;
    border: 1px solid #dfeaf0;
    border-radius: 12px;
    background: #f8fcfd;
}

.sf-room-count-inline__label {
    font-weight: 600;
    color: #0b3a4a;
}

.filter-option-inner-inner {
    font-size: 13px;
    color: var(--bs-body-color);
    font-weight: 400;
}

.sf-expedition-section.sf-hotel-panel {
    padding: 0;
}

.sf-expedition-section.sf-hotel-panel {
    background: #f8fdfd;
    border: 1px solid #e3eef2;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 16px;
}

.bootstrap-select>.dropdown-toggle.sf-hotel-select {
    background: #fff;
    border-radius: 12px;
    color: #0b3a4a;
    padding: 8px 12px;
    margin: 10px 0;
    box-shadow: none;
    background-image: none !important;
}

.sf-hotel-search>input.form-control {
    border-radius: 12px;
}

.sf-hotel-search,
.sf-trip-search {
    border-width: 1px;
    border-style: solid;
    border-color: rgb(219, 232, 239);
    border-radius: 12px;
    position: relative;
    padding-left: 36px
}

.sf-hotel-search .bi-search {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #7a8a95;
}

.sf-expedition-section.sf-trip-panel {
    background: #f8fdfd;
    border: 1px solid #e3eef2;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 16px;
}

span.sf-hotel-tag {
    margin: 0;
}

/* Summary (podsumowanie rezerwacji) */
.sf-summary-reservation {
    background: #f5fbfb;
    padding: 140px 0 80px;
}

.sf-summary-hero {
    margin-bottom: 24px;
}

.sf-summary-hero__title {
    font-size: 22px;
    font-weight: 700;
    color: #0b3a4a;
    display: flex;
    align-items: center;
    gap: 10px;
}

.sf-summary-hero__flag {
    font-size: 22px;
}

.sf-summary-hero__subtitle {
    color: #6b7f86;
    margin-top: 4px;
}

.sf-summary-card {
    background: #fff;
    border-radius: 12px;
    padding: 22px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.sf-summary-main {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sf-summary-section {
    border: 1px solid #e4edf1;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.sf-summary-accordion {
    border-radius: 12px;
}

.sf-summary-accordion__head {
    list-style: none;
    cursor: pointer;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 600;
    color: #0b3a4a;
    background: #f8fbfc;
    border-bottom: 1px solid #e4edf1;
}

.sf-summary-accordion__head i {
    color: #6b7f86;
    transition: transform 0.2s ease;
}

.sf-summary-accordion[open] .sf-summary-accordion__head i {
    transform: rotate(180deg);
}

.sf-summary-accordion__head::-webkit-details-marker {
    display: none;
}

.sf-summary-accordion__body {
    padding: 16px;
    background: #fff;
}

.sf-summary-trip__title {
    font-weight: 700;
    color: #0b3a4a;
}

.sf-summary-trip__meta,
.sf-summary-trip__people,
.sf-summary-list__meta {
    color: #6b7f86;
    font-size: 14px;
}

.sf-summary-trip__people {
    margin-top: 6px;
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.sf-summary-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sf-summary-list__title {
    font-weight: 600;
    color: #0b3a4a;
}

.sf-summary-transport+.sf-summary-transport {
    margin-top: 12px;
}

.sf-summary-aside {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sf-summary-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px;
    background: #f5f9fb;
    border-radius: 12px;
}

.sf-summary-total__label {
    font-weight: 600;
    color: #0b3a4a;
}

.sf-summary-total__meta {
    font-size: 12px;
    color: #6b7f86;
}

.sf-summary-total__value {
    font-size: 22px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-summary-note {
    font-size: 12px;
    color: #6b7f86;
}

.sf-summary-link {
    color: #0b3a4a;
    text-decoration: underline;
}

.sf-summary-actions .site-button {
    padding: 10px 16px;
    border-radius: 12px;
    font-size: 13px;
    min-height: 38px;
}

.sf-summary-debug {
    margin-top: 12px;
    background: #f1f5f9;
    border-radius: 12px;
    padding: 12px;
    font-size: 12px;
    color: #475569;
}

@media (max-width: 991px) {
    .sf-summary-reservation {
        padding: 120px 0 60px;
    }

    .sf-summary-card {
        padding: 18px;
    }
}

.sf-auth-page {
    background: radial-gradient(circle at 15% 10%, #f4f8ff 0%, #f8fbff 38%, #eef5f0 100%);
    min-height: 100vh;
    padding: 120px 24px 80px;
    margin-top: 100px;
}

.sf-auth-body {
    margin: 0;
    font-family: "Afacad", sans-serif;
    background: #f5f8fb;
    color: #0b3a4a;
}

.sf-auth-body .site-header {
    background: #ffffff;
}

.sf-auth-body .site-header .nav>li>a,
.sf-auth-body .site-header .sf-menu-cta a,
.sf-auth-body .site-header .sf-mobile-nav-label,
.sf-auth-body .site-header .nav>li>a:visited {
    color: #0b3a4a !important;
}

.sf-auth-body .site-header .nav>li>a:hover,
.sf-auth-body .site-header .nav>li.active>a {
    color: #6aa70b !important;
}

.sf-auth-body .site-header .header-nav .nav>li>a,
.sf-auth-body .site-header .header-nav .nav>li>a span,
.sf-auth-body .site-header .header-nav .nav>li>a i,
.sf-auth-body .site-header .header-nav .nav>li>a .sf-mobile-nav-label {
    color: #0b3a4a !important;
}

.sf-auth-body .site-header .header-nav .nav>li>a:hover,
.sf-auth-body .site-header .header-nav .nav>li.active>a {
    color: #6aa70b !important;
}

.sf-auth-body .site-header.header-style-1 .header-nav .nav>li>a,
.sf-auth-body .site-header.header-style-1 .header-nav .nav>li>a span,
.sf-auth-body .site-header.header-style-1 .header-nav .nav>li>a i {
    color: #0b3a4a !important;
}

.sf-auth-body .site-header.header-style-1 .header-nav .nav>li>a:hover,
.sf-auth-body .site-header.header-style-1 .header-nav .nav>li.active>a {
    color: #6aa70b !important;
}

.sf-auth-body .site-header .sf-mobile-nav-label {
    visibility: visible !important;
    opacity: 1 !important;
}

@media (max-width: 991px) {
    .sf-auth-body .site-header .header-nav {
        background: #ffffff;
        box-shadow: 0 20px 40px rgba(12, 43, 75, 0.12);
        border-radius: 12px;
        padding-bottom: 16px;
    }

    .sf-auth-body .site-header .sf-mobile-cta {
        padding: 0 16px 18px;
    }

    .sf-auth-body .site-header .sf-mobile-cta .site-button {
        width: 100%;
        justify-content: center;
    }

    .sf-auth-body .site-header .sf-mobile-drawer-header,
    .sf-auth-body .site-header .sf-mobile-logo {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .sf-auth-body .site-header .sf-mobile-logo img {
        max-height: 46px;
    }

    .sf-auth-body .site-header .nav.navbar-nav>li>a {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 12px 18px;
        color: #0b3a4a !important;
    }

    .sf-auth-body .site-header .sf-mobile-nav-icon {
        display: inline-flex;
        width: 34px;
        height: 34px;
        border-radius: 12px;
        align-items: center;
        justify-content: center;
        background: #f1f5f9;
        color: #0b3a4a;
        font-size: 16px;
    }

    .sf-auth-body .site-header .sf-mobile-nav-label {
        visibility: visible !important;
        opacity: 1 !important;
    }

    .sf-auth-body .site-header .header-nav.navbar-collapse {
        position: fixed;
        top: 0;
        left: 0;
        height: 100vh;
        width: min(82vw, 320px);
        background: #ffffff !important;
        box-shadow: 0 14px 40px rgba(15, 40, 50, 0.2);
        transform: translateX(-105%);
        transition: transform 0.35s ease;
        padding: 0 0 24px;
        z-index: 9999;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        overflow-y: auto;
    }

    .sf-auth-body .site-header.mobile-sider-drawer-menu.active .header-nav.navbar-collapse {
        transform: translateX(0);
    }

    .sf-auth-body .sf-hero-header .header-nav.navbar-collapse,
    .sf-auth-body .site-header .header-nav.navbar-collapse {
        background: #ffffff !important;
        box-shadow: 0 14px 40px rgba(15, 40, 50, 0.2);
    }

    .sf-auth-body .sf-mobile-drawer-header,
    .sf-auth-body .sf-mobile-nav-icon,
    .sf-auth-body .sf-mobile-cta {
        display: flex !important;
    }

    .sf-auth-body .sf-mobile-cta {
        display: block !important;
    }

    .sf-auth-body .sf-mobile-drawer-header,
    .sf-auth-body .sf-mobile-nav-icon,
    .sf-auth-body .sf-mobile-cta,
    .sf-auth-body .sf-mobile-logo,
    .sf-auth-body .sf-mobile-logo img {
        visibility: visible !important;
        opacity: 1 !important;
    }

    .sf-auth-body .site-header .header-nav.navbar-collapse {
        visibility: visible !important;
    }

    .sf-auth-body .site-header .header-nav,
    .sf-auth-body .site-header .header-nav.navbar-collapse {
        visibility: visible !important;
    }

    .sf-auth-body .site-header .nav-animation.header-nav.navbar-collapse,
    .sf-auth-body .site-header .header-nav.navbar-collapse {
        width: 100% !important;
        flex: 1 1 auto !important;
    }

    .sf-auth-body .site-header .nav-animation.header-nav {
        display: flex !important;
        flex: 1 1 auto !important;
        min-width: 1px !important;
        visibility: visible !important;
    }

    .sf-auth-body .site-header .header-nav.collapse,
    .sf-auth-body .site-header .header-nav.navbar-collapse.collapse {
        visibility: visible !important;
    }

    .sf-auth-body .site-header .collapse,
    .sf-auth-body .site-header .collapse:not(.show) {
        visibility: visible !important;
    }

    @media (min-width: 992px) {

        .sf-auth-body .site-header .header-nav.navbar-collapse,
        .sf-auth-body .site-header .header-nav.navbar-collapse.collapse {
            display: flex !important;
            visibility: visible !important;
            width: 100% !important;
            flex: 1 1 auto !important;
        }

        .sf-auth-body .site-header .header-nav .nav.navbar-nav {
            width: auto !important;
            min-width: 0 !important;
            visibility: visible !important;
        }
    }

    .sf-auth-body .site-header .nav.navbar-nav {
        visibility: visible !important;
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        justify-content: center !important;
    }

    .sf-auth-body .sf-mobile-drawer-header {
        display: flex !important;
    }

    @media (min-width: 992px) {
        .sf-auth-body .site-header .header-nav {
            justify-content: center !important;
        }

        .sf-auth-body .site-header .header-nav.justify-content-end {
            justify-content: center !important;
        }

        .sf-auth-body .site-header .header-nav.navbar-collapse.collapse,
        .sf-auth-body .site-header .header-nav.navbar-collapse {
            display: flex !important;
            visibility: visible !important;
            width: auto !important;
            min-width: 0 !important;
        }

        .sf-auth-body .site-header .nav.navbar-nav {
            display: flex !important;
            visibility: visible !important;
            width: auto !important;
            min-width: 0 !important;
            margin-left: auto !important;
            margin-right: auto !important;
        }
    }

    .sf-auth-body .sf-mobile-nav-icon {
        display: inline-flex !important;
    }
}

.sf-auth-body .site-header.header-style-1.is-fixed,
.sf-auth-body .site-header.header-style-1.site-header {
    box-shadow: 0 10px 30px rgba(12, 43, 75, 0.08);
}

.sf-auth-body .sf-menu-cta {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.sf-auth-body .sf-menu-cta .site-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

.sf-auth-body .site-header .header-nav .nav.navbar-nav {
    visibility: visible !important;
}

@media (max-width: 991px) {
    .sf-auth-body .site-header .header-nav .nav.navbar-nav {
        width: 100%;
        min-width: 100%;
        flex: 1 1 auto;
    }
}

@media (min-width: 992px) {
    .sf-auth-body .site-header .header-nav .nav.navbar-nav {
        width: auto;
        min-width: 0;
        flex: 0 1 auto;
    }

    .sf-hotel-list-content a.sf-hotel-view-btn {
        display: none;
    }
}

.sf-auth-logo {
    display: flex;
    justify-content: center;
    padding: 28px 16px 0;
}

.sf-auth-logo-mark {
    width: 96px;
    height: 96px;
    fill: #0b3a4a;
}

.sf-auth-shell {
    max-width: 1100px;
    margin: 0 auto;
}

.sf-auth-shell--narrow {
    max-width: 920px;
}

.sf-auth-page--single {
    padding-top: 150px;
}


.sf-auth-grid-layout {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}

.sf-auth-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 28px;
    box-shadow: 0 24px 60px rgba(12, 43, 75, 0.08);
    border: 1px solid rgba(12, 43, 75, 0.06);
}

.sf-auth-card--info {
    background: #f8fbff;
    border-color: rgba(12, 43, 75, 0.08);
}

.sf-auth-header {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-bottom: 22px;
}

.sf-auth-header h1,
.sf-auth-header h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-auth-header p {
    margin: 4px 0 0;
    color: #5f7b86;
    font-size: 13px;
}

.sf-auth-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #edf3ff;
    color: #2563eb;
    font-size: 20px;
}

.sf-auth-icon--accent {
    background: #e9f7e9;
    color: #6aa70b;
}

.sf-auth-field {
    margin-bottom: 16px;
}

.sf-auth-input {
    width: 100%;
    border-radius: 12px;
    border: 1px solid #d9e4f0;
    padding: 10px 14px;
    font-size: 14px;
    color: #0b3a4a;
    background: #f9fbff;
}

.sf-auth-input:focus {
    border-color: #6aa70b;
    box-shadow: 0 0 0 3px rgba(122, 196, 0, 0.15);
    outline: none;
}

.sf-auth-password-help {
    margin: 7px 0 0;
    color: #5f7b86;
    font-size: 12px;
    line-height: 1.45;
}

.sf-auth-error {
    margin-top: 6px;
}

.sf-auth-page .sf-auth-error {
    margin-bottom: 0;
    padding-left: 0;
    list-style: none;
    color: #b42318;
    font-size: 13px;
    line-height: 1.45;
}

.sf-auth-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 10px 0 20px;
    gap: 12px;
}

.sf-auth-remember {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #58717a;
}

.sf-auth-remember input {
    accent-color: #6aa70b;
}

.sf-auth-link {
    font-size: 13px;
    color: #2563eb;
    text-decoration: none;
}

.sf-auth-link:hover {
    text-decoration: underline;
}

.sf-auth-actions {
    display: flex;
    justify-content: flex-end;
}

.sf-auth-actions--split {
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.sf-auth-submit {
    background: linear-gradient(135deg, #2f7df4, #2a6de0);
    color: #fff;
    border: none;
    padding: 10px 18px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 14px;
    min-width: 140px;
    cursor: pointer;
    box-shadow: 0 12px 25px rgba(47, 125, 244, 0.2);
}

.sf-auth-submit:hover {
    background: linear-gradient(135deg, #2a74e0, #255fcd);
}

.sf-auth-footer {
    border-top: 1px solid #e4edf6;
    margin-top: 22px;
    padding-top: 14px;
    font-size: 13px;
    color: #58717a;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sf-auth-consent {
    margin-top: 8px;
}

.sf-auth-checkbox {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 12px;
    color: #55717b;
    line-height: 1.4;
}

.sf-auth-checkbox input {
    margin-top: 2px;
    accent-color: #6aa70b;
}

.sf-auth-checkbox a {
    color: #2563eb;
    text-decoration: none;
}

.sf-auth-checkbox a:hover {
    text-decoration: underline;
}

.sf-auth-link-cta {
    color: #2563eb;
    font-weight: 600;
    text-decoration: none;
}

.sf-auth-benefits {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
    color: #1f3942;
    font-size: 14px;
}

.sf-auth-benefits li {
    display: flex;
    align-items: center;
    gap: 10px;
}

.sf-auth-benefits i {
    color: #6aa70b;
    font-size: 16px;
}

.sf-auth-alert {
    margin-bottom: 16px;
}

@media (max-width: 768px) {
    .sf-auth-page {
        padding-top: 90px;
    }

    .sf-auth-page--single {
        padding-top: 120px;
    }


    .sf-auth-actions,
    .sf-auth-actions--split {
        flex-direction: column;
        align-items: stretch;
    }

    .sf-auth-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}

/* Auth pages: force centered desktop menu to match homepage */
@media (min-width: 992px) {

    .sf-auth-body .site-header .nav-animation.header-nav,
    .sf-auth-body .site-header .header-nav.navbar-collapse {
        flex: 1 1 auto !important;
        width: 100% !important;
        justify-content: center !important;
    }

    .sf-auth-body .site-header .header-nav .nav.navbar-nav {
        display: flex !important;
        justify-content: center !important;
        width: auto !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media (max-width: 991px) {
    .sf-auth-body .sf-menu-cta {
        display: none !important;
    }

    .sf-auth-body .header-style-1.mobile-sider-drawer-menu .header-nav.navbar-collapse {
        width: 250px !important;
        max-width: 250px !important;
    }
}


input.form-control {
    width: 100%;
    border-radius: 12px;
    border: 1px solid #d9e4f0;
    padding: 10px 14px;
    font-size: 14px;
    color: #0b3a4a;
    background: #f9fbff !important;
}

input.form-control:focus {
    border-color: #6aa70b;
    box-shadow: unset;
}

.form-guest-pin {
    border-color: #6aa70b !important;
}


.sf-confirmation-card,
.sf-details-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}


.sf-reservation-header {
    background: #f7fafb;
    border-radius: 12px;
    padding: 20px 22px;
    border: 1px solid #eef3f4;
}

.sf-confirmation-title {
    font-weight: 700;
    color: #0b3a4a;
    margin: 0;
}

/* Checkout: krok ubezpieczeń */
.sf-insurance-wrap {
    background: #f5fbfb;
    padding: 160px 0 80px;
}

.sf-insurance-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.sf-insurance-chip {
    background: #e7f6ff;
    color: #0b3a4a;
    border-radius: 12px;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 600;
}

.sf-insurance-plan-tabs {
    display: none;
    gap: 8px;
    margin-bottom: 14px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.sf-insurance-plan-tab {
    flex: 0 0 auto;
    border: 1px solid #d7e6eb;
    background: #fff;
    color: #0b3a4a;
    border-radius: 12px;
    padding: 8px 12px;
    font-size: 14px;
    font-weight: 600;
}

.sf-insurance-plan-tab.is-active {
    background: #75c000;
    border-color: #75c000;
    color: #fff;
}

.sf-insurance-compare {
    border: 1px solid #dfe7ec;
    border-radius: 12px;
    overflow: hidden;
    width: 100%;
    background: #f9fbfd;
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
}

.sf-insurance-compare-features {
    position: relative;
    z-index: 2;
    border-right: 1px solid #dfe7ec;
    box-shadow: 8px 0 12px rgba(11, 58, 74, 0.08);
}

.sf-insurance-compare-packages-scroll {
    min-width: 0;
    width: 100%;
}

.sf-insurance-compare-packages-scroll.is-scrollable {
    overflow-x: auto;
    scrollbar-color: #75c000 #e6edf2;
    scrollbar-width: thin;
}

.sf-insurance-compare-packages-scroll.is-scrollable:focus-visible {
    outline: 2px solid #2d5362;
    outline-offset: -2px;
}

.sf-insurance-compare-packages {
    min-width: 100%;
}

.sf-insurance-compare-packages-scroll.is-scrollable .sf-insurance-compare-packages {
    width: max-content;
}

.sf-insurance-compare-packages-row {
    display: grid;
    grid-template-columns: repeat(var(--sf-insurance-plan-count, 3), minmax(0, 1fr));
}

.sf-insurance-compare-packages-scroll.is-scrollable .sf-insurance-compare-packages-row {
    grid-template-columns: repeat(var(--sf-insurance-plan-count, 4), var(--sf-insurance-package-column-width, 160px));
}

.sf-insurance-package-controls {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
}

.sf-insurance-package-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 14px;
    grid-column: 2;
}

.sf-insurance-package-button {
    border: 1px solid #d7e6eb;
    background: #fff;
    color: #0b3a4a;
    border-radius: 12px;
    padding: 8px 12px;
    font-size: 14px;
    font-weight: 600;
}

.sf-insurance-package-button.is-active {
    background: #75c000;
    border-color: #75c000;
    color: #fff;
}

.sf-insurance-compare-cell {
    border-right: 1px solid #e6edf2;
    border-bottom: 0;
    padding: 12px 14px;
    font-size: 14px;
    color: #0b3a4a;
    background: #fff;
}

.sf-insurance-compare-cell:last-child {
    border-right: 0;
}

.sf-insurance-compare-features .sf-insurance-compare-cell {
    border-right: 0;
}

.sf-insurance-compare-head .sf-insurance-compare-cell {
    font-weight: 700;
    background: #fff;
}

.sf-insurance-compare-feature--head {
    font-weight: 700;
}

.sf-insurance-compare-plan.is-active {
    background: #fff;
    box-shadow: none;
    border-left: 1px solid rgba(117, 192, 0, 0.58);
    border-right: 1px solid rgba(117, 192, 0, 0.58);
}

.sf-insurance-compare-plan {
    cursor: pointer;
    transition: box-shadow 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
}

.sf-insurance-compare-plan:focus-visible {
    outline: 0;
    box-shadow: inset 0 0 0 2px #2d5362;
}

.sf-insurance-compare-plan:focus {
    outline: 0;
}

.sf-insurance-compare-plan:hover:not(.is-active) {
    box-shadow: none;
    border-color: #e6edf2;
    background: #fff;
}

.sf-insurance-compare-plan.is-hover-col:not(.is-active) {
    background: #f1f6fa;
}

.sf-insurance-compare-head .sf-insurance-compare-plan {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 16px;
    padding-bottom: 16px;
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
}

.sf-insurance-compare-head .sf-insurance-compare-plan.is-active {
    background: #f6f9ef;
    border-top: 1px solid rgba(117, 192, 0, 0.58);
}

.sf-insurance-recommended {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 6px;
    border-radius: 12px;
    background: #e3f2f2;
    color: #3d6772;
    font-size: 11px;
    font-weight: 600;
}

.sf-insurance-compare-prices .sf-insurance-compare-cell {
    font-weight: 700;
    background: #f6f9fc;
}

.sf-insurance-compare-feature--price {
    font-size: 16px;
    font-weight: 700;
    background: #f6f9fc;
}

.sf-insurance-compare-prices .sf-insurance-compare-plan {
    font-size: 17px;
    line-height: 1.2;
    font-weight: 800;
}

.sf-insurance-price-main {
    font-size: 1em;
}

.sf-insurance-price-meta {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    font-weight: 500;
    color: #5a6f7a;
}

.sf-insurance-compare-prices .sf-insurance-compare-plan.is-active {
    background: #edf4df;
    font-size: 18px;
    border-bottom: 1px solid rgba(117, 192, 0, 0.58);
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
}

.sf-insurance-select-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 12px;
    border: 2px solid #aebdc6;
    color: transparent;
    font-size: 12px;
}

.sf-insurance-select-icon.is-active {
    border-color: #75c000;
    color: #75c000;
    background: rgba(117, 192, 0, 0.12);
}

.sf-insurance-select-icon--header {
    margin-left: auto;
}

.sf-insurance-compare-prices .sf-insurance-compare-feature {
    font-size: 16px;
    font-weight: 700;
}

.sf-insurance-card .sf-insurance-section+.sf-insurance-section {
    margin-top: 32px;
}

.sf-insurance-mobile-preview {
    display: none;
}

.sf-insurance-mobile-card {
    border: 1px solid #dfe7ec;
    border-radius: 12px;
    padding: 14px;
    background: #fff;
}

.sf-insurance-mobile-title {
    font-size: 24px;
    font-weight: 700;
    color: #0b3a4a;
    margin-bottom: 10px;
}

.sf-insurance-mobile-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sf-insurance-mobile-list li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
    padding: 6px 0;
    border-bottom: 1px solid #edf2f5;
}

.sf-insurance-mobile-list li:last-child {
    border-bottom: 0;
}

.sf-insurance-mobile-price {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e7edf1;
    display: flex;
    justify-content: space-between;
    font-size: 18px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-radio-card {
    border: 1px solid #d7e6eb;
    border-radius: 12px;
    padding: 12px 14px;
    display: flex;
    position: relative;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    min-height: 52px;
}

.sf-radio-card:hover {
    border-color: #b9c7cf;
    background: #f1f6fa;
}

.sf-radio-card.is-active {
    border-color: #75c000;
    box-shadow: 0 0 0 1px rgba(117, 192, 0, 0.35);
    background: #f6f9ef;
}

.sf-radio-card input[type="radio"],
.sf-radio-card input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.sf-radio-card--small {
    min-height: 46px;
}

.sf-insurance-addon-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
    position: relative;
    width: 100%;
    padding-right: 28px;
}

.sf-insurance-addon-radio {
    position: absolute;
    top: 0;
    right: 0;
    margin: 0;
}

.sf-radio-card.is-active .sf-insurance-addon-radio {
    border-color: #75c000;
    color: #75c000;
    background: rgba(117, 192, 0, 0.12);
}

.sf-insurance-addon-icon {
    font-size: 24px;
    color: #2f6fa3;
    line-height: 1;
}

.sf-insurance-addon-link {
    font-size: 13px;
    color: #2f6fa3;
    background: transparent;
    border: 0;
    padding: 0;
    text-align: left;
}

.sf-insurance-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.sf-insurance-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.sf-insurance-doc-btn {
    padding: 3px 8px;
    font-size: 10px;
    line-height: 1.2;
    border-radius: 12px !important;
    min-height: 24px;
}

.sf-insurance-doc-btn::before,
.sf-insurance-doc-btn::after {
    border-radius: 12px !important;
}

.sf-insurance-doc-btn.disabled {
    opacity: 0.45;
    pointer-events: none;
}

.sf-insurance-next-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.sf-configuration-progress {
    margin-top: 18px;
}

.sf-configuration-progress-btn {
    width: 100%;
    justify-content: center;
}

.sf-insurance-next-btn:disabled,
.sf-insurance-next-btn.is-loading {
    cursor: wait;
    opacity: 0.72;
    pointer-events: none;
}

.sf-configuration-progress-btn:disabled:not(.is-loading) {
    cursor: not-allowed;
    opacity: 1;
}

.sf-insurance-next-btn__spinner {
    display: none;
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: sf-insurance-spin 0.7s linear infinite;
}

.sf-insurance-next-btn.is-loading .sf-insurance-next-btn__spinner {
    display: inline-block;
}

@keyframes sf-insurance-spin {
    to {
        transform: rotate(360deg);
    }
}

.sf-insurance-disclosure {
    border: 1px solid #dfe7ec;
    border-radius: 12px;
    padding: 14px 16px;
    background: #f9fbfd;
}

.sf-insurance-disclosure__label {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 14px;
    color: #223f4d;
    margin: 0;
}

.sf-insurance-disclosure__decisions {
    display: grid;
    gap: 8px;
}

.sf-insurance-disclosure__choice {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 0;
    color: #223f4d;
}

.sf-insurance-disclosure__choice input[type="radio"] {
    margin-top: 4px;
}

.sf-insurance-disclosure__label input[type="checkbox"] {
    margin-top: 3px;
}

.sf-insurance-disclosure__error {
    margin-top: 8px;
    color: #b42318;
    font-size: 13px;
}

.sf-insurance-info-card {
    border: 1px solid #dfe7ec;
    border-radius: 12px;
    background: #f9fbfd;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.sf-insurance-info-title {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 16px 12px;
    font-size: 20px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-insurance-info-title i {
    font-size: 18px;
    color: #2f6fa3;
}

.sf-insurance-info-lines {
    padding: 0 16px 14px;
    font-size: 14px;
    color: #415a67;
    display: grid;
    gap: 8px;
    border-bottom: 1px solid #e7edf2;
}

.sf-insurance-info-lines div {
    overflow-wrap: anywhere;
}

.sf-insurance-info-total {
    padding: 14px 16px;
    margin-top: auto;
}

.sf-insurance-info-total__row {
    display: block;
    font-size: 15px;
    color: #2d4b57;
    overflow-wrap: anywhere;
}

.sf-insurance-info-total__row strong {
    display: block;
    margin-top: 6px;
    font-size: 22px;
    line-height: 1.1;
    color: #0b3a4a;
    white-space: nowrap;
}

.sf-insurance-info-card--summary {
    background: #fff;
    height: auto;
}

.sf-insurance-info-card--summary .sf-insurance-info-title {
    font-size: 18px;
}

@media (max-width: 767px) {
    .sf-insurance-wrap {
        padding-top: 130px;
    }

    .sf-insurance-plan-tabs {
        display: flex;
    }

    .sf-insurance-compare {
        display: none;
    }

    .sf-insurance-package-buttons {
        display: none;
    }

    .sf-insurance-mobile-preview {
        display: block;
    }
}

.sf-refund-box {
    border: 1px solid #dfe7ec;
    background: #f7fafc;
    border-radius: 12px;
    padding: 14px;
}

.sf-refund-box__title {
    font-size: 16px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-refund-box__title span {
    font-size: 13px;
    font-weight: 500;
    color: #607883;
}

.sf-refund-box__desc {
    font-size: 13px;
    color: #607883;
    margin-top: 4px;
}

.sf-refund-box__note {
    margin-top: 10px;
    background: #fff9e9;
    border: 1px solid #efdba7;
    color: #7c6736;
    border-radius: 12px;
    padding: 8px 10px;
    font-size: 12px;
}

.sf-payment-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.sf-payment-card {
    border: 1px solid #dce7ec;
    border-radius: 12px;
    padding: 14px;
    display: block;
    cursor: pointer;
    background: #fff;
}

.sf-payment-card input[type="radio"] {
    margin-right: 8px;
}

.sf-payment-card.is-active {
    border-color: #75c000;
    box-shadow: 0 0 0 2px rgba(117, 192, 0, 0.14);
    background: #fbfff2;
}

.sf-payment-card__title {
    position: relative;
    padding-left: 24px;
    font-weight: 700;
    color: #0b3a4a;
    margin-bottom: 6px;
}

.sf-payment-card__title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid #a9bbc5;
    background: #fff;
}

.sf-payment-card.is-active .sf-payment-card__title::before {
    border-color: #75c000;
    background: #75c000;
    box-shadow: inset 0 0 0 2px #fbfff2;
}

.sf-payment-card__badge {
    display: none;
    margin: 0 0 10px 0px;
    width: fit-content;
    padding: 15px 10px;
    border-radius: 12px;
    background: #eef7dd;
    border: 1px solid #cfe5a3;
    color: #466c0a;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 500;
}

.sf-payment-card__badge.is-visible {
    display: inline-block;
}

.sf-payment-card__line {
    font-size: 13px;
    color: #556e79;
    margin-bottom: 4px;
}

.sf-payment-card__line--pay {
    margin-top: 8px;
    font-size: 16px;
    font-weight: 700;
    color: #4d7e00;
}

.sf-payment-card__line--pay strong {
    font-size: 18px;
    color: #0b3a4a;
}

.sf-payment-card__summary {
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid #e2e9ee;
    border-radius: 12px;
    background: #f9fbfd;
    display: grid;
    gap: 6px;
}

.sf-payment-card__summary-row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    font-size: 13px;
    color: #4d6671;
}

.sf-payment-card__summary-row strong {
    font-size: 18px;
    line-height: 1.1;
    color: #0b3a4a;
}

.sf-payment-card__summary-row small {
    font-size: 12px;
    color: #5f7782;
    text-align: right;
}

.sf-payment-card__summary-row--stack {
    display: block;
}

.sf-payment-card__summary-row--stack span {
    display: block;
}

.sf-payment-card__summary-row--stack small {
    display: block;
    margin-top: 2px;
    text-align: left;
}

.sf-payment-breakdown {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-left: 10px;
}

.sf-payment-breakdown__label {
    color: #4d6671;
}

.sf-payment-breakdown__amount {
    color: #5f7782;
    text-align: right;
    white-space: nowrap;
}

.sf-payment-breakdown__note {
    margin-top: 2px;
    padding-left: 10px;
    color: #5f7782;
}

.sf-cancel-choice-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
    font-size: 13px;
    color: #556e79;
}

.sf-cancel-box {
    border: 1px solid #dfe7ec;
    border-radius: 12px;
    background: #fff;
    padding: 12px;
}

.sf-trip-value {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #dde6ec;
    border-radius: 12px;
    background: #f4f7fa;
    font-size: 18px;
    color: #0b3a4a;
}

.sf-trip-value strong {
    font-size: 32px;
    line-height: 1.1;
    color: #0b3a4a;
}

.sf-cancel-box__title {
    font-size: 16px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-cancel-box__desc {
    font-size: 13px;
    color: #607883;
    margin-bottom: 10px;
}

.sf-cancel-note {
    margin: -2px 0 8px 24px;
    width: fit-content;
    padding: 2px 8px;
    border-radius: 12px;
    background: #75c000;
    color: #fff;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 600;
}

.sf-cancel-choice-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    color: #0b3a4a;
    cursor: pointer;
}

.sf-cancel-choice-label input[type="radio"] {
    margin: 0;
}

.sf-cancel-choice-label-text {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sf-cancel-info-trigger {
    margin-left: 0;
}

.sf-cancel-crossed {
    text-decoration: line-through;
    color: #7c8f98;
}

.sf-cancel-effective {
    font-weight: 700;
    color: #4d7e00;
}

.sf-payment-helper {
    font-size: 13px;
    color: #4d6671;
}

.sf-insurance-owu {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #0b3a4a;
    padding-top: 15px;
}

.sf-insurance-owu input[type="checkbox"] {
    margin: 0;
}

.sf-insurance-owu__error {
    display: none;
    margin-top: 6px;
    font-size: 12px;
    color: #d14343;
}

.sf-consents {
    border: 1px solid #dfe7ec;
    border-radius: 12px;
    padding: 12px 14px;
    background: #fff;
}

.sf-consents__title {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-cancel-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    font-size: 13px;
}

.sf-cancel-options label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #0b3a4a;
}

.sf-cancel-option {
    border: 1px solid #d6e1e6;
    background: #fff;
    border-radius: 12px;
    padding: 6px 12px;
    font-size: 12px;
    color: #0b3a4a;
    cursor: pointer;
}

.sf-cancel-option.is-active {
    border-color: #75c000;
    color: #4d7e00;
    background: #f7ffe7;
}

.sf-payment-due {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 18px;
    color: #0b3a4a;
    border-top: 1px solid #e4edf1;
    padding-top: 10px;
}

@media (max-width: 767px) {
    .sf-payment-cards {
        grid-template-columns: 1fr;
    }
}

body.sf-popup-open {
    overflow: hidden;
}

.sf-insurance-info-trigger {
    margin-left: 6px;
    border: 0;
    background: transparent;
    color: #5f8091;
    padding: 0;
    line-height: 1;
}

.sf-insurance-info-trigger:hover {
    color: #0b3a4a;
}

.sf-insurance-compare-feature {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.sf-insurance-mobile-list li>span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.sf-insurance-popup {
    position: fixed;
    inset: 0;
    z-index: 12000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.24s ease, visibility 0.24s ease;
}

.sf-insurance-popup.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.sf-insurance-popup__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(11, 58, 74, 0.42);
    opacity: 0;
    transition: opacity 0.24s ease;
}

.sf-insurance-popup__card {
    position: relative;
    z-index: 1;
    width: min(720px, calc(100% - 32px));
    margin: 8vh auto 0;
    background: #fff;
    border: 1px solid #dbe6ec;
    border-radius: 12px;
    box-shadow: 0 18px 60px rgba(10, 45, 58, 0.35);
    overflow: hidden;
    opacity: 0;
    transform: translateY(10px) scale(0.985);
    transition: opacity 0.24s ease, transform 0.24s ease;
}

.sf-insurance-popup.is-open .sf-insurance-popup__backdrop {
    opacity: 1;
}

.sf-insurance-popup.is-open .sf-insurance-popup__card {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.sf-insurance-popup__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid #e5edf2;
}

.sf-insurance-popup__close {
    border: 0;
    background: transparent;
    color: #0b3a4a;
    padding: 0;
    line-height: 1;
}

.sf-insurance-popup__body {
    padding: 16px 18px 20px;
    max-height: 60vh;
    overflow: auto;
}

.sf-insurance-popup__body ul,
.sf-insurance-popup__body ol {
    padding-left: 1.35rem;
    margin: 0.6rem 0;
}


.sf-payment-card__summary-row hr {
    border: 1px dashed #bdbdbd;
    opacity: unset;
    width: 100%;
}

/* Unify button corners across self-service/admin-like frontend views. */
.site-button,
.site-button.outline,
.site-button.butn-bg-shape,
.site-button.white-bg,
.site-button.white-txt,
.sf-insurance-doc-btn {
    border-radius: 12px !important;
}

.sf-hotel-accordion {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sf-hotel-accordion-item {
    border: 1px solid #e3eef2;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.sf-hotel-accordion-item.is-hidden {
    display: none;
}

.sf-hotel-accordion-item {
    display: flex;
    flex-direction: column;
}

.sf-hotel-accordion-item .sf-hotel-list-item {
    margin: 0;
    border: 0;
    border-bottom: 1px solid #eef3f4;
    border-radius: 0;
}

.sf-hotel-accordion-item .sf-hotel-detail {
    margin: 0;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 520ms ease, opacity 360ms ease;
}

.sf-hotel-accordion-item .sf-hotel-detail.is-hidden {
    display: block !important;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
}

.sf-hotel-accordion-item.is-active .sf-hotel-detail {
    max-height: 2000px;
    opacity: 1;
    overflow: visible;
}

.sf-hotel-accordion-item.is-active {
    border-color: #7ec400;
    box-shadow: 0 12px 24px rgba(126, 196, 0, 0.14);
}

.sf-hotel-accordion-item.is-active .sf-hotel-list-item {
    background: #f4fbf2;
}

.sf-hotel-list-thumb {
    width: 180px;
    height: 120px;
    border-radius: 12px;
    overflow: hidden;
    flex: 0 0 auto;
    box-shadow: 0 8px 16px rgba(9, 55, 69, 0.08);
}

.sf-hotel-list-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sf-hotel-thumb-btn {
    position: relative;
    flex: 0 0 180px;
    min-width: 180px;
    align-self: stretch;
    display: flex;
    border: 0;
    padding: 0;
    background: transparent;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
}

.sf-hotel-thumb-btn .sf-hotel-list-thumb {
    border-radius: 12px;
    flex: 1 1 auto;
    height: auto;
    min-height: 120px;
}

.sf-hotel-thumb-btn img {
    transition: filter 220ms ease;
}

.sf-hotel-thumb-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    background: rgba(0, 0, 0, 0.25);
    opacity: 0;
    transition: opacity 220ms ease;
    z-index: 2;
}

.sf-hotel-thumb-overlay i {
    font-size: 20px;
}

.sf-hotel-thumb-btn:hover img {
    filter: brightness(1.1);
}

.sf-hotel-thumb-btn:hover .sf-hotel-thumb-overlay {
    opacity: 1;
}

.sf-hotel-list-price .sf-hotel-price-label {
    font-size: 13px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-hotel-list-price {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    border: 0;
    width: fit-content;
}

body.sf-embed .site-header,
body.sf-embed .site-footer,
body.sf-embed .sf-hotel-config-bar,
body.sf-embed .sf-hotel-config {
    display: none !important;
}

body.sf-embed .sf-page>.container-fluid {
    max-width: 100%;
    padding-left: 24px;
    padding-right: 24px;
}

.sf-hotel-skeleton-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sf-skeleton-block,
.sf-skeleton-line,
.sf-skeleton-pill {
    background: linear-gradient(90deg, #eef3f4 0%, #f6f9fa 50%, #eef3f4 100%);
    background-size: 200% 100%;
    animation: sf-skeleton-shimmer 1.4s ease infinite;
    border-radius: 12px;
}

.sf-skeleton-block {
    width: 100%;
    height: 100%;
}

.sf-skeleton-line {
    height: 10px;
}

.sf-skeleton-pill {
    width: 96px;
    height: 28px;
    border-radius: 12px;
}

.sf-skeleton-line.w-60 {
    width: 60%;
}

.sf-skeleton-line.w-40 {
    width: 40%;
}

.sf-skeleton-line.w-30 {
    width: 30%;
}

.sf-rooms-skeleton .sf-skeleton-block {
    border-radius: 12px;
}

.sf-hotel-accordion-item.sf-hotel-skeleton-item .sf-hotel-list-item {
    position: relative;
    overflow: hidden;
}

.sf-hotel-accordion-item.sf-hotel-skeleton-item .sf-hotel-list-item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(126, 196, 0, 0.06), rgba(126, 196, 0, 0.18), rgba(126, 196, 0, 0.06));
    opacity: 0.6;
    animation: sf-loading-pulse 1.6s ease-in-out infinite;
    pointer-events: none;
}

.sf-rooms-skeleton {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    padding: 8px;
    background: rgba(126, 196, 0, 0.04);
}

.sf-rooms-skeleton::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(126, 196, 0, 0.04), rgba(126, 196, 0, 0.14), rgba(126, 196, 0, 0.04));
    opacity: 0.6;
    animation: sf-loading-pulse 1.6s ease-in-out infinite;
    pointer-events: none;
}

.sf-hotel-rooms {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 520ms ease, opacity 360ms ease;
}

.sf-hotel-rooms.is-open {
    max-height: 2000px;
    opacity: 1;
}

@keyframes sf-loading-pulse {

    0%,
    100% {
        opacity: 0.35;
    }

    50% {
        opacity: 0.85;
    }
}

@keyframes sf-skeleton-shimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.sf-hotel-detail-head {
    margin-bottom: 8px;
}

.sf-hotel-detail-cta {
    position: static;
    transform: none;
    margin-top: 6px;
    font-size: 13px;
}

.sf-size-option {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border: 1px solid #e3eef2;
    border-radius: 12px;
    background: #ffffff;
    margin-bottom: 10px;
}

.sf-size-option.has-room-qty .form-check-input {
    display: none !important;
}

.sf-room-choice-hidden,
.sf-room-hotel-choice-hidden {
    display: none !important;
}

.sf-room-selection-change {
    margin-top: 12px;
    padding: 8px 14px;
    font-size: 13px;
}

.sf-room-left {
    flex: 1 1 auto;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
    min-width: 0;
}

.sf-room-photo {
    min-width: 96px;
}

.sf-room-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.sf-room-title {
    font-weight: 600;
    color: #0b3a4a;
}

.sf-room-capacity {
    font-size: 13px;
    color: #4a6a74;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sf-room-meta {
    list-style: none;
    padding: 0;
    margin: 6px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    font-size: 12px;
    color: #6a7a84;
}

.sf-room-meta li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sf-room-right {
    min-width: 140px;
    text-align: right;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sf-room-price {
    font-weight: 600;
    color: #0b3a4a;
}

.sf-room-availability {
    font-size: 12px;
    color: #6a7a84;
}

.sf-room-count-choices {
    display: inline-flex;
    gap: 6px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.sf-room-count-choice-btn {
    border: 0;
    background: transparent;
    color: #0b3a4a;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    padding: 0;
    width: 22px;
    height: 22px;
    transition: all .2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sf-room-count-choice-btn .sf-insurance-select-icon {
    width: 20px;
    height: 20px;
}

.sf-room-count-choice-btn.is-active {
    background: transparent;
}

.sf-room-count-choice-btn.is-active .sf-insurance-select-icon {
    border-color: #75c000;
    color: #75c000;
    background: rgba(117, 192, 0, 0.12);
}

.sf-room-count-choice-btn:hover .sf-insurance-select-icon {
    border-color: #7dc400;
}

.sf-room-count-choice-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.sf-room-count-choice-btn.is-hidden {
    display: none;
}

.sf-room-selected-hint {
    min-height: 16px;
    font-size: 11px;
    color: #6a7a84;
}

.sf-room-addons {
    display: none;
    grid-column: 1 / -1;
    width: 100%;
    padding-top: 12px;
    margin-top: 2px;
    border-top: 1px solid #dcebef;
}

.sf-room-slots {
    display: none;
    grid-column: 1 / -1;
    width: 100%;
    padding-top: 12px;
    margin-top: 2px;
    border-top: 1px solid #dcebef;
    gap: 8px;
}

.sf-size-option.is-room-selected .sf-room-slots {
    display: grid;
}

.sf-room-slot {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #d7e7ec;
    border-radius: 12px;
    background: #fff;
}

.sf-room-slot.is-active {
    display: flex;
}

.sf-room-slot__label {
    font-size: 13px;
    font-weight: 700;
    color: #0b3a4a;
}

.sf-room-slot__muted {
    font-size: 12px;
    color: #6a7a84;
}

.sf-room-slot__extras {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px 12px;
}

.sf-room-slot-extra {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: #0b3a4a;
    font-size: 13px;
    cursor: pointer;
    min-height: 28px;
}

.sf-room-slot-extra.is-disabled {
    color: #8a99a3;
    cursor: not-allowed;
}

.sf-room-slot-extra.is-disabled .sf-extra-bed-select-icon {
    border-color: #c6d0d7;
    background: #f1f5f7;
    color: transparent;
}

.sf-room-slot-extra .form-check-input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px;
    height: 1px;
    margin: 0;
}

.sf-size-option.has-room-qty .sf-room-slot-extra .form-check-input {
    display: block !important;
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.sf-extra-bed-select-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    border: 2px solid #aebdc6;
    color: transparent;
    font-size: 10px;
    line-height: 1;
    flex: 0 0 auto;
    transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}

.sf-room-slot-extra:hover .sf-extra-bed-select-icon {
    border-color: #7dc400;
}

.sf-room-slot-extra:has(.form-check-input:checked) .sf-extra-bed-select-icon {
    border-color: #75c000;
    color: #75c000;
    background: rgba(117, 192, 0, 0.12);
}

.sf-room-slot-extra__tooltip {
    position: absolute;
    right: 0;
    bottom: calc(100% + 8px);
    z-index: 10;
    display: none;
    width: max-content;
    max-width: 260px;
    padding: 7px 9px;
    border-radius: 12px;
    background: #0b3a4a;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    box-shadow: 0 10px 24px rgba(11, 58, 74, .18);
}

.sf-room-slot-extra__tooltip::after {
    content: "";
    position: absolute;
    right: 14px;
    top: 100%;
    border-width: 6px 6px 0;
    border-style: solid;
    border-color: #0b3a4a transparent transparent;
}

.sf-room-slot-extra--locked:hover .sf-room-slot-extra__tooltip,
.sf-room-slot-extra--locked:focus-within .sf-room-slot-extra__tooltip {
    display: block;
}

.sf-room-slot-extra__text {
    font-weight: 600;
}

.sf-room-slot-extra__price {
    color: #6a7a84;
    font-size: 12px;
    white-space: nowrap;
}

.sf-segment-addons {
    display: none;
    width: 100%;
    padding: 14px;
    margin-top: 12px;
    border: 1px solid #dcebef;
    border-radius: 12px;
    background: #f9fcfd;
}

.sf-segment-addons.is-active {
    display: block;
}

.sf-segment-addons__details {
    flex-basis: 100%;
    color: #5c6f78;
    font-size: 12px;
    line-height: 1.4;
}

.sf-size-option.is-room-selected .sf-room-addons {
    display: block;
}

.sf-room-addons__title {
    font-size: 12px;
    font-weight: 700;
    color: #0b3a4a;
    margin-bottom: 8px;
}

.sf-room-addons__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
}

.sf-room-addon-option,
.sf-hotel-fee-qty {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid #d7e7ec;
    border-radius: 12px;
    background: #fff;
    color: #0b3a4a;
    font-size: 13px;
    cursor: pointer;
}

.sf-room-addon-option .form-check-input {
    display: inline-block !important;
    position: static !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    width: 16px;
    height: 16px;
    margin: 0;
    border-radius: 50%;
    flex: 0 0 auto;
}

.sf-hotel-fee-qty__controls {
    margin-left: 4px;
}

/* Menu theme: with search */
.sf-search-menu-header .main-bar-wraper {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1001;
    width: 100%;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.sf-search-menu-header .main-bar {
    max-width: 1790px;
    width: calc(100% - 24px);
    margin: 12px auto 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
    min-height: 0;
}

.sf-search-menu-header .sf-repeatable-search-section--menu {
    width: 100%;
    position: relative;
    z-index: 6;
}

.sf-search-menu-header .sf-repeatable-search-section--menu .container {
    width: 100%;
    max-width: none;
    padding: 0;
}

.sf-search-menu-header .sf-repeatable-search-section--menu .sf-repeatable-search-card {
    transform: none;
    margin: 0;
    max-width: none;
    padding: 12px;
}

.sf-search-menu-hamburger-field {
    flex: 0 0 42px;
    min-width: 42px;
}

.sf-search-menu-toggle.navbar-toggler {
    position: static;
    width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 1px solid #d7e5ec;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: none;
}

.sf-search-menu-toggle.navbar-toggler .icon-bar {
    width: 18px;
    height: 2px;
    margin: 0;
    background: #0b3a4a;
    border-radius: 2px;
}

.sf-search-menu-toggle--mobile {
    display: none !important;
}

.sf-search-menu-header.mobile-sider-drawer-menu .header-nav.navbar-collapse,
.sf-search-menu-header.mobile-sider-drawer-menu .header-nav {
    position: fixed !important;
    top: 0;
    left: -340px;
    z-index: 1002;
    display: block !important;
    width: 320px;
    max-width: calc(100vw - 34px);
    height: 100vh;
    padding: 22px 18px;
    overflow-y: auto;
    background: #ffffff;
    box-shadow: 24px 0 45px rgba(12, 35, 45, 0.18);
    transition: left 260ms ease;
}

.sf-search-menu-header.mobile-sider-drawer-menu.active .header-nav.navbar-collapse,
.sf-search-menu-header.mobile-sider-drawer-menu.active .header-nav {
    left: 0;
}

.sf-search-menu-header .header-nav .nav.navbar-nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    width: 100%;
    margin: 18px 0 0;
}

.sf-search-menu-header .header-nav .nav.navbar-nav>li {
    width: 100%;
}

.sf-search-menu-header.header-style-1 .header-nav .nav>li>a {
    min-height: 46px;
    padding: 12px 10px;
    color: #122f3a;
}

.sf-search-menu-header .sf-mobile-drawer-header,
.sf-search-menu-header .sf-mobile-cta {
    display: block;
}

.sf-search-menu-header .sf-mobile-logo img {
    max-height: 44px;
}

.sf-search-menu-header .sf-mobile-cta {
    margin-top: 18px;
}

.sf-search-menu-header .sf-mobile-cta .site-button {
    display: block;
    width: 100%;
    text-align: center;
}

@media (max-width: 1200px) {
    .sf-search-menu-header .main-bar {
        width: calc(100% - 28px);
        margin-top: 14px;
    }
}

@media (max-width: 640px) {
    .sf-search-menu-header .main-bar {
        width: calc(100% - 20px);
        margin-top: 10px;
    }
}

.sf-search-menu-mobile-static {
    display: none;
}

@media (max-width: 1200px) {
    .sf-search-menu-header .main-bar-wraper {
        position: static;
        width: auto;
        padding: 0;
        transform: none;
    }

    .sf-repeatable-search-section .sf-repeatable-action {
        flex: 100%;
    }

    .sf-search-menu-header .main-bar {
        position: static;
        width: auto;
        max-width: none;
        min-height: 0;
        margin: 0;
        padding: 0;
        transform: none;
        background: transparent;
        box-shadow: none;
    }

    .sf-search-menu-header .sf-repeatable-search-section--menu {
        display: none !important;
    }

    .sf-search-menu-mobile-static {
        display: block;
        position: absolute;
        top: 78vh;
        left: 0;
        right: 0;
        z-index: 8;
        padding: 0 10px;
        transform: translateY(0%);

    }

    .sf-banner-1-wrap.sf-hero-static-wrap {
        margin-bottom: 260px;
    }

    .sf-search-menu-mobile-static .container {
        max-width: 450px;
        padding-left: 0;
        padding-right: 0;
    }

    .sf-search-menu-mobile-static .sf-repeatable-search-card {
        transform: none;
        max-width: 450px;
        margin: 0 auto;
    }

    .sf-search-menu-mobile-static .sf-repeatable-length-group {
        flex: 0 0 100px !important;
        min-width: 100px !important;
        padding-right: 0 !important;
    }

    .sf-search-menu-mobile-static .sf-repeatable-origin-group {
        display: block !important;
        flex: 1 1 130px !important;
        min-width: 130px !important;
    }

    .sf-search-menu-mobile-static .sf-repeatable-origin-group .dropdown.bootstrap-select.form-select,
    .sf-search-menu-mobile-static .sf-repeatable-origin-group .bootstrap-select {
        display: block !important;
        width: 100% !important;
    }

    .sf-search-menu-toggle--mobile.navbar-toggler {
        position: fixed;
        top: 30px;
        left: 30px;
        z-index: 1003;
        display: inline-flex !important;
    }
}

/* Search menu mobile drawer */
.sf-mobile-drawer-close {
    display: none;
}

@media (max-width: 1200px) {

    .sf-search-menu-header.mobile-sider-drawer-menu .header-nav.navbar-collapse,
    .sf-search-menu-header.mobile-sider-drawer-menu .header-nav {
        top: 0;
        left: -260px;
        width: 250px;
        max-width: 250px;
        padding: 24px 16px 28px;
        background: #ffffff;
        box-shadow: 18px 0 45px rgba(15, 40, 50, 0.10);
        border-radius: 0;
        transition: left 260ms ease;
    }

    .sf-search-menu-header.mobile-sider-drawer-menu.active .header-nav.navbar-collapse,
    .sf-search-menu-header.mobile-sider-drawer-menu.active .header-nav {
        left: 0;
    }

    .sf-search-menu-header .sf-mobile-drawer-header {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        padding: 0;
        margin: 0 0 28px;
        border: 0;
        min-height: 34px;
    }

    .sf-search-menu-header .sf-mobile-logo {
        display: none;
    }

    .sf-search-menu-header .sf-mobile-drawer-close {
        width: 34px;
        height: 34px;
        border: 0;
        background: transparent;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: relative;
    }

    .sf-search-menu-header .sf-mobile-drawer-close span {
        position: absolute;
        width: 19px;
        height: 2px;
        border-radius: 2px;
        background: #2e4050;
    }

    .sf-search-menu-header .sf-mobile-drawer-close span:first-child {
        transform: rotate(45deg);
    }

    .sf-search-menu-header .sf-mobile-drawer-close span:last-child {
        transform: rotate(-45deg);
    }

    .sf-search-menu-header .header-nav .nav.navbar-nav {
        gap: 18px;
        margin: 0;
        padding: 0 0 24px;
        border-bottom: 1px solid #e6edf2;
    }

    .sf-search-menu-header .header-nav .nav.navbar-nav>li {
        border: 0;
        display: block;
        padding: 0;
    }

    .sf-search-menu-header.header-style-1 .header-nav .nav>li>a {
        display: flex;
        align-items: center;
        gap: 18px;
        min-height: 52px;
        width: 100%;
        padding: 0 18px;
        border-radius: 8px;
        color: #2b3f4f !important;
        font-size: 15px;
        font-weight: 600;
        line-height: 1;
    }

    .sf-search-menu-header.header-style-1 .header-nav .nav>li:first-child>a,
    .sf-search-menu-header.header-style-1 .header-nav .nav>li.active>a {
        background: linear-gradient(90deg, rgba(128, 203, 10, 0.10), rgba(128, 203, 10, 0.03));
        color: #78c700 !important;
    }

    .sf-search-menu-header .sf-mobile-nav-icon {
        width: 26px;
        height: 26px;
        margin: 0;
        flex: 0 0 26px;
        border-radius: 0;
        background: transparent;
        color: #2f4353;
        font-size: 22px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        visibility: visible;
        opacity: 1;
    }

    .sf-search-menu-header .sf-mobile-nav-icon i,
    .sf-search-menu-header .sf-mobile-nav-icon .bi,
    .sf-search-menu-header .sf-mobile-nav-icon i::before {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-family: bootstrap-icons !important;
        font-style: normal;
        font-weight: 400 !important;
        line-height: 1;
        visibility: visible;
        opacity: 1;
    }

    .sf-search-menu-header .header-nav .nav>li:first-child>a .sf-mobile-nav-icon,
    .sf-search-menu-header .header-nav .nav>li.active>a .sf-mobile-nav-icon {
        color: #2f4353;
    }

    .sf-search-menu-header .sf-mobile-nav-label {
        color: inherit;
    }

    .sf-search-menu-header .sf-mobile-cta {
        display: none;
    }

    .sf-search-menu-header .sub-menu,
    .sf-search-menu-header .submenu-toogle {
        display: none !important;
    }
}

/* Force Bootstrap Icons in mobile/search drawer menu */
.sf-hero-header .sf-mobile-nav-icon i.bi,
.sf-hero-header .sf-mobile-nav-icon i.bi::before,
.sf-search-menu-header .sf-mobile-nav-icon i.bi,
.sf-search-menu-header .sf-mobile-nav-icon i.bi::before {
    font-family: bootstrap-icons !important;
    font-style: normal !important;
    font-weight: 400 !important;
    font-variant: normal !important;
    text-transform: none !important;
    line-height: 1 !important;
    display: inline-block !important;
    speak: never;
}

.sf-hero-header .sf-mobile-nav-icon i.bi::before,
.sf-search-menu-header .sf-mobile-nav-icon i.bi::before {
    visibility: visible !important;
    opacity: 1 !important;
}

/* Inline SVG icons for mobile/search drawer menu */
.sf-hero-header .sf-mobile-nav-icon svg,
.sf-search-menu-header .sf-mobile-nav-icon svg {
    width: 22px;
    height: 22px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Hard fallback for inline SVG menu icons */
.header-nav .sf-mobile-nav-icon svg {
    display: inline-block !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    fill: none !important;
    stroke: #2f4353 !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    overflow: visible !important;
}

.header-nav .sf-mobile-nav-icon {
    min-width: 26px !important;
    min-height: 26px !important;
    overflow: visible !important;
}

/* Search sidebar icon layout on all widths */
.sf-search-menu-header .header-nav .nav>li>a {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
}

.sf-search-menu-header .sf-mobile-nav-icon {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    margin: 0 !important;
    flex: 0 0 26px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #2f4353 !important;
    background: transparent !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

.sf-search-menu-header .sf-mobile-nav-icon svg {
    width: 22px !important;
    height: 22px !important;
    stroke: currentColor !important;
    stroke-width: 1.65 !important;
}

/* Menu SVG asset icons */
.sf-search-menu-header .sf-mobile-nav-icon img,
.sf-hero-header .sf-mobile-nav-icon img {
    width: 22px;
    height: 22px;
    display: block;
    object-fit: contain;
}

/* Search sidebar menu visible separators */
.sf-search-menu-header .sf-search-menu-nav .nav.navbar-nav,
.sf-search-menu-header .header-nav .nav.navbar-nav {
    gap: 0 !important;
    margin-top: 18px !important;
    padding: 10px 0 !important;
    border-top: 1px solid #dfe8ed !important;
    border-bottom: 1px solid #dfe8ed !important;
}

.sf-search-menu-header .sf-search-menu-nav .nav.navbar-nav>li,
.sf-search-menu-header .header-nav .nav.navbar-nav>li {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    border-bottom: 1px solid #dfe8ed !important;
}

.sf-search-menu-header .sf-search-menu-nav .nav.navbar-nav>li:last-child,
.sf-search-menu-header .header-nav .nav.navbar-nav>li:last-child {
    border-bottom: 0 !important;
}

.sf-search-menu-header.header-style-1 .sf-search-menu-nav .nav>li>a,
.sf-search-menu-header.header-style-1 .header-nav .nav>li>a {
    min-height: 60px !important;
    padding: 0 14px !important;
    border-radius: 0 !important;
}

.sf-search-menu-header.header-style-1 .sf-search-menu-nav .nav>li:first-child>a,
.sf-search-menu-header.header-style-1 .sf-search-menu-nav .nav>li.active>a,
.sf-search-menu-header.header-style-1 .header-nav .nav>li:first-child>a,
.sf-search-menu-header.header-style-1 .header-nav .nav>li.active>a {
    min-height: 46px !important;
    margin: 7px 0 !important;
    border-radius: 4px !important;
}

/* Search sidebar info */
.sf-sidebar-info {
    display: none;
}

.sf-search-menu-header .sf-sidebar-info {
    display: grid;
    gap: 16px;
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid #edf2f4;
}

.sf-search-menu-header .sf-sidebar-info-row {
    display: flex;
    align-items: center;
    gap: 14px;
    color: #2b3f4f;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.25;
    text-decoration: none;
}

.sf-search-menu-header .sf-sidebar-info-row:hover {
    color: #2b3f4f;
    text-decoration: none;
}

.sf-search-menu-header .sf-sidebar-info-icon {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #2f4353;
}

.sf-search-menu-header .sf-sidebar-info-icon img,
.sf-search-menu-header .sf-sidebar-info-icon svg {
    width: 20px;
    height: 20px;
    display: block;
    object-fit: contain;
}

.sf-search-menu-header .sf-sidebar-info-icon svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 991px) {
    .site-header .sf-sidebar-info {
        display: grid;
        gap: 16px;
        margin-top: 24px;
        padding-top: 22px;
        border-top: 1px solid #edf2f4;
    }

    .site-header .sf-sidebar-info-row {
        display: flex;
        align-items: center;
        gap: 14px;
        color: #2b3f4f;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.25;
    }

    .site-header .sf-sidebar-info-icon {
        width: 22px;
        height: 22px;
        flex: 0 0 22px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #2f4353;
    }

    .site-header .sf-sidebar-info-icon svg {
        width: 20px;
        height: 20px;
        display: block;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
}

/* Explainer right panel hotel comparison */
.sf-explainer-panel-hotel .sf-explainer-hotel-comparation {
    width: 100%;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-row {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(155px, 1fr);
    gap: 12px;
    overflow-x: auto;
    padding: 2px 2px 12px;
    scroll-snap-type: x mandatory;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location {
    position: relative;
    min-height: 112px;
    border: 0;
    border-radius: 12px;
    overflow: hidden;
    padding: 0;
    background: #0b3a4a;
    cursor: pointer;
    text-align: left;
    scroll-snap-align: start;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-image,
.sf-explainer-panel-hotel .sf-hotel-compare-location-image img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-image {
    background: linear-gradient(135deg, #dfeff0, #b9d6da);
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-image img {
    object-fit: cover;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(7, 48, 71, 0.05), rgba(7, 48, 71, 0.78));
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-copy {
    position: absolute;
    left: 12px;
    right: 42px;
    bottom: 12px;
    z-index: 2;
    display: grid;
    gap: 3px;
    color: #fff;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-copy strong {
    font-size: 14px;
    line-height: 1;
    font-weight: 800;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-copy small {
    font-size: 11px;
    color: rgba(255, 255, 255, .9);
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-arrow {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 2;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #fff;
    color: #36505b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    line-height: 1;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location.is-active {
    outline: 3px solid rgba(128, 203, 10, .45);
}

.sf-explainer-panel-hotel .sf-hotel-compare-groups {
    margin-top: 16px;
}

.sf-explainer-panel-hotel .sf-hotel-compare-group {
    display: none;
}

.sf-explainer-panel-hotel .sf-hotel-compare-group.is-active {
    display: block;
}

.sf-explainer-panel-hotel .sf-hotel-compare-group-title {
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e5edf1;
    color: #18333f;
    font-size: 15px;
    font-weight: 800;
}

.sf-explainer-panel-hotel .sf-hotel-compare-slider {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(220px, 45%);
    gap: 14px;
    overflow-x: auto;
    padding: 0 2px 12px;
    scroll-snap-type: x mandatory;
}

.sf-explainer-panel-hotel .sf-hotel-compare-card {
    min-width: 220px;
    border: 1px solid #dfe9ee;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    color: inherit;
    text-decoration: none;
    scroll-snap-align: start;
    box-shadow: 0 10px 24px rgba(15, 40, 50, 0.06);
}

.sf-explainer-panel-hotel .sf-hotel-compare-card:hover {
    color: inherit;
    text-decoration: none;
    box-shadow: 0 14px 28px rgba(18, 47, 58, 0.10);
}

.sf-explainer-panel-hotel .sf-hotel-compare-image {
    height: 112px;
    background: #eaf3f6;
}

.sf-explainer-panel-hotel .sf-hotel-compare-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.sf-explainer-panel-hotel .sf-hotel-compare-image--empty {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #eaf3f6, #d8e7ec);
}

.sf-explainer-panel-hotel .sf-hotel-compare-body {
    padding: 12px 13px 14px;
    display: block;
}

.sf-explainer-panel-hotel .sf-hotel-compare-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.sf-explainer-panel-hotel .sf-hotel-compare-body h4 {
    margin: 0;
    color: #172f3a;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
}

.sf-explainer-panel-hotel .sf-hotel-compare-stars {
    flex: 0 0 auto;
    color: #80cb0a;
    font-size: 11px;
    letter-spacing: 0;
}

.sf-explainer-panel-hotel .sf-hotel-compare-body p {
    margin: 6px 0 9px;
    color: #6f7f88;
    font-size: 12px;
}

.sf-explainer-panel-hotel .sf-hotel-compare-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    min-height: 23px;
    margin-bottom: 10px;
}

.sf-explainer-panel-hotel .sf-hotel-compare-badges span {
    margin: 0;
}

.sf-explainer-panel-hotel .sf-hotel-compare-price {
    color: #172f3a;
    font-size: 13px;
    font-weight: 800;
}

/* Explainer hotel comparison refinements */
.sf-explainer-panel-hotel .sf-hotel-compare-location-arrow,
.sf-explainer-panel-hotel .sf-hotel-compare-stars {
    display: none !important;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-row,
.sf-explainer-panel-hotel .sf-hotel-compare-slider {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-row {
    cursor: grab;
    user-select: none;
    touch-action: pan-y;
    scroll-behavior: smooth;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-row.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-row.is-dragging .sf-hotel-compare-location {
    pointer-events: none;
}

.sf-explainer-panel-hotel .sf-hotel-compare-location-row::-webkit-scrollbar,
.sf-explainer-panel-hotel .sf-hotel-compare-slider::-webkit-scrollbar {
    display: none;
}

.sf-explainer-panel-hotel .sf-hotel-compare-slider-wrap {
    position: relative;
}

.sf-explainer-panel-hotel .sf-hotel-compare-nav {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 34px;
    height: 46px;
    border: 1px solid #dfe9ee;
    border-radius: 8px;
    background: #fff;
    color: #36505b;
    font-size: 28px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px rgba(15, 40, 50, 0.10);
    transform: translateY(-50%);
}

.sf-explainer-panel-hotel .sf-hotel-compare-nav--prev {
    left: -8px;
}

.sf-explainer-panel-hotel .sf-hotel-compare-nav--next {
    right: -8px;
}

.sf-explainer-panel-hotel .sf-hotel-compare-slider {
    padding-left: 30px;
    padding-right: 30px;
    cursor: grab;
    user-select: none;
    touch-action: pan-y;
    scroll-behavior: smooth;
}

.sf-explainer-panel-hotel .sf-hotel-compare-slider.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}

.sf-explainer-panel-hotel .sf-hotel-compare-slider.is-dragging .sf-hotel-compare-card {
    pointer-events: none;
}

.sf-explainer-panel-hotel .sf-hotel-compare-show-all {
    min-width: 220px;
    min-height: 38px;
    margin: 14px auto 0;
    padding: 8px 20px;
    border: 1px solid #dfe9ee;
    border-radius: 8px;
    background: #fff;
    color: #172f3a;
    font-size: 13px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.sf-explainer-panel-hotel .sf-hotel-compare-show-all:hover {
    border-color: rgba(128, 203, 10, 0.45);
    color: #5d8f19;
    text-decoration: none;
}

.sf-explainer-panel-hotel .sf-hotel-compare-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 16px;
    margin: 4px 0 0;
}

.sf-explainer-panel-hotel .sf-hotel-compare-dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #d7e6e7;
    cursor: pointer;
    transition: width .2s ease, background-color .2s ease, opacity .2s ease;
}

.sf-explainer-panel-hotel .sf-hotel-compare-dot.is-active {
    width: 24px;
    background: #80cb0a;
}

.sf-explainer-panel-hotel .sf-hotel-compare-dot:only-child {
    display: none;
}

@media (max-width: 991px) {
    .sf-explainer .sf-explainer-preview-mobile {
        min-height: 0;
        overflow: visible;
    }

    .sf-explainer .sf-explainer-preview-mobile .sf-explainer-panel.is-active {
        position: static;
        inset: auto;
        height: auto;
        min-height: 0;
        overflow: visible;
        transform: none;
    }

    .sf-explainer-panel-hotel .sf-explainer-hotel-comparation,
    .sf-explainer-panel-hotel .sf-hotel-compare-groups,
    .sf-explainer-panel-hotel .sf-hotel-compare-group.is-active,
    .sf-explainer-panel-hotel .sf-hotel-compare-slider-wrap {
        min-width: 0;
        max-width: 100%;
    }

    .sf-explainer .sf-explainer-shell,
    .sf-explainer .sf-explainer-mobile-stage {
        min-width: 0;
        max-width: 100%;
    }

    .sf-explainer .sf-explainer-preview-mobile {
        width: 100%;
        max-width: calc(100vw - 44px);
        box-sizing: border-box;
        overflow: visible;
    }

    .sf-explainer .sf-explainer-preview-mobile .sf-explainer-panel,
    .sf-explainer .sf-explainer-panel-hotel,
    .sf-explainer-panel-hotel .sf-explainer-hotel-comparation,
    .sf-explainer-panel-hotel .sf-hotel-compare-groups,
    .sf-explainer-panel-hotel .sf-hotel-compare-group {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-location-row,
    .sf-explainer-panel-hotel .sf-hotel-compare-slider {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-location-row,
    .sf-explainer-panel-hotel .sf-hotel-compare-slider {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-x;
        overscroll-behavior-x: contain;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-location-row {
        gap: 10px;
        padding: 2px 0 10px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-location {
        flex: 0 0 46%;
        min-width: 140px;
        min-height: 96px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-slider {
        gap: 12px;
        padding: 0 0 10px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-nav {
        display: none;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-card {
        flex: 0 0 76%;
        min-width: 205px;
        max-width: 245px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-slider>.sf-hotel-compare-card {
        max-width: min(245px, calc(100vw - 120px));
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-image {
        height: 96px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-body {
        padding: 9px 10px 10px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-body h4 {
        font-size: 12px;
        line-height: 1.15;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-body p {
        margin: 4px 0 6px;
        font-size: 11px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-badges {
        gap: 4px;
        min-height: 0;
        margin-bottom: 7px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-badges span {
        padding: 2px 6px;
        font-size: 9px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-price {
        font-size: 11px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-show-all {
        min-width: 180px;
        min-height: 34px;
        margin-top: 10px;
    }

    .sf-explainer-panel-hotel .sf-hotel-compare-show-all {
        width: 100%;
        max-width: 100%;
    }
}

/* Landing jungle relax section */
.sf-jungle-relax {
    background: #eefdff;
}

.sf-jungle-relax .sf-jungle-relax-head {
    max-width: 760px;
    margin: 0 auto 44px;
    text-align: center;
}

.sf-jungle-relax .sf-jungle-relax-eyebrow {
    margin-bottom: 8px;
    color: #9ed77c;
    font-family: AfacadFull, Afacad, sans-serif;
    font-size: 27px;
    font-weight: 700;
    line-height: 1;
}

.sf-jungle-relax .sf-jungle-relax-head h2 {
    margin: 0;
    color: #142b38;
    font-family: AfacadFull, Afacad, sans-serif;
    font-size: clamp(34px, 4vw, 58px);
    font-weight: 800;
    line-height: 1.05;
}

.sf-jungle-relax .sf-jungle-relax-head p {
    max-width: 680px;
    margin: 18px auto 0;
    color: #61717c;
    font-size: 18px;
    line-height: 1.45;
}

.sf-jungle-relax .sf-jungle-relax-card {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(520px, 1fr) minmax(230px, 300px);
    gap: 28px;
    align-items: center;
    padding: 54px 38px;
    border: 1px solid rgba(18, 47, 58, 0.08);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 24px 60px rgba(13, 69, 74, 0.08);
}

.sf-jungle-relax .sf-jungle-relax-info {
    border-right: 1px solid #80cb0a;
    padding-right: 28px;
}

.sf-jungle-relax .sf-jungle-relax-label,
.sf-jungle-relax .sf-jungle-relax-chip {
    color: #70bd00;
    font-size: 13px;
    font-weight: 800;
}

.sf-jungle-relax .sf-jungle-relax-info h3 {
    margin: 10px 0 30px;
    color: #142b38;
    font-family: AfacadFull, Afacad, sans-serif;
    font-size: 28px;
    font-weight: 800;
}

.sf-jungle-relax .sf-jungle-relax-facts {
    display: grid;
    gap: 22px;
}

.sf-jungle-relax .sf-jungle-relax-facts div {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 14px;
    align-items: start;
    color: #172f3a;
}

.sf-jungle-relax .sf-jungle-relax-facts i {
    color: #172f3a;
    font-size: 20px;
}

.sf-jungle-relax .sf-jungle-relax-facts strong,
.sf-jungle-relax .sf-jungle-relax-facts small {
    display: block;
}

.sf-jungle-relax .sf-jungle-relax-facts strong {
    font-size: 15px;
    font-weight: 800;
}

.sf-jungle-relax .sf-jungle-relax-facts small {
    color: #61717c;
    font-size: 14px;
    line-height: 1.25;
}

.sf-jungle-relax .sf-jungle-relax-details {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    margin-top: 34px;
    padding: 0 22px;
    border: 1px solid #dce8ef;
    border-radius: 12px;
    color: #142b38;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.sf-jungle-relax .sf-jungle-relax-details:hover {
    border-color: #80cb0a;
    color: #70bd00;
    text-decoration: none;
}

.sf-jungle-relax .sf-jungle-relax-journey {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(220px, 1.35fr) minmax(170px, 1fr);
    gap: 32px;
    align-items: center;
}

.sf-jungle-relax .sf-jungle-relax-stop {
    position: relative;
    min-width: 0;
}

.sf-jungle-relax .sf-jungle-relax-stop--main {
    padding: 0 14px 22px;
    border: 1px solid #80cb0a;
    border-radius: 14px;
}

.sf-jungle-relax .sf-jungle-relax-media {
    height: 190px;
    border-radius: 12px;
    overflow: hidden;
    background: #e7f4f5;
}

.sf-jungle-relax .sf-jungle-relax-stop--main .sf-jungle-relax-media {
    height: 250px;
    margin: 0 -14px 0;
    border-radius: 14px 14px 8px 8px;
}

.sf-jungle-relax .sf-jungle-relax-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sf-jungle-relax .sf-jungle-relax-media.is-empty {
    background: linear-gradient(135deg, #e9f4ef, #cbe3df);
}

.sf-jungle-relax .sf-jungle-relax-chip {
    display: inline-flex;
    margin: 10px 0 12px;
    padding: 6px 12px;
    border: 1px solid rgba(128, 203, 10, 0.55);
    border-radius: 8px;
    background: #f1fae9;
}

.sf-jungle-relax .sf-jungle-relax-stop h4 {
    margin: 0;
    color: #142b38;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.15;
}

.sf-jungle-relax .sf-jungle-relax-stop p {
    margin: 8px 0 0;
    color: #61717c;
    font-size: 15px;
}

.sf-jungle-relax .sf-jungle-relax-stop small {
    display: inline-flex;
    margin-top: 14px;
    padding: 7px 14px;
    border-radius: 999px;
    background: #eef7e9;
    color: #668a3b;
    font-size: 13px;
    font-weight: 700;
}

.sf-jungle-relax .sf-jungle-relax-why {
    padding: 34px 28px;
    border-radius: 16px;
    background: linear-gradient(135deg, #f3faef, #eef7e9);
}

.sf-jungle-relax .sf-jungle-relax-why h3 {
    margin: 0 0 24px;
    color: #142b38;
    font-size: 20px;
    font-weight: 800;
}

.sf-jungle-relax .sf-jungle-relax-why ul {
    display: grid;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sf-jungle-relax .sf-jungle-relax-why li {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 12px;
    align-items: start;
    color: #61717c;
    font-size: 14px;
}

.sf-jungle-relax .sf-jungle-relax-why i {
    color: #80cb0a;
}

.sf-jungle-relax .sf-jungle-relax-price {
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid rgba(20, 43, 56, 0.12);
    color: #142b38;
    font-size: 24px;
    font-weight: 900;
}

@media (max-width: 1320px) {
    .sf-jungle-relax .sf-jungle-relax-card {
        grid-template-columns: minmax(220px, 280px) minmax(480px, 1fr);
    }

    .sf-jungle-relax .sf-jungle-relax-why {
        grid-column: 1 / -1;
    }
}

@media (max-width: 991px) {

    .sf-jungle-relax .sf-jungle-relax-card,
    .sf-jungle-relax .sf-jungle-relax-journey {
        grid-template-columns: 1fr;
    }

    .sf-jungle-relax .sf-jungle-relax-card {
        padding: 26px 18px;
        gap: 24px;
    }

    .sf-jungle-relax .sf-jungle-relax-info {
        border-right: 0;
        border-bottom: 1px solid #80cb0a;
        padding-right: 0;
        padding-bottom: 24px;
    }

    .sf-jungle-relax .sf-jungle-relax-head {
        margin-bottom: 28px;
    }

    .sf-jungle-relax .sf-jungle-relax-head p {
        font-size: 16px;
    }

    .sf-jungle-relax .sf-jungle-relax-media,
    .sf-jungle-relax .sf-jungle-relax-stop--main .sf-jungle-relax-media {
        height: 210px;
    }

    .sf-jungle-relax .sf-jungle-relax-stop--main {
        padding: 0 12px 18px;
    }

    .sf-jungle-relax .sf-jungle-relax-stop--main .sf-jungle-relax-media {
        margin: 0 -12px;
    }
}

.sf-jungle-relax .sf-jungle-relax-journey-head {
    grid-column: 1 / -1;
    margin-bottom: -8px;
}

.sf-jungle-relax .sf-jungle-relax-journey-head h3 {
    margin: 8px 0 0;
    color: #142b38;
    font-family: AfacadFull, Afacad, sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.05;
}

/* Landing jungle relax visual alignment */
.sf-jungle-relax.p-t120 {
    padding-top: 28px;
    padding-bottom: 42px;
}

.sf-jungle-relax .sf-jungle-relax-head {
    display: none;
}

.sf-jungle-relax .sf-jungle-relax-card {
    grid-template-columns: 270px minmax(560px, 1fr) 300px;
    gap: 28px;
    align-items: center;
    padding: 56px 38px 54px;
    border-radius: 16px;
}

.sf-jungle-relax .sf-jungle-relax-info {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-right: 30px;
}

.sf-jungle-relax .sf-jungle-relax-facts {
    gap: 24px;
}

.sf-jungle-relax .sf-jungle-relax-details {
    width: 218px;
    margin-top: 36px;
    justify-content: center;
}

.sf-jungle-relax .sf-jungle-relax-journey {
    grid-template-columns: minmax(160px, 1fr) minmax(220px, 1.28fr) minmax(160px, 1fr);
    gap: 28px;
    align-items: start;
}

.sf-jungle-relax .sf-jungle-relax-journey-head {
    margin: 0 0 20px;
}

.sf-jungle-relax .sf-jungle-relax-media {
    height: 190px;
}

.sf-jungle-relax .sf-jungle-relax-stop--main .sf-jungle-relax-media {
    height: 250px;
}

.sf-jungle-relax .sf-jungle-relax-stop h4 {
    min-height: 46px;
    font-size: 20px;
}

.sf-jungle-relax .sf-jungle-relax-stop--main h4 {
    font-size: 22px;
}

.sf-jungle-relax .sf-jungle-relax-why {
    align-self: center;
    min-height: 356px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 34px 28px;
}

@media (max-width: 1200px) {
    .sf-jungle-relax .sf-jungle-relax-card {
        grid-template-columns: 250px minmax(500px, 1fr);
    }

    .sf-jungle-relax .sf-jungle-relax-why {
        grid-column: 2;
        min-height: 0;
    }
}

@media (max-width: 991px) {
    .sf-jungle-relax.p-t120 {
        padding-top: 24px;
    }

    .sf-jungle-relax .sf-jungle-relax-card {
        grid-template-columns: 1fr;
        padding: 28px 18px;
    }

    .sf-jungle-relax .sf-jungle-relax-info {
        justify-content: flex-start;
        padding-right: 0;
    }

    .sf-jungle-relax .sf-jungle-relax-why {
        grid-column: auto;
    }
}

/* Landing jungle relax header/responsive corrections */
.sf-jungle-relax.p-t120 {
    padding-top: 56px;
}

.sf-jungle-relax .sf-jungle-relax-head {
    display: block !important;
    max-width: 880px;
    margin: 0 auto 44px;
    text-align: center;
}

.sf-jungle-relax .sf-jungle-relax-eyebrow {
    margin-bottom: 6px;
    color: #a9dc8a;
    font-family: AfacadFull, Afacad, sans-serif;
    font-size: clamp(22px, 2.2vw, 30px);
    font-weight: 700;
    line-height: 1.1;
}

.sf-jungle-relax .sf-jungle-relax-head h2 {
    margin: 0;
    color: #142b38;
    font-family: AfacadFull, Afacad, sans-serif;
    font-size: clamp(36px, 4.1vw, 58px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: 0;
}

.sf-jungle-relax .sf-jungle-relax-head p {
    max-width: 760px;
    margin: 16px auto 0;
    color: #667481;
    font-family: AfacadFull, Afacad, sans-serif;
    font-size: clamp(16px, 1.35vw, 21px);
    line-height: 1.35;
}

.sf-jungle-relax .sf-jungle-relax-card {
    grid-template-columns: minmax(220px, 270px) minmax(0, 1fr) minmax(220px, clamp(220px, 22vw, 300px));
    gap: clamp(18px, 2vw, 28px);
}

.sf-jungle-relax .sf-jungle-relax-info,
.sf-jungle-relax .sf-jungle-relax-journey,
.sf-jungle-relax .sf-jungle-relax-why {
    min-width: 0;
}

.sf-jungle-relax .sf-jungle-relax-why {
    width: 100%;
    max-width: 100%;
    min-height: 0;
    padding: clamp(22px, 2.3vw, 34px) clamp(18px, 2vw, 28px);
}

.sf-jungle-relax .sf-jungle-relax-why h3 {
    font-size: clamp(18px, 1.5vw, 22px);
}

.sf-jungle-relax .sf-jungle-relax-why li {
    font-size: clamp(13px, 1vw, 14px);
}

.sf-jungle-relax .sf-jungle-relax-price {
    display: none !important;
}

@media (max-width: 1280px) {
    .sf-jungle-relax .sf-jungle-relax-card {
        grid-template-columns: minmax(220px, 270px) minmax(0, 1fr);
    }

    .sf-jungle-relax .sf-jungle-relax-why {
        grid-column: 2;
        align-self: stretch;
    }
}

@media (max-width: 1100px) {
    .sf-jungle-relax .sf-jungle-relax-card {
        grid-template-columns: 1fr;
    }

    .sf-jungle-relax .sf-jungle-relax-info {
        border-right: 0;
        border-bottom: 1px solid #80cb0a;
        padding-right: 0;
        padding-bottom: 24px;
    }

    .sf-jungle-relax .sf-jungle-relax-why {
        grid-column: auto;
    }
}

@media (max-width: 767px) {
    .sf-jungle-relax.p-t120 {
        padding-top: 38px;
    }

    .sf-jungle-relax .sf-jungle-relax-card {
        padding: 24px 16px;
    }

    .sf-jungle-relax .sf-jungle-relax-journey {
        grid-template-columns: 1fr;
    }
}

/* Landing jungle relax title separator and color normalization */
.sf-jungle-relax .sf-jungle-relax-eyebrow {
    color: #a8db8a;
}

.sf-jungle-relax .sf-jungle-relax-head h2 {
    color: #172f3a;
}

.sf-jungle-relax .sf-jungle-relax-head p {
    color: #637383;
}

.sf-jungle-relax .sf-jungle-relax-separator {
    margin-top: -18px;
    line-height: 0;
    text-align: center;
}

.sf-jungle-relax .sf-jungle-relax-separator img {
    width: min(470px, 86vw);
    max-width: 100%;
    height: auto;
}

@media (max-width: 767px) {
    .sf-jungle-relax .sf-jungle-relax-separator {
        margin-top: -10px;
    }
}

/* Landing jungle relax script heading */
.sf-jungle-relax .sf-jungle-relax-eyebrow {
    font-family: "Kaushan Script", cursive;
    font-weight: 400;
}

/* Landing jungle relax v2 */
.sf-jungle-relax-v2 {
    padding: 64px 0;
    background: #eefdff;
    color: #06263d;
    font-family: AfacadFull, Afacad, sans-serif;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(380px, .85fr);
    gap: 24px;
    align-items: stretch;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-card,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits {
    border: 1px solid #d7e6ec;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(9, 48, 70, .08);
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-main {
    position: relative;
    overflow: hidden;
    padding: 38px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    color: #4cab00;
    font-size: 17px;
    font-weight: 800;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-eyebrow i {
    font-size: 22px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-main h2 {
    max-width: 720px;
    margin: 0;
    color: #06263d;
    font-size: clamp(42px, 5vw, 74px);
    font-weight: 900;
    line-height: .95;
    letter-spacing: 0;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-lead {
    max-width: 560px;
    margin: 26px 0 34px;
    color: #06263d;
    font-size: 20px;
    line-height: 1.55;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-image {
    position: relative;
    min-height: 430px;
    overflow: hidden;
    border-radius: 22px;
    background: #dbecef;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-image img,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-image.is-empty,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-thumb.is-empty {
    background: linear-gradient(135deg, #eaf4f2, #cde2dd);
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-features {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    overflow: hidden;
    border-radius: 18px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 14px 30px rgba(0, 0, 0, .12);
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-features div {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 72px;
    padding: 14px 12px;
    color: #06263d;
    font-size: 14px;
    font-weight: 800;
    text-align: center;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-features div+div {
    border-left: 1px solid #d7e6ec;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-features i {
    font-size: 20px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-side {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card {
    position: relative;
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    min-height: 150px;
    padding: 22px 24px 22px 86px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card.is-active {
    border-color: #66c900;
    box-shadow: 0 18px 44px rgba(102, 201, 0, .12);
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card::before {
    content: "";
    position: absolute;
    left: 40px;
    top: -16px;
    width: 1px;
    height: 16px;
    border-left: 2px dashed rgba(102, 201, 0, .45);
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card:first-child::before {
    display: none;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-step {
    position: absolute;
    left: 22px;
    top: 50%;
    z-index: 2;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 999px;
    background: #edf5ed;
    color: #06263d;
    font-weight: 900;
    transform: translateY(-50%);
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-step.is-active {
    background: #55b900;
    color: #fff;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-thumb {
    width: 128px;
    height: 104px;
    overflow: hidden;
    border-radius: 14px;
    background: #dbecef;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-label {
    margin-bottom: 8px;
    color: #4cab00;
    font-size: 15px;
    font-weight: 900;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-copy h3 {
    margin: 0 0 10px;
    color: #06263d;
    font-size: 21px;
    font-weight: 900;
    line-height: 1.15;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-copy span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    margin-right: 12px;
    padding: 5px 12px;
    border-radius: 999px;
    background: #eff9e9;
    color: #4cab00;
    font-weight: 900;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-copy p {
    display: inline-flex;
    margin: 0;
    color: #607385;
    font-size: 15px;
    font-weight: 700;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits {
    padding: 24px 28px;
    background: linear-gradient(135deg, #f5fbf0 0%, #fff 100%);
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits h3 {
    margin: 0 0 18px;
    color: #4cab00;
    font-size: 22px;
    font-weight: 900;
    line-height: 1.2;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 28px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits-grid div {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #06263d;
    font-size: 15px;
    font-weight: 700;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits-grid i {
    color: #4cab00;
    font-size: 24px;
    line-height: 1;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    min-height: 66px;
    border-radius: 16px;
    background: linear-gradient(180deg, #74d400 0%, #55b900 100%);
    color: #fff;
    font-size: 21px;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 18px 35px rgba(91, 190, 0, .24);
    transition: transform .2s ease, box-shadow .2s ease;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-cta:hover {
    color: #fff;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 22px 42px rgba(91, 190, 0, .32);
}

@media (max-width: 1320px) {
    .sf-jungle-relax-v2 .sf-jungle-relax-v2-grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
        gap: 20px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-main {
        padding: 30px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-main h2 {
        font-size: clamp(42px, 4.6vw, 64px);
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-lead {
        font-size: 18px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card {
        grid-template-columns: 112px minmax(0, 1fr);
        padding: 20px 20px 20px 76px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-thumb {
        width: 112px;
        height: 94px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-route-copy h3 {
        font-size: 19px;
    }
}

@media (max-width: 1100px) {
    .sf-jungle-relax-v2 .sf-jungle-relax-v2-grid {
        grid-template-columns: 1fr;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-image {
        min-height: 380px;
    }
}

@media (max-width: 760px) {

    .sf-jungle-relax-v2 {
        padding: 36px 0;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-main {
        padding: 24px 18px;
        border-radius: 12px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-main h2 {
        font-size: 42px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-lead {
        margin: 18px 0 24px;
        font-size: 17px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-image {
        min-height: 300px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-features {
        position: static;
        grid-template-columns: 1fr 1fr;
        margin-top: 14px;
        border: 1px solid #d7e6ec;
        box-shadow: none;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-features div {
        min-height: 62px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-features div:nth-child(3) {
        border-left: 0;
        border-top: 1px solid #d7e6ec;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-features div:nth-child(4) {
        border-top: 1px solid #d7e6ec;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card {
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 14px;
        min-height: 128px;
        padding: 18px 16px 18px 64px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-step {
        left: 16px;
        width: 34px;
        height: 34px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card::before {
        left: 33px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-thumb {
        width: 92px;
        height: 82px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-route-copy h3 {
        font-size: 17px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-route-label,
    .sf-jungle-relax-v2 .sf-jungle-relax-v2-route-copy p {
        font-size: 13px;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits-grid {
        grid-template-columns: 1fr;
    }

    .sf-jungle-relax-v2 .sf-jungle-relax-v2-cta {
        min-height: 58px;
        font-size: 18px;
    }
}

/* Landing jungle relax v2 refinements */
.sf-jungle-relax-v2 .sf-jungle-relax-v2-main::after,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card::before {
    content: "";
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-card,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-card,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits {
    border-radius: 12px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-image,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-features,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-thumb {
    border-radius: 12px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-main h2 {
    font-size: clamp(32px, 3.2vw, 46px);
    line-height: 1.05;
    font-weight: 800;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-lead {
    max-width: 560px;
    font-size: 15px;
    line-height: 1.55;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-eyebrow,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-label {
    font-size: 13px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-copy h3 {
    font-size: 16px;
    font-weight: 800;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits h3 {
    font-size: 17px;
    font-weight: 800;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-features div,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-copy span,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-route-copy p,
.sf-jungle-relax-v2 .sf-jungle-relax-v2-benefits-grid div {
    font-size: 13px;
    font-weight: 700;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-cta {
    width: auto;
    min-height: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    color: #fff;
    font-size: 16px;
    transform: none;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-cta:hover {
    box-shadow: none;
    transform: none;
}

@media (max-width: 760px) {
    .sf-jungle-relax-v2 .sf-jungle-relax-v2-main h2 {
        font-size: 30px;
    }
}

/* Jungle relax section heading */
.sf-jungle-relax-v2 .sf-jungle-relax-v2-head {
    margin: 0 auto 36px;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-head .sf-head-discription {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

.sf-jungle-relax-v2 .sf-jungle-relax-v2-main .sf-jungle-relax-v2-eyebrow {
    margin-bottom: 18px;
}

/* Static hero section */
.sf-hero-static-wrap {
    position: relative;
    overflow: hidden;
}

.sf-hero-static-wrap .sf-hero-static-media {
    background-image: var(--sf-hero-static-image);
    background-position: var(--sf-hero-media-position, center center);
}

.sf-hero-static-wrap .sf-banner-1-overlay {
    background-color: var(--sf-hero-overlay-background, rgba(0, 0, 0, 0.35));
}

@media (max-width: 767px) {
    .sf-hero-static-wrap .sf-hero-static-media {
        background-image: var(--sf-hero-static-mobile-image, var(--sf-hero-static-image));
        background-position: var(--sf-hero-static-mobile-position, var(--sf-hero-media-position, center center));
    }
}

/* Multi-image hero section */
.sf-hero-multi-wrap .sf-hero-multi-media {
    background-repeat: no-repeat;
    background-size: var(--sf-hero-multi-background-fit, cover) !important;
}

.sf-hero-multi-wrap .sf-hero-multi-overlay {
    width: auto;
}

.sf-hero-multi-section {
    display: flex;
    flex-direction: column;
    width: min(var(--sf-hero-multi-section-width, 100%), 100%);
    height: 100%;
    max-height: 100%;
    min-height: 0;
}

.sf-hero-multi-section--left {
    margin-right: auto;
    text-align: left;
}

.sf-hero-multi-section--center {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.sf-hero-multi-section--right {
    margin-left: auto;
    text-align: right;
}

.sf-hero-multi-wrap .sf-hero-multi-text {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.sf-hero-multi-section--center .sf-banner-text-detail {
    margin-right: auto;
    margin-left: auto;
}

.sf-hero-multi-section--right .sf-banner-text-detail {
    margin-right: 0;
    margin-left: auto;
}

.sf-hero-multi-images {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    min-height: 0;
    overflow: hidden;
}

.sf-hero-multi-image-row {
    --sf-hero-multi-image-max-width: var(--sf-hero-multi-image-max-width-desktop, 100vw);
    --sf-hero-multi-margin-top: var(--sf-hero-multi-margin-top-desktop, 0px);
    --sf-hero-multi-margin-right: var(--sf-hero-multi-margin-right-desktop, 0px);
    --sf-hero-multi-margin-bottom: var(--sf-hero-multi-margin-bottom-desktop, 0px);
    --sf-hero-multi-margin-left: var(--sf-hero-multi-margin-left-desktop, 0px);
    display: flex;
    flex: 1 1 calc(100% / var(--sf-hero-multi-image-count, 1));
    width: 100%;
    min-height: 0;
    padding:
        var(--sf-hero-multi-margin-top, 0) var(--sf-hero-multi-margin-right, 0) var(--sf-hero-multi-margin-bottom, 0) var(--sf-hero-multi-margin-left, 0);
    box-sizing: border-box;
}

.sf-hero-multi-image-row--desktop-left {
    justify-content: flex-start;
}

.sf-hero-multi-image-row--desktop-center {
    justify-content: center;
}

.sf-hero-multi-image-row--desktop-right {
    justify-content: flex-end;
}

.sf-hero-multi-image-row img {
    display: block;
    width: 100%;
    max-width: min(100%, var(--sf-hero-multi-image-max-width, 100vw));
    height: 100%;
    max-height: 100%;
    object-fit: contain;
}

.sf-hero-multi-image-row--desktop-left img {
    object-position: left center;
}

.sf-hero-multi-image-row--desktop-center img {
    object-position: center center;
}

.sf-hero-multi-image-row--desktop-right img {
    object-position: right center;
}

@media (max-width: 1200px) {
    .sf-hero-multi-image-row {
        --sf-hero-multi-image-max-width: var(--sf-hero-multi-image-max-width-tablet, 100vw);
        --sf-hero-multi-margin-top: var(--sf-hero-multi-margin-top-tablet, 0px);
        --sf-hero-multi-margin-right: var(--sf-hero-multi-margin-right-tablet, 0px);
        --sf-hero-multi-margin-bottom: var(--sf-hero-multi-margin-bottom-tablet, 0px);
        --sf-hero-multi-margin-left: var(--sf-hero-multi-margin-left-tablet, 0px);
    }

    .sf-hero-multi-image-row--tablet-left {
        justify-content: flex-start;
    }

    .sf-hero-multi-image-row--tablet-center {
        justify-content: center;
    }

    .sf-hero-multi-image-row--tablet-right {
        justify-content: flex-end;
    }

    .sf-hero-multi-image-row--tablet-left img {
        object-position: left center;
    }

    .sf-hero-multi-image-row--tablet-center img {
        object-position: center center;
    }

    .sf-hero-multi-image-row--tablet-right img {
        object-position: right center;
    }
}

@media (max-width: 767px) {
    .sf-hero-multi-image-row {
        --sf-hero-multi-image-max-width: var(--sf-hero-multi-image-max-width-mobile, 100vw);
        --sf-hero-multi-margin-top: var(--sf-hero-multi-margin-top-mobile, 0px);
        --sf-hero-multi-margin-right: var(--sf-hero-multi-margin-right-mobile, 0px);
        --sf-hero-multi-margin-bottom: var(--sf-hero-multi-margin-bottom-mobile, 0px);
        --sf-hero-multi-margin-left: var(--sf-hero-multi-margin-left-mobile, 0px);
    }

    .sf-hero-multi-image-row--mobile-left {
        justify-content: flex-start;
    }

    .sf-hero-multi-image-row--mobile-center {
        justify-content: center;
    }

    .sf-hero-multi-image-row--mobile-right {
        justify-content: flex-end;
    }

    .sf-hero-multi-image-row--mobile-left img {
        object-position: left center;
    }

    .sf-hero-multi-image-row--mobile-center img {
        object-position: center center;
    }

    .sf-hero-multi-image-row--mobile-right img {
        object-position: right center;
    }

    .sf-hero-multi-section {
        width: min(var(--sf-hero-multi-section-width, 100%), 100%);
    }

    .sf-hero-multi-section--left {
        text-align: left;
    }

    .sf-hero-multi-section--right {
        text-align: right;
    }
}

.sf-hotel-tags,
.sf-hotel-list-tags,
.sf-trip-list-tags,
.sf-explainer-tags,
.sf-explainer-panel-hotel .sf-hotel-compare-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sf-hotel-tag,
.sf-hotel-list-tag,
.sf-trip-tag,
.sf-trip-list-tag,
.sf-explainer .sf-hotel-compare-badges span,
.sf-explainer-panel-hotel .sf-hotel-compare-badges span,
.sf-explainer .sf-explainer-tags span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 26px;
    padding: 4px 10px;
    border: 1px solid #dbe8ef;
    border-radius: 12px;
    background: #fbfefe;
    color: #456b76;
    box-shadow: 0 1px 3px rgba(9, 55, 69, 0.05);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    margin: 0;
}

.sf-hotel-tag::before,
.sf-hotel-list-tag::before,
.sf-trip-tag::before,
.sf-trip-list-tag::before,
.sf-explainer .sf-hotel-compare-badges span::before,
.sf-explainer-panel-hotel .sf-hotel-compare-badges span::before,
.sf-explainer .sf-explainer-tags span::before {
    content: "\F5B1";
    font-family: "bootstrap-icons";
    color: #0f7d8b;
    font-size: 11px;
    font-weight: 400;
    line-height: 1;
}

/* Keep every hotel-card action reachable on narrow, portrait screens. */
@media (max-width: 767.98px) {
    .sf-hotel-accordion-item .sf-hotel-list-item {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .sf-hotel-accordion-item .sf-hotel-thumb-btn {
        flex: 0 0 auto;
        min-width: 0;
        width: 100%;
        height: 160px;
        align-self: stretch;
    }

    .sf-hotel-accordion-item .sf-hotel-thumb-btn .sf-hotel-list-thumb {
        min-height: 0;
        height: 160px;
    }

    .sf-hotel-accordion-item .sf-hotel-list-content {
        min-width: 0;
    }

    .sf-hotel-accordion-item .sf-hotel-list-action {
        justify-content: flex-start;
        width: 100%;
    }

    .sf-hotel-accordion-item .sf-hotel-pick-btn {
        width: 100%;
    }
}

.sf-hotel-cheapest-preview {
    display: grid;
    gap: 8px;
    margin-top: 0;
}

.sf-hotel-cheapest-price {
    color: #0b3a4a;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    text-align: right;
}

.sf-hotel-cheapest-price strong {
    font-size: 28px;
    font-weight: 800;
    letter-spacing: 0;
}

.sf-hotel-cheapest-currency {
    color: #0b3a4a;
    font-size: 15px;
    font-weight: 800;
}

.sf-hotel-cheapest-prefix,
.sf-hotel-cheapest-unit {
    color: #6a7a82;
    font-size: 11px;
    font-weight: 600;
}

.sf-hotel-cheapest-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    color: #456b76;
    font-size: 12px;
    font-weight: 600;
    align-items: center;
}

.sf-hotel-cheapest-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.sf-hotel-cheapest-meta span+span::before {
    content: "·";
    color: #0b3a4a;
    margin-right: 4px;
}

.sf-hotel-cheapest-meta i {
    color: #0f7d8b;
}


/* Mobile drawer travel search */
.sf-mobile-drawer-search {
    display: none;
}

@media (max-width: 1200px) {
    .sf-search-menu-header .sf-mobile-drawer-search {
        display: block;
        margin: 0 0 18px;
    }

    .sf-mobile-drawer-search-title {
        display: flex;
        align-items: center;
        gap: 10px;
        margin: 0 0 12px;
        color: #0b3a4a;
        font-size: 18px;
        font-weight: 800;
        line-height: 1.2;
    }

    .sf-mobile-drawer-search-title-icon,
    .sf-mobile-drawer-search-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #78c700;
        flex: 0 0 auto;
    }

    .sf-mobile-drawer-search-title-icon svg {
        width: 24px;
        height: 24px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .sf-mobile-drawer-search-card {
        overflow: hidden;
        border: 1px solid #dbe9ee;
        border-radius: 12px;
        background: #ffffff;
        box-shadow: 0 12px 28px rgba(12, 35, 45, 0.10);
    }

    .sf-mobile-drawer-search-row {
        position: relative;
        display: flex;
        align-items: center;
        gap: 12px;
        min-height: 58px;
        margin: 0;
        padding: 10px 12px;
        border-bottom: 1px solid #e5eef2;
        cursor: pointer;
    }

    .sf-mobile-drawer-search-icon {
        width: 28px;
        height: 28px;
        border-radius: 10px;
        background: #f3faee;
    }

    .sf-mobile-drawer-search-icon svg {
        width: 19px;
        height: 19px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .sf-mobile-drawer-search-copy {
        min-width: 0;
        flex: 1 1 auto;
        display: grid;
        gap: 2px;
    }

    .sf-mobile-drawer-search-label {
        color: #0b3a4a;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.15;
    }

    .sf-mobile-drawer-search-value,
    .sf-mobile-drawer-search-select,
    .sf-mobile-drawer-search-qty-summary {
        width: 100%;
        height: auto;
        min-height: 0;
        padding: 0;
        border: 0;
        background: transparent;
        color: #315666;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.25;
        box-shadow: none;
    }

    .sf-mobile-drawer-search-value::placeholder {
        color: #315666;
        opacity: 1;
    }

    .sf-mobile-drawer-search-select {
        appearance: none;
        -webkit-appearance: none;
        cursor: pointer;
    }

    .sf-mobile-drawer-search-select:focus,
    .sf-mobile-drawer-search-value:focus {
        outline: 0;
        box-shadow: none;
        background: transparent;
    }

    .sf-mobile-drawer-search-arrow {
        color: #0b3a4a;
        font-size: 24px;
        font-weight: 400;
        line-height: 1;
    }

    .sf-mobile-drawer-search-row--people {
        flex-wrap: wrap;
    }

    .sf-mobile-drawer-search-row--people.is-open>.sf-mobile-drawer-search-arrow {
        transform: rotate(90deg);
    }

    .sf-mobile-drawer-search-qty {
        flex: 0 0 100%;
        display: none;
        gap: 8px;
        padding: 8px 0 0 40px;
    }

    .sf-mobile-drawer-search-row--people.is-open .sf-mobile-drawer-search-qty {
        display: grid;
    }

    .sf-mobile-drawer-search-qty .sf-repeatable-qty-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 32px;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .sf-mobile-drawer-search-qty .sf-qty-label {
        color: #0b3a4a;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.15;
    }

    .sf-mobile-drawer-search-qty .sf-qty-sub {
        display: block;
        color: #6a8794;
        font-size: 10px;
        font-weight: 600;
        margin-top: 1px;
    }

    .sf-mobile-drawer-search-qty .sf-qty-controls {
        display: inline-flex;
        overflow: hidden;
        border: 1px solid #d7e5ec;
        border-radius: 8px;
        background: #ffffff;
    }

    .sf-mobile-drawer-search-qty .sf-qty-btn,
    .sf-mobile-drawer-search-qty .sf-qty-value {
        width: 28px;
        height: 28px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0;
        border-right: 1px solid #d7e5ec;
        background: #ffffff;
        color: #0b3a4a;
        font-size: 12px;
        font-weight: 800;
        line-height: 1;
    }

    .sf-mobile-drawer-search-qty .sf-qty-btn:last-child {
        border-right: 0;
    }

    .sf-mobile-drawer-search-btn {
        width: calc(100% - 16px);
        height: 44px;
        margin: 8px;
        padding: 0 18px;
        border-radius: 10px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        font-size: 13px;
        font-weight: 800;
    }
}


/* Search menu drawer: match landing mobile drawer */
@media (max-width: 1200px) {

    .sf-search-menu-header.mobile-sider-drawer-menu .header-nav.navbar-collapse,
    .sf-search-menu-header.mobile-sider-drawer-menu .header-nav {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: min(82vw, 320px) !important;
        max-width: min(82vw, 320px) !important;
        height: 100vh !important;
        padding: 0 0 24px !important;
        background: #ffffff !important;
        box-shadow: 0 14px 40px rgba(15, 40, 50, 0.2) !important;
        transform: translateX(-105%) !important;
        transition: transform 0.35s ease !important;
        overflow-y: auto !important;
        z-index: 9999 !important;
    }

    .sf-search-menu-header.mobile-sider-drawer-menu.active .header-nav.navbar-collapse,
    .sf-search-menu-header.mobile-sider-drawer-menu.active .header-nav {
        left: 0 !important;
        transform: translateX(0) !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        min-height: 0 !important;
        padding: 16px 18px 12px !important;
        margin: 0 0 10px !important;
        border-bottom: 1px solid #e7eef2 !important;
    }

    .sf-search-menu-header .sf-mobile-logo {
        display: inline-flex !important;
    }

    .sf-search-menu-header .sf-mobile-logo img {
        height: 36px !important;
        max-height: 36px !important;
        width: auto !important;
        display: block !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search {
        margin: 0 18px 18px !important;
    }

    .sf-search-menu-header .header-nav .nav.navbar-nav,
    .sf-search-menu-header .sf-search-menu-nav .nav.navbar-nav {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border-top: 0 !important;
        border-bottom: 0 !important;
    }

    .sf-search-menu-header .header-nav .nav.navbar-nav>li,
    .sf-search-menu-header .sf-search-menu-nav .nav.navbar-nav>li {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        width: 100% !important;
        padding: 0 !important;
        border-bottom: 1px solid #eef2f4 !important;
    }

    .sf-search-menu-header.header-style-1 .header-nav .nav>li>a,
    .sf-search-menu-header.header-style-1 .sf-search-menu-nav .nav>li>a {
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        min-height: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 12px 18px !important;
        border-radius: 0 !important;
        color: #1f2f36 !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        line-height: 1.25 !important;
        background: transparent !important;
    }

    .sf-search-menu-header.header-style-1 .header-nav .nav>li:first-child>a,
    .sf-search-menu-header.header-style-1 .header-nav .nav>li.active>a,
    .sf-search-menu-header.header-style-1 .sf-search-menu-nav .nav>li:first-child>a,
    .sf-search-menu-header.header-style-1 .sf-search-menu-nav .nav>li.active>a {
        min-height: 0 !important;
        margin: 0 !important;
        border-radius: 0 !important;
        color: #1f2f36 !important;
        background: transparent !important;
    }

    .sf-search-menu-header .sf-mobile-nav-icon {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 35px !important;
        height: 35px !important;
        min-width: 35px !important;
        min-height: 35px !important;
        margin: 0 8px 0 0 !important;
        flex: 0 0 35px !important;
        border-radius: 12px !important;
        background: #f0f6f8 !important;
        color: #1f2f36 !important;
        overflow: visible !important;
    }

    .sf-search-menu-header .sf-mobile-nav-icon svg,
    .sf-search-menu-header .sf-mobile-nav-icon img {
        width: 22px !important;
        height: 22px !important;
    }
}


/* Mobile search drawer final overrides */
@media (max-width: 1200px) {
    .sf-search-menu-header .main-bar .sf-repeatable-search-section--menu {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
        pointer-events: none !important;
    }

    .sf-search-menu-header .header-nav .sf-mobile-drawer-search {
        display: block !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search .sf-mobile-drawer-search-qty {
        display: none !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search .sf-mobile-drawer-search-row--people.is-open .sf-mobile-drawer-search-qty {
        display: grid !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search .sf-repeatable-qty-row {
        display: flex !important;
        margin: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search .sf-repeatable-search-btn {
        transform: none !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search .sf-trip-selection-details {
        display: contents;
    }

    .sf-search-menu-header .sf-mobile-drawer-search-form.is-special-expedition .sf-trip-selection-details {
        display: block;
        margin: 5px;
        overflow: hidden;
        border: 1px solid #bfd8fb;
        border-radius: 12px;
        background: #edf5ff;
        box-shadow: 0 5px 14px rgba(25, 102, 190, 0.08);
    }

    .sf-search-menu-header .sf-mobile-drawer-search-form.is-special-expedition .sf-trip-selection-details .sf-mobile-drawer-search-row {
        background: transparent;
    }

    .sf-search-menu-header .sf-mobile-drawer-search-form.is-special-expedition .sf-mobile-drawer-search-row--length,
    .sf-search-menu-header .sf-mobile-drawer-search-form.is-special-expedition .sf-mobile-drawer-search-row--airports {
        cursor: default;
    }

.sf-search-menu-header .sf-mobile-drawer-search-form.is-special-expedition .sf-trip-selection-details .sf-mobile-drawer-search-arrow {
        opacity: 0.35;
    }
}

@media (min-width: 481px) and (max-width: 1200px) {
    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-trip-selection-details {
        flex-wrap: nowrap;
        gap: 8px;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-date-group {
        flex: 1 1 155px;
        min-width: 0;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-length-group {
        flex: 0 0 100px !important;
        min-width: 100px !important;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-origin-group {
        flex: 1 1 130px !important;
        min-width: 0 !important;
    }
}


/* Mobile drawer airports and stable nav spacing */
@media (max-width: 1200px) {

    .sf-search-menu-header.header-style-1.mobile-sider-drawer-menu .header-nav .nav>li>a,
    .sf-search-menu-header.header-style-1.is-fixed.mobile-sider-drawer-menu .header-nav .nav>li>a,
    .sf-search-menu-header.header-style-1.mobile-sider-drawer-menu .sf-search-menu-nav .nav>li>a,
    .sf-search-menu-header.header-style-1.is-fixed.mobile-sider-drawer-menu .sf-search-menu-nav .nav>li>a {
        padding: 12px 18px !important;
    }

    .sf-search-menu-header.header-style-1.mobile-sider-drawer-menu .header-nav .nav,
    .sf-search-menu-header.header-style-1.is-fixed.mobile-sider-drawer-menu .header-nav .nav,
    .sf-search-menu-header.header-style-1.mobile-sider-drawer-menu .sf-search-menu-nav .nav,
    .sf-search-menu-header.header-style-1.is-fixed.mobile-sider-drawer-menu .sf-search-menu-nav .nav {
        padding: 0 !important;
        margin: 0 !important;
        overflow: visible !important;
        max-height: none !important;
    }

    .sf-mobile-drawer-search-row--airports {
        flex-wrap: wrap;
    }

    .sf-mobile-drawer-search-row--airports.is-open>.sf-mobile-drawer-search-arrow {
        transform: rotate(90deg);
    }

    .sf-mobile-drawer-airport-options {
        flex: 0 0 100%;
        display: none;
        gap: 8px;
        padding: 8px 0 0 40px;
    }

    .sf-mobile-drawer-search-row--airports.is-open .sf-mobile-drawer-airport-options {
        display: grid;
    }

    .sf-mobile-drawer-airport-options label {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0;
        color: #0b3a4a;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.25;
    }

    .sf-mobile-drawer-airport-options input {
        width: 16px;
        height: 16px;
        accent-color: #78c700;
    }

    .sf-mobile-drawer-search-airport-summary {
        color: #315666;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.25;
    }
}

/* Landing search: keep every field inside the mobile viewport. */
@media (max-width: 640px) {

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu),
    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .container,
    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-search-form,
    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-search-row {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .container {
        padding-right: 12px;
        padding-left: 12px;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-search-card {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin-right: auto;
        margin-left: auto;
        box-sizing: border-box;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-field {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-date-group {
        flex: 1 1 calc(58% - 6px);
        min-width: 0;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-length-group {
        flex: 1 1 calc(42% - 6px) !important;
        min-width: 0 !important;
        padding-right: 0 !important;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-origin-group {
        flex: 1 1 100% !important;
        width: 100%;
        min-width: 0 !important;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-people {
        flex: 1 1 100%;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-qty-row {
        flex-wrap: nowrap;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-qty-row .sf-qty-label {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-qty-row .sf-qty-controls {
        flex: 0 0 auto;
        margin-left: auto;
    }

    .sf-repeatable-search-section:not(.sf-repeatable-search-section--menu) .sf-repeatable-action {
        flex: 1 1 100%;
        width: 100%;
        min-width: 0;
    }
}


/* Calendar fade and mobile drawer section animations */
.sf-calendar-modal {
    display: flex !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 220ms ease, visibility 0s linear 220ms;
}

.sf-calendar-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.sf-calendar-modal-content {
    transform: translateY(10px) scale(0.985);
    transition: transform 220ms ease;
}

.sf-calendar-modal.is-open .sf-calendar-modal-content {
    transform: translateY(0) scale(1);
}

@media (max-width: 1200px) {

    .sf-search-menu-header .sf-mobile-drawer-search .sf-mobile-drawer-airport-options,
    .sf-search-menu-header .sf-mobile-drawer-search .sf-mobile-drawer-search-qty {
        display: grid !important;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        padding-top: 0;
        transform: translateY(-4px);
        transition: max-height 240ms ease, opacity 180ms ease, transform 240ms ease, padding-top 240ms ease;
    }

    .sf-search-menu-header .sf-mobile-drawer-search .sf-mobile-drawer-search-row--airports.is-open .sf-mobile-drawer-airport-options,
    .sf-search-menu-header .sf-mobile-drawer-search .sf-mobile-drawer-search-row--people.is-open .sf-mobile-drawer-search-qty {
        max-height: 240px;
        opacity: 1;
        padding-top: 8px;
        transform: translateY(0);
    }

    .sf-mobile-drawer-search-arrow {
        transition: transform 200ms ease;
    }
}


/* Mobile drawer search icon colors aligned with menu */
@media (max-width: 1200px) {
    .sf-search-menu-header .sf-mobile-drawer-search-title-icon {
        color: #1f2f36 !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search-icon {
        background: #f0f6f8 !important;
        color: #1f2f36 !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search-icon svg,
    .sf-search-menu-header .sf-mobile-drawer-search-title-icon svg {
        stroke: currentColor !important;
    }
}


/* Mobile drawer checkbox and select polish */
@media (max-width: 1200px) {
    .sf-search-menu-header .sf-mobile-drawer-search-select {
        background-image: none !important;
        background-color: transparent !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        padding-right: 0 !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options {
        gap: 6px;
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options label {
        min-height: 30px;
        padding: 3px 0;
        cursor: pointer;
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options input[type="checkbox"] {
        appearance: none;
        -webkit-appearance: none;
        position: relative;
        width: 18px;
        height: 18px;
        flex: 0 0 18px;
        border: 1px solid #cfe1e8;
        border-radius: 6px;
        background: #ffffff;
        box-shadow: inset 0 0 0 2px #ffffff;
        transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options input[type="checkbox"]:checked {
        border-color: #78c700;
        background: #78c700;
        box-shadow: inset 0 0 0 2px #ffffff, 0 4px 12px rgba(120, 199, 0, 0.20);
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options input[type="checkbox"]:checked::after {
        content: "";
        position: absolute;
        left: 5px;
        top: 2px;
        width: 6px;
        height: 10px;
        border: solid #0b3a4a;
        border-width: 0 2px 2px 0;
        transform: rotate(45deg);
    }
}


/* Mobile drawer length picker and round airport checks */
@media (max-width: 1200px) {
    .sf-search-menu-header .sf-mobile-drawer-search-title {
        display: none !important;
    }

    .sf-mobile-drawer-search-row--length {
        flex-wrap: wrap;
    }

    .sf-mobile-drawer-search-row--length.is-open>.sf-mobile-drawer-search-arrow {
        transform: rotate(90deg);
    }

    .sf-mobile-drawer-length-options {
        flex: 0 0 100%;
        display: grid;
        gap: 6px;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        padding-top: 0;
        padding-left: 40px;
        transform: translateY(-4px);
        transition: max-height 240ms ease, opacity 180ms ease, transform 240ms ease, padding-top 240ms ease;
    }

    .sf-mobile-drawer-search-row--length.is-open .sf-mobile-drawer-length-options {
        max-height: 180px;
        opacity: 1;
        padding-top: 8px;
        transform: translateY(0);
    }

    .sf-mobile-drawer-length-options button {
        min-height: 30px;
        padding: 4px 0;
        border: 0;
        background: transparent;
        color: #0b3a4a;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.25;
        text-align: left;
    }

    .sf-mobile-drawer-length-options button.is-active {
        color: #78c700;
    }

    .sf-mobile-drawer-search-length-summary {
        color: #315666;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.25;
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options input[type="checkbox"] {
        width: 20px;
        height: 20px;
        flex-basis: 20px;
        border-radius: 50%;
        border-color: #cfe1e8;
        box-shadow: none;
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options input[type="checkbox"]:checked {
        border-color: #78c700;
        background: #f4fbec;
        box-shadow: 0 0 0 2px rgba(120, 199, 0, 0.12);
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options input[type="checkbox"]:checked::after {
        left: 6px;
        top: 3px;
        width: 6px;
        height: 10px;
        border-color: #78c700;
    }
}


/* Mobile drawer search typography and border cleanup */
@media (max-width: 1200px) {
    .sf-search-menu-header .sf-mobile-drawer-search-label {
        font-size: 13px !important;
        line-height: 1.2 !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search-value,
    .sf-search-menu-header .sf-mobile-drawer-search-value::placeholder,
    .sf-search-menu-header .sf-mobile-drawer-search-select,
    .sf-search-menu-header .sf-mobile-drawer-search-qty-summary,
    .sf-search-menu-header .sf-mobile-drawer-search-length-summary,
    .sf-search-menu-header .sf-mobile-drawer-search-airport-summary {
        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.3 !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-search-value,
    .sf-search-menu-header .sf-mobile-drawer-search-value.form-control {
        min-height: 0 !important;
        height: auto !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        outline: 0 !important;
    }
}

/* Mobile drawer airport checks copied from checkout room selector */
@media (max-width: 1200px) {
    .sf-search-menu-header .sf-mobile-drawer-airport-options input[type="checkbox"] {
        position: absolute !important;
        opacity: 0 !important;
        pointer-events: none !important;
        width: 1px !important;
        height: 1px !important;
        margin: 0 !important;
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options .sf-mobile-drawer-airport-check {
        width: 20px;
        height: 20px;
        flex: 0 0 20px;
        border: 2px solid #aebdc6;
        border-radius: 12px;
        background: transparent;
        color: transparent;
        font-size: 12px;
        box-shadow: none;
        transition: border-color .2s ease, background-color .2s ease, color .2s ease;
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options label:hover .sf-mobile-drawer-airport-check {
        border-color: #7dc400;
    }

    .sf-search-menu-header .sf-mobile-drawer-airport-options label:has(input[type="checkbox"]:checked) .sf-mobile-drawer-airport-check {
        border-color: #75c000;
        color: #75c000;
        background: rgba(117, 192, 0, 0.12);
    }
}

/* Checkout trip participant selector */
.sf-trip-participants {
    margin: 0 0 14px;
    border: 1px solid #d9e8ee;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.sf-trip-participants__bar {
    width: 100%;
    min-height: 46px;
    border: 0;
    background: #fff;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    color: #0b3a4a;
    text-align: left;
}

.sf-trip-participants__icon {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #f0f6f8;
    color: #0f7d8b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px;
}

.sf-trip-participants__copy {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

.sf-trip-participants__label {
    font-weight: 800;
    font-size: 13px;
}

.sf-trip-participants__summary {
    color: #5f7480;
    font-size: 13px;
    font-weight: 600;
}

.sf-trip-participants__change {
    color: #2563eb;
    font-size: 12px;
    font-weight: 800;
    margin-left: auto;
}

.sf-trip-participants__arrow {
    color: #2563eb;
    transition: transform 180ms ease;
}

.sf-trip-participants.is-open .sf-trip-participants__arrow {
    transform: rotate(90deg);
}

.sf-trip-participants__panel {
    display: none;
    padding: 0 12px 12px;
}

.sf-trip-participants.is-open .sf-trip-participants__panel {
    display: block;
}

.sf-trip-participants__panel-inner {
    display: flex;
    justify-content: flex-end;
    padding-left: 34px;
}

.sf-trip-participants__controls {
    width: min(40%, 220px);
    min-width: 0;
}

.sf-trip-participants__grid {
    display: grid;
    gap: 8px;
    margin-bottom: 12px;
}

.sf-trip-participants__option {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    margin: 0;
    color: #0b3a4a;
    font-size: 13px;
    cursor: pointer;
}

.sf-trip-participants__option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.sf-trip-participants__check {
    width: 20px;
    height: 20px;
    border-radius: 12px;
    border: 2px solid #aebdc6;
    color: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 20px;
    transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}

.sf-trip-participants__option:hover .sf-trip-participants__check {
    border-color: #7dc400;
}

.sf-trip-participants__option input:checked~.sf-trip-participants__check {
    border-color: #75c000;
    color: #75c000;
    background: rgba(117, 192, 0, 0.12);
}

.sf-trip-participants__option-copy {
    min-width: 0;
}

.sf-trip-participants__option strong,
.sf-trip-participants__option small {
    display: block;
    line-height: 1.2;
}

.sf-trip-participants__option small {
    color: #6a7a82;
    font-weight: 600;
}

.sf-trip-participants__actions {
    display: flex;
    justify-content: flex-end;
}

.sf-trip-participants__save {
    min-height: 34px;
    padding: 8px 18px;
    border-radius: 12px;
    font-size: 12px;
}

@media (max-width: 575.98px) {
    .sf-trip-participants__panel-inner {
        padding-left: 34px;
    }

    .sf-trip-participants__controls {
        width: min(40%, 220px);
    }
}

.sf-cookie-notice[hidden],
.sf-cookie-notice__details[hidden] {
    display: none;
}

.sf-cookie-notice {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 10050;
    width: min(700px, calc(100vw - 48px));
    color: #173640;
}

.sf-cookie-notice__inner {
    display: block;
    padding: 20px;
    border: 1px solid rgba(23, 54, 64, 0.12);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(12, 44, 54, 0.2);
}

.sf-cookie-notice__content {
    min-width: 0;
}

.sf-cookie-notice__title {
    margin: 0 0 8px;
    color: #0b3a4a;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
}

.sf-cookie-notice__text,
.sf-cookie-notice__details p {
    margin: 0;
    color: #52676e;
    font-size: 13px;
    line-height: 1.55;
}

.sf-cookie-notice__details {
    max-height: min(42vh, 280px);
    margin-top: 12px;
    padding-top: 12px;
    padding-right: 4px;
    border-top: 1px solid #e4eaec;
    overflow-y: auto;
}

.sf-cookie-notice__service-info {
    margin-top: 12px !important;
    padding-top: 12px;
    border-top: 1px solid #e4eaec;
}

.sf-cookie-notice__preferences {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}

.sf-cookie-notice__preference {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #e1e8ea;
    border-radius: 10px;
    color: #31515b;
    cursor: pointer;
}

.sf-cookie-notice__preference span,
.sf-cookie-notice__preference strong,
.sf-cookie-notice__preference small {
    display: block;
}

.sf-cookie-notice__preference strong {
    color: #173640;
    font-size: 13px;
}

.sf-cookie-notice__preference small {
    margin-top: 2px;
    color: #6c7f85;
    font-size: 11px;
}

.sf-cookie-notice__preference input {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    accent-color: #75c000;
}

.sf-cookie-notice__save-preferences {
    justify-self: end;
    min-height: 38px;
    padding: 8px 14px;
    border: 1px solid #75c000;
    border-radius: 10px;
    background: #75c000;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.sf-cookie-notice__save-preferences:hover {
    border-color: #65a900;
    background: #65a900;
}

.sf-cookie-notice__policy {
    display: inline-block;
    margin-top: 10px;
    color: #0b6776;
    font-size: 13px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.sf-cookie-notice__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
}

.sf-cookie-notice__button {
    min-height: 40px;
    padding: 9px 15px;
    border: 1px solid transparent;
    border-radius: 11px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.sf-cookie-notice__button--primary {
    border-color: #75c000;
    background: #75c000;
    color: #fff;
}

.sf-cookie-notice__button--primary:hover {
    border-color: #65a900;
    background: #65a900;
}

.sf-cookie-notice__button--secondary {
    border-color: #cdd8dc;
    background: #fff;
    color: #31515b;
}

.sf-cookie-notice__button--secondary:hover {
    border-color: #91a7ae;
    background: #f4f7f8;
}

.sf-cookie-notice__button:focus-visible,
.sf-cookie-notice__policy:focus-visible,
.sf-cookie-notice__save-preferences:focus-visible,
.sf-cookie-settings-trigger:focus-visible,
.sf-google-map-loader button:focus-visible {
    outline: 3px solid rgba(117, 192, 0, 0.35);
    outline-offset: 3px;
}

.sf-cookie-settings-trigger[hidden] {
    display: none;
}

.sf-cookie-settings-trigger {
    position: fixed;
    left: 18px;
    bottom: 18px;
    z-index: 10040;
    padding: 8px 12px;
    border: 1px solid rgba(23, 54, 64, 0.2);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 24px rgba(12, 44, 54, 0.14);
    color: #31515b;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.sf-cookie-settings-trigger:hover {
    border-color: #91a7ae;
    background: #fff;
}

.sf-google-map-loader {
    display: flex;
    min-height: 320px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 32px;
    border: 1px solid #dbe4e7;
    background: #f5f8f8;
    text-align: center;
}

.sf-google-map-loader__icon {
    display: inline-flex;
    width: 52px;
    height: 52px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(117, 192, 0, 0.14);
    color: #5d9d00;
    font-size: 24px;
}

.sf-google-map-loader p {
    max-width: 520px;
    margin: 0;
    color: #52676e;
    font-size: 14px;
    line-height: 1.55;
}

@media (max-width: 768px) {
    .sf-cookie-notice {
        right: 12px;
        bottom: 12px;
        width: calc(100vw - 24px);
    }

    .sf-cookie-notice__inner {
        padding: 17px;
        border-radius: 15px;
    }

    .sf-cookie-notice__actions {
        align-items: stretch;
    }

    .sf-cookie-notice__button {
        flex: 1 1 auto;
    }

    .sf-google-map-loader {
        min-height: 260px;
        padding: 24px 18px;
    }
}

@media (max-width: 640px) {
    .sf-search-menu-mobile-static {
        transform: translateY(0%);
    }

    section.sf-banner-1-wrap.sf-hero-static-wrap {
        margin-bottom: 340px;
    }
}

/* Landing text-media widget */
.sf-text-media-section {
    padding: clamp(54px, 7vw, 110px) 0;
}

.sf-text-media-card {
    overflow: hidden;
    border: 1px solid rgba(15, 40, 50, 0.08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(15, 40, 50, 0.09);
}

.sf-text-media-card.has-media {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
}

.sf-text-media-content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: clamp(30px, 5vw, 72px);
}

.sf-text-media-card--text_full .sf-text-media-content,
.sf-text-media-card.no-media .sf-text-media-content {
    max-width: 980px;
    margin: 0 auto;
}

.sf-text-media-title {
    margin: 0;
    color: #123b49;
    font-size: clamp(30px, 4vw, 52px);
    font-weight: 800;
    line-height: 1.08;
}

.sf-text-media-subtitle {
    margin-top: 14px;
    color: #70b900;
    font-size: clamp(18px, 2vw, 25px);
    font-weight: 700;
    line-height: 1.3;
}

.sf-text-media-description {
    margin-top: 20px;
    color: #52676e;
    font-size: 16px;
    line-height: 1.75;
}

.sf-text-media-media {
    min-width: 0;
    min-height: 420px;
}

.sf-text-media-media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 420px;
    object-fit: cover;
}

.sf-text-media-card--text_image .sf-text-media-content {
    order: 1;
}

.sf-text-media-card--text_image .sf-text-media-media {
    order: 2;
}

.sf-text-media-card--image_text .sf-text-media-media {
    order: 1;
}

.sf-text-media-card--image_text .sf-text-media-content {
    order: 2;
}

@media (max-width: 767.98px) {
    .sf-text-media-section {
        padding: 48px 0;
    }

    .sf-text-media-card.has-media {
        grid-template-columns: minmax(0, 1fr);
    }

    .sf-text-media-card.has-media .sf-text-media-media {
        order: 1;
        min-height: 250px;
    }

    .sf-text-media-card.has-media .sf-text-media-content {
        order: 2;
    }

    .sf-text-media-media img {
        min-height: 250px;
        max-height: 360px;
    }

    .sf-text-media-content {
        padding: 28px 24px 32px;
    }
}

section.sf-page-section.sf-page-map {
    margin-top: 50px;
}


/* Auth search-menu drawer desktop width */
@media (min-width: 1201px) {

    .sf-auth-body .sf-search-menu-header.mobile-sider-drawer-menu .header-nav.navbar-collapse,
    .sf-auth-body .sf-search-menu-header.mobile-sider-drawer-menu .header-nav {
        flex: 0 0 320px !important;
        width: 320px !important;
        max-width: calc(100vw - 34px) !important;
        justify-content: flex-start !important;
    }
}


.sf-auth-page .sf-auth-alert {
    margin-bottom: 18px;
    padding: 12px 14px;
    border: 1px solid #cfe8bd;
    border-radius: 12px;
    background: #f2faec;
    color: #35630f !important;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    box-shadow: 0 8px 20px rgba(66, 112, 29, 0.06);
}

/* Checkout expedition picker: uses the existing radio-card selection pattern. */
.sf-checkout-expedition-slider {
    padding: 0 2px;
}

.sf-checkout-expedition-slider .swiper-wrapper {
    align-items: stretch;
}

.sf-checkout-expedition-slider .swiper-slide {
    display: flex;
    height: auto;
}

.sf-checkout-expedition-slider .sf-radio-card {
    width: 100%;
    height: 100%;
    background: #fff;
}

.sf-checkout-expedition-slider .sf-radio-card.is-active {
    background: #f6f9ef;
}

/* Expedition names may be longer than a single slider card. */
.sf-checkout-expedition-slider .sf-insurance-addon-content {
    min-width: 0;
}

.sf-checkout-expedition-slider .sf-insurance-addon-content > strong {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: break-word;
}

.sf-checkout-expedition-option__image {
    width: 82px;
    height: 64px;
    flex: 0 0 82px;
    border-radius: 8px;
    object-fit: cover;
}

/* Hero multi slider: a simple opacity transition avoids layout shifts between slides. */
.sf-hero-multi-slider {
    display: grid;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr);
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.sf-hero-multi-slider__slide {
    grid-area: 1 / 1;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 450ms ease-in-out, visibility 0s linear 450ms;
}

.sf-hero-multi-slider__slide.is-active {
    z-index: 1;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition: opacity 450ms ease-in-out;
}

.sf-hero-multi-slider__slide.is-active.is-clickable {
    cursor: pointer;
}

/* The native link covers a configured slide; CTA buttons remain independently usable. */
.sf-hero-multi-wrap.is-clickable .sf-hero-multi-slide-link {
    position: absolute;
    z-index: 3;
    inset: 0;
    display: block;
}

.sf-hero-multi-wrap.is-clickable .sf-hero-multi-overlay {
    z-index: 4;
    pointer-events: none;
}

.sf-hero-multi-wrap.is-clickable .sf-hero-multi-overlay a,
.sf-hero-multi-wrap.is-clickable .sf-hero-multi-overlay button,
.sf-hero-multi-wrap.is-clickable .sf-hero-multi-overlay input,
.sf-hero-multi-wrap.is-clickable .sf-hero-multi-overlay select,
.sf-hero-multi-wrap.is-clickable .sf-hero-multi-overlay textarea {
    position: relative;
    z-index: 4;
    pointer-events: auto;
}

/* Generic rich-text section managed from the homepage section editor. */
.sf-custom-section {
    padding: clamp(48px, 7vw, 96px) 0;
}

.sf-custom-content {
    max-width: 960px;
    margin: 0 auto;
    color: #20333d;
    font-size: 16px;
    line-height: 1.7;
}

.sf-custom-content> :first-child {
    margin-top: 0;
}

.sf-custom-content> :last-child {
    margin-bottom: 0;
}

.sf-custom-content h2,
.sf-custom-content h3 {
    color: #102f3c;
    font-weight: 800;
    line-height: 1.2;
}

.sf-custom-content h2 {
    margin: 0 0 24px;
    font-size: clamp(30px, 3.2vw, 44px);
}

.sf-custom-content h3 {
    margin: 28px 0 12px;
    font-size: clamp(22px, 2.4vw, 30px);
}

.sf-custom-image {
    display: block;
    margin: 0 0 28px;
    overflow: hidden;
    border-radius: 18px;
}

a.sf-custom-image:hover img {
    transform: scale(1.015);
}

.sf-custom-content img {
    max-width: 100%;
    height: auto;
}

.sf-custom-image img {
    display: block;
    width: 100%;
    max-height: 560px;
    object-fit: cover;
    transition: transform 180ms ease;
}

.sf-custom-content table {
    width: 100%;
    margin: 20px 0;
    border-collapse: collapse;
}

.sf-custom-content th,
.sf-custom-content td {
    padding: 10px 12px;
    border: 1px solid rgba(16, 47, 60, 0.16);
    text-align: left;
}

.sf-custom-content th {
    background: rgba(16, 47, 60, 0.06);
}

@media (prefers-reduced-motion: reduce) {
    .sf-hero-multi-slider__slide {
        transition: none;
    }
}

.sf-page-highlight__description ul,
.sf-page-rich .sf-page-content ul,
.sf-page-section.sf-page-rich ol,
.sf-page-split-text ul {
    padding-left: 40px;
}

.sf-page-rich .sf-page-content ol ol {
    list-style-type: lower-alpha;
}

.sf-page-rich .sf-page-content ol ol ol {
    list-style-type: lower-roman;
}

/* Home expedition cards; keep the established site palette. */
.sf-expeditions-showcase--cards .sf-expeditions-showcase-head { display:flex; flex-direction:column; align-items:center; gap:24px; text-align:center; margin-bottom:12px; }
.sf-expeditions-showcase--cards .sf-expeditions-showcase-heading-copy { position:relative; width:100%; padding:28px 0 42px; }
.sf-expeditions-showcase--cards .sf-expeditions-showcase-heading-copy .sf-head-title { color:#066168; font-size:clamp(30px,3.4vw,46px); font-weight:700; }
.sf-expeditions-showcase--cards .sf-expeditions-showcase-heading-copy .sf-head-discription { position:relative; z-index:1; }
.sf-expeditions-showcase--cards .sf-expeditions-showcase-heading-copy .sf-head-title-image { position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:min(470px,100%); pointer-events:none; }
.sf-expeditions-showcase--cards .sf-expeditions-showcase-heading-copy .sf-head-title-image img { display:block; width:100%; height:auto; }
.sf-expeditions-showcase--cards .sf-expeditions-showcase-all-link { position:static; flex-shrink:0; border:1px solid #08737c; border-radius:999px; padding:12px 20px; font-size:13px; line-height:1.3; }
.sf-showcase-cards-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; }
.sf-showcase-card { grid-column:span 4; min-width:0; overflow:hidden; display:flex; flex-direction:column; background:#fff; border:1px solid #dce9ed; border-radius:16px; box-shadow:0 10px 24px rgba(15,40,50,.07); }
.sf-showcase-card:nth-last-child(2):nth-child(3n+1), .sf-showcase-card:last-child:nth-child(3n+2) { grid-column:span 6; }
.sf-showcase-card-media { position:relative; height:200px; flex-shrink:0; background:#dceced; }
.sf-showcase-card-media > a, .sf-showcase-card-media img { display:block; width:100%; height:100%; }
.sf-showcase-card-media img { object-fit:cover; }
.sf-showcase-card-image-empty { display:grid; place-items:center; height:100%; color:#08737c; font-size:42px; background:linear-gradient(135deg,#d9eeee,#eef7f7); }
.sf-showcase-card-badges { position:absolute; top:14px; left:14px; right:14px; display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:8px; pointer-events:none; }
.sf-showcase-card-badges .sf-public-expedition-badge, .sf-showcase-card-badges .sf-public-expedition-availability { margin:0; padding:9px 12px; border-radius:999px; font-size:10px; line-height:1.2; box-shadow:0 2px 8px rgba(15,40,50,.08); }
.sf-showcase-card-badges .sf-public-expedition-availability { background:#fff; max-width:100%; }
.sf-showcase-card-badges .sf-public-expedition-availability.is-last { color:#b77900; }
.sf-showcase-card-badges .sf-public-expedition-availability.is-unavailable { background:#fff2f2; }
.sf-showcase-card-badges .sf-public-expedition-availability i { flex-shrink:0; width:9px; height:9px; }
.sf-showcase-card-body { display:flex; flex-direction:column; flex:1; min-width:0; padding:18px; }
.sf-showcase-card-body h3 { margin:0; font-size:20px; line-height:1.3; color:#10323b; overflow-wrap:anywhere; }
.sf-showcase-card-body h3 a { color:inherit; }
.sf-showcase-card-description { margin:5px 0 0; color:#53666e; font-size:16px; line-height:1.5; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.sf-showcase-card-body .sf-public-expedition-sales-closed-description { margin:5px 0 0; color:#53666e; font-size:14px; line-height:1.5; white-space:pre-line; overflow-wrap:anywhere; }
.sf-showcase-card-body .sf-public-expedition-meta { margin-top:14px; gap:8px 14px; }
.sf-showcase-card-program { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:16px; padding-top:14px; border-top:1px solid #e3eef0; }
.sf-showcase-card-program-item { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.sf-showcase-card-program-item:only-child { grid-column:1/-1; }
.sf-showcase-card-program-item + .sf-showcase-card-program-item { border-left:1px solid #e3eef0; padding-left:14px; }
.sf-showcase-card-program-item > i { flex-shrink:0; color:#08737c; font-size:22px; line-height:1.2; }
.sf-showcase-card-program-item h4 { margin:0 0 5px; color:#10323b; font-size:13px; line-height:1.4; font-weight:600; }
.sf-showcase-card-program-item p { margin:0; color:#64767d; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.sf-showcase-card-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:auto; padding-top:18px; }
.sf-showcase-card-action { flex:1 1 120px; display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:10px 14px; border-radius:12px; font-size:13px; line-height:1.4; text-align:center; }
.sf-showcase-card-details { color:#10323b; background:#fff; border:1px solid #08737c; }
.sf-showcase-card-details i { color:#08737c; }
.sf-showcase-card-details:hover, .sf-showcase-card-details:focus-visible { color:#08737c; background:#eef8f8; }
.sf-showcase-card-action-disabled { background:#e3e8e9; color:#596b72; }
.sf-showcase-card.is-past .sf-public-expedition-badge { background:#e3e8e9; color:#596b72; }
@media(max-width:1199px) {
    .sf-showcase-cards-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .sf-showcase-card, .sf-showcase-card:nth-last-child(2):nth-child(3n+1), .sf-showcase-card:last-child:nth-child(3n+2) { grid-column:auto; }
}
@media(max-width:767px) {
    .sf-expeditions-showcase--cards .sf-expeditions-showcase-head { align-items:center; gap:18px; }
    .sf-showcase-cards-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
    .sf-showcase-card-body { padding:16px; }
    .sf-showcase-card-body h3 { font-size:20px; }
    .sf-showcase-card-badges { top:12px; left:12px; right:12px; }
}

/* Public expedition showcase and expeditions list */
.sf-expeditions-showcase {
    padding-bottom: 80px;
    background:
        radial-gradient(circle at 8% 12%, rgba(105, 200, 205, .13), transparent 27%),
        linear-gradient(135deg, #f7fbfb 0%, #eef8f8 100%);
}

.sf-expeditions-showcase-shell {
    background: transparent;
}

.sf-expeditions-showcase-head {
    position: relative;
    padding: 0 0 26px;
}

.sf-expeditions-showcase-head .sf-head-title {
    margin: 0;
    color: #10243c;
    font-size: clamp(28px, 3vw, 40px);
    line-height: 1.1;
}

.sf-expeditions-showcase-head .sf-head-discription {
    margin: 8px 0 0;
    color: #536573;
    font-size: 16px;
}

.sf-expeditions-showcase-heading-copy {
    min-width: 0;
}

.sf-expeditions-showcase-all-link {
    position: absolute;
    top: 12px;
    right: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #08737c;
    font-size: 17px;
    font-weight: 500;
}

.sf-expeditions-showcase-all-link:hover,
.sf-expeditions-showcase-all-link:focus-visible {
    color: #054f56;
}

.sf-expeditions-showcase-featured,
.sf-expeditions-showcase-group {
    padding-right: 0;
    padding-left: 0;
}

.sf-expeditions-showcase-featured {
    padding-top: 0;
}

.sf-expeditions-showcase-group {
    padding-top: 34px;
}

.sf-expeditions-showcase-group--past {
    padding-bottom: 4px;
}

.sf-expeditions-showcase-group-title {
    margin: 0 0 14px;
    color: #10323b;
    font-size: 22px;
    line-height: 1.2;
}

.sf-public-expedition-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 12px;
}

.sf-public-expeditions-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.sf-public-expeditions-grid--past {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sf-expedition-upcoming-swiper {
    overflow: visible;
}

.sf-expedition-upcoming-swiper .swiper-slide {
    min-width: 0;
    height: auto;
}

.sf-expedition-upcoming-swiper .sf-public-expedition-card {
    height: 100%;
}

.sf-public-expedition-card {
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #dce9ed;
    border-radius: 12px;
    box-shadow: 0 10px 24px rgba(15, 40, 50, 0.07);
}

.sf-public-expedition-media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 21 / 9;
    background: #dceced;
}

button.sf-public-expedition-media {
    width: 100%;
    padding: 0;
    border: 0;
    text-align: left;
    cursor: pointer;
}

.sf-public-expedition-media--gallery .sf-hotel-list-gallery-btn {
    pointer-events: none;
}

.sf-public-expedition-media img,
.sf-public-expedition-media-empty {
    display: block;
    width: 100%;
    height: 100%;
}

.sf-public-expedition-media img {
    object-fit: cover;
    transition: transform 180ms ease;
}

.sf-public-expedition-card:hover .sf-public-expedition-media img {
    transform: scale(1.025);
}

.sf-public-expedition-media-empty {
    display: grid;
    place-items: center;
    color: #08737c;
    background: linear-gradient(135deg, #d9eeee, #eef7f7);
    font-size: 42px;
}

.sf-public-expedition-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 18px;
}

.sf-public-expedition-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    margin-bottom: 9px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #dff5ef;
    color: #08737c;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1;
    text-transform: uppercase;
}

.sf-public-expedition-status-row {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.sf-public-expedition-availability {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #3d971d;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.sf-public-expedition-availability i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: currentColor;
}

.sf-public-expedition-availability.is-unavailable {
    color: #a14b4b;
}

.sf-public-expedition-body h3 {
    min-height: 2.4em;
    margin: 0 0 10px;
    color: #10323b;
    font-size: 21px;
    line-height: 1.2;
}

.sf-public-expedition-body h3 a {
    color: inherit;
}

.sf-public-expedition-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 14px;
    color: #64767d;
    font-size: 13px;
    line-height: 1.35;
}

.sf-public-expedition-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.sf-public-expedition-meta i {
    color: #08737c;
}

.sf-public-expedition-body p.sf-public-expedition-sales-closed-description {
    display: block;
    overflow: visible;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.sf-public-expedition-body p {
    display: -webkit-box;
    overflow: hidden;
    margin: 12px 0 0;
    color: #53666e;
    font-size: 14px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.sf-public-expedition-action {
    margin-top: auto;
    padding: 10px 15px;
    font-size: 12px;
}

.sf-public-expedition-card-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin-top: 18px;
}

.sf-public-expedition-card-actions .sf-public-expedition-action,
.sf-public-expedition-card-actions .sf-public-expedition-details-action {
    margin-top: 0;
}

.sf-public-expedition-body p + .sf-public-expedition-action,
.sf-public-expedition-meta + .sf-public-expedition-action {
    margin-top: 16px;
}

.sf-public-expedition-program {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #dce6e9;
}

.sf-public-expedition-program--sections-1 {
    grid-template-columns: minmax(0, 1fr);
}

.sf-public-expedition-program--sections-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sf-public-expedition-program-section {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 14px;
    min-width: 0;
    padding: 0 14px;
}

.sf-public-expedition-program-section:first-child {
    padding-left: 0;
}

.sf-public-expedition-program-section + .sf-public-expedition-program-section {
    border-left: 1px solid #e5edef;
}

.sf-public-expedition-program-section h4 {
    margin: 0 0 8px;
    color: #16333e;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
}

.sf-public-expedition-program-icon {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 50%;
    background: #e9f8f7;
    color: #08737c;
}

.sf-public-expedition-program-icon i {
    color: #08737c;
    font-size: 25px;
}

.sf-public-expedition-program-icon img {
    display: block;
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.sf-public-expedition-program-section ul {
    display: grid;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sf-public-expedition-program-section li,
.sf-public-expedition-program-more {
    color: #64767d;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-size: 14px;
    line-height: 1.45;
}

.sf-public-expedition-program-section li {
    display: flex;
    align-items: flex-start;
    gap: 7px;
}

.sf-public-expedition-program-section li i {
    flex: 0 0 auto;
    margin-top: 3px;
    color: #56ba09;
    font-size: 17px;
}

.sf-public-expedition-program-hotel {
    display: grid;
    gap: 3px;
    color: #64767d;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-size: 14px;
    line-height: 1.45;
}

.sf-public-expedition-program-hotel strong {
    color: #4c7184;
    font-weight: 600;
}

.sf-public-expedition-program-hotel-summary {
    margin: 0;
    color: #4c7184;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
}

.sf-public-expedition-program-description {
    display: block;
    color: #64767d;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-size: 14px;
    line-height: 1.4;
}

.sf-public-expedition-program-availability {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 5px;
    color: #17313d;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-size: 14px;
    font-weight: 700;
}

.sf-public-expedition-program-availability i {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #56ba09;
}

.sf-public-expedition-program-availability.is-last i {
    background: #f58b00;
}

.sf-public-expedition-program-availability.is-unavailable i {
    background: #a14b4b;
}

.sf-public-expedition-program-more {
    margin-top: 5px;
    color: #08737c;
    font-weight: 700;
}

.sf-public-expedition-card--featured {
    display: grid;
    grid-template-columns: minmax(0, 54%) minmax(0, 46%);
    padding: 0;
    background: #fff;
    border: 0;
    border-radius: 12px;
    box-shadow: 0 16px 36px rgba(15, 40, 50, 0.12);
}

.sf-public-expedition-card--featured .sf-public-expedition-media,
.sf-public-expedition-featured-swiper {
    min-height: 430px;
    aspect-ratio: auto;
}

.sf-public-expedition-featured-swiper {
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #dceced;
}

.sf-public-expedition-featured-swiper .swiper-wrapper,
.sf-public-expedition-featured-swiper .swiper-slide,
.sf-public-expedition-featured-swiper .sf-public-expedition-media {
    height: 100%;
}

.sf-public-expedition-featured-swiper .swiper-pagination {
    bottom: 16px;
}

.sf-public-expedition-featured-swiper .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    opacity: .9;
    background: rgba(255, 255, 255, .8);
}

.sf-public-expedition-featured-swiper .swiper-pagination-bullet-active {
    width: 20px;
    border-radius: 8px;
    background: #fff;
}

.sf-public-expedition-card--featured .sf-public-expedition-body {
    justify-content: center;
    padding: 34px 40px;
}

.sf-public-expedition-card--featured .sf-public-expedition-body h3 {
    margin-bottom: 22px;
    font-size: clamp(28px, 3vw, 38px);
}

.sf-public-expedition-card--featured .sf-public-expedition-meta {
    gap: 10px 18px;
    font-size: 15px;
}

.sf-public-expedition-card--featured .sf-public-expedition-body p {
    margin-top: 24px;
    font-size: 16px;
    line-height: 1.55;
    -webkit-line-clamp: 3;
}

.sf-public-expedition-features {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 28px;
}

.sf-public-expedition-feature {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    min-height: 58px;
    padding: 4px 16px;
    color: #16333e;
    font-size: 13px;
    line-height: 1.25;
}

.sf-public-expedition-feature:first-child {
    padding-left: 0;
}

.sf-public-expedition-feature + .sf-public-expedition-feature {
    border-left: 1px solid #dce6e9;
}

.sf-public-expedition-feature i {
    color: #08737c;
    font-size: 27px;
}

.sf-public-expedition-actions {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 26px;
    margin-top: 28px;
}

.sf-public-expedition-card--featured .sf-public-expedition-action {
    min-width: 210px;
    margin-top: 0;
    padding: 14px 24px;
    font-size: 16px;
    font-weight: 700;
}

.sf-public-expedition-secondary-action {
    color: #08737c;
    font-size: 15px;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.sf-public-expedition-secondary-action:hover,
.sf-public-expedition-secondary-action:focus-visible {
    color: #054f56;
}

.sf-expeditions-showcase-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 22px;
    padding: 18px 24px;
    border: 1px solid #e1eaed;
    border-radius: 12px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 10px 24px rgba(15, 40, 50, .07);
}

.sf-expeditions-showcase-trust-item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 48px;
    color: #17313d;
    font-size: 15px;
}

.sf-expeditions-showcase--cards .sf-expeditions-showcase-trust {
    margin-bottom: 28px;
}

.sf-expeditions-showcase-trust-item + .sf-expeditions-showcase-trust-item {
    border-left: 1px solid #dce6e9;
}

.sf-expeditions-showcase-trust-item i {
    color: #08737c;
    font-size: 27px;
}

.sf-public-expedition-card--compact {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
}

.sf-public-expedition-card--compact .sf-public-expedition-media {
    height: 100%;
    min-height: 145px;
    aspect-ratio: auto;
}

.sf-public-expedition-card--compact .sf-public-expedition-body {
    padding: 14px;
}

.sf-public-expedition-card--compact .sf-public-expedition-body h3 {
    font-size: 18px;
}

.sf-public-expedition-card.is-past {
    background: #f4f6f6;
    border-color: #d9e0e2;
    box-shadow: none;
    filter: saturate(.35);
    opacity: .76;
}

.sf-public-expedition-card.is-past .sf-public-expedition-badge {
    background: #e3e8e9;
    color: #596b72;
}

.sf-expeditions-index {
    display: flex;
    flex-direction: column;
    gap: 46px;
    padding-bottom: 80px;
}

/* Lista wypraw korzysta z tego samego, poziomego układu kart co lista hoteli. */
.sf-expeditions-index .sf-public-expeditions-grid {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.sf-expeditions-index .sf-expeditions-index-group--pinned {
    padding: 0;
    border: 0;
    background: transparent;
}

.sf-expeditions-index .sf-public-expedition-card {
    display: grid;
    grid-template-columns: minmax(220px, 360px) minmax(0, 1fr);
    gap: 18px;
    align-items: stretch;
    padding: 10px;
    border: 2px solid rgb(228, 238, 243);
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(12, 73, 89, 0.10);
}

.sf-expeditions-index .sf-public-expedition-media {
    min-height: 0;
    height: 100%;
    aspect-ratio: auto;
    border-radius: 12px;
}

.sf-expeditions-index .sf-public-expedition-body {
    min-width: 0;
    min-height: 0;
    height: 100%;
    padding: 8px 10px 8px 4px;
    font-family: "AfacadFull", "Afacad", sans-serif;
}

.sf-expeditions-index .sf-public-expedition-body h3 {
    min-height: 0;
    margin-bottom: 8px;
    font-size: clamp(24px, 2vw, 30px);
}

.sf-expeditions-index .sf-public-expedition-body > p {
    margin: 0 0 16px;
    color: #6b8292;
    font-size: 17px;
    -webkit-line-clamp: 2;
}

.sf-expeditions-index .sf-public-expedition-availability {
    padding: 4px 0;
    color: #43802c;
    font-size: 13px;
    letter-spacing: 0;
    text-transform: none;
}

.sf-expeditions-index .sf-public-expedition-availability.is-last {
    color: #bd6a0b;
}

.sf-expeditions-index .sf-public-expedition-availability.is-unavailable {
    color: #a14b4b;
}

.sf-expeditions-index .sf-public-expedition-action {
    align-self: flex-end;
    min-width: 174px;
    margin-top: auto;
}

.sf-expeditions-index .sf-public-expedition-card-actions {
    justify-content: flex-end;
}

.sf-expeditions-index .sf-public-expedition-card-actions .sf-public-expedition-action,
.sf-expeditions-index .sf-public-expedition-card-actions .sf-public-expedition-details-action {
    min-width: 174px;
    padding: 12px 18px;
    border-radius: 12px;
    font-size: 12px;
    line-height: 1.1;
}

.sf-expeditions-index .sf-public-expedition-list-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-weight: 600;
}

.sf-expeditions-index .sf-public-expedition-list-btn i {
    flex: 0 0 auto;
    font-size: 14px;
    line-height: 1;
}

.sf-expeditions-index .sf-public-expedition-details-action {
    border: 1px solid #08737c;
    background: #fff !important;
    color: #08737c !important;
    box-shadow: none;
}

.sf-expeditions-index .sf-public-expedition-details-action.butn-bg-shape::after {
    display: none;
}

.sf-expeditions-index .sf-public-expedition-details-action:hover,
.sf-expeditions-index .sf-public-expedition-details-action:focus-visible {
    background: #eef9f8 !important;
    color: #065d65 !important;
    box-shadow: none;
}

.sf-expeditions-index-group {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.sf-expeditions-index-group--pinned {
    padding: 24px;
    border: 1px solid #cfe6e4;
    border-radius: 12px;
    background: #eff8f7;
}

.sf-expeditions-index-heading {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.sf-expeditions-index-heading-icon {
    flex: 0 0 38px;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 12px;
    background: #dff5ef;
    color: #08737c;
    font-size: 18px;
}

.sf-expeditions-index-heading h2 {
    margin: 0;
    color: #10323b;
    font-size: clamp(24px, 3vw, 32px);
    line-height: 1.15;
}

.sf-expeditions-index-heading p {
    margin: 4px 0 0;
    color: #62757c;
    font-size: 14px;
}

@media (max-width: 991px) {
    .sf-public-expeditions-grid,
    .sf-public-expeditions-grid--past {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sf-public-expedition-card--featured {
        grid-template-columns: minmax(0, 48%) minmax(0, 52%);
    }

    .sf-public-expedition-card--featured .sf-public-expedition-body {
        padding: 26px;
    }

    .sf-public-expedition-feature {
        grid-template-columns: 1fr;
        justify-items: center;
        padding: 4px 10px;
        text-align: center;
    }

    .sf-public-expedition-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }
}

@media (max-width: 767px) {
    .sf-expeditions-showcase {
        padding-bottom: 54px;
    }

    .sf-expeditions-showcase-head {
        padding-bottom: 20px;
    }

    .sf-expeditions-showcase-all-link {
        position: static;
        margin-top: 14px;
    }

    .sf-public-expeditions-grid,
    .sf-public-expeditions-grid--past {
        grid-template-columns: 1fr;
    }

    .sf-expedition-upcoming-swiper {
        overflow: hidden;
        padding-bottom: 28px;
    }

    .sf-expedition-upcoming-swiper .swiper-wrapper {
        display: flex;
        gap: 0;
    }

    .sf-expedition-upcoming-swiper .swiper-pagination {
        bottom: 0;
    }

    .sf-expedition-upcoming-swiper .swiper-pagination-bullet-active {
        background: #08737c;
    }

    .sf-public-expedition-card--featured,
    .sf-public-expedition-card--compact {
        display: flex;
        padding: 0;
    }

    .sf-public-expedition-card--featured .sf-public-expedition-media,
    .sf-public-expedition-featured-swiper,
    .sf-public-expedition-card--compact .sf-public-expedition-media {
        width: 100%;
        min-height: 0;
        height: auto;
        aspect-ratio: 16 / 9;
        border-radius: 0;
    }

    .sf-public-expedition-card--featured .sf-public-expedition-body {
        padding: 18px;
    }

    .sf-public-expedition-card--featured .sf-public-expedition-media,
    .sf-public-expedition-featured-swiper {
        min-height: 0;
    }

    .sf-public-expedition-features,
    .sf-expeditions-showcase-trust {
        grid-template-columns: 1fr;
    }

    .sf-public-expedition-feature {
        grid-template-columns: 34px minmax(0, 1fr);
        justify-items: start;
        padding: 10px 0;
        text-align: left;
    }

    .sf-public-expedition-feature + .sf-public-expedition-feature,
    .sf-expeditions-showcase-trust-item + .sf-expeditions-showcase-trust-item {
        border-top: 1px solid #dce6e9;
        border-left: 0;
    }

    .sf-expeditions-showcase-trust {
        padding: 10px 18px;
    }

    .sf-expeditions-showcase-trust-item {
        justify-content: flex-start;
        padding: 8px 0;
    }

    .sf-public-expedition-actions,
    .sf-public-expedition-card--featured .sf-public-expedition-action {
        width: 100%;
    }

    .sf-public-expedition-secondary-action {
        align-self: center;
    }

    .sf-expeditions-index {
        gap: 34px;
    }

    .sf-expeditions-index-group--pinned {
        padding: 16px;
    }

    .sf-public-expedition-program {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .sf-public-expedition-program-section {
        padding: 0;
    }

    .sf-public-expedition-program-section + .sf-public-expedition-program-section {
        padding-top: 12px;
        border-top: 1px solid #e5edef;
        border-left: 0;
    }
}

@media (max-width: 991px) {
    .sf-expeditions-index .sf-public-expedition-card {
        grid-template-columns: 1fr;
    }

    .sf-expeditions-index .sf-public-expedition-media {
        min-height: 220px;
        height: 220px;
    }

    .sf-expeditions-index .sf-public-expedition-body {
        min-height: 0;
        padding: 8px 10px 10px;
    }
}

@media (max-width: 575px) {
    .sf-expeditions-index .sf-public-expedition-media {
        min-height: 0;
        height: auto;
        aspect-ratio: 21 / 9;
    }

    .sf-expeditions-index .sf-public-expedition-action {
        width: 100%;
    }

    .sf-expeditions-index .sf-public-expedition-card-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .sf-expeditions-index .sf-public-expedition-card-actions .sf-public-expedition-action,
    .sf-expeditions-index .sf-public-expedition-card-actions .sf-public-expedition-details-action {
        width: 100%;
    }
}


/* Footer: contacts are kept as compact, readable call-to-action blocks. */
.site-footer .widget_address li.sf-footer-phone-contact {
    margin-bottom: 18px;
}

.site-footer .widget_address li.sf-footer-phone-contact .sf-footer-phone-link {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    text-decoration: none;
}

.site-footer .widget_address li .sf-footer-phone-label {
    color: #ffffff;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.05;
}

.site-footer .widget_address li span.sf-footer-phone-number {
    color: #ffb20f;
    font-family: "AfacadFull", "Afacad", sans-serif;
    font-size: clamp(24px, 2vw, 29px);
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.05;
    white-space: nowrap;
}

.site-footer .widget_address li.sf-footer-phone-contact .sf-footer-phone-link:hover .sf-footer-phone-number,
.site-footer .widget_address li.sf-footer-phone-contact .sf-footer-phone-link:focus-visible .sf-footer-phone-number {
    color: #ffd36d;
}

@media (max-width: 575px) {
    .site-footer .widget_address li span.sf-footer-phone-number {
        font-size: 26px;
    }
}


/* Bootstrap icon glyphs have an asymmetric font box; centre their visible shape. */
.site-footer .widget_address li .sf-icon i {
    display: block;
    line-height: 1;
    transform: translateY(1px);
}

/* Dynamic children menu */
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-date-group,
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-length-group,
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-origin-group {
    position: relative;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-date-group {
    flex: 0 1 185px;
    min-width: 155px;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-length-group {
    flex: 0 1 170px !important;
    min-width: 150px !important;
    padding-right: 0 !important;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-origin-group {
    flex: 0 1 155px !important;
    min-width: 135px !important;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-dynamic-field-icon {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    color: #526c7d;
    font-size: 21px;
    line-height: 1;
    pointer-events: none;
    transform: translateY(-50%);
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-date-group .sf-repeatable-date.form-control {
    height: 52px;
    background: #fff !important;
    background-color: #fff !important;
    padding-left: 45px;
    color: #0b2a3e !important;
    -webkit-text-fill-color: #0b2a3e;
    font-size: 13px;
    font-weight: 500;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-date-group .sf-repeatable-date::placeholder {
    color: #0b2a3e;
    -webkit-text-fill-color: #0b2a3e;
    font-size: 13px;
    opacity: 1;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-length-group .dropdown.bootstrap-select.form-select,
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-origin-group .dropdown.bootstrap-select.form-select {
    display: block;
    width: 100% !important;
    height: 52px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-length-group .bootstrap-select > .dropdown-toggle,
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-origin-group .bootstrap-select > .dropdown-toggle {
    width: 100%;
    height: 52px;
    padding: 0 30px 0 45px;
    border: 1px solid #d7e5ec;
    background: #fff;
    color: #0b2a3e;
    font-size: 13px;
    font-weight: 500;
    text-align: left;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-length-group .bootstrap-select .filter-option,
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-origin-group .bootstrap-select .filter-option {
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 500;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-length-group .filter-option-inner-inner,
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-origin-group .filter-option-inner-inner {
    color: #0b2a3e;
    font-size: 13px;
    font-weight: 500;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-search-btn {
    height: 52px;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-dynamic-search-icon {
    font-size: 21px;
    line-height: 1;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-action {
    flex-basis: 120px;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-dynamic-people .sf-repeatable-qty-row[data-qty-row="rooms_count"] {
    min-height: 52px;
}
.sf-repeatable-search-form[data-dynamic-children-form] .sf-dynamic-people .sf-repeatable-qty-row[data-qty-row="rooms_count"] .sf-qty-label,
.sf-repeatable-search-form[data-dynamic-children-form] .sf-dynamic-people .sf-repeatable-qty-row[data-qty-row="rooms_count"] .sf-qty-value {
    font-size: 13px;
    font-weight: 500;
}
.sf-dynamic-room-icon {
    display: inline-flex;
    flex: 0 0 23px;
    width: 23px;
    height: 23px;
    align-items: center;
    justify-content: center;
    color: #526c7d;
}
.sf-dynamic-room-icon svg {
    display: block;
    width: 23px;
    height: 23px;
}
@media (max-width: 1200px) {
    .sf-dynamic-children-search-section .sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-date-group {
        flex: 1 1 185px;
        min-width: 0;
    }
    .sf-dynamic-children-search-section .sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-length-group {
        flex: 1 1 125px !important;
        min-width: 0 !important;
    }
    .sf-dynamic-children-search-section .sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-origin-group {
        flex: 1 1 155px !important;
        min-width: 0 !important;
    }
    .sf-dynamic-children-search-section .sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-action {
        flex: 1 1 100%;
    }
}
@media (max-width: 640px) {
    .sf-dynamic-children-search-section .sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-date-group {
        flex-basis: calc(58% - 6px);
    }
    .sf-dynamic-children-search-section .sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-length-group {
        flex-basis: calc(42% - 6px) !important;
    }
    .sf-dynamic-children-search-section .sf-repeatable-search-form[data-dynamic-children-form] .sf-repeatable-origin-group {
        flex-basis: 100% !important;
    }
}
.sf-dynamic-people.sf-repeatable-people {
    flex: 1 1 390px;
    min-width: 320px;
    display: grid;
    grid-template-columns: minmax(190px, 1fr) minmax(125px, 0.65fr);
    gap: 8px;
}
.sf-dynamic-people .sf-dynamic-participants-field {
    min-width: 0;
}
.sf-dynamic-participants-trigger {
    width: 100%;
    min-height: 52px;
    padding: 6px 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #d7e5ec;
    border-radius: 12px;
    background: #fff;
    color: #0b2a3e;
    text-align: left;
    cursor: pointer;
}
.sf-dynamic-participants-trigger:hover:not([aria-expanded="true"]) {
    border-color: #d7e5ec;
    background: #fff;
    color: #0b2a3e;
    box-shadow: none;
    transform: none;
}
.sf-dynamic-participants-trigger[aria-expanded="true"] {
    border-color: #0757e9;
    box-shadow: 0 0 0 2px rgba(0, 79, 233, .12);
}
.sf-dynamic-participants-trigger:focus-visible {
    outline: 2px solid #0757e9;
    outline-offset: 2px;
}
.sf-dynamic-participants-icon {
    flex: 0 0 25px;
    font-size: 24px;
    line-height: 1;
}
.sf-dynamic-participants-icon { color: #526c7d; }
.sf-dynamic-participants-copy {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}
.sf-dynamic-participants-label {
    color: #60768a;
    font-size: 11px;
    font-weight: 500;
}
.sf-dynamic-participants-summary {
    color: #0b2a3e;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}
.sf-dynamic-participants-label {
    color: #0b2a3e;
    font-size: 13px;
    font-weight: 500;
}
.sf-dynamic-participants-chevron {
    flex: 0 0 auto;
    color: #003ca9;
    font-size: 14px;
}
.sf-dynamic-people .sf-repeatable-qty-row[data-qty-row="rooms_count"] {
    min-width: 0;
    min-height: 52px;
    flex-wrap: nowrap;
}
.sf-dynamic-people .sf-repeatable-qty-row[data-qty-row="rooms_count"] .sf-qty-label {
    margin-right: 4px;
}
.sf-dynamic-participants-overlay {
    position: fixed;
    inset: 0;
    z-index: 10060;
    display: none;
}
.sf-dynamic-participants-overlay.is-open {
    display: block;
}
.sf-dynamic-participants-backdrop {
    position: absolute;
    inset: 0;
    background: transparent;
}
.sf-dynamic-participants-dialog {
    position: fixed;
    width: min(370px, calc(100vw - 24px));
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
    padding: 22px 24px 20px;
    border: 1px solid #dce6ec;
    border-radius: 18px;
    background: #fff;
    color: #0b2a3e;
    box-shadow: 0 16px 44px rgba(8, 35, 52, .2);
}
.sf-dynamic-participants-dialog:focus {
    outline: none;
}
.sf-dynamic-participants-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.sf-dynamic-participants-heading h2 {
    margin: 0;
    color: #0b2a3e;
    font-size: 21px;
    font-weight: 800;
}
.sf-dynamic-participants-close,
.sf-dynamic-remove-child {
    padding: 3px;
    border: 0;
    background: transparent;
    color: #18384c;
    cursor: pointer;
}
.sf-dynamic-participants-close {
    font-size: 18px;
}
.sf-dynamic-participants-help {
    margin: 5px 0 18px;
    color: #71869a;
    font-size: 12px;
}
.sf-dynamic-participants-adults {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 17px 0;
    border-top: 1px solid #e1eaf0;
    border-bottom: 1px solid #e1eaf0;
}
.sf-dynamic-participants-adults strong,
.sf-dynamic-participants-adults span {
    display: block;
}
.sf-dynamic-participants-adults strong,
.sf-dynamic-participants-children h3 {
    color: #0b2a3e;
    font-size: 15px;
    font-weight: 800;
}
.sf-dynamic-participants-adults span {
    color: #71869a;
    font-size: 11px;
}
.sf-dynamic-stepper {
    display: inline-flex;
    align-items: stretch;
    height: 38px;
    overflow: hidden;
    border: 1px solid #d2e0e9;
    border-radius: 10px;
    background: #fff;
}
.sf-dynamic-stepper button,
.sf-dynamic-stepper output {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    padding: 0 8px;
    border: 0;
    border-right: 1px solid #d2e0e9;
    background: #fff;
    color: #0b2a3e;
    font-size: 17px;
    font-weight: 700;
}
.sf-dynamic-stepper output {
    min-width: 42px;
    font-size: 13px;
}
.sf-dynamic-stepper button:last-child {
    border-right: 0;
}
.sf-dynamic-stepper button:disabled {
    color: #aebbc4;
    cursor: default;
}
.sf-dynamic-participants-children {
    padding: 20px 0 12px;
}
.sf-dynamic-participants-children h3 {
    margin: 0 0 12px;
}
.sf-dynamic-child-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
}
.sf-dynamic-child-label {
    flex: 1 1 auto;
    font-size: 13px;
}
.sf-dynamic-child-stepper output {
    min-width: 62px;
}
.sf-dynamic-remove-child {
    width: 22px;
    height: 32px;
    font-size: 19px;
}
.sf-dynamic-add-child {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #0757e9;
    font-size: 13px;
    font-weight: 700;
}
.sf-dynamic-add-child span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    background: #0757e9;
    color: #fff;
    font-size: 17px;
    line-height: 1;
}
.sf-dynamic-add-child:disabled {
    opacity: .5;
    cursor: default;
}
.sf-dynamic-participants-done {
    display: block;
    width: 100%;
    height: 44px;
    margin-top: 12px;
    border: 0;
    border-radius: 10px;
    background: #6dbd00;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
}
@media (max-width: 1200px) {
    body.sf-dynamic-participants-open {
        overflow: hidden;
    }
    .sf-dynamic-participants-backdrop {
        background: rgba(6, 30, 45, .58);
    }
    .sf-dynamic-participants-dialog {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    .sf-dynamic-mobile-participants,
    .sf-dynamic-mobile-rooms {
        padding: 0 !important;
    }
    .sf-dynamic-mobile-participants .sf-dynamic-participants-field,
    .sf-dynamic-mobile-participants .sf-dynamic-participants-trigger {
        width: 100%;
    }
    .sf-dynamic-mobile-participants .sf-dynamic-participants-trigger {
        min-height: 60px;
        border: 0;
        box-shadow: none;
    }
    .sf-dynamic-mobile-rooms .sf-repeatable-qty-row {
        width: 100%;
        padding: 10px 14px !important;
    }
    .sf-dynamic-children-search-section .sf-dynamic-people {
        grid-template-columns: 1fr;
        min-width: 0;
    }
}

.sf-qty-grid--dynamic-children {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sf-qty-grid--dynamic-children .sf-dynamic-checkout-children {
    grid-column: 1 / -1;
    padding: 14px;
    border: 1px solid #e3eef2;
    border-radius: 12px;
    background: #f8fdfd;
}

.sf-dynamic-checkout-children > .sf-qty-label {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 12px;
}

.sf-dynamic-checkout-child-row {
    margin-bottom: 8px !important;
    background: #fff;
}

.sf-dynamic-checkout-child-row .sf-qty-controls {
    margin-left: auto;
}

.sf-dynamic-checkout-age {
    min-width: 70px;
    padding: 0 8px;
    white-space: nowrap;
}
.sf-qty-grid--dynamic-children .sf-dynamic-checkout-child-row .sf-dynamic-checkout-age {
    min-width: 70px !important;
    padding: 0 8px;
}

.sf-dynamic-checkout-remove {
    border: 0;
    background: transparent;
    color: #70818b;
    font-size: 24px;
    line-height: 1;
}

.sf-dynamic-checkout-remove:hover {
    color: #c62828;
}

.sf-dynamic-checkout-add {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 0;
    background: transparent;
    color: #0757b8;
    font-weight: 700;
    padding: 8px 2px 0;
}

.sf-dynamic-checkout-add:disabled {
    opacity: .5;
}

@media (max-width: 991px) {
    .sf-qty-grid--dynamic-children {
        grid-template-columns: 1fr;
    }
}

.sf-qty-grid--dynamic-children > .sf-qty-row:first-child {
    grid-column: 1 / -1;
}

/* Keep desktop drawer navigation stationary while the header becomes fixed. */
.sf-search-menu-header.header-style-1.is-fixed.mobile-sider-drawer-menu .header-nav .nav > li > a,
.sf-search-menu-header.header-style-1.is-fixed.mobile-sider-drawer-menu .sf-search-menu-nav .nav > li > a {
    padding: 0 14px !important;
}
