@keyframes stepIconAnimation{
  0% {
    transform: translate(-50%, -50%) scale(1);
  }
  25% {
    transform: translate(-50%, -50%) scale(0.9);
  }
  50% {
    transform: translate(-50%, -50%) scale(1.2);
  }
  75% {
    transform: translate(-50%, -50%) scale(1);
  }
  100% {
    transform: translate(-50%, -50%) scale(1.1);
  }
}

.step-container{
    width: 100%;
    text-align: center;
}
.steps-intro{
    padding: 100px 0;
    position: relative;
}
.steps-intro span{
    position: relative;
    z-index: 1;
}
.steps{
    position: relative;
}
.step{
    position: relative;
}
.step .full-width{
    padding: 60px 60px 40px
}
.step .full-width:first-child{
    align-items: end;
    text-align: end;
}
.step .full-width:first-child .list li{
    padding-left: 0 !important;
    padding-right: 45px !important;
    text-align: end;
    justify-content: end;
}
.step .full-width:first-child .list li:after{
    left: unset;
    right: 12.5px;
}
.step .full-width:last-child{
    align-items: start;
    text-align: start;
}
.step .full-width .list{
    padding-top: 20px;
}
.step img{
    cursor: pointer;
    border: 10px solid white;
    border-radius: 25px;
    box-shadow: 0 1px 20px -15px var(--primary-color);
}

.step-container .progress{
    position: absolute;
    top: 40px;
    left: 50%;
    transform: translate(-50%, 0);
    width: 2px;
    height: 0;
    background: var(--highlight-color);
    z-index: 1;
    display: none;
}

@media only screen and (min-width: 1024px){
    .step-container .progress{
        display: block;
    }
    .steps:after{
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 50%;
        transform: translate(-1px, 0);
        border-left: 2px solid var(--border-color);
        width: 0;
        height: 100%;
    }
    .steps-intro:before, 
    .step:before,
    .steps:before{
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 50%;
        transform: translate(-50%, -50%);
        border-radius: 100%;
        width: 9px;
        height: 9px;
        z-index: 1
    }
    .steps-intro:before,
    .steps:before{
        background-color: var(--border-color);
        border: 4px solid var(--primary-background);
        outline: 1px solid var(--highlight-color);
        transform: translate(-50%, -50%) scale(1.1);
    }
    .steps:before{
        top: unset;
        bottom: 0;
        transform: translate(-50%, 50%) scale(1.1);
    }
    .steps-intro:after{
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 50%;
        transform: translate(-1px, 0);
        border-left: 2px dashed var(--border-color);
        width: 0;
        height: 100%;
    }
    .step:before{
        background-color: var(--highlight-color);
        border: 4px solid var(--primary-background);
        outline: 1px solid var(--border-color);
        transition: 500ms all ease-in-out;
    }
    .step.active:before{
        animation: stepIconAnimation 500ms ease-in-out;
        transform: translate(-50%, -50%) scale(1.1);
        outline: 1px solid var(--highlight-color);
    }
}