/* =============================================================================
   lazy_base.css — base reutilizable para lazy loading con skeletons.
   Incluir ANTES que el skeleton.css de la landing (que solo tiene shapes).
   ============================================================================= */

/* =============================================================================
   ESTRUCTURA — wrappers, skeleton layer, content layer
   ============================================================================= */
#loader_content {
  display: block;
  margin-top: 100px;
}

#main_content {
  display: none;
}

.lazy-section-wrapper {
  position: relative;
}

/* Skeleton: visible por defecto, se oculta cuando JS agrega .is-hidden */
.lazy-skeleton {
  display: block;
  background: #fff;
}

.lazy-skeleton.is-hidden {
  display: none;
}

/* Content: oculto mientras skeleton está visible.
   Sin JS (sin body class) siempre visible — degradación graceful. */
.lazy-content {
  opacity: 1;
}

body.js-lazy-enabled .lazy-content {
  display: none;
}

body.js-lazy-enabled .lazy-content.is-revealed {
  display: block;
  animation: lazyFadeIn 0.45s ease forwards;
}

@keyframes lazyFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* =============================================================================
   SHIMMER — animación base para .skeleton-block
   ============================================================================= */

@keyframes skeleton-shimmer {
  0% {
    background-position: -800px 0;
  }
  100% {
    background-position: 800px 0;
  }
}

.skeleton-block {
  background: linear-gradient(90deg, #dde0e3 25%, #ebedef 50%, #dde0e3 75%);
  background-size: 1600px 100%;
  animation: skeleton-shimmer 1.8s infinite linear;
  border-radius: 6px;
  display: block;
}

/* =============================================================================
   HELPERS RESPONSIVE
   ============================================================================= */

.skeleton-desktop-only {
  display: block;
}
.skeleton-mobile-only {
  display: none;
}

@media (max-width: 768px) {
  .skeleton-desktop-only {
    display: none;
  }
  .skeleton-mobile-only {
    display: block;
  }

  #loader_content {
    margin-top: 80px;
  }
}
