/* Placeholder + lazy-loaded images */

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

.media-placeholder {
  display: inline-block;
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    90deg,
    #e8f3f2 0%,
    #f6fbfb 45%,
    #e8f3f2 90%
  );
  background-size: 200% 100%;
  animation: media-shimmer 1.35s ease-in-out infinite;
  border-radius: 0.75rem;
}

.media-placeholder.is-loaded {
  background: none;
  animation: none;
}

.media-placeholder--hero {
  display: block;
  width: 100%;
  max-width: 26rem;
  margin-inline: auto;
  aspect-ratio: 1;
  border-radius: 1.25rem;
}

.media-placeholder--logo {
  border-radius: 0.35rem;
  line-height: 0;
}

img.lazy {
  display: block;
  max-width: 100%;
  height: auto;
  opacity: 0;
  transition: opacity 0.45s ease;
}

img.lazy.loaded {
  opacity: 1;
}

img.lazy.lazy-error {
  opacity: 0.55;
}

/* هيرو: placeholder واضح ثم صورة الشعار */
.hero-art.lazy:not(.loaded) {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hero-art.lazy.loaded {
  opacity: var(--hero-art-opacity-visible, 1);
}

.navbar-brand .media-placeholder--logo,
.offcanvas-title .media-placeholder--logo {
  min-width: 5rem;
  min-height: 2rem;
}

.phone-mockup__brand .media-placeholder--logo {
  min-width: 1.375rem;
  min-height: 1.375rem;
  border-radius: 0.25rem;
}

.phone-mockup__brand img.lazy.loaded {
  width: 22px;
  height: 22px;
}
