/* ==========================================================================
   Jalebin UI Layer v3 — minimal Booking.com-style system for Booking Core
   Loaded AFTER themes/bc/dist/frontend/css/app.css. Frontend pages only.
   Principles: white surfaces, hairline borders, quiet shadows, compact hero,
   chip tabs, horizontal swipe rows with arrows on every section.
   Sections: 1 Tokens · 2 Base · 3 Topbar · 4 Header · 5 Icon nav · 6 Hero
             7 Search card · 8 Cards · 9 Sections & swipe rows · 10 Buttons
             11 Bottom dock · 12 Misc/motion
   ========================================================================== */

/* 1. Design tokens
   -------------------------------------------------------------------------- */
:root {
    --jl-primary: #003b95;      /* hero blue */
    --jl-primary-dark: #00224f;
    --jl-action: #006ce4;       /* buttons & links */
    --jl-action-dark: #0057b8;
    --jl-action-soft: #e7f0ff;
    --jl-accent: #ffb700;
    --jl-ink: #1a1a1a;
    --jl-muted: #6b6b6b;
    --jl-line: #e7e7e7;
    --jl-surface: #ffffff;
    --jl-bg: #f5f5f5;
    --jl-danger: #d4111e;
    --jl-radius: 12px;
    --jl-radius-sm: 8px;
    --jl-radius-pill: 999px;
    --jl-shadow-sm: 0 1px 3px rgba(26, 26, 26, .08);
    --jl-shadow-md: 0 2px 8px rgba(26, 26, 26, .12);
    --jl-shadow-lg: 0 8px 24px rgba(26, 26, 26, .16);
    --jl-header-h: 62px;
    --jl-dock-h: 62px;
}

/* 2. Base
   -------------------------------------------------------------------------- */
.frontend-page {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
    background-color: var(--jl-surface);
}

.frontend-page a,
.frontend-page button {
    -webkit-tap-highlight-color: transparent;
}

.frontend-page ::selection {
    background: var(--jl-action);
    color: #fff;
}

/* 3. Topbar — removed for a minimal, connected header
   -------------------------------------------------------------------------- */
.frontend-page .bc_topbar {
    display: none !important;
}

/* 4. Header — blue app bar that merges into the hero (Booking.com structure)
   -------------------------------------------------------------------------- */
.frontend-page.header-normal .bc_header {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 1030;
    background: var(--jl-primary);
    border-bottom: none;
    box-shadow: none;
    transition: box-shadow .2s ease;
}

.frontend-page.header-normal .bc_header.jl-elevated {
    box-shadow: 0 2px 10px rgba(0, 0, 0, .22);
}

/* dark theme logo → white, so it reads on blue until a white logo is uploaded */
.frontend-page .bc_header .bc-logo img {
    filter: brightness(0) invert(1);
}

.frontend-page .bc_header .content {
    min-height: var(--jl-header-h);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.frontend-page .bc_header .header-left {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1 1 auto;
    min-width: 0;
}

.frontend-page .bc_header .bc-logo img {
    max-height: 38px;
    width: auto;
}

.frontend-page .bc_header .header-right {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.frontend-page .bc_header .header-right > .topbar-items {
    display: none !important;
}

.frontend-page .bc_header .bc-more-menu {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    border-radius: 50%;
    font-size: 18px;
    color: #fff;
}

.frontend-page .bc_header .bc-more-menu:active,
.frontend-page .bc_header .bc-more-menu:hover {
    background: rgba(255, 255, 255, .16);
}

.frontend-page .jl-quick-search {
    display: none !important;
}

/* 5. Icon navigation
   -------------------------------------------------------------------------- */
.frontend-page .jl-iconnav {
    display: flex;
    align-items: center;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.frontend-page .jl-iconnav > li {
    list-style: none;
    position: relative;
}

.frontend-page .jl-icon-btn {
    position: relative;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: transparent;
    color: #fff !important;
    font-size: 17px;
    line-height: 1;
    transition: background .15s ease, transform .1s ease;
}

.frontend-page .jl-icon-btn:hover,
.frontend-page .jl-icon-btn:focus {
    background: rgba(255, 255, 255, .16);
    color: #fff !important;
    text-decoration: none;
}

.frontend-page .jl-icon-btn:active {
    transform: scale(.94);
}

.frontend-page .jl-icon-btn.active {
    color: #fff !important;
    background: rgba(255, 255, 255, .18);
}

.frontend-page .jl-badge {
    position: absolute;
    top: 1px;
    right: -1px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: var(--jl-radius-pill);
    background: var(--jl-danger);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    line-height: 17px;
    text-align: center;
    border: 2px solid var(--jl-primary);
    box-sizing: content-box;
    pointer-events: none;
}

.frontend-page .jl-iconnav .dropdown-notifications > a {
    position: relative;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: transparent;
    color: #fff !important;
    font-size: 17px;
}

.frontend-page .jl-iconnav .dropdown-notifications > a:hover {
    background: rgba(255, 255, 255, .16);
    color: #fff !important;
}

.frontend-page .jl-iconnav .dropdown-notifications > a .fa-angle-down {
    display: none;
}

.frontend-page .jl-iconnav .dropdown-notifications > a .fa-bell {
    margin: 0 !important;
}

.frontend-page .jl-iconnav .dropdown-notifications .notification-icon {
    position: absolute;
    top: 1px;
    right: -1px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: var(--jl-radius-pill);
    background: var(--jl-danger);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    line-height: 17px;
    border: 2px solid var(--jl-primary);
    box-sizing: content-box;
}

/* JS adds this when the unread count is zero — Booking shows no empty badge */
.frontend-page .jl-iconnav .notification-icon.jl-badge-empty,
.frontend-page .jl-badge.jl-badge-empty {
    display: none !important;
}

.frontend-page .jl-iconnav .notify-items {
    border: 1px solid var(--jl-line);
    border-radius: var(--jl-radius);
    box-shadow: var(--jl-shadow-lg);
    margin-top: 8px;
    max-height: 70vh;
}

.frontend-page .jl-avatar-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px;
    border-radius: var(--jl-radius-pill);
    background: transparent;
    transition: background .15s ease;
}

.frontend-page .jl-avatar-btn:hover {
    background: rgba(255, 255, 255, .16);
    text-decoration: none;
}

.frontend-page .jl-avatar-btn img.avatar,
.frontend-page .jl-avatar-btn .avatar-text {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    object-fit: cover;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--jl-accent);
    color: var(--jl-ink);
    font-weight: 700;
    font-size: 15px;
    margin: 0;
}

.frontend-page .jl-avatar-btn .jl-avatar-name {
    display: none;
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (min-width: 992px) {
    .frontend-page .jl-avatar-btn .jl-avatar-name {
        display: inline-block;
    }
}

.frontend-page .jl-avatar-btn .fa-angle-down {
    color: rgba(255, 255, 255, .85);
    margin-right: 8px;
}

.frontend-page .jl-iconnav .dropdown-menu {
    border: 1px solid var(--jl-line);
    border-radius: var(--jl-radius);
    box-shadow: var(--jl-shadow-lg);
    padding: 6px;
    margin-top: 8px;
    min-width: 230px;
}

.frontend-page .jl-iconnav .dropdown-menu li > a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: var(--jl-radius-sm);
    color: var(--jl-ink);
    font-size: 14px;
    font-weight: 500;
    transition: background .12s ease, color .12s ease;
}

.frontend-page .jl-iconnav .dropdown-menu li > a:hover {
    background: var(--jl-action-soft);
    color: var(--jl-action);
}

.frontend-page .jl-iconnav .dropdown-menu li > a i {
    width: 18px;
    text-align: center;
    color: var(--jl-muted);
}

.frontend-page .jl-iconnav .dropdown-menu li.menu-hr {
    border-top: 1px solid var(--jl-bg);
    margin-top: 2px;
    padding-top: 2px;
}

/* guest buttons */
.frontend-page .jl-pill-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 38px;
    padding: 0 18px;
    border-radius: var(--jl-radius-pill);
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    transition: background .15s ease, color .15s ease;
}

.frontend-page .jl-pill-btn.jl-pill-ghost {
    color: #fff !important;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .75);
}

.frontend-page .jl-pill-btn.jl-pill-ghost:hover {
    background: rgba(255, 255, 255, .16);
    text-decoration: none;
}

.frontend-page .jl-pill-btn.jl-pill-solid {
    color: var(--jl-primary) !important;
    background: #fff;
    border: 1px solid #fff;
}

.frontend-page .jl-pill-btn.jl-pill-solid:hover {
    background: #eef4ff;
    text-decoration: none;
}

@media (max-width: 991.98px) {
    .frontend-page .jl-iconnav > li {
        display: none;
    }

    .frontend-page .jl-iconnav > li.dropdown-notifications,
    .frontend-page .jl-iconnav > li.jl-guest-login {
        display: block;
    }

    .frontend-page .jl-iconnav .notify-items {
        position: fixed;
        top: var(--jl-header-h);
        left: 8px;
        right: 8px;
        width: auto;
        max-height: 60vh;
    }

    .frontend-page .bc_header .content {
        min-height: 56px;
    }
}

/* 6. Hero — compact flat blue, no slideshow
   -------------------------------------------------------------------------- */
.frontend-page .bc-form-search-all {
    background-image: none !important;
    background-color: var(--jl-primary) !important;
    padding: 18px 0 46px !important;
    margin-top: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    position: relative !important;
}

/* kill the slideshow layer entirely */
.frontend-page .bc-form-search-all .effect,
.frontend-page .bc-form-search-all .owl-carousel .item-bg,
.frontend-page .bc-form-search-slider .effect {
    display: none !important;
}

.frontend-page .bc-form-search-all .container {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.frontend-page .bc-form-search-all .text-heading {
    color: #fff !important;
    font-size: 40px !important;
    font-weight: 800 !important;
    letter-spacing: -.02em;
    line-height: 1.15;
    margin: 26px 0 6px !important;
    padding: 0 !important;
}

.frontend-page .bc-form-search-all .sub-heading {
    color: rgba(255, 255, 255, .94) !important;
    font-size: 17px !important;
    font-weight: 400;
    margin: 0 0 26px !important;
    padding: 0 !important;
}

@media (max-width: 767.98px) {
    .frontend-page .bc-form-search-all .text-heading {
        font-size: 27px !important;
        margin-top: 16px !important;
    }

    .frontend-page .bc-form-search-all .sub-heading {
        font-size: 15px !important;
        margin-bottom: 18px !important;
    }
}

/* 7. Search card + service tabs (tabs are lifted above the greeting by JS)
   -------------------------------------------------------------------------- */
.frontend-page .bc-form-search-all .g-form-control {
    background: #fff !important;
    border: none;
    border-radius: 14px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .22) !important;
    padding: 8px;
    overflow: visible;
}

.frontend-page .bc-form-search-all .g-form-control .tab-content:before {
    display: none;
}

/* service tabs: Booking-style pills on the blue (works in either DOM position) */
.frontend-page .bc-form-search-all .nav-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border: none !important;
    gap: 6px;
    padding: 0;
    margin: 0 0 22px !important;
}

.frontend-page .bc-form-search-all .nav-tabs::-webkit-scrollbar {
    display: none;
}

.frontend-page .bc-form-search-all .nav-tabs li {
    flex-shrink: 0;
    float: none;
    margin: 0;
}

.frontend-page .bc-form-search-all .nav-tabs li a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 15px !important;
    min-height: 40px;
    margin: 0 !important;
    border: 1px solid transparent !important;
    border-radius: var(--jl-radius-pill) !important;
    background: transparent !important;
    color: #fff !important;
    font-weight: 500;
    font-size: 14px;
    white-space: nowrap;
    transition: background .15s ease, border-color .15s ease;
}

.frontend-page .bc-form-search-all .nav-tabs li a i {
    font-size: 15px;
    color: inherit !important;
}

.frontend-page .bc-form-search-all .nav-tabs li a:hover {
    background: rgba(255, 255, 255, .12) !important;
    color: #fff !important;
}

.frontend-page .bc-form-search-all .nav-tabs li a.active,
.frontend-page .bc-form-search-all .nav-tabs li.active a {
    background: rgba(255, 255, 255, .14) !important;
    border-color: #fff !important;
    color: #fff !important;
    font-weight: 600;
    box-shadow: none;
}

/* if tabs render inside the card before JS moves them, keep them readable */
.frontend-page .bc-form-search-all .g-form-control .nav-tabs li a {
    color: var(--jl-ink) !important;
}

.frontend-page .bc-form-search-all .g-form-control .nav-tabs li a.active,
.frontend-page .bc-form-search-all .g-form-control .nav-tabs li.active a {
    background: var(--jl-action-soft) !important;
    border-color: var(--jl-action) !important;
    color: var(--jl-action) !important;
}

/* fields row */
.frontend-page .bc-form-search-all .g-form-control form.bc_form {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 8px;
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}

.frontend-page .bc-form-search-all .g-form-control form.bc_form .g-field-search {
    flex: 1 1 auto;
    min-width: 0;
}

.frontend-page .bc-form-search-all .g-form-control .g-field-search .row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 !important;
    height: 100%;
}

.frontend-page .bc-form-search-all .g-form-control .g-field-search .row > [class*="col-"] {
    padding: 0 !important;
    flex: 1 1 200px;
    max-width: none;
    width: auto;
    border: none !important;
}

@media (min-width: 768px) {
    .frontend-page .bc-form-search-all .g-form-control .g-field-search .row > [class*="col-"] + [class*="col-"] {
        border-left: 1px solid var(--jl-line) !important;
    }
}

.frontend-page .bc-form-search-all .g-form-control .form-group {
    display: flex;
    align-items: center;
    background: transparent;
    border: none;
    border-radius: var(--jl-radius-sm);
    padding: 6px 14px;
    min-height: 56px;
    height: 100%;
    margin: 0;
    transition: background .15s ease;
}

.frontend-page .bc-form-search-all .g-form-control .form-group:hover,
.frontend-page .bc-form-search-all .g-form-control .form-group:focus-within {
    background: #f7f7f7;
}

.frontend-page .bc-form-search-all .g-form-control .form-group .field-icon {
    font-size: 18px;
    color: var(--jl-muted);
    margin-right: 11px;
    flex-shrink: 0;
}

.frontend-page .bc-form-search-all .g-form-control .form-group label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: var(--jl-muted);
    margin: 0;
    text-transform: none;
    letter-spacing: 0;
}

.frontend-page .bc-form-search-all .g-form-control .form-group .form-control {
    border: none;
    background: transparent;
    box-shadow: none;
    padding: 0;
    height: auto;
    min-height: 22px;
    font-size: 14px;
    font-weight: 600;
    color: var(--jl-ink);
}

.frontend-page .bc-form-search-all .g-form-control .form-group .form-control::placeholder {
    color: var(--jl-ink);
    font-weight: 600;
}

@media (max-width: 767.98px) {
    .frontend-page .bc-form-search-all .g-form-control .form-group {
        background: var(--jl-bg);
        margin-bottom: 6px;
    }
}

/* the Search button */
.frontend-page .bc-form-search-all .g-form-control form.bc_form .g-button-submit {
    position: static !important;
    flex: 0 0 auto;
    display: flex;
    align-items: stretch;
    margin: 0;
}

.frontend-page .bc-form-search-all .g-form-control .btn-search {
    background: var(--jl-action) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 600;
    font-size: 16px;
    text-transform: none;
    height: 100%;
    min-height: 56px;
    padding: 0 28px;
    border-radius: var(--jl-radius-sm);
    box-shadow: none;
    transition: background .15s ease;
}

.frontend-page .bc-form-search-all .g-form-control .btn-search:hover {
    background: var(--jl-action-dark) !important;
}

@media (max-width: 767.98px) {
    .frontend-page .bc-form-search-all .g-form-control .g-field-search .row > [class*="col-"] {
        flex: 1 1 100%;
    }

    .frontend-page .bc-form-search-all .g-form-control form.bc_form .g-button-submit {
        flex: 1 1 100%;
    }

    .frontend-page .bc-form-search-all .g-form-control .btn-search {
        width: 100%;
        min-height: 50px;
    }
}

/* smart-search autocomplete overlay */
.frontend-page .smart-search .smart-search-tooltip,
.frontend-page .smart-search .dropdown-menu {
    border: 1px solid var(--jl-line);
    border-radius: var(--jl-radius-sm);
    box-shadow: var(--jl-shadow-lg);
}

/* 8. Cards — minimal bordered cards (covers .item-loop AND .item-loop-wrap)
   -------------------------------------------------------------------------- */
.frontend-page .item-loop,
.frontend-page .item-loop-wrap {
    background: var(--jl-surface);
    border-radius: var(--jl-radius);
    overflow: hidden;
    box-shadow: none;
    border: 1px solid var(--jl-line);
    transition: transform .15s ease, box-shadow .15s ease;
    position: relative;
    height: 100%;
}

.frontend-page .item-loop:hover,
.frontend-page .item-loop-wrap:hover {
    transform: translateY(-2px);
    box-shadow: var(--jl-shadow-md);
}

.frontend-page .item-loop .thumb-image,
.frontend-page .item-loop-wrap .thumb-image {
    position: relative;
    overflow: hidden;
    border-radius: 0;
}

.frontend-page .item-loop .thumb-image img,
.frontend-page .item-loop-wrap .thumb-image img {
    width: 100%;
    transition: transform .3s ease;
}

.frontend-page .item-loop:hover .thumb-image img,
.frontend-page .item-loop-wrap:hover .thumb-image img {
    transform: scale(1.03);
}

/* Bestseller-style tag */
.frontend-page .item-loop .featured,
.frontend-page .item-loop-wrap .featured {
    position: absolute;
    top: 10px;
    left: 10px;
    right: auto;
    bottom: auto;
    z-index: 3;
    background: var(--jl-action);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    padding: 3px 8px;
    border-radius: 4px;
    box-shadow: none;
    transform: none;
    width: auto;
    height: auto;
    line-height: 1.5;
}

/* dated corner ribbons: gone */
.frontend-page .item-loop .sale_info,
.frontend-page .item-loop-wrap .sale_info {
    display: none !important;
}

.frontend-page .item-loop .service-wishlist,
.frontend-page .item-loop-wrap .service-wishlist {
    position: absolute;
    top: 8px;
    right: 8px;
    left: auto;
    z-index: 3;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .95);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--jl-ink);
    box-shadow: var(--jl-shadow-sm);
    transition: transform .15s ease, color .15s ease;
}

.frontend-page .item-loop .service-wishlist:hover,
.frontend-page .item-loop-wrap .service-wishlist:hover {
    transform: scale(1.08);
}

.frontend-page .item-loop .service-wishlist.active,
.frontend-page .item-loop .service-wishlist.loved,
.frontend-page .item-loop-wrap .service-wishlist.active,
.frontend-page .item-loop-wrap .service-wishlist.loved {
    color: var(--jl-danger);
}

.frontend-page .item-loop .service-wishlist i,
.frontend-page .item-loop-wrap .service-wishlist i {
    font-size: 15px;
    line-height: 1;
}

.frontend-page .item-loop .item-title,
.frontend-page .item-loop-wrap .item-title {
    padding: 12px 14px 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}

.frontend-page .item-loop .item-title a,
.frontend-page .item-loop-wrap .item-title a {
    color: var(--jl-ink);
}

.frontend-page .item-loop .item-title a:hover,
.frontend-page .item-loop-wrap .item-title a:hover {
    color: var(--jl-action);
    text-decoration: none;
}

.frontend-page .item-loop .location,
.frontend-page .item-loop-wrap .location {
    padding: 3px 14px 0;
    color: var(--jl-muted);
    font-size: 13px;
}

/* tour cards put .location above .item-title — give the first block top space */
.frontend-page .item-loop-wrap .thumb-image + .location {
    padding-top: 12px;
}

/* review: compact score chip + quiet count */
.frontend-page .item-loop .service-review,
.frontend-page .item-loop-wrap .service-review {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px 0;
    font-size: 13px;
}

.frontend-page .item-loop .service-review .rate,
.frontend-page .item-loop-wrap .service-review .rate {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--jl-primary);
    color: #fff;
    font-weight: 700;
    font-size: 12px;
    padding: 3px 7px;
    border-radius: 6px 6px 6px 0;
}

.frontend-page .item-loop .service-review .rate .rate-text,
.frontend-page .item-loop-wrap .service-review .rate .rate-text {
    font-weight: 500;
    font-size: 12px;
    color: rgba(255, 255, 255, .92);
}

.frontend-page .item-loop .service-review .review,
.frontend-page .item-loop-wrap .service-review .review {
    color: var(--jl-muted);
    font-size: 12px;
}

/* price row — right-aligned like Booking */
.frontend-page .item-loop .info,
.frontend-page .item-loop-wrap .info {
    padding: 8px 14px 14px;
    display: flex;
    justify-content: flex-end;
}

.frontend-page .item-loop .g-price,
.frontend-page .item-loop-wrap .g-price {
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.frontend-page .item-loop .g-price .prefix .fr_text,
.frontend-page .item-loop-wrap .g-price .prefix .fr_text {
    color: var(--jl-muted);
    font-size: 12px;
}

.frontend-page .item-loop .g-price .text-price,
.frontend-page .item-loop-wrap .g-price .text-price {
    color: var(--jl-ink);
    font-size: 17px;
    font-weight: 700;
}

.frontend-page .item-loop .g-price .text-price .unit,
.frontend-page .item-loop-wrap .g-price .text-price .unit {
    color: var(--jl-muted);
    font-size: 12px;
    font-weight: 400;
}

.frontend-page .item-loop .booking-item-rating-stars li i,
.frontend-page .item-loop-wrap .booking-item-rating-stars li i {
    color: var(--jl-accent);
    font-size: 12px;
}

/* 9. Sections & swipe rows — Booking-style horizontal scrollers with arrows
   -------------------------------------------------------------------------- */
.frontend-page [class*="bc-list-"] > .title,
.frontend-page [class*="bc-list-"] .title:first-child {
    color: var(--jl-ink);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -.01em;
}

.frontend-page [class*="bc-list-"] .sub-title {
    color: var(--jl-muted);
    font-size: 14px;
    margin-bottom: 14px;
}

/* JS adds .jl-swipe-wrap to .list-item and .jl-swipe-row to its .row */
.frontend-page .jl-swipe-wrap {
    position: relative;
}

.frontend-page .jl-swipe-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    padding-bottom: 8px;
}

.frontend-page .jl-swipe-row::-webkit-scrollbar {
    display: none;
}

.frontend-page .jl-swipe-row > [class*="col-"] {
    flex: 0 0 auto !important;
    width: 290px !important;
    max-width: none !important;
    scroll-snap-align: start;
}

@media (max-width: 767.98px) {
    .frontend-page .jl-swipe-row > [class*="col-"] {
        width: 76vw !important;
    }
}

/* arrows */
.frontend-page .jl-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--jl-line);
    box-shadow: var(--jl-shadow-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--jl-ink);
    font-size: 20px;
    z-index: 5;
    cursor: pointer;
    padding: 0;
    transition: box-shadow .15s ease, opacity .2s ease, background .15s ease;
}

.frontend-page .jl-arrow:hover {
    box-shadow: var(--jl-shadow-lg);
    background: #fff;
}

.frontend-page .jl-arrow.jl-prev {
    left: -8px;
}

.frontend-page .jl-arrow.jl-next {
    right: -8px;
}

.frontend-page .jl-arrow.jl-hidden {
    opacity: 0;
    pointer-events: none;
}

@media (max-width: 767.98px) {
    .frontend-page .jl-arrow {
        display: none; /* touch swiping on mobile */
    }
}

/* destinations — minimal white section, clean photo cards */
.frontend-page .bc-list-locations {
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}

.frontend-page .bc-list-locations .title {
    color: var(--jl-ink);
}

.frontend-page .bc-list-locations .sub-title {
    color: var(--jl-muted);
    margin-bottom: 14px;
}

.frontend-page .bc-list-locations .destination-item {
    border-radius: var(--jl-radius);
    overflow: hidden;
    box-shadow: none;
    border: 1px solid var(--jl-line);
    transition: transform .15s ease, box-shadow .15s ease;
    margin-bottom: 24px;
}

.frontend-page .bc-list-locations .destination-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--jl-shadow-md);
}

.frontend-page .bc-list-locations .destination-item .image {
    border-radius: 0;
    background-size: cover !important;
    background-position: center !important;
    position: relative;
    overflow: hidden;
}

/* theme's dark overlay washed the photos out — replace with one light gradient */
.frontend-page .bc-list-locations .destination-item .image .effect {
    display: block !important;
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .62) 100%) !important;
    opacity: 1 !important;
    z-index: 1;
}

.frontend-page .bc-list-locations .destination-item .image::after {
    display: none;
}

.frontend-page .bc-list-locations .destination-item .content {
    position: absolute !important;
    inset: 0 !important;
    top: auto !important;
    transform: none !important;
    z-index: 2;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
    text-align: left !important;
    padding: 14px 16px !important;
    width: 100% !important;
}

.frontend-page .bc-list-locations .destination-item .content .title {
    color: #fff !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    margin: 0 0 1px !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    border: none !important;
    text-align: left !important;
    width: auto !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.frontend-page .bc-list-locations .destination-item .content .title::after,
.frontend-page .bc-list-locations .destination-item .content .title::before,
.frontend-page .bc-list-locations .destination-item .content::after,
.frontend-page .bc-list-locations .destination-item .content::before {
    display: none !important;
}

.frontend-page .bc-list-locations .destination-item .content .desc,
.frontend-page .bc-list-locations .destination-item .content .desc a,
.frontend-page .bc-list-locations .destination-item .content .desc span {
    color: rgba(255, 255, 255, .9) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    text-align: left !important;
}

/* 10. Global buttons & form controls
   -------------------------------------------------------------------------- */
.frontend-page .btn-primary {
    background: var(--jl-action);
    border-color: var(--jl-action);
    border-radius: var(--jl-radius-sm);
    font-weight: 600;
}

.frontend-page .btn-primary:hover,
.frontend-page .btn-primary:focus,
.frontend-page .btn-primary:active {
    background: var(--jl-action-dark) !important;
    border-color: var(--jl-action-dark) !important;
}

@media (max-width: 991.98px) {

    .frontend-page .form-control,
    .frontend-page .btn {
        min-height: 48px;
    }

    .frontend-page select.form-control {
        font-size: 16px; /* prevents iOS zoom-on-focus */
    }
}

.daterangepicker {
    border: 1px solid var(--jl-line) !important;
    border-radius: var(--jl-radius) !important;
    box-shadow: var(--jl-shadow-lg) !important;
    font-family: inherit !important;
}

.daterangepicker td.active,
.daterangepicker td.active:hover {
    background-color: var(--jl-action) !important;
}

.daterangepicker td.in-range {
    background-color: var(--jl-action-soft) !important;
    color: var(--jl-ink) !important;
}

.daterangepicker td.active.start-date,
.daterangepicker td.active.end-date {
    color: #fff !important;
}

/* 11. Mobile bottom navigation dock
   -------------------------------------------------------------------------- */
.frontend-page .jl-bottom-nav {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    height: calc(var(--jl-dock-h) + env(safe-area-inset-bottom, 0px));
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: rgba(255, 255, 255, .97);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border-top: 1px solid var(--jl-line);
    box-shadow: 0 -2px 12px rgba(26, 26, 26, .06);
}

.frontend-page .jl-bottom-nav .jl-dock-inner {
    display: flex;
    height: var(--jl-dock-h);
}

.frontend-page .jl-bottom-nav a {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-height: 48px;
    color: var(--jl-muted);
    font-size: 11px;
    font-weight: 500;
    text-decoration: none;
    -webkit-user-select: none;
    user-select: none;
    transition: color .15s ease;
}

.frontend-page .jl-bottom-nav a i {
    font-size: 21px;
    line-height: 1;
    transition: transform .15s ease;
}

.frontend-page .jl-bottom-nav a:active i {
    transform: scale(.88);
}

.frontend-page .jl-bottom-nav a.active {
    color: var(--jl-action);
}

@media (max-width: 991.98px) {
    .frontend-page .jl-bottom-nav {
        display: block;
    }

    .frontend-page .bc_wrap {
        padding-bottom: calc(var(--jl-dock-h) + env(safe-area-inset-bottom, 0px));
    }

    .frontend-page .booking_cookie_agreement {
        bottom: calc(var(--jl-dock-h) + env(safe-area-inset-bottom, 0px)) !important;
    }
}

/* 12. Misc polish & motion preferences
   -------------------------------------------------------------------------- */
.frontend-page .owl-carousel .owl-nav button.owl-prev,
.frontend-page .owl-carousel .owl-nav button.owl-next {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff !important;
    border: 1px solid var(--jl-line) !important;
    color: var(--jl-ink) !important;
    box-shadow: var(--jl-shadow-md);
}

.frontend-page .owl-carousel .owl-nav button.owl-prev:hover,
.frontend-page .owl-carousel .owl-nav button.owl-next:hover {
    background: #fff !important;
    box-shadow: var(--jl-shadow-lg);
}

.frontend-page .owl-carousel .owl-dots .owl-dot.active span {
    background: var(--jl-action);
}

.frontend-page .bc-menu-mobile {
    box-shadow: var(--jl-shadow-lg);
}

.frontend-page .bc-menu-mobile .user-profile ul li a {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.frontend-page .g-menu ul li a {
    min-height: 44px;
    display: flex;
    align-items: center;
}

.frontend-page .modal-content {
    border: 1px solid var(--jl-line);
    border-radius: var(--jl-radius);
    box-shadow: var(--jl-shadow-lg);
}

@media (prefers-reduced-motion: reduce) {

    .frontend-page *,
    .frontend-page *::before,
    .frontend-page *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }
}
