.dko-timeline {
    --record--padding: 20px;
    display: grid;
    grid-template-areas: "title"
                         "swiper"
                         "cta";
    padding: var(--mdr--padding-vertical) var(--mdr--padding-horizontal);
}
.dko-timeline::before {
    content: "";
    display: block;
    grid-area: swiper;
    height: 4px;
    transform: translateY(-50%);
    background-color: var(--mdr--light-grey);
    margin-top: calc(var(--record--padding) + 25px);
    
    
    margin-left: calc(-1 * var(--mdr--padding-horizontal));
    width: calc(100% + 2 * var(--mdr--padding-horizontal));
}

.dko-timeline__title {
    grid-area: title;
    margin-bottom: 50px;
}
.dko-timeline__swiper {
    grid-area: swiper;
    margin-left: calc(-1 * var(--mdr--padding-horizontal));
    width: calc(100% + 2 * var(--mdr--padding-horizontal));
}
.dko-timeline__prev,
.dko-timeline__next {
    align-self: flex-start;
    margin-top: var(--record--padding);
    background-color: var(--mdr--pure-white);
    
    display: none;
}
.dko-timeline__prev {
    grid-area: prev;
}
.dko-timeline__next {
    grid-area: next;
}
.dko-timeline__cta {
    grid-area: cta;
    justify-self: flex-start;
    margin-top: 20px;
}
@media screen and (max-width: 576px) {
    .dko-timeline__record__date {
        /*transition: transform 0.6s ease 0s;*/
    }
    .dko-timeline__record.swiper-slide-prev .dko-timeline__record__date {
        transform: translateX(15vw);
    }
    .dko-timeline__record.swiper-slide-next .dko-timeline__record__date {
        transform: translateX(-15vw);
    }
}
@media screen and (min-width: 577px) {
    .dko-timeline {
        grid-template-areas: "title title  title"
                             "prev  swiper next"
                             "cta   cta    cta";
        grid-template-columns: 50px 1fr 50px;
    }
    .dko-timeline::before {
        margin-left: 0px;
        width: 100%;
    }
    .dko-timeline__swiper {
        margin-left: -25px;
        width: calc(100% + 50px);
    }
    .dko-timeline__prev,
    .dko-timeline__next {
        display: inline-block;
    }
}

@media screen and (min-width: 768px) {
    .dko-timeline {
        grid-template-columns: 55px 1fr 55px;
    }
    .dko-timeline::before {
        margin-top: calc(var(--record--padding) + 27.5px);
    }
    .dko-timeline__title {
        justify-self: center;
        text-align: center;
    }
    .dko-timeline__swiper {
        margin-left: -27.5px;
        width: calc(100% + 55px);
    }
    .dko-timeline__cta {
        grid-area: cta;
        justify-self: center;
    }
}

@media screen and (min-width: 1680px) {
    .dko-timeline {
        grid-template-areas: ". title title  title ."
                             ". prev  swiper next  ."
                             ". cta   cta    cta   .";
        grid-template-columns: 1fr 55px calc(1680px - 2 * var(--mdr--padding-horizontal) - 2 * 55px) 55px 1fr;
    }
}

/* other
*/
.dko-timeline__record {
    position: relative;
    width: min(62vw, 294px);
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
}
.dko-timeline__record-content {
    width: 100%;
    padding: calc(var(--record--padding) + 50px + var(--record--padding)) var(--record--padding) var(--record--padding);
    background: var(--mdr--biscuit-beige);
    border-radius: 10px;
    
    opacity: 0;
}
.swiper-slide-active > .dko-timeline__record-content {
    opacity: 1;
}

.dko-timeline__record__date {
    position: absolute;
    top: var(--record--padding);
    padding: 10px;
    
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-width: 50px;
    height: 50px;
    background: var(--mdr--light-grey);
    color: var(--mdr--dark-grey);
    border-radius: 10px;
    cursor: pointer;
    
    z-index: 1;
    
    transition: 0.6s ease 0s;
    transition-property: background-color, color;
}
.dko-timeline__record.swiper-slide-active .dko-timeline__record__date {
    background: var(--mdr--dark-grey);
    color: var(--mdr--pure-white);
}
    
.dko-timeline__record__title {
    font-size: 18px;
    line-height: 22px;
    font-weight: 600;
}
.dko-timeline__record__text {
    margin-top: 10px;
}

.dko-timeline__record__date,
.dko-timeline__record__title,
.dko-timeline__record__text {
    text-align: center;
}
@media screen and (min-width: 768px) {
    .dko-timeline__record__date {
        min-width: 55px;
        height: 55px;
    }
    .dko-timeline__record-content {
        padding: calc(20px + 55px + 20px) 20px 20px;
    } 
    .dko-timeline__record__title {
        font-size: 22px;
        line-height: 1.2em;
    }
}