@layer base {
  html,
  body {
    margin: 0;
    padding: 0;
  }
  body {
    overscroll-behavior: none;
  }
  main > :first-child {
    margin-top: 0 !important;
  }
  main > :last-child {
    margin-bottom: 0 !important;
  }
}
::-webkit-scrollbar {
  display: none;
}

/* --- page fade-in (pure CSS, no JS dependency) --- */
@keyframes pageFadeIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
body {
  animation: pageFadeIn 0.45s ease both;
}
@media (prefers-reduced-motion: reduce) {
  body {
    animation: none;
  }
}

/* Light surface palette shared by every page. */
html,
body {
  background-color: #ffffff !important;
  color: #1f2937 !important;
}
.bg-surface-container-lowest {
  background-color: #ffffff !important;
}
.bg-surface {
  background-color: #ffffff !important;
}
.bg-surface-container-low {
  background-color: #f8f8f6 !important;
}
.bg-surface-container {
  background-color: #f1f1ee !important;
}
.bg-surface-container-high {
  background-color: #e8e8e3 !important;
}
.bg-surface-container-highest {
  background-color: #deded8 !important;
}
.bg-surface-variant {
  background-color: #e8e8e3 !important;
}
.text-on-surface,
.text-on-background {
  color: #1f2937 !important;
}
.text-on-surface-variant {
  color: #5b6470 !important;
}

/* --- Sticky header (added via JS when scrolled past 50px) --- */
@keyframes headerSlideDown {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
#site-header.is-sticky {
  position: sticky !important;
  top: 0 !important;
  left: 0;
  right: 0;
  width: 100%;
  background-image: none;
  background-color: rgba(12, 14, 18, 0.671);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  animation: headerSlideDown 0.3s ease;
}

/* --- FAQ accordion (native <details>) --- */
.faq-item summary::-webkit-details-marker {
  display: none;
}
.faq-item summary::marker {
  content: "";
}
@keyframes faqReveal {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.faq-item[open] .faq-body {
  animation: faqReveal 0.25s ease;
}

/* --- City autocomplete dropdown --- */
.city-suggest {
  background-color: #ffffff !important;
  border-color: rgba(0, 0, 0, 0.12) !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18) !important;
  z-index: 60;
}
.city-suggest li {
  color: #1f2937;
}
.city-suggest li:hover {
  background-color: #f1f1ee;
}
/* keep the dropdown scrollable even though global scrollbars are hidden */
.city-suggest::-webkit-scrollbar {
  display: block;
  width: 8px;
}
.city-suggest::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 8px;
}

/* --- Departure date input (native calendar) --- */
#search-date {
  color-scheme: light;
}
/* Hide the default calendar indicator (we use our own icon + click-to-open) */
#search-date::-webkit-calendar-picker-indicator {
  opacity: 0;
  position: absolute;
  right: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
}
