/* PagLeve 1.2.98 · carregamento progressivo leve do front-end público.
   Somente imagens realmente lazy recebem transição. Imagens prioritárias
   (capa, logo, primeiro banner e imagem principal) não são ocultadas/filtradas. */
.storefront-public .sf-progressive-image{
  opacity:.78;
  transform:translate3d(0,2px,0);
  transition:opacity .20s ease-out,transform .24s cubic-bezier(.2,.72,.2,1);
}
.storefront-public .sf-progressive-image.is-loaded{
  opacity:1;
  transform:none;
}
.storefront-public .sf-progressive-frame:not(.is-image-ready){
  background-color:color-mix(in srgb,var(--surface-soft,var(--surface,#fff)) 94%,var(--border,transparent));
}
.storefront-public .sf-progressive-frame.is-image-ready{
  background-color:transparent;
}
/* Neutraliza a antiga animação do card inteiro. A suavização fica apenas na imagem. */
.storefront-public .sf-reveal-card,.storefront-public .sf-reveal-card.is-visible{
  opacity:1;
  transform:none;
  transition:none;
  transition-delay:0ms;
}
@media(prefers-reduced-motion:reduce){
  .storefront-public .sf-progressive-image{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}

/* PagLeve 1.3.89 · skeleton discreto somente enquanto a imagem lazy ainda não terminou. */
.storefront-public .sf-progressive-frame{position:relative}
.storefront-public .sf-progressive-frame:not(.is-image-ready)::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:inherit;
  background:
    linear-gradient(100deg,transparent 18%,color-mix(in srgb,var(--surface,var(--surface-soft,#fff)) 72%,white 28%) 43%,transparent 68%),
    color-mix(in srgb,var(--surface-soft,var(--surface,#fff)) 91%,var(--border,transparent));
  background-size:220% 100%,100% 100%;
  animation:sf-skeleton-sweep-v139 1.55s ease-in-out infinite;
}
.storefront-public .sf-progressive-frame>.sf-progressive-image{position:relative;z-index:1}
@keyframes sf-skeleton-sweep-v139{
  0%{background-position:115% 0,0 0}
  100%{background-position:-115% 0,0 0}
}
@media(prefers-reduced-motion:reduce){
  .storefront-public .sf-progressive-frame:not(.is-image-ready)::before{animation:none!important;background:color-mix(in srgb,var(--surface-soft,var(--surface,#fff)) 92%,var(--border,transparent))}
}
