/* ===== GALLERY ===== */
.vt-gallery {
    width: 100%;
    max-width: 100%;
}

.vt-gallery__main {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 1.6rem 1.6rem 0 0;
    background: #e8e8e8;
}

.vt-gallery__img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

/* Mobile: giới hạn cứng theo viewport, tránh container cha bị tràn */
@media (max-width: 767px) {
    .vt-gallery,
    .vt-gallery__main {
        max-width: 100vw;
        overflow: hidden;
    }
}

@media (min-width: 768px) {
    .vt-gallery__main {
        aspect-ratio: 16 / 9;
        border-radius: 2.4rem 2.4rem 0 0;
    }
    .vt-gallery__img {
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
}

.vt-gallery__zoom {
    position: absolute;
    right: 1.6rem;
    bottom: 1.6rem;
    z-index: 9;
    width: 4rem;
    height: 4rem;
    border: 1px solid hsla(0,0%,100%,.7);
    border-radius: 1.2rem;
    background: hsla(0,0%,100%,.92);
    color: #636363;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform .16s ease, background-color .16s ease, color .16s ease;
}

.vt-gallery__zoom:hover {
    color: #0046c1;
    background: #fff;
    transform: translateY(-1px);
}

.vt-gallery__thumbs {
    background: #fff;
    border-radius: 0 0 2.4rem 2.4rem;
    padding: .8rem .4rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}

.vt-gallery__thumb-nav {
    flex: 0 0 auto;
    width: 3.2rem;
    height: 3.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #ddd;
    border-radius: 50%;
    background: #fff;
    color: #444;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s, opacity .15s;
}

.vt-gallery__thumb-nav:hover {
    background: #0046c1;
    color: #fff;
    border-color: #0046c1;
}

.vt-gallery__thumb-nav:disabled {
    opacity: .3;
    cursor: default;
}

.vt-gallery__thumb-list {
    flex: 1;
    display: flex;
    gap: .6rem;
    align-items: center;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
}

.vt-gallery__thumb-list::-webkit-scrollbar {
    display: none;
}

.vt-gallery__thumb-list.is-dragging {
    cursor: grabbing;
}

.vt-gallery__thumb-btn {
    flex: 0 0 auto;
    width: 6.4rem;
    height: 6.4rem;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 1.2rem;
    background: none;
    cursor: pointer;
    overflow: hidden;
    transition: border-color .15s, transform .2s;
}

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

.vt-gallery__thumb-btn--active,
.vt-gallery__thumb-btn:hover {
    border-color: #0046c1;
    transform: translateY(-2px);
}

.tourCard_contentBody__We9RT.tourCard_isCustomHeight__RK44A { height:22rem; }
@media(max-width:480px) {
    .tourCard_contentBody__We9RT.tourCard_isCustomHeight__RK44A { height:auto; }
}
.tourCard_contentBody__We9RT.tourCard_isCustomHeight__RK44A h3.tourCard_isCustomHeight__RK44A { -webkit-line-clamp:1; }
.tourCard_metaTransports__VTX { flex-wrap:wrap; gap:.4rem .8rem; }
.tourCard_metaTransports__VTX > span,
.tourCard_metaTransports__VTX > span:first-child,
.tourCard_metaTransports__VTX > span:last-child { flex:0 0 calc(50% - .4rem); max-width:calc(50% - .4rem); }
.tourCard_departureDatesRow__T_cxj { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.4rem; }
.tourCard_departureDateItem__k1VFC { display:inline-flex; align-items:center; justify-content:center; padding:.2rem .7rem; border-radius:.4rem; border:1px solid #0046c1; color:#0046c1; font-size:1.1rem; font-weight:600; line-height:1.6rem; background:#fff; cursor:pointer; transition:background .15s,color .15s; }
.tourCard_departureDateItem__k1VFC:hover { background:#0046c1; color:#fff; }

/* ===== DEPARTURE CARD (Lịch trình khởi hành) ===== */

/* Preview: con trỏ + transition button */
.tourDepartureCard_departure-item__preview__rq2Wz { cursor: pointer; }
.tourDepartureCard_departure-item__select__9QFg7 {
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.tourDepartureCard_addPaddingBot__bLXlE { padding-bottom: .8rem; }

/* Transport inline */
.tourDepartureCard_departure-item__transport__vtx {
    font-size: 1.15rem;
    color: #666;
    margin-top: .3rem;
}

/* Giá khuyến mại */
.departure-price--old {
    display: block;
    font-size: 1.1rem;
    color: #aaa;
    text-decoration: line-through;
    line-height: 1.4;
}
.departure-price--sale { color: #e53935 !important; }

/* Nhãn Hot Deal/Flash Sale trên từng thẻ lịch khởi hành (is_hot_deal/is_flash_sale theo
   TỪNG lịch, không phải theo tour) */
.vt-schedule-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: .4rem 0;
}
.vt-schedule-badge {
    display: inline-flex;
    align-items: center;
    padding: .2rem .8rem;
    border-radius: 999px;
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    line-height: 1.6rem;
    color: #fff;
}
.vt-schedule-badge--hot-deal { background: #e53935; }
.vt-schedule-badge--flash-sale { background: #ff6f00; }

/* Gợi ý ngắn trong box quick view (tourQuickView_quickViewContent___Wlwi) khi tour có ít
   nhất 1 lịch hot deal/flash sale — bấm cuộn xuống #schedule xem chi tiết từng lịch. */
.vt-schedule-hint {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    margin-top: .4rem;
    font-size: 1.2rem;
    font-weight: 700;
    color: #e53935;
    text-decoration: none;
    cursor: pointer;
}
.vt-schedule-hint:hover { text-decoration: underline; }

/* Nút "Đang chọn" — chỉ đổi màu, giữ nguyên shape/size */
.brand06Btn {
    background-color: #0046c1 !important;
    color: #fff !important;
}
@media screen and (hover: hover) {
    .brand06Btn:hover { background-color: #003499 !important; }
}

/* View segment: accordion mượt dùng grid-template-rows */
.departureViewSegment_viewSegment__JhlQv {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .3s ease, margin-top .3s ease;
    margin-top: 0;
}
.departureViewSegment_inner {
    overflow: hidden;
    opacity: 0;
    transition: opacity .22s ease .08s;
}
.departureViewSegment_viewSegment__JhlQv.is-open {
    grid-template-rows: 1fr;
    margin-top: .8rem;
    border-top: 1px solid #e8e8e8;
    padding-top: .8rem;
}
.departureViewSegment_viewSegment__JhlQv.is-open .departureViewSegment_inner { opacity: 1; }

/* Layout nội dung bên trong */
.departureViewSegment_layoutWrapper__BOTPp { display: flex; flex-direction: column; gap: .6rem; margin-bottom: .8rem; }
.departureViewSegment_layoutWrapper__BOTPp:last-child { margin-bottom: 0; }

.departureViewSegment_viewSegment__title__QzjKp {
    font-size: 1.2rem;
    font-weight: 700;
    color: #444;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin: 0 0 .2rem;
}

.departureViewSegment_viewSegment__details__l61Wn { display: flex; flex-direction: column; gap: .4rem; }

/* Transportation segment */
.transportation_transportation__KWn66 { display: flex; flex-direction: column; gap: .8rem; }

.transportation_flightSegment__AMQKo { display: flex; flex-direction: column; gap: .6rem; }

.transportation_segmentHeader__Evdxb {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .8rem;
    flex-wrap: wrap;
}

.transportation_headerContent__yfs_c {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.transportation_label__sjwbp { font-size: 1.2rem; color: #888; }

.transportation_date__ZFOl4 { font-size: 1.3rem; font-weight: 700; color: #191919; }

.transportation_flightInfo__pVklP {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: 1.2rem;
}

.transportation_flightCode__tsPvC { font-size: 1.2rem; font-weight: 600; color: #444; }

.transportation_segmentBody__a30Jd { display: flex; flex-direction: column; gap: .4rem; padding-left: .4rem; }

.transportation_timeline__9ZNKk {
    display: flex;
    align-items: center;
    gap: 0;
    height: 1.2rem;
}

.transportation_dot___ZyHT {
    width: .8rem; height: .8rem;
    border-radius: 50%;
    background: #0046c1;
    flex-shrink: 0;
}

.transportation_line__uW6qA {
    flex: 1;
    height: 2px;
    background: #0046c1;
}

.transportation_timeRow__9m4Kt {
    display: flex;
    justify-content: space-between;
    font-size: 1.2rem;
    font-weight: 600;
    color: #191919;
}

.transportation_airportRight__XFOmX { text-align: right; }

.transportation_divider__9C1_I {
    height: 1px;
    background: #eee;
    margin: .4rem 0;
}

/* Price pax */
.tour__info--content--price--pax__1 {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    flex: 1 1 auto;
    min-width: 0;
}

.tour__info--content--price--pax__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .8rem;
    font-size: 1.3rem;
}

.tour__info--content--price--pax__item > div {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.tour__info--content--price--pax__item label {
    font-weight: 600;
    color: #191919;
    cursor: default;
}

.tour__info--content--price--pax__item span {
    font-size: 1.1rem;
    color: #888;
}

.tour__info--content--price--pax__item p {
    margin: 0;
    font-size: 1.4rem;
    font-weight: 700;
    color: #e53935;
    white-space: nowrap;
}

/* ===== LIGHTBOX ===== */
.vt-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    align-items: center;
    justify-content: center;
}
.vt-lightbox.is-open {
    display: flex;
}
.vt-lightbox__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.88);
    cursor: zoom-out;
}
.vt-lightbox__close {
    position: fixed;
    top: 1.4rem;
    right: 1.4rem;
    z-index: 10;
    width: 4rem;
    height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 50%;
    background: rgba(0,0,0,.5);
    color: #fff;
    cursor: pointer;
    transition: background .15s;
}
.vt-lightbox__close:hover { background: rgba(255,255,255,.15); }
.vt-lightbox__img-wrap {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 95vw;
    max-height: calc(100vh - 10rem);
    overflow: visible;
}
.vt-lightbox__img {
    display: block;
    max-width: 95vw;
    max-height: calc(100vh - 10rem);
    object-fit: contain;
    transform-origin: center center;
    transition: transform .18s ease;
    user-select: none;
    -webkit-user-select: none;
    pointer-events: none;
}
.vt-lightbox__toolbar {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 1rem;
    background: rgba(0,0,0,.72);
    border-radius: 3.2rem;
    padding: .6rem 1.4rem;
    color: #fff;
}
.vt-lightbox__zoom-btn {
    width: 3.2rem;
    height: 3.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 50%;
    background: none;
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    transition: background .15s;
}
.vt-lightbox__zoom-btn:hover { background: rgba(255,255,255,.15); }
.vt-lightbox__zoom-btn:disabled { opacity: .3; cursor: default; }
.vt-lightbox__zoom-level {
    min-width: 4.8rem;
    text-align: center;
    font-size: 1.4rem;
    font-weight: 600;
}

/* ===== SMART STICKY SIDEBAR ===== */
/* overflow-x:hidden trên parent phá vỡ position:sticky trên Safari — đổi sang clip */
.layout_layout-content__3hFvK {
    overflow-x: clip !important;
}

/* Desktop: sidebar luôn cố định bên dưới menu khi scroll */
@media (min-width: 769px) {
    .tourDetailLayout_rightContent__Mce3w {
        position: sticky !important;
        top: 8rem !important;
        align-self: start !important;
    }
}

/* ===== TOUR OVERVIEW — icon colors ===== */
.tourOverview_iconBackground__9lMDn {
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* 1 - Điểm tham quan: cam */
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(1) .tourOverview_iconBackground__9lMDn {
    background: #fff3e0;
}
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(1) .icon_icon-wrapper__coKdX {
    --icon-color: #f57c00;
}

/* 2 - Thời gian: xanh dương */
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(2) .tourOverview_iconBackground__9lMDn {
    background: #e3f2fd;
}
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(2) .icon_icon-wrapper__coKdX {
    --icon-color: #1976d2;
}

/* 3 - Phương tiện: tím */
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(3) .tourOverview_iconBackground__9lMDn {
    background: #f3e5f5;
}
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(3) .icon_icon-wrapper__coKdX {
    --icon-color: #7b1fa2;
}

/* 4 - Dòng tour: xanh lá */
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(4) .tourOverview_iconBackground__9lMDn {
    background: #e8f5e9;
}
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(4) .icon_icon-wrapper__coKdX {
    --icon-color: #2e7d32;
}

/* 5 - Ẩm thực: đỏ cam */
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(5) .tourOverview_iconBackground__9lMDn {
    background: #fbe9e7;
}
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(5) .icon_icon-wrapper__coKdX {
    --icon-color: #d84315;
}

/* 6 - Khuyến mãi: đỏ hồng */
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(6) .tourOverview_iconBackground__9lMDn {
    background: #fce4ec;
}
.tourOverview_contentWrapper__t3RhL .tourOverview_baseLayout__L_Vjd:nth-child(6) .icon_icon-wrapper__coKdX {
    --icon-color: #c2185b;
}

/* ===== RIGHT NAV ===== */
.vt-right-nav {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 1.2rem;
    padding: 0.8rem;
    margin-top: 1.6rem;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
}

.vt-right-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.vt-right-nav__item {
    position: relative;
}

.vt-right-nav__item:not(:last-child)::after {
    content: '';
    display: block;
    margin: 0 1rem;
    height: 1px;
    background: #f0f0f0;
}

.vt-right-nav__link {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.2rem;
    border-radius: 0.8rem;
    text-decoration: none;
    color: #555;
    font-size: 1.35rem;
    line-height: 1.4;
    transition: background 0.18s, color 0.18s;
    cursor: pointer;
}

.vt-right-nav__link:hover {
    background: #f0f7ff;
    color: #0391ff;
}

.vt-right-nav__link.is-active {
    color: #0391ff;
    font-weight: 600;
    background: #edf5ff;
}

.vt-right-nav__dot {
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 50%;
    border: 2px solid #ccc;
    flex-shrink: 0;
    transition: background 0.18s, border-color 0.18s;
}

.vt-right-nav__link.is-active .vt-right-nav__dot,
.vt-right-nav__link:hover .vt-right-nav__dot {
    background: #0391ff;
    border-color: #0391ff;
}

.vt-right-nav__label {
    flex: 1;
}

@media (max-width: 1023px) {
    .vt-right-nav {
        display: none;
    }

    /* Right content được JS move vào sau gallery → reset sticky */
    .tourDetailLayout_rightContent__Mce3w {
        position: static !important;
        top: auto !important;
        align-self: auto !important;
        width: 100% !important;
        margin-top: 0 !important;
    }

    .tourDetailLayout_rightContent__Mce3w .tourQuickView_quickView__r_rZC {
        margin-top: 1.6rem;
        margin-bottom: 0;
    }
}

/* ===== MOBILE FLOATING NAV ===== */
.vt-mob-nav {
    display: none;
    position: fixed;
    right: 1.6rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 990;
}

@media (max-width: 1023px) {
    .vt-mob-nav {
        display: block;
    }
}

.vt-mob-nav__toggle {
    width: 4.4rem;
    height: 4.4rem;
    background: #0391ff;
    border: none;
    border-radius: 50%;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 12px rgba(3,145,255,.4);
    cursor: pointer;
    transition: background 0.18s;
}

.vt-mob-nav__toggle:hover {
    background: #0278d4;
}

.vt-mob-nav__icon-close {
    display: none;
}

.vt-mob-nav__toggle.is-open .vt-mob-nav__icon-menu {
    display: none;
}

.vt-mob-nav__toggle.is-open .vt-mob-nav__icon-close {
    display: block;
}

.vt-mob-nav__toggle.is-open {
    background: #0278d4;
}

.vt-mob-nav__panel {
    position: absolute;
    right: calc(100% + 1.2rem);
    top: 50%;
    transform: translateY(-50%) scale(0.94);
    transform-origin: right center;
    background: #fff;
    border: 1px solid #e4e4e4;
    border-radius: 1.4rem;
    box-shadow: 0 6px 24px rgba(0,0,0,.14);
    min-width: 22rem;
    padding: 0.6rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.vt-mob-nav__panel.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) scale(1);
}

.vt-mob-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.vt-mob-nav__list li:not(:last-child) {
    border-bottom: 1px solid #f2f2f2;
}

.vt-mob-nav__link {
    display: block;
    padding: 1.1rem 1.4rem;
    border-radius: 0.8rem;
    color: #444;
    font-size: 1.4rem;
    line-height: 1.4;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}

.vt-mob-nav__link:hover,
.vt-mob-nav__link:active {
    background: #f0f7ff;
    color: #0391ff;
}

/* ===== MOBILE STICKY PRICE BAR ===== */
.vt-sticky-price {
    display: none;
}

@media (max-width: 1023px) {
    .vt-sticky-price {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 980;
        align-items: center;
        gap: 1.2rem;
        padding: 1.2rem 1.6rem;
        background: #fff;
        border-top: 1px solid #e4e4e4;
        box-shadow: 0 -2px 16px rgba(0,0,0,.1);
        transform: translateY(110%);
        transition: transform 0.28s ease;
        /* tránh che nút floating nav */
        padding-right: 6.4rem;
    }

    .vt-sticky-price.is-visible {
        transform: translateY(0);
    }

    .vt-sticky-price__info {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 0.1rem;
    }

    .vt-sticky-price__label {
        font-size: 1.15rem;
        color: #888;
        line-height: 1;
    }

    .vt-sticky-price__value {
        font-size: 1.9rem;
        font-weight: 700;
        color: #e53935;
        white-space: nowrap;
    }

    .vt-sticky-price__btn {
        flex-shrink: 0;
        height: 4.4rem;
        padding: 0 2rem;
        font-size: 1.4rem;
        white-space: nowrap;
    }

    /* Đẩy nội dung trang lên trên để không bị bar che */
    body.has-sticky-price {
        padding-bottom: 7.2rem;
    }
}

/* ===== Nhãn "Xem thêm/Thu gọn" của accordion Lịch trình ===== */
/* Width cố định để header không bị giãn/co khi text đổi giữa "Xem thêm" và "Thu gọn" */
.vt-itinerary-toggle-label {
    display: inline-block;
    width: 7rem;
    text-align: right;
    font-size: 1.3rem;
    font-weight: 600;
    color: #0391ff;
}

/* Mobile: chỉ hiện icon, ẩn chữ "Xem thêm/Thu gọn" */
@media (max-width: 767px) {
    .vt-itinerary-toggle-label {
        display: none;
    }
}

/* ================================================================
   POPUP LỊCH TRÌNH (tất cả các ngày) — click 1 ngày ở danh sách
   ngoài trang sẽ mở popup này, cuộn tới đúng ngày vừa bấm.
   ================================================================ */
.vt-itin-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9000;
    align-items: center;
    justify-content: center;
    padding: 1.6rem;
}

.vt-itin-modal.is-open { display: flex; }

.vt-itin-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.vt-itin-modal__box {
    position: relative;
    z-index: 1;
    background: #fff;
    border-radius: 1.6rem;
    width: 100%;
    max-width: 72rem;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,.25);
    animation: vtItinIn .22s ease;
}

@keyframes vtItinIn {
    from { opacity: 0; transform: scale(.95) translateY(10px); }
    to   { opacity: 1; transform: scale(1)   translateY(0); }
}

.vt-itin-modal__header {
    position: relative;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2.2rem 5rem 2.2rem 3.2rem;
}

.vt-itin-modal__title {
    font-size: 2.5rem;
    font-weight: 700;
    color: #191919;
    margin: 0;
}

.vt-itin-modal__close {
    position: absolute;
    top: 1.6rem;
    right: 1.6rem;
    width: 3.2rem;
    height: 3.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #f6f6f6;
    border: 1px solid #e0e0e0;
    cursor: pointer;
    color: #333;
    flex-shrink: 0;
    transition: background .15s;
}

.vt-itin-modal__close:hover { background: #ececec; }

.vt-itin-modal__body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 0 2.4rem 2rem;
    scrollbar-width: thin;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

/* ── 1 ngày = timeline (chấm + đường nối) bên trái + nội dung bên phải ── */
.vt-itin-modal__day {
    display: flex;
    gap: 1.6rem;
}

.vt-itin-modal__timeline {
    flex: 0 0 auto;
    width: 2.4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.vt-itin-modal__timelineDot {
    flex: 0 0 auto;
    color: #191919;
}

.vt-itin-modal__timelineLine {
    flex: 1 1 auto;
    width: 1px;
    background: #636363;
    margin-top: .4rem;
}

.vt-itin-modal__dayItem {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}

/* ── Khối trên: nền xanh nhạt, chữ trái / ảnh phải ── */
.vt-itin-modal__dayHeader {
    display: flex;
    align-items: stretch;
    background: #d9eeff;
    border-radius: 2rem;
    overflow: hidden;
    min-height: 17.1rem;
}

.vt-itin-modal__dayInfo {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .8rem;
    padding: 2rem;
    justify-content: center;
}

.vt-itin-modal__dayNum {
    font-size: 2rem;
    font-weight: 800;
    color: #0391ff;
    margin: 0;
}

.vt-itin-modal__dayTitle {
    font-size: 1.6rem;
    font-weight: 700;
    color: #191919;
    margin: 0;
}

.vt-itin-modal__dayImgWrap {
    flex: 0 0 auto;
    width: 31.6rem;
    max-width: 45%;
    align-self: stretch;
}

.vt-itin-modal__dayImg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ── Khối dưới: nội dung chi tiết, nền trắng nổi trên nền xám nhạt của body ── */
.vt-itin-modal__dayContent {
    background: #fff;
    border-radius: 2rem;
    box-shadow: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);
    padding: 2rem;
    font-size: 1.6rem;
    line-height: 1.7;
    color: #000e1a;
}

/* Nội dung mô tả điểm dừng/chính sách/điểm nhấn đều render thẳng HTML admin nhập qua
   CKEditor (có thể chèn ảnh gốc kích thước lớn) — chặn tràn khung bằng max-width. */
.vt-itin-modal__dayContent img,
.style_content__29ZB4 img,
.baseCollapse_collapsePanel__c_pMF img {
    max-width: 100% !important;
    height: auto !important;
}

@media (max-width: 767px) {
    .vt-itin-modal { padding: 0; align-items: flex-end; }
    .vt-itin-modal__box {
        max-width: 100%;
        max-height: 88vh;
        border-radius: 1.6rem 1.6rem 0 0;
        animation: vtItinInMobile .22s ease;
    }
    .vt-itin-modal__header { padding: 1.6rem 4.8rem 1.2rem 1.6rem; }
    .vt-itin-modal__title { font-size: 1.8rem; }
    .vt-itin-modal__body { padding: 0 1.6rem 1.6rem; gap: 1.6rem; }
    .vt-itin-modal__day { gap: 1rem; }
    .vt-itin-modal__dayHeader { flex-direction: column-reverse; min-height: 0; border-radius: 1.4rem; }
    .vt-itin-modal__dayImgWrap { width: 100%; max-width: 100%; aspect-ratio: 16 / 8; }
    .vt-itin-modal__dayInfo { padding: 1.4rem 1.6rem; }
    .vt-itin-modal__dayContent { border-radius: 1.4rem; padding: 1.4rem 1.6rem; font-size: 1.4rem; }
    @keyframes vtItinInMobile {
        from { opacity: 0; transform: translateY(24px); }
        to   { opacity: 1; transform: translateY(0); }
    }
}
