/* Carga visual común para imágenes remotas y contenido agregado por AJAX. */
img.cs-progressive-image {
  color: transparent;
  background-color: transparent;
  background-image: linear-gradient(105deg, #edf1f5 22%, #fafbfd 42%, #edf1f5 62%);
  background-position: 100% 0;
  background-size: 240% 100%;
  animation: cs-progressive-image-shimmer 1.25s ease-in-out infinite;
  transition: opacity .22s ease, filter .22s ease, background-color .22s ease;
}

img.cs-progressive-image:not(.is-loaded):not(.is-error) {
  opacity: .78;
  filter: saturate(.75) blur(1.5px);
}

img.cs-progressive-image.is-loaded,
img.cs-progressive-image.is-error {
  opacity: 1;
  filter: none;
  background-color: #edf1f5;
  background-image: none;
  animation: none;
}

@keyframes cs-progressive-image-shimmer {
  to { background-position: -140% 0; }
}

@media (prefers-reduced-motion: reduce) {
  img.cs-progressive-image { animation: none; transition: none; }
}
