
/* Formula Unit - Premium product card animation */
.product-card,.product-item,.product-grid > article,[data-product],.card{
  position:relative;
  overflow:hidden;
  transition:transform .28s cubic-bezier(.2,.7,.2,1),
             box-shadow .28s ease,
             border-color .28s ease;
  will-change:transform;
}
.product-card::before,.product-item::before,.product-grid > article::before,[data-product]::before,.card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.34) 50%,transparent 70%);
  transform:translateX(-120%);
  transition:transform .7s ease;
  pointer-events:none;
  z-index:1;
}
.product-card:hover,.product-item:hover,.product-grid > article:hover,[data-product]:hover,.card:hover{
  transform:translateY(-7px);
  box-shadow:0 16px 35px rgba(0,0,0,.12);
}
.product-card:hover::before,.product-item:hover::before,.product-grid > article:hover::before,[data-product]:hover::before,.card:hover::before{
  transform:translateX(120%);
}
.product-card img,.product-item img,.product-grid > article img,[data-product] img,.card img{
  transition:transform .45s cubic-bezier(.2,.7,.2,1),filter .45s ease;
}
.product-card:hover img,.product-item:hover img,.product-grid > article:hover img,[data-product]:hover img,.card:hover img{
  transform:scale(1.045);
  filter:saturate(1.06);
}
.product-card .product-name,.product-card h3,.product-item h3,.product-grid > article h3,[data-product] h3,.card h3{
  transition:transform .25s ease;
}
.product-card:hover .product-name,.product-card:hover h3,.product-item:hover h3,.product-grid > article:hover h3,[data-product]:hover h3,.card:hover h3{
  transform:translateY(-2px);
}
.product-card .product-price,.product-card .price,.product-item .price,.product-grid > article .price,[data-product] .price,.card .price{
  transition:transform .25s ease;
}
.product-card:hover .product-price,.product-card:hover .price,.product-item:hover .price,.product-grid > article:hover .price,[data-product]:hover .price,.card:hover .price{
  transform:scale(1.035);
}
@keyframes fuProductIn{
  from{opacity:0;transform:translateY(18px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.product-card,.product-item,.product-grid > article,[data-product],.card{
  animation:fuProductIn .55s ease both;
}
.product-card:nth-child(2),.product-item:nth-child(2),.product-grid > article:nth-child(2),[data-product]:nth-child(2),.card:nth-child(2){animation-delay:.05s}
.product-card:nth-child(3),.product-item:nth-child(3),.product-grid > article:nth-child(3),[data-product]:nth-child(3),.card:nth-child(3){animation-delay:.10s}
.product-card:nth-child(4),.product-item:nth-child(4),.product-grid > article:nth-child(4),[data-product]:nth-child(4),.card:nth-child(4){animation-delay:.15s}
@media (prefers-reduced-motion:reduce){
  .product-card,.product-item,.product-grid > article,[data-product],.card,
  .product-card img,.product-item img,.product-grid > article img,[data-product] img,.card img{
    animation:none!important;transition:none!important;
  }
}
