.stepper__list {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: step;
  display: grid;
  gap: 1rem;
}
@media (min-width: 64em) {
  .stepper__list {
    grid-auto-columns: 1fr;
    grid-auto-flow: column;
  }
}
.stepper__list > li {
  margin-block: 0;
  padding-block: 0;
}
.stepper__step {
  --step-color: var(--spruce-base-color-border-strong);
  display: grid;
  gap: 0 1rem;
  grid-template-columns: auto 1fr;
  position: relative;
}
@media (min-width: 64em) {
  .stepper__step {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .stepper__step:not(:last-child)::after {
    background-color: var(--step-color);
    block-size: 2px;
    content: "";
    inline-size: calc(100% - 2.5rem - 0.5rem * 2);
    inset-block-start: 1.25rem;
    inset-inline-start: calc(50% + 1.25rem + 0.5rem);
    position: absolute;
  }
}
.stepper__step--complete {
  --step-color: var(--spruce-base-color-primary);
}
.stepper__step--current {
  --step-color: var(--spruce-base-color-primary);
}
.stepper__marker {
  align-items: center;
  block-size: 2.5rem;
  border: 2px solid var(--step-color);
  border-radius: 50%;
  color: var(--spruce-base-color-heading);
  display: flex;
  font-weight: 700;
  grid-row: span 2;
  inline-size: 2.5rem;
  justify-content: center;
}
@media (min-width: 64em) {
  .stepper__marker {
    grid-row: auto;
    margin-inline: auto;
  }
}
.stepper__step--complete .stepper__marker {
  background-color: var(--step-color);
  color: var(--spruce-btn-color-primary-foreground);
}
.stepper__step--current .stepper__marker {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--spruce-base-color-primary) 20%, transparent);
}
.stepper__label {
  align-self: end;
  color: var(--spruce-base-color-heading);
  font-weight: 700;
}
@media (min-width: 64em) {
  .stepper__label {
    margin-block-start: 0.5rem;
  }
}
.stepper__description {
  color: var(--spruce-base-color-muted);
  font-size: var(--spruce-font-size-sm);
}
