/* ========================================================================== */
/* DelhiFix Universal Page Loading Logo (delhifix.lottie)                     */
/* White Background • All Pages • All Devices                                 */
/* ========================================================================== */

#delhifix-global-loader {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  z-index: 999999;
  background-color: #ffffff !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.35s ease;
  pointer-events: auto;
  user-select: none;
  -webkit-user-select: none;
  overflow: hidden;
}

#delhifix-global-loader.loader-hidden {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.loader-content-wrap {
  width: 100%;
  max-width: min(90vw, 440px);
  padding: 0 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.lottie-animation-box {
  width: 100%;
  aspect-ratio: 1280 / 360;
  max-height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff !important;
}

.lottie-animation-box svg {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain;
  display: block;
}

.loader-fallback-logo {
  max-width: 80%;
  max-height: 70px;
  object-fit: contain;
  display: none;
}

.loader-progress-track {
  width: 110px;
  height: 3px;
  background: #f1f5f9;
  border-radius: 99px;
  margin-top: 16px;
  overflow: hidden;
  position: relative;
}

.loader-progress-bar {
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #2563eb, #f97316);
  border-radius: 99px;
  transform: translateX(-100%);
  animation: loaderPulseProgress 1.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes loaderPulseProgress {
  0% { transform: translateX(-100%); }
  50% { transform: translateX(0%); }
  100% { transform: translateX(100%); }
}

@media (max-width: 640px) {
  .loader-content-wrap {
    max-width: min(88vw, 310px);
  }
  .lottie-animation-box {
    max-height: 95px;
  }
}
