/* ============================================
   BFL CUSTOM V2 - BookFromLocals Booking Form
   Version 4.15.2
   ============================================ */

/* =========================================
   1. VARIABLES
   ========================================= */
:root {
    --bfl-white: #ffffff;
    --bfl-bg: #f8f9fb;
    --bfl-text: #111827;
    --bfl-text-2: #4b5563;
    --bfl-text-3: #9ca3af;
    --bfl-text-4: #d1d5db;
    --bfl-border: #e5e7eb;
    --bfl-border-input: #d1d5db;
    --bfl-blue: #2563eb;
    --bfl-blue-dark: #1d4ed8;
    --bfl-blue-soft: #eff6ff;
    --bfl-blue-border: #bfdbfe;
    --bfl-blue-ring: rgba(37,99,235,0.1);
    --bfl-green: #059669;
    --bfl-green-soft: #ecfdf5;
    --bfl-green-border: #a7f3d0;
    --bfl-green-dark: #047857;
    --bfl-r: 14px;
    --bfl-r-sm: 10px;
    --bfl-r-xs: 7px;
    --bfl-shadow: 0 0 0 1px rgba(0,0,0,0.04), 0 2px 6px rgba(0,0,0,0.04), 0 12px 32px rgba(0,0,0,0.06);
}

/* =========================================
   2. BOOKING BAR CONTAINER
   ========================================= */
.tourmaster-tour-booking-bar-wrap {
    background: var(--bfl-white) !important;
    border-radius: 18px !important;
    box-shadow: var(--bfl-shadow) !important;
    border: none !important;
    overflow: hidden !important;
    opacity: 0 !important;
    transition: opacity 0.4s ease !important;
    animation: bfl-fallback-show 0s ease 5s forwards !important;
}
.tourmaster-tour-booking-bar-wrap.bfl-ready {
    opacity: 1 !important;
}
@keyframes bfl-fallback-show {
    to { opacity: 1; }
}
.tourmaster-tour-booking-bar-inner {
    background: var(--bfl-white) !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    padding: 0 !important;
}

/* =========================================
   2b. CSS-FIRST ANIMATION: Default hidden states
   ALL animated elements start invisible via CSS.
   animateReveal() handles fade-in, then adds .bfl-animate-done.
   ajaxSend is NO-OP — ajaxComplete is DEBOUNCED so
   reset + re-animate happen back-to-back (no visible gap).
   ========================================= */

/* All animated elements: hidden by default (CSS-first anti-flash) */
.bfl-form-label-hotel,
.bfl-form-label-participants,
.bfl-form-label-package,
#bflDateInfoBox {
    opacity: 0 !important;
    transform: translateY(10px) !important;
}

/* Hotel input — hidden until animated (icon + extras are PROTECTED, not CSS-first) */
.tourmaster-tour-booking-bar-wrap .autocomplete-hotel-field {
    opacity: 0 !important;
    transform: translateY(10px) !important;
}

/* CSS-FIRST ANIMATION: Override — bfl-animate-done ALWAYS wins
   Specificity 0,2,0 beats the 0,1,0 / 0,2,0 hidden rules above */
.bfl-form-label-hotel.bfl-animate-done,
.bfl-form-label-participants.bfl-animate-done,
.bfl-form-label-package.bfl-animate-done,
.autocomplete-hotel-field.bfl-animate-done,
.tourmaster-tour-booking-people.bfl-animate-done,
.tourmaster-tour-booking-package.bfl-animate-done,
.tourmaster-tour-booking-pickup-time.bfl-animate-done,
#bflDateInfoBox.bfl-animate-done {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* =========================================
   3. HIDE ORIGINAL ELEMENTS
   ========================================= */

/* Step arrows */
.tourmaster-tour-booking-next-sign { display: none !important; }

/* Hotel wrapper — hide icon & next-sign that cause whitespace above input */
.tourmaster-tour-booking-hotel > .tourmaster-tour-booking-next-sign,
.tourmaster-tour-booking-hotel > i,
.tourmaster-tour-booking-hotel > i.fa-bed {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Hotel wrapper — remove all internal spacing */
.tourmaster-tour-booking-hotel .tourmaster-combobox-list-wrap {
    padding: 0 !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
    margin-bottom: 0 !important;
    line-height: 0 !important;
}
.tourmaster-tour-booking-hotel .tourmaster-combobox-list-wrap > input.autocomplete-hotel-field,
.tourmaster-tour-booking-hotel .tourmaster-combobox-list-wrap > input[name="hotel"] {
    line-height: normal !important;
}
.tourmaster-tour-booking-hotel .tourmaster-find-user-location,
.tourmaster-tour-booking-hotel #decide_later,
.tourmaster-tour-booking-hotel label[for="decide_later"],
.tourmaster-tour-booking-hotel .tourmaster-selfdrive,
.tourmaster-tour-booking-hotel .tourmaster-contact-user {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Ribbons (instant confirmation, last minute) */
.tourmaster-header-price-ribbon,
.tourmaster-header-enquiry-ribbon,
.tourmaster-price-ribbon,
.tourmaster-tour-booking-bar-wrap .tourmaster-ribbon,
[class*="ribbon"],
[class*="last-minute"],
[class*="instant-confirmation"],
.tourmaster-tour-booking-bar-wrap > div:first-child[style*="background"] {
    display: none !important;
}

/* Price section */
.tourmaster-header-price3-tail,
.tourmaster-header-price-wrap,
.tourmaster-header-price,
.tourmaster-tour-price,
[class*="header-price"] {
    display: none !important;
}

/* Booking/Enquiry tabs */
.tourmaster-booking-tab-title,
.tourmaster-tab-title,
[class*="booking-tab-title"] {
    display: none !important;
}

/* Original today-date confirmation (replaced by BFL date info box) */
.tourmaster-today-date-confirmation {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Original pickup time (replaced by BFL custom UI) */
.tourmaster-tour-booking-pickup-time {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* =========================================
   4. BOOK THIS TOUR HEADER
   ========================================= */
.bfl-booking-header {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 18px 20px !important;
    background: var(--bfl-white) !important;
    border-bottom: 1px solid var(--bfl-border) !important;
    border-radius: 0 !important;
}
.bfl-booking-header-icon {
    width: 36px !important; height: 36px !important; border-radius: 10px !important;
    background: var(--bfl-blue-soft) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    color: var(--bfl-blue) !important;
}
.bfl-booking-header-icon svg { width: 16px; height: 16px; }
.bfl-booking-header-text {
    font-family: 'DM Sans', -apple-system, system-ui, sans-serif !important;
    font-size: 18px !important; font-weight: 700 !important;
    color: var(--bfl-text) !important;
    letter-spacing: -0.3px !important;
}

/* =========================================
   5. FORM LAYOUT & ORDER
   ========================================= */
.tourmaster-single-tour-booking-fields,
#tourmaster-single-tour-booking-fields {
    display: flex !important;
    flex-direction: column !important;
    padding: 6px 16px 16px !important;
    gap: 0 !important;
    background: #ffffff !important;
}

/* Form labels */
.bfl-form-label {
    font-family: 'DM Sans', -apple-system, system-ui, sans-serif !important;
    font-size: 12px !important; font-weight: 700 !important; color: var(--bfl-text) !important;
    text-transform: uppercase !important; letter-spacing: 0.4px !important;
    margin-bottom: 6px !important; display: block !important;
}
.bfl-form-label:not(:first-of-type) { margin-top: 16px !important; }
.bfl-label-hint {
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--bfl-text-3) !important;
}

/* TM style-3 overrides */
.tourmaster-tour-style-3 .autocomplete-hotel-field,
.tourmaster-tour-style-3 .simple-hotel-field,
.tourmaster-tour-style-3 .tourmaster-datepicker { height: auto !important; }
.tourmaster-tour-style-3 .tourmaster-combobox-list-display {
    height: auto !important; padding: 10px 14px !important;
    border-radius: var(--bfl-r-sm) !important;
}
.tourmaster-tour-style-3 .tourmaster-single-tour-booking-fields,
.tourmaster-tour-style-3 #tourmaster-single-tour-booking-fields {
    padding: 6px 16px 16px !important;
}

/* =========================================
   6. INPUT STYLES (Date + Hotel)
   ========================================= */
.tourmaster-tour-style-3 .tourmaster-tour-booking-date {
    border: 1.5px solid var(--bfl-border-input) !important;
    border-radius: var(--bfl-r-sm) !important;
    padding: 0 !important; margin: 0 !important;
    background: var(--bfl-white) !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}
.tourmaster-tour-style-3 .tourmaster-tour-booking-hotel {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}
.tourmaster-page-wrapper.tourmaster-tour-style-3 .tourmaster-tour-booking-hotel {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
.tourmaster-tour-style-3 .tourmaster-tour-booking-date:focus-within {
    border-color: #bfdbfe !important;
    box-shadow: none !important;
}
.tourmaster-tour-booking-date {
    position: relative !important;
    z-index: 100 !important;
}
.tourmaster-tour-style-3 .tourmaster-datepicker {
    font-family: 'DM Sans', -apple-system, system-ui, sans-serif !important;
    font-size: 15px !important; font-weight: 500 !important;
    color: var(--bfl-text) !important;
    padding: 12px 14px !important; height: auto !important;
    border: none !important; background: transparent !important;
    margin-bottom: 0 !important;
}
.tourmaster-tour-style-3 .autocomplete-hotel-field,
.tourmaster-tour-style-3 .simple-hotel-field {
    font-family: 'DM Sans', -apple-system, system-ui, sans-serif !important;
    font-size: 15px !important; font-weight: 500 !important;
    color: var(--bfl-text) !important;
    padding: 12px 14px !important; height: auto !important;
    border: 1.5px solid var(--bfl-border-input) !important;
    border-radius: var(--bfl-r-sm) !important;
    background: var(--bfl-white) !important;
    margin-bottom: 0 !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}
.tourmaster-tour-style-3 .autocomplete-hotel-field:focus,
.tourmaster-tour-style-3 .simple-hotel-field:focus {
    border-color: var(--bfl-blue) !important;
    box-shadow: 0 0 0 3px var(--bfl-blue-ring) !important;
    outline: none !important;
}
.tourmaster-tour-style-3 .tourmaster-datepicker {
    padding-right: 42px !important; width: 100% !important;
    cursor: pointer !important; line-height: 1.4 !important;
    -webkit-appearance: none !important;
}
.tourmaster-tour-style-3 .autocomplete-hotel-field,
.tourmaster-tour-style-3 .simple-hotel-field {
    padding-right: 42px !important;
}
.tourmaster-datepicker::placeholder { color: var(--bfl-text-3) !important; font-weight: 400 !important; }

/* Hide TourMaster dropdown arrows */
.tourmaster-tour-booking-date .tourmaster-datepicker-wrap::after,
.tourmaster-tour-booking-date select::after,
.tourmaster-tour-booking-date .fa,
.tourmaster-tour-booking-date i { display: none !important; }

/* Calendar icon — injected via JS (.bfl-date-icon) because .clearfix:after
   on .tourmaster-tour-booking-date sets visibility:hidden + height:0 on ::after */
.tourmaster-tour-booking-date .tourmaster-datepicker-wrap { padding: 0 !important; margin: 0 !important; }
.tourmaster-tour-booking-date .tourmaster-tour-booking-date-input { padding: 0 !important; margin: 0 !important; }

/* =========================================
   6b. DATEPICKER: Soft Rounded Cards
   ========================================= */

/* Container — override jquery-ui.css .ui-widget.ui-widget-content (border: 1px solid #d3d3d3)
   and .ui-widget-content (border: 1px solid #aaaaaa) */
.tourmaster-body .ui-datepicker,
.tourmaster-body .ui-datepicker.ui-widget.ui-widget-content,
.tourmaster-body .ui-datepicker.ui-widget-content {
    font-family: 'DM Sans', sans-serif !important;
    background: var(--bfl-white) !important;
    border: 1.5px solid #bfdbfe !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 20px rgba(37, 99, 235, 0.08) !important;
    padding: 14px 21px !important;
    z-index: 99999 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    outline: none !important;
}

/* Min-width guarantee via ID selector */
.tourmaster-body #ui-datepicker-div {
    min-width: 280px !important;
}

/* Header — override jquery-ui.css .ui-widget-header (border: 1px solid #aaaaaa) */
.tourmaster-body .ui-datepicker .ui-datepicker-header,
.tourmaster-body .ui-datepicker .ui-datepicker-header.ui-widget-header {
    background: none !important;
    border: none !important;
    padding: 4px 0 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

/* Kill jQuery UI visual-focus blur — jquery-ui.css:974 box-shadow: 0 0 3px 1px rgb(94,158,214) */
.tourmaster-body .ui-datepicker .ui-visual-focus,
.tourmaster-body .ui-visual-focus {
    box-shadow: none !important;
    outline: none !important;
}

/* Kill jQuery UI highlight yellow border — jquery-ui.css:1001 border: 1px solid #fcefa1 */
.tourmaster-body .ui-datepicker .ui-state-highlight,
.tourmaster-body .ui-datepicker .ui-widget-content .ui-state-highlight {
    border-color: transparent !important;
    background: none !important;
}

/* Kill jQuery UI error red border — jquery-ui.css:1017 border: 1px solid #cd0a0a */
.tourmaster-body .ui-datepicker .ui-state-error,
.tourmaster-body .ui-datepicker .ui-widget-content .ui-state-error {
    border-color: transparent !important;
    background: none !important;
}

/* Kill TourMaster table header purple bg — html-option-meta.css:296 background-color: #485da1 */
.tourmaster-body .ui-datepicker table tr th {
    background-color: transparent !important;
}

/* Title (month + year selects) */
.tourmaster-body .ui-datepicker .ui-datepicker-title {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--bfl-text) !important;
    order: 2 !important;
    flex: 1 !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
}
.tourmaster-body .ui-datepicker .ui-datepicker-month,
.tourmaster-body .ui-datepicker .ui-datepicker-year {
    font-family: 'DM Sans', sans-serif !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    color: var(--bfl-text) !important;
    border: none !important;
    background: transparent !important;
    padding: 0 4px !important;
    height: auto !important;
    width: auto !important;
    min-width: auto !important;
    margin: 0 !important;
    cursor: pointer !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

/* Nav arrows — override TourMaster FontAwesome */
.tourmaster-body .ui-datepicker-prev,
.tourmaster-body .ui-datepicker-next {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    background: var(--bfl-bg) !important;
    border: none !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    top: 2px !important;
    left: auto !important;
    right: auto !important;
    position: relative !important;
    transition: all 0.15s !important;
    font-size: 0 !important;
    overflow: hidden !important;
}
.tourmaster-body .ui-datepicker-prev { order: 1 !important; }
.tourmaster-body .ui-datepicker-next { order: 3 !important; }
.tourmaster-body .ui-datepicker-prev:hover,
.tourmaster-body .ui-datepicker-next:hover {
    background: var(--bfl-blue-soft) !important;
}
.tourmaster-body .ui-datepicker-prev::after {
    content: '\2039' !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--bfl-text-2) !important;
    line-height: 1 !important;
    -webkit-font-smoothing: antialiased !important;
}
.tourmaster-body .ui-datepicker-next::after {
    content: '\203A' !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--bfl-text-2) !important;
    line-height: 1 !important;
    -webkit-font-smoothing: antialiased !important;
}
.tourmaster-body .ui-datepicker-prev span,
.tourmaster-body .ui-datepicker-next span {
    display: none !important;
}
/* Kill any ::before from TourMaster */
.tourmaster-body .ui-datepicker-prev::before,
.tourmaster-body .ui-datepicker-next::before {
    display: none !important;
    content: none !important;
}

/* Weekday headers */
.tourmaster-body .ui-datepicker table thead th {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: var(--bfl-text-3) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 4px 0 8px !important;
    text-align: center !important;
    background: none !important;
    border: none !important;
}

/* Table */
.tourmaster-body .ui-datepicker table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    table-layout: fixed !important;
    width: 100% !important;
}

/* Day cells */
.tourmaster-body .ui-datepicker table tr td {
    padding: 2px !important;
    border: none !important;
    background: none !important;
}

/* Day links — rounded card style */
.tourmaster-body .ui-datepicker table tr td a.ui-state-default,
.tourmaster-body .ui-datepicker table tr td span.ui-state-default {
    background: var(--bfl-bg) !important;
    border: 1.5px solid transparent !important;
    border-radius: 10px !important;
    min-height: 40px !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--bfl-text) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.12s !important;
}
.tourmaster-body .ui-datepicker table tr td a.ui-state-default:hover {
    border-color: var(--bfl-blue-border) !important;
    background: var(--bfl-blue-soft) !important;
    color: var(--bfl-blue) !important;
}

/* Active press */
.tourmaster-body .ui-datepicker table tr td a:active {
    transform: scale(0.92) !important;
}

/* Today — soft blue fill + blue border */
.tourmaster-body .ui-datepicker table tr td.ui-datepicker-today a.ui-state-default,
.tourmaster-body .ui-datepicker table tr td.ui-datepicker-today span.ui-state-default {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
    color: var(--bfl-text) !important;
    font-weight: 700 !important;
}

/* Selected (user clicked) — solid blue fill */
.tourmaster-body .ui-datepicker table tr td.ui-datepicker-today a.ui-state-active,
.tourmaster-body .ui-datepicker table tr td a.ui-state-active {
    background: var(--bfl-blue) !important;
    border-color: var(--bfl-blue) !important;
    color: var(--bfl-white) !important;
    box-shadow: 0 2px 8px rgba(37,99,235,0.25) !important;
}

/* TourMaster highlight class (date range) */
.tourmaster-body .ui-datepicker table tr td.tourmaster-highlight a {
    border-color: var(--bfl-blue-border) !important;
    background: var(--bfl-blue-soft) !important;
}

/* Disabled / past */
.tourmaster-body .ui-datepicker table tr td.ui-datepicker-unselectable span.ui-state-default,
.tourmaster-body .ui-datepicker table tr td.ui-state-disabled span.ui-state-default {
    background: transparent !important;
    border-color: transparent !important;
    color: #cbd5e1 !important;
    opacity: 1 !important;
    cursor: default !important;
}

/* Other month */
.tourmaster-body .ui-datepicker table tr td.ui-datepicker-other-month {
    visibility: hidden !important;
}

/* Reset jQuery UI defaults with matching specificity */
.tourmaster-body .ui-datepicker .ui-state-default,
.tourmaster-body .ui-datepicker .ui-widget-content .ui-state-default {
    background: none !important;
    border: 1.5px solid transparent !important;
}
.tourmaster-body .ui-datepicker .ui-state-hover,
.tourmaster-body .ui-datepicker .ui-widget-content .ui-state-hover {
    background: var(--bfl-blue-soft) !important;
    border-color: var(--bfl-blue-border) !important;
}
.tourmaster-body .ui-datepicker .ui-state-active,
.tourmaster-body .ui-datepicker .ui-widget-content .ui-state-active {
    background: var(--bfl-blue) !important;
    border-color: var(--bfl-blue) !important;
    color: var(--bfl-white) !important;
}

/* Override TourMaster odd/even row backgrounds — html-option-meta.css:298-301 */
.tourmaster-body .ui-datepicker table tr:nth-child(odd),
.tourmaster-body .ui-datepicker table tr:nth-child(even) {
    background-color: transparent !important;
}

/* Override TourMaster validation error on date field — blue instead of red
   tourmaster.css:534 — border: 2px solid #dc3545 + box-shadow */
.tourmaster-field-error.tourmaster-tour-booking-date .tourmaster-datepicker,
.tourmaster-tour-style-3 .tourmaster-field-error.tourmaster-tour-booking-date .tourmaster-datepicker {
    border: 1.5px solid #bfdbfe !important;
    box-shadow: none !important;
}
/* Hide the red error message for date field — calendar opening is enough UX */
.tourmaster-field-error.tourmaster-tour-booking-date .tourmaster-field-error-message {
    display: none !important;
}

/* =========================================
   6c. NESTED-HOTEL ORDERING (single-package tours)
   Hotel is rendered INSIDE .tourmaster-tour-booking-people.
   CSS flex order ensures: hotel → participants, without DOM moves.
   ========================================= */
.tourmaster-tour-booking-people {
    display: flex !important;
    flex-direction: column !important;
}
.tourmaster-tour-booking-people > * {
    width: 100% !important;
}
.tourmaster-tour-booking-people > .tourmaster-tour-booking-next-sign { order: 0 !important; }
.tourmaster-tour-booking-people > .fa { order: 0 !important; }
.tourmaster-tour-booking-people > .bfl-form-label-hotel { order: 1 !important; }
.tourmaster-tour-booking-people > .tourmaster-tour-booking-hotel { order: 2 !important; }
.tourmaster-tour-booking-people > .tourmaster-tour-booking-pickup-time { order: 3 !important; }
.tourmaster-tour-booking-people > .bfl-hotel-extras { order: 4 !important; }
.tourmaster-tour-booking-people > .bfl-decide-later-info,
.tourmaster-tour-booking-people > .bfl-hotel-skipped-card,
.tourmaster-tour-booking-people > .bfl-hotel-skipped-pill { order: 5 !important; }
.tourmaster-tour-booking-people > .bfl-form-label-participants { order: 6 !important; }
.tourmaster-tour-booking-people > .tourmaster-tour-booking-people-input { order: 7 !important; }

/* =========================================
   7. HOTEL FIELD
   ========================================= */

/* Hide hotel extras when hotel is selected */
.tourmaster-tour-booking-bar-wrap.bfl-hotel-selected .bfl-hotel-extras {
    display: none !important;
}
/* Hide search icon when hotel is selected (X button takes its place) */
.tourmaster-tour-booking-bar-wrap.bfl-hotel-selected .bfl-hotel-icon {
    display: none !important;
}
/* Hide hotel input wrapper when decide-later pill is active (pill replaces it) */
.tourmaster-tour-booking-bar-wrap.bfl-decide-later-active .tourmaster-tour-booking-hotel {
    display: none !important;
}

/* Hotel clear button — 26px circle with white SVG X */
.bfl-hotel-clear {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    border-radius: 50% !important;
    background: #2563eb !important;
    border: none !important;
    cursor: pointer !important;
    display: none;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    font-size: 0 !important;
    z-index: 5 !important;
    transition: background 0.15s ease !important;
}
.bfl-hotel-clear:hover {
    background: #1d4ed8 !important;
}
.bfl-hotel-clear svg {
    display: block !important;
}

/* --- Hotel: Always Visible (static) --- */
.tourmaster-tour-booking-hotel,
.tourmaster-tour-booking-hotel .tourmaster-combobox-list-wrap,
.tourmaster-tour-booking-hotel .autocomplete-hotel-field,
.tourmaster-tour-booking-hotel .simple-hotel-field,
.tourmaster-tour-booking-hotel input[name="hotel"] {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    transform: none !important;
}

/* Prevent hotel flash during AJAX rebuild */
.tourmaster-tour-booking-hotel {
    min-height: 50px !important;
    transition: none !important;
}
.tourmaster-tour-booking-hotel[style*="display: none"],
.tourmaster-tour-booking-hotel[style*="display:none"] {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    height: auto !important;
}
.tourmaster-tour-booking-hotel[style*="overflow: hidden"] {
    overflow: visible !important;
}
.tourmaster-tour-booking-hotel[style*="height: 0"],
.tourmaster-tour-booking-hotel[style*="height:0"] {
    height: auto !important;
}

/* Hotel wrapper styling — border moved to input */
.tourmaster-tour-booking-hotel {
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
}

/* Hotel input placeholders */
.autocomplete-hotel-field::placeholder,
.simple-hotel-field::placeholder { color: var(--bfl-text-3) !important; font-weight: 400 !important; }

/* Hide original hotel extras (replaced by mini cards) */
.tourmaster-find-user-location { display: none !important; }
.tourmaster-tour-booking-hotel label[for="decide_later"],
.tourmaster-tour-booking-hotel .tourmaster-decide-later label {
    display: none !important;
}
#decide_later { display: none !important; }

/* --- Hotel Extras: Mini Cards --- */
.bfl-hotel-extras {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    margin-top: 8px !important;
}
.bfl-hotel-extras-card {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    border-radius: var(--bfl-r-xs) !important;
    border: 1.5px solid var(--bfl-border) !important;
    background: var(--bfl-white) !important;
    cursor: pointer !important;
    transition: all 0.15s !important;
}
.bfl-hotel-extras-card:hover {
    border-color: var(--bfl-blue-border) !important;
    background: var(--bfl-blue-soft) !important;
}
.bfl-hotel-extras-card.active {
    border-color: var(--bfl-blue-border) !important;
    background: var(--bfl-blue-soft) !important;
}
.bfl-hotel-extras-ico {
    width: 32px !important;
    height: 32px !important;
    border-radius: 8px !important;
    background: var(--bfl-bg) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}
.bfl-hotel-extras-ico svg {
    width: 16px !important;
    height: 16px !important;
    color: var(--bfl-blue) !important;
}
.bfl-hotel-extras-body {
    flex: 1 !important;
}
.bfl-hotel-extras-title {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--bfl-text) !important;
}
.bfl-hotel-extras-sub {
    font-size: 11px !important;
    color: var(--bfl-text-3) !important;
}
.bfl-hotel-extras-check {
    width: 20px !important;
    height: 20px !important;
    border-radius: 50% !important;
    border: 2px solid var(--bfl-border) !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.15s !important;
}
.bfl-hotel-extras-card.active .bfl-hotel-extras-check {
    border-color: var(--bfl-blue) !important;
    background: var(--bfl-blue) !important;
}
.bfl-hotel-extras-check svg {
    width: 12px !important;
    height: 12px !important;
    color: transparent !important;
}
.bfl-hotel-extras-card.active .bfl-hotel-extras-check svg {
    color: var(--bfl-white) !important;
}

/* Hide original self-drive container entirely (replaced by .bfl-info-box) */
/* Container has margin-top:15px + slideDown() animation that causes blank space */
.tourmaster-selfdrive {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}
/* Hide original contact-user container entirely (replaced by .bfl-no-results) */
/* TourMaster sets display:flex + label:margin:0. Override with max specificity. */
.tourmaster-contact-user,
.tourmaster-contact-user label,
.tourmaster-contact-user i,
.tourmaster-contact-user input,
.tourmaster-contact-user small,
.tourmaster-tour-booking-bar-wrap .tourmaster-contact-user,
.tourmaster-tour-booking-bar-wrap .tourmaster-contact-user label {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    opacity: 0 !important;
}

/* --- Info Box (amber accent) --- */
.bfl-info-box {
    display: flex !important;
    gap: 10px !important;
    padding: 12px 14px !important;
    border-radius: var(--bfl-r-xs) !important;
    background: #fffbeb !important;
    border: 1px solid #fde68a !important;
    border-left: 3px solid #d97706 !important;
    margin-top: 10px !important;
}
.bfl-info-box-ico {
    flex-shrink: 0 !important;
    margin-top: 1px !important;
    color: #d97706 !important;
}
.bfl-info-box-text {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 12px !important;
    color: var(--bfl-text-2) !important;
    line-height: 1.5 !important;
}
.bfl-info-box-text strong {
    display: block !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #92400e !important;
    margin-bottom: 2px !important;
}

/* --- Highlight effect for hotel extras card --- */
.bfl-hotel-extras-card.bfl-highlight {
    background: var(--bfl-white) !important;
    animation: bfl-pulse 1.5s ease 2 !important;
}
@keyframes bfl-pulse {
    0%, 100% { border-color: var(--bfl-border); box-shadow: 0 0 0 0 rgba(37,99,235,0); }
    50% { border-color: var(--bfl-blue-border); box-shadow: 0 0 0 4px rgba(37,99,235,0.15); }
}

/* GPS error state — hide package, pax, submit */
.bfl-gps-error .tourmaster-tour-booking-package,
.bfl-gps-error .bfl-form-label-package,
.bfl-gps-error #bflPkgEmpty,
.bfl-gps-error #bflPkgSel,
.bfl-gps-error .bfl-form-label-participants,
.bfl-gps-error .bfl-pax-grid,
.bfl-gps-error .tourmaster-tour-booking-submit,
.bfl-gps-error .tourmaster-tour-booking-people {
    display: none !important;
    opacity: 0 !important;
    max-height: 0 !important;
    visibility: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    min-height: 0 !important;
}
.bfl-gps-error .tourmaster-tour-booking-package.bfl-show,
.bfl-gps-error .tourmaster-tour-booking-package.tm-revealed.bfl-show {
    display: none !important;
    opacity: 0 !important;
    max-height: 0 !important;
    visibility: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    min-height: 0 !important;
}

/* --- Package disabled (GPS info box visible, hotel not selected) --- */
.bfl-pkg-disabled {
    opacity: 0.5 !important;
    pointer-events: none !important;
    filter: grayscale(0.3) !important;
}

/* =========================================
   8. PACKAGE FIELD
   ========================================= */

/* Hidden by default (anti-FOUC) */
.tourmaster-tour-booking-package {
    opacity: 0 !important; max-height: 0 !important;
    overflow: hidden !important; padding: 0 !important;
    margin: 0 !important; border: none !important;
    pointer-events: none !important;
    transition: opacity 0.3s ease, max-height 0.3s ease !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
}
.tourmaster-tour-booking-package.bfl-show {
    opacity: 1 !important; max-height: none !important;
    overflow: visible !important; padding: 0 !important;
    margin: 0 !important; border: none !important;
    border-radius: var(--bfl-r-sm) !important;
    pointer-events: auto !important; background: transparent !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    box-sizing: border-box !important; max-width: 100% !important;
}
.tourmaster-tour-booking-package.bfl-show:focus-within {
    border-color: transparent !important;
    box-shadow: none !important;
}
.bfl-form-label-package { display: none !important; }
.bfl-form-label-package.bfl-show { display: block !important; }

/* Hide original package combobox when BFL cards present */
.tourmaster-tour-booking-package .tourmaster-combobox-list-display {
    opacity: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    position: absolute !important;
}

/* Package dropdown styling */
.tourmaster-combobox-list-display {
    font-size: 14px !important; font-weight: 500 !important;
    color: var(--bfl-text) !important;
}
.tourmaster-combobox-list-display span { color: var(--bfl-text) !important; }
.tourmaster-combobox-list-wrap { overflow: visible !important; }
.tourmaster-combobox-list-wrap ul {
    max-height: 300px !important; overflow-y: auto !important;
    position: absolute !important; z-index: 9999 !important;
    left: -15px !important; right: -15px !important; width: auto !important;
    border-radius: var(--bfl-r-sm) !important;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12) !important;
    border: 1px solid var(--bfl-border) !important;
    background: var(--bfl-white) !important; margin-top: 6px !important;
}
.tourmaster-combobox-list-wrap ul li {
    padding: 12px 14px !important;
    border-bottom: 1px solid var(--bfl-border) !important;
    cursor: pointer !important; transition: background 0.15s !important;
}
.tourmaster-combobox-list-wrap ul li:last-child { border-bottom: none !important; }
.tourmaster-combobox-list-wrap ul li:hover { background: var(--bfl-blue-soft) !important; }
.tourmaster-combobox-list-title { font-size: 14px !important; font-weight: 600 !important; color: var(--bfl-text) !important; }
.tourmaster-combobox-list-caption { font-size: 11px !important; color: var(--bfl-text-3) !important; }

/* =========================================
   9. PICKUP TIME
   ========================================= */

/* --- Pickup Label (matches .bfl-form-label) --- */
.bfl-pickup-label {
    font-family: 'DM Sans', -apple-system, system-ui, sans-serif !important;
    font-size: 12px !important; font-weight: 700 !important; color: var(--bfl-text) !important;
    text-transform: uppercase !important; letter-spacing: 0.4px !important;
    margin-top: 16px !important; margin-bottom: 6px !important; display: block !important;
}

/* --- Pickup Time Result (matches hotel input style) --- */
.bfl-pickup-result {
    padding: 12px 14px !important;
    border-radius: var(--bfl-r-sm) !important;
    background: var(--bfl-white) !important;
    border: 1.5px solid var(--bfl-border-input) !important;
}
.bfl-pickup-result-icon { display: none !important; }
.bfl-pickup-result-text strong {
    display: block !important;
    font-family: 'DM Sans', -apple-system, system-ui, sans-serif !important;
    font-size: 15px !important; font-weight: 500 !important;
    color: var(--bfl-text) !important; line-height: 1.4 !important;
}
.bfl-pickup-result-text span {
    display: block !important;
    font-size: 12px !important; color: var(--bfl-text-3) !important; line-height: 1.4 !important;
}

/* --- Pickup Select (multi time — matches hotel input style) --- */
.bfl-pickup-select-wrap {
    margin-top: 16px !important; padding: 0 !important;
    background: transparent !important; border: none !important;
}
.bfl-pickup-select-wrap .bfl-pickup-select-label {
    font-family: 'DM Sans', -apple-system, system-ui, sans-serif !important;
    font-size: 12px !important; font-weight: 700 !important;
    color: var(--bfl-text) !important;
    text-transform: uppercase !important; letter-spacing: 0.4px !important;
    margin-bottom: 6px !important;
}
.bfl-pickup-select {
    width: 100% !important;
    border: 1.5px solid var(--bfl-border-input) !important;
    border-radius: var(--bfl-r-sm) !important;
    font-family: 'DM Sans', -apple-system, system-ui, sans-serif !important;
    font-size: 15px !important; font-weight: 500 !important;
    padding: 12px 14px !important; color: var(--bfl-text) !important;
    background: var(--bfl-white) !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}
.bfl-pickup-select:focus {
    border-color: var(--bfl-blue) !important;
    box-shadow: 0 0 0 3px var(--bfl-blue-ring) !important;
    outline: none !important;
}
/* Pickup select attention pulse (matches bfl-cal-pulse pattern) */
@keyframes bfl-pickup-pulse {
    0%, 100% { box-shadow: 0 0 0 3px rgba(37,99,235,0.08); }
    50% { box-shadow: 0 0 0 6px rgba(37,99,235,0.18); }
}
.bfl-pickup-select.bfl-pickup-pulse {
    animation: bfl-pickup-pulse 1.5s ease-in-out 3 !important;
    border-color: #bfdbfe !important;
}

/* =========================================
   10. PAX CARDS
   ========================================= */
.tourmaster-tour-booking-people-input {
    margin: 0 !important; padding: 0 !important;
    border: none !important; overflow: visible !important;
}

/* Collapse empty pax wrapper before transform (clearfix pseudo-elements cause 20px) */
.tourmaster-tour-booking-people-input.tourmaster-variable:not(.bfl-pax-transformed) {
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
}
.tourmaster-tour-booking-people-input.tourmaster-variable:not(.bfl-pax-transformed)::before,
.tourmaster-tour-booking-people-input.tourmaster-variable:not(.bfl-pax-transformed)::after {
    display: none !important;
    height: 0 !important;
}

/* Anti-FOUC: hide original dropdowns immediately (keep in DOM for price calc) */
.tourmaster-tour-booking-people-input .tourmaster-combobox-wrap {
    opacity: 0 !important; max-height: 0 !important; overflow: hidden !important;
}
/* After transform: fully remove from layout */
.tourmaster-tour-booking-people-input.bfl-pax-transformed > .tourmaster-combobox-wrap {
    display: none !important;
}

/* --- Pax Grid --- */
.bfl-pax-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* --- Pax Card --- */
.bfl-pax-card {
    border: 1.5px solid var(--bfl-border) !important;
    border-radius: var(--bfl-r-sm) !important;
    padding: 12px 6px 10px !important; text-align: center !important;
    transition: all 0.2s !important; background: var(--bfl-white) !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
    min-width: 0 !important;
}
.bfl-pax-card.has-value {
    border-color: var(--bfl-blue-border) !important;
    background: var(--bfl-blue-soft) !important;
}
.bfl-pax-emoji {
    font-size: 24px !important; line-height: 1 !important; margin-bottom: 4px !important;
}
.bfl-pax-emoji img.emoji {
    width: 44px !important;
    height: 44px !important;
    max-width: none !important;
}
.bfl-pax-type {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 12px !important; font-weight: 700 !important; color: var(--bfl-text) !important;
}
.bfl-pax-age {
    font-size: 9px !important; color: var(--bfl-text-3) !important; margin-bottom: 2px !important;
}

.bfl-pax-controls {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 2px !important;
}
.bfl-pax-btn {
    width: 28px !important; min-width: 28px !important; height: 28px !important;
    border-radius: var(--bfl-r-xs) !important;
    border: 1.5px solid var(--bfl-border) !important;
    background: var(--bfl-white) !important;
    font-size: 14px !important; font-weight: 500 !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    cursor: pointer !important; color: var(--bfl-text) !important;
    transition: all 0.12s !important;
    user-select: none !important; -webkit-user-select: none !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
}
.bfl-pax-btn:hover {
    border-color: var(--bfl-blue) !important;
    background: var(--bfl-blue-soft) !important;
    color: var(--bfl-blue) !important;
}
.bfl-pax-btn:active { transform: scale(0.9) !important; }
.bfl-pax-btn.dim { opacity: 0.15 !important; pointer-events: none !important; }
.bfl-pax-val {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important; font-weight: 800 !important;
    min-width: 24px !important; text-align: center !important; color: var(--bfl-text) !important;
}
.bfl-pax-card.has-value .bfl-pax-val { color: var(--bfl-blue-dark) !important; }

/* --- Package: Selected Package Card --- */
#bflPkgSel {
    margin-top: 14px !important;
}

/* --- Package: Empty State (CTA Card) --- */

@keyframes bfl-shimmer-sweep {
    0% { background-position: 200% center; }
    100% { background-position: -200% center; }
}

@keyframes bfl-arrow-nudge {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(3px); }
}

.bfl-pkg-empty {
    border: 2px solid #bfdbfe !important;
    border-radius: 12px !important;
    padding: 14px 16px !important;
    cursor: pointer !important;
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    background-color: #eff6ff !important;
    background-image: linear-gradient(90deg, rgba(37,99,235,0) 0%, rgba(37,99,235,0) 25%, rgba(37,99,235,0.18) 50%, rgba(37,99,235,0) 75%, rgba(37,99,235,0) 100%) !important;
    background-size: 200% 100% !important;
    animation: bfl-shimmer-sweep 3s ease-in-out infinite !important;
    font-family: 'DM Sans', sans-serif !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.bfl-pkg-empty:hover {
    border-color: #2563eb !important;
}

.bfl-pkg-empty-price-tag {
    position: absolute !important;
    top: -9px !important;
    right: 14px !important;
    background: #059669 !important;
    color: white !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 3px 10px !important;
    border-radius: 8px !important;
    font-family: 'DM Sans', sans-serif !important;
    line-height: 1.3 !important;
    z-index: 1 !important;
}

.bfl-pkg-empty-icon {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    border: 1px solid #bfdbfe !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.bfl-pkg-empty-text {
    flex: 1 !important;
    min-width: 0 !important;
}

.bfl-pkg-empty-title {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #111827 !important;
    font-family: 'DM Sans', sans-serif !important;
    line-height: 1.3 !important;
    margin: 0 !important;
}

.bfl-pkg-empty-subtitle {
    font-size: 11px !important;
    color: #9ca3af !important;
    margin-top: 2px !important;
    font-family: 'DM Sans', sans-serif !important;
    line-height: 1.3 !important;
}

.bfl-pkg-empty-arrow {
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
}

.bfl-pkg-empty-arrow svg {
    animation: bfl-arrow-nudge 1.5s ease-in-out infinite !important;
}

/* --- Package: Validation State (Orange) --- */

@keyframes bfl-shimmer-orange {
    0% { background-position: 200% center; }
    100% { background-position: -200% center; }
}

@keyframes bfl-pkg-shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }
    20%, 40%, 60%, 80% { transform: translateX(4px); }
}

.bfl-pkg-empty.bfl-pkg-validation {
    border-color: #fed7aa !important;
    background-color: #fff7ed !important;
    background-image: linear-gradient(90deg, rgba(234,88,12,0) 0%, rgba(234,88,12,0) 25%, rgba(234,88,12,0.12) 50%, rgba(234,88,12,0) 75%, rgba(234,88,12,0) 100%) !important;
    background-size: 200% 100% !important;
    animation: bfl-shimmer-orange 3s ease-in-out infinite, bfl-pkg-shake 0.5s ease-in-out !important;
}

.bfl-pkg-empty.bfl-pkg-validation .bfl-pkg-empty-icon {
    border-color: #fed7aa !important;
    background: #fff7ed !important;
}

.bfl-pkg-empty.bfl-pkg-validation .bfl-pkg-empty-icon svg circle {
    stroke: #ea580c !important;
}

.bfl-pkg-empty.bfl-pkg-validation .bfl-pkg-empty-icon svg polygon {
    stroke: #ea580c !important;
    fill: #fff7ed !important;
}

.bfl-pkg-empty.bfl-pkg-validation .bfl-pkg-empty-title {
    color: #9a3412 !important;
}

.bfl-pkg-empty.bfl-pkg-validation .bfl-pkg-empty-subtitle {
    color: #ea580c !important;
    font-weight: 600 !important;
}

.bfl-pkg-empty.bfl-pkg-validation .bfl-pkg-empty-arrow svg {
    stroke: #ea580c !important;
}

/* --- Package: Selected State (Rich Card) --- */
.bfl-pkg-sel {
    padding: 14px 14px 0 14px !important;
    border: 1.5px solid var(--bfl-blue-border) !important;
    border-radius: var(--bfl-r-sm) !important;
    background: var(--bfl-blue-soft) !important;
    cursor: pointer !important;
    transition: all 0.15s !important;
    overflow: hidden !important;
}
.bfl-pkg-sel:hover {
    box-shadow: 0 4px 12px rgba(37,99,235,0.1) !important;
}
/* Single-package card — not clickable */
.bfl-pkg-sel.bfl-pkg-sel-single {
    cursor: default !important;
    background: #ffffff !important;
    border-color: #e2e8f0 !important;
}
.bfl-pkg-sel.bfl-pkg-sel-single:hover {
    box-shadow: none !important;
}
.bfl-pkg-tour-name {
    padding: 8px 14px !important;
    border-bottom: 1px solid #f1f5f9 !important;
    background: #ffffff !important;
}
.bfl-pkg-tour-label {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    color: #9ca3af !important;
    margin-bottom: 2px !important;
}
.bfl-pkg-tour-title {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #334155 !important;
    line-height: 1.3 !important;
}
.bfl-pkg-sel-top {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 6px !important;
}
.bfl-pkg-sel-name {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--bfl-text) !important;
}
.bfl-pkg-sel-caption {
    font-size: 12px !important;
    color: var(--bfl-text-2) !important;
    line-height: 1.4 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}
/* Pickup sentence */
.bfl-pkg-sel-pickup {
    font-size: 12px !important;
    color: #4b5563 !important;
    line-height: 1.5 !important;
    margin-top: 8px !important;
    padding: 7px 10px !important;
    background: #ecfdf5 !important;
    border-radius: 7px !important;
}
.bfl-pkg-sel-pickup strong {
    color: #059669 !important;
    font-weight: 700 !important;
}
.bfl-pkg-sel-pickup.bfl-pkg-sel-pickup-pending {
    background: #f8fafc !important;
    color: #64748b !important;
}
.bfl-pkg-sel-departure {
    margin-top: 3px !important;
    font-size: 12px !important;
    color: #4b5563 !important;
}
.bfl-pkg-sel-departure strong {
    color: #059669 !important;
    font-weight: 700 !important;
}
/* Compare all — now inside .bfl-pkg-sel-top */
.bfl-pkg-sel-btn {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--bfl-blue) !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}
.bfl-pkg-sel-btn svg {
    transition: transform 0.15s !important;
}
.bfl-pkg-sel:hover .bfl-pkg-sel-btn svg {
    transform: translateX(3px) !important;
}

/* --- Price Breakdown (inside selected card) --- */
.tourmaster-tour-booking-bar-wrap .bfl-sel-breakdown {
    margin: 10px 0 0 0 !important;
    padding: 10px 12px !important;
    background: #f9fafb !important;
    border-radius: 8px !important;
    border: 1px solid #e5e7eb !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-sel-bd-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 6px !important;
    padding-bottom: 6px !important;
    border-bottom: 1px solid #e5e7eb !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-sel-bd-label {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: #6b7280 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-sel-bd-total {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #111827 !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-sel-bd-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 3px 0 !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #6b7280 !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-sel-bd-row span:last-child {
    font-weight: 600 !important;
    color: #374151 !important;
}

/* --- Trust Section (inside selected card) --- */
.tourmaster-tour-booking-bar-wrap .bfl-trust-section {
    margin: 12px -14px 0 -14px !important;
    overflow: hidden !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-trust-message {
    padding: 12px 14px !important;
    background: linear-gradient(to right, #eff6ff, #ffffff) !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
    border-top: 1px solid #e2e8f0 !important;
    margin: 0 !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-trust-message svg {
    flex-shrink: 0 !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-trust-title {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    color: #111827 !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-trust-subtitle {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    color: #4b5563 !important;
    margin-top: 2px !important;
    line-height: 1.4 !important;
    padding: 0 !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-trust-guarantees {
    padding: 8px 8px !important;
    background: #ffffff !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    border-top: 1px solid #bfdbfe !important;
    margin: 0 !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-trust-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 3px !important;
    padding: 0 4px !important;
    min-width: 0 !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-trust-item svg {
    flex-shrink: 0 !important;
    width: 11px !important;
    height: 11px !important;
    min-width: 11px !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-trust-item span {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 9px !important;
    font-weight: 600 !important;
    color: #4b5563 !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.tourmaster-tour-booking-bar-wrap .bfl-trust-divider {
    width: 1px !important;
    height: 10px !important;
    background: #e2e8f0 !important;
    flex-shrink: 0 !important;
}

/* =========================================
   11. SUBMIT BUTTON
   ========================================= */

/* --- Submit --- */
.tourmaster-tour-booking-submit {
    padding: 0 20px !important; margin: 16px 0 0 !important;
}
.tourmaster-tour-booking-submit-input { padding: 0 !important; }
.tourmaster-booking-submit-btn,
.tourmaster-tour-booking-bar-wrap .tourmaster-booking-submit-btn {
    width: 100% !important; padding: 15px !important;
    border: none !important; border-radius: var(--bfl-r-sm) !important;
    background: var(--bfl-blue) !important; color: var(--bfl-white) !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 15px !important; font-weight: 700 !important;
    cursor: pointer !important; transition: all 0.2s !important;
    box-shadow: 0 4px 12px rgba(37,99,235,0.25) !important;
    text-transform: uppercase !important; letter-spacing: 0.5px !important;
    display: flex !important; align-items: center !important;
    justify-content: center !important; gap: 8px !important;
}
.tourmaster-booking-submit-btn:hover {
    background: var(--bfl-blue-dark) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 20px rgba(37,99,235,0.3) !important;
}
.tourmaster-booking-submit-btn:active {
    transform: translateY(0) !important;
}

/* =========================================
   12. TRUST BAR (below booking form)
   ========================================= */
.bfl-trust-bar {
    background: linear-gradient(135deg, var(--bfl-green-soft) 0%, #f0fdf4 100%);
    border: 1px solid var(--bfl-green-border);
    border-radius: var(--bfl-r); padding: 14px; margin: 14px 0;
}
.bfl-trust-bar-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bfl-trust-item { display: flex; align-items: flex-start; gap: 8px; }
.bfl-trust-item svg { flex-shrink: 0; margin-top: 1px; }
.bfl-trust-text strong { display: block; font-size: 11.5px; font-weight: 700; color: var(--bfl-text); line-height: 1.3; }
.bfl-trust-text span { display: block; font-size: 10px; color: #6b7280; line-height: 1.3; }

.bfl-honest-section { margin: 24px 0; }
.bfl-section-title {
    font-size: 18px; font-weight: 700; color: var(--bfl-text);
    margin-bottom: 12px; padding-bottom: 8px;
    border-bottom: 2px solid var(--bfl-border);
}
.bfl-honest-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bfl-honest-item { padding: 14px; border-radius: 12px; }
.bfl-honest-good { background: var(--bfl-green-soft); border: 1px solid var(--bfl-green-border); }
.bfl-honest-note { background: #fffbeb; border: 1px solid #fde68a; }
.bfl-honest-icon { font-size: 18px; margin-bottom: 4px; }
.bfl-honest-label { font-weight: 700; font-size: 13px; color: var(--bfl-text); margin-bottom: 4px; }
.bfl-honest-text { font-size: 12px; color: #6b7280; line-height: 1.5; }



/* =========================================
   14. BOTTOM TRUST BAR (inside form)
   ========================================= */
.bfl-bottom-trust {
    padding: 14px 20px !important;
    background: var(--bfl-bg) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 18px !important;
    flex-wrap: wrap !important;
}
.bfl-bt-item {
    font-family: 'DM Sans', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--bfl-text-3) !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    white-space: nowrap !important;
}
.bfl-bt-item.bfl-bt-green { color: var(--bfl-green) !important; }

/* =========================================
   15. ANIMATIONS
   ========================================= */
@keyframes bfl-fadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* =========================================
   15. NESTED HOTEL MODE
   ========================================= */
.tourmaster-tour-booking-people {
    display: flex !important; flex-direction: column !important;
}
.tourmaster-tour-booking-people .tourmaster-tour-booking-hotel {
    display: block !important; opacity: 1 !important; visibility: visible !important;
    max-height: none !important; overflow: visible !important;
}
.tourmaster-tour-booking-people > .tourmaster-tour-booking-hotel { order: 1 !important; }
.tourmaster-tour-booking-people > .tourmaster-tour-booking-pickup-time { order: 2 !important; }
.tourmaster-tour-booking-people > .bfl-form-label-participants { order: 3 !important; }
.tourmaster-tour-booking-people > .tourmaster-tour-booking-people-input { order: 4 !important; }

html body .tourmaster-tour-booking-people.tm-nested-hotel {
    display: flex !important; opacity: 1 !important;
    visibility: visible !important; max-height: none !important;
}
.tm-nested-hotel.tm-people-visible .tourmaster-tour-booking-people-input { display: block !important; }
.tm-nested-hotel.tm-people-visible .bfl-pax-grid { display: grid !important; }

/* BFL override: show pax when phantom-loaded (TourMaster-immune class) */
#tourmaster-single-tour-booking-fields.tm-reveal-active .tourmaster-tour-booking-people.tm-nested-hotel.bfl-pax-visible .tourmaster-tour-booking-people-input {
    display: block !important;
}
#tourmaster-single-tour-booking-fields.tm-reveal-active .tourmaster-tour-booking-people.tm-nested-hotel.bfl-pax-visible .bfl-pax-grid {
    display: grid !important;
}
/* Step-4 wrapper: show when BFL has loaded phantom pax */
#tourmaster-single-tour-booking-fields.tm-reveal-active [data-step="4"].bfl-phantom-pax {
    display: block !important;
}

/* Nested hotel parent — always visible for single-package tours */
.tourmaster-tour-booking-people:has(.tourmaster-tour-booking-hotel) {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

/* Fallback for browsers without :has() */
.tourmaster-tour-booking-people[data-step="4"] {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

/* =========================================
   16. MOBILE
   ========================================= */
@media (max-width: 767px) {
    .bfl-trust-bar-inner { grid-template-columns: 1fr; gap: 8px; }
    .bfl-honest-grid { grid-template-columns: 1fr; }
    .bfl-pax-grid { grid-template-columns: 1fr 1fr 1fr !important; gap: 6px !important; }
    .bfl-pax-card { padding: 10px 4px !important; }
    .bfl-pax-emoji { font-size: 20px !important; }
    .bfl-pax-type { font-size: 10px !important; }
    .bfl-pax-btn { width: 28px !important; height: 28px !important; font-size: 15px !important; }
    .bfl-pax-val { font-size: 16px !important; }
    .bfl-bottom-trust { gap: 10px !important; padding: 12px 16px !important; }
}

/* =========================================================================
   Hotel Search Skeleton Loading
   ========================================================================= */
@keyframes bfl-shimmer {
    0% { background-position: -200px 0; }
    100% { background-position: 200px 0; }
}
@keyframes bfl-spin {
    to { transform: rotate(360deg); }
}

.bfl-hotel-skeleton {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 100% !important;
    z-index: 99998 !important;
    background: var(--bfl-white) !important;
    border: 1.5px solid var(--bfl-border) !important;
    border-top: none !important;
    border-radius: 0 0 var(--bfl-r-sm) var(--bfl-r-sm) !important;
    overflow: hidden !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
    font-family: 'DM Sans', sans-serif !important;
}

.bfl-hotel-skeleton-item {
    padding: 10px 14px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    border-bottom: 1px solid #f1f5f9 !important;
}
.bfl-hotel-skeleton-item:last-child {
    border-bottom: none !important;
}

.bfl-hotel-skeleton-bar {
    height: 12px !important;
    border-radius: 6px !important;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%) !important;
    background-size: 400px 100% !important;
    animation: bfl-shimmer 1.5s infinite linear !important;
}
.bfl-hotel-skeleton-bar.bfl-shimmer-name {
    height: 13px !important;
}
.bfl-hotel-skeleton-bar.bfl-shimmer-address {
    height: 9px !important;
}

.bfl-hotel-skeleton-text {
    padding: 6px 14px 8px !important;
    font-size: 11px !important;
    color: var(--bfl-blue) !important;
    font-weight: 500 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    background: var(--bfl-blue-soft) !important;
    font-family: 'DM Sans', sans-serif !important;
}

/* Input border while searching */
.bfl-hotel-searching .autocomplete-hotel-field,
.bfl-hotel-searching .simple-hotel-field {
    border-color: var(--bfl-blue-border) !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

/* Search icon spins while searching */
.bfl-hotel-searching .bfl-hotel-icon svg {
    animation: bfl-spin 0.8s linear infinite !important;
}

/* =========================================================================
   Hotel autocomplete dropdown
   ========================================================================= */
.ui-autocomplete {
    max-height: 350px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 99999 !important;
    border-radius: var(--bfl-r-sm) !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
    border: 1px solid var(--bfl-border) !important;
    background: var(--bfl-white) !important;
}

/* ========================================
   HOTEL SEARCH — NO RESULTS MESSAGE
   ======================================== */

.bfl-no-results {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 100% !important;
    z-index: 99998 !important;
    background: #ffffff !important;
    border: 1.5px solid #e2e8f0 !important;
    border-top: none !important;
    border-radius: 0 0 10px 10px !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08) !important;
    font-family: 'DM Sans', sans-serif !important;
    animation: bflNoResultsFadeIn 0.2s ease !important;
}

@keyframes bflNoResultsFadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

.bfl-no-results-header {
    padding: 18px 16px 12px !important;
    text-align: center !important;
}

.bfl-no-results-title {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #111827 !important;
    margin: 0 0 4px !important;
    font-family: 'DM Sans', sans-serif !important;
    line-height: 1.3 !important;
}

.bfl-no-results-subtitle {
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #4b5563 !important;
    margin: 0 !important;
    font-family: 'DM Sans', sans-serif !important;
    line-height: 1.4 !important;
}

.bfl-no-results-actions {
    display: flex !important;
    gap: 8px !important;
    padding: 0 12px 14px !important;
}

.bfl-no-results-btn {
    flex: 1 !important;
    padding: 12px 10px !important;
    border-radius: 10px !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    font-family: 'DM Sans', sans-serif !important;
}

.bfl-no-results-btn-location {
    background: #eff6ff !important;
    border: 1px solid transparent !important;
}

.bfl-no-results-btn-location:hover {
    border-color: #bfdbfe !important;
}

.bfl-no-results-btn-skip {
    background: #f8f9fb !important;
    border: 1px solid #e2e8f0 !important;
}

.bfl-no-results-btn-skip:hover {
    border-color: #9ca3af !important;
}

.bfl-no-results-btn-emoji {
    font-size: 18px !important;
    margin-bottom: 4px !important;
    line-height: 1 !important;
}

.bfl-no-results-btn-title {
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    margin-bottom: 3px !important;
    font-family: 'DM Sans', sans-serif !important;
}

.bfl-no-results-btn-location .bfl-no-results-btn-title {
    color: #2563eb !important;
}

.bfl-no-results-btn-skip .bfl-no-results-btn-title {
    color: #4b5563 !important;
}

.bfl-no-results-btn-caption {
    font-size: 10px !important;
    color: #9ca3af !important;
    line-height: 1.3 !important;
    font-family: 'DM Sans', sans-serif !important;
}

/* Hide hotel extras when no-results message is showing (prevents text overlap) */
.bfl-hotel-extras.bfl-no-results-active {
    display: none !important;
}

/* ========================================
   HOTEL SEARCH RESULTS REDESIGN
   ======================================== */

/* ---- HEADER ---- */
.bfl-dropdown-header {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: default !important;
    pointer-events: none !important;
}

.bfl-dropdown-header .ui-menu-item-wrapper {
    display: none !important;
}

.bfl-dropdown-header-inner {
    padding: 8px 14px !important;
    background: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: 0 !important;
    border: none !important;
}

.bfl-dropdown-header-left {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.bfl-dropdown-header-left span {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: #ffffff !important;
    font-family: 'DM Sans', sans-serif !important;
    line-height: 1.3 !important;
}

.bfl-dropdown-header-left svg {
    flex-shrink: 0 !important;
}

.bfl-dropdown-header-count {
    font-size: 10px !important;
    font-weight: 600 !important;
    color: #ffffff !important;
    background: rgba(255,255,255,0.2) !important;
    padding: 2px 8px !important;
    border-radius: 10px !important;
    font-family: 'DM Sans', sans-serif !important;
    white-space: nowrap !important;
}

/* Header hover/focus/active override */
.ui-autocomplete-hotel-search-menu .bfl-dropdown-header,
.ui-autocomplete-hotel-search-menu .bfl-dropdown-header:hover,
.ui-autocomplete-hotel-search-menu .bfl-dropdown-header:focus,
.ui-autocomplete-hotel-search-menu .bfl-dropdown-header.ui-state-hover,
.ui-autocomplete-hotel-search-menu .bfl-dropdown-header.ui-state-focus,
.ui-autocomplete-hotel-search-menu .bfl-dropdown-header.ui-state-active {
    background: transparent !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    outline: none !important;
}

/* ---- RESULT ITEMS ---- */

/* Font override — jQuery UI default Verdana */
.ui-autocomplete-hotel-search-menu,
.ui-autocomplete-hotel-search-menu * {
    font-family: 'DM Sans', sans-serif !important;
}

/* Google Places icon hide */
.ui-autocomplete-hotel-search-menu .hotel-search-result img {
    display: none !important;
}

/* Item wrapper padding + border */
.ui-autocomplete-hotel-search-menu .hotel-search-result .ui-menu-item-wrapper {
    padding: 10px 14px !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
}

/* Item border-bottom */
.ui-autocomplete-hotel-search-menu .hotel-search-result {
    border-bottom: 1px solid #f1f5f9 !important;
    margin: 0 !important;
    transition: background 0.15s ease !important;
}

.ui-autocomplete-hotel-search-menu .hotel-search-result:last-child {
    border-bottom: none !important;
}

/* Hover state — override jQuery UI gray hover */
.ui-autocomplete-hotel-search-menu .hotel-search-result .ui-state-hover,
.ui-autocomplete-hotel-search-menu .hotel-search-result .ui-state-focus,
.ui-autocomplete-hotel-search-menu .hotel-search-result .ui-state-active,
.ui-autocomplete-hotel-search-menu .hotel-search-result:hover .ui-menu-item-wrapper,
.ui-autocomplete-hotel-search-menu .hotel-search-result .ui-menu-item-wrapper.ui-state-hover,
.ui-autocomplete-hotel-search-menu .hotel-search-result .ui-menu-item-wrapper.ui-state-focus,
.ui-autocomplete-hotel-search-menu .hotel-search-result .ui-menu-item-wrapper.ui-state-active {
    background: #eff6ff !important;
    border: none !important;
    margin: 0 !important;
    padding: 10px 14px !important;
    font-weight: normal !important;
    color: inherit !important;
}

/* ---- RESULT CONTENT ---- */

.bfl-result-content {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
}

.bfl-result-left {
    flex: 1 !important;
    min-width: 0 !important;
}

.bfl-result-name {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #111827 !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    line-height: 1.4 !important;
}

.bfl-result-name .bfl-highlight {
    font-weight: 700 !important;
    color: #2563eb !important;
}

.bfl-result-address {
    font-size: 11px !important;
    color: #9ca3af !important;
    margin-top: 2px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    line-height: 1.3 !important;
}

.bfl-result-departure {
    flex-shrink: 0 !important;
    background: #ecfdf5 !important;
    border-radius: 20px !important;
    padding: 4px 10px !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
}

.bfl-result-departure svg {
    flex-shrink: 0 !important;
}

.bfl-result-departure span {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #059669 !important;
    line-height: 1 !important;
}

/* ---- "NOT LISTED" ITEM ---- */

.bfl-not-listed {
    font-family: 'DM Sans', sans-serif !important;
}

.bfl-not-listed i.fa-info-circle {
    color: #2563eb !important;
    font-size: 18px !important;
}

.bfl-not-listed p {
    font-family: 'DM Sans', sans-serif !important;
    line-height: 1.4 !important;
}

.bfl-not-listed p b {
    color: #111827 !important;
    font-size: 13px !important;
}

.bfl-not-listed p small {
    color: #9ca3af !important;
    font-size: 11px !important;
}

/* ---- SCROLLBAR ---- */

.ui-autocomplete-hotel-search-menu {
    scrollbar-width: thin !important;
    scrollbar-color: #e2e8f0 transparent !important;
}

.ui-autocomplete-hotel-search-menu::-webkit-scrollbar {
    width: 6px !important;
}

.ui-autocomplete-hotel-search-menu::-webkit-scrollbar-track {
    background: transparent !important;
}

.ui-autocomplete-hotel-search-menu::-webkit-scrollbar-thumb {
    background: #e2e8f0 !important;
    border-radius: 3px !important;
}

/* Booking bar overflow — wrap visible for dropdowns, inner hidden to contain packages */
.tourmaster-tour-booking-bar-wrap {
    overflow: visible !important;
}
.tourmaster-tour-booking-bar-inner {
    overflow: hidden !important;
}
/* When hotel dropdown, skeleton, or no-results is active, let content overflow bar-inner */
.tourmaster-tour-booking-bar-inner.bfl-overflow-visible {
    overflow: visible !important;
}
/* Desktop: booking form scrolls internally when taller than viewport */
@media (min-width: 768px) {
    .tourmaster-tour-booking-bar-wrap {
        max-height: calc(100vh - 40px) !important;
        overflow-y: auto !important;
        overflow-x: visible !important;
    }
    .tourmaster-tour-booking-bar-wrap::-webkit-scrollbar {
        width: 4px !important;
    }
    .tourmaster-tour-booking-bar-wrap::-webkit-scrollbar-track {
        background: transparent !important;
    }
    .tourmaster-tour-booking-bar-wrap::-webkit-scrollbar-thumb {
        background: #d1d5db !important;
        border-radius: 4px !important;
    }
    .tourmaster-tour-booking-bar-wrap::-webkit-scrollbar-thumb:hover {
        background: #9ca3af !important;
    }
}

/* =========================================
   7b. HOTEL: Decide Later (Option C)
   ========================================= */

/* Disabled input state — soft blue background + border */
/* Triple-class specificity to beat .tourmaster-tour-style-3 .autocomplete-hotel-field */
.tourmaster-tour-style-3 .bfl-hotel-decided-later .autocomplete-hotel-field,
.tourmaster-tour-style-3 .bfl-hotel-decided-later .simple-hotel-field,
.bfl-hotel-decided-later .autocomplete-hotel-field,
.bfl-hotel-decided-later .simple-hotel-field {
    background: #eff6ff !important;
    border: 1.5px solid #bfdbfe !important;
    border-radius: 10px !important;
    pointer-events: none !important;
    cursor: default !important;
}
.tourmaster-tour-style-3 .bfl-hotel-decided-later .autocomplete-hotel-field::placeholder,
.tourmaster-tour-style-3 .bfl-hotel-decided-later .simple-hotel-field::placeholder,
.bfl-hotel-decided-later .autocomplete-hotel-field::placeholder,
.bfl-hotel-decided-later .simple-hotel-field::placeholder {
    color: #2563eb !important;
    font-style: normal !important;
    font-weight: 500 !important;
    opacity: 1 !important;
}

/* Hide search icon + hide clear button (X is now in skipped card) */
.bfl-hotel-decided-later .bfl-hotel-icon {
    display: none !important;
}
.bfl-hotel-decided-later .bfl-hotel-clear {
    display: none !important;
}

/* ============================================================
   HOTEL SKIPPED STATE — Slate Pill (2026-03-23)
   ============================================================ */
.bfl-hotel-skipped-pill {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #f8fafc !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 12px !important;
    padding: 12px 14px !important;
    font-family: 'DM Sans', sans-serif !important;
}
.bfl-hotel-skipped-pill-left {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.bfl-hotel-skipped-dot {
    width: 8px !important;
    height: 8px !important;
    min-width: 8px !important;
    border-radius: 50% !important;
    background: #94a3b8 !important;
    flex-shrink: 0 !important;
}
.bfl-hotel-skipped-pill-title {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #334155 !important;
    line-height: 1.2 !important;
}
.bfl-hotel-skipped-pill-sub {
    font-size: 11px !important;
    color: #94a3b8 !important;
    margin-top: 1px !important;
    line-height: 1.2 !important;
}

/* X BUTTON — ROUND (slate) */
.bfl-hotel-skipped-pill-x {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    border-radius: 50% !important;
    background: #64748b !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: transform 0.15s ease !important;
    box-shadow: 0 2px 6px rgba(100,116,139,0.25) !important;
    flex-shrink: 0 !important;
}
.bfl-hotel-skipped-pill-x:hover {
    transform: scale(1.08) !important;
}
.bfl-hotel-skipped-pill-x:active {
    transform: scale(0.95) !important;
}

/* ============================================================
   CALENDAR PULSE — date not selected when hotel skipped
   ============================================================ */
@keyframes bfl-cal-pulse {
    0%, 100% { box-shadow: 0 0 0 3px rgba(37,99,235,0.08); }
    50% { box-shadow: 0 0 0 6px rgba(37,99,235,0.18); }
}
.bfl-cal-pulse {
    animation: bfl-cal-pulse 1.5s ease-in-out 3 !important;
    border-color: #bfdbfe !important;
}

/* ============================================================
   MOBILE PADDING FIX — SINGLE TOUR PAGES
   Restores horizontal padding stripped by global !important
   overrides in Simple Custom CSS & JS plugin.
   ============================================================ */
@media (max-width: 767px) {
    body.single-tour .gdlr-core-pbf-section-container.gdlr-core-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* ============================================================
   MOBILE FLOATING BOTTOM BAR
   Replaces the old .mobile-book bar with a richer design
   showing price, rating, trust signal and Book now CTA.
   ============================================================ */

/* Hide the old TourMaster bottom bar on mobile */
@media (max-width: 959px) {
    body.single-tour .mobile-book {
        display: none !important;
    }
}

/* Bar wrapper — hidden by default, flex on mobile */
.bfl-mobile-bar {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 99999;
    background: #ffffff;
    border-top: 1px solid #e2e8f0;
    padding: 10px 16px;
    padding-bottom: max(10px, env(safe-area-inset-bottom));
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.06);
    transition: transform 0.3s ease;
}

@media (max-width: 959px) {
    body.single-tour .bfl-mobile-bar {
        display: flex;
        align-items: center;
        gap: 12px;
    }
}

/* Hide when user reaches booking form */
.bfl-mobile-bar.bfl-bar-hidden {
    transform: translateY(100%);
}

/* Left info block */
.bfl-mobile-bar-info {
    flex: 1;
    min-width: 0;
}

/* Price row */
.bfl-mobile-bar-price {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.bfl-mobile-bar-from {
    font-size: 11px;
    color: var(--bfl-text-3, #9ca3af);
    font-weight: 600;
    font-family: 'DM Sans', Arial, sans-serif;
}

.bfl-mobile-bar-amount {
    font-size: 22px;
    font-weight: 800;
    color: var(--bfl-text, #111827);
    font-family: 'DM Sans', Arial, sans-serif;
    line-height: 1;
}

.bfl-mobile-bar-per {
    font-size: 12px;
    color: var(--bfl-text-3, #9ca3af);
    font-weight: 500;
    font-family: 'DM Sans', Arial, sans-serif;
}

/* Meta row (stars + rating + free cancellation) */
.bfl-mobile-bar-meta {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 2px;
}

.bfl-mobile-bar-stars {
    color: #f59e0b;
    font-size: 12px;
    letter-spacing: -1px;
}

.bfl-mobile-bar-rating {
    font-size: 11px;
    color: var(--bfl-text-2, #6b7280);
    font-weight: 500;
    font-family: 'DM Sans', Arial, sans-serif;
}

.bfl-mobile-bar-dot {
    font-size: 11px;
    color: var(--bfl-text-3, #9ca3af);
    margin: 0 2px;
}

.bfl-mobile-bar-cancel {
    font-size: 11px;
    color: #059669;
    font-weight: 600;
    font-family: 'DM Sans', Arial, sans-serif;
}

/* CTA button */
.bfl-mobile-bar-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bfl-blue, #2563eb);
    color: #ffffff !important;
    padding: 12px 22px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none !important;
    white-space: nowrap;
    font-family: 'DM Sans', Arial, sans-serif;
    border: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.bfl-mobile-bar-btn:hover,
.bfl-mobile-bar-btn:active {
    background: var(--bfl-blue-dark, #1d4ed8);
    color: #ffffff !important;
    text-decoration: none !important;
}

/* Push page content above the bar */
@media (max-width: 959px) {
    body.single-tour {
        padding-bottom: 80px !important;
    }
}

/* ============================================
   PLUGIN MIGRATION — ex-Simple Custom CSS & JS
   Migrated: 2026-04-14
   ============================================ */

/* --- 13662: Tour title mobile --- */
@media(max-width:768px){
.tourfont h1 {
     font-size:24px !important;
 	 line-height: 1.3;
}
}

/* --- 14200: Buttons (Poppins @import removed) --- */
.button-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: left;
}

.button {
  font-family: 'GT Eesti', sans-serif;
  font-weight: 500;
  font-size: 13px;
  line-height: 18px;
  text-transform: none;
  color: #ffffff;
  padding: 5px 10px 5px 10px;
  border: none;
  background-color: #4CAF50;
  text-align: left;
  text-decoration: none;
  display: inline-block;
  margin: 4px;
  border-radius: 4px;
  box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.25);
  position: relative;
  white-space: nowrap;
  text-transform: none;
}

.button i {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
}

@media (max-width: 767px) {
  .button-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    align-items: left;
  }
  .button {
    font-size: 11px;
    line-height: 18px;
    padding: 8px 12px;
    margin: 4px;
    padding: 6px 10px;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    white-space: nowrap;
    text-align: left;
    box-sizing: border-box;
    position: relative;
    flex-shrink: 0;
    width: auto;
    text-transform: none;
  }
  .button i {
    display: inline-block;
    position: static;
    margin-right: 8px;
    vertical-align: middle;
    top: auto;
    transform: none;
    font-size: 11px;
  }
  .button span {
    display: inline-block;
    vertical-align: middle;
  }
  .button-container .button {
    flex-basis: calc(10% - 5px);
    width: auto;
  }
  .button-container .button:first-child {
    margin-right: 0px;
  }
}

/* --- 15417: Breadcrumbs --- */
.bread a {
color: #022c4b;
}

@media(max-width:768px){
.gdlr-core-breadcrumbs-item {
font-size:12px;
}
  }

/* --- 15480: Tour excerpt --- */
.tourmaster-body .tourmaster-tour-info-custom-excerpt p {
font-size:16px;
  line-height:27px;
  font-weight:400;
  color:#333333;
  letter-spacing: -0.4px;
}

@media(max-width:768px){
.tourmaster-body .tourmaster-tour-info-custom-excerpt p {
font-size:16px;
  line-height:26px;
  font-weight:400;
  color:#333333;
}
}

/* --- 20192: Tour box (scoped h2) --- */
.tour-box {
    background-color: #dd3333;
    color: white;
    padding: 20px;
    border-radius: 16px;
    width: 100%;
    text-align: center;
    box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.15);
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 30vh;
    font-family: 'Fira Sans', sans-serif;
}

.tour-box h2 {
    color: white;
    font-size: 1.8em;
    font-weight: 600;
}

/* --- 20252: Announcement bar --- */
/* Announcement Bar Styles */
.tour-announcement {
  --white:#ffffff;
  --shadow:0 8px 24px rgba(0,0,0,.08);
  background: linear-gradient(90deg,#1e3c72,#2a5298);
  color: var(--white);
  padding: 14px 18px;
  box-shadow: var(--shadow);
  border-radius: 16px;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  width: 100%;
}

.announce-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
}

.announce-text {
  margin: 0;
  font-size: 16px;
  line-height: 1.4;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.highlight {
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
}

.rating {
  font-weight: 800;
  color: #FFD700;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.announce-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.brand-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: var(--white);
  color: #0b1220;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
}

.brand-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0,0,0,.14);
}

.brand-btn:focus {
  outline: 2px solid rgba(255,255,255,.9);
  outline-offset: 2px;
}

.brand-btn .logo {
  width: 22px;
  height: 22px;
  object-fit: contain;
  display: block;
}

/* Mobile */
@media (max-width: 720px) {
  .announce-inner {
    grid-template-columns: 1fr;
  }
  .announce-actions {
    justify-content: flex-start;
  }
  .announce-text {
    font-size: 15px;
  }
}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce) {
  .brand-btn {
    transition: none;
  }
}

/* --- 20587: Social/Agency box --- */
.social-box {
  flex: 0 0 65%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  white-space: nowrap;
  background: #fff;
  padding: 10px 18px;
  border-radius: 10px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.1);
  font-size: 16px;
}

/* Hide social box on mobile */
@media (max-width: 768px) {
  .social-box {
    display: none !important;
  }
}
.agency-box {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  padding: 14px 22px 10px 22px;
  border-radius: 10px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.1);
  white-space: nowrap;
}

.agency-box i {
  font-size: 22px;
  color: #2563eb;
  flex-shrink: 0;
  line-height: 1;
  vertical-align: middle;
}

.agency-box .title {
  font-size: 18px;
  font-weight: 600;
  color: #1f2937;
}

.agency-box .reg {
  font-size: 14px;
  color: #6b7280;
  margin-left: 4px;
}

/* Mobile */
@media (max-width: 768px) {
  .agency-box {
    background: none;
    box-shadow: none;
    border-radius: 0;
    padding: 0 0 10px 0;
  }

  .agency-box i {
    font-size: 20px;
  }

  .agency-box .title {
    font-size: 16px;
  }

  .agency-box .reg {
    font-size: 12px;
  }
}

/* --- 20613: Calendar styles --- */
/*****Calendar Start*****/
/* Modern calendar styling (white background, primary: #234076) */
:root {
	--tm-primary: #234076;
	--tm-primary-rgb: 35, 64, 118;
	--tm-surface: #ffffff;
	--tm-border: #e7eaf0;
	--tm-muted: #6b7280;
	--tm-radius: 8px;
	--tm-shadow: 0 16px 40px rgba(17, 24, 39, .18);
	--tm-focus: rgba(35, 64, 118, .22);
}

/* Container */
.ui-datepicker,
.tourmaster .ui-datepicker {
	background: var(--tm-surface);
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	box-shadow: var(--tm-shadow);
	padding: 12px;
	color: #111827;
	font-family: inherit;
	background:#f8faff !important;
}

/* Header */
.ui-datepicker .ui-datepicker-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: var(--tm-surface);
	border: 0;
	border-bottom: 1px solid var(--tm-border);
	padding: 10px 6px 12px;
	margin-bottom: 8px;
}

/* Prev/Next buttons */
.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
	position: static;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	border: 1px solid var(--tm-border);
	background: var(--tm-surface);
	color: var(--tm-primary);
	cursor: pointer;
	transition: all .2s ease;
}
.ui-datepicker .ui-datepicker-prev:hover,
.ui-datepicker .ui-datepicker-next:hover {
	background: var(--tm-surface);
	border-color: rgba(var(--tm-primary-rgb), .30);
	box-shadow: 0 0 0 3px rgba(var(--tm-primary-rgb), .08) inset;
}
.ui-datepicker .ui-icon { display: none; }
.ui-datepicker .ui-datepicker-prev:before,
.ui-datepicker .ui-datepicker-next:before {
	content: "";
	width: 12px;
	height: 12px;
	background: no-repeat center/12px
	url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23234076' d='M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z'/></svg>");
}
.ui-datepicker .ui-datepicker-next:before { transform: rotate(180deg); }

/* Title + selects */
.ui-datepicker .ui-datepicker-title {
	display: flex;
	gap: 8px;
	align-items: center;
	font-weight: 600;
	color: #111827;
}
.ui-datepicker .ui-datepicker-title select {
	appearance: none;
	border: 1px solid var(--tm-border);
	border-radius: 10px;
	background: var(--tm-surface);
	padding: 8px 36px 8px 12px;
	font-weight: 600;
	color: #111827;
	cursor: pointer;
	transition: border-color .2s ease, box-shadow .2s ease;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='%23234076' d='M5.23 7.21 10 12 4.77-4.79 1.06 1.06L10 14.12 4.17 8.27z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 14px;
}
.ui-datepicker .ui-datepicker-title select:focus {
	outline: none;
	box-shadow: 0 0 0 3px var(--tm-focus);
	border-color: rgba(var(--tm-primary-rgb), .35);
}

/* Week header */
.ui-datepicker th {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--tm-muted);
	padding: 6px 0 4px;
	background: var(--tm-surface);
}

/* Day grid */
.ui-datepicker table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 8px;
	margin: 0;
	background: var(--tm-surface);
}
.ui-datepicker td { padding: 0; }

.ui-datepicker .ui-state-default {
	display: inline-flex;
	width: 38px;
	height: 38px;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	color: #111827;
	background: var(--tm-surface);
	border: 1px solid transparent;
	transition: all .15s ease;
}
.ui-datepicker .ui-state-default:hover {
	background: var(--tm-surface);
	border-color: rgba(var(--tm-primary-rgb), .30);
	color: var(--tm-primary);
	box-shadow: 0 0 0 3px rgba(var(--tm-primary-rgb), .08) inset;
}

/* Selected and Today */
.ui-datepicker .ui-state-active,
.ui-datepicker .ui-datepicker-current-day .ui-state-default {
	background: var(--tm-primary) !important;
	color: #fff !important;
	border-color: var(--tm-primary) !important;
}

/* If the plugin marks today with ui-state-highlight (and not active) keep white bg with a ring */
.ui-datepicker .ui-state-highlight:not(.ui-state-active) {
	background: var(--tm-surface) !important;
	color: var(--tm-primary) !important;
	border-color: rgba(var(--tm-primary-rgb), .40) !important;
	box-shadow: 0 0 0 2px rgba(var(--tm-primary-rgb), .12) inset;
}

/* Disabled */
.ui-datepicker .ui-state-disabled,
.ui-datepicker .ui-datepicker-unselectable .ui-state-default {
	opacity: .7;
	background: var(--tm-surface);
	color: #9aa4b2;
	cursor: not-allowed;
	border-color: transparent;
}

/* Button pane */
.ui-datepicker .ui-datepicker-buttonpane {
	margin-top: 8px;
	border-top: 1px solid var(--tm-border);
	padding-top: 10px;
	display: flex;
	justify-content: space-between;
	gap: 8px;
	background: var(--tm-surface);
}
.ui-datepicker .ui-datepicker-buttonpane button {
	border-radius: 10px;
	border: 1px solid var(--tm-border);
	padding: 8px 12px;
	background: var(--tm-surface);
	color: #111827;
	cursor: pointer;
	transition: all .2s ease;
}
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current,
.ui-datepicker .ui-datepicker-buttonpane button:hover {
	background: var(--tm-primary);
	color: #fff;
	border-color: var(--tm-primary);
}
/*****Calendar End*****/


.tourmaster-page-content

{padding-top: 0px;!important}

.tourmaster-payment-head {display: none;}



.tourmaster-page-wrapper.tourmaster-tour-style-3 .tourmaster-tour-booking-bar-outer {margin-top: 0px;}

.tourmaster-tour-booking-bar-wrap .tourmaster-save-wish-list i {
	display: none; }

.tourmaster-header-price3 .tourmaster-header-price-ribbon { display: none;}

.tourmaster-page-wrapper.tourmaster-tour-style-3
.tourmaster-tour-booking-bar-wrap
.tourmaster-header-price
.tourmaster-save-wish-list {
    background: #234076;
    border: 0;
    color: white;
    border-radius: 6px;
    margin: 4px;
    padding: 6px 12px;
    transition: background 0.3s ease;
	font-size: 13px;
	line-height: 17px;
}

.tourmaster-save-wish-list:hover {
    background: #234076;
}

/* --- 20785: Sidebar/Combobox --- */
.gdlr-core-pbf-sidebar-padding {
    padding-bottom: 10px; }

.tourmaster-form-field .tourmaster-combobox-list-wrap .tourmaster-combobox-list-caption {
	font-size: 14px; }

/* --- 20864: CTA button --- */
.open-calendar-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;

    width: 100%;
    max-width: 360px;
    padding: 16px 24px;

    background: #0371EC;
    color: #ffffff !important;
    text-decoration: none !important;
    text-align: center;

    font-family: "Poppins", sans-serif;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 0.4px;

    border-radius: 12px;
    border: none;
    cursor: pointer;

    margin: 20px auto;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
    transition: all 0.25s ease;
}

.open-calendar-btn:hover {
    background: #0262cb;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.22);
}

@media (max-width: 480px) {
    .open-calendar-btn {
        max-width: 100%;
        padding: 18px;
        font-size: 16px;
        border-radius: 14px;
    }
}

/* --- inline-21027: Tour program + timeline --- */
/* =========================
   TOUR PROGRAM + TIMELINE
========================= */

.tour-program-modern {
  max-width: 820px;
  margin: 40px 0;
  font-family: "Josefin Sans", system-ui, sans-serif;
}

.tour-program-title {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 18px;
  color: #333;
}

/* GRID */
.tour-program-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

/* TIMELINE LINE */
.timeline {
  position: relative;
  padding-left: 46px;
}

.timeline::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, #ffba4a, #ff8a35);
  opacity: 0.6;
}

/* CARD */
.tour-stop {
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 12px 26px rgba(0,0,0,0.06);
  padding: 16px 18px 18px;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
  position: relative;

  opacity: 0;
  transform: translateY(20px);
  transition: opacity .5s ease, transform .5s ease;
}

.tour-stop.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.tour-stop:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 36px rgba(0,0,0,0.1);
}

.tour-stop h3 {
  margin: 0 0 6px;
  font-size: 15px;
  color: #333;
}

.tour-stop p {
  margin: 0;
  font-size: 12.8px;
  line-height: 1.5;
  color: #666;
}

/* TIME BADGE */
.tour-time {
  position: absolute;
  left: -46px;
  top: 20px;
  width: 58px;
  padding: 4px 0;
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #ffba4a, #ff8a35);
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.25);
}

/* CLICK INDICATOR */
.photo-indicator {
  display: inline-block;
  margin-top: 8px;
  font-size: 11.5px;
  font-weight: 600;
  color: #ff8a35;
  cursor: pointer;
  pointer-events: auto;
}

/* =========================
   LIGHTBOX (MODERN)
========================= */

.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(12,12,12,0.85);
  backdrop-filter: blur(6px);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.lightbox-inner {
  position: relative;
  width: min(820px, 94vw);
  height: min(520px, 78vh);
  background: #000;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,0.6);
}

.lightbox-image {
  width: 100%;
  height: 100%;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

/* Close Button */
.lightbox-close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 38px;
  height: 38px;
  background: rgba(0,0,0,0.45);
  border-radius: 50%;
  color: #fff;
  font-size: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
}

/* FULL, FILLED CIRCLE NAV BUTTONS */

.lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);

  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;

  background: rgba(0, 0, 0, 0.65) !important;
  border: none !important;
  box-sizing: border-box !important;

  padding: 0 !important;
  margin: 0 !important;

  color: #ffffff !important;
  font-size: 20px !important;
  line-height: 1 !important;
  font-weight: 500;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  cursor: pointer;
  opacity: 0.85;
  transition: background 0.15s ease, transform 0.15s ease, opacity 0.15s ease;
}

.lightbox-nav:hover {
  background: rgba(0, 0, 0, 0.8) !important;
  opacity: 1;
}

.lightbox-nav:active {
  transform: translateY(-50%) scale(0.9);
}

/* Positions */
.lightbox-nav.prev {
  left: 14px;
}

.lightbox-nav.next {
  right: 14px;
}

/* MOBILE */
@media (max-width: 600px) {
  .lightbox-nav {
    width: 38px !important;
    height: 38px !important;
    font-size: 18px !important;
  }
}



/* =========================
   TOUR PROGRAM NOTE
========================= */
/* =========================
   TOUR PROGRAM NOTE -- HARD ALIGN FIX
========================= */

.tour-program-note {
  margin-top: 18px;
  padding: 10px 14px;
  background: #f8f8f8;
  border: 1px solid #ececec;
  border-radius: 10px;

  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
}

/* ICON -- FORCE CENTER */
.tour-program-note .note-icon,
.tour-program-note i,
.tour-program-note svg {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  font-size: 14px !important;
  line-height: 1 !important;
  height: auto !important;

  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
  position: relative !important;
  top: 0 !important;
}

/* TEXT -- FORCE CENTER */
.tour-program-note .note-text {
  display: flex !important;
  align-items: center !important;

  font-size: 12px !important;
  line-height: 1.4 !important;
  color: #666 !important;

  margin: 0 !important;
  padding: 0 !important;

  position: relative;
  top: -8px;
}


/* MOBILE */
@media (max-width: 600px) {
  .tour-program-note .note-text {
    font-size: 11px !important;
  }

  .tour-program-note .note-icon {
    font-size: 13px !important;
  }
}

/* MOBILE/TABLET: Make "(6 Degerlendirme)" smaller + less bold */
@media (max-width: 768px){
  a.tour-rating .tg-count{
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
  }
}



/* MOBILE/TABLET: force "(6 Degerlendirme)" to NOT be bold */
@media (max-width: 768px){
  a.tour-rating,
  a.tour-rating *{
    font-weight: 400 !important;
  }

  /* then set only what you want */
  a.tour-rating .tg-score{ font-weight: 600 !important; }
  a.tour-rating .tg-count{ font-weight: 400 !important; }
}

@media (max-width: 768px){
  a.tour-rating .tg-count{ color: #333 !important; opacity: .9; }
}


/* Fix kemer-list spacing + make top item's shadow visible */

#detail .kemer-list{
  margin: 0 !important;
  padding: 12px 0 !important;
}

#detail .kemer-list li{
  margin-bottom: 12px !important;
}

#detail .kemer-list li:last-child{
  margin-bottom: 0 !important;
}

/* If any parent is clipping shadows, force it visible */
#detail .gdlr-core-text-box-item,
#detail .gdlr-core-text-box-item-content{
  overflow: visible !important;
}

/* Space above so the top shadow has room */
@media (max-width: 768px){
#detail .kemer-list{
  margin: 0 !important;
  padding: 0px 0 !important;
	}
}

/* Add an "upward" shadow only on the first item */
#detail .kemer-list li:first-child{
  box-shadow:
    0 -6px 18px rgba(0,0,0,0.0),
    0  6px 18px rgba(0,0,0,0.0) !important;
}

/* In case something is clipping the shadow */
#detail .gdlr-core-text-box-item,
#detail .gdlr-core-text-box-item-content{
  overflow: visible !important;
}

/* Make each row a bit narrower (left/right) */

#detail .kemer-list li{
  margin-left: 10px !important;
  margin-right: 10px !important;

  /* add side shadows too */
  box-shadow:
    -6px 0 18px rgba(0,0,0,0.03),
     6px 0 18px rgba(0,0,0,0.03),
     0  6px 18px rgba(0,0,0,0.03) !important;
}


/* Keep the special "shadow above the first item" + also include the side shadows */
#detail .kemer-list li:first-child{
  box-shadow:
    -6px 0 18px rgba(0,0,0,0.03),
     6px 0 18px rgba(0,0,0,0.03),
     0 -6px 18px rgba(0,0,0,0.03),
     0  6px 18px rgba(0,0,0,0.03) !important;
}

/* If anything was clipping shadows */
#detail .gdlr-core-text-box-item,
#detail .gdlr-core-text-box-item-content{
  overflow: visible !important;
	}

@media (max-width: 768px){
  #detail > .gdlr-core-pbf-column-content-margin.lightbox-wrapper{
    padding-top: 12px !important;
    padding-bottom: 12px !important;
	padding-left: 0px !important;
    padding-right: 0px !important;
  }
}

.lightbox-wrapper {
    position: relative;
    z-index: 1;
    max-width: 1100px;
    margin: 40px 0;
    background: #ffffff;
    border-radius: 22px;
    border: 1px solid rgba(0, 0, 0, 0.07);
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.10), 0 6px 18px rgba(0, 0, 0, 0.06);
    padding: 12px 12px;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}


.tour-pricing-table tbody td {
  color: #333333 !important;
}

@media (max-width: 768px) {
	  .tour-feature {
    padding: 14px 14px 16px;
    margin-bottom: 10px;
    border-radius: 16px;
	  }
	}

@media (max-width: 768px) {
    .traveltour-body h1, .traveltour-body h2, .traveltour-body h3, .traveltour-body h4, .traveltour-body h5, .traveltour-body h6 {
        margin-top: 0px;
        margin-bottom: 20px;
        margin-left: 0px;
        line-height: 1.2;
        font-weight: 700;
    }
}

@media (min-width: 901px) {
    .foam-card__media {
        --inset-left: 0px;
        border-right: 1px solid #d9e2ef;
    }
}


/* 1) Card padding: keep top 20px, remove bottom padding */
@media (max-width: 430px){
.lightbox-wrapper{
  padding-top: 20px !important;
  padding-bottom: 0px !important;
}

/* 2) Keep Google map inside the card (no edge overlap) */
.lightbox-wrapper .gdlr-core-text-script-item-content{
  overflow: hidden !important;
  border-radius: 18px !important;
}

/* Make iframe fill container cleanly */
.lightbox-wrapper .responsive-map{
  display: block !important;
  width: 100% !important;
  height: 320px !important;
  border: 0 !important;
	}
}

/* Bulusma Noktasi title */
.gdlr-core-title-item-title-wrap .gdlr-core-title-item-title.gdlr-core-skin-title{
  font-size: 25px !important;
  font-weight: 700 !important;
  margin-bottom: 5px !important;
}

@media (max-width: 767px) {
    #gdlr-core-column-3 .gdlr-core-title-item.gdlr-core-item-pdlr, #gdlr-core-column-3 .gdlr-core-text-box-item.gdlr-core-item-pdlr {
        padding-left: 10px !important;
        padding-right: 21px !important;
    }
}

@media (max-width: 767px){
  .tour-program-modern .tour-program-title{
    padding-left: 19px !important;
  }
}





@media (min-width: 1024px){
  .modern-faq-grid{
    column-count: 2;
    column-gap: 22px;
  }
  .modern-faq-grid details{
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    display: inline-block;
    width: 100%;
    margin: 0 0 16px;
  }
}


@media (min-width: 1024px) {
  .modern-faq-grid {
    display: flex !important;
    align-items: flex-start;
    gap: 22px;
  }

  .modern-faq-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
  }

  .modern-faq-col details {
    width: 100%;
  }
}

/* Tour program cards: shadow above + below */
.tour-stop{
  box-shadow:
    0 -8px 18px rgba(0,0,0,0.06),
    0  8px 18px rgba(0,0,0,0.06);
}


.tour-program-modern {
    max-width: 820px;
    margin: 5px 0;
    font-family: "Josefin Sans", system-ui, sans-serif;
	}

@media (max-width: 767px){
.timeline {
    position: relative;
    padding-left: 50px;
}

/* Make the inner boxes not touch the outer card's right wall */
.tour-program-modern .tour-program-grid{
  padding-right: 10px;
  box-sizing: border-box;
}

/* Make the NOTE BOX itself narrower (no change to inner spacing) */
.tour-program-note{
  width: calc(100% - 20px);
  margin-left: 10px;
  margin-right: 10px;
  box-sizing: border-box;
	}

	.tour-program-note {
    margin-top: 18px;
    padding: 0px 14px;align-content
	}
}

/* Tur program photo configure */

/* =========================
   TOUR PROGRAM (MOBILE FIRST)
   ========================= */

/* Scope everything to this section */
.tour-program-modern {
  width: 100%;
  box-sizing: border-box;
}

.tour-program-modern * {
  box-sizing: border-box;
}

.tour-program-title {
  font-size: 24px;
  font-weight: 800;
  margin: 0 0 16px 0;
}

/* Timeline wrapper */
.tour-program-grid.timeline {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  padding-left: 28px;
}

/* The vertical line */
.tour-program-grid.timeline::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: rgba(255, 165, 0, 0.45);
  border-radius: 2px;
}

/* Each stop card */
.tour-stop {
  position: relative;
  background: #fff;
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
  overflow: hidden;
  width: 100%;
}

/* Remove extra spacing from the first "time" <p> */
.tour-stop > p:first-child {
  margin: 0;
}

/* Time badge */
.tour-stop .tour-time {
  position: absolute;
  left: -28px;
  top: 16px;
  background: #FFA634;
  color: #fff;
  font-weight: 800;
  font-size: 13px;
  padding: 7px 14px;
  border-radius: 999px;
  box-shadow: 0 10px 22px rgba(0,0,0,0.16);
  white-space: nowrap;
}

/* Stop title */
.tour-stop > h3 {
  margin: 0 0 8px 0;
  font-size: 18px;
  font-weight: 800;
  color: #222;
}

/* Stop text */
.tour-stop p {
  margin: 0 0 10px 0;
  color: #666;
  line-height: 1.55;
}

/* Photo indicator row */
.photo-indicator {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: #ff7a00;
  cursor: pointer;
  user-select: none;
}

.photo-indicator img.emoji {
  width: 16px !important;
  height: 16px !important;
  vertical-align: middle;
}

/* =========================
   INLINE GALLERY (the one injected under the stop)
   ========================= */

.tour-inline-gallery {
  width: 100%;
  margin-top: 12px;
  position: relative;
}

.tour-inline-gallery .tig-image {
  width: 100% !important;
  display: block !important;

  aspect-ratio: 16 / 9;
  min-height: 180px;

  border-radius: 16px;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;

  box-shadow: 0 10px 24px rgba(0,0,0,0.10);
}

/* Close button inside the expanded area */
.tour-inline-gallery .tig-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(0,0,0,0.55);
  color: #fff;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}

/* Nav buttons (if you enable them later) */
.tour-inline-gallery .tig-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 999px;
  background: rgba(0,0,0,0.55);
  color: #fff;
  cursor: pointer;
}

.tour-inline-gallery .tig-prev { left: 10px; }
.tour-inline-gallery .tig-next { right: 10px; }

/* =========================
   NOTE BOX under timeline
   ========================= */

.tour-program-note {
  width: 100%;
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f4f6f8;
  border: 1px solid rgba(0,0,0,0.06);
}

/* =========================
   TABLET (cleaner spacing)
   ========================= */
@media (min-width: 768px) {
  .tour-program-title { font-size: 26px; }

  .tour-program-grid.timeline {
    gap: 18px;
    padding-left: 34px;
  }

  .tour-program-grid.timeline::before {
    left: 14px;
  }

  .tour-stop {
    padding: 18px;
    border-radius: 18px;
  }

  .tour-stop .tour-time {
    left: -32px;
    top: 18px;
    font-size: 14px;
  }

  .tour-inline-gallery .tig-image {
    min-height: 240px;
    border-radius: 18px;
  }
}

/* =========================
   DESKTOP (more room, still same structure)
   ========================= */
@media (min-width: 1025px) {
  .tour-program-title { font-size: 28px; }

  .tour-program-grid.timeline {
    padding-left: 42px;
  }

  .tour-program-grid.timeline::before {
    left: 18px;
  }

  .tour-stop .tour-time {
    left: -36px;
  }

  .tour-inline-gallery .tig-image {
    min-height: 320px;
  }
}

/* MOBILE + TABLET FIX (prevents overlaps/clipping) */
@media (max-width: 1024px) {

  /* prevent the orange time pill from being clipped */
  .tour-program-modern,
  .tour-program-grid.timeline,
  .tour-stop {
    overflow: visible !important;
  }

  /* keep some breathing room from the left edge */
  .tour-program-grid.timeline{
    padding-left: 14px !important;
  }

  /* put the time badge ABOVE the title on mobile/tablet */
  .tour-stop > p:first-child {
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
  }
  .tour-stop .tour-time {
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    margin: 0 0 10px 0 !important;
  }

  /* make sure the opened photo box stays inside the card */
  .tour-inline-gallery {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 12px !important;
  }

  /* force a reliable visible image area on mobile/tablet */
  .tour-inline-gallery .tig-image {
    width: 100% !important;
    aspect-ratio: 16 / 9;
    min-height: 180px !important;
    background-size: cover !important;
    background-position: center !important;
    border-radius: 16px !important;
  }

  /* keep the close button on top of the image */
  .tour-inline-gallery .tig-close {
    z-index: 5 !important;
  }
}

/* DESKTOP FIX (starts clipping at 1440px+) */
@media (min-width: 1440px) {

  /* stop the rounded card wrappers from clipping the time pill */
  .tour-program-modern,
  .tour-program-modern .tour-program-grid.timeline,
  .tour-program-modern .tour-stop,
  .tour-program-modern .gdlr-core-text-box-item-content,
  .tour-program-modern .gdlr-core-pbf-column-content,
  .tour-program-modern .gdlr-core-pbf-column-content-margin {
    overflow: visible !important;
  }

  /* give extra room on the left so the pill can sit outside without being cut */
  .tour-program-modern .tour-program-grid.timeline {
    padding-left: 80px !important;
  }

  /* (optional) if your theme uses a vertical line pseudo-element, keep it aligned */
  .tour-program-modern .tour-program-grid.timeline::before {
    left: 34px !important;
  }

  /* keep the card content nicely aligned with the new left padding */
  .tour-program-modern .tour-stop {
    padding-left: 0 !important;
  }
}

/* =========================
   TOUR PROGRAM TIMELINE FIX
   (mobile first)
   ========================= */

#gdlr-core-column-4 .tour-program-modern,
#gdlr-core-column-4 .tour-program-grid,
#gdlr-core-column-4 .tour-stop{
  position: relative;
  overflow: visible !important;
}

/* Space reserved on the left for the timeline + time pill */
#gdlr-core-column-4 .tour-program-grid.timeline{
  --line-x: 18px;
  padding-left: 56px;
}

/* Vertical line */
#gdlr-core-column-4 .tour-program-grid.timeline::before{
  content: "";
  position: absolute;
  left: var(--line-x);
  top: 16px;
  bottom: 16px;
  width: 2px;
  background: rgba(255, 165, 58, 0.35);
  border-radius: 2px;
}

/* Each card */
#gdlr-core-column-4 .tour-stop{
  border-radius: 18px;
}

/* The first <p> that contains the time */
#gdlr-core-column-4 .tour-stop > p:first-child{
  position: absolute;
  left: var(--line-x);
  top: 22px;
  transform: translateX(-50%);
  margin: 0 !important;
  z-index: 3;
}

/* Orange time pill */
#gdlr-core-column-4 .tour-stop .tour-time{
  display: inline-block;
  background: #ffa53a;
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  line-height: 1;
  padding: 10px 14px;
  border-radius: 999px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.18);
  white-space: nowrap;
}

/* Push title/text to the right so it NEVER sits under the pill */
#gdlr-core-column-4 .tour-stop h3,
#gdlr-core-column-4 .tour-stop p{
  margin-left: 0;
}
#gdlr-core-column-4 .tour-stop h3{
  padding-left: 0;
}

/* Make sure card content has breathing room from the left side */
#gdlr-core-column-4 .tour-stop{
  padding-top: 22px;
  padding-right: 18px;
  padding-bottom: 22px;
  padding-left: 18px;
}
#gdlr-core-column-4 .tour-stop h3,
#gdlr-core-column-4 .tour-stop p:not(:first-child){
  padding-left: 10px;
}

/* =========================
   TABLET / DESKTOP
   ========================= */
@media (min-width: 768px){
  #gdlr-core-column-4 .tour-program-grid.timeline{
    --line-x: 30px;
    padding-left: 96px;
  }

  #gdlr-core-column-4 .tour-stop > p:first-child{
    top: 26px;
  }

  #gdlr-core-column-4 .tour-stop{
    padding-right: 26px;
    padding-left: 26px;
  }

  #gdlr-core-column-4 .tour-stop h3,
  #gdlr-core-column-4 .tour-stop p:not(:first-child){
    padding-left: 18px;
  }
}

/* =========================
   WIDE DESKTOP (fix 1440+ clipping look)
   ========================= */
@media (min-width: 1440px){
  #gdlr-core-column-4 .tour-program-grid.timeline{
    --line-x: 34px;
    padding-left: 110px;
  }
}

/* =========================
   MOBILE FIX (prevents overlap)
   ========================= */
@media (max-width: 767px){

  /* make sure nothing clips the line/pill */
  #gdlr-core-column-4 .tour-program-modern,
  #gdlr-core-column-4 .tour-program-grid.timeline{
    position: relative;
    overflow: visible !important;
  }

  /* create a dedicated left gutter for the line + pill */
  #gdlr-core-column-4 .tour-program-grid.timeline{
    --line-x: 22px;
    --gutter: 74px;
    padding-left: 0 !important;
  }

  /* vertical line ON TOP so cards can't hide it */
  #gdlr-core-column-4 .tour-program-grid.timeline::before{
    content: "";
    position: absolute;
    left: var(--line-x);
    top: 16px;
    bottom: 16px;
    width: 2px;
    background: rgba(255, 165, 58, 0.55);
    border-radius: 2px;
    z-index: 6;
    pointer-events: none;
  }

  /* move each card to the right so it never covers the line */
  #gdlr-core-column-4 .tour-stop{
    position: relative;
    margin-left: var(--gutter) !important;
    width: calc(100% - var(--gutter)) !important;
    z-index: 3;
  }

  /* time pill sits in the gutter (not on top of the card text) */
  #gdlr-core-column-4 .tour-stop > p:first-child{
    position: absolute;
    left: var(--line-x);
    top: 18px;
    transform: translateX(-50%);
    margin: 0 !important;
    z-index: 7;
  }

  /* extra safety: keep the heading from starting too far left */
  #gdlr-core-column-4 .tour-stop h3{
    margin-top: 0;
    padding-left: 4px;
  }
}

@media (max-width: 767px){
  /* keep your line position as-is (don't change --line-x here) */

  #gdlr-core-column-4 .tour-program-grid.timeline .tour-time{
    left: calc(var(--line-x) - 30px) !important;
  }
}

@media (max-width: 768px){

  /* Make sure the timeline has room on the left for the line + pill */
  #gdlr-core-column-4 .tour-program-grid.timeline{
    position: relative;
    padding-left: 64px !important;
  }

  /* Keep the vertical line visible (your theme already has it as ::before) */
  #gdlr-core-column-4 .tour-program-grid.timeline::before{
    z-index: 1 !important;
  }

  /* Each stop becomes the positioning context for the pill */
  #gdlr-core-column-4 .tour-stop{
    position: relative;
    z-index: 2;
  }

  /* THE PILL: make it positioned so left works */
  #gdlr-core-column-4 .tour-stop > p:first-child{
    position: static !important;
    margin: 0 !important;
  }

  #gdlr-core-column-4 .tour-stop > p:first-child > .tour-time{
    position: absolute !important;
    top: 22px !important;

    /* move pill further LEFT by lowering this number */
    left: 55px !important;

    z-index: 5 !important;
    white-space: nowrap;
  }
}

@media (max-width: 768px){

  /* 1) Reduce the "reserved" left space so the whole card shifts LEFT */
  #gdlr-core-column-4 .tour-program-grid.timeline{
    padding-left: 48px !important;
  }

  /* 2) If your card itself has extra left margin, remove it */
  #gdlr-core-column-4 .tour-stop{
    margin-left: 0 !important;
  }

  /* 3) Move the card slightly left without moving the line */
  #gdlr-core-column-4 .tour-stop{
    transform: translateX(-10px);
  }
}

@media (max-width: 768px) {
    #gdlr-core-column-4 .tour-program-grid.timeline {
        padding-left: 55px !important;
    }
}

@media (max-width: 768px){

  /* give the whole timeline 10px breathing room on the right */
  #gdlr-core-column-4 .tour-program-grid.timeline{
    padding-right: 1px !important;
  }

  /* make each stop-card stretch almost full width */
  #gdlr-core-column-4 .tour-stop{
    display: block !important;
    max-width: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* 1) Never clip the time pill (it sits outside the card) */
#gdlr-core-column-4 .tour-stop{
  position: relative !important;
  overflow: visible !important;
}

/* 2) Clip ONLY the opened photo box */
#gdlr-core-column-4 .tour-inline-gallery{
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin-top: 12px !important;

  overflow: hidden !important;
  border-radius: 16px !important;
  position: relative !important;
}

/* 3) Make sure the image area always has height */
#gdlr-core-column-4 .tour-inline-gallery .tig-image{
  width: 100% !important;
  display: block !important;
  min-height: 200px !important;
}

/* 4) Keep the close button inside the photo box */
#gdlr-core-column-4 .tour-inline-gallery .tig-close{
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 3 !important;
}

/* --- inline-21037: Tour program timeline fix --- */
/* =========================
   TOUR PROGRAM TIMELINE FIX
   Scoped to column-4 only
   ========================= */

/* A) Stop GoodLayers wrappers from clipping (this is usually the real culprit at 1440+) */
#gdlr-core-column-4,
#gdlr-core-column-4 .gdlr-core-pbf-column-content-margin,
#gdlr-core-column-4 .gdlr-core-pbf-column-content,
#gdlr-core-column-4 .gdlr-core-text-box-item,
#gdlr-core-column-4 .gdlr-core-text-box-item-content{
  overflow: visible !important;
}

/* B) Timeline container: create a left gutter for line + pill */
#gdlr-core-column-4 .tour-program-grid.timeline{
  position: relative !important;
  padding-left: 76px !important;
}

/* Vertical line (in the gutter, so cards won't cover it) */
#gdlr-core-column-4 .tour-program-grid.timeline::before{
  content: "" !important;
  position: absolute !important;
  left: 34px !important;
  top: 12px !important;
  bottom: 12px !important;
  width: 2px !important;
  background: rgba(255, 153, 0, 0.35) !important;
  border-radius: 2px !important;
  z-index: 0 !important;
}

/* C) Card */
#gdlr-core-column-4 .tour-stop{
  position: relative !important;
  z-index: 1 !important;
  margin: 0 10px 22px 0 !important;
  padding: 22px 18px 18px !important;
  background: #fff !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.06) !important;
}

/* Remove the "first p" spacing (the one that only contains the time) */
#gdlr-core-column-4 .tour-stop > p:first-child{
  margin: 0 !important;
  line-height: 0 !important;
  height: 0 !important;
}

/* D) Time pill: position it into the gutter (NOT outside the whole section) */
#gdlr-core-column-4 .tour-stop .tour-time{
  position: absolute !important;
  left: -62px !important;
  top: 18px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 8px 14px !important;
  border-radius: 999px !important;
  background: #ffa43a !important;
  color: #fff !important;
  font-weight: 700 !important;
  white-space: nowrap !important;

  box-shadow: 0 10px 18px rgba(0,0,0,0.12) !important;
}

/* E) Inline gallery box (when opened) */
#gdlr-core-column-4 .tour-inline-gallery{
  margin-top: 14px !important;
  width: 100% !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  position: relative !important;
}

/* Ensure image area has height (common reason why image "doesn't show") */
#gdlr-core-column-4 .tour-inline-gallery .tig-image{
  width: 100% !important;
  min-height: 220px !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  display: block !important;
}

/* Close button stays inside photo */
#gdlr-core-column-4 .tour-inline-gallery .tig-close{
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 3 !important;
}

/* =========================
   MOBILE / TABLET TUNING
   ========================= */
@media (max-width: 1024px){
  #gdlr-core-column-4 .tour-program-grid.timeline{
    padding-left: 58px !important;
  }
  #gdlr-core-column-4 .tour-program-grid.timeline::before{
    left: 22px !important;
  }
  #gdlr-core-column-4 .tour-stop .tour-time{
    left: -48px !important;
    top: 16px !important;
    padding: 7px 12px !important;
  }
  #gdlr-core-column-4 .tour-stop{
    margin-right: 10px !important;
    padding: 20px 16px 16px !important;
  }
  #gdlr-core-column-4 .tour-inline-gallery .tig-image{
    min-height: 180px !important;
  }
}



/* MOBILE + TABLET: prevent tour-stop + inline gallery from overflowing right */
@media (max-width: 1024px){

  /* stop any horizontal overflow from this whole section */
  #gdlr-core-column-4 .tour-program-modern,
  #gdlr-core-column-4 .tour-program-grid.timeline{
    max-width: 100%;
    overflow-x: clip;
  }

  /* HARD RESET the card width (this is the key if desktop uses calc(...) / negative margins) */
  #gdlr-core-column-4 .tour-stop{
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    box-sizing: border-box;
    overflow: hidden;
    min-width: 0;
  }

  /* the injected gallery wrapper */
  #gdlr-core-column-4 .tour-stop .tour-inline-gallery{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    overflow: hidden;
    min-width: 0;
  }

  /* the "image" is a DIV with background-image */
  #gdlr-core-column-4 .tour-stop .tour-inline-gallery .tig-image{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    min-width: 0;

    /* make it responsive */
    aspect-ratio: 16 / 9;
    height: auto !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    display: block;
  }

  /* ensure the close button stays inside the image */
  #gdlr-core-column-4 .tour-stop .tour-inline-gallery .tig-close{
    right: 10px;
    top: 10px;
  }
}


/* Kill fullscreen lightbox entirely */
#gdlr-core-column-4 #lightbox{
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}


/* Lock ONLY the orange time pill position (don't move the orange line) */
.tour-program-modern .tour-stop{
  position: relative !important;
}

/* Give content a consistent left gutter so it never collides with the pill */
.tour-program-modern .tour-stop{
  padding-left: 58px !important;
}

/* Make the first <p> (the one that contains the pill) not affect layout */
.tour-program-modern .tour-stop > p:first-child{
  margin: 0 !important;
  height: 0 !important;
}

/* The pill itself */
.tour-program-modern .tour-stop .tour-time{
  position: absolute !important;
  left: 22px !important;
  top: 18px !important;
  transform: translateX(-50%) !important;

  z-index: 5 !important;
  white-space: nowrap !important;
}


/* Hide the old fullscreen lightbox if it exists */
#gdlr-core-column-4 #lightbox{
  display: none !important;
}

/* Safety: prevent horizontal overflow when gallery opens (mobile/tablet) */
#gdlr-core-column-4 .tour-program-grid,
#gdlr-core-column-4 .tour-stop{
  max-width: 100%;
  box-sizing: border-box;
}
#gdlr-core-column-4{
  overflow-x: clip;
}

/* Inline gallery box */
#gdlr-core-column-4 .tour-inline-gallery{
  margin-top: 12px;
  width: 100%;
  max-width: 100%;
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
}

/* The image area (uses background-image) */
#gdlr-core-column-4 .tour-inline-gallery .tig-image{
  width: 100%;
  max-width: 100%;
  min-height: 220px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Mobile/tablet: slightly shorter */
@media (max-width: 1024px){
  #gdlr-core-column-4 .tour-inline-gallery .tig-image{
    min-height: 180px;
  }
}

/* Close button */
#gdlr-core-column-4 .tour-inline-gallery .tig-close{
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-size: 20px;
  line-height: 34px;
  text-align: center;
  background: rgba(0,0,0,.55);
  color: #fff;
}

/* Nav arrows */
#gdlr-core-column-4 .tour-inline-gallery .tig-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  cursor: pointer;
  background: rgba(0,0,0,.45);
  color: #fff;
  font-size: 18px;
}
#gdlr-core-column-4 .tour-inline-gallery .tig-prev{ left: 10px; }
#gdlr-core-column-4 .tour-inline-gallery .tig-next{ right: 10px; }




/* === TIMELINE GUTTER SYSTEM (stable in all views) === */
#gdlr-core-column-4 .tour-program-grid.timeline{
  position: relative !important;
  overflow: visible !important;

  /* fluid values (no per-view manual tweaking) */
  --tl-gutter: clamp(56px, 12vw, 76px);
  --tl-line-left: clamp(18px, 4.5vw, 30px);
}

/* Orange vertical line (always visible because boxes start after gutter) */
#gdlr-core-column-4 .tour-program-grid.timeline::before{
  content: "" !important;
  position: absolute !important;
  top: 0;
  bottom: 0;
  left: var(--tl-line-left) !important;
  width: 3px !important;
  background: #ff8a00 !important;
  border-radius: 3px !important;
  pointer-events: none;
  z-index: 1;
}

/* Each stop box starts AFTER the gutter so it won't cover the line */
#gdlr-core-column-4 .tour-stop{
  position: relative !important;
  margin-left: var(--tl-gutter) !important;
  margin-right: 10px !important;
  width: auto !important;
  box-sizing: border-box !important;
  z-index: 2;
}

/* Ensure the first <p> doesn't add weird spacing */
#gdlr-core-column-4 .tour-stop > p:first-child{
  margin: 0 !important;
}

/* The orange pill: place it inside the gutter (negative offset from the box) */
#gdlr-core-column-4 .tour-stop > p:first-child .tour-time{
  position: absolute !important;
  top: 18px !important;

  /* anchor pill at the same x-position as the vertical line */
  left: calc(-1 * var(--tl-gutter) + var(--tl-line-left)) !important;
  transform: translateX(-50%) !important;

  z-index: 3 !important;
}

/* Mobile: slightly adjust vertical alignment if needed */
@media (max-width: 768px){
  #gdlr-core-column-4 .tour-stop > p:first-child .tour-time{
    top: 16px !important;
  }
}

/* HARD OVERRIDE: pill position always comes from here */
html body #gdlr-core-column-4 .tour-program-modern .tour-program-grid.timeline .tour-stop > p:first-child > span.tour-time{
  position: absolute !important;
  top: 18px !important;

  /* move pill left/right from ONE place */
  left: 24px !important;

  right: auto !important;
  transform: none !important;
  z-index: 9999 !important;
}





/* ================================
   TOUR PROGRAM TIMELINE (FIX)
   Keeps the orange line + pill aligned on all viewports
================================== */

.tour-program-modern .tour-program-grid.timeline{
  position: relative !important;

  /* Adjust these two only if you want the timeline more left/right */
  --tl-x: clamp(34px, 6vw, 46px);
  --tl-gap: clamp(22px, 5vw, 42px);

  padding-left: calc(var(--tl-x) + var(--tl-gap)) !important;
  padding-bottom: 6px;
}

/* Orange vertical line */
.tour-program-modern .tour-program-grid.timeline::before{
  content:"";
  position:absolute;
  left: var(--tl-x);
  top: 0;
  bottom: 0;
  width: 4px;
  background: #f59a23;
  border-radius: 999px;
  pointer-events:none;
  z-index: 0;
}

/* Each stop card */
.tour-program-modern .tour-program-grid.timeline .tour-stop{
  position: relative !important;
  z-index: 1;
  margin: 0 0 18px 0;
}

/* Orange time pill (generated from data-time="10:00") */
.tour-program-modern .tour-program-grid.timeline .tour-stop::before{
  content: attr(data-time);
  position:absolute;

  /* This centers the pill exactly on the same x as the vertical line */
  left: calc(-1 * var(--tl-gap) + 8px);
  top: calc(1.85rem + 20px);

  transform: translate(-50%, -50%);
  background: #f59a23;
  color: #fff;
  font-weight: 700;
  line-height: 1;
  padding: 10px 14px;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
  z-index: 2;
}

/* Hide the inline time text (we're drawing it as the pill) */
.tour-program-modern .tour-program-grid.timeline .tour-stop .tour-time{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border:0 !important;
}

/* Extra-tight tuning for very small phones */
@media (max-width: 360px){
  .tour-program-modern .tour-program-grid.timeline{
    --tl-x: 30px;
    --tl-gap: 20px;
  }
  .tour-program-modern .tour-program-grid.timeline .tour-stop::before{
    padding: 8px 12px;
    font-size: 13px;
  }
}

/* Pill: +5px to the right ONLY on Mobile M -> Tablet */
@media (min-width: 375px) and (max-width: 1024px){
  .tour-program-modern .tour-program-grid.timeline .tour-stop::before{
    left: calc(-1 * var(--tl-gap) + 10px);
  }
}

.tour-program-modern .tour-program-grid.timeline .tour-stop::before{
  padding: 8px 14px;

	left: calc(var(--tl-x) + var(--tl-x-shift)) !important;
}

/* TABLET only (typical): move pill +10px right, gutter(line) 10px left,
   and bring the box 5px closer to the line */
@media (min-width: 768px) and (max-width: 1024px){

  /* gutter/line position + box offset */
  .tour-program-modern .tour-program-grid.timeline{
    /* gutter (orange line) 10px left */
    --tl-x: clamp(24px, 6vw, 36px);

    /* box 5px closer to the line (smaller gap) */
    --tl-gap: clamp(17px, 5vw, 37px);


	  --tl-x-shift: 0px;
  --box-shift: 0px;
  --pill-shift-x: 0px;

	  padding-left: calc(var(--tl-x) + var(--tl-gap) + var(--tl-x-shift) + var(--box-shift)) !important;
  }

  /* pill 10px to the right */
  .tour-program-modern .tour-program-grid.timeline .tour-stop::before{
    left: calc(-1 * var(--tl-gap) + 10px);
  }
}




@media (min-width: 768px) and (max-width: 1024px){
  .tour-program-modern .tour-program-grid.timeline{
    --tl-x-shift: -10px;
    --box-shift: -5px;
    --pill-shift-x: 10px;
  }
}


/* Mobile: move the time pill 20px LEFT */
@media (max-width: 767px){
  /* If your pill is made with a pseudo-element */
  .tour-program-modern .tour-program-grid.timeline .tour-stop::before{
    translate: -28px 0 !important;
  }

  /* If your pill is the real element (<span class="tour-time">10:00</span>) */
  .tour-program-modern .tour-program-grid.timeline .tour-time{
    translate: -28px 0 !important;
  }
}

/* Tablet: move the time pill 28px LEFT */
@media (min-width: 768px) and (max-width: 1024px){
  /* If your pill is made with a pseudo-element */
  .tour-program-modern .tour-program-grid.timeline .tour-stop::before{
    translate: -40px 0 !important;
  }

  /* If your pill is the real element (<span class="tour-time">10:00</span>) */
  .tour-program-modern .tour-program-grid.timeline .tour-time{
    translate: -40px 0 !important;
  }
}


/* Tablet: move the orange vertical line 15px (LEFT by default) */
@media (min-width: 768px) and (max-width: 1024px){
  .tour-program-modern .tour-program-grid.timeline::before{
    translate: -15px 0 !important;
  }
}

/* Mobile L (approx): fine-tune text + subheading + pill */
@media (min-width: 414px) and (max-width: 767px){

  /* 1) Move the left side of the text 3px (right) */
  .tour-program-modern .tour-program-grid.timeline .tour-stop{
    padding-left: 3px !important;
  }

  /* 2) Subheading alignment: move the stop title 5px (right) */
  .tour-program-modern .tour-program-grid.timeline .tour-stop > h3{
    translate: 5px 0 !important;
  }

  /* 3) Pill: 2px more to the right (was -20px, now -18px) */
  .tour-program-modern .tour-program-grid.timeline .tour-stop::before{
    translate: -20px 0 !important;
  }
  .tour-program-modern .tour-program-grid.timeline .tour-time{
    translate: -20px 0 !important;
  }
}

@media (min-width: 414px) and (max-width: 767px) {
    .tour-program-modern .tour-program-grid.timeline .tour-stop::before {
        translate: -26px 0 !important;
    }
}

/* Mobile M and smaller: nudge the stop subheading (Phaselis Koyu, etc.) LEFT */
@media (max-width: 413px){
  #gdlr-core-column-4 .tour-program-grid.timeline .tour-stop > h3{
    margin: 0 !important;
    translate: 5px 0 !important;
  }
}

@media (min-width: 1024px) {
    .tour-program-modern .tour-program-grid.timeline .tour-stop::before {
        translate: -40px 0 !important;
    }
}

@media (min-width: 1024px) {
#gdlr-core-column-4 .tour-stop {
    position: relative !important;
    margin-left: 0px !important;
    margin-right: 10px !important;
    width: auto !important;
    box-sizing: border-box !important;
    z-index: 2;
}
}

@media (min-width: 1024px) {
    .tour-program-modern .tour-program-grid.timeline::before {
        translate: 0px 0 !important;
    }
}

@media (min-width: 1440px) {
    .tour-program-modern .tour-program-grid.timeline::before {
        translate: 10px 0 !important;
    }
}

/* --- inline-21048: FAQ static --- */
/* =========================================
   ELEMENT 10 -- FAQ (STATIC, GUARANTEED VISIBLE)
   Works even if your builder strips details/inputs.
   Safe prefixed classes: .lp-faqs-*
========================================= */

.lp-faqs{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  position:relative !important;
  z-index: 2 !important;
  padding: 34px 0 !important;
}

.lp-faqs__inner{
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 0 16px !important;
}

.lp-faqs__card{
  display:block !important;
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid rgba(15,23,42,.10) !important;
  border-radius: 22px !important;
  overflow: hidden !important;

  box-shadow:
    0 20px 45px rgba(0,0,0,0.10),
    0 6px 18px rgba(0,0,0,0.06) !important;
}

.lp-faqs__head{
  padding: 18px 18px 14px !important;
  border-bottom: 1px solid rgba(15,23,42,.10) !important;
  background:
    radial-gradient(900px 420px at 15% 0%, rgba(255,138,53,.14), transparent 55%),
    radial-gradient(700px 380px at 90% 10%, rgba(6,182,212,.10), transparent 55%),
    #ffffff !important;
}

.lp-faqs__kicker{
  display: inline-flex !important;
  font-family: "Source Sans 3", Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;

  color: rgba(15,23,42,.62) !important;
  background: rgba(15,23,42,.04) !important;
  border: 1px solid rgba(15,23,42,.10) !important;
  border-radius: 999px !important;
  padding: 6px 10px !important;
}

.lp-faqs__title{
  margin: 10px 0 0 !important;
  font-family: "Source Sans 3", Arial, sans-serif !important;
  font-size: 20px !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  color: #0f172a !important;
}

.lp-faqs__body{
  padding: 16px 18px 18px !important;
}

.lp-faqs__grid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

@media (max-width: 900px){
  .lp-faqs__grid{ grid-template-columns: 1fr !important; }
}

.lp-faqs__item{
  border: 1px solid rgba(15,23,42,.10) !important;
  border-radius: 16px !important;
  padding: 14px 14px 14px !important;
  background: rgba(15,23,42,.03) !important;
}

.lp-faqs__q{
  font-family: "Source Sans 3", Arial, sans-serif !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  color: rgba(15,23,42,.92) !important;
  margin: 0 0 6px !important;
}

.lp-faqs__a{
  font-family: "Source Sans 3", Arial, sans-serif !important;
  font-size: 13.5px !important;
  line-height: 1.65 !important;
  color: rgba(15,23,42,.74) !important;
  margin: 0 !important;
}

/* --- 12660: Excursion tables (also used on tour pages) --- */
.texccc table {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  border: none;
  border-collapse: collapse;
}

.texccc tr {
  padding-left:7px;
  color: #333333;
  line-height: 18px;
}

.texccc tr a{
  color: #022c4b;
  text-decoration: underline;
}

.texccc tr a:hover {
  color: #022c4b;
}

.texccc td {
  background-color: #ffffff;
  padding-right:3px;
  color: #333333;
  letter-spacing: -0.02em;
  padding-left:7px;
  padding-top:5px;
}

.texccc td:first-child {
  width: 23%;
  white-space: nowrap;
}

.exccc table {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  border: none;
  border-collapse: collapse;
}

.exccc tr {
  padding-left:7px;
  color: #333333;
  line-height: 18px;
}

.exccc tr a{
  color: #022c4b;
  text-decoration: underline;
}

.exccc tr a:hover {
  color: #022c4b;
}

.exccc td {
  background-color: #ffffff;
  padding-right:3px;
  color: #333333;
  letter-spacing: -0.02em;
  padding-left:7px;
  padding-top:5px;
}

.tableexc td {
  color: #333333;
}

.tableexcc td {
  color: #333333;
  padding-left: 15px;
  padding-right: 5px;
  vertical-align: middle;
}

.tableexcc th {
  padding-left: 5px;
  padding-right: 5px;
  white-space: nowrap;
}

@media (max-width: 1000px) {
  .exccc table {
    width: 100%;
    padding-top: 0px;
    padding-bottom: 0px;
    padding-left: 0px;
    padding-right: 0px;
  }

  .texccc table {
    width: 100%;
  }

  .texccc td:first-child {
    width: auto;
    padding-right:7px;
  }

  .tableexcc td {
    color: #333333;
    padding-left: 15px;
  }
}

/* ==========================================================================
   TOUR PROGRAM TIMELINE — Clean Position Override (2026-04-15)
   Uses html body prefix for specificity to override all prior class rules.
   .tour-stop lives inside .gdlr-core-pbf-sidebar-content, NOT #gdlr-core-column-4.
   Layout: LINE on left | PILL bridging line→card | CARD content on right
   ========================================================================== */

/* A) Parent wrappers: prevent clipping of the pill/line */
html body .gdlr-core-text-script-item-content .tour-program-modern {
    overflow: visible !important;
}

/* B) Grid container: left gutter for line + pill */
html body .tour-program-modern .tour-program-grid.timeline {
    position: relative !important;
    padding-left: 89px !important;
    overflow: visible !important;
    translate: none !important;
    transform: none !important;
}

/* C) Vertical orange line */
html body .tour-program-modern .tour-program-grid.timeline::before {
    content: "" !important;
    position: absolute !important;
    left: 20px !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 3px !important;
    background: linear-gradient(180deg, #ffba4a, #ff8a35) !important;
    border-radius: 3px !important;
    opacity: 1 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    translate: none !important;
    transform: none !important;
}

/* D) Each card */
html body .tour-program-modern .tour-program-grid.timeline .tour-stop {
    position: relative !important;
    overflow: visible !important;
    margin-left: 0 !important;
    width: auto !important;
    max-width: none !important;
    padding: 20px 18px 18px 18px !important;
    z-index: 1 !important;
    translate: none !important;
}
html body .tour-program-modern .tour-program-grid.timeline .tour-stop.is-visible {
    transform: translateY(0) !important;
}
html body .tour-program-modern .tour-program-grid.timeline .tour-stop:hover {
    transform: translateY(-3px) !important;
}

/* E) Time pill (::before using data-time attribute) */
html body .tour-program-modern .tour-program-grid.timeline .tour-stop::before {
    content: attr(data-time) !important;
    position: absolute !important;
    left: -69px !important;
    top: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 14px !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #ffba4a, #ff8a35) !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    box-shadow: 0 6px 16px rgba(0,0,0,0.18) !important;
    z-index: 2 !important;
    translate: none !important;
    transform: none !important;
    width: auto !important;
    height: auto !important;
    clip: auto !important;
    clip-path: none !important;
    margin: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* F) Hide .tour-time span (pill is drawn by ::before) */
html body .tour-program-modern .tour-program-grid.timeline .tour-stop .tour-time {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* G) Reset h3/p nudges from old rules */
html body .tour-program-modern .tour-program-grid.timeline .tour-stop h3,
html body .tour-program-modern .tour-program-grid.timeline .tour-stop p {
    translate: none !important;
    padding-left: 0 !important;
}

/* H) Inline gallery: clip photos inside the card */
html body .tour-program-modern .tour-stop .tour-inline-gallery {
    overflow: hidden !important;
    border-radius: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* I) Mobile (< 768px) */
@media (max-width: 767px) {
    html body .tour-program-modern .tour-program-grid.timeline {
        padding-left: 72px !important;
    }
    html body .tour-program-modern .tour-program-grid.timeline::before {
        left: 14px !important;
    }
    html body .tour-program-modern .tour-program-grid.timeline .tour-stop::before {
        left: -58px !important;
        top: 16px !important;
        padding: 6px 12px !important;
        font-size: 12px !important;
    }
    html body .tour-program-modern .tour-program-grid.timeline .tour-stop {
        padding: 18px 14px 16px 14px !important;
    }
}

