.stages__row {
  display: flex;
  flex-direction: column;
  gap: 32px;
  position: relative;
  z-index: 0;
}
@media (min-width: 48em) {
  .stages__row {
    flex-direction: row;
    justify-content: space-between;
    padding: 86px 53px 86px 95px;
  }
}
@media (min-width: 75em) {
  .stages__row {
    padding: 96px 61px 96px 104px;
  }
}
@media (min-width: 88.25em) {
  .stages__row {
    padding: 101px 86px 101px 134px;
  }
}
@media (min-width: 48em) {
  .stages__row:before {
    content: "";
    display: block;
    width: 100%;
    height: 2px;
    background-color: var(--clr-01);
    position: absolute;
    top: calc(50% - 1px);
    left: 0;
    z-index: -1;
  }
}
.stages__item {
  display: flex;
  gap: 60px;
  align-items: center;
  position: relative;
  z-index: 0;
}
.stages__item:before, .stages__item:after {
  content: "";
  display: block;
  width: 2px;
  height: calc(50% + 16px);
  background-color: var(--clr-01);
  position: absolute;
  left: 19px;
  z-index: -1;
}
@media (min-width: 48em) {
  .stages__item:before, .stages__item:after {
    content: none;
  }
}
.stages__item:before {
  bottom: 50%;
}
.stages__item:after {
  top: 50%;
}
.stages__item:first-child:before, .stages__item:last-child:after {
  content: none;
}
@media (min-width: 48em) {
  .stages__item:nth-child(2n) .stages__text {
    top: calc(100% + 30px);
    bottom: unset;
  }
}
@media (min-width: 48em) and (min-width: 75em) {
  .stages__item:nth-child(2n) .stages__text {
    top: calc(100% + 40px);
  }
}
@media (min-width: 48em) {
  .stages__item:nth-child(2n) .stages__text:before {
    top: unset;
    bottom: calc(100% + 2px);
  }
}
.stages__number {
  border-radius: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  width: 40px;
  height: 40px;
  font-weight: 600;
  letter-spacing: -0.01em;
  flex-shrink: 0;
}
@media (min-width: 62em) {
  .stages__number {
    width: 44px;
    height: 44px;
  }
}
.stages__text {
  font-weight: 600;
  letter-spacing: -0.01em;
  padding: 6px 10px;
  position: relative;
}
@media (min-width: 48em) {
  .stages__text {
    text-align: center;
    position: absolute;
    left: 50%;
    bottom: calc(100% + 30px);
    transform: translateX(-50%);
  }
}
@media (min-width: 75em) {
  .stages__text {
    bottom: calc(100% + 40px);
  }
}
@media (min-width: 88.25em) {
  .stages__text {
    font-size: 18px;
  }
}
.stages__text:before {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  background-color: var(--clr-01);
  position: absolute;
  right: calc(100% + 2px);
  top: calc(50% - 1px);
}
@media (min-width: 48em) {
  .stages__text:before {
    height: 30px;
    width: 2px;
    top: calc(100% + 2px);
    left: calc(50% - 1px);
  }
}
@media (min-width: 75em) {
  .stages__text:before {
    height: 40px;
  }
}