/* Animate */
/* ===== WOW animation: initial state ===== */
.lz-carpet-steps .lz-step{
  opacity: 0;
  transform: translateY(26px) scale(.985);
  filter: blur(10px);
  will-change: transform, opacity, filter;
}

.lz-carpet-steps .lz-step__image-section{
  transform: translateX(-18px) scale(.99);
  opacity: .0;
  will-change: transform, opacity;
}

.lz-carpet-steps .lz-step__content{
  transform: translateX(18px) scale(.99);
  opacity: .0;
  will-change: transform, opacity;
}

.lz-carpet-steps .lz-step__name{
  opacity: 0;
  transform: translateY(-12px) scale(.92);
  will-change: transform, opacity;
}

.lz-carpet-steps .lz-step__connector{
  opacity: 0;
  transform: translateY(-6px) scale(.95);
  will-change: transform, opacity;
}

/* ===== when visible ===== */
.lz-carpet-steps.lz-steps--animate .lz-step.is-visible{
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
  transition:
    opacity 700ms cubic-bezier(.2,.9,.2,1) var(--lz-delay, 0ms),
    transform 900ms cubic-bezier(.2,.9,.2,1) var(--lz-delay, 0ms),
    filter 900ms cubic-bezier(.2,.9,.2,1) var(--lz-delay, 0ms);
}

.lz-carpet-steps.lz-steps--animate .lz-step.is-visible .lz-step__image-section{
  opacity: 1;
  transform: translateX(0) scale(1);
  transition:
    opacity 650ms cubic-bezier(.2,.9,.2,1) var(--lz-delay, 0ms),
    transform 900ms cubic-bezier(.2,.9,.2,1) var(--lz-delay, 0ms);
}

.lz-carpet-steps.lz-steps--animate .lz-step.is-visible .lz-step__content{
  opacity: 1;
  transform: translateX(0) scale(1);
  transition:
    opacity 650ms cubic-bezier(.2,.9,.2,1) var(--lz-delay2, 90ms),
    transform 950ms cubic-bezier(.2,.9,.2,1) var(--lz-delay2, 90ms);
}

.lz-carpet-steps.lz-steps--animate .lz-step.is-visible .lz-step__name{
  opacity: 1;
  transform: translateY(0) scale(1);
  transition:
    opacity 520ms cubic-bezier(.2,1.2,.2,1) var(--lz-delay, 0ms),
    transform 720ms cubic-bezier(.2,1.2,.2,1) var(--lz-delay, 0ms);
}

/* connector pop + gentle pulse */
.lz-carpet-steps.lz-steps--animate .lz-step.is-visible .lz-step__connector{
  opacity: .85;
  transform: translateY(0) scale(1);
  transition:
    opacity 500ms ease var(--lz-delay2, 90ms),
    transform 700ms cubic-bezier(.2,1.2,.2,1) var(--lz-delay2, 90ms);
}

.lz-carpet-steps.lz-steps--animate .lz-step.is-visible .lz-step__connector img{
  animation: lzArrowPulse 1.2s ease-in-out calc(var(--lz-delay2, 90ms) + 350ms) 2;
}

@keyframes lzArrowPulse{
  0%   { transform: translateY(0) scale(1); opacity: .85; }
  40%  { transform: translateY(5px) scale(1.07); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: .85; }
}

/* optional: 1-time "sweep" highlight for extra wow */
.lz-carpet-steps{
  position: relative;
}
.lz-carpet-steps::after{
  content:"";
  position:absolute;
  inset:-10px;
  pointer-events:none;
  opacity: 0;
  background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.35) 35%, transparent 70%);
  transform: translateX(-40%);
}
.lz-carpet-steps.lz-steps--sweep::after{
  opacity: 1;
  animation: lzSweep 1200ms cubic-bezier(.2,.9,.2,1) 1;
}
@keyframes lzSweep{
  0% { transform: translateX(-40%); opacity: 0; }
  15% { opacity: .9; }
  100%{ transform: translateX(40%); opacity: 0; }
}

/* accessibility: reduced motion */
@media (prefers-reduced-motion: reduce){
  .lz-carpet-steps .lz-step,
  .lz-carpet-steps .lz-step__image-section,
  .lz-carpet-steps .lz-step__content,
  .lz-carpet-steps .lz-step__name,
  .lz-carpet-steps .lz-step__connector{
    transition: none !important;
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
    filter: none !important;
  }
  .lz-carpet-steps::after{ display:none !important; }
}

