:root {
  --single-navy: #061a2e;
  --single-blue: #080596;
  --single-gold: #d6aa28;
  --single-gold-dark: #ad8215;
  --single-ink: #07182b;
  --single-muted: #5f7189;
  --single-surface: #f1f3f5;
  --single-border: #d5dbe3;
}

/* Light, high-contrast presentation for the cruise booking flow. */
body.single-du-thuyen #roomOrderModal {
  --booking-navy: #08233d;
  --booking-navy-soft: #eef4f8;
  --booking-panel: #ffffff;
  --booking-gold: #c99712;
  --booking-border: #d8e1e9;
  color: #162b3d;
}

body.single-du-thuyen #roomOrderModal .modal-content {
  background: #f4f7fa !important;
  color: #162b3d !important;
}

body.single-du-thuyen #roomOrderModal .order-header {
  border-bottom-color: #d8e1e9 !important;
  background: #ffffff !important;
  backdrop-filter: none;
}

body.single-du-thuyen #roomOrderModal .order-header .steps::before { background: #cbd5df !important; }
body.single-du-thuyen #roomOrderModal .order-header .step .circle { border-color: #b8c6d3 !important; background: #eff4f8 !important; color: #557086 !important; }
body.single-du-thuyen #roomOrderModal .order-header .step .label { color: #64748b !important; }
body.single-du-thuyen #roomOrderModal .order-header .step.active .label,
body.single-du-thuyen #roomOrderModal .order-header .step.completed .label { color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .order-header .close-order { border-color: #cbd5df !important; background-color: #f8fafc !important; filter: none; }

body.single-du-thuyen #roomOrderModal .order-body { background: #f4f7fa !important; }
body.single-du-thuyen #roomOrderModal .order-hero { border-bottom-color: #d8e1e9 !important; }

body.single-du-thuyen #roomOrderModal .panel,
body.single-du-thuyen #roomOrderModal .order-summary {
  color: #162b3d !important;
  border-color: var(--booking-border) !important;
  background: #ffffff !important;
  box-shadow: 0 8px 24px rgba(15, 45, 70, .08) !important;
  backdrop-filter: none;
}

body.single-du-thuyen #roomOrderModal #roomAddonPanel { background: #f8fafc !important; }
body.single-du-thuyen #roomOrderModal .panel-title { border-bottom-color: #dce5ed !important; }
body.single-du-thuyen #roomOrderModal .ticket-row,
body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row {
  color: #162b3d !important;
  border-color: #d7e1e9 !important;
  background: #f7fafc !important;
}
body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row .ticket-qty { border-top-color: #dce5ed !important; }

body.single-du-thuyen #roomOrderModal label,
body.single-du-thuyen #roomOrderModal .ticket-name,
body.single-du-thuyen #roomOrderModal .form-label,
body.single-du-thuyen #roomOrderModal .form-check-label,
body.single-du-thuyen #roomOrderModal .summary-row,
body.single-du-thuyen #roomOrderModal .summary-row span,
body.single-du-thuyen #roomOrderModal .ticket-qty .qty { color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .ticket-desc,
body.single-du-thuyen #roomOrderModal .text-muted,
body.single-du-thuyen #roomOrderModal small,
body.single-du-thuyen #roomOrderModal .svc-info,
body.single-du-thuyen #roomOrderModal .summary-amenities,
body.single-du-thuyen #roomOrderModal .summary-amenities span,
body.single-du-thuyen #roomOrderModal .summary-amenities li { color: #5e7182 !important; }

body.single-du-thuyen #roomOrderModal input,
body.single-du-thuyen #roomOrderModal select,
body.single-du-thuyen #roomOrderModal textarea { border-color: #cbd8e3 !important; background: #ffffff !important; color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .ticket-qty .btn-minus,
body.single-du-thuyen #roomOrderModal .ticket-qty .btn-plus { background: #ffffff !important; color: #162b3d !important; }

body.single-du-thuyen #roomOrderModal .summary-amenities { color: #5e7182 !important; }
body.single-du-thuyen #roomOrderModal .summary-row { border-bottom-color: #dce5ed !important; }
body.single-du-thuyen #roomOrderModal .order-actions { border-top-color: #d8e1e9 !important; background: linear-gradient(180deg, rgba(244,247,250,.78), #ffffff 28%) !important; }
body.single-du-thuyen #roomOrderModal .order-actions .btn-secondary { border-color: #aebdcc !important; background: #ffffff !important; color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .field-error { color: #c2410c !important; }

body.single-du-thuyen #roomOrderModal .success-box { background: #ffffff !important; color: #162b3d !important; box-shadow: 0 16px 40px rgba(15,45,70,.12) !important; }

/* Stronger contrast for text and card boundaries on the light booking flow. */
body.single-du-thuyen #roomOrderModal {
  --booking-border: #afc1d0;
}
body.single-du-thuyen #roomOrderModal .panel,
body.single-du-thuyen #roomOrderModal .order-summary {
  border-width: 1.5px !important;
  box-shadow: 0 8px 22px rgba(15, 45, 70, .10) !important;
}
body.single-du-thuyen #roomOrderModal #roomAddonPanel { border-color: #d5ae44 !important; }
body.single-du-thuyen #roomOrderModal .ticket-row,
body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row {
  border-color: #bfd0dd !important;
  border-width: 1.5px !important;
  background: #f5f9fc !important;
}
body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row .ticket-name,
body.single-du-thuyen #roomOrderModal .ticket-name,
body.single-du-thuyen #roomOrderModal .summary-row,
body.single-du-thuyen #roomOrderModal .summary-row span,
body.single-du-thuyen #roomOrderModal .summary-row strong,
body.single-du-thuyen #roomOrderModal .summary-amenities,
body.single-du-thuyen #roomOrderModal .summary-amenities span,
body.single-du-thuyen #roomOrderModal .summary-amenities li {
  color: #213d56 !important;
}
body.single-du-thuyen #roomOrderModal .ticket-desc,
body.single-du-thuyen #roomOrderModal .text-muted,
body.single-du-thuyen #roomOrderModal small,
body.single-du-thuyen #roomOrderModal .svc-info {
  color: #405c74 !important;
}
body.single-du-thuyen #roomOrderModal .panel-title { border-bottom-color: #bfd0dd !important; }
body.single-du-thuyen #roomOrderModal .summary-row { border-bottom-color: #c8d6e1 !important; }

/* Final text contrast override on the white booking surface. */
body.single-du-thuyen #roomOrderModal,
body.single-du-thuyen #roomOrderModal .panel,
body.single-du-thuyen #roomOrderModal .order-summary,
body.single-du-thuyen #roomOrderModal label,
body.single-du-thuyen #roomOrderModal .ticket-name,
body.single-du-thuyen #roomOrderModal .form-label,
body.single-du-thuyen #roomOrderModal .form-check-label,
body.single-du-thuyen #roomOrderModal .summary-row,
body.single-du-thuyen #roomOrderModal .summary-row span,
body.single-du-thuyen #roomOrderModal .summary-row strong,
body.single-du-thuyen #roomOrderModal .summary-amenities,
body.single-du-thuyen #roomOrderModal .summary-amenities span,
body.single-du-thuyen #roomOrderModal .summary-amenities li,
body.single-du-thuyen #roomOrderModal .ticket-qty .qty,
body.single-du-thuyen #roomOrderModal .order-header .step.active .label,
body.single-du-thuyen #roomOrderModal .order-header .step.completed .label { color: #0b0f14 !important; }
body.single-du-thuyen #roomOrderModal .ticket-desc,
body.single-du-thuyen #roomOrderModal .text-muted,
body.single-du-thuyen #roomOrderModal small,
body.single-du-thuyen #roomOrderModal .svc-info,
body.single-du-thuyen #roomOrderModal .order-header .step .label { color: #27323d !important; }

/* Use near-black copy on the white booking surface for maximum readability. */
body.single-du-thuyen #roomOrderModal,
body.single-du-thuyen #roomOrderModal .panel,
body.single-du-thuyen #roomOrderModal .order-summary,
body.single-du-thuyen #roomOrderModal label,
body.single-du-thuyen #roomOrderModal .ticket-name,
body.single-du-thuyen #roomOrderModal .form-label,
body.single-du-thuyen #roomOrderModal .form-check-label,
body.single-du-thuyen #roomOrderModal .summary-row,
body.single-du-thuyen #roomOrderModal .summary-row span,
body.single-du-thuyen #roomOrderModal .summary-row strong,
body.single-du-thuyen #roomOrderModal .summary-amenities,
body.single-du-thuyen #roomOrderModal .summary-amenities span,
body.single-du-thuyen #roomOrderModal .summary-amenities li,
body.single-du-thuyen #roomOrderModal .ticket-qty .qty,
body.single-du-thuyen #roomOrderModal .order-header .step.active .label,
body.single-du-thuyen #roomOrderModal .order-header .step.completed .label {
  color: #0b0f14 !important;
}
body.single-du-thuyen #roomOrderModal .ticket-desc,
body.single-du-thuyen #roomOrderModal .text-muted,
body.single-du-thuyen #roomOrderModal small,
body.single-du-thuyen #roomOrderModal .svc-info,
body.single-du-thuyen #roomOrderModal .order-header .step .label {
  color: #27323d !important;
}

body.single-du-thuyen {
  background: var(--single-surface);
  color: var(--single-ink);
}

body.single-du-thuyen header.header-child {
  position: relative;
  z-index: 80;
  height: 80px;
  padding: 15px 0 !important;
  border: 0;
  background: var(--single-navy) !important;
}

body.single-du-thuyen header.header-child .container,
body.single-du-thuyen header.header-child .container-fluid,
body.single-du-thuyen .cruise-detail-search-shell > .container,
body.single-du-thuyen > .breadcrumb-nav .container,
.vds-cruise-single .container {
  width: min(100% - 40px, 1458px);
  max-width: 1458px;
}

body.single-du-thuyen header.header-child .inner-header {
  height: 50px;
}

body.single-du-thuyen header.header-child .container-fluid {
  max-width: 1458px;
  margin: 0 auto;
  padding: 0 !important;
}

body.single-du-thuyen header.header-child .logo,
body.single-du-thuyen header.header-child .logo a,
body.single-du-thuyen header.header-child .logo span,
body.single-du-thuyen header.header-child .btn-request-quote {
  flex-shrink: 0;
  white-space: nowrap;
}

body.single-du-thuyen header.header-child .main-menu > ul {
  display: flex;
  align-items: center;
  gap: 30px;
  margin: 0;
  padding: 0;
}

body.single-du-thuyen header.header-child .main-menu {
  display: flex !important;
  align-items: center;
  gap: 30px !important;
}

body.single-du-thuyen header.header-child .main-menu > a {
  padding: 15px 1px 11px;
  border-bottom: 2px solid transparent;
  color: #f7f7f5 !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}

body.single-du-thuyen header.header-child .main-menu > a.current-menu-item {
  border-bottom-color: var(--single-gold);
  color: var(--single-gold) !important;
}

body.single-du-thuyen header.header-child .main-menu > ul > li > a {
  padding: 12px 2px;
  color: #f7f7f5 !important;
  font-size: 15px;
  font-weight: 700;
}

body.single-du-thuyen header.header-child .main-menu .current-menu-item > a {
  border-bottom: 2px solid var(--single-gold);
  color: var(--single-gold) !important;
}

body.single-du-thuyen header.header-child .btn-request-quote {
  display: inline-flex !important;
  min-height: 44px;
  align-items: center;
  padding: 8px 24px !important;
  background: var(--single-gold) !important;
  color: var(--single-ink) !important;
}

body.single-du-thuyen header.header-child .login-register a {
  display: grid !important;
  width: 52px;
  height: 44px;
  padding: 0 !important;
  overflow: hidden;
  place-items: center;
  color: transparent !important;
  font-size: 0;
  background: var(--single-blue) !important;
}

body.single-du-thuyen header.header-child .login-register a::before {
  content: "\f2bd";
  color: var(--single-gold);
  font-family: "Font Awesome 6 Free";
  font-size: 22px;
  font-weight: 400;
}

body.single-du-thuyen header.header-child .header-services {
  display: none !important;
}

.cruise-detail-search-shell {
  position: relative;
  z-index: 20;
  padding: 0 0 22px;
  background: var(--single-navy);
}

.cruise-detail-search-shell .cruise-search-box {
  padding: 0 24px 18px;
  border: 1px solid rgba(214, 170, 40, .35);
  border-radius: 0 0 14px 14px;
  background: transparent;
  box-shadow: none;
}

.cruise-detail-search-shell .cruise-search-tabs {
  display: flex;
  gap: 8px;
  margin: 0 0 17px;
  padding: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .18);
}

.cruise-detail-search-shell .cruise-search-tabs a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 2px solid transparent;
  color: #c7cfda;
  font-weight: 700;
}

.cruise-detail-search-shell .cruise-search-tabs a.active {
  border-bottom-color: var(--single-gold);
  color: var(--single-gold);
}

.cruise-detail-search-shell .search-row {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr 190px;
  gap: 13px;
  align-items: end;
}

.cruise-detail-search-shell .field {
  position: relative;
}

.cruise-detail-search-shell .field.du-thuyen-only {
  display: block !important;
}

.cruise-detail-search-shell .field-label {
  display: block;
  margin: 0 0 6px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

.cruise-detail-search-shell .form-control,
.cruise-detail-search-shell .guest-trigger,
.cruise-detail-search-shell .btn-search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 50px !important;
  margin: 0 !important;
  border-radius: 6px !important;
}

.cruise-detail-search-shell .guest-trigger {
  display: flex;
  align-items: center;
  text-align: left;
}

.cruise-detail-search-shell .btn-search {
  border: 0;
  background: var(--single-gold);
  color: var(--single-ink);
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}

.cruise-detail-search-shell .guest-popup,
.cruise-detail-search-shell .autocomplete-list {
  position: absolute;
  top: calc(100% + 7px);
  right: 0;
  left: 0;
  z-index: 100;
  padding: 14px;
  border: 1px solid var(--single-border);
  border-radius: 8px;
  background: #fff;
  color: var(--single-ink);
  box-shadow: 0 16px 32px rgba(0, 0, 0, .2);
}

.cruise-detail-search-shell .autocomplete-list:empty {
  display: none !important;
}

.cruise-detail-search-shell .guest-popup:not(.active) {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.cruise-detail-search-shell .guest-row,
.cruise-detail-search-shell .guest-row .controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

body.single-du-thuyen > .breadcrumb-nav {
  height: 76px;
  padding: 0;
  border: 0;
  background: #f4f6f8;
}

body.single-du-thuyen > .breadcrumb-nav .breadcrumb {
  height: 76px;
  align-items: center;
  margin: 0;
}

body.single-du-thuyen > .breadcrumb-nav a,
body.single-du-thuyen > .breadcrumb-nav .breadcrumb-item {
  color: #5a6f89;
  font-size: 15px;
}

.vds-cruise-single .product-detail {
  background: var(--single-surface);
}

.vds-cruise-single .product-header {
  padding: 4px 0 13px;
  background: #f4f6f8;
}

.vds-cruise-single .product-header h1 {
  margin: 0 0 14px;
  color: var(--single-gold) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(34px, 3vw, 43px);
  font-weight: 500 !important;
  line-height: 1.15;
}

.vds-cruise-single .product-header .product-meta,
.vds-cruise-single .product-header .rating,
.vds-cruise-single .product-header .meta-info,
.vds-cruise-single .product-header .meta-location-wrap {
  display: flex;
  align-items: center;
}

.vds-cruise-single .product-header .product-meta {
  gap: 20px;
}

.vds-cruise-single .product-header .rating {
  gap: 9px;
}

.vds-cruise-single .product-header .score {
  display: grid;
  min-width: 38px;
  height: 36px;
  place-items: center;
  border-radius: 7px;
  background: var(--single-blue);
  color: #fff;
  font-size: 18px;
  font-weight: 800;
}

.vds-cruise-single .product-header .rating-text {
  color: var(--single-blue);
  font-weight: 800;
}

.vds-cruise-single .product-header .reviews,
.vds-cruise-single .product-header .meta-info {
  color: var(--single-muted);
}

.vds-cruise-single .product-header .stars {
  display: none;
}

.vds-cruise-single .product-header .wishlist-btn {
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #64748b;
}

.vds-cruise-single .product-header .meta-location-wrap {
  min-width: 0;
  gap: 8px;
}

.vds-cruise-single .product-header .meta-location-text {
  max-width: 475px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vds-cruise-single .product-header .view-map {
  color: var(--single-blue);
  font-weight: 700;
  text-decoration: underline;
}

.vds-cruise-single .gallery-section {
  margin: 0;
  padding: 0 0 22px;
  background: #f4f6f8;
}

.vds-cruise-single .gallery-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  height: 500px;
  overflow: hidden;
  border-radius: 9px;
}

.vds-cruise-single .gallery-main,
.vds-cruise-single .gallery-main img,
.vds-cruise-single .gallery-thumbs,
.vds-cruise-single .gallery-thumbs .thumb,
.vds-cruise-single .gallery-thumbs img {
  width: 100%;
  height: 100%;
}

.vds-cruise-single .gallery-main img,
.vds-cruise-single .gallery-thumbs img {
  display: block;
  object-fit: cover;
}

.vds-cruise-single .gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.vds-cruise-single .gallery-thumbs .thumb {
  position: relative;
  overflow: hidden;
}

.vds-cruise-single .gallery-thumbs .more-photos .overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: rgba(3, 12, 24, .56);
  color: #fff;
  font-size: 17px;
  font-weight: 800;
}

.vds-cruise-single .product-content {
  padding: 0 0 30px !important;
  background: var(--single-surface) !important;
}

.vds-cruise-single .section-amenities,
.vds-cruise-single .section-support {
  display: none !important;
}

.vds-cruise-single .product-content .product-info > .row:nth-of-type(2) {
  align-items: start;
}

.vds-cruise-single .section-description {
  padding: 0;
  background: transparent;
}

.vds-cruise-single .section-description h2,
.vds-cruise-single .check-availability > .container > h2,
.vds-cruise-single .check-availability > .container > h3,
.vds-cruise-single .section-itinerary h2,
.vds-cruise-single .section-regulations h2,
.vds-cruise-single .section-reviews h2,
.vds-cruise-single .section-faq h2 {
  color: var(--single-ink) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 36px !important;
  font-weight: 700 !important;
}

.vds-cruise-single .section-description h2 {
  margin: 0 0 21px;
  font-size: 25px;
}

.vds-cruise-single .section-description .content-more {
  color: #111;
  font-size: 16px;
  line-height: 1.62;
}

.vds-cruise-single .section-description .btn-more {
  display: flex;
  min-width: 176px;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 24px auto 18px;
  border: 1px solid var(--single-blue);
  border-radius: 28px;
  background: transparent;
  color: var(--single-blue);
  font-weight: 700;
}

.vds-cruise-single .booking-sidebar .section-features {
  margin: 8px 0 0;
  padding: 23px;
  border: 1px solid var(--single-gold);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(20, 35, 55, .08);
}

.vds-cruise-single .booking-sidebar .section-features h3 {
  margin: 0 0 18px;
  color: var(--single-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  text-align: center;
}

.vds-cruise-single .booking-sidebar .section-features ul {
  display: grid;
  gap: 13px;
  margin: 0;
  padding: 0;
}

.vds-cruise-single .booking-sidebar .section-features li {
  position: relative;
  padding-left: 32px;
  color: #111;
  font-size: 16px;
  line-height: 1.35;
}

.vds-cruise-single .booking-sidebar .section-features li::before {
  content: "✓";
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: var(--single-blue);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}

.vds-cruise-single .booking-sidebar .price-tour {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid #e0e3e8;
}

.vds-cruise-single .booking-sidebar .select-rooms,
.vds-cruise-single .booking-sidebar .btn-book {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  background: var(--single-gold);
  color: var(--single-ink);
  font-weight: 800;
}

.vds-cruise-single .login-saving-callout {
  display: flex;
  min-height: 178px;
  align-items: center;
  justify-content: space-between;
  margin: 8px 0 28px;
  padding: 28px;
  border: 1px solid var(--single-border);
  border-radius: 12px;
  background: #f8f8f8;
}

.vds-cruise-single .login-saving-callout h3 {
  margin: 0 0 6px;
  color: var(--single-ink);
  font-size: 20px;
}

.vds-cruise-single .login-saving-callout .icon {
  color: var(--single-blue);
  transform: scale(1.6);
}

.vds-cruise-single .login-saving-callout .btn-primary {
  border-color: var(--single-blue);
  background: var(--single-blue);
}

.vds-cruise-single .login-saving-callout .btn-link {
  color: var(--single-blue);
  font-weight: 700;
  text-decoration: none;
}

.vds-cruise-single .group-booking {
  min-height: 220px;
  margin: 12px 0 50px;
  padding: 35px 20px;
  border-radius: 9px;
  background-position: center !important;
  background-size: cover !important;
  color: #fff;
  text-align: center;
}

.vds-cruise-single .group-booking h2 {
  color: #fff;
  font-size: 27px;
}

.vds-cruise-single .group-booking p {
  max-width: 720px;
  margin: 18px auto 24px;
  font-size: 17px;
}

.vds-cruise-single .group-booking .btn {
  min-width: 286px;
  padding: 15px 22px;
  border: 0;
  background: #fff;
  color: var(--single-blue);
}

.vds-cruise-single .check-availability,
.vds-cruise-single .section-itinerary,
.vds-cruise-single .section-regulations,
.vds-cruise-single .section-faq,
.vds-cruise-single .section-reviews {
  padding: 24px 0 40px;
  background: var(--single-surface);
}

.vds-cruise-single .check-availability .search-form {
  padding: 0;
  background: transparent;
}

.vds-cruise-single .check-availability .availability-form {
  margin-bottom: 27px;
}

.vds-cruise-single .check-availability .group-check label {
  margin-bottom: 8px;
  color: var(--single-muted);
  font-size: 13px;
}

.vds-cruise-single .check-availability .date-input-group,
.vds-cruise-single .check-availability .guest-picker-trigger,
.vds-cruise-single .check-availability .availability-form button[type="submit"] {
  height: 54px;
  border: 1px solid var(--single-gold) !important;
  border-radius: 6px;
  background: #fff;
}

.vds-cruise-single .check-availability .availability-form button[type="submit"] {
  background: var(--single-gold);
  color: var(--single-navy);
  font-weight: 800;
  text-transform: none;
}

.vds-cruise-single .check-availability .room-item {
  margin-bottom: 22px;
  overflow: hidden;
  border: 1px solid var(--single-border);
  border-radius: 8px;
  background: #f8f8f8;
}

.vds-cruise-single .check-availability .room-header {
  min-height: 74px;
  padding: 18px 22px;
  background: var(--single-navy) !important;
  color: #fff;
}

.vds-cruise-single .check-availability .room-header > span {
  color: var(--single-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 27px;
  font-weight: 700;
}

.vds-cruise-single .check-availability .room-capacity {
  gap: 26px;
}

.vds-cruise-single .check-availability .room-capacity i {
  color: var(--single-gold);
}

.vds-cruise-single .check-availability .room-card {
  border: 0;
  background: #f8f8f8;
}

.vds-cruise-single .check-availability .room-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  padding: 12px;
}

.vds-cruise-single .check-availability .room-gallery img {
  width: 100%;
  height: 126px;
  object-fit: cover;
}

.vds-cruise-single .check-availability .room-option,
.vds-cruise-single .check-availability .room-price,
.vds-cruise-single .check-availability .room-booking {
  padding: 15px;
}

.vds-cruise-single .check-availability .new-price {
  color: var(--single-gold);
  font-size: 23px;
  font-weight: 800;
}

.vds-cruise-single .check-availability .room-booking .btn-book {
  min-height: 50px;
  border: 0 !important;
  border-radius: 26px;
  background: var(--single-navy) !important;
  color: #fff !important;
  font-weight: 800;
}

.vds-cruise-single .section-regulations .regulation-content,
.vds-cruise-single .section-reviews .reviews-summary {
  padding: 28px;
  border: 1px solid var(--single-border);
  border-radius: 10px;
  background: #f8f8f8;
}

.vds-cruise-single .section-reviews .reviews-summary {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 34px;
}

.vds-cruise-single .section-reviews .score-large {
  color: var(--single-blue);
  font-size: 54px;
}

body.single-du-thuyen .related-products {
  padding: 70px 0;
  background: #e6eef8 !important;
}

body.single-du-thuyen .related-products h2 {
  margin-bottom: 35px;
  color: var(--single-ink);
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 38px !important;
  text-align: center;
  text-transform: none;
}

body.single-du-thuyen .related-products .product-card {
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(31, 49, 69, .1);
}

@media (max-width: 1399px) and (min-width: 992px) {
  body.single-du-thuyen header.header-child .main-menu > ul { gap: 14px; }
  body.single-du-thuyen header.header-child .main-menu > ul > li > a { font-size: 13px; }
  body.single-du-thuyen header.header-child .main-menu { gap: 24px !important; }
  body.single-du-thuyen header.header-child .main-menu > a { font-size: 13px; }
  .vds-cruise-single .gallery-grid { height: 470px; }
}

@media (max-width: 991px) {
  body.single-du-thuyen header.header-child {
    height: 70px;
    padding: 10px 0 !important;
  }
  body.single-du-thuyen header.header-child .main-menu { display: none !important; }
  body.single-du-thuyen header.header-child .mobile-menu-toggle { display: flex !important; }
  .cruise-detail-search-shell { padding: 15px 0 22px; }
  .cruise-detail-search-shell .cruise-search-box { padding: 40px 16px 16px; border-radius: 10px; }
  .cruise-detail-search-shell .cruise-search-tabs { overflow-x: auto; }
  .cruise-detail-search-shell .search-row { grid-template-columns: 1fr; }
  .vds-cruise-single .product-header .product-meta { align-items: flex-start; flex-direction: column; gap: 10px; }
  .vds-cruise-single .gallery-grid { display: block; height: 330px; }
  .vds-cruise-single .gallery-thumbs { display: none; }
  .vds-cruise-single .product-content .col-lg-9,
  .vds-cruise-single .product-content .col-lg-3 { width: 100%; }
  .vds-cruise-single .booking-sidebar .section-features { margin: 15px 0 25px; }
  .vds-cruise-single .check-availability .room-header { align-items: flex-start; flex-direction: column; gap: 10px; }
  .vds-cruise-single .section-reviews .reviews-summary { grid-template-columns: 1fr; }
}

@media (max-width: 575px) {
  body.single-du-thuyen header.header-child .container,
  body.single-du-thuyen .cruise-detail-search-shell > .container,
  body.single-du-thuyen > .breadcrumb-nav .container,
  .vds-cruise-single .container {
    width: min(100% - 24px, 1458px);
  }
  .cruise-detail-search-shell .cruise-search-tabs a { padding: 10px; font-size: 13px; }
  .vds-cruise-single .product-header h1 { font-size: 30px; }
  .vds-cruise-single .gallery-grid { height: 270px; }
  .vds-cruise-single .section-description h2,
  .vds-cruise-single .check-availability > .container > h2,
  .vds-cruise-single .section-regulations h2,
  .vds-cruise-single .section-reviews h2 { font-size: 29px; }
  .vds-cruise-single .check-availability > .container > h3 {
    font-size: 24px !important;
    line-height: 1.3;
  }
  .vds-cruise-single .check-availability .room-header {
    min-height: 0;
    padding: 15px 18px;
  }
  .vds-cruise-single .check-availability .room-header > span {
    font-size: 16px !important;
    line-height: 24px;
  }
  .vds-cruise-single .login-saving-callout { align-items: flex-start; padding: 20px; }
  .vds-cruise-single .login-saving-callout .icon { display: none; }
  .vds-cruise-single .group-booking .btn { min-width: 0; width: 100%; }
}

/* Premium itinerary — replaces the legacy plain accordion/timeline. */
.vds-cruise-single .section-itinerary.tour-itinerary {
  margin: 26px auto 46px;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(173, 130, 21, .38);
  border-radius: 14px;
  background: #fff !important;
  box-shadow: 0 14px 38px rgba(6, 26, 46, .08);
}

.vds-cruise-single .section-itinerary.tour-itinerary > h4 {
  margin: 0 !important;
  padding: 24px 28px 8px;
  color: var(--single-ink) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 34px !important;
  font-weight: 700 !important;
}

.vds-cruise-single .section-itinerary.tour-itinerary > h5 {
  margin: 0 !important;
  padding: 0 28px 22px;
  color: var(--single-muted) !important;
  font-size: 14px;
  font-weight: 600 !important;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.vds-cruise-single .section-itinerary .itinerary-accordion {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.vds-cruise-single .section-itinerary .itinerary-day {
  border: 0 !important;
  border-radius: 0 !important;
}

.vds-cruise-single .section-itinerary .day-header {
  min-height: 66px;
  padding: 18px 28px !important;
  border: 0 !important;
  background: var(--single-navy) !important;
  color: #fff !important;
}

.vds-cruise-single .section-itinerary .day-header .day-title {
  color: var(--single-gold) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-weight: 700;
}

.vds-cruise-single .section-itinerary .day-header .toggle-icon {
  color: var(--single-gold) !important;
}

.vds-cruise-single .section-itinerary .day-content {
  border: 0 !important;
  background: #f8fafc !important;
}

.vds-cruise-single .section-itinerary .timeline-container {
  position: relative;
  padding: 24px 28px 26px !important;
}

.vds-cruise-single .section-itinerary .timeline-container::before {
  left: 158px !important;
  width: 2px !important;
  background: linear-gradient(var(--single-gold), rgba(214, 170, 40, .2)) !important;
}

.vds-cruise-single .section-itinerary .timeline-item {
  display: grid !important;
  grid-template-columns: 112px 28px minmax(0, 1fr);
  gap: 0 14px;
  align-items: start;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 10px 0 !important;
  opacity: 1 !important;
  transform: none !important;
}

.vds-cruise-single .section-itinerary .timeline-item::before,
.vds-cruise-single .section-itinerary .timeline-item::after {
  display: none !important;
  content: none !important;
}

.vds-cruise-single .section-itinerary .timeline-time {
  position: static !important;
  width: auto !important;
  margin: 0 !important;
  padding: 9px 10px;
  border: 1px solid rgba(214, 170, 40, .42);
  border-radius: 7px;
  background: #fff8df;
  color: var(--single-gold-dark) !important;
  font-size: 14px;
  font-weight: 800 !important;
  text-align: center;
  grid-column: 1;
  grid-row: 1;
}

.vds-cruise-single .section-itinerary .timeline-dot {
  position: relative !important;
  top: 12px !important;
  left: 4px !important;
  z-index: 2;
  width: 14px !important;
  height: 14px !important;
  margin: 0 !important;
  border: 3px solid #fff !important;
  border-radius: 50%;
  background: var(--single-gold) !important;
  box-shadow: 0 0 0 2px var(--single-gold);
  grid-column: 2;
  grid-row: 1;
}

.vds-cruise-single .section-itinerary .timeline-desc {
  min-height: 43px;
  padding: 9px 15px !important;
  border: 1px solid #e1e6ec;
  border-radius: 8px;
  background: #fff;
  color: var(--single-ink) !important;
  line-height: 1.55;
  grid-column: 3;
  grid-row: 1;
}

.vds-cruise-single .section-itinerary .timeline-desc p {
  margin: 0 !important;
}

/* Related products use the same navy/gold luxury language as the detail page. */
body.single-du-thuyen .related-products .owl-stage {
  display: flex;
  padding: 4px 0 18px;
}

body.single-du-thuyen .related-products .owl-item {
  display: flex;
}

body.single-du-thuyen .related-products .product-card {
  display: flex;
  width: 100%;
  flex-direction: column;
  border: 1px solid rgba(173, 130, 21, .32) !important;
  box-shadow: 0 12px 28px rgba(6, 26, 46, .1) !important;
}

body.single-du-thuyen .related-products .product-image {
  height: 218px !important;
}

body.single-du-thuyen .related-products .product-image img {
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  transition: transform .35s ease;
}

body.single-du-thuyen .related-products .product-card:hover .product-image img {
  transform: scale(1.045);
}

body.single-du-thuyen .related-products .product-badge {
  min-width: 154px;
  padding: 9px 20px !important;
  background: linear-gradient(100deg, #b98b17, #e0bb49) !important;
  color: var(--single-ink) !important;
  font-weight: 800 !important;
  text-transform: uppercase;
}

body.single-du-thuyen .related-products .product-info {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 18px !important;
}

body.single-du-thuyen .related-products .product-title,
body.single-du-thuyen .related-products .product-title a {
  color: var(--single-ink) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 21px !important;
  line-height: 1.25;
}

body.single-du-thuyen .related-products .rating-score {
  background: var(--single-navy) !important;
}

body.single-du-thuyen .related-products .price-current {
  color: var(--single-gold-dark) !important;
}

body.single-du-thuyen .related-products .product-footer {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #edf0f3;
}

body.single-du-thuyen .related-products .btn-book {
  min-width: 96px;
  border: 1px solid var(--single-gold) !important;
  border-radius: 6px !important;
  background: var(--single-navy) !important;
  color: #fff !important;
}

body.single-du-thuyen .related-products .owl-nav button {
  border: 1px solid rgba(173, 130, 21, .4) !important;
  color: var(--single-gold-dark) !important;
  box-shadow: 0 7px 18px rgba(6, 26, 46, .12) !important;
}

body.single-du-thuyen .related-products .owl-dot.active span {
  background: var(--single-gold) !important;
}

@media (max-width: 767px) {
  .vds-cruise-single .section-itinerary.tour-itinerary > h4 { padding: 20px 18px 6px; font-size: 29px !important; }
  .vds-cruise-single .section-itinerary.tour-itinerary > h5 { padding: 0 18px 18px; }
  .vds-cruise-single .section-itinerary .day-header { padding: 16px 18px !important; }
  .vds-cruise-single .section-itinerary .timeline-container { padding: 15px !important; }
  .vds-cruise-single .section-itinerary .timeline-container::before { display: none; }
  .vds-cruise-single .section-itinerary .timeline-item { grid-template-columns: 1fr; gap: 7px; padding: 9px 0 !important; }
  .vds-cruise-single .section-itinerary .timeline-time { justify-self: start; }
  .vds-cruise-single .section-itinerary .timeline-dot { display: none; }
  .vds-cruise-single .section-itinerary .timeline-time,
  .vds-cruise-single .section-itinerary .timeline-desc { width: 100%; grid-column: 1; grid-row: auto; }
  body.single-du-thuyen .related-products { padding: 48px 0; }
}

/* Full-screen cruise tour booking flow. */
body.single-du-thuyen #roomOrderModal {
  --booking-navy: #061a2e;
  --booking-navy-soft: #0b2944;
  --booking-panel: rgba(13, 42, 67, .9);
  --booking-gold: #d6aa28;
  --booking-border: rgba(214, 170, 40, .42);
  color: #fff;
}

body.single-du-thuyen #roomOrderModal .modal-dialog {
  width: 100vw !important;
  max-width: none !important;
  min-height: 100vh !important;
  height: 100vh !important;
  margin: 0 !important;
}

body.single-du-thuyen #roomOrderModal .modal-content {
  width: 100vw;
  min-height: 100vh !important;
  height: 100dvh;
  overflow: hidden;
  border: 0 !important;
  border-radius: 0 !important;
  background:
    radial-gradient(circle at 82% 18%, rgba(214, 170, 40, .12), transparent 25%),
    radial-gradient(circle at 12% 88%, rgba(31, 94, 140, .3), transparent 30%),
    linear-gradient(135deg, #041424, var(--booking-navy) 48%, #092743) !important;
  color: #fff !important;
}

body.single-du-thuyen #roomOrderModal .order-header {
  position: relative;
  z-index: 5;
  flex: 0 0 104px;
  min-height: 104px;
  padding: 18px 72px 14px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .13);
  background: rgba(3, 16, 29, .76) !important;
  backdrop-filter: blur(18px);
}

body.single-du-thuyen #roomOrderModal .order-header .steps {
  width: min(100%, 980px);
  margin: 0 auto;
}

body.single-du-thuyen #roomOrderModal .order-header .steps::before {
  background: rgba(255, 255, 255, .22) !important;
}

body.single-du-thuyen #roomOrderModal .order-header .step .circle {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255, 255, 255, .35) !important;
  background: #34485d !important;
  color: #d8e0e9 !important;
  font-weight: 800;
}

body.single-du-thuyen #roomOrderModal .order-header .step.active .circle,
body.single-du-thuyen #roomOrderModal .order-header .step.completed .circle {
  border-color: var(--booking-gold) !important;
  background: var(--booking-gold) !important;
  color: var(--booking-navy) !important;
  box-shadow: 0 0 0 5px rgba(214, 170, 40, .12);
}

body.single-du-thuyen #roomOrderModal .order-header .step .label {
  margin-top: 7px;
  color: #94a5b7 !important;
  font-size: 13px;
  font-weight: 600;
}

body.single-du-thuyen #roomOrderModal .order-header .step.active .label,
body.single-du-thuyen #roomOrderModal .order-header .step.completed .label {
  color: #fff !important;
}

body.single-du-thuyen #roomOrderModal .order-header .close-order {
  top: 28px !important;
  right: 30px !important;
  z-index: 10;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, .28) !important;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, .08) !important;
  filter: invert(1) grayscale(1) brightness(2);
}

body.single-du-thuyen #roomOrderModal .order-body {
  flex: 1 1 auto;
  height: calc(100dvh - 104px);
  padding: 22px 32px 30px !important;
  overflow-x: hidden;
  overflow-y: auto;
  background: transparent !important;
}

body.single-du-thuyen #roomOrderModal .order-container {
  width: min(100%, 1580px) !important;
  max-width: 1580px !important;
  margin: 0 auto !important;
}

body.single-du-thuyen #roomOrderModal .order-hero {
  margin: 0 0 18px !important;
  padding: 0 50px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: center;
}

body.single-du-thuyen #roomOrderModal .order-hero .order-title:has(.svc-title:empty) {
  display: none;
}

body.single-du-thuyen #roomOrderModal .order-hero .order-subtitle {
  color: var(--booking-gold) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(25px, 2.3vw, 36px) !important;
  font-weight: 500 !important;
  letter-spacing: .025em;
  text-transform: uppercase;
}

body.single-du-thuyen #roomOrderModal .order-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.65fr) minmax(360px, .72fr) !important;
  gap: 22px !important;
  align-items: start;
}

body.single-du-thuyen #roomOrderModal .order-left {
  display: grid;
  grid-template-columns: minmax(300px, .75fr) minmax(460px, 1.25fr);
  gap: 18px;
  align-items: start;
}

body.single-du-thuyen #roomOrderModal .order-grid.step2-grid .order-left,
body.single-du-thuyen #roomOrderModal .order-step.step-3 .order-left {
  display: block;
}

body.single-du-thuyen #roomOrderModal .panel,
body.single-du-thuyen #roomOrderModal .order-summary,
body.single-du-thuyen #roomOrderModal .ticket-row {
  color: #fff !important;
}

body.single-du-thuyen #roomOrderModal .panel {
  margin: 0 !important;
  padding: 18px !important;
  border: 1px solid var(--booking-border) !important;
  border-radius: 10px !important;
  background: var(--booking-panel) !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .18) !important;
  backdrop-filter: blur(8px);
}

body.single-du-thuyen #roomOrderModal #roomAddonPanel {
  margin-top: 16px !important;
  border-color: rgba(214, 170, 40, .24) !important;
  background: rgba(3, 20, 36, .52) !important;
  box-shadow: none !important;
}

body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel {
  display: grid !important;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 0 !important;
  padding: 16px !important;
}

body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .panel-title {
  grid-column: 1 / -1;
  margin-bottom: 0 !important;
}

body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row {
  display: flex !important;
  min-height: 128px;
  height: 100%;
  margin: 0 !important;
  padding: 14px !important;
  flex-direction: column;
  align-items: stretch !important;
  border-color: rgba(214, 170, 40, .28) !important;
  background: rgba(255, 255, 255, .075) !important;
}

body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row .ticket-info {
  width: 100%;
}

body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row .ticket-name {
  color: #fff !important;
  font-size: 15px;
}

body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row .ticket-qty {
  width: 100%;
  margin-top: auto;
  padding-top: 12px;
  justify-content: flex-end;
  border-top: 1px solid rgba(255, 255, 255, .1);
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar {
  position: static !important;
  top: auto !important;
  left: auto !important;
  display: block !important;
  visibility: visible !important;
  width: 100% !important;
  max-width: none !important;
  margin: 14px 0 0 !important;
  opacity: 1 !important;
  transform: none !important;
  border: 1px solid var(--booking-border) !important;
  border-radius: 9px !important;
  background: #f8f5ec !important;
  box-shadow: none !important;
}

/* The inline calendar is the only departure-date control needed for cruises. */
body.single-du-thuyen #roomOrderModal .cruise-date-input {
  display: none !important;
}

/* The inline calendar is the only date picker; do not show the hidden input's validation message. */
body.single-du-thuyen #roomOrderModal #dateError {
  display: none !important;
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar::before,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar::after {
  display: none !important;
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-months,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-weekdays {
  background: #f8f5ec !important;
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-month,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-current-month,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-current-month input,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-current-month select,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-weekday {
  color: var(--booking-navy) !important;
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-current-month select,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-current-month input {
  min-height: 0 !important;
  height: auto !important;
  border: 0 !important;
  background: transparent !important;
  font-weight: 800 !important;
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-innerContainer,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-rContainer,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-days,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .dayContainer {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar .dayContainer {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  padding: 6px 8px 10px;
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-day {
  width: 100% !important;
  max-width: none !important;
  height: 34px !important;
  line-height: 34px !important;
  color: var(--booking-navy) !important;
  font-weight: 600;
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-day.selected,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-day:hover {
  border-color: var(--booking-gold) !important;
  background: var(--booking-gold) !important;
  color: var(--booking-navy) !important;
}

body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-day.prevMonthDay,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-day.nextMonthDay,
body.single-du-thuyen #roomOrderModal .vds-inline-calendar .flatpickr-day.flatpickr-disabled {
  color: #a9adb2 !important;
}

body.single-du-thuyen #roomOrderModal .panel-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 14px !important;
  padding: 0 0 12px;
  border-bottom: 1px solid rgba(255, 255, 255, .13);
  color: var(--booking-gold) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px !important;
  font-weight: 700 !important;
}

body.single-du-thuyen #roomOrderModal .panel-title i {
  color: var(--booking-gold) !important;
}

body.single-du-thuyen #roomOrderModal label,
body.single-du-thuyen #roomOrderModal .ticket-name,
body.single-du-thuyen #roomOrderModal .form-label,
body.single-du-thuyen #roomOrderModal .form-check-label,
body.single-du-thuyen #roomOrderModal .summary-row,
body.single-du-thuyen #roomOrderModal .summary-row span {
  color: #f5f7fa !important;
}

body.single-du-thuyen #roomOrderModal .ticket-desc,
body.single-du-thuyen #roomOrderModal .text-muted,
body.single-du-thuyen #roomOrderModal small,
body.single-du-thuyen #roomOrderModal .svc-info {
  color: #b9c7d6 !important;
}

body.single-du-thuyen #roomOrderModal input,
body.single-du-thuyen #roomOrderModal select,
body.single-du-thuyen #roomOrderModal textarea {
  min-height: 46px;
  border: 1px solid rgba(255, 255, 255, .3) !important;
  border-radius: 7px !important;
  background: rgba(255, 255, 255, .1) !important;
  color: #fff !important;
  box-shadow: none !important;
}

body.single-du-thuyen #roomOrderModal input::placeholder,
body.single-du-thuyen #roomOrderModal textarea::placeholder {
  color: #aebdcc !important;
}

body.single-du-thuyen #roomOrderModal input[type="checkbox"],
body.single-du-thuyen #roomOrderModal input[type="radio"] {
  width: 17px !important;
  min-width: 17px !important;
  height: 17px !important;
  min-height: 17px !important;
  padding: 0 !important;
  border-radius: 3px !important;
  background-color: rgba(255, 255, 255, .12) !important;
}

body.single-du-thuyen #roomOrderModal select option {
  background: var(--booking-navy);
  color: #fff;
}

body.single-du-thuyen #roomOrderModal .ticket-row {
  min-height: 62px;
  margin-bottom: 9px;
  padding: 10px 12px !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, .055) !important;
}

body.single-du-thuyen #roomOrderModal .ticket-qty .unit-price-display {
  color: var(--booking-gold) !important;
  font-size: 13px !important;
}

body.single-du-thuyen #roomOrderModal .ticket-qty .btn-minus,
body.single-du-thuyen #roomOrderModal .ticket-qty .btn-plus {
  display: grid;
  width: 30px !important;
  height: 30px !important;
  padding: 0 !important;
  place-items: center;
  border: 1px solid var(--booking-border) !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, .07) !important;
  color: #fff !important;
}

body.single-du-thuyen #roomOrderModal .ticket-qty .btn-plus:hover,
body.single-du-thuyen #roomOrderModal .ticket-qty .btn-minus:hover {
  background: var(--booking-gold) !important;
  color: var(--booking-navy) !important;
}

body.single-du-thuyen #roomOrderModal .ticket-qty .qty {
  color: #fff !important;
}

body.single-du-thuyen #roomOrderModal .order-right {
  position: sticky;
  top: 0;
}

body.single-du-thuyen #roomOrderModal .order-summary .info-room {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 13px !important;
  align-items: start !important;
}

body.single-du-thuyen #roomOrderModal .order-summary #summaryImageClass {
  width: 100% !important;
  height: 190px !important;
  border: 1px solid var(--booking-border) !important;
  border-radius: 8px !important;
  object-fit: cover !important;
}

body.single-du-thuyen #roomOrderModal .summary-title {
  color: var(--booking-gold) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px !important;
}

body.single-du-thuyen #roomOrderModal .summary-amenities,
body.single-du-thuyen #roomOrderModal .summary-amenities span,
body.single-du-thuyen #roomOrderModal .summary-amenities li {
  color: #e6edf4 !important;
}

body.single-du-thuyen #roomOrderModal .summary-row {
  padding: 7px 0;
  border-bottom-color: rgba(255, 255, 255, .1) !important;
}

body.single-du-thuyen #roomOrderModal .summary-row strong,
body.single-du-thuyen #roomOrderModal .summary-total strong,
body.single-du-thuyen #roomOrderModal .summary-total span {
  color: var(--booking-gold) !important;
}

body.single-du-thuyen #roomOrderModal .summary-total {
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid var(--booking-border) !important;
}

body.single-du-thuyen #roomOrderModal .summary-total strong {
  font-size: 25px !important;
}

body.single-du-thuyen #roomOrderModal .order-actions {
  position: sticky;
  bottom: -30px;
  z-index: 8;
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 18px !important;
  padding: 14px 0 18px !important;
  border-top: 1px solid rgba(255, 255, 255, .12);
  background: linear-gradient(180deg, rgba(6, 26, 46, .15), var(--booking-navy) 28%);
}

body.single-du-thuyen #roomOrderModal .order-actions .btn {
  min-width: 150px;
  min-height: 45px;
  border-radius: 25px !important;
  font-weight: 800 !important;
}

body.single-du-thuyen #roomOrderModal .order-actions .btn-primary {
  border-color: var(--booking-gold) !important;
  background: var(--booking-gold) !important;
  color: var(--booking-navy) !important;
}

body.single-du-thuyen #roomOrderModal .order-actions .btn:disabled {
  opacity: .48 !important;
  cursor: not-allowed;
}

body.single-du-thuyen #roomOrderModal .order-actions .btn-secondary {
  border: 1px solid rgba(255, 255, 255, .5) !important;
  background: transparent !important;
  color: #fff !important;
}

body.single-du-thuyen #roomOrderModal .field-error {
  color: #ffb4b4 !important;
}

body.single-du-thuyen #roomOrderModal .order-step.step-3 {
  min-height: calc(100dvh - 155px);
  padding: 34px 20px 54px;
  place-items: center;
}

body.single-du-thuyen #roomOrderModal .order-step.step-3.active {
  display: grid !important;
}

body.single-du-thuyen #roomOrderModal .success-box {
  position: relative;
  width: min(100%, 900px) !important;
  margin: 0 auto !important;
  padding: 48px 54px 42px !important;
  overflow: hidden;
  border: 1px solid var(--booking-border) !important;
  border-radius: 18px !important;
  background:
    radial-gradient(circle at 50% 0, rgba(214, 170, 40, .15), transparent 35%),
    linear-gradient(145deg, rgba(13, 42, 67, .98), rgba(4, 20, 36, .98)) !important;
  color: #fff !important;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .35) !important;
  text-align: center;
}

body.single-du-thuyen #roomOrderModal .success-box::before,
body.single-du-thuyen #roomOrderModal .success-box::after {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  border: 1px solid rgba(214, 170, 40, .12);
  border-radius: 50%;
  pointer-events: none;
}

body.single-du-thuyen #roomOrderModal .success-box::before {
  top: -100px;
  left: -85px;
}

body.single-du-thuyen #roomOrderModal .success-box::after {
  right: -105px;
  bottom: -115px;
}

body.single-du-thuyen #roomOrderModal .success-box > .icon {
  display: grid !important;
  width: 74px !important;
  height: 74px !important;
  margin: 0 auto 18px !important;
  place-items: center;
  border: 1px solid rgba(214, 170, 40, .72) !important;
  border-radius: 50% !important;
  background: var(--booking-gold) !important;
  color: var(--booking-navy) !important;
  font-size: 38px !important;
  font-weight: 800;
  box-shadow: 0 0 0 10px rgba(214, 170, 40, .1);
}

body.single-du-thuyen #roomOrderModal .success-box > h3 {
  margin: 0 0 14px !important;
  color: var(--booking-gold) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(30px, 3vw, 42px) !important;
  font-weight: 600 !important;
}

body.single-du-thuyen #roomOrderModal .success-box > p {
  max-width: 690px;
  margin: 0 auto 22px !important;
  color: #dce6ef !important;
  font-size: 16px;
  line-height: 1.7;
}

body.single-du-thuyen #roomOrderModal .success-box > p a,
body.single-du-thuyen #roomOrderModal .success-box > p strong {
  color: var(--booking-gold) !important;
}

body.single-du-thuyen #roomOrderModal .success-box .consultation-preference {
  width: min(100%, 610px);
  margin: 26px auto 24px !important;
  padding: 22px !important;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 12px;
  background: rgba(255, 255, 255, .045);
}

body.single-du-thuyen #roomOrderModal .success-box .consultation-preference > p {
  margin-bottom: 16px !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}

body.single-du-thuyen #roomOrderModal .success-box .pref-options-group {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px !important;
  margin: 0 !important;
}

body.single-du-thuyen #roomOrderModal .success-box .pref-label {
  max-width: none !important;
  min-height: 105px;
  padding: 16px !important;
  border: 1px solid rgba(255, 255, 255, .24) !important;
  border-radius: 10px !important;
  background: rgba(255, 255, 255, .055) !important;
  color: #dce6ef !important;
  justify-content: center;
}

body.single-du-thuyen #roomOrderModal .success-box .pref-label:hover,
body.single-du-thuyen #roomOrderModal .success-box .pref-label.active,
body.single-du-thuyen #roomOrderModal .success-box .pref-label:has(input:checked) {
  border-color: var(--booking-gold) !important;
  background: rgba(214, 170, 40, .14) !important;
  color: var(--booking-gold) !important;
  box-shadow: inset 0 0 0 1px rgba(214, 170, 40, .28);
}

body.single-du-thuyen #roomOrderModal .success-box .pref-label > span:first-of-type {
  font-size: 26px !important;
}

body.single-du-thuyen #roomOrderModal .success-box > .btn {
  min-width: 150px;
  min-height: 48px;
  margin: 0 5px;
  padding: 11px 22px !important;
  border-radius: 25px !important;
  font-size: 15px !important;
  font-weight: 800 !important;
}

body.single-du-thuyen #roomOrderModal .success-box > .btn-secondary {
  border: 1px solid rgba(255, 255, 255, .45) !important;
  background: transparent !important;
  color: #fff !important;
}

/* The inline calendar already communicates the selected departure date. */
body.single-du-thuyen #roomOrderModal label[for="checkIn"] {
  display: none !important;
}

body.single-du-thuyen #roomOrderModal .success-box > .btn-consult-confirm {
  border-color: var(--booking-gold) !important;
  background: var(--booking-gold) !important;
  color: var(--booking-navy) !important;
}

body.single-du-thuyen #roomOrderModal .policy-content,
body.single-du-thuyen #roomOrderModal .policy-content p,
body.single-du-thuyen #roomOrderModal .policy-content li {
  color: #dce6ef !important;
}

body.single-du-thuyen.modal-open #quickContact,
body.single-du-thuyen.modal-open .vds-wa-float {
  display: none !important;
}

@media (max-width: 1199px) {
  body.single-du-thuyen #roomOrderModal .order-grid { grid-template-columns: minmax(0, 1.3fr) minmax(330px, .7fr) !important; }
  body.single-du-thuyen #roomOrderModal .order-left { grid-template-columns: 1fr; }
}

@media (max-width: 799px) {
  body.single-du-thuyen #roomOrderModal .order-header { min-height: 82px; flex-basis: 82px; padding: 10px 50px 8px 12px !important; }
  body.single-du-thuyen #roomOrderModal .order-header .close-order { top: 18px !important; right: 10px !important; width: 36px; height: 36px; }
  body.single-du-thuyen #roomOrderModal .order-header .step .circle { width: 28px; height: 28px; }
  body.single-du-thuyen #roomOrderModal .order-header .step .label { font-size: 10px; }
  body.single-du-thuyen #roomOrderModal .order-body { height: calc(100dvh - 82px); padding: 14px 12px 20px !important; }
  body.single-du-thuyen #roomOrderModal .order-hero { padding: 0 4px 12px !important; }
  body.single-du-thuyen #roomOrderModal .order-hero .order-subtitle { font-size: 23px !important; }
  body.single-du-thuyen #roomOrderModal .order-grid,
  body.single-du-thuyen #roomOrderModal .order-left { grid-template-columns: 1fr !important; }
  body.single-du-thuyen #roomOrderModal .order-right { position: static; }
  body.single-du-thuyen #roomOrderModal .panel { padding: 14px !important; }
  body.single-du-thuyen #roomOrderModal .order-summary #summaryImageClass { height: 165px !important; }
  body.single-du-thuyen #roomOrderModal .ticket-row { align-items: flex-start !important; gap: 8px; }
  body.single-du-thuyen #roomOrderModal .ticket-qty { flex-wrap: wrap; justify-content: flex-end; }
  body.single-du-thuyen #roomOrderModal .order-actions { bottom: -20px; }
  body.single-du-thuyen #roomOrderModal .order-actions .btn { min-width: 0; flex: 1; }
  body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel { grid-template-columns: 1fr; }
  body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .panel-title { grid-column: 1; }
  body.single-du-thuyen #roomOrderModal .order-step.step-3 { min-height: calc(100dvh - 110px); padding: 20px 0 34px; }
  body.single-du-thuyen #roomOrderModal .success-box { padding: 32px 16px 26px !important; border-radius: 13px !important; }
  body.single-du-thuyen #roomOrderModal .success-box > .icon { width: 62px !important; height: 62px !important; font-size: 31px !important; }
  body.single-du-thuyen #roomOrderModal .success-box .consultation-preference { padding: 14px !important; }
  body.single-du-thuyen #roomOrderModal .success-box .pref-options-group { grid-template-columns: 1fr; }
  body.single-du-thuyen #roomOrderModal .success-box > .btn { width: 100%; margin: 5px 0; }
}

/* Cabin details & photos modal */
body.single-du-thuyen #roomGalleryModal {
  --gallery-navy: #061a2e;
  --gallery-panel: #0c2b43;
  --gallery-panel-soft: #123750;
  --gallery-gold: #d6aa28;
  --gallery-gold-light: #efc84e;
  --gallery-text: #f7f3e8;
  --gallery-muted: #b9c8d5;
  background: rgba(2, 12, 23, .82);
  backdrop-filter: blur(9px);
}

body.single-du-thuyen #roomGalleryModal .modal-dialog {
  width: calc(100vw - 48px) !important;
  max-width: 1680px !important;
  height: calc(100dvh - 48px);
  margin: 24px auto !important;
}

body.single-du-thuyen #roomGalleryModal .modal-content {
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(214, 170, 40, .7) !important;
  border-radius: 16px !important;
  background: var(--gallery-navy) !important;
  color: var(--gallery-text);
  box-shadow: 0 30px 90px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .04) inset;
}

body.single-du-thuyen #roomGalleryModal .modal-header {
  min-height: 76px;
  padding: 15px 24px 14px 30px !important;
  border-bottom: 1px solid rgba(214, 170, 40, .45) !important;
  background: linear-gradient(135deg, #061a2e 0%, #0b2d47 100%) !important;
}

body.single-du-thuyen #roomGalleryModal .modal-title {
  margin: 0;
  color: var(--gallery-gold-light) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(25px, 2vw, 34px) !important;
  font-weight: 700 !important;
  letter-spacing: .01em;
}

body.single-du-thuyen #roomGalleryModal .btn-close {
  width: 42px;
  height: 42px;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 50%;
  background-color: rgba(255, 255, 255, .08);
  background-size: 15px;
  filter: invert(1) sepia(.15);
  opacity: 1;
  transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}

body.single-du-thuyen #roomGalleryModal .btn-close:hover {
  border-color: var(--gallery-gold);
  background-color: rgba(214, 170, 40, .25);
  transform: rotate(90deg);
}

body.single-du-thuyen #roomGalleryModal .modal-body {
  height: calc(100% - 76px);
  min-height: 0;
  flex: 1 1 0;
  padding: 0 !important;
  overflow: hidden;
  background: var(--gallery-navy);
}

body.single-du-thuyen #roomGalleryModal .modal-body > .row {
  height: 100%;
  min-height: 0;
  margin: 0 !important;
}

body.single-du-thuyen #roomGalleryModal .modal-body > .row > [class*="col-"] {
  height: 100%;
  min-height: 0;
  padding: 0 !important;
}

body.single-du-thuyen #roomGalleryModal .modal-body > .row > .col-lg-7 {
  flex: 0 0 64%;
  width: 64%;
  border-right: 1px solid rgba(214, 170, 40, .35);
}

body.single-du-thuyen #roomGalleryModal .modal-body > .row > .col-lg-5 {
  flex: 0 0 36%;
  width: 36%;
}

body.single-du-thuyen #roomGalleryModal #tourCarousel,
body.single-du-thuyen #roomGalleryModal #roomCarouselInner,
body.single-du-thuyen #roomGalleryModal #roomCarouselInner .carousel-item {
  height: 100%;
}

body.single-du-thuyen #roomGalleryModal #tourCarousel {
  background: #020b14;
}

body.single-du-thuyen #roomGalleryModal #roomCarouselInner img {
  width: 100%;
  height: 100% !important;
  min-height: 0;
  object-fit: cover;
}

body.single-du-thuyen #roomGalleryModal .carousel-control-prev,
body.single-du-thuyen #roomGalleryModal .carousel-control-next {
  top: 50%;
  bottom: auto;
  width: 54px;
  height: 54px;
  margin: 0 22px;
  border: 1px solid rgba(214, 170, 40, .75);
  border-radius: 50%;
  background: rgba(6, 26, 46, .88);
  opacity: 1;
  transform: translateY(-50%);
  transition: background-color .2s ease, transform .2s ease;
}

body.single-du-thuyen #roomGalleryModal .carousel-control-prev:hover,
body.single-du-thuyen #roomGalleryModal .carousel-control-next:hover {
  background: var(--gallery-gold);
  transform: translateY(-50%) scale(1.06);
}

body.single-du-thuyen #roomGalleryModal .carousel-control-prev-icon,
body.single-du-thuyen #roomGalleryModal .carousel-control-next-icon {
  width: 20px !important;
  height: 20px !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  background-size: 100% 100% !important;
}

body.single-du-thuyen #roomGalleryModal .room-detail-info {
  height: 100% !important;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: linear-gradient(160deg, var(--gallery-panel) 0%, #071f34 100%);
}

body.single-du-thuyen #roomGalleryModal .room-detail-scroll {
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 32px 34px 24px !important;
  scrollbar-width: thin;
  scrollbar-color: var(--gallery-gold) rgba(255, 255, 255, .08);
}

body.single-du-thuyen #roomGalleryModal .room-detail-scroll::-webkit-scrollbar { width: 7px; }
body.single-du-thuyen #roomGalleryModal .room-detail-scroll::-webkit-scrollbar-track { background: rgba(255, 255, 255, .07); }
body.single-du-thuyen #roomGalleryModal .room-detail-scroll::-webkit-scrollbar-thumb { border-radius: 8px; background: var(--gallery-gold); }

body.single-du-thuyen #roomGalleryModal .room-name {
  margin: 0 0 14px;
  color: var(--gallery-gold-light) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(26px, 2.2vw, 38px) !important;
  line-height: 1.15;
}

body.single-du-thuyen #roomGalleryModal .room-description {
  margin: 0 0 26px !important;
  color: var(--gallery-muted) !important;
  font-size: 15px;
  line-height: 1.7;
}

body.single-du-thuyen #roomGalleryModal .detail-section {
  margin: 0 0 26px !important;
}

body.single-du-thuyen #roomGalleryModal .detail-section h4 {
  margin: 0 0 13px !important;
  padding: 0 0 10px !important;
  border-bottom: 1px solid rgba(214, 170, 40, .35) !important;
  color: var(--gallery-gold-light) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px !important;
  font-weight: 700 !important;
}

body.single-du-thuyen #roomGalleryModal .detail-list,
body.single-du-thuyen #roomGalleryModal .amenities-check-list {
  margin: 0 !important;
  padding: 0 !important;
}

body.single-du-thuyen #roomGalleryModal .detail-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 42px;
  padding: 8px 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  color: var(--gallery-text) !important;
  font-size: 15px !important;
}

body.single-du-thuyen #roomGalleryModal .detail-list li i {
  width: 22px;
  color: var(--gallery-gold);
  text-align: center;
}

body.single-du-thuyen #roomGalleryModal .detail-list li strong {
  min-width: 92px;
  color: var(--gallery-muted) !important;
}

body.single-du-thuyen #roomGalleryModal .amenities-check-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 9px 14px !important;
}

body.single-du-thuyen #roomGalleryModal .amenities-check-list li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 5px 0 !important;
  color: #edf3f7 !important;
  font-size: 14px !important;
  line-height: 1.45;
}

body.single-du-thuyen #roomGalleryModal .amenities-check-list li i {
  margin-top: 4px;
  color: #2fd29a !important;
}

body.single-du-thuyen #roomGalleryModal .price-detail .old-price-modal { color: #8295a6 !important; }
body.single-du-thuyen #roomGalleryModal .price-detail .new-price-modal {
  color: var(--gallery-gold-light) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px !important;
}

body.single-du-thuyen #roomGalleryModal #roomOptionsSection .option-item {
  padding: 12px !important;
  border: 1px solid rgba(255, 255, 255, .13) !important;
  border-radius: 9px;
  background: rgba(255, 255, 255, .055);
  color: var(--gallery-text);
}

body.single-du-thuyen #roomGalleryModal #roomOptionsSection .option-item + .option-item { margin-top: 9px; }
body.single-du-thuyen #roomGalleryModal #roomOptionsSection input { accent-color: var(--gallery-gold); }
body.single-du-thuyen #roomGalleryModal #roomOptionsSection .prices strong { color: var(--gallery-gold-light); }

body.single-du-thuyen #roomGalleryModal .room-booking-sticky {
  position: relative !important;
  flex: 0 0 auto;
  padding: 18px 34px 20px !important;
  border-top: 1px solid rgba(214, 170, 40, .38) !important;
  background: #061a2e !important;
  box-shadow: 0 -14px 34px rgba(0, 0, 0, .22) !important;
}

body.single-du-thuyen #roomGalleryModal .btn-book-modal {
  min-height: 54px;
  border: 1px solid var(--gallery-gold) !important;
  border-radius: 7px !important;
  background: linear-gradient(135deg, var(--gallery-gold-light), var(--gallery-gold)) !important;
  color: var(--gallery-navy) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-shadow: 0 10px 25px rgba(214, 170, 40, .18);
}

body.single-du-thuyen #roomGalleryModal .btn-book-modal:hover {
  background: #f5d468 !important;
  transform: translateY(-1px);
}

@media (max-width: 991px) {
  body.single-du-thuyen #roomGalleryModal .modal-dialog {
    width: calc(100vw - 24px) !important;
    height: calc(100dvh - 24px);
    margin: 12px auto !important;
  }

  body.single-du-thuyen #roomGalleryModal .modal-body { overflow-y: auto; }
  body.single-du-thuyen #roomGalleryModal .modal-body > .row { height: auto; min-height: 100%; }
  body.single-du-thuyen #roomGalleryModal .modal-body > .row > .col-lg-7,
  body.single-du-thuyen #roomGalleryModal .modal-body > .row > .col-lg-5 {
    flex: 0 0 100%;
    width: 100%;
  }
  body.single-du-thuyen #roomGalleryModal .modal-body > .row > .col-lg-7 {
    height: min(52vw, 470px);
    border-right: 0;
    border-bottom: 1px solid rgba(214, 170, 40, .35);
  }
  body.single-du-thuyen #roomGalleryModal .modal-body > .row > .col-lg-5 { height: auto; }
  body.single-du-thuyen #roomGalleryModal .room-detail-info { height: auto !important; }
  body.single-du-thuyen #roomGalleryModal .room-detail-scroll { overflow: visible; }
}

@media (max-width: 599px) {
  body.single-du-thuyen #roomGalleryModal .modal-dialog {
    width: 100% !important;
    height: 100dvh;
    margin: 0 !important;
  }
  body.single-du-thuyen #roomGalleryModal .modal-content { border: 0 !important; border-radius: 0 !important; }
  body.single-du-thuyen #roomGalleryModal .modal-header { min-height: 64px; padding: 10px 13px 10px 17px !important; }
  body.single-du-thuyen #roomGalleryModal .modal-title { font-size: 22px !important; }
  body.single-du-thuyen #roomGalleryModal .btn-close { width: 38px; height: 38px; }
  body.single-du-thuyen #roomGalleryModal .modal-body > .row > .col-lg-7 { height: 42dvh; min-height: 260px; }
  body.single-du-thuyen #roomGalleryModal .carousel-control-prev,
  body.single-du-thuyen #roomGalleryModal .carousel-control-next { width: 42px; height: 42px; margin: 0 10px; }
  body.single-du-thuyen #roomGalleryModal .room-detail-scroll { padding: 23px 18px 18px !important; }
  body.single-du-thuyen #roomGalleryModal .room-name { font-size: 27px !important; }
  body.single-du-thuyen #roomGalleryModal .amenities-check-list { grid-template-columns: 1fr !important; }
  body.single-du-thuyen #roomGalleryModal .room-booking-sticky {
    position: sticky !important;
    bottom: 0;
    z-index: 3;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
  }
}

/* Keep the full horizontal cruise search available on desktop. */
@media (min-width: 800px) {
  body.single-du-thuyen .cruise-detail-search-shell {
    display: block;
    padding: 10px 0;
  }

  .cruise-detail-search-shell .cruise-mobile-search-toggle {
    display: none;
  }

  .cruise-detail-search-shell .cruise-detail-search-panel {
    display: block;
  }

  .cruise-detail-search-shell .cruise-search-box {
    max-width: none;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .cruise-detail-search-shell .cruise-search-tabs {
    display: none;
  }

  .cruise-detail-search-shell .search-row {
    grid-template-columns: minmax(220px, 1.55fr) minmax(150px, .7fr) minmax(175px, .85fr) minmax(220px, 1.15fr) minmax(175px, .85fr) 58px;
    gap: 12px;
    align-items: center;
  }

  .cruise-detail-search-shell .field-label {
    display: none;
  }

  .cruise-detail-search-shell .form-control,
  .cruise-detail-search-shell .guest-trigger,
  .cruise-detail-search-shell .btn-search,
  .cruise-detail-search-shell #starRatingUI {
    height: 48px !important;
  }

  .cruise-detail-search-shell #starRatingUI {
    display: flex;
    align-items: center;
    padding: 0 12px;
    border: 0;
    border-radius: 6px;
    background: #fff;
  }

  .cruise-detail-search-shell .btn-search {
    min-width: 0;
    padding: 0;
  }

  .cruise-detail-search-shell .btn-search span {
    display: none;
  }
}

@media (min-width: 800px) and (max-width: 1199px) {
  .cruise-detail-search-shell .search-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cruise-detail-search-shell .btn-search {
    width: 100%;
  }
}

/* Brand-consistent cruise accents: gold for highlights, navy for structure. */
body.single-du-thuyen .vds-cruise-single .product-header .score,
body.single-du-thuyen .vds-cruise-single .booking-sidebar .section-features li::before {
  background: var(--single-gold-dark);
}

body.single-du-thuyen .vds-cruise-single .product-header .rating-text,
body.single-du-thuyen .vds-cruise-single .product-header .view-map,
body.single-du-thuyen .vds-cruise-single .section-reviews .score-large,
body.single-du-thuyen .vds-cruise-single .login-saving-callout .icon,
body.single-du-thuyen .vds-cruise-single .login-saving-callout .btn-link {
  color: var(--single-gold-dark);
}

body.single-du-thuyen .vds-cruise-single .btn-more {
  border-color: var(--single-gold-dark);
  color: var(--single-gold-dark);
}

body.single-du-thuyen .vds-cruise-single .section-reviews .subrating-bar-fill {
  background: var(--single-gold-dark) !important;
}

body.single-du-thuyen .vds-cruise-single .check-availability .new-price {
  color: var(--single-gold-dark) !important;
}

/* Remove legacy bright-blue accents from cruise-detail calls to action. */
body.single-du-thuyen .vds-cruise-single .section-description .btn-more,
body.single-du-thuyen .vds-cruise-single .btn-more {
  border-color: var(--single-gold) !important;
  background: var(--single-gold) !important;
  color: var(--single-navy) !important;
}

/* Gallery links should remain text links, without the filled gold button background. */
body.single-du-thuyen .vds-cruise-single a.btn-room-gallery,
body.single-du-thuyen .vds-cruise-single a.btn-room-gallery:hover,
body.single-du-thuyen .vds-cruise-single a.btn-room-gallery:focus {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--single-gold-dark) !important;
}

body.single-du-thuyen .vds-cruise-single .group-booking .btn,
body.single-du-thuyen .vds-cruise-single .group-booking .btn-primary {
  background: var(--single-gold) !important;
  color: var(--single-navy) !important;
}

body.single-du-thuyen .vds-cruise-single .availability-form .date-input-group input,
body.single-du-thuyen .vds-cruise-single .availability-form .guest-picker-trigger span,
body.single-du-thuyen .vds-cruise-single .availability-form .date-input-group i,
body.single-du-thuyen .vds-cruise-single .availability-form .guest-picker-trigger i {
  color: var(--single-navy) !important;
}

body.single-du-thuyen .vds-cruise-single .check-availability .group-check label {
  color: #5e6670 !important;
}

/* Product header: override the old blue rating and map-link rules. */
body.single-du-thuyen .product-header .score {
  background: var(--single-gold-dark) !important;
}

body.single-du-thuyen .product-header .rating-text {
  color: var(--single-gold-dark) !important;
}

body.single-du-thuyen .product-header .meta-info,
body.single-du-thuyen .product-header .meta-info .meta-item,
body.single-du-thuyen .product-header .meta-info .meta-item svg {
  color: var(--single-navy) !important;
}

body.single-du-thuyen .product-header .view-map {
  border: 1px solid var(--single-gold-dark) !important;
  border-radius: 4px;
  color: var(--single-gold-dark) !important;
  text-decoration: none !important;
}

/* Refined cruise-search rating and guest controls. */
body.single-du-thuyen .cruise-detail-search-shell #starRatingUI {
  gap: 3px;
  padding: 5px 9px;
  border: 1px solid #d9dfe6 !important;
  border-radius: 10px !important;
  background: #fff;
}

body.single-du-thuyen .cruise-detail-search-shell #starRatingUI .star-item {
  display: grid;
  width: 27px;
  height: 27px;
  padding: 0;
  border: 0 !important;
  border-radius: 50%;
  place-items: center;
  background: transparent !important;
  color: #a7b0ba !important;
  font-size: 16px;
  line-height: 1;
  transition: background .18s ease, color .18s ease;
}

body.single-du-thuyen .cruise-detail-search-shell #starRatingUI .star-item:hover,
body.single-du-thuyen .cruise-detail-search-shell #starRatingUI .star-item.filled {
  background: rgba(214, 170, 40, .14) !important;
  color: var(--single-gold-dark) !important;
}

body.single-du-thuyen .cruise-detail-search-shell #starRatingUI .star-label {
  margin-left: 5px;
  color: var(--single-navy) !important;
  font-size: 13px;
  white-space: nowrap;
}

body.single-du-thuyen .cruise-detail-search-shell .guest-popup {
  padding: 15px;
  border: 1px solid rgba(214, 170, 40, .35);
  border-radius: 12px;
  box-shadow: 0 16px 34px rgba(6, 26, 46, .2);
}

body.single-du-thuyen .cruise-detail-search-shell .guest-row {
  padding: 5px 0;
  color: var(--single-navy);
  font-weight: 600;
}

body.single-du-thuyen .cruise-detail-search-shell .guest-row .controls {
  gap: 7px;
}

body.single-du-thuyen .cruise-detail-search-shell .guest-row .btn-minus,
body.single-du-thuyen .cruise-detail-search-shell .guest-row .btn-plus {
  display: grid;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid rgba(214, 170, 40, .55);
  border-radius: 50%;
  place-items: center;
  background: #fffaf0;
  color: var(--single-gold-dark);
  font-size: 18px;
  line-height: 1;
}

body.single-du-thuyen .cruise-detail-search-shell .guest-row input[type="number"] {
  width: 48px;
  height: 32px;
  padding: 0;
  border: 1px solid #d9dfe6;
  border-radius: 8px;
  color: var(--single-navy);
  font-weight: 700;
  text-align: center;
}

body.single-du-thuyen .cruise-detail-search-shell .guest-popup .actions .btn {
  padding: 7px 15px;
  border: 0;
  border-radius: 7px;
  background: var(--single-gold);
  color: var(--single-navy);
  font-weight: 800;
}

/* On phones, keep the complete search panel below the header and one field wide. */
@media (max-width: 799px) {
  .cruise-detail-search-shell {
    display: block;
    padding: 10px 0;
  }

  .cruise-detail-search-shell .cruise-mobile-search-toggle {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 58px;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid rgba(214, 170, 40, .55);
    border-radius: 8px;
    background: rgba(255, 255, 255, .04);
    color: #fff;
    text-align: left;
  }

  .cruise-detail-search-shell .cruise-mobile-search-toggle > :first-child {
    color: var(--single-gold);
    font-size: 18px;
  }

  .cruise-detail-search-shell .cruise-mobile-search-toggle span {
    display: grid;
    flex: 1 1 auto;
    gap: 2px;
  }

  .cruise-detail-search-shell .cruise-mobile-search-toggle strong {
    color: #fff;
    font-size: 14px;
    line-height: 1.2;
  }

  .cruise-detail-search-shell .cruise-mobile-search-toggle small {
    color: #c7cfda;
    font-size: 12px;
  }

  .cruise-detail-search-shell .cruise-mobile-search-toggle > :last-child {
    color: var(--single-gold);
    font-size: 13px;
    transition: transform .2s ease;
  }

  .cruise-detail-search-shell.is-open .cruise-mobile-search-toggle > :last-child {
    transform: rotate(180deg);
  }

  .cruise-detail-search-shell .cruise-detail-search-panel {
    display: none;
  }

  .cruise-detail-search-shell.is-open .cruise-detail-search-panel {
    display: block;
    margin-top: 10px;
  }

  .cruise-detail-search-shell .cruise-search-box {
    padding: 18px 16px 16px;
  }

  .cruise-detail-search-shell .cruise-search-tabs {
    margin-bottom: 16px;
  }

  .cruise-detail-search-shell .search-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 13px;
  }
}

/* Override the dark booking-flow theme with a bright, high-contrast surface. */
body.single-du-thuyen #roomOrderModal {
  --booking-navy: #08233d;
  --booking-navy-soft: #eef4f8;
  --booking-panel: #ffffff;
  --booking-gold: #c99712;
  --booking-border: #d8e1e9;
  color: #162b3d;
}
body.single-du-thuyen #roomOrderModal .modal-content { background: #f4f7fa !important; color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .order-header { border-bottom-color: #d8e1e9 !important; background: #ffffff !important; backdrop-filter: none; }
body.single-du-thuyen #roomOrderModal .order-header .steps::before { background: #cbd5df !important; }
body.single-du-thuyen #roomOrderModal .order-header .step .circle { border-color: #b8c6d3 !important; background: #eff4f8 !important; color: #557086 !important; }
body.single-du-thuyen #roomOrderModal .order-header .step .label { color: #64748b !important; }
body.single-du-thuyen #roomOrderModal .order-header .step.active .label,
body.single-du-thuyen #roomOrderModal .order-header .step.completed .label { color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .order-header .close-order { border-color: #cbd5df !important; background-color: #f8fafc !important; filter: none; }
body.single-du-thuyen #roomOrderModal .order-body { background: #f4f7fa !important; }
body.single-du-thuyen #roomOrderModal .order-hero { border-bottom-color: #d8e1e9 !important; }
body.single-du-thuyen #roomOrderModal .panel,
body.single-du-thuyen #roomOrderModal .order-summary { color: #162b3d !important; border-color: var(--booking-border) !important; background: #ffffff !important; box-shadow: 0 8px 24px rgba(15,45,70,.08) !important; backdrop-filter: none; }
body.single-du-thuyen #roomOrderModal #roomAddonPanel { background: #f8fafc !important; }
body.single-du-thuyen #roomOrderModal .panel-title { border-bottom-color: #dce5ed !important; }
body.single-du-thuyen #roomOrderModal .ticket-row,
body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row { color: #162b3d !important; border-color: #d7e1e9 !important; background: #f7fafc !important; }
body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row .ticket-qty { border-top-color: #dce5ed !important; }
body.single-du-thuyen #roomOrderModal label,
body.single-du-thuyen #roomOrderModal .ticket-name,
body.single-du-thuyen #roomOrderModal .form-label,
body.single-du-thuyen #roomOrderModal .form-check-label,
body.single-du-thuyen #roomOrderModal .summary-row,
body.single-du-thuyen #roomOrderModal .summary-row span,
body.single-du-thuyen #roomOrderModal .ticket-qty .qty { color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .ticket-desc,
body.single-du-thuyen #roomOrderModal .text-muted,
body.single-du-thuyen #roomOrderModal small,
body.single-du-thuyen #roomOrderModal .svc-info,
body.single-du-thuyen #roomOrderModal .summary-amenities,
body.single-du-thuyen #roomOrderModal .summary-amenities span,
body.single-du-thuyen #roomOrderModal .summary-amenities li { color: #5e7182 !important; }
body.single-du-thuyen #roomOrderModal input,
body.single-du-thuyen #roomOrderModal select,
body.single-du-thuyen #roomOrderModal textarea { border-color: #cbd8e3 !important; background: #ffffff !important; color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .ticket-qty .btn-minus,
body.single-du-thuyen #roomOrderModal .ticket-qty .btn-plus { background: #ffffff !important; color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .summary-row { border-bottom-color: #dce5ed !important; }
body.single-du-thuyen #roomOrderModal .order-actions { border-top-color: #d8e1e9 !important; background: linear-gradient(180deg, rgba(244,247,250,.78), #ffffff 28%) !important; }
body.single-du-thuyen #roomOrderModal .order-actions .btn-secondary { border-color: #aebdcc !important; background: #ffffff !important; color: #162b3d !important; }
body.single-du-thuyen #roomOrderModal .field-error { color: #c2410c !important; }
body.single-du-thuyen #roomOrderModal .success-box { background: #ffffff !important; color: #162b3d !important; box-shadow: 0 16px 40px rgba(15,45,70,.12) !important; }

/* Final contrast pass: these rules follow the dark-theme declarations above. */
body.single-du-thuyen #roomOrderModal { --booking-border: #afc1d0; }
body.single-du-thuyen #roomOrderModal .panel,
body.single-du-thuyen #roomOrderModal .order-summary { border-width: 1.5px !important; box-shadow: 0 8px 22px rgba(15,45,70,.10) !important; }
body.single-du-thuyen #roomOrderModal #roomAddonPanel { border-color: #d5ae44 !important; }
body.single-du-thuyen #roomOrderModal .ticket-row,
body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row { border-color: #bfd0dd !important; border-width: 1.5px !important; background: #f5f9fc !important; }
body.single-du-thuyen #roomOrderModal .order-step.step-1 .order-left > #roomAddonPanel > .ticket-row .ticket-name,
body.single-du-thuyen #roomOrderModal .ticket-name,
body.single-du-thuyen #roomOrderModal .summary-row,
body.single-du-thuyen #roomOrderModal .summary-row span,
body.single-du-thuyen #roomOrderModal .summary-row strong,
body.single-du-thuyen #roomOrderModal .summary-amenities,
body.single-du-thuyen #roomOrderModal .summary-amenities span,
body.single-du-thuyen #roomOrderModal .summary-amenities li { color: #213d56 !important; }
body.single-du-thuyen #roomOrderModal .ticket-desc,
body.single-du-thuyen #roomOrderModal .text-muted,
body.single-du-thuyen #roomOrderModal small,
body.single-du-thuyen #roomOrderModal .svc-info { color: #405c74 !important; }
body.single-du-thuyen #roomOrderModal .panel-title { border-bottom-color: #bfd0dd !important; }
body.single-du-thuyen #roomOrderModal .summary-row { border-bottom-color: #c8d6e1 !important; }

/* Pure dark text, placed last to override every prior booking style. */
body.single-du-thuyen #roomOrderModal .panel,
body.single-du-thuyen #roomOrderModal .order-summary,
body.single-du-thuyen #roomOrderModal label,
body.single-du-thuyen #roomOrderModal .ticket-name,
body.single-du-thuyen #roomOrderModal .form-label,
body.single-du-thuyen #roomOrderModal .form-check-label,
body.single-du-thuyen #roomOrderModal .summary-row,
body.single-du-thuyen #roomOrderModal .summary-row span,
body.single-du-thuyen #roomOrderModal .summary-row strong,
body.single-du-thuyen #roomOrderModal .summary-amenities,
body.single-du-thuyen #roomOrderModal .summary-amenities span,
body.single-du-thuyen #roomOrderModal .summary-amenities li,
body.single-du-thuyen #roomOrderModal .ticket-qty .qty { color: #0b0f14 !important; }
body.single-du-thuyen #roomOrderModal .ticket-desc,
body.single-du-thuyen #roomOrderModal .text-muted,
body.single-du-thuyen #roomOrderModal small,
body.single-du-thuyen #roomOrderModal .svc-info { color: #27323d !important; }

/* Final live-UI contrast: all booking copy is true black; gold is reserved for prices/actions. */
body.single-du-thuyen #roomOrderModal .panel-title,
body.single-du-thuyen #roomOrderModal .panel-title i,
body.single-du-thuyen #roomOrderModal .ticket-name,
body.single-du-thuyen #roomOrderModal .ticket-desc,
body.single-du-thuyen #roomOrderModal .form-label,
body.single-du-thuyen #roomOrderModal label,
body.single-du-thuyen #roomOrderModal .form-check-label,
body.single-du-thuyen #roomOrderModal .summary-row,
body.single-du-thuyen #roomOrderModal .summary-row span,
body.single-du-thuyen #roomOrderModal .summary-row strong,
body.single-du-thuyen #roomOrderModal .summary-amenities,
body.single-du-thuyen #roomOrderModal .summary-amenities span,
body.single-du-thuyen #roomOrderModal .summary-amenities li,
body.single-du-thuyen #roomOrderModal .text-muted,
body.single-du-thuyen #roomOrderModal small,
body.single-du-thuyen #roomOrderModal .svc-info,
body.single-du-thuyen #roomOrderModal .ticket-qty .qty,
body.single-du-thuyen #roomOrderModal .ticket-qty .btn-minus,
body.single-du-thuyen #roomOrderModal .ticket-qty .btn-plus,
body.single-du-thuyen #roomOrderModal .order-actions .btn-secondary {
  color: #000000 !important;
}
body.single-du-thuyen #roomOrderModal .panel,
body.single-du-thuyen #roomOrderModal .order-summary,
body.single-du-thuyen #roomOrderModal .ticket-row {
  border-color: #9aaaba !important;
  border-width: 2px !important;
}
body.single-du-thuyen #roomOrderModal .panel-title,
body.single-du-thuyen #roomOrderModal .summary-row {
  border-bottom-color: #9aaaba !important;
}
