/* Odsłanianie przy przewijaniu: ukrywamy tylko, gdy JS jest aktywny i system nie prosi o ograniczenie ruchu (patrz inc/reveal.php). */
.js-reveal .reveal:not(.is-in) { opacity: 0; transform: translateY(28px); }
.js-reveal .reveal { transition: opacity .8s cubic-bezier(.16, 1, .3, 1), transform .8s cubic-bezier(.16, 1, .3, 1); transition-delay: calc(var(--i, 0) * 80ms); }
.js-reveal .reveal.is-in { opacity: 1; transform: none; }

/* Najechanie: karta unosi się, zdjęcie lekko się powiększa. */
.product-card, .tile { transition: transform .45s cubic-bezier(.16, 1, .3, 1), box-shadow .45s ease; }
.product-card img, .tile img { transition: transform .7s cubic-bezier(.16, 1, .3, 1); }
@media (hover: hover) {
  .product-card.is-in:hover, .tile.is-in:hover, .product-card:not(.reveal):hover, .tile:not(.reveal):hover { transform: translateY(-4px); }
  .product-card:hover img, .tile:hover img { transform: scale(1.04); }
  .product-card:hover strong { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
}
@media (prefers-reduced-motion: reduce) {
  .js-reveal .reveal, .product-card, .tile, .product-card img, .tile img { transition: none; }
  .product-card:hover, .tile:hover, .product-card:hover img, .tile:hover img { transform: none; }
}
