.stepper {
  width: 100%;
  margin: 0 auto;
  overflow-x: auto;
  text-align: center;
  white-space: nowrap;
  .step {
    display: inline-block;
    position: relative;
    padding: 24px;
    white-space: nowrap;
    
    &:hover {
      .step-circle {
        background-color: #757575;
      }
    }
    
    &:first-child .step-bar-left,
    &:last-child .step-bar-right {
      display: none;
    }
    
    &.complete, &.active {
      .step-circle {
        background-color: $primary-color;
      }
      
      .step-title {
        color: $primary-color;
      }
    }
    
    &.complete {
      .step-bar-right, .step-bar-left {
        border-top: 2px solid $primary-color;
      }
    }
    
    &.active {
      .step-bar-left {
        border-top: 2px solid $primary-color;
      }
    }
    
    .step-circle {
      width: 20px;
      height: 20px;
      margin: 0 auto;
      background-color: $shuttle-gray-color;
      border-radius: 50%;
      text-align: center;
    }
    
    .step-title {
      margin-top: -2.5rem;
      font-weight: 400;
      text-align: center;
      color: $shuttle-gray-color;
      padding-bottom: 0.5rem;
    }
    
    .step-bar-left, .step-bar-right {
      position: absolute;
      top: 29px;
      height: 1px;
      border-top: 2px solid #DDDDDD;
    }
    
    .step-bar-right {
      right: 0;
      left: 50%;
      margin-left: 20px;
    }
    
    .step-bar-left {
      left: 0;
      right: 50%;
      margin-right: 20px;
    }
  }
}

@media(max-width: 1024px) {
  .stepper {
    .step {
      padding: 24px 18px;
      
      .step-title {
        line-height: 18px;
        height: 50px;
        font-size: 1rem;
        margin-top: -0.5rem;
      }
      
      .step-circle {
        width: 15px;
        height: 15px;
      }
      
      .step-bar-left, .step-bar-right {
        top: 70px;
      }
    }
  }
}

@media(max-width: 834px) {
  .stepper {
    .step {
      padding: 24px 15px;
      
      .step-title {
        line-height: 18px;
        height: 50px;
        font-size: 0.9rem;
        margin-top: -0.5rem;
      }
      
      .step-circle {
        width: 10px;
        height: 10px;
      }
      
      .step-bar-left, .step-bar-right {
        top: 70px;
      }
    }
  }
}

@media(max-width: 767px) {
  .stepper {
    .step {
      padding: 24px 7px;
      
      .step-title {
        line-height: 17px;
      }
    }
  }
}
