/* TripYatra scrolling paint stability
   Keeps the premium appearance while avoiding Chrome/WebKit compositor layer loss. */

/* Large scrolling surfaces must stay in the normal page paint layer. */
.tripy-web-main,
.tripy-web-screen,
.tripy-web-panel,
.tripy-service-section,
.tripy-partner-service-list,
.tripy-partner-service-appcard {
  will-change: auto !important;
  backface-visibility: visible !important;
}

/* A backdrop blur on a viewport-sized or very tall scrolling panel can make
   Chrome temporarily drop the main raster layer. The surface is already nearly
   opaque, so an opaque premium gradient preserves the visual result. */
.tripy-web-panel,
.tripy-service-section,
.tripy-partner-service-appcard {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

.tripy-web-panel {
  background: linear-gradient(180deg, rgba(255,255,255,.985), rgba(248,251,255,.985)) !important;
}

/* Small controls do not need live blur while the page is scrolling. */
.tripy-partner-service-appcard__badge,
.tripy-premium-wishlist,
.tripy-wishlist-app__remove {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Cards moving under a stationary pointer repeatedly enter and leave :hover
   during scrolling. Temporarily remove transform-driven layer promotion. */
body.tripy-is-scrolling .tripy-web-app [class*="__card"],
body.tripy-is-scrolling .tripy-web-app [class$="-card"],
body.tripy-is-scrolling .tripy-web-app .tripy-web-card,
body.tripy-is-scrolling .tripy-web-app .tripy-partner-service-appcard,
body.tripy-is-scrolling .tripy-web-app .tripy-service-result-card,
body.tripy-is-scrolling .tripy-web-app .tripy-home-card,
body.tripy-is-scrolling .tripy-web-app .tripy-premium-wishlist {
  transform: none !important;
  transition-property: none !important;
  will-change: auto !important;
}

/* Avoid animating expensive filters while a scroll is active. */
body.tripy-is-scrolling .tripy-web-app [style*="filter"],
body.tripy-is-scrolling .tripy-web-app [class*="glow"] {
  animation-play-state: paused !important;
}

/* The loader is a separate fixed screen; it may use its own effects only while visible. */
.tripy-premium-loader.is-leaving {
  contain: paint;
}

@media (prefers-reduced-motion: reduce) {
  .tripy-web-app [class*="__card"],
  .tripy-web-app [class$="-card"] {
    transform: none !important;
    transition-property: none !important;
  }
}
