/**
 * Tour Detail Page — Complete Redesign
 * Phase 3 Implementation
 * Scope: CSS, layout, spacing, typography, animation only.
 * Backend logic, routes, data variables untouched.
 */

/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */
:root {
  --td-main-color: var(--main-color, #3554D1);
  --td-color-include:      #16A34A;
  --td-color-include-bg:   #F0FDF4;
  --td-color-exclude:      #DC2626;
  --td-color-exclude-bg:   #FEF2F2;
  --td-color-surface:      #F9FAFB;
  --td-color-border:       #E5E7EB;
  --td-color-text-primary: #111827;
  --td-color-text-secondary: #111827;
  --td-color-text-muted:   #374151;
  --td-color-white:        #ffffff;
  --td-shadow-sm:  0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
  --td-shadow-md:  0 4px 12px rgba(0,0,0,0.08);
  --td-shadow-lg:  0 8px 24px rgba(0,0,0,0.10);
  --td-radius:     12px;
  --td-radius-sm:  8px;
  /* Spacing scale (4px base) */
  --td-sp-1: 4px;
  --td-sp-2: 8px;
  --td-sp-3: 12px;
  --td-sp-4: 16px;
  --td-sp-5: 20px;
  --td-sp-6: 24px;
  --td-sp-8: 32px;
  --td-sp-12: 48px;
}

/* ============================================================
   2. LAYOUT — CSS GRID (fixes broken calc() math)
   ============================================================ */

/* Outer page wrapper */
.bravo_detail_tour {
  background: #F9FAFB;
}

/* Main two-column grid */
.tour-detail-with-sidebar {
  display: grid !important;
  grid-template-columns: 1fr 320px !important;
  grid-template-areas: "content sidebar" !important;
  gap: var(--td-sp-6) !important;
  max-width: 1280px;
  margin: 0 auto;
  padding: var(--td-sp-6) var(--td-sp-6) !important;
  align-items: start;
  box-sizing: border-box;
}

.tour-content-area {
  grid-area: content;
  min-width: 0; /* prevent grid blowout */
  flex: none !important;
  max-width: 100% !important;
}

.tour-sidebar {
  grid-area: sidebar;
  position: sticky !important;
  top: 80px !important;
  align-self: start !important;
  max-height: calc(100vh - 96px) !important;
  overflow-y: auto !important;
  width: auto !important;
  z-index: 100 !important;
}

/* Collapse to single column below 1024px */
@media (max-width: 1023px) {
  .tour-detail-with-sidebar {
    grid-template-columns: 1fr !important;
    grid-template-areas: "content" !important;
    padding: var(--td-sp-4) var(--td-sp-4) !important;
    gap: 0 !important;
  }
  .tour-sidebar {
    display: none !important;
  }
  .tour-content-area {
    grid-area: content;
  }
}

@media (max-width: 479px) {
  .tour-detail-with-sidebar {
    padding: var(--td-sp-3) var(--td-sp-3) !important;
  }
}

/* Mobile bottom bar padding compensation */
@media (max-width: 1023px) {
  .tour-content-area {
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 16px));
  }
}

/* ============================================================
   3. UNIVERSAL SECTION CARD
   ============================================================ */

/* Every .tour-section gets a consistent card wrapper */
.tour-section {
  margin-bottom: var(--td-sp-6) !important;
  /* Scroll animation — initial hidden state set HERE in CSS, not in JS */
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.45s ease, transform 0.45s ease;
}

/* Visible state added by IntersectionObserver */
.tour-section.is-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Sections above the fold are immediately visible */
.tour-section.no-animate {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Reduced motion — skip all animations */
@media (prefers-reduced-motion: reduce) {
  .tour-section {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Universal card style — applied to the inner wrapper of each section */
.tour-section-card {
  background: var(--td-color-white);
  border-radius: var(--td-radius);
  padding: var(--td-sp-6);
  box-shadow: var(--td-shadow-sm);
  border: 1px solid var(--td-color-border);
  transition: box-shadow 0.25s ease, transform 0.25s ease;
  overflow: hidden;
}

.tour-section-card:hover {
  box-shadow: var(--td-shadow-md);
}

/* Override the old .bg-white.px-30.py-30 pattern */
.tour-section .bg-white.px-30.py-30,
.tour-section .bg-white.rounded-4.border-light.shadow-4.px-30.py-30 {
  background: var(--td-color-white) !important;
  border-radius: var(--td-radius) !important;
  padding: var(--td-sp-6) !important;
  box-shadow: var(--td-shadow-sm) !important;
  border: 1px solid var(--td-color-border) !important;
  transition: box-shadow 0.25s ease !important;
  /* Remove the old hover transform that caused layout shift */
  transform: none !important;
}

.tour-section .bg-white.px-30.py-30:hover,
.tour-section .bg-white.rounded-4.border-light.shadow-4.px-30.py-30:hover {
  box-shadow: var(--td-shadow-md) !important;
  transform: none !important; /* No layout-shifting hover lift */
}

/* Responsive card padding */
@media (max-width: 767px) {
  .tour-section .bg-white.px-30.py-30,
  .tour-section .bg-white.rounded-4.border-light.shadow-4.px-30.py-30 {
    padding: var(--td-sp-4) !important;
  }
}

@media (max-width: 479px) {
  .tour-section .bg-white.px-30.py-30,
  .tour-section .bg-white.rounded-4.border-light.shadow-4.px-30.py-30 {
    padding: var(--td-sp-3) !important;
  }
}

/* Section title — consistent across all sections */
.tour-section h3.text-22 {
  font-size: 20px !important;
  font-weight: 600 !important;
  color: var(--td-color-text-primary) !important;
  margin-bottom: var(--td-sp-4) !important;
  padding-bottom: var(--td-sp-2) !important;
  border-bottom: 2px solid var(--td-main-color) !important;
  display: inline-block !important;
  font-family: inherit !important;
}

/* ============================================================
   4. HERO BANNER
   ============================================================ */

.modern-tour-banner {
  min-height: 480px !important;
  max-height: 600px;
  background-attachment: scroll !important; /* Fix iOS Safari bug */
  background-size: cover !important;
  background-position: center !important;
  display: flex !important;
  align-items: flex-end !important;
  position: relative;
  overflow: hidden;
}

/* Gradient overlay for text legibility */
.modern-tour-banner .banner-overlay {
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.10) 0%,
    rgba(0,0,0,0.55) 70%,
    rgba(0,0,0,0.75) 100%
  ) !important;
}

.modern-tour-banner .banner-content {
  padding: var(--td-sp-8) 0 var(--td-sp-6) !important;
}

@media (max-width: 767px) {
  .modern-tour-banner {
    min-height: 320px !important;
    max-height: 420px;
  }
  .modern-tour-banner .banner-content {
    padding: var(--td-sp-6) 0 var(--td-sp-4) !important;
  }
}

/* ============================================================
   5. SIDEBAR NAV
   ============================================================ */

.tour-sidebar {
  background: var(--td-color-white) !important;
  border-radius: var(--td-radius) !important;
  padding: var(--td-sp-5) !important;
  box-shadow: var(--td-shadow-md) !important;
  border: 1px solid var(--td-color-border) !important;
}

.tour-sidebar-nav {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.tour-sidebar-nav-item {
  margin-bottom: var(--td-sp-1) !important;
}

.tour-sidebar-nav-link {
  display: flex !important;
  align-items: center !important;
  padding: 10px var(--td-sp-3) !important;
  text-decoration: none !important;
  color: #111827 !important;
  border-radius: var(--td-radius-sm) !important;
  transition: background 0.2s ease, color 0.2s ease !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  /* Remove the translateX hover that caused layout shift */
  transform: none !important;
}

.tour-sidebar-nav-link:hover {
  background: var(--td-color-surface) !important;
  color: var(--td-color-text-primary) !important;
  transform: none !important;
  text-decoration: none !important;
}

.tour-sidebar-nav-link.active {
  background: var(--td-color-surface) !important;
  color: var(--td-main-color) !important;
  font-weight: 600 !important;
  transform: none !important;
}

/* Remove the sliding ::before pseudo-element */
.tour-sidebar-nav-link::before {
  display: none !important;
}

.tour-sidebar-nav-icon {
  margin-right: var(--td-sp-2) !important;
  font-size: 16px !important;
  width: 20px !important;
  text-align: center !important;
  transition: none !important;
}

.tour-sidebar-nav-link:hover .tour-sidebar-nav-icon,
.tour-sidebar-nav-link.active .tour-sidebar-nav-icon {
  transform: none !important;
}

/* ============================================================
   6. OVERVIEW SECTION — Tour Snapshot
   ============================================================ */

/* Tour snapshot items — controlled flex wrap */
.tour-section #tour-overview .d-flex.flex-wrap {
  gap: var(--td-sp-4) !important;
}

.tour-section #tour-overview .d-flex.flex-wrap > .d-flex {
  flex: 1 1 140px !important;
  max-width: calc(50% - var(--td-sp-2)) !important;
  min-width: 0 !important;
  align-items: flex-start;
}

@media (min-width: 768px) {
  .tour-section #tour-overview .d-flex.flex-wrap > .d-flex {
    max-width: calc(25% - var(--td-sp-3)) !important;
  }
}

/* CMS content tables — scroll wrapper */
.content-text {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

.content-text table {
  min-width: 400px;
  width: 100% !important;
  border-collapse: collapse !important;
  margin: var(--td-sp-4) 0 !important;
  font-size: 14px !important;
}

.content-text table th,
.content-text table td {
  padding: 10px 12px !important;
  border: 1px solid var(--td-color-border) !important;
  text-align: left !important;
  vertical-align: top !important;
}

.content-text table th {
  background: var(--td-color-surface) !important;
  font-weight: 600 !important;
  color: var(--td-color-text-primary) !important;
}

.content-text table tr:nth-child(even) td {
  background: #FAFAFA !important;
}

/* ============================================================
   7. GALLERY SECTION
   ============================================================ */

#tour-gallery .luxury-main-image-container {
  /* Let height adapt to the image — no fixed height that forces cropping */
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  border-radius: var(--td-radius) !important;
  overflow: hidden !important;
  position: relative !important;
  background: var(--td-color-surface) !important;
  /* Center the image block */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Remove the gold overlay tint */
#tour-gallery .luxury-main-image-container::before {
  display: none !important;
}

#tour-gallery .luxury-main-image {
  /* Fill the full width, height scales naturally — no cropping */
  width: 100% !important;
  height: auto !important;
  max-height: 70vh !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
  transition: none !important;
}

#tour-gallery .luxury-main-image:hover {
  transform: none !important;
}

/* Gallery nav arrows — absolutely positioned over the image */
#tour-gallery .luxury-nav-arrow {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 10 !important;
  background: rgba(255,255,255,0.92) !important;
  border: 1px solid var(--td-color-border) !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  color: var(--td-color-text-primary) !important;
  transition: background 0.2s ease, border-color 0.2s ease !important;
  box-shadow: var(--td-shadow-sm) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#tour-gallery .luxury-nav-prev {
  left: 12px !important;
}

#tour-gallery .luxury-nav-next {
  right: 12px !important;
}

#tour-gallery .luxury-nav-arrow:hover {
  background: var(--td-main-color) !important;
  color: white !important;
  border-color: var(--td-main-color) !important;
  transform: translateY(-50%) !important;
  box-shadow: var(--td-shadow-md) !important;
}

/* Image counter — bottom right of container */
#tour-gallery .luxury-image-counter {
  position: absolute !important;
  bottom: 12px !important;
  right: 12px !important;
  z-index: 10 !important;
  background: rgba(0,0,0,0.6) !important;
  backdrop-filter: blur(4px) !important;
  border: none !important;
  color: white !important;
  font-size: 13px !important;
  padding: 6px 14px !important;
  border-radius: 20px !important;
}

/* Thumbnails */
.luxury-thumbnail-item {
  width: 80px !important;
  height: 60px !important;
  border-radius: var(--td-radius-sm) !important;
  border: 2px solid transparent !important;
  transition: border-color 0.2s ease, transform 0.2s ease !important;
  box-shadow: var(--td-shadow-sm) !important;
}

.luxury-thumbnail-item.active {
  border-color: var(--td-main-color) !important;
  transform: none !important;
  box-shadow: var(--td-shadow-md) !important;
}

.luxury-thumbnail-item:hover {
  transform: none !important;
  border-color: var(--td-color-border) !important;
}

.luxury-scroll-btn {
  background: var(--td-color-white) !important;
  border: 1px solid var(--td-color-border) !important;
  border-radius: 50% !important;
  width: 36px !important;
  height: 36px !important;
  box-shadow: var(--td-shadow-sm) !important;
  transition: background 0.2s ease !important;
}

.luxury-scroll-btn:hover {
  background: var(--td-color-surface) !important;
  transform: none !important;
}

.luxury-gallery-info {
  background: var(--td-color-surface) !important;
  border: 1px solid var(--td-color-border) !important;
  border-radius: var(--td-radius-sm) !important;
  padding: var(--td-sp-3) var(--td-sp-4) !important;
  margin-top: var(--td-sp-4) !important;
}

@media (max-width: 767px) {
  #tour-gallery .luxury-main-image-container {
    /* Still adaptive on mobile */
    height: auto !important;
    min-height: 0 !important;
  }
  #tour-gallery .luxury-main-image {
    max-height: 60vw !important; /* Reasonable cap on small screens */
  }
  .luxury-thumbnail-item {
    width: 60px !important;
    height: 46px !important;
  }
}

/* ============================================================
   8. HOTEL CAROUSEL
   ============================================================ */

.tour-hotel-card {
  background: var(--td-color-white) !important;
  border: 1px solid var(--td-color-border) !important;
  border-radius: var(--td-radius) !important;
  overflow: hidden !important;
  transition: box-shadow 0.25s ease !important;
  /* Remove the scale+lift hover that causes layout shift */
  transform: none !important;
}

.tour-hotel-card:hover {
  box-shadow: var(--td-shadow-md) !important;
  transform: none !important;
  border-color: var(--td-color-border) !important;
}

/* Remove the gold overlay pseudo-element */
.tour-hotel-card::before {
  display: none !important;
}

.tour-hotel-card__image {
  height: 200px !important;
  overflow: hidden !important;
  position: relative !important;
}

.tour-hotel-card__image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: none !important; /* Remove scale on hover */
}

.tour-hotel-card:hover .tour-hotel-card__image img {
  transform: none !important;
}

.tour-hotel-card__content {
  padding: var(--td-sp-4) !important;
}

.tour-hotel-card__title {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--td-color-text-primary) !important;
  margin-bottom: var(--td-sp-1) !important;
  /* Controlled truncation */
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  white-space: normal !important;
}

.tour-hotel-card__location {
  font-size: 13px !important;
  color: var(--td-color-text-secondary) !important;
}

/* Hotel carousel navigation */
.arrow-left-hover,
.arrow-right-hover {
  background: var(--td-color-white) !important;
  border: 1px solid var(--td-color-border) !important;
  border-radius: 50% !important;
  width: 44px !important;
  height: 44px !important;
  box-shadow: var(--td-shadow-sm) !important;
  transition: background 0.2s ease, border-color 0.2s ease !important;
  color: var(--td-color-text-primary) !important;
  font-size: 18px !important;
}

.arrow-left-hover:hover,
.arrow-right-hover:hover {
  background: var(--td-main-color) !important;
  color: white !important;
  border-color: var(--td-main-color) !important;
  transform: none !important;
  box-shadow: var(--td-shadow-md) !important;
}

/* Pagination dots */
.pagination.-dots .swiper-pagination-bullet {
  width: 8px !important;
  height: 8px !important;
  background: var(--td-color-border) !important;
  border-radius: 50% !important;
  opacity: 1 !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
  border: none !important;
}

.pagination.-dots .swiper-pagination-bullet-active {
  background: var(--td-main-color) !important;
  transform: scale(1.3) !important;
  box-shadow: none !important;
}

/* Mobile hotel carousel */
@media (max-width: 767px) {
  .tour-hotel-card__image {
    height: 160px !important;
  }
  .tour-hotel-card:active {
    transform: scale(0.99) !important;
  }
}

/* ============================================================
   9. ITINERARY ACCORDION
   ============================================================ */

.accordion.-map .accordion__item {
  background: var(--td-color-white) !important;
  border-radius: var(--td-radius-sm) !important;
  border: 1px solid var(--td-color-border) !important;
  margin-bottom: var(--td-sp-2) !important;
  overflow: hidden !important;
  transition: box-shadow 0.2s ease !important;
  box-shadow: none !important;
}

.accordion.-map .accordion__item:hover {
  box-shadow: var(--td-shadow-sm) !important;
  transform: none !important;
}

.accordion.-map .accordion__item .d-flex {
  padding: var(--td-sp-3) var(--td-sp-4) !important;
  cursor: pointer !important;
}

.accordion.-map .accordion__item .d-flex:hover {
  background: var(--td-color-surface) !important;
}

.accordion.-map .accordion__item .text-16 {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--td-color-text-primary) !important;
}

.accordion.-map .accordion__item .text-14 {
  color: var(--td-color-text-secondary) !important;
  font-size: 13px !important;
}

.accordion.-map .accordion__content {
  border-top: 1px solid var(--td-color-border) !important;
  background: var(--td-color-surface) !important;
  padding: var(--td-sp-4) !important;
}

.accordion.-map .accordion__content img {
  max-width: 180px !important;
  height: 110px !important;
  object-fit: cover !important;
  border-radius: var(--td-radius-sm) !important;
  box-shadow: var(--td-shadow-sm) !important;
}

/* Day number badge */
.accordion.-map .accordion__icon {
  background: var(--td-main-color) !important;
  color: white !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  border-radius: 50% !important;
  min-width: 36px !important;
  width: 36px !important;
  height: 36px !important;
  font-size: 13px !important;
}

/* ============================================================
   10. MAP SECTION
   ============================================================ */

.location-map {
  border-radius: var(--td-radius) !important;
  overflow: hidden !important;
  box-shadow: var(--td-shadow-sm) !important;
}

.map-controls {
  background: var(--td-color-white) !important;
  border: 1px solid var(--td-color-border) !important;
  border-radius: var(--td-radius) var(--td-radius) 0 0 !important;
  padding: var(--td-sp-4) var(--td-sp-5) !important;
  box-shadow: none !important;
}

.route-info h6 {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--td-color-text-primary) !important;
  margin-bottom: var(--td-sp-2) !important;
}

.stat-item {
  font-size: 13px !important;
  color: var(--td-color-text-secondary) !important;
}

.stat-item i {
  color: var(--td-main-color) !important;
}

.location-map .map {
  border-radius: 0 0 var(--td-radius) var(--td-radius) !important;
}

@media (max-width: 767px) {
  .map-controls {
    flex-direction: column !important;
    gap: var(--td-sp-3) !important;
    padding: var(--td-sp-3) var(--td-sp-4) !important;
  }
  .route-stats {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: var(--td-sp-3) !important;
  }
}

/* ============================================================
   11. INCLUDE / EXCLUDE SECTION
   ============================================================ */

.include-exclude-section {
  border-radius: var(--td-radius-sm) !important;
  overflow: hidden !important;
  border: 1px solid var(--td-color-border) !important;
  box-shadow: none !important;
}

.include-section {
  background: var(--td-color-include-bg) !important;
  border-right: 1px solid var(--td-color-border) !important;
}

.exclude-section {
  background: var(--td-color-exclude-bg) !important;
}

.include-section .section-header {
  border-bottom-color: var(--td-color-include) !important;
  color: #065f46 !important;
}

.exclude-section .section-header {
  border-bottom-color: var(--td-color-exclude) !important;
  color: #991b1b !important;
}

.include-section .section-icon {
  background: var(--td-color-include) !important;
}

.exclude-section .section-icon {
  background: var(--td-color-exclude) !important;
}

.include-section .item-icon {
  background: var(--td-color-include) !important;
}

.exclude-section .item-icon {
  background: var(--td-color-exclude) !important;
}

/* Remove hover translateX — causes layout shift */
.item:hover {
  transform: none !important;
  background: rgba(0,0,0,0.03) !important;
  border-radius: 4px !important;
}

.include-section .item:hover {
  background: rgba(16, 163, 74, 0.08) !important;
}

.exclude-section .item:hover {
  background: rgba(220, 38, 38, 0.08) !important;
}

/* ============================================================
   12. FAQ ACCORDION
   ============================================================ */

.bravo-faq-lists .accordion__item {
  border-radius: var(--td-radius-sm) !important;
  border: 1px solid var(--td-color-border) !important;
  margin-bottom: var(--td-sp-2) !important;
  transition: box-shadow 0.2s ease !important;
}

.bravo-faq-lists .accordion__item:hover {
  box-shadow: var(--td-shadow-sm) !important;
}

.bravo-faq-lists .accordion__icon {
  background: var(--td-color-surface) !important;
  border: 1px solid var(--td-color-border) !important;
  border-radius: 50% !important;
  min-width: 36px !important;
  width: 36px !important;
  height: 36px !important;
}

.bravo-faq-lists .accordion__button .button {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--td-color-text-primary) !important;
}

.bravo-faq-lists .accordion__content p {
  font-size: 14px !important;
  color: var(--td-color-text-secondary) !important;
  line-height: 1.6 !important;
}

/* ============================================================
   13. PRICING SECTION — Add missing card wrapper
   ============================================================ */

/* The pricing section (#tour-pricing) only has .mb-15 — add card styling */
#tour-pricing {
  background: var(--td-color-white) !important;
  border-radius: var(--td-radius) !important;
  padding: var(--td-sp-6) !important;
  box-shadow: var(--td-shadow-sm) !important;
  border: 1px solid var(--td-color-border) !important;
  margin-bottom: var(--td-sp-6) !important;
}

@media (max-width: 767px) {
  #tour-pricing {
    padding: var(--td-sp-4) !important;
  }
}

@media (max-width: 479px) {
  #tour-pricing {
    padding: var(--td-sp-3) !important;
  }
}

/* Pricing accordion header — fix text truncation */
.pricing-accordion-header h3 {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

/* Pricing accordion content — ensure no horizontal overflow */
.pricing-accordion-content {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  word-wrap: break-word !important;
}

/* Occupancy table — scroll wrapper on mobile */
.occupancy-table-desktop {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  border-radius: var(--td-radius-sm) !important;
}

.occupancy-table-desktop table {
  min-width: 480px !important;
}

/* Mobile card grid for occupancy tiers */
.occupancy-cards-mobile .mobile-pricing-card {
  border-radius: var(--td-radius) !important;
  border: 1px solid var(--td-color-border) !important;
  box-shadow: var(--td-shadow-sm) !important;
  transition: box-shadow 0.2s ease !important;
  overflow: hidden !important;
}

.occupancy-cards-mobile .mobile-pricing-card:hover {
  box-shadow: var(--td-shadow-md) !important;
  transform: none !important;
}

/* Pricing structure accordion panels */
.pricing-structure-accordion {
  border-radius: var(--td-radius-sm) !important;
  border: 1px solid var(--td-color-border) !important;
  overflow: hidden !important;
  transition: box-shadow 0.2s ease !important;
}

.pricing-structure-accordion:hover {
  box-shadow: var(--td-shadow-sm) !important;
}

/* ============================================================
   14. BOOKING FORM — Clean white/black theme
   ============================================================ */

/* Remove all animations */
.booking-summary-header,
.combined-booking-box,
.grand-total-box {
  animation: none !important;
  background-size: auto !important;
}

/* White backgrounds, black text */
.booking-summary-header {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #e5e7eb !important;
  box-shadow: none !important;
  color: #111827 !important;
}

.combined-booking-box {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #e5e7eb !important;
  box-shadow: none !important;
  color: #111827 !important;
}

.grand-total-box {
  background: #f9fafb !important;
  background-image: none !important;
  border: 1px solid #e5e7eb !important;
  box-shadow: none !important;
  color: #111827 !important;
}

/* All text inside these boxes must be black */
.booking-summary-header *,
.combined-booking-box *,
.grand-total-box * {
  color: #111827 !important;
}

/* Muted labels */
.combined-booking-box .section-divider span,
.combined-booking-box .selection-row .label,
.combined-booking-box .price-row .label {
  color: #6b7280 !important;
}

/* Section divider lines */
.section-divider {
  border-top: 1px solid #e5e7eb !important;
  border-bottom: 1px solid #e5e7eb !important;
}

/* Selection and price row borders */
.selection-row {
  border-bottom: 1px solid #f3f4f6 !important;
}

.price-row.subtotal {
  border-top: 1px solid #e5e7eb !important;
}

/* Kill infinite pulse on icon */
.summary-icon {
  animation: none !important;
  color: #16a34a !important;
}

/* Kill infinite bounce on prompt icon */
.prompt-icon {
  animation: none !important;
  font-size: 40px !important;
  color: var(--td-color-text-muted) !important;
  margin-bottom: var(--td-sp-4) !important;
}

/* Kill infinite checkPulse on banner icon */
.prefill-success-banner i {
  animation: none !important;
}

/* Success banner — light green tint, black text */
.prefill-success-banner {
  background: #f0fdf4 !important;
  background-image: none !important;
  border: 1px solid #d1fae5 !important;
  color: #111827 !important;
  box-shadow: none !important;
  animation: td-slideDown 0.4s ease-out !important;
}

.prefill-success-banner * {
  color: #111827 !important;
}

.prefill-success-banner i {
  color: #16a34a !important;
}

@keyframes td-slideDown {
  from { opacity: 0; transform: translateY(-16px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Improve the no_package empty state */
.no-selection-prompt {
  text-align: center !important;
  padding: var(--td-sp-8) var(--td-sp-6) !important;
  background: var(--td-color-surface) !important;
  border: 1px solid var(--td-color-border) !important;
  border-radius: var(--td-radius) !important;
  box-shadow: none !important;
}

.no-selection-prompt h4 {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--td-color-text-primary) !important;
  margin-bottom: var(--td-sp-2) !important;
}

.no-selection-prompt p {
  font-size: 14px !important;
  color: var(--td-color-text-secondary) !important;
  margin-bottom: var(--td-sp-5) !important;
}

/* Date selection prompt — remove infinite gradient */
.date-selection-prompt {
  animation: none !important;
  background: #FEF3C7 !important;
  border: 1px solid #FCD34D !important;
  border-radius: var(--td-radius) !important;
  padding: var(--td-sp-6) var(--td-sp-5) !important;
}

.date-selection-prompt h4 {
  color: #92400E !important;
}

.date-selection-prompt p {
  color: #92400E !important;
  opacity: 0.9 !important;
}

.date-selection-prompt .prompt-icon {
  color: #D97706 !important;
}

/* ============================================================
   15. MOBILE BOTTOM BAR — Fix overlap
   ============================================================ */

.bravo-more-book-mobile {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 200 !important;
  background: var(--td-color-white) !important;
  border-top: 1px solid var(--td-color-border) !important;
  box-shadow: 0 -2px 12px rgba(0,0,0,0.08) !important;
  padding: var(--td-sp-3) 0 !important;
  padding-bottom: calc(var(--td-sp-3) + env(safe-area-inset-bottom, 0px)) !important;
}

.bravo-more-book-mobile .container {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: var(--td-sp-4) !important;
}

.bravo-more-book-mobile .left {
  flex: 1 !important;
  min-width: 0 !important;
}

.bravo-more-book-mobile .g-price {
  display: flex !important;
  align-items: baseline !important;
  gap: var(--td-sp-1) !important;
  flex-wrap: wrap !important;
}

.bravo-more-book-mobile .fr_text {
  font-size: 11px !important;
  color: var(--td-color-text-secondary) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

.bravo-more-book-mobile .text-price {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--td-color-text-primary) !important;
}

.bravo-more-book-mobile .onsale {
  font-size: 13px !important;
  color: var(--td-color-text-secondary) !important;
  text-decoration: line-through !important;
}

.bravo-more-book-mobile .right {
  flex-shrink: 0 !important;
}

.bravo-more-book-mobile .btn-primary,
.bravo-more-book-mobile a.rounded-4 {
  background: var(--td-main-color) !important;
  color: white !important;
  border: none !important;
  border-radius: var(--td-radius-sm) !important;
  padding: 10px 20px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: inline-block !important;
  transition: opacity 0.2s ease !important;
  white-space: nowrap !important;
}

.bravo-more-book-mobile .btn-primary:hover,
.bravo-more-book-mobile a.rounded-4:hover {
  opacity: 0.9 !important;
  color: white !important;
  text-decoration: none !important;
}

/* Hide on desktop */
@media (min-width: 1024px) {
  .bravo-more-book-mobile {
    display: none !important;
  }
}

/* ============================================================
   16. PULSE HIGHLIGHT (mobile scroll-to-pricing)
   ============================================================ */

.pulse-highlight {
  animation: td-pulseHighlight 1.5s ease-in-out !important;
  border: 2px solid var(--td-main-color) !important;
  border-radius: var(--td-radius) !important;
}

@keyframes td-pulseHighlight {
  0%, 100% { box-shadow: 0 0 0 0 rgba(53, 84, 209, 0.5); }
  50%       { box-shadow: 0 0 0 12px rgba(53, 84, 209, 0); }
}

/* ============================================================
   17. TYPOGRAPHY OVERRIDES
   ============================================================ */

/* Remove the luxury font imports — use system fonts for performance */
.bravo_detail_tour h1,
.bravo_detail_tour h2,
.bravo_detail_tour h3,
.bravo_detail_tour h4,
.bravo_detail_tour h5,
.bravo_detail_tour h6 {
  font-family: var(--font-primary, 'Jost', sans-serif) !important;
  color: var(--td-color-text-primary) !important;
  line-height: 1.3 !important;
}

/* Remove the clamp-based oversized headings */
.bravo_detail_tour h1 { font-size: 32px !important; }
.bravo_detail_tour h2 { font-size: 26px !important; }
.bravo_detail_tour h3 { font-size: 20px !important; }
.bravo_detail_tour h4 { font-size: 17px !important; }

.bravo_detail_tour .text-22 {
  font-size: 20px !important;
  font-family: var(--font-primary, 'Jost', sans-serif) !important;
  font-weight: 600 !important;
  color: var(--td-color-text-primary) !important;
}

.bravo_detail_tour .text-15,
.bravo_detail_tour .text-dark-1 {
  font-family: var(--font-primary, 'Jost', sans-serif) !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--td-color-text-secondary) !important;
}

/* ============================================================
   18. SCROLLBAR
   ============================================================ */

.tour-sidebar::-webkit-scrollbar { width: 4px; }
.tour-sidebar::-webkit-scrollbar-track { background: transparent; }
.tour-sidebar::-webkit-scrollbar-thumb {
  background: var(--td-color-border);
  border-radius: 2px;
}

/* ============================================================
   19. HORIZONTAL OVERFLOW GUARD
   ============================================================ */

/* Prevent any child from causing horizontal scroll */
.bravo_detail_tour,
.bravo_content,
.tour-content-area {
  overflow-x: hidden !important;
}

/* But allow scroll within specific containers */
.content-text,
.occupancy-table-desktop,
.pricing-accordion-content,
.table-responsive {
  overflow-x: auto !important;
}

/* Scroll indicator — right fade on scrollable tables */
.content-text {
  position: relative !important;
}

/* ============================================================
   20. HOTEL CAROUSEL SLIDER WIDTHS
   ============================================================ */

.js-tour-hotels-slider {
  overflow: hidden !important;
  position: relative !important;
  width: 100% !important;
}

.js-tour-hotels-slider .swiper-wrapper {
  display: flex !important;
  transition: transform 0.3s ease !important;
  will-change: transform !important;
}

.js-tour-hotels-slider .swiper-slide {
  flex: 0 0 auto !important;
  box-sizing: border-box !important;
}

@media (min-width: 1200px) {
  .js-tour-hotels-slider .swiper-slide {
    width: 25% !important;
    padding-right: 20px !important;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .js-tour-hotels-slider .swiper-slide {
    width: 33.333% !important;
    padding-right: 16px !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .js-tour-hotels-slider .swiper-slide {
    width: 50% !important;
    padding-right: 12px !important;
  }
}

@media (max-width: 767px) {
  .js-tour-hotels-slider .swiper-slide {
    width: 85% !important;
    padding-right: 0 !important;
    margin-right: 12px !important;
  }
}

/* Gallery thumbnail scroll container */
.luxury-thumbnails-scroll-container {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  gap: var(--td-sp-3) !important;
  margin-top: var(--td-sp-4) !important;
  overflow: hidden !important;
}

#thumbnails-scroll {
  display: flex !important;
  gap: var(--td-sp-2) !important;
  overflow-x: auto !important;
  scroll-behavior: smooth !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  flex: 1 !important;
}

#thumbnails-scroll::-webkit-scrollbar {
  display: none !important;
}

/* ============================================================
   21. MOBILE HORIZONTAL OVERFLOW ZERO-TOLERANCE
   ============================================================ */

@media (max-width: 767px) {
  /* Ensure nothing causes horizontal scroll */
  .bravo_detail_tour * {
    max-width: 100%;
  }

  /* Tables inside content must scroll, not overflow */
  .content-text table,
  .gotrip-overview table {
    display: block !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    max-width: 100% !important;
  }

  /* Pricing accordion content */
  .pricing-accordion-content {
    overflow-x: auto !important;
    max-width: 100% !important;
  }

  /* Map controls on mobile */
  .map-controls {
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  /* Tour snapshot — 2 column grid on mobile */
  .tour-section #tour-overview .d-flex.flex-wrap > .d-flex {
    flex: 1 1 calc(50% - 8px) !important;
    max-width: calc(50% - 8px) !important;
  }
}

@media (max-width: 479px) {
  /* Tour snapshot — single column on very small screens */
  .tour-section #tour-overview .d-flex.flex-wrap > .d-flex {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
}

/* ============================================================
   GLOBAL TEXT COLOR OVERRIDE — All grey text → black
   ============================================================ */

/* Kill the theme's text-light-1 grey on the tour detail page */
.bravo_detail_tour .text-light-1,
.bravo_detail_tour .text-muted,
.enhanced-pricing-section .text-light-1,
.enhanced-pricing-section .text-muted {
  color: #111827 !important;
}

/* Itinerary secondary text */
.accordion.-map .accordion__item .text-14 {
  color: #111827 !important;
}

/* Map stat items */
.stat-item {
  color: #111827 !important;
}

/* FAQ answer text */
.bravo-faq-lists .accordion__content p {
  color: #111827 !important;
}

/* Hotel card location */
.tour-hotel-card__location {
  color: #111827 !important;
}

/* No-selection prompt secondary text */
.no-selection-prompt p {
  color: #374151 !important;
}
