/* Estilos para las imágenes con lazy loading */
.lazy-image {
  opacity: 1; /* Cambiado de 0 a 1 para que sean visibles por defecto */
  transition: opacity 0.3s ease-in-out;
}

.lazy-image.loading {
  opacity: 0.7; /* Mientras carga */
}

.lazy-image.loaded {
  opacity: 1;
}

.lazy-image.error {
  opacity: 0.5; /* Si hay error */
}

/* Placeholder mientras carga la imagen */
.image-placeholder {
  background-color: #f0f0f0;
  position: relative;
  overflow: hidden;
}

.image-placeholder::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
  animation: placeholder-shine 1.5s infinite;
}

@keyframes placeholder-shine {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
