/* While loading: page content chhupa rahega, sirf loader dikhega.
   (JS body se .sa-loading hatate hi sab dikhne lagta hai.) */
body.sa-loading > *:not(#speedair-preloader):not(script):not(noscript) {
  visibility: hidden;
  /* JS fail ho jaye tab bhi 5s me page khud dikhne lagega */
  animation: sa-reveal 0.1s ease 5s forwards;
}

@keyframes sa-reveal {
  to { visibility: visible; }
}

/* ============================================================
   SpeedAir preloader - courier truck drives left to right.
   Theme: logo red (#ed202d) + white.
   Hide: window load par .done lagta hai (JS, Default.aspx me).
   ============================================================ */
#speedair-preloader {
  position: fixed;
  left: 50%;
  top: 42%;
  transform: translate(-50%, -50%);
  z-index: 99999;
  width: min(210px, 58vw);
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  overflow: visible;
  /* Pure-CSS safety net: JS kabhi na chale tab bhi 4.2s me khud gayab.
     (JS wala .done isse pehle hide kar deta hai.) */
  animation: preloader-autohide 0.5s ease 4.2s forwards;
}

@keyframes preloader-autohide {
  to {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

#speedair-preloader.done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

#speedair-preloader .road {
  width: 100%;
  height: 6px;
  background: #f3d4d6;
  border-radius: 3px;
  overflow: hidden;
  position: relative;
}

#speedair-preloader .road::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 200%;
  height: 2px;
  background-image: linear-gradient(to right, #ed202d 0 40px, transparent 40px 80px);
  background-size: 80px 2px;
  animation: road-move 0.6s linear infinite;
}

@keyframes road-move {
  from { transform: translateX(0); }
  to { transform: translateX(-80px); }
}

#speedair-preloader .truck-run {
  width: 100%;
  overflow: hidden;
  animation: truck-drive 2.8s linear infinite;
}

@keyframes truck-drive {
  0% { transform: translateX(-72px); }
  100% { transform: translateX(72px); }
}

/* body bounce while driving */
#speedair-preloader .truck-body {
  animation: truck-bounce 0.45s ease-in-out infinite alternate;
}

@keyframes truck-bounce {
  from { transform: translateY(0); }
  to { transform: translateY(-2.5px); }
}

/* spinning wheels */
#speedair-preloader .wheel-spin {
  transform-box: fill-box;
  transform-origin: center;
  animation: wheel-spin 0.55s linear infinite;
}

@keyframes wheel-spin {
  to { transform: rotate(360deg); }
}

/* exhaust puffs */
#speedair-preloader .puff {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  animation: puff-rise 1.1s ease-out infinite;
}

#speedair-preloader .puff.p2 { animation-delay: 0.35s; }
#speedair-preloader .puff.p3 { animation-delay: 0.7s; }

@keyframes puff-rise {
  0% { opacity: 0.9; transform: translate(0, 0) scale(0.5); }
  100% { opacity: 0; transform: translate(-34px, -26px) scale(1.5); }
}

/* speed lines behind the truck */
#speedair-preloader .speed-line {
  stroke-dasharray: 26 30;
  animation: speed-dash 0.45s linear infinite;
}

@keyframes speed-dash {
  to { stroke-dashoffset: -56; }
}

#speedair-preloader .load-text {
  color: #ed202d;
  font-family: "Segoe UI", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 4px;
  text-transform: uppercase;
  /* page photo ke upar padhne layak rahe */
  text-shadow: 0 1px 0 #ffffff, 0 0 8px #ffffff;
}

#speedair-preloader .load-text::after {
  content: "";
  animation: dots 1.2s steps(4) infinite;
}

@keyframes dots {
  0% { content: ""; }
  25% { content: "."; }
  50% { content: ".."; }
  75% { content: "..."; }
}

@media (prefers-reduced-motion: reduce) {
  #speedair-preloader .truck-run,
  #speedair-preloader .truck-body,
  #speedair-preloader .wheel-spin,
  #speedair-preloader .puff,
  #speedair-preloader .speed-line,
  #speedair-preloader .road::after {
    animation: none;
  }
}
