/* Szkic płynności ECM: wspólny easing, ujawnianie sekcji, prefers-reduced-motion.
   Osobny plik, żeby wejście na live było zwykłym skopiowaniem.css/js i dopisaniem do stron.
   Domyślnie nic nie jest ukryte — klasę ukrycia dodaje tylko JavaScript. */

:root {
  --plynnosc-ease: cubic-bezier(.16, 1, .3, 1);
  --plynnosc-fast: .2s;
  --plynnosc-mid: .28s;
  --plynnosc-slow: .35s;
}

/* Przyciski, karty, linki, menu: ten sam easing, 0.2–0.35 s. */
a:not(.skip),
button,
.btn,
.btn-primary,
.btn-ghost,
.btn-sm,
.btn-x,
.linkbtn,
.path,
.card,
.feat,
.case-box,
.svc-box,
.cta-box,
.kpi,
.step,
.svc-lead-card,
.more-link,
.logo,
.mm-link,
.mm-trigger,
.mm-acc-btn,
.mm-burger,
.mm-cta,
.mm-all,
.mm-test,
.mm-plain,
.mm-m-plain,
.mm-m-all,
.mm-m-tool,
.mm-m-cta,
.mm-tool,
.mm-link--cta {
  transition-property: color, background, background-color, border-color, box-shadow, opacity, transform, outline-color;
  transition-duration: var(--plynnosc-mid);
  transition-timing-function: var(--plynnosc-ease);
}

.btn,
.btn-primary,
.btn-ghost,
.btn-sm,
.mm-link,
.mm-trigger,
.mm-cta,
.more-link,
.logo,
.linkbtn {
  transition-duration: var(--plynnosc-fast);
}

.mm-trigger .chev,
.mm-acc-btn .chev,
.mm-burger span {
  transition-property: transform, opacity;
  transition-duration: var(--plynnosc-fast);
  transition-timing-function: var(--plynnosc-ease);
}

/* Ujawnianie: tylko gdy JS doda klasę. Transform nie rusza układu. */
.plynnosc-reveal {
  opacity: 0;
  transform: translateY(14px);
}

.plynnosc-reveal.plynnosc-in {
  opacity: 1;
  transform: none;
  transition: opacity var(--plynnosc-slow) var(--plynnosc-ease),
              transform var(--plynnosc-slow) var(--plynnosc-ease);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }

  .plynnosc-reveal,
  .plynnosc-reveal.plynnosc-in {
    opacity: 1 !important;
    transform: none !important;
  }
}
