/* ==========================================================================
   sections/process.css
   Línea de tiempo: vertical en celular, horizontal en desktop.
   La línea naranja se "dibuja" con el scroll (scaleY / scaleX con scrub).
   ========================================================================== */
.timeline { position: relative; display: grid; gap: 1.4rem; padding-left: 3.4rem; }
.timeline__track, .timeline__fill { position: absolute; left: 19px; top: 8px; bottom: 8px; width: 2px; }
.timeline__track { background: var(--linea-2); }
.timeline__fill { background: var(--grad-naranja); transform-origin: top; transform: scaleY(0); box-shadow: var(--brillo-naranja); }
html:not(.motion) .timeline__fill { transform: none; }
.step { position: relative; }
.step__dot {
  position: absolute; left: -3.4rem; top: -4px;
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--negro); border: 2px solid var(--linea-2);
  font-family: var(--font-code); font-size: var(--fs-sm); font-weight: 700;
  transition: border-color 0.4s, background-color 0.4s, color 0.4s, box-shadow 0.4s;
}
.step.is-active .step__dot,
html:not(.motion) .step__dot { border-color: var(--naranja); background: var(--naranja); color: var(--negro); box-shadow: var(--brillo-naranja); }
.step__title { font-size: var(--fs-md); font-weight: 900; margin-bottom: 0.25rem; }
.step__text { color: var(--gris); max-width: 32ch; font-size: var(--fs-sm); }

@media (min-width: 900px) {
  .timeline { grid-template-columns: repeat(4, 1fr); gap: 2rem; padding-left: 0; padding-top: 3.75rem; }
  .timeline__track, .timeline__fill { left: 20px; right: 20px; top: 19px; bottom: auto; width: auto; height: 2px; }
  .timeline__fill { transform-origin: left; transform: scaleX(0); }
  .step__dot { left: 0; top: -3.75rem; }
}
