/**
 * Homepage booking widget — cross-browser layout (Chrome, Firefox, Safari, Edge, mobile).
 */
.sh-section--booking {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: 0;
  padding-bottom: 0;
  background: linear-gradient(135deg, #1e3a8a 0%, #5b21b6 45%, #312e81 100%);
}
.sh-section--booking > .absolute {
  pointer-events: none;
}

.sh-booking-shell {
  position: relative;
  z-index: 30;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.sh-booking-panel {
  background: #fff;
  border-radius: 0;
  box-shadow: 0 8px 32px rgba(15, 23, 42, 0.12);
  padding: 0.75rem 1rem;
  box-sizing: border-box;
  width: 100%;
}
@media (min-width: 640px) {
  .sh-booking-panel {
    padding: 1.25rem 1.5rem;
  }
}
@media (min-width: 1024px) {
  .sh-booking-panel {
    padding: 1.5rem 2rem;
  }
}

/* Service tabs — horizontal scroll (10 tabs); no awkward wrap in Firefox/Safari */
.sh-service-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.35rem;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #e5e7eb;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}
.sh-service-tabs::-webkit-scrollbar {
  height: 5px;
}
.sh-service-tabs::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.sh-service-tabs .service-tab {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  background: #f3f4f6;
  color: #374151;
  line-height: 1.25;
  min-height: 2.25rem;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.sh-service-tabs .service-tab:hover {
  background: #e5e7eb;
}
.sh-service-tabs .service-tab.active {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: #fff;
  box-shadow: 0 2px 8px rgba(102, 126, 234, 0.35);
}
.sh-service-tabs .service-tab.active:hover {
  background: linear-gradient(135deg, #5a6fd6 0%, #6a4190 100%);
}

/* Search panels — reliable show/hide (no transform animation glitches) */
.sh-booking-panel .search-form {
  display: none;
  width: 100%;
  box-sizing: border-box;
}
.sh-booking-panel .search-form.active {
  display: block;
  animation: shBookingFadeIn 0.25s ease;
}
@keyframes shBookingFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Nested hotel card — single white panel (avoid double box) */
.sh-booking-panel .hotel-search-box-unified.hsb-frontend,
.sh-booking-panel .hhs-wrap,
.sh-booking-panel .fhs-wrap,
.sh-booking-panel .phs-wrap,
.sh-booking-panel .sshs-wrap,
.sh-booking-panel .ths-wrap,
.sh-booking-panel .hhus-wrap,
.sh-booking-panel .scsh-wrap,
.sh-booking-panel .imsh-wrap,
.sh-booking-panel .bssh-wrap {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-bottom: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Form grids — explicit fallback when Tailwind utilities fail to load */
.sh-booking-panel .search-form .grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  width: 100%;
}
@media (min-width: 640px) {
  .sh-booking-panel .search-form .sm\:grid-cols-2,
  .sh-booking-panel .search-form .grid.sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 768px) {
  .sh-booking-panel .search-form .md\:grid-cols-2,
  .sh-booking-panel .search-form .grid.md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sh-booking-panel .search-form .md\:grid-cols-3,
  .sh-booking-panel .search-form .grid.md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .sh-booking-panel .search-form .lg\:grid-cols-4,
  .sh-booking-panel .search-form .grid.lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.sh-booking-panel input,
.sh-booking-panel select,
.sh-booking-panel textarea,
.sh-booking-panel button[type="button"]:not(.service-tab) {
  box-sizing: border-box;
  max-width: 100%;
}
.sh-booking-panel input[type="date"],
.sh-booking-panel input[type="time"],
.sh-booking-panel input[type="datetime-local"] {
  min-height: 2.75rem;
  width: 100%;
  -webkit-appearance: auto;
  appearance: auto;
}

.sh-booking-panel label {
  display: block;
}

/* Full-width search buttons */
.sh-booking-panel .search-form > button,
.sh-booking-panel .search-form button.gradient-bg,
.sh-booking-panel .search-form .w-full[type="submit"],
.sh-booking-panel .search-form button[class*="bg-"] {
  max-width: 100%;
}
