/* Shimmer Loading Effect */
.shimmer-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--bg-gray);
  border-radius: inherit;
}

.shimmer {
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.4) 50%,
    transparent 100%
  );
  animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
  0% {
    left: -100%;
  }
  100% {
    left: 100%;
  }
}

.shimmer-image {
  position: relative;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.shimmer-image.loaded {
  opacity: 1;
}

.shimmer-wrapper.active .shimmer {
  display: block;
}

.shimmer-wrapper:not(.active) .shimmer {
  display: none;
}

/* Shimmer для конкретных элементов */
.modal-image-wrapper {
  position: relative;
}

.shimmer-modal {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  background: var(--bg-gray);
  z-index: 0;
  overflow: hidden;
}

.full-landing-section .shimmer-modal {
  border-radius: 30px;
}

@media (max-width: 768px) {
  .full-landing-section .shimmer-modal {
    border-radius: 20px;
  }
}

.modal-image.shimmer-image {
  position: relative;
  z-index: 2;
  background: var(--bg-gray);
}

/* Скрытие shimmer после загрузки */
.shimmer-wrapper:not(.active) {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.shimmer-wrapper.active {
  opacity: 1;
}

