.nut-step {
  flex-grow: 0;
  flex-shrink: 0;
  flex: 1;
  text-align: center;
  font-size: 0;
  &-head {
    position: relative;
    display: flex;
    justify-content: center;
    margin-bottom: 12px;
  }
  &-line {
    position: absolute;
    top: 11px;
    left: 50%;
    right: -50%;
    display: inline-block;
    height: 1px;
    background: $steps-base-line-color;
  }
  &-icon {
    position: relative;
    display: flex;
    width: $steps-base-icon-width;
    height: $steps-base-icon-height;
    line-height: $steps-base-icon-line-height;
    font-size: $steps-base-icon-font-size;
    align-items: center;
    justify-content: center;
    z-index: 1;
    .nut-icon {
      width: 100%;
      height: 100%;
    }
    &.is-text {
      border-radius: 50%;
      border-width: 1px;
      border-style: solid;
    }
    &.is-icon {
      border-radius: 50%;
      border-width: 1px;
      border-style: solid;
      background-color: transparent;
    }
  }
  &-main {
    display: inline-block;
    padding-left: 10%;
    padding-right: 10%;
    text-align: center;
  }
  &-title {
    display: block;
    margin-bottom: $steps-base-title-margin-bottom;
    line-height: $steps-base-title-line-height;
    font-size: $steps-base-title-font-size;
    color: $steps-base-title-color;
  }
  &-content {
    display: block;
    line-height: $steps-base-content-line-height;
    font-size: $steps-base-content-font-size;
    color: $steps-base-content-color;
  }
  &:last-child {
    .nut-step-line {
      display: none;
    }
  }
  &.nut-step-finish {
    .nut-step-head {
      color: $steps-finish-head-color;
      border-color: $steps-finish-head-border-color;
    }
    .nut-step-icon.is-text {
      background-color: $steps-finish-icon-text-color;
    }
    .nut-step-icon.is-icon {
      background-color: $steps-finish-icon-text-color;
    }
    .nut-step-line {
      background: $steps-finish-line-background;
    }
    .nut-step-title {
      color: $steps-finish-title-color;
    }
  }
  &.nut-step-process {
    .nut-step-head {
      color: $steps-process-head-color;
      border-color: $steps-process-head-border-color;
    }
    .nut-step-icon.is-text {
      background-color: $steps-process-icon-text-color;
    }
    .nut-step-icon.is-icon {
      background-color: $steps-process-icon-text-color;
    }
    .nut-step-title {
      color: $steps-process-title-color;
    }
  }
  &.nut-step-wait {
    .nut-step-head {
      color: $steps-wait-head-color;
      border-color: $steps-wait-head-border-color;
    }
    .nut-step-icon.is-text {
      background-color: $steps-wait-icon-bg-color;
    }
    .nut-step-icon.is-icon {
      background-color: $steps-wait-icon-bg-color;
      .nut-icon {
        color: $steps-wait-icon-color;
      }
    }
    .nut-step-title {
      color: $steps-wait-title-color;
    }
    .nut-step-content {
      color: $steps-wait-content-color;
    }
  }
}
.nut-steps-horizontal {
  padding: $steps-horizontal-padding;
  &.nut-steps-dot {
    .nut-step-head {
      margin-top: 7px;
      margin-bottom: 0;
    }
    .nut-step-line {
      top: 50%;
      bottom: -50%;
    }
    .nut-step-icon {
      width: 8px;
      height: 8px;
      background: $primary-color;
      border-radius: 50%;
      box-sizing: content-box;
    }
    .nut-step-wait {
      .nut-step-icon {
        background-color: $steps-wait-icon-bg-color;
      }
      .nut-step-content {
        color: $steps-wait-content-color;
      }
    }
    .nut-step-finish {
      .nut-step-icon {
        background-color: $primary-color;
      }
    }
    .nut-step-process {
      .nut-step-icon {
        position: relative;
        background-color: $primary-color;
        &:before {
          content: '';
          display: inline-block;
          position: absolute;
          left: 50%;
          top: 50%;
          margin-left: -7px;
          margin-top: -7px;
          width: 14px;
          height: 14px;
          background-color: $primary-color-end;
          border-radius: 50%;
          opacity: 0.23;
        }
      }
    }
  }
}
.nut-steps-vertical {
  padding: $steps-vertical-padding;
  .nut-step {
    display: flex;
    height: 33.34%;
  }
  .nut-step-line {
    position: absolute;
    display: inline-block;
    width: 1px;
    height: 100%;
    background: $steps-base-line-color;
  }
  .nut-step-main {
    display: inline-block;
    padding: $steps-vertical-main-padding;
    text-align: left;
  }
  .nut-step-title {
    line-height: $steps-vertical-title-line-height;
    font-size: $steps-vertical-title-font-size;
  }
  .nut-step-icon {
    width: $steps-vertical-icon-width;
    height: $steps-vertical-icon-height;
    line-height: $steps-vertical-icon-line-height;
    font-size: $steps-vertical-icon-font-size;
  }
  &.nut-steps-dot {
    .nut-step-head {
      margin-top: 7px;
      margin-bottom: 0;
    }
    .nut-step-line {
      top: 7px;
      left: 50%;
      right: -50%;
    }
    .nut-step-icon {
      width: 8px;
      height: 8px;
      background: $primary-color;
      border-radius: 50%;
      box-sizing: content-box;
    }
    .nut-step-wait {
      .nut-step-icon {
        background-color: $steps-wait-icon-bg-color;
      }
      .nut-step-content {
        color: $steps-wait-content-color;
      }
    }
    .nut-step-finish {
      .nut-step-icon {
        background-color: $primary-color;
      }
    }
    .nut-step-process {
      .nut-step-icon {
        position: relative;
        background-color: $primary-color;
        &:before {
          content: '';
          display: inline-block;
          position: absolute;
          left: 50%;
          top: 50%;
          margin-left: -7px;
          margin-top: -7px;
          width: 14px;
          height: 14px;
          background-color: $primary-color-end;
          border-radius: 50%;
          opacity: 0.23;
        }
      }
    }
  }
}
