$step-line-size: 2px;
$step-indicator-size: 20px;
$step-indicator-margin: 6px;
$step-title-size: 150px;

.ws-stepper {
  display: flex;

  @include medium {
    display: block;
  }
}

.ws-stepper__step-indicator-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;

  @include medium {
    flex-direction: row;
    justify-content: space-between;
    margin: 0 auto;
    width: calc(100% - #{$step-title-size - $step-indicator-size});
  }
}

.ws-stepper__line {
  background: $color-gray-20;
  display: block;
  height: 100%;
  left: $step-indicator-size / 2;
  position: absolute;
  width: $step-line-size;

  @include medium {
    display: block;
    height: $step-line-size;
    left: 0;
    top: $step-indicator-size / 2;
    width: 100%;
  }
}

.ws-stepper__step-indicator {
  border-radius: 50%;
  display: inline-block;
  height: $step-indicator-size;
  margin: $step-indicator-margin 0;
  position: relative;
  width: $step-indicator-size;
  z-index: 1;

  @include medium {
    margin: 0;
  }

  &:first-of-type {
    margin-top: 0;
  }

  &:last-of-type {
    margin-bottom: 0;
  }
}

.ws-stepper__step-indicator--active {
  @include medium {
    transform: scale(1.2);
  }
}

.ws-stepper__step-title-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;

  @include medium {
    flex-direction: row;
    justify-content: space-between;
  }
}

.ws-stepper__step-title {
  height: $step-indicator-size;
  line-height: $step-indicator-size;
  margin-left: $step-indicator-margin * 2;
  min-width: $step-title-size;

  @include medium {
    height: auto;
    margin: 0;
    padding: 12px 0;
    text-align: center;
  }
}

.ws-stepper__step-title--active {
  font-weight: 700;
}
