/* Loading States & Progressive Enhancement */

/* Image loading shimmer effect */
.img-loading {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  min-height: 200px;
  display: block;
}

.img-loading.loaded {
  animation: none;
  background: none;
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

/* Fade in when loaded */
img.fade-in {
  opacity: 0;
  transition: opacity 0.3s ease-in;
}

img.fade-in.loaded {
  opacity: 1;
}

/* Language switcher loading state */
.lang-btn.loading {
  opacity: 0.6;
  pointer-events: none;
}

.lang-btn.loading::after {
  content: '...';
  animation: dots 1s infinite;
}

@keyframes dots {
  0%, 20% {
    content: '.';
  }
  40% {
    content: '..';
  }
  60%, 100% {
    content: '...';
  }
}

/* Content loading placeholder */
.content-loading {
  background: linear-gradient(90deg, #f5f5f5 25%, #e8e8e8 50%, #f5f5f5 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: 4px;
  height: 20px;
  margin: 8px 0;
}

/* Skeleton loader for cards */
.card-skeleton {
  background: #fff;
  border-radius: 8px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.card-skeleton .skeleton-line {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  height: 16px;
  margin: 10px 0;
  border-radius: 4px;
}

.card-skeleton .skeleton-line:first-child {
  width: 60%;
  height: 20px;
}

.card-skeleton .skeleton-line:last-child {
  width: 40%;
}

/* Smooth transitions */
.smooth-load {
  transition: all 0.3s ease-in-out;
}
