/* =========================================================
   Ideal Form — ruch (wersja minimalna, 27.10.2026)
   Bez animacji wejść, paralaksy i przejść między stronami.
   Nagłówek jest zawsze widoczny (sticky, białe tło). Zostają krótkie
   zmiany kolorów po najechaniu.
   ========================================================= */

.btn,
.circle-btn,
.link-arrow,
.footer a,
.partners__logos img { transition: background-color .15s, color .15s, border-color .15s, opacity .15s; }

.category:hover .circle-btn { background: var(--c-green); }
.partners__logos img:hover { opacity: 1; }

/* Bez backdrop-filter na nagłówku: tworzy blok zawierający dla position: fixed
   i rozwijane menu mobilne (.nav, fixed w nagłówku) po przewinięciu się nie mieściło. */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}

/* Bez powiększania zdjęć i przesuwania elementów po najechaniu */
.p-card__link:hover .p-card__media img,
.category:hover img,
.photo-strip a:hover img { scale: none; }
.category:hover .circle-btn,
.gallery__arrow:hover,
.gallery__item:hover img,
.gallery__item:focus-visible img,
.swatch__btn:hover img { transform: none; }
.swatch__btn:hover img { box-shadow: none; opacity: .85; }

/* =========================================================
   Lekki ruch (27.10.2026): jednorazowe pojawienie się przy
   przewijaniu, wejście tekstu na banerze, delikatny zoom
   zdjęć po najechaniu, krótkie przenikanie między stronami.
   ========================================================= */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  .header { view-transition-name: site-header; }
  ::view-transition-group(root) { animation-duration: .25s; }

  /* Pojawienie się przy przewijaniu — klasy dodaje main.js (bez JS wszystko widać od razu) */
  .js-reveal .reveal { opacity: 0; translate: 0 16px; transition: opacity .5s ease-out, translate .5s ease-out; transition-delay: var(--reveal-delay, 0s); }
  .js-reveal .reveal.is-in { opacity: 1; translate: none; }

  /* Baner na stronie głównej */
  .hero__title, .hero__lead, .hero__content .btn { animation: if-fade-up .7s ease-out both; }
  .hero__lead { animation-delay: .1s; }
  .hero__content .btn { animation-delay: .2s; }

  /* Zdjęcia po najechaniu */
  .p-card__media img, .category img, .photo-strip img, .gallery__item img { transition: scale .5s ease-out; }
  .p-card__link:hover .p-card__media img,
  .category:hover img,
  .photo-strip a:hover img,
  .gallery__item:hover img { scale: 1.03; }
}

@keyframes if-fade-up { from { opacity: 0; translate: 0 12px; } }
