.timeline {
    list-style: none;
    padding: 20px 0 20px;
    position: relative;
}

.timeline:before {
    content: '';
    top: 0;
    position: absolute;
    width: 4px;
    height: 100%;
    background: #eeeeee;
    left: 24px;
    margin-left: -1.5px;
}

@media screen and (min-width: 992px){
    .timeline:before {
        left: 50%;
        margin-left: -2px;
    }
}

.timeline-block {
    margin-bottom: 4rem;

    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

@media screen and (max-width: 991px) {
    .timeline-block {
        margin-left: 75px;
    }
}

@media screen and (min-width: 992px){
    .timeline-block:nth-child(even) {
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
    }
}

.timeline .timeline-block .timeline-panel {

    border-radius: 5px;
    background: white;
    padding: 20px;
    position: relative;
    -webkit-box-shadow: 0 3px 0 #d7e4ed;
    box-shadow: 0 3px 0 #d7e4ed;
    width: 100%;
}

@media screen and (min-width: 992px) {
    .timeline .timeline-block .timeline-panel {
        width: 45%;
    }

    .timeline .timeline-block:nth-child(odd) .timeline-panel {
        -webkit-animation-name: bounceInLeft;
        animation-name: bounceInLeft;
        animation-duration: 1s;
    }

    .timeline .timeline-block:nth-child(even) .timeline-panel {
        -webkit-animation-name: bounceInRight;
        animation-name: bounceInRight;
        animation-duration: 1s;
    }
}

.timeline .timeline-block .timeline-panel:before {
    content: '';
    position: absolute;
    top: 18px;
    right: 100%;
    height: 0;
    width: 0;
    border: 7px solid transparent;
    border-right: 7px solid white;
    box-sizing: border-box;
}

@media screen and (min-width: 992px) {
    .timeline .timeline-block .timeline-panel:before {
        top: 25px;
        left: 100%;
        border-color: transparent;
        border-left-color: white;
    }
}

@media screen and (min-width: 992px) {
    .timeline .timeline-block:nth-child(even) > .timeline-panel:before {
        left: auto;
        right: 100%;
        border-color: transparent;
        border-right-color: white;
    }
}

.timeline-badge a{
    color: #fff;
}
.timeline-badge a:hover{
    color: #EEEEEE;
}

.timeline-badge {
    color: #fff;
    width: 50px;
    height: 50px;
    font-size: 3em;
    text-align: center;
    position: absolute;
    left: 0;
    background-color: #999999;
    z-index: 1;
    border-radius: 50%;
    box-shadow: 0 0 0 4px #fff, inset 0 2px 0 rgba(0,0,0,.08), 0 3px 0 4px rgba(0,0,0,.05);

    -webkit-animation-name: rubberBand;
    animation-name: rubberBand;
    animation-duration: 1s;
}

@media screen and (min-width: 992px){
    .timeline-badge {
        width: 60px;
        height: 60px;
        left: 50%;
        margin-left: -30px;
        -webkit-transform: translateZ(0);
        -moz-transform: translateZ(0);
        -ms-transform: translateZ(0);
        -o-transform: translateZ(0);
        transform: translateZ(0);
    }
}

.timeline-badge-dark-gray {
    background-color: #3b3b3c;
}

.timeline .timeline-badge i {
    position: relative;
    top: 15%;
}
