/* ═════════════════════════════════════════════════════════════
   STEPS CSS
   
   Estilos para:
   - Contenedor de pasos
   - Animaciones de entrada / salida
   - Títulos y subtítulos de cada paso
═════════════════════════════════════════════════════════════ */

.steps-container {
  flex: 1;
  overflow: hidden;
  position: relative
}

@media(min-width:768px) {
  .steps-container {
    min-height: 300px
  }
}

.step {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0 20px 20px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  transform: translateX(100%);
  transition: all .35s cubic-bezier(.4, 0, .2, 1);
  pointer-events: none
}

.step::after {
  content: '';
  display: block;
  height: 120px
}

@media(min-width:768px) {
  .step::after {
    height: 20px
  }
}

.step.active {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto
}

.step.prev {
  transform: translateX(-100%)
}

.step-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--gray-800);
  margin-bottom: 6px;
  margin-top: 20px
}

.step-subtitle {
  font-size: 14px;
  color: var(--gray-500);
  margin-bottom: 20px
}

/* ── Animación de entrada/salida ── */
@keyframes slideUpFade {
  from {
    opacity: 0;
    transform: translateY(20px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

/* ── Responsive ── */
@media (min-width: 1024px) {
  .steps-container {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    position: relative;
    scroll-behavior: smooth
  }

  .step {
    position: static;
    opacity: 1;
    transform: none;
    pointer-events: none;
    display: none;
    padding: 28px 36px 36px
  }

  .step::after { height: 0 }

  .step.active {
    display: block;
    pointer-events: auto
  }

  .step.prev { display: none }

  .step-title { font-size: 22px; margin-top: 0 }
  .step-subtitle { font-size: 15px; margin-bottom: 24px }
}

@media (min-width: 1440px) {
  .step { padding: 32px 44px 40px }
  .step-title { font-size: 24px }
  .step-subtitle { font-size: 16px }
}
