/* ===== FEATURE IMAGE (Single Image Mode) ===== */
.wbtm_car_details_images {
    width: 100%;
    max-width: 400px;
    margin: auto;
}
.wbtm_car_details_feature_image {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 10px;
    border: 1px solid #ddd;
    overflow: hidden;
    background: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
}
.wbtm_car_details_feature_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ===== GALLERY SLIDER ===== */
.wbtm_gallery_slider {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 12px;
    overflow: hidden;
    background: #f5f5f5;
    border: 1px solid #ddd;
}

.wbtm_gallery_slider_track {
    position: relative;
    width: 100%;
    height: 100%;
}

.wbtm_gallery_slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
    pointer-events: none;
}

.wbtm_gallery_slide.active {
    opacity: 1;
    pointer-events: auto;
}

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

/* Coach Type Badge */
.wbtm_coach_badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: #ff4757;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    padding: 5px 14px;
    border-radius: 20px;
    z-index: 10;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* Navigation Arrows */
.wbtm_gallery_slider_arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.85);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    color: #333;
}

.wbtm_gallery_slider_arrow:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

.wbtm_gallery_slider_arrow svg {
    width: 18px;
    height: 18px;
}

.wbtm_gallery_slider_prev {
    left: 10px;
}

.wbtm_gallery_slider_next {
    right: 10px;
}

/* Dot Indicators */
.wbtm_gallery_slider_dots {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 10;
}

.wbtm_gallery_slider_dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 0;
}

.wbtm_gallery_slider_dot.active {
    background: #ff4757;
    transform: scale(1.3);
}

.wbtm_gallery_slider_dot:hover {
    background: rgba(255, 255, 255, 0.8);
}

/* Slide Counter */
.wbtm_gallery_slider_counter {
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 12px;
    z-index: 10;
    letter-spacing: 0.5px;
}

/* ===== POPUP LIGHTBOX ===== */
.wbtm_gallery_image_popup_wrapper {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.85);
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.wbtm_gallery_image_popup_content {
    position: relative;
    max-width: 90%;
    max-height: 85%;
    top: 30px;
    margin: auto;
}

.wbtm_gallery_image_popup_item {
    display: none;
    width: 100%;
    max-height: 80vh;
    object-fit: contain;
    border-radius: 8px;
    animation: fadeIn 0.4s ease;
}
.wbtm_gallery_image_popup_container img.active {
    display: block;
    opacity: 1;
}

.wbtm_gallery_image_popup_close {
    position: absolute;
    top: 15px;
    right: 15px;
    background: #ff4444;
    border: none;
    color: #fff;
    font-size: 18px;
    padding: 8px 10px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
}

.wbtm_gallery_image_popup_prev,
.wbtm_gallery_image_popup_next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: #ffffff99;
    border: none;
    color: #000;
    font-size: 22px;
    padding: 10px 15px;
    border-radius: 50%;
    cursor: pointer;
    transition: 0.3s;
}

.wbtm_gallery_image_popup_prev:hover,
.wbtm_gallery_image_popup_next:hover {
    background: #fff;
}

.wbtm_gallery_image_popup_prev { left: 10px; }
.wbtm_gallery_image_popup_next { right: 10px; }


.wtbm_term_wrapper {
    max-width: 900px;
    margin: 20px auto;
    /*padding: 0 20px;*/
    font-family: "Inter", Arial, sans-serif;
}
.wtbm_term_wrapper_popup {
    margin: 20px auto;
    font-family: "Inter", Arial, sans-serif;
}

.wtbm_term_item {
    background: #ffffff;
    border-radius: 14px;
    padding: 5px 10px;
    margin-bottom: 5px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border-left: 3px solid #4f46e5;
}
.wbtm_bus_feature_items {
    background: #ffffff;
    border-radius: 14px;
    padding: 5px 10px;
    margin-bottom: 5px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wtbm_term_item:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
}

.wtbm_term_header {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
}

.wtbm_term_index {
    background: linear-gradient(135deg, #4f46e5, #6366f1);
    color: #ffffff;
    font-weight: 600;
    font-size: 14px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 14px;
    flex-shrink: 0;
}

.wtbm_term_title {
    font-size: 18px;
    font-weight: 600;
    color: #1f2937;
    margin: 0;
}

.wtbm_term_content {
    font-size: 15px;
    line-height: 1.7;
    color: #4b5563;
    padding-left: 10px;
}

.wtbm_term_content p {
    margin: 0;
}

.wbtm_bus_popup_holder{
    display: none;
}

.wbtm_bus_photos_wrapper_popup{
    overflow: scroll;
    height: 60vh;
}

/* ============================================================
   MODERN BUS DETAILS POPUP  (#wbtm-bus-popup content)
   Markup comes from WBTM_Single_Bus_Details::wbtm_render_bus_details_popup()
   and JS (wtbm_single_bus_details.js) depends on the existing classes/ids
   (.wbtm_bus_detail_popup_tab, data-tab-id, .wbtm_bus_popup_holder, .active,
   #wbtm-bus-popup, .wbtm-popup-content) — this is a pure visual overlay,
   no markup changes. Everything is scoped under .wbtm-popup-content so the
   shared "mp" utility classes (mp_list, dLayout_xs, flexEqual, divider)
   keep their normal look everywhere else in the plugin.
   ============================================================ */

/* Shell */
.wbtm-bus-popup-inner{
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
    background: #fff;
}
.wbtm-popup-close{
    position: absolute;
    /* .wbtm-bus-popup-inner has its own 20px padding, and .wbtm-popup-content
       (the tab bar, etc.) starts right at that padding edge -- positioning
       this at the same 20px inset put it exactly where the tab row begins,
       overlapping it. Sitting closer to the true corner (in the gap between
       the border and where content actually starts) clears the tabs while
       staying well inside the popup's own 16px border-radius curve. */
    top: 10px;
    right: 10px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .08);
    transition: background .15s, color .15s, transform .15s, border-color .15s;
    /* The literal "×" text glyph sits at a different vertical offset from
       its own line box depending on the font actually in use, so flex
       centering the box never quite centers the visible glyph itself.
       Drawing the X from two rotated bars instead makes it centered by
       construction, independent of any font's metrics. */
    font-size: 0;
    color: transparent;
}
.wbtm-popup-close::before,
.wbtm-popup-close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 2px;
    background: #475569;
    border-radius: 1px;
    transition: background .15s;
}
.wbtm-popup-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.wbtm-popup-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}
.wbtm-popup-close:hover{
    background: #fee2e2;
    border-color: #fca5a5;
    transform: scale(1.06);
}
.wbtm-popup-close:hover::before,
.wbtm-popup-close:hover::after{
    background: #dc2626;
}
.wbtm-popup-content ._dLayout_dShadow_1{
    /* This element also matches the generic `[class*="_dLayout"]` utility
       (wbtm_plugin_global.css), which puts a 1px border AND a -1px
       margin-top on any class containing "_dLayout" -- only
       box-shadow/border-radius were ever nulled here, so the border and
       this stray margin both kept slipping through. */
    border: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

/* Tab bar */
.wbtm-popup-content .wbtm_bus_detail_popup_tabs{
    background: #f8fafc;
    border: 0;
    border-radius: 12px;
    padding: 6px;
    /* Reserve room on the right for .wbtm-popup-close (sits close to the
       popup's corner, see its own comment) WITHOUT shrinking the bar's own
       background -- a margin-right here narrowed the whole grey background
       so it stopped short of the cards below, which stayed full-width and
       so looked wider/misaligned with the tab bar above them. Padding
       reserves the same clearance for the tab buttons while the background
       itself still spans edge to edge. */
    padding-right: 50px;
    gap: 6px;
}
.wbtm-popup-content .wbtm_bus_detail_popup_tab{
    border-radius: 8px;
    border-color: transparent;
    background: transparent;
    font-weight: 600;
    font-size: 13px;
    color: #64748b;
}
.wbtm-popup-content .wbtm_bus_detail_popup_tab:hover{
    background: #fff;
    color: var(--wbtm_color_theme);
    border-color: transparent;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .08);
}
.wbtm-popup-content .wbtm_bus_detail_popup_tab.active{
    background: var(--wbtm_color_theme);
    color: var(--wbtm_color_theme_alter);
    border-color: transparent;
    box-shadow: 0 6px 16px rgba(0, 124, 186, .25);
}

/* "Bus Details" panel — plain <p><span>label</span><strong>value</strong></p>
   rows become a clean summary card, no markup changes needed. */
.wbtm-popup-content #wbtm_bus_details_content{
    background: #fff;
    border: 0;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(15, 23, 42, .06);
    padding: 20px 22px;
}
.wbtm-popup-content #wbtm_bus_details_content > p:first-child{
    margin: 0 0 12px;
}
.wbtm-popup-content #wbtm_bus_details_content > p:first-child strong{
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
}
.wbtm-popup-content #wbtm_bus_details_content .divider{
    height: 1px;
    background: #eef1f5;
    margin: 12px 0;
    border: none;
}
.wbtm-popup-content #wbtm_bus_details_content > p:not(:first-child){
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0;
    padding: 8px 0;
    font-size: 13px;
}
.wbtm-popup-content #wbtm_bus_details_content > p:not(:first-child) span{
    color: #64748b;
    font-weight: 500;
}
.wbtm-popup-content #wbtm_bus_details_content > p:not(:first-child) strong{
    color: #0f172a;
    font-weight: 700;
}
.wbtm-popup-content #wbtm_bus_details_content .mp_wp_editor{
    margin-top: 12px;
    font-size: 13px;
    color: #475569;
    line-height: 1.6;
}

/* "Boarding / Dropping Points" panel — timeline-style stop list */
.wbtm-popup-content #wbtm_bus_boarding_dropping_content .flexEqual{
    gap: 16px;
}
.wbtm-popup-content #wbtm_bus_boarding_dropping_content .dLayout_xs{
    background: #fff;
    border: 0;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(15, 23, 42, .06);
    padding: 18px 20px;
}
.wbtm-popup-content #wbtm_bus_boarding_dropping_content strong{
    font-size: 12px;
    font-weight: 700;
    color: #0f172a;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.wbtm-popup-content #wbtm_bus_boarding_dropping_content .divider{
    height: 1px;
    background: #eef1f5;
    margin: 10px 0 6px;
    border: none;
}
.wbtm-popup-content #wbtm_bus_boarding_dropping_content ul.mp_list{
    position: relative;
    padding-left: 6px;
    margin: 0;
    list-style: none;
}
.wbtm-popup-content #wbtm_bus_boarding_dropping_content ul.mp_list li{
    position: relative;
    padding: 8px 0 8px 22px;
    font-size: 13px;
    color: #334155;
    font-weight: 500;
}
.wbtm-popup-content #wbtm_bus_boarding_dropping_content ul.mp_list li::before{
    content: '';
    position: absolute;
    left: 4px;
    top: 14px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--wbtm_color_theme);
}
.wbtm-popup-content #wbtm_bus_boarding_dropping_content ul.mp_list li:not(:last-child)::after{
    content: '';
    position: absolute;
    left: 7px;
    top: 22px;
    bottom: -8px;
    width: 1px;
    background: #e2e8f0;
}
.wbtm-popup-content #wbtm_bus_boarding_dropping_content ul.mp_list li i.mi-marker{
    display: none;
}

/* "Bus Features" panel — chip/pill layout instead of stacked full-width cards */
.wbtm-popup-content #wbtm_bus_feature_content{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.wbtm-popup-content #wbtm_bus_feature_content h4{
    width: 100%;
    margin: 0 0 4px;
}
.wbtm-popup-content #wbtm_bus_feature_content .wbtm_bus_feature_items{
    background: #f8fafc;
    border: 1px solid #eef1f5;
    border-radius: 999px;
    padding: 7px 16px;
    box-shadow: none;
    margin: 0;
}
.wbtm-popup-content #wbtm_bus_feature_content .wbtm_bus_feature_items:hover{
    transform: none;
    box-shadow: 0 1px 4px rgba(15, 23, 42, .08);
}
.wbtm-popup-content #wbtm_bus_feature_content .wtbm_term_content{
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    padding-left: 0;
}

/* ============================================================
   MODERN SINGLE BUS PAGE  (scoped to .wbtm_single_modern)
   Matches the bus-service-card mockup. All rules are scoped so
   no other page/shortcode is affected.
   ============================================================ */
.wbtm_single_modern {
    background: transparent;
    padding: 0;
    border-radius: 10px;
    max-width: 1350px;
    margin-left: auto;
    margin-right: auto;
    border: 1px solid #ddd;
    box-shadow: 0 4px 6px rgba(0, 0, 0, .04), 0 12px 40px rgba(0, 0, 0, .08);
}
.wbtm_single_modern .wbtm-bus-list {
    border: 1px solid #ddd !important;
    border-radius: 10px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, .04), 0 12px 40px rgba(0, 0, 0, .08) !important;
}

/* ── UNIFIED CARD ── */
.wbtm_single_modern .wbtm_single_modern_card {
    background: #ffffff;
    border-radius: 24px 24px 0 0;
    box-shadow: 0 4px 6px rgba(0, 0, 0, .04), 0 12px 40px rgba(0, 0, 0, .08);
    overflow: hidden;
    margin: 0;
}

/* ── TOP SECTION: gallery card + info card, side by side with a gap ── */
.wbtm_single_modern .wbtm_sm_top {
    display: grid;
    grid-template-columns: 420px 1fr;
    align-items: stretch;
    gap: 20px;
    padding: 20px;
    background: #f8fafc;
}

/* ── IMAGE SLIDER CARD (reuses bg_image_new gallery) ── */
.wbtm_single_modern .wbtm_sm_slider {
    position: relative;
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 16px;
    min-height: 320px;
    overflow: hidden;
}
/* Absolutely fill the (grid-stretched, now-bordered) slider card so the
   image always covers it fully, clipped to the card's own radius. */
.wbtm_single_modern .wbtm_sm_slider .wbtm_car_details_images {
    position: absolute;
    inset: 0;
    max-width: none;
    width: 100%;
    height: 100%;
    margin: 0;
}
.wbtm_single_modern .wbtm_sm_slider .wbtm_gallery_slider,
.wbtm_single_modern .wbtm_sm_slider .wbtm_car_details_feature_image {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    border: 0;
    border-radius: 0;
    background: #f1f5f9;
}
.wbtm_single_modern .wbtm_sm_slider .wbtm_gallery_slider_track,
.wbtm_single_modern .wbtm_sm_slider .wbtm_gallery_slide {
    height: 100%;
}
.wbtm_single_modern .wbtm_sm_slider .wbtm_gallery_slide img,
.wbtm_single_modern .wbtm_sm_slider .wbtm_car_details_feature_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Decluttered nav: dots hidden, arrows only appear on hover — the "2/4"
   counter (already positioned bottom-right) stays as the default cue,
   clicking the photo still opens the full lightbox either way. */
.wbtm_single_modern .wbtm_sm_slider .wbtm_gallery_slider_dots {
    display: none;
}
.wbtm_single_modern .wbtm_sm_slider .wbtm_gallery_slider_arrow {
    opacity: 0;
    transition: opacity .15s, transform .3s ease;
}
.wbtm_single_modern .wbtm_sm_slider:hover .wbtm_gallery_slider_arrow {
    opacity: 1;
}

/* ── SERVICE INFO CARD ── */
.wbtm_single_modern .wbtm_sm_info {
    background: #fff;
    border: 1px solid #eef1f5;
    border-radius: 16px;
    padding: 24px 26px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}
.wbtm_single_modern .wbtm_sm_name {
    font-size: 22px;
    font-weight: 700;
    color: #111827;
    line-height: 1.25;
    margin: 0;
}
.wbtm_single_modern .wbtm_sm_code {
    font-size: 13px;
    color: #9ca3af;
    font-weight: 400;
    margin-left: 4px;
}
.wbtm_single_modern .wbtm_sm_tags {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    flex-wrap: wrap;
}
.wbtm_single_modern .wbtm_sm_tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 500;
    padding: 5px 12px;
    border-radius: 20px;
    line-height: 1;
}
.wbtm_single_modern .wbtm_sm_tag svg {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
}
.wbtm_single_modern .wbtm_sm_tag_gray  { background: #f3f4f6; color: #4b5563; }
.wbtm_single_modern .wbtm_sm_tag_blue  { background: #eff6ff; color: #2563eb; }
.wbtm_single_modern .wbtm_sm_tag_green { background: #f0fdf4; color: #16a34a; }

/* ── ROUTE BOXES ── */
.wbtm_single_modern .wbtm_sm_routes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.wbtm_single_modern .wbtm_sm_route_box {
    background: #f9fafb;
    border: 1px solid #f0f2f5;
    border-radius: 14px;
    padding: 14px 16px;
}
.wbtm_single_modern .wbtm_sm_route_title {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.wbtm_single_modern .wbtm_sm_route_title svg { width: 13px; height: 13px; flex-shrink: 0; }
.wbtm_single_modern .wbtm_sm_boarding .wbtm_sm_route_title { color: #2563eb; }
.wbtm_single_modern .wbtm_sm_dropping .wbtm_sm_route_title { color: #dc2626; }

.wbtm_single_modern .wbtm_sm_stop {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 0;
    border-bottom: 1px dashed #e5e7eb;
}
.wbtm_single_modern .wbtm_sm_stop:last-child { border-bottom: none; padding-bottom: 0; }
.wbtm_single_modern .wbtm_sm_pin {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.wbtm_single_modern .wbtm_sm_boarding .wbtm_sm_pin { background: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); }
.wbtm_single_modern .wbtm_sm_dropping .wbtm_sm_pin { background: #dc2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, .12); }
.wbtm_single_modern .wbtm_sm_stop_name {
    font-size: 13px;
    font-weight: 500;
    color: #111827;
    flex: 1;
    min-width: 0;
}
.wbtm_single_modern .wbtm_sm_stop_time {
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 2px 8px;
    white-space: nowrap;
}

/* ── RETURN JOURNEY TOGGLE — collapsed by default, this reveals the
   section below it (see [data-bus-return-toggle] in wtbm_single_bus_details.js) ── */
.wbtm_single_modern .wbtm_sm_return_toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 12px 16px;
    background: #fff;
    border: 1.5px solid #dc2626;
    border-radius: 12px;
    color: #dc2626;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s, color .15s;
}
.wbtm_single_modern .wbtm_sm_return_toggle:hover {
    background: #fef2f2;
}
.wbtm_single_modern .wbtm_sm_return_toggle_icon {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    transition: transform .2s ease;
}
.wbtm_single_modern .wbtm_sm_return_toggle.is-open .wbtm_sm_return_toggle_icon {
    transform: rotate(-90deg);
}

/* ── RETURN JOURNEY (sits inside the info column, aligned with outbound) ── */
.wbtm_single_modern .wbtm_sm_return_section {
    border-top: 1px dashed #e5e7eb;
    padding-top: 16px;
}
.wbtm_single_modern .wbtm_sm_return_section[hidden] {
    display: none;
}
.wbtm_single_modern .wbtm_sm_return_head {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: #7c3aed;
    margin-bottom: 12px;
}
.wbtm_single_modern .wbtm_sm_return_head svg { width: 15px; height: 15px; flex-shrink: 0; }

/* ── EXTRA SECTIONS (description / features / terms) ── */
.wbtm_single_modern .wbtm_sm_description {
    padding: 22px 30px;
    border-top: 1px solid #f0f2f5;
    color: #4b5563;
    font-size: 14px;
    line-height: 1.7;
}
.wbtm_single_modern .wbtm_sm_section {
    padding: 6px 30px 22px;
    margin: 0;
    max-width: none;
}
.wbtm_single_modern .wbtm_sm_section > h4 {
    font-size: 16px;
    font-weight: 700;
    color: #111827;
    margin: 18px 0 12px;
}
.wbtm_single_modern .wbtm_sm_feature_grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
}
.wbtm_single_modern .wbtm_sm_feature_grid .wbtm_bus_feature_items {
    margin-bottom: 0;
    box-shadow: none;
    border: 1px solid #f0f2f5;
    background: #f9fafb;
    border-radius: 12px;
}
.wbtm_single_modern .wbtm_sm_feature_grid .wtbm_term_content { font-size: 13px; color: #374151; }

/* ── BOOKING BAR (search form restyle, scoped — markup untouched) ── */
.wbtm_single_modern #wbtm_area { margin: 0; }
.single-wbtm_bus #wbtm_area .wbtm-bar-redesign .wbtm_search_input_fields_holder { margin-top: 10px; }
.wbtm_single_modern .wbtm_search_area {
    background: #f8fafc;
    border: 1px solid #f0f2f5;
    border-top: 0;
    border-radius: 0 0 24px 24px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .08);
    margin: 0 0 24px;
    padding: 22px 30px 26px;
}
.wbtm_single_modern .wbtm_search_area > h4 {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: #9ca3af;
    margin: 0 0 14px;
}
/* Input fields → clean white pills */
.wbtm_single_modern .wbtm_search_area .marker,
.wbtm_single_modern .wbtm_search_area .calendar {
    border: none;
    border-radius: 12px;
    transition: border-color .2s, box-shadow .2s;
}
.wbtm_single_modern .wbtm_search_area .marker input,
.wbtm_single_modern .wbtm_search_area .calendar input {
    height: 46px;
    border: 0;
    background: transparent;
    font-size: 14px;
    font-weight: 500;
    color: #111827;
}
.wbtm_single_modern .wbtm_search_area .wtbm_inputList label { font-weight: 600; color: #374151; font-size: 13px; }

/* From / To / swap laid out as a clean flex row (swap is a real, clickable
   in-flow item — not the base absolute overlap that was hard to click). */
.wbtm_single_modern .wbtm_input_start_end_location {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    position: relative;
}
.wbtm_single_modern .wbtm_start_point,
.wbtm_single_modern .wbtm_dropping_point {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
}
/* Swap button → circular accent, in-flow between From and To */
.wbtm_single_modern .wbtm_search_location_toggle {
    position: static;
    transform: none;
    top: auto;
    left: auto;
    margin: 0;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    align-self: flex-end;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1.5px solid #e5e7eb;
    background: #fff;
    color: #3b82f6;
    border-radius: 50%;
    cursor: pointer;
    z-index: 5;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
    transition: border-color .2s, box-shadow .2s, transform .35s cubic-bezier(.34, 1.56, .64, 1);
}
.wbtm_single_modern .wbtm_search_location_toggle:hover {
    border-color: #3b82f6;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, .1);
}
/* Search button → solid blue CTA */
.wbtm_single_modern .wbtm_search_area .wbtm_search_action_button {
    background: #2563eb;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(37, 99, 235, .3);
    transition: background .2s, box-shadow .2s, transform .1s;
}
.wbtm_single_modern .wbtm_search_area .wbtm_search_action_button:hover {
    background: #1d4ed8;
    box-shadow: 0 6px 18px rgba(37, 99, 235, .35);
}

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
    .wbtm_single_modern .wbtm_sm_top {
        grid-template-columns: 1fr;
    }
    .wbtm_single_modern .wbtm_sm_slider {
        min-height: 240px;
        max-height: 340px;
    }
}
@media (max-width: 560px) {
    .wbtm_single_modern .wbtm_sm_routes {
        grid-template-columns: 1fr;
    }
    .wbtm_single_modern .wbtm_sm_info,
    .wbtm_single_modern .wbtm_search_area { padding-left: 18px; padding-right: 18px; }
    .wbtm_single_modern .wbtm_sm_description,
    .wbtm_single_modern .wbtm_sm_section { padding-left: 18px; padding-right: 18px; }
}
