.step-by-step {
  margin: 98px 0 110px;

  @include tablet {
    margin: 91px 0 60px;
  }

  &__title {
    margin: 18px 0 22px;

    @include tablet {
      margin: 21px 0;
    }
  }

  &__wrapper {
    display: flex;
    gap: 84px;

    @include desktop {
      gap: 42px 24px;
    }

    @include laptop {
      flex-direction: column;
    }
  }

  &__controls {
    display: flex;
    flex-direction: column;
    gap: 36px;
    flex: 0 0 410px;

    @include desktop {
      flex: 0 0 360px;
    }

    @include laptop {
      flex: 0 1 auto;
      flex-direction: row;
      gap: 20px;
      padding-bottom: 10px;
      overflow: auto;
    }

    &-button {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: 20px;
      padding: 11px 29px 15px;
      border: 1px solid rgba(98, 98, 98, 0.25);
      border-radius: 8px 25px;
      transition: all ease-in-out 0.1s;
      cursor: pointer;

      @include laptop {
        flex: 0 0 auto;
        padding: 8px 21px;
      }

      &:hover,
      &.active:hover {
        background-color: $blue;
        border-color: $blue;
      }

      &:active,
      &.active:active {
        background-color: $darkblue;
        border-color: $darkblue;
      }

      &.active {
        border-color: rgba($color: $white, $alpha: 1);
        background-color: $white;
      }

      &-number {
        font-weight: 500;
        font-size: 28px;
        line-height: 146%;
        color: $grey;

        @include desktop {
          font-size: 24px;
        }
      }

      &-text {
        font-weight: 400;
        font-size: 24px;
        line-height: 146%;
        color: $darkgrey;

        font-size: 20px;
      }

      &.active &-number {
        font-weight: 700;
        color: $black;
      }

      &.active &-text {
        font-weight: 500;
        color: $darkgrey;
      }

      &:hover &-number,
      &:hover &-text {
        color: $white;
      }
    }
  }

  &__content {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 26px 56px;
    box-sizing: border-box;
    border-radius: 22px 88px;
    background-color: $white;

    @include laptop {
      padding: 21px 27px;
      border-radius: 10px 30px;
    }
  }

  &__card {
    display: none;
    max-width: 520px;

    @include laptop {
      max-width: none;
    }

    &--wide {
      max-width: none;
    }

    &.active {
      display: block;
    }

    &-title {
      margin: 0 0 13px;
      font-weight: 600;
      font-size: 34px;
      line-height: 141%;
      text-align: center;
      color: $darkgrey;
    }

    &-text {
      margin: 0 0 32px;
      font-weight: 400;
      font-size: 20px;
      line-height: 146%;
      text-align: center;
      color: $grey;
    }

    &-list {
      display: flex;
      flex-wrap: wrap;
      gap: 24px;
      margin: 0 0 40px;

      @include mobile {
        gap: 16px;
      }

      &-item {
        flex: 0 0 calc(100% / 3 - 24px / 3 * 2);
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;

        @include mobile {
          flex: 0 0 calc(50% - 8px);
        }

        &-figure {
          display: flex;
          align-items: center;
          justify-content: center;
          height: 48px;
          width: 48px;
          border-radius: 48px;
          background-color: $blue;

          &-image {
            display: block;
            max-width: 100%;
            width: 24px;
            height: auto;
          }
        }

        &-text {
          font-weight: 600;
          font-size: 17px;
          line-height: 127%;
          text-align: center;
          color: $grey;

          @include mobile {
            font-size: 13px;
          }
        }
      }
    }

    &-buttons {
      display: flex;
      align-items: center;
      justify-content: center;
    }
  }
}
