.timeline {  overflow: hidden; padding: 2em 0; }

.timeline-container { position: relative; padding: 0; }
.timeline-container::before { content: ""; position: absolute; top: 0; left: 18px; height: 100%; width: 1px; background: #889D2C; }
.timeline-container::before { left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); }

.timeline-block { display: -ms-flexbox; display: flex; position: relative; z-index: 1; margin-bottom: 200px; }
.timeline-block.nophoto { display: block; }
.timeline-block:first-child { background: linear-gradient(180deg, rgb(255, 255, 255) 50%, rgba(255,255,255,0) 50%); }
.timeline-block:last-child { margin-bottom: 0; background: linear-gradient(180deg, rgba(255,255,255,0) 50%, rgb(255, 255, 255) 50%); }
.timeline-block:nth-child(even) { -ms-flex-direction: row-reverse; flex-direction: row-reverse; }

.timeline-date { display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; color: #092440; font-size: 5vw; line-height: 1.1; font-weight: 700; text-shadow: 16px 16px 18px rgba(0, 0, 0, 0.3); -webkit-text-shadow: 16px 16px 18px rgba(0, 0, 0, 0.3); -moz-text-shadow: 16px 16px 18px rgba(0, 0, 0, 0.3); background-color: #fff; }
.nophoto .timeline-date { margin: 0 auto; }
.timeline-date { width: 240px; height: 140px; -ms-flex-order: 0; order: 0; margin-left: calc(10% - 120px); will-change: transform; align-self: center; }
.timeline-block:first-of-type .timeline-date { align-self:center; }
.timeline-block:nth-child(even) .timeline-date { margin-right: calc(10% - 120px); }
.timeline-block.nophoto:nth-child(even) .timeline-date { margin-right: auto; }

.timeline-content { position: relative; margin-left: 1.25em; padding: 1.25em; align-items: center; width: 40%; -ms-flex-positive: 0; flex-grow: 0; will-change: transform; margin: 0; display: inline-grid; color: #092440; }
.nophoto .timeline-content { width: 75%; margin: 0 auto; display: block; background: #fff; }
.timeline-block:first-of-type .timeline-content::before { align-self:center; top: 24px; }
.timeline-block:nth-child(odd) .timeline-content::before { right: auto; left: 100%; width: 100px; height: 0; border: 2px solid transparent; border-bottom-color: #889D2C; margin-left: 2px; border-left: 2px; }

.timeline-photo { position: relative; margin-left: 1.25em; padding: 1.25em; align-items: center; width: 40%; -ms-flex-positive: 0; flex-grow: 0; will-change: transform; margin: 0; display: inline-grid; color: #092440; }
.timeline-block:first-of-type .timeline-photo::before { align-self:center; top: 24px; }
.timeline-block:nth-child(odd) .timeline-photo::before { right: auto; left: 100%; width: 100px; height: 0; border: 2px solid transparent; border-bottom-color: #889D2C; margin-left: 2px; border-left: 2px; }

.timeline-date--hidden, .timeline-content--hidden, .timeline-photo--hidden { visibility: hidden; }
.timeline-date--bounce-in { -webkit-animation: cd-bounce-1 0.6s; animation: cd-bounce-1 0.6s; }
.timeline-content--bounce-in { -webkit-animation: cd-bounce-2 0.6s; animation: cd-bounce-2 0.6s; }
.timeline-photo--bounce-in { -webkit-animation: cd-bounceup-2-inverse 0.6s; animation: cd-bounceup-2-inverse 0.6s; }
.timeline-block:nth-child(even) .timeline-content--bounce-in { -webkit-animation-name: cd-bounce-2-inverse; animation-name: cd-bounce-2-inverse; }
.timeline-block:nth-child(even) .timeline-photo--bounce-in { -webkit-animation-name: cd-bounceup-2-inverse; animation-name: cd-bounceup-2-inverse; }

@-webkit-keyframes cd-bounce-1 {
    0% {
        opacity: 0;
        -webkit-transform: scale(0.5);
        transform: scale(0.5);
    }
    60% {
        opacity: 1;
        -webkit-transform: scale(1.2);
        transform: scale(1.2);
    }
    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}
@keyframes cd-bounce-1 {
    0% {
        opacity: 0;
        -webkit-transform: scale(0.5);
        transform: scale(0.5);
    }
    60% {
        opacity: 1;
        -webkit-transform: scale(1.2);
        transform: scale(1.2);
    }
    100% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}
@-webkit-keyframes cd-bounce-2 {
    0% {
        opacity: 0;
        -webkit-transform: translateX(-100px);
        transform: translateX(-100px);
    }
    60% {
        opacity: 1;
        -webkit-transform: translateX(20px);
        transform: translateX(20px);
    }
    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}
@keyframes cd-bounce-2 {
    0% {
        opacity: 0;
        -webkit-transform: translateX(-100px);
        transform: translateX(-100px);
    }
    60% {
        opacity: 1;
        -webkit-transform: translateX(20px);
        transform: translateX(20px);
    }
    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}
@-webkit-keyframes cd-bounce-2-inverse {
    0% {
        opacity: 0;
        -webkit-transform: translateX(100px);
        transform: translateX(100px);
    }
    60% {
        opacity: 1;
        -webkit-transform: translateX(-20px);
        transform: translateX(-20px);
    }
    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}
@keyframes cd-bounce-2-inverse {
    0% {
        opacity: 0;
        -webkit-transform: translateX(100px);
        transform: translateX(100px);
    }
    60% {
        opacity: 1;
        -webkit-transform: translateX(-20px);
        transform: translateX(-20px);
    }
    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}
@-webkit-keyframes cd-bounceup-2-inverse {
    0% {
        opacity: 0;
        -webkit-transform: translateY(100px);
        transform: translateY(100px);
    }
    60% {
        opacity: 1;
        -webkit-transform: translateY(-20px);
        transform: translateY(-20px);
    }
    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
}


@media only screen and (max-width: 1450px) { 
    .timeline-date { width: 140px; margin-left: calc(10% - 70px); }
    .timeline-block:nth-child(2n) .timeline-date { margin-right: calc(10% - 70px); }
}

@media only screen and (max-width: 900px) {
    
    .timeline-block { display: flex; flex-wrap: wrap; margin-bottom: 100px; }
    .timeline-date { font-size: 3.5em; line-height: 1; height: auto; order: 1; width: 100% !important; display: block; text-align: center; padding: 20px 0; margin-left: 0 !important; margin-right: 0 !important; }
    .timeline-photo { order: 2; width: 100%; text-align: center; display: block; background: #fff; }
    .timeline-photo img { width: 50%; }
    .timeline-content { width: 90%; margin: 0 auto; display: block; background-color: #fff; font-size: 18px; line-height: 28px; order: 3; padding: 0; }
    .timeline-block .timeline-content::before { display: none !important; }
    
}
