/* Viettourist modern departure/booking UI - inspired by current OTA booking patterns. */
:root{
  --vtt-brand:#ed0080;
  --vtt-brand-dark:#c9006c;
  --vtt-brand-soft:#fff1f8;
  --vtt-ink:#1f2937;
  --vtt-muted:#6b7280;
  --vtt-line:#e8e8ef;
  --vtt-success:#179447;
  --vtt-bg:#fff;
}

/* ===== Departure list ===== */
#calendar-departure{margin-top:26px;margin-bottom:28px;}
#calendar-departure .vtt-departure-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px;}
#calendar-departure .vtt-departure-header h2{margin:0;color: #ed007f !important;;font-size:20px;font-weight:700;line-height:1.25;}
#calendar-departure .vtt-departure-header p{margin:5px 0 0;color:var(--vtt-muted);font-size:14px;}

#calendar-departure .vtt-departure-months{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;}
#calendar-departure .vtt-month-filter{appearance:none;border:1px solid #e0e5ec;border-radius:999px;background:#fff;color:#4b5563;padding:7px 14px;font-size:13px;font-weight:600;line-height:1.2;transition:.18s ease;}
#calendar-departure .vtt-month-filter:hover{border-color:var(--vtt-brand);color:var(--vtt-brand);}
#calendar-departure .vtt-month-filter.is-active{border-color:var(--vtt-brand);background:var(--vtt-brand-soft);color:var(--vtt-brand);}

#calendar-departure .vtt-departure-columns,
#calendar-departure .panel-title>a{display:grid!important;grid-template-columns:128px minmax(180px,1fr) 92px 145px 20px;align-items:center;column-gap:14px;}
#calendar-departure .vtt-departure-columns{padding:9px 14px 10px;margin:0;border:1px solid var(--vtt-line);border-bottom:0;border-radius:14px 14px 0 0;background:#fafbfc;color:#7a7f8a;font-size:12px;font-weight:700;}
#calendar-departure .vtt-departure-columns>div{min-width:0;}
#calendar-departure .vtt-departure-columns .vtt-col-price{text-align:right;}

#calendar-departure .list-calendar-departure{background:#fff;border:1px solid var(--vtt-line);border-radius:0 0 14px 14px;padding:0;overflow:hidden;box-shadow:0 4px 18px rgba(31,41,55,.04);}
#calendar-departure .tourSchedule.panel-group{margin:0;}
#calendar-departure .tourSchedule>.panel.panelshow{margin:0!important;border:0!important;border-bottom:1px solid var(--vtt-line)!important;border-radius:0!important;box-shadow:none!important;background:#fff;transition:.18s ease;}
#calendar-departure .tourSchedule>.panel.panelshow:last-child{border-bottom:0!important;}
#calendar-departure .tourSchedule>.panel.panelshow:hover{background:#fff9fc;}
#calendar-departure .tourSchedule>.panel.panelshow.vtt-is-selected{background:var(--vtt-brand-soft);box-shadow:inset 3px 0 0 var(--vtt-brand)!important;}
#calendar-departure .panel-heading.btn-heading{padding:0!important;border:0!important;background:transparent!important;}
#calendar-departure .panel-title{margin:0!important;}
#calendar-departure .panel-title>a{padding:15px 14px!important;text-decoration:none!important;color:var(--vtt-ink)!important;min-height:60px;position:relative;}
#calendar-departure .panel-title>a:after{content:"›";font-size:26px;line-height:1;color:var(--vtt-brand);font-weight:300;text-align:right;}
#calendar-departure .panel-title>a>div{width:auto!important;float:none!important;margin:0!important;padding:0!important;min-width:0;}
#calendar-departure .vtt-departure-date{font-weight:800;color:var(--vtt-brand);font-size:14px;white-space:nowrap;}
#calendar-departure .vtt-departure-feature{font-size:14px;line-height:1.35;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#calendar-departure .vtt-departure-seats{color:var(--vtt-success);font-size:13px;font-weight:600;white-space:nowrap;}
#calendar-departure .vtt-departure-price{text-align:right!important;}
#calendar-departure .vtt-departure-price .col-price{color:var(--vtt-brand)!important;font-size:17px!important;font-weight:800!important;white-space:nowrap;}
#calendar-departure .panel-collapse{display:none!important;}

#calendar-departure .vtt-departure-more-wrap{display:flex;justify-content:center;margin-top:10px;}
#calendar-departure .loadMore-departure{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:260px;height:42px;padding:0 20px;border:1px solid #dfe4ea;border-radius:999px;color:var(--vtt-brand);background:#fff;text-decoration:none;font-size:13px;font-weight:700;}
#calendar-departure .loadMore-departure:hover{border-color:var(--vtt-brand);background:var(--vtt-brand-soft);}
#calendar-departure .vtt-departure-empty{padding:18px;border:1px solid var(--vtt-line);border-radius:12px;background:#fff;color:var(--vtt-muted);}

/* ===== Desktop right booking sidebar ===== */
#tourSideBar .floatBox.highlight{background:#fff!important;border:1px solid var(--vtt-line)!important;border-radius:14px!important;padding:18px!important;box-shadow:0 8px 24px rgba(31,41,55,.08)!important;overflow:hidden;}
#tourSideBar .floatBox.highlight>.title{font-size:20px!important;line-height:1.3!important;font-weight:800!important;color:var(--vtt-ink)!important;background:transparent!important;padding:0 0 4px!important;text-transform:none!important;border:0!important;}
#tourSideBar .floatBox.highlight>.title:after{content:"Chọn ngày khởi hành và số khách";display:block;margin-top:5px;color:var(--vtt-muted);font-size:12px;font-weight:400;}
#tourSideBar .box-white{border:1px solid var(--vtt-line)!important;background:#fff!important;border-radius:10px!important;margin:8px 0!important;padding:12px!important;min-height:0!important;display:flex;align-items:center;justify-content:space-between;gap:10px;}
#tourSideBar .box-white:first-of-type{display:block;}
#tourSideBar .box-white .form-group{margin:0!important;}
#tourSideBar .box-white label{width:100%!important;float:none!important;display:block;margin-bottom:7px;color:var(--vtt-muted);font-size:12px;font-weight:600;}
#tourSideBar .box-white .col-xs-4{width:100%!important;float:none!important;}
#tourSideBar .box-white .input-group{width:100%;}
#tourSideBar .dateDepartured{height:38px!important;border:0!important;box-shadow:none!important;color:var(--vtt-brand)!important;font-weight:800!important;background:#fff!important;padding-left:8px!important;}
#tourSideBar .input-group-addon{border:0!important;background:#fff!important;color:var(--vtt-brand)!important;}
#tourSideBar .text-detail{color:var(--vtt-ink)!important;font-weight:700;font-size:13px;}
#tourSideBar .price-color{margin-left:auto;color:var(--vtt-muted)!important;font-size:12px!important;}
#tourSideBar .btn-group{display:flex;align-items:center;gap:6px;float:none!important;}
#tourSideBar .number-button{width:30px;height:30px;padding:0!important;border:1px solid #efd4e4!important;border-radius:8px!important;background:#fff!important;color:var(--vtt-brand)!important;}
#tourSideBar .number-detail{min-width:18px;text-align:center;font-weight:700;font-size:14px;}
#tourSideBar .priceDiv{margin:12px 0 8px!important;padding:12px 0 0!important;border-top:1px dashed #ddd!important;display:flex;align-items:center;justify-content:space-between;}
#tourSideBar .priceDiv .labelPrice{font-size:14px!important;color:var(--vtt-ink)!important;}
#tourSideBar .priceDiv .totalPrice{float:none!important;color:var(--vtt-brand)!important;font-size:22px!important;font-weight:800!important;}
#tourSideBar .requestButtonS,#tourSideBar .bookButtonS{height:46px!important;border:0!important;border-radius:9px!important;background:var(--vtt-brand)!important;color:#fff!important;font-size:14px!important;font-weight:800!important;text-transform:uppercase;box-shadow:none!important;}
#tourSideBar .requestButtonS:hover,#tourSideBar .bookButtonS:hover{background:var(--vtt-brand-dark)!important;}
#tourSideBar .vtt-booking-help{margin-top:10px;padding-top:10px;border-top:1px solid var(--vtt-line);text-align:center;color:var(--vtt-muted);font-size:12px;}
#tourSideBar .vtt-booking-help strong{color:var(--vtt-brand);}

/* Current selected departure summary in sidebar */
#tourSideBar .vtt-selected-departure{display:none;margin:8px 0 0;padding:10px 12px;background:var(--vtt-brand-soft);border-radius:9px;color:var(--vtt-ink);font-size:12px;line-height:1.4;}
#tourSideBar .vtt-selected-departure.is-visible{display:block;}
#tourSideBar .vtt-selected-departure b{display:block;color:var(--vtt-brand);font-size:13px;margin-bottom:2px;}

@media (max-width:767px){
  #calendar-departure .vtt-departure-header h2{font-size:21px;}
  #calendar-departure .vtt-departure-months{gap:6px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px;scrollbar-width:none;}
  #calendar-departure .vtt-departure-months::-webkit-scrollbar{display:none;}
  #calendar-departure .vtt-month-filter{flex:0 0 auto;padding:7px 12px;}
  #calendar-departure .vtt-departure-columns{display:none!important;}
  #calendar-departure .list-calendar-departure{border-radius:12px;}
  #calendar-departure .panel-title>a{grid-template-columns:1fr auto;gap:5px 10px;padding:14px 12px!important;}
  #calendar-departure .panel-title>a:after{grid-column:2;grid-row:1/4;align-self:center;}
  #calendar-departure .vtt-departure-date{grid-column:1;display:block!important;}
  #calendar-departure .vtt-departure-feature.hidden-xs{display:block!important;grid-column:1;font-size:12px;color:var(--vtt-muted);white-space:normal;}
  #calendar-departure .vtt-departure-seats.hidden-xs{display:block!important;grid-column:1;font-size:12px;}
  #calendar-departure .vtt-departure-price{grid-column:1;text-align:left!important;margin-top:3px!important;}
  #calendar-departure .vtt-departure-price .col-price{font-size:16px!important;}
  #calendar-departure .loadMore-departure{min-width:0;width:100%;}
  .mobile-booking-form .floatBox.highlight{border-radius:12px!important;}
}

/* ===== V1.2.9 — stable native sticky for tour detail =====
   One sticky implementation only. The sidebar column is a track whose height
   is synced to .mainContent (which ends before #tourRelatedDiv); the booking
   UL itself is sticky inside that track. No scroll transforms/fixed jumping. */

#tourSideBarUL>li:not(:first-child){display:none!important;}
#tourSideBar .requestButtonS,#tourSideBar .bookButtonS{text-transform:none!important;font-size:15px!important;letter-spacing:0!important;}
#tourSideBar .floatBox.highlight{margin-bottom:0!important;}

/* Tour anchor navigation */
.vtt-tour-anchor-placeholder{display:none!important;height:0!important;}
.vtt-tour-anchor-nav{
  position:-webkit-sticky!important;
  position:sticky!important;
  top:0!important;
  z-index:900!important;
  margin:0 0 18px!important;
  width:100%!important;
  background:#fff!important;
  border:1px solid #e7e7ec!important;
  border-radius:12px!important;
  box-shadow:0 4px 14px rgba(31,41,55,.07)!important;
  transform:none!important;
  transition:none!important;
}
body.admin-bar .vtt-tour-anchor-nav{top:32px!important;}
.vtt-tour-anchor-inner{display:flex!important;align-items:center!important;gap:0!important;overflow-x:auto!important;scrollbar-width:none!important;}
.vtt-tour-anchor-inner::-webkit-scrollbar{display:none!important;}
.vtt-tour-anchor-nav a{flex:0 0 auto!important;display:block!important;padding:14px 16px!important;color:#374151!important;text-decoration:none!important;font-size:13px!important;font-weight:600!important;border-bottom:2px solid transparent!important;white-space:nowrap!important;}
.vtt-tour-anchor-nav a:hover,.vtt-tour-anchor-nav a.is-active{color:#ed0080!important;border-bottom-color:#ed0080!important;}

/* Make every ancestor in the tour content chain sticky-safe. */
.content-wrapper,
section.content,
section.content>.col-xs-12,
section.content>.col-xs-12>.row,
.mainContent,
.tourDetailContainer,
.tourDetailMainDiv,
.sideBarContent,
#tourSideBar{
  overflow:visible!important;
}

@media (min-width:992px){
  /* IMPORTANT: sideBarContent gets an explicit height from JS equal to the
     main content column. That gives sticky an actual travel range and ends
     naturally before #tourRelatedDiv. */
  .sideBarContent{
    position:relative!important;
    top:auto!important;
    overflow:visible!important;
    min-height:0!important;
  }
  #tourSideBar{
    position:relative!important;
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    min-height:100%!important;
    overflow:visible!important;
  }
  #tourSideBarUL,
  #tourSideBarUL.affix,
  #tourSideBarUL.affix-top,
  #tourSideBarUL.affix-bottom,
  #tourSideBarUL.vtt-sidebar-fixed,
  #tourSideBarUL.vtt-sidebar-bottom{
    position:-webkit-sticky!important;
    position:sticky!important;
    top:var(--vtt-sidebar-top,48px)!important;
    bottom:auto!important;
    left:auto!important;
    right:auto!important;
    width:100%!important;
    max-width:380px!important;
    margin:0 0 0 auto!important;
    transform:none!important;
    will-change:auto!important;
    transition:none!important;
    z-index:60!important;
  }
  #tourSideBarUL>li{width:100%!important;max-width:100%!important;float:none!important;box-sizing:border-box!important;}
  #tourSideBar .floatBox.highlight{width:100%!important;max-width:100%!important;float:none!important;box-sizing:border-box!important;overflow:hidden!important;}
  #tourSideBar .box-white{float:none!important;box-sizing:border-box!important;max-width:calc(100% - 28px)!important;}
  #tourSideBar .btn-wrap{float:none!important;box-sizing:border-box!important;max-width:calc(100% - 28px)!important;}
  #tourSideBar .requestButtonS,#tourSideBar .bookButtonS{width:100%!important;max-width:100%!important;display:block!important;}
}

@media (max-width:991px){
  .sideBarContent{height:auto!important;min-height:0!important;position:relative!important;top:auto!important;}
  #tourSideBarUL,#tourSideBarUL.affix,#tourSideBarUL.affix-top,#tourSideBarUL.affix-bottom{position:static!important;top:auto!important;max-width:none!important;width:100%!important;margin:0!important;}
  .vtt-tour-anchor-nav{top:0!important;border-radius:10px!important;margin-bottom:12px!important;}
  body.admin-bar .vtt-tour-anchor-nav{top:46px!important;}
  .vtt-tour-anchor-nav a{padding:11px 13px!important;font-size:12px!important;}
}

/* Keep the compact booking-card presentation from the approved V1.2.2 UI. */
#tourSideBar .floatBox.highlight{padding:0!important;border-radius:14px!important;background:#fff!important;border:1px solid #e7e7ec!important;box-shadow:0 8px 24px rgba(31,41,55,.08)!important;}
#tourSideBar .floatBox.highlight>.title{padding:16px 16px 4px!important;margin:0!important;background:#fff!important;font-size:20px!important;line-height:1.25!important;color:#1f2937!important;}
#tourSideBar .floatBox.highlight>.title:after{margin-top:3px!important;}
#tourSideBar .box-white{margin:10px 14px!important;padding:12px 14px!important;width:calc(100% - 28px)!important;min-height:58px!important;border:1px solid #e8e8ee!important;border-radius:10px!important;box-shadow:none!important;}
#tourSideBar .box-white:first-of-type{padding:11px 12px!important;}
#tourSideBar .box-white:first-of-type label{margin:0 0 6px!important;color:#4b5563!important;font-size:12px!important;}
#tourSideBar .box-white:first-of-type .col-xs-4{width:100%!important;}
#tourSideBar .dateDepartured{font-size:14px!important;height:34px!important;}
#tourSideBar .box-white:not(:first-of-type){display:grid!important;grid-template-columns:minmax(84px,1fr) auto auto!important;align-items:center!important;gap:8px!important;}
#tourSideBar .box-white:not(:first-of-type) .text-detail{min-width:0!important;line-height:1.25!important;}
#tourSideBar .box-white:not(:first-of-type) .width-70{display:block!important;width:auto!important;white-space:normal!important;}
#tourSideBar .box-white:not(:first-of-type) .price-color{margin:0!important;white-space:nowrap!important;font-size:11px!important;}
#tourSideBar .box-white:not(:first-of-type) .btn-group{justify-self:end!important;white-space:nowrap!important;}
#tourSideBar .number-button{width:28px!important;height:28px!important;border-radius:50%!important;}
#tourSideBar .priceDiv{margin:12px 14px 4px!important;padding:14px 0 0!important;width:calc(100% - 28px)!important;}
#tourSideBar .btn-wrap{margin:10px 14px 0!important;width:calc(100% - 28px)!important;}
#tourSideBar .requestButtonS,#tourSideBar .bookButtonS{height:44px!important;border-radius:8px!important;background:#ed0080!important;}
#tourSideBar .vtt-booking-help{margin:12px 14px 14px!important;padding-top:10px!important;}
#tourSideBar .vtt-selected-departure{display:none!important;}

/* V1.3.1: sticky containment fix.
   sideBarContent is the track; #tourSideBar must fill that track, otherwise
   the sticky UL is constrained by a parent only as tall as itself. */
@media (min-width:992px){
  .mainContent{position:relative!important;overflow:visible!important;}
  .sideBarContent{overflow:visible!important;}
  .sideBarContent>#tourSideBar{height:100%!important;min-height:100%!important;}
}

/* V1.3.2: root sticky fix.
   The legacy AdminLTE stylesheet sets `.wrapper { overflow:hidden; }`.
   Any overflow-clipping ancestor disables `position: sticky` for descendants.
   Scope the override to single Tour pages only so the rest of the site keeps
   the legacy wrapper behavior. */
body.single-tour .wrapper{
  overflow:visible!important;
}

/* ===== V1.3.3 finishing touches ===== */
/* Remove the old + / arrow affordance at the end of departure-price rows. */
#calendar-departure .vtt-departure-columns,
#calendar-departure .panel-title>a{
  grid-template-columns:128px minmax(180px,1fr) 92px 145px!important;
}
#calendar-departure .panel-title>a:after{
  content:none!important;
  display:none!important;
}

/* Price is recalculated automatically; the legacy “Xem giá” control stays only
   as a non-visual JS trigger so the existing booking logic remains compatible. */
#tourSideBar .vtt-price-auto-trigger,
.mobile-booking-form .vtt-price-auto-trigger{
  display:none!important;
}

/* Cleaner typography for the right booking card. */
#tourSideBar,
#tourSideBar button,
#tourSideBar input,
#tourSideBar select,
#tourSideBar textarea{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
#tourSideBar .floatBox.highlight>.title{
  font-size:18px!important;
  line-height:1.35!important;
  font-weight:700!important;
  letter-spacing:-.15px!important;
}
#tourSideBar .floatBox.highlight>.title:after{
  font-size:12.5px!important;
  line-height:1.45!important;
  font-weight:400!important;
  letter-spacing:0!important;
}
#tourSideBar .box-white label{
  font-size:12.5px!important;
  line-height:1.45!important;
  font-weight:600!important;
}
#tourSideBar .text-detail{
  font-size:13px!important;
  line-height:1.4!important;
  font-weight:600!important;
}
#tourSideBar .number-detail{font-size:13px!important;font-weight:700!important;}
#tourSideBar .priceDiv .labelPrice{font-size:13.5px!important;font-weight:600!important;}
#tourSideBar .priceDiv .totalPrice{font-size:19px!important;line-height:1.2!important;font-weight:750!important;letter-spacing:-.2px!important;}
#tourSideBar .bookButtonS{font-size:13.5px!important;font-weight:700!important;letter-spacing:.15px!important;}

/* Consultation / airport-transfer support beneath the booking action. */
#tourSideBar .vtt-sidebar-support{
  margin:12px 14px 14px!important;
  padding:12px!important;
  border:1px solid #f0d6e5!important;
  border-radius:10px!important;
  background:#fff8fc!important;
  color:#4b5563!important;
  font-size:12.5px!important;
  line-height:1.5!important;
}
#tourSideBar .vtt-sidebar-support-title{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:0 0 10px;
  color:#374151;
  font-weight:600;
}
#tourSideBar .vtt-sidebar-support-title i{color:var(--vtt-brand);margin-top:2px;}
#tourSideBar .vtt-consult-open{
  width:100%;
  min-height:40px;
  border:1px solid var(--vtt-brand);
  border-radius:8px;
  background:#fff;
  color:var(--vtt-brand);
  font-size:12.5px;
  font-weight:700;
  transition:.15s ease;
}
#tourSideBar .vtt-consult-open:hover{background:var(--vtt-brand);color:#fff;}

/* Consultation modal */
.vtt-consult-modal{display:none;position:fixed;inset:0;z-index:10050;padding:18px;align-items:center;justify-content:center;}
.vtt-consult-modal.is-open{display:flex;}
.vtt-consult-backdrop{position:absolute;inset:0;background:rgba(17,24,39,.58);}
.vtt-consult-dialog{position:relative;z-index:1;width:min(520px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:14px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.22);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;}
.vtt-consult-dialog h3{margin:0 34px 6px 0;color:#1f2937;font-size:21px;line-height:1.3;font-weight:750;}
.vtt-consult-dialog>p{margin:0 0 16px;color:#6b7280;font-size:13px;line-height:1.55;}
.vtt-consult-close{position:absolute;right:14px;top:12px;width:34px;height:34px;border:0;background:transparent;color:#6b7280;font-size:28px;line-height:30px;font-weight:300;}
.vtt-consult-form{display:grid;gap:12px;}
.vtt-consult-form label{margin:0;color:#374151;font-size:12.5px;line-height:1.4;font-weight:600;}
.vtt-consult-form label span{color:var(--vtt-brand);}
.vtt-consult-form input,.vtt-consult-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px;border:1px solid #dfe3e8;border-radius:8px;background:#fff;color:#1f2937;font-size:14px;font-weight:400;outline:0;transition:.15s ease;}
.vtt-consult-form input{height:42px;padding:0 12px;}
.vtt-consult-form textarea{padding:10px 12px;resize:vertical;}
.vtt-consult-form input:focus,.vtt-consult-form textarea:focus{border-color:var(--vtt-brand);box-shadow:0 0 0 3px rgba(237,0,128,.08);}
.vtt-consult-submit{height:44px;border:0;border-radius:8px;background:var(--vtt-brand);color:#fff;font-size:13px;font-weight:750;letter-spacing:.15px;}
.vtt-consult-submit:hover{background:var(--vtt-brand-dark);}
.vtt-consult-message{margin:0 0 14px;padding:10px 12px;border-radius:8px;font-size:12.5px;line-height:1.45;}
.vtt-consult-message.success{background:#ecf9f0;border:1px solid #c9ead3;color:#1b6e39;}
.vtt-consult-message.error{background:#fff2f2;border:1px solid #f0c8c8;color:#9b2c2c;}
body.vtt-consult-lock{overflow:hidden!important;}

@media (max-width:767px){
  #calendar-departure .panel-title>a{grid-template-columns:1fr!important;}
  #tourSideBar .floatBox.highlight>.title{font-size:17px!important;}
  .vtt-consult-modal{padding:10px;align-items:flex-end;}
  .vtt-consult-dialog{width:100%;max-height:88vh;border-radius:14px 14px 8px 8px;padding:20px 16px;}
}

/* ===== V1.3.4: remove legacy FontAwesome +/- injected by old tourSchedule CSS =====
   Legacy theme rule targets `.tourSchedule .panel-title > a::before` and adds
   a FontAwesome plus/minus icon. The modern departure row does not use it. */
#calendar-departure .tourSchedule .panel-default .panel-heading .panel-title > a::before,
#calendar-departure .tourSchedule .panel-default .panel-heading .panel-title > a:before,
#calendar-departure .panel-title > a::before,
#calendar-departure .panel-title > a:before{
  content:none!important;
  display:none!important;
  width:0!important;
  height:0!important;
  padding:0!important;
  margin:0!important;
}


/* ===== V1.3.5: departure row state icon + retire legacy mobile price box ===== */
/* New departure list is the single source of truth on mobile. The old
   `.mobile-booking-form` duplicated date/price controls and is intentionally
   removed from the UI. Booking still uses the main booking sidebar/form. */
@media (max-width:767px){
  .mobile-booking-form{display:none!important;}

  #calendar-departure .panel-title>a{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto 24px!important;
    column-gap:8px!important;
    align-items:center!important;
    padding:13px 12px!important;
    min-height:54px!important;
  }
  #calendar-departure .vtt-departure-date{
    grid-column:1!important;
    grid-row:1!important;
    font-size:13.5px!important;
    white-space:nowrap!important;
  }
  #calendar-departure .vtt-departure-feature,
  #calendar-departure .vtt-departure-seats{
    display:none!important;
  }
  #calendar-departure .vtt-departure-price{
    grid-column:2!important;
    grid-row:1!important;
    margin:0!important;
    text-align:right!important;
  }
  #calendar-departure .vtt-departure-price .col-price{
    font-size:14.5px!important;
    white-space:nowrap!important;
  }
}

/* Status affordance sits immediately after price:
   unselected row = > ; selected row = ✓ */
#calendar-departure .panel-title>a::after{
  content:">"!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:22px!important;
  height:22px!important;
  padding:0!important;
  margin:0!important;
  color:var(--vtt-brand)!important;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
  font-size:18px!important;
  line-height:1!important;
  font-weight:700!important;
  text-align:center!important;
  grid-column:5!important;
}
#calendar-departure .vtt-departure-row.vtt-is-selected .panel-title>a::after{
  content:"✓"!important;
  border:1.5px solid var(--vtt-brand)!important;
  border-radius:50%!important;
  font-size:13px!important;
  font-weight:800!important;
}
@media (max-width:767px){
  #calendar-departure .panel-title>a::after{
    grid-column:3!important;
    grid-row:1!important;
    align-self:center!important;
  }
}

/* V1.3.6 — departure rows are selectors only; legacy inline price accordion is retired. */
#calendar-departure .panel-collapse,
#calendar-departure .panel-body{
  display:none!important;
}
@media (max-width:767px){
  #calendar-departure .panel-collapse,
  #calendar-departure .panel-body{
    display:none!important;
    height:0!important;
    max-height:0!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    overflow:hidden!important;
  }
}

/* V1.3.7: remove legacy bottom "DAT TOUR" bar.
   Booking is handled by the modern departure/booking UI. */
.fixed-footer,
.fixed-footer-book-button{
  display:none!important;
}

/* V1.3.8: on phones, reuse the real booking sidebar inline below the
   departure list (same behaviour as the reference mobile booking flow).
   No duplicate legacy mobile price table is created. */
@media (max-width:767px){
  .sideBarContent{display:none!important;}
  .vtt-mobile-booking-slot{
    display:none;
    width:100%;
    margin:14px 0 18px;
    padding:0;
    clear:both;
  }
  .vtt-mobile-booking-slot.is-open{display:block;}
  .vtt-mobile-booking-slot #tourSideBar{
    display:block!important;
    position:static!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  .vtt-mobile-booking-slot #tourSideBarUL,
  .vtt-mobile-booking-slot #tourSideBarUL.affix,
  .vtt-mobile-booking-slot #tourSideBarUL.affix-top,
  .vtt-mobile-booking-slot #tourSideBarUL.affix-bottom{
    display:block!important;
    position:static!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    transform:none!important;
  }
  .vtt-mobile-booking-slot #tourSideBarUL>li{width:100%!important;}
  .vtt-mobile-booking-slot #tourSideBar .floatBox.highlight{
    margin:0!important;
    border-radius:12px!important;
    box-shadow:0 4px 16px rgba(31,41,55,.07)!important;
  }
  .vtt-mobile-booking-slot #tourSideBar .floatBox.highlight>.title{
    padding:14px 14px 3px!important;
    font-size:17px!important;
  }
  .vtt-mobile-booking-slot #tourSideBar .box-white{
    margin:8px 12px!important;
    width:calc(100% - 24px)!important;
    max-width:calc(100% - 24px)!important;
    padding:10px 12px!important;
    min-height:54px!important;
  }
  .vtt-mobile-booking-slot #tourSideBar .box-white:not(:first-of-type){
    grid-template-columns:minmax(92px,1fr) auto auto!important;
  }
  .vtt-mobile-booking-slot #tourSideBar .priceDiv{
    margin:10px 12px 4px!important;
    width:calc(100% - 24px)!important;
  }
  .vtt-mobile-booking-slot #tourSideBar .btn-wrap{
    margin:8px 12px 0!important;
    width:calc(100% - 24px)!important;
    max-width:calc(100% - 24px)!important;
  }
  .vtt-mobile-booking-slot #tourSideBar .vtt-sidebar-support{
    margin:10px 12px 12px!important;
  }
  .vtt-mobile-booking-slot #tourSideBar .bookButtonS{
    display:block!important;
  }
}

/* V1.3.9 — departures with 0 seats are closed and cannot be selected. */
#calendar-departure .vtt-departure-row.vtt-is-closed{
  background:#f5f6f7!important;
  opacity:.62;
  box-shadow:none!important;
}
#calendar-departure .vtt-departure-row.vtt-is-closed:hover{
  background:#f5f6f7!important;
}
#calendar-departure .vtt-departure-row.vtt-is-closed .panel-title>a{
  cursor:not-allowed!important;
  pointer-events:none!important;
  color:#8a9099!important;
}
#calendar-departure .vtt-departure-row.vtt-is-closed .vtt-departure-date,
#calendar-departure .vtt-departure-row.vtt-is-closed .vtt-departure-feature,
#calendar-departure .vtt-departure-row.vtt-is-closed .vtt-departure-price .col-price{
  color:#8a9099!important;
}
#calendar-departure .vtt-departure-row.vtt-is-closed .vtt-departure-seats{
  color:#9b1c1c!important;
  font-weight:700!important;
}
#calendar-departure .vtt-departure-row.vtt-is-closed .panel-title>a::after{
  content:"×"!important;
  color:#9ca3af!important;
}
@media (max-width:767px){
  #calendar-departure .vtt-departure-row.vtt-is-closed .vtt-departure-seats{
    display:block!important;
    color:#9b1c1c!important;
  }
}

/* VTT 1.4 - Tour summary metadata: compact, scannable, less visual noise */
.vtt-tour-summary-wrap{padding-left:15px!important;padding-right:15px!important;}
.vtt-tour-summary{margin-top:2px;padding:14px 16px;border:1px solid #e8edf3;border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(25,45,70,.05);font-family:"Segoe UI",Roboto,Arial,sans-serif;color:#273142;}
.vtt-tour-summary__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;}
.vtt-tour-summary__item{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:8px 10px;border:1px solid #eef1f5;border-radius:9px;background:#fbfcfe;}
.vtt-tour-summary__item--route{grid-column:1/-1;}
.vtt-tour-summary__icon{display:inline-flex;flex:0 0 25px;width:25px;height:25px;align-items:center;justify-content:center;margin-top:1px;border-radius:7px;background:#fff0f7;color:#ed0080;font-size:13px;}
.vtt-tour-summary__body{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px;line-height:1.35;}
.vtt-tour-summary__body small{color:#7b8494;font-size:11px;font-weight:500;line-height:1.2;}
.vtt-tour-summary__body strong{color:#263445;font-size:13px;font-weight:650;line-height:1.4;overflow-wrap:anywhere;}
.vtt-tour-summary__transport{display:flex!important;align-items:center;flex-wrap:wrap;gap:5px 10px;}
.vtt-tour-summary__transport>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;}
.vtt-tour-summary__transport em{font-style:normal;font-weight:650;}
.vtt-tour-summary__transport .icn{margin:0!important;}
.vtt-tour-summary__promos{display:grid;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed #e5e9ef;}
.vtt-tour-summary__promo{display:flex;align-items:flex-start;gap:8px;color:#d90073;font-size:13px;font-weight:600;line-height:1.45;}
.vtt-tour-summary__promo i{flex:0 0 auto;margin-top:3px;color:#ed0080;}
.vtt-tour-summary__promo p{margin:0;}
@media (max-width:991px){.vtt-tour-summary__grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:767px){
  .vtt-tour-summary-wrap{padding-left:0!important;padding-right:0!important;margin-bottom:12px!important;}
  .vtt-tour-summary{padding:10px;border-radius:10px;box-shadow:none;}
  .vtt-tour-summary__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  .vtt-tour-summary__item{gap:7px;padding:7px 8px;border-radius:8px;}
  .vtt-tour-summary__item--route{grid-column:1/-1;}
  .vtt-tour-summary__icon{flex-basis:22px;width:22px;height:22px;font-size:12px;}
  .vtt-tour-summary__body small{font-size:10px;}
  .vtt-tour-summary__body strong{font-size:12px;}
  .vtt-tour-summary__promos{margin-top:8px;padding-top:8px;}
  .vtt-tour-summary__promo{font-size:12px;}
}
@media (max-width:420px){
  .vtt-tour-summary__grid{grid-template-columns:1fr 1fr;}
  .vtt-tour-summary__item--route{grid-column:1/-1;}
}

/* VTT 1.4.1 - Fix legacy tour ribbon turning into a full-width white bar */
.tourHeaderCover2{position:relative!important;}
.tourHeaderCover2 .vtt-tour-ribbon-wrap{
  position:absolute!important;
  top:0!important;
  left:0!important;
  width:auto!important;
  height:auto!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  z-index:12!important;
  pointer-events:none!important;
}
.tourHeaderCover2 .vtt-tour-ribbon-wrap .ribbonContainerInner{
  padding:0!important;
  width:auto!important;
  height:auto!important;
  background:transparent!important;
}
.tourHeaderCover2 .vtt-tour-ribbon-wrap .v-ribbon{
  position:relative!important;
  width:auto!important;
  height:auto!important;
  background:transparent!important;
}
.tourHeaderCover2 .vtt-tour-ribbon-wrap .v-ribbon span{
  position:relative!important;
  top:10px!important;
  left:0!important;
  display:inline-flex!important;
  align-items:center!important;
  width:auto!important;
  max-width:360px!important;
  min-height:30px!important;
  margin:0!important;
  padding:6px 12px!important;
  border-radius:0 6px 6px 0!important;
  background:#ed0080!important;
  color:#fff!important;
  box-shadow:0 2px 8px rgba(0,0,0,.12)!important;
  white-space:normal!important;
  line-height:1.25!important;
}
.tourHeaderCover2 .vtt-tour-ribbon-wrap .v-ribbon span:before,
.tourHeaderCover2 .vtt-tour-ribbon-wrap .v-ribbon span:after{display:none!important;content:none!important;}

/* VTT 1.4.2 - Keep related tours inside the same centered content width.
   #tourRelatedDiv sits outside the Bootstrap .container in legacy markup,
   so after enabling overflow:visible for sticky it can stretch to viewport width. */
body.single-tour #tourRelatedDiv.tourRelatedContainer{
    float:none !important;
    clear:both !important;
    width:calc(100% - 30px) !important;
    max-width:1170px !important;
    margin:8px auto 10px !important;
}
body.single-tour #tourRelatedDiv > .panel-group,
body.single-tour #tourRelatedDiv > .panel-group > .panel{
    width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
}
body.single-tour #tourRelatedDiv .panel-body{
    overflow:hidden;
}
@media (max-width:767px){
    body.single-tour #tourRelatedDiv.tourRelatedContainer{
        width:100% !important;
        max-width:none !important;
        margin:8px 0 10px !important;
        padding-left:10px !important;
        padding-right:10px !important;
    }
}

/* ===== V1.4.3 — anchor nav fixed-on-scroll, no blank white bar ===== */
.vtt-tour-anchor-nav{
  background:#fff7fb!important;
  border:1px solid #f3c6dc!important;
  box-shadow:0 4px 14px rgba(237,0,128,.08)!important;
  overflow:hidden!important;
}
.vtt-tour-anchor-nav.is-fixed{
  position:fixed!important;
  top:var(--vtt-anchor-fixed-top,0px)!important;
  left:var(--vtt-anchor-fixed-left,0px)!important;
  width:var(--vtt-anchor-fixed-width,auto)!important;
  z-index:9990!important;
  margin:0!important;
  border-radius:0 0 12px 12px!important;
  transform:translateZ(0)!important;
}
.vtt-tour-anchor-placeholder{
  display:none;
  width:100%;
}
.vtt-tour-anchor-placeholder.is-active{
  display:block!important;
}
.vtt-tour-anchor-inner{background:transparent!important;}
.vtt-tour-anchor-nav a{
  background:transparent!important;
  color:#374151!important;
}
.vtt-tour-anchor-nav a:hover,
.vtt-tour-anchor-nav a.is-active{
  color:#ed0080!important;
  background:#fff!important;
}
@media (max-width:991px){
  .vtt-tour-anchor-nav.is-fixed{
    left:0!important;
    width:100%!important;
    border-radius:0!important;
  }
}

/* ===== V1.4.4 — mobile: pin logo/menu, anchor nav directly underneath ===== */
@media (max-width:991px){
  body.single-tour .navbar.vtt-mobile-header-fixed{
    position:fixed!important;
    top:var(--vtt-mobile-header-top,0px)!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    margin:0!important;
    z-index:9995!important;
    background:#fff!important;
    box-shadow:0 2px 10px rgba(15,23,42,.10)!important;
  }
  body.single-tour .vtt-mobile-header-placeholder{
    display:none;
    width:100%;
  }
  body.single-tour .vtt-mobile-header-placeholder.is-active{
    display:block!important;
  }
  body.single-tour .vtt-tour-anchor-nav.is-fixed{
    left:0!important;
    width:100%!important;
    border-radius:0!important;
    z-index:9990!important;
  }
}


/* ===== V1.4.5 — mobile anchor exactly like reference: header scrolls away, tabs pin at viewport top ===== */
@media (max-width:991px){
  body.single-tour .navbar.vtt-mobile-header-fixed{
    position:relative!important;
    top:auto!important; left:auto!important; right:auto!important; width:auto!important;
    box-shadow:none!important;
  }
  body.single-tour .vtt-mobile-header-placeholder,
  body.single-tour .vtt-mobile-header-placeholder.is-active{
    display:none!important; height:0!important;
  }
  body.single-tour .vtt-tour-anchor-nav.is-fixed{
    top:var(--vtt-anchor-fixed-top,0px)!important;
    left:0!important; right:0!important; width:100%!important;
    border-radius:0!important;
    margin:0!important;
    z-index:9990!important;
    box-shadow:0 2px 10px rgba(15,23,42,.10)!important;
  }
  body.single-tour .vtt-tour-anchor-nav.is-fixed .vtt-tour-anchor-inner{
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  body.single-tour .vtt-tour-anchor-nav.is-fixed .vtt-tour-anchor-inner::-webkit-scrollbar{display:none;}
}

/* ===== V1.4.6 — mobile anchor flush to viewport top (no phantom admin-bar gap) ===== */
@media (max-width:991px){
  body.single-tour .vtt-tour-anchor-nav.is-fixed{
    top:0!important;
    z-index:10020!important;
  }
}

/* ===== V1.5.7 — departure load-more position, overflow-safe content, lighter price type ===== */
/* Keep the "Xem thêm" control in normal flow, full-width and above following cards. */
#calendar-departure .vtt-departure-more-wrap{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  clear:both!important;
  float:none!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  justify-content:center!important;
  margin:12px 0 0!important;
  padding:0!important;
}
#calendar-departure .vtt-departure-more-wrap[style*="display: none"]{display:none!important;}
#calendar-departure .loadMore-departure{
  position:relative!important;
  z-index:3!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:42px!important;
  margin:0!important;
  border-radius:10px!important;
  box-sizing:border-box!important;
}

/* Text inside the main tour-content cards must wrap inside its own column. */
#tour-highlights,
#tour-schedule,
#calendar-departure,
#ttour-services,
#tour-surcharge,
#tour-cancellation-rules,
.tour-callback-box,
.tour-info-card,
.tour-highlights-box,
.tourScheduleContainer{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
#tour-highlights *,
#tour-schedule *,
#ttour-services *,
#tour-surcharge *,
#tour-cancellation-rules *,
.tour-callback-box *{
  max-width:100%;
  box-sizing:border-box;
  overflow-wrap:anywhere;
}
.tour-info-card-content,
.tour-highlights-panel,
.tourSchedule .panel-body,
.tour-callback-box p{
  white-space:normal!important;
  line-height:1.62!important;
}

/* A calmer price hierarchy: still prominent, but not visually heavy. */
#calendar-departure .vtt-departure-price .col-price{
  font-weight:650!important;
  letter-spacing:-.05px!important;
}
#tourSideBar .priceDiv .totalPrice,
.vtt-mobile-booking-slot #tourSideBar .priceDiv .totalPrice{
  font-weight:650!important;
  letter-spacing:-.1px!important;
}

@media (max-width:767px){
  #calendar-departure .vtt-departure-more-wrap{margin-top:10px!important;}
  #calendar-departure .loadMore-departure{height:40px!important;font-size:12.5px!important;}
  #calendar-departure .vtt-departure-price .col-price{font-weight:650!important;}
}

/* ===== V1.5.8 — compact departure load-more button ===== */
#calendar-departure .vtt-departure-more-wrap{
  justify-content:center!important;
  padding:0 12px!important;
}
#calendar-departure .loadMore-departure{
  width:auto!important;
  min-width:220px!important;
  max-width:100%!important;
  height:38px!important;
  padding:0 18px!important;
  border-radius:999px!important;
  font-size:12.5px!important;
  line-height:1!important;
}
@media (max-width:767px){
  #calendar-departure .loadMore-departure{
    width:auto!important;
    min-width:0!important;
    max-width:calc(100% - 24px)!important;
    height:36px!important;
    padding:0 16px!important;
    font-size:12px!important;
  }
}
