﻿.step-bar-horizontal {
    counter-reset: step;
    height: 100%;
    display: flex;
    padding: 0;
    --size-step: 20px;
}
    .step-bar-horizontal.size-40 {
        --size-step: 40px;
    }
    .step-bar-horizontal.size-30 {
        --size-step: 30px;
    }
    .step-bar-horizontal li {
        flex: 1;
        float: left;
        list-style: none;
        position: relative;
        text-align: center;
        color: #979797;
        text-align: center;
        font-weight: 600;
        font-size: 14px;
        line-height: 25px;
        white-space: nowrap;
        padding: 0 15px;
    }
        .step-bar-horizontal li:after {
            background: #fff;
            border: solid 1px #989898;
            border-radius: 50%;
            color: #8C8C8C;
            content: counter(step);
            counter-increment: step;
            display: block;
            font-weight: 600;
            height: var(--size-step);
            width: var(--size-step);
            line-height: calc(var(--size-step) - 2px);
            margin: 10px auto 10px auto;
            text-align: center;
            font-size: calc(var(--size-step)/2);
        }
        .step-bar-horizontal li:before {
            background: #E9E9E9;
            content: '';
            height: calc(var(--size-step) / 5);
            left: -50%;
            position: absolute;
            bottom: calc(50% - 20px);
            width: 100%;
            z-index: -1;
            transform: translateY(-50%);
        }

@media (max-width: 576px) {
    .step-bar-horizontal li:before {
        top: 50%;
    }
    .step-bar-horizontal.size-sm-30 {
        --size-step: 30px;
    }

    .step-bar-horizontal.size-sm-20 {
        --size-step: 30px;
    }
}
    .step-bar-horizontal:not(.center) li:first-child {
        text-align: left;
        padding: 0;
    }

            .step-bar-horizontal li:first-child:before {
                content: none;
            }

    .step-bar-horizontal:not(.center) li:first-child:after, .step-bar-horizontal:not(.center) li:last-child:after {
        margin: 0;
    }

        .step-bar-horizontal:not(.center) li:nth-child(2):before {
            width: 140%;
            left: -90%;
        }

    .step-bar-horizontal:not(.center) li:last-child {
        text-align: right;
        padding: 0;
    }

    .step-bar-horizontal:not(.center) li:last-child:after {
        margin: 0 0 0 auto;
    }

    .step-bar-horizontal:not(.center) li:last-child:before {
        width: 150%;
        left: -55%;
    }

            .step-bar-horizontal li.active,
            .step-bar-horizontal li.complete {
                color: #7fca27;
            }
            .step-bar-horizontal li.active:before,
            .step-bar-horizontal li.complete:before {
                background: #7fca27;
            }

        .step-bar-horizontal li.active::after,
        .step-bar-horizontal li.complete::after {
            background: #7fca27;
            color: #fff;
        }
