/* ════════════════════════════════════════════════════════════════════════
   Poseidon — Reveal on scroll genérico (bloques)  ·  assets/css/block-reveal.css
   Aparición de una sección (o de sus hijos) con desvanecido + blur + subida.
   Cualquier bloque custom activa la animación añadiendo la clase
   `.poseidon-reveal` + atributo `data-reveal` en su contenedor raíz y dejando
   que `reveal.js` le añada `.is-inview` al entrar en el viewport.
   Escalado por tarjetas: cada hijo con `[data-reveal]` y `--psd-i:N`.
   Se respeta prefers-reduced-motion. Solo se anima opacity / blur / transform.
   ════════════════════════════════════════════════════════════════════════ */

.poseidon-reveal {
    --psd-i: 0;
    --poseidon-reveal-dur: 560ms;
    --poseidon-reveal-delay: 90ms;
    --poseidon-reveal-ease: cubic-bezier(.25, .46, .45, .94);
}

.poseidon-reveal[data-reveal],
.poseidon-reveal [data-reveal] {
    opacity: 0;
    filter: blur(6px);
    transform: translateY(18px);
    transition: opacity var(--poseidon-reveal-dur) var(--poseidon-reveal-ease),
                transform var(--poseidon-reveal-dur) var(--poseidon-reveal-ease),
                filter var(--poseidon-reveal-dur) var(--poseidon-reveal-ease);
    transition-delay: calc(var(--psd-i, 0) * var(--poseidon-reveal-delay));
}

.poseidon-reveal.is-inview[data-reveal],
.poseidon-reveal.is-inview [data-reveal] {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .poseidon-reveal[data-reveal],
    .poseidon-reveal [data-reveal] {
        opacity: 1;
        transform: none;
        filter: none;
        transition: none;
    }
}

/* ── Padding horizontal en móvil para que los bloques no se peguen al
      borde de la pantalla. Solo en los bloques "de flujo" (contenido en
      el carril del sitio); las variantes --full / --wide ya traen su propio
      padding lateral (clamp ≥ 24px) y no deben sumar. ── */
@media (max-width: 640px) {
    .poseidon-benefits:not(.poseidon-benefits--full):not(.poseidon-benefits--wide),
    .poseidon-category-grid:not(.poseidon-category-grid--full):not(.poseidon-category-grid--wide),
    .poseidon-brand-logos:not(.poseidon-brand-logos--full):not(.poseidon-brand-logos--wide),
    .poseidon-featured-product:not(.poseidon-featured-product--full):not(.poseidon-featured-product--wide),
    .poseidon-products-grid,
    .poseidon-testimonials:not(.poseidon-testimonials--full):not(.poseidon-testimonials--wide) {
        padding-left: 18px;
        padding-right: 18px;
    }
}