/* Shared page loader for itinerary detail pages */
html.itinerary-page-loading body {
  overflow: hidden;
}

.itinerary-page-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0c1826;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.itinerary-page-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.itinerary-page-loader__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  padding: 2rem;
  text-align: center;
}

.itinerary-page-loader__om {
  font-family: "Yatra One", "Noto Serif Devanagari", Georgia, serif;
  font-size: clamp(2.4rem, 6vw, 3.2rem);
  line-height: 1;
  color: #e3c878;
  text-shadow: 0 0 24px rgba(230, 190, 110, 0.45);
  animation: itinerary-loader-pulse 2.4s ease-in-out infinite;
}

.itinerary-page-loader__ring {
  width: 3rem;
  height: 3rem;
  border: 3px solid rgba(227, 200, 120, 0.2);
  border-top-color: #c6972e;
  border-radius: 50%;
  animation: itinerary-loader-spin 0.9s linear infinite;
}

.itinerary-page-loader__text {
  margin: 0;
  max-width: 18rem;
  font-family: "Mukta", Arial, sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(243, 233, 214, 0.88);
}

@keyframes itinerary-loader-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes itinerary-loader-pulse {
  0%,
  100% {
    opacity: 0.82;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.05);
  }
}

@media (prefers-reduced-motion: reduce) {
  .itinerary-page-loader,
  .itinerary-page-loader__om,
  .itinerary-page-loader__ring {
    animation: none;
    transition: none;
  }
}
