div.steps {
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    padding: 15px 0px 5px 0px;
    line-height: 100%;
}
div.step {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    font-size: 10pt;
}
div.step::before, div.step::after {
    position: absolute;
    content: "";
    border-bottom: 6px solid #B0BFC6;
    width: 100%;
    top: 18px;
    z-index: 2;
}
div.step::before { left: -50%; }
div.step::after { left: 50%; }
div.step-counter {
    position: relative;
    z-index: 5;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #B0BFC6;
    margin-bottom: 8px;
    color: white;
    font-size: 16pt;
    font-weight: bold;
}
div.step.completed .step-counter, div.step.active .step-counter { background-color: #B71B1C; }
div.step.completed::after {
    position: absolute;
    content: "";
    border-bottom: 6px solid #B71B1C;
    width: 100%;
    top: 18px;
    left: 50%;
    z-index: 3;
}
div.step:first-child::before { content: none; }
div.step:last-child::after { content: none; }
div.step-name { text-align: center; }

@media (max-width: 800px) {
    div.steps { width: 100%; }
}
@media (min-width: 801px) {
    div.steps { width: 75%; }
}