/* ===========================
   ANIMACJE SCROLL-REVEAL
   =========================== */

[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.4,0,0.2,1),
              transform 0.7s cubic-bezier(0.4,0,0.2,1);
}
[data-reveal-dir="left"] {
  transform: translateX(-36px);
  opacity: 0;
  transition: opacity 0.7s cubic-bezier(0.4,0,0.2,1),
              transform 0.7s cubic-bezier(0.4,0,0.2,1);
}
[data-reveal-dir="right"] {
  transform: translateX(36px);
  opacity: 0;
  transition: opacity 0.7s cubic-bezier(0.4,0,0.2,1),
              transform 0.7s cubic-bezier(0.4,0,0.2,1);
}
[data-reveal].revealed,
[data-reveal-dir].revealed {
  opacity: 1;
  transform: none;
}

/* Opóźnienia kaskadowe */
[data-delay="1"] { transition-delay: 0.08s; }
[data-delay="2"] { transition-delay: 0.16s; }
[data-delay="3"] { transition-delay: 0.24s; }
[data-delay="4"] { transition-delay: 0.32s; }
[data-delay="5"] { transition-delay: 0.40s; }

/* Respektuj preferencje reduced-motion */
@media (prefers-reduced-motion: reduce) {
  [data-reveal], [data-reveal-dir] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Animacja licznika */
@keyframes countPulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.06); }
  100% { transform: scale(1); }
}
.stat-num.counting {
  animation: countPulse 0.4s ease;
}

/* Hero content wejście */
@keyframes heroIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}
.hero-eyebrow { animation: heroIn 0.8s 0.3s both ease; }
.hero-content h1 { animation: heroIn 0.8s 0.5s both ease; }
.hero-sub { animation: heroIn 0.8s 0.7s both ease; }
.hero-actions { animation: heroIn 0.8s 0.9s both ease; }
.hero-scroll { animation: heroIn 0.8s 1.2s both ease; }
.hero-badge { animation: heroIn 0.8s 1.0s both ease; }

/* Scroll-line pulsowanie */
@keyframes scrollPulse {
  0%   { transform: scaleY(0); transform-origin: top; }
  50%  { transform: scaleY(1); transform-origin: top; }
  51%  { transform: scaleY(1); transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}
.scroll-line {
  animation: scrollPulse 2s 1.5s infinite ease-in-out;
}

/* FAB wejście */
@keyframes fabIn {
  from { transform: scale(0) rotate(-180deg); opacity: 0; }
  to   { transform: scale(1) rotate(0deg); opacity: 1; }
}
.fab-tel {
  animation: fabIn 0.5s 2s both cubic-bezier(0.34,1.56,0.64,1);
}
