/* ===== 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); }
    }
}

/* ===== SCHEDULE NOTE BADGE — thay cho nút "Chọn" khi lịch có ghi chú admin (vd "Full") =====
   Kích thước/vị trí giống nút gốc (.tourDepartureCard_departure-item__select__9QFg7) nhưng
   dùng class riêng để JS click-mở-rộng-thẻ-lịch (tour-detail-custom.js) không tìm thấy qua
   querySelector rồi ghi đè lại chữ thành "Đang chọn". */
.vt-schedule-note-badge {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    width: 10rem;
    max-width: 100%;
    min-width: 0;
    flex-shrink: 0;
    align-self: center;
    padding: 1.2rem;
    line-height: 2rem;
    border-radius: 4rem;
    background-color: #f7f7f7;
    color: #636363;
    font-size: 1.4rem;
    font-weight: 600;
    text-align: center;
    cursor: default;
}

/* =========================================================================
   Icon trước tiêu đề 5 mục nội dung trang chi tiết tour (Thông tin thêm về
   chuyến đi, Lịch trình khởi hành, Điểm nhấn chương trình, Lịch trình,
   Những thông tin cần lưu ý) — chỉ icon + text nằm cùng hàng, không thêm
   hiệu ứng/màu nền nào khác cho phần nội dung bên dưới.
   ========================================================================= */
.vt-section-title {
    display: flex;
    align-items: center;
    gap: .9rem;
}
.vt-section-title__icon {
    flex-shrink: 0;
    width: 3.2rem;
    height: 3.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1rem;
    background: linear-gradient(135deg, #0046c1, #0391ff);
    --icon-color: #fff;
    color: #fff;
}
.vt-section-title__icon--amber {
    background: linear-gradient(135deg, #d97706, #f59e0b);
}

/* Bản nhạt của #ff8787 — giữ đúng tông màu yêu cầu nhưng pha loãng để làm nền cả
   khối nội dung lớn, tránh chói/khó đọc chữ như dùng nguyên màu gốc bão hoà cao. */
#tourItinerary .baseCollapse_collapseList__snfTs {
    background-color: #fff1f1;
    border: 1.5px solid #ffd6d6;
}
#tourItinerary .baseCollapse_collapseList__snfTs .baseCollapse_collapseItem__vCaW_:not(:last-child) {
    border-bottom-color: #ffd6d6;
}

/* "Những thông tin cần lưu ý": mỗi chính sách là 1 khối riêng biệt (không gộp chung
   1 khung như Lịch trình) — màu nền do admin tự chọn (tour_policies.color, inline
   style), mặc định trắng. Viền luôn cố định xám nhạt trung tính, không phụ thuộc màu
   nền, để khối luôn tách bạch rõ với nền trang dù admin chọn màu gì. */
#noteFaqs .baseCollapse_baseCollapse__xhb_Q {
    gap: 1.2rem;
}
.vt-note-block {
    border: 1.5px solid #e5e7eb;
}
@media (max-width: 768px) {
    .vt-section-title { margin-top: 1.2rem; }
    .vt-section-title__icon { width: 2.8rem; height: 2.8rem; border-radius: .8rem; }
}
