/*
 * Etapas del Método Psi. Son una secuencia real, por eso van numeradas.
 * La barra de cada fila avanza una posición por etapa: al recorrer la lista se lee
 * como el cronograma de una tesis.
 */
@layer components {
  .stages {
    border-block-end: 1px solid var(--color-line);
  }

  /* Celular: el número a la izquierda y, a su derecha, título, barra y texto. */
  .stage {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    column-gap: var(--space-s);
    row-gap: var(--space-xs);
    padding-block: var(--space-l);
    border-block-start: 1px solid var(--color-line);
  }

  .stage__number {
    grid-column: 1;
    grid-row: 1 / span 3;
    color: var(--color-accent-text);
    font-size: var(--step-5);
    font-stretch: var(--width-condensed);
    font-weight: 500;
    font-variant-numeric: lining-nums;
    line-height: 0.82;
  }

  .stage__title {
    grid-column: 2;
  }

  /* Fila de cronograma: cinco casillas sobre una línea base. */
  .stage__schedule {
    grid-column: 2;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    column-gap: var(--space-3xs);
    align-items: end;
    max-inline-size: 14rem;
    block-size: 0.75rem;
    border-block-end: 1px solid var(--color-line);
  }

  .stage__bar {
    grid-column: var(--stage-position, 1);
    block-size: 0.5rem;
    border-radius: var(--radius-mark) var(--radius-mark) 0 0;
    background-color: var(--color-accent-text);
  }

  /* Posición de la barra: la etapa n ocupa la casilla n. */
  .stage:nth-child(1) {
    --stage-position: 1;
  }

  .stage:nth-child(2) {
    --stage-position: 2;
  }

  .stage:nth-child(3) {
    --stage-position: 3;
  }

  .stage:nth-child(4) {
    --stage-position: 4;
  }

  .stage:nth-child(5) {
    --stage-position: 5;
  }

  .stage__body {
    grid-column: 2;
    display: grid;
    justify-items: start;
    gap: var(--space-2xs);
    max-inline-size: 36rem;
  }

  .stage__shortcut {
    display: inline-flex;
    align-items: center;
    min-block-size: 2.75rem;
    font-weight: 600;
  }

  /* Escritorio: una fila con cuatro columnas (número, título, texto y cronograma). */
  @media (min-width: 62rem) {
    .stage {
      grid-template-columns: 4.5rem minmax(0, 0.82fr) minmax(0, 1.3fr) 11rem;
      column-gap: var(--space-l);
    }

    .stage__number,
    .stage__title,
    .stage__body,
    .stage__schedule {
      grid-row: 1;
    }

    .stage__body {
      grid-column: 3;
    }

    .stage__schedule {
      grid-column: 4;
      max-inline-size: none;
      margin-block-start: var(--space-xs);
    }
  }
}
