/*
    ========================
            TIMELINE
    ========================
*/

/*============
    GENERAL
=============*/

.timeline-container {overflow:hidden}

.timeline-list .item--arrow .cls-1 {
    fill: var(--white);
    transition: all .25s;
}

.timeline-list .item--arrow {
    height: 24px;
    position: absolute;
    top: calc(50% - (24px / 2)); /* 50% minus half of height */
    width: 21px;
}

/* .timeline-list .timeline-list_item .item--details:hover .item--arrow .cls-1 {
    fill: var(--sky-blue);
} */

.timeline-list .timeline-list_item .item--details {
    align-items: start;
    background-color: var(--white);
    border-radius: 16px;
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.20);
    color: var(--patch-reef-blue) !important;
    display: flex;
    flex-flow: column nowrap;
    gap: 16px;
    padding: 26px;
    position: relative;
    transition: all .25s;
    width: 100%;
    opacity: 1;
    margin-bottom: 20px;
}

.timeline-list .timeline-list_item .item--img {
    border-radius: 16px;
    /* display: flex; */
    height: 240px;
    justify-content: center;
    margin-bottom: 20px; /* on image, in case there is no image // combined with parent's gap */
    overflow: hidden;
    width: 100%;
}

.timeline-list .timeline-list_item .item--img img {
    max-height: 240px;
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.timeline-list .timeline-list_item .item--title,
.timeline-list .timeline-list_item .item--date,
.timeline-list .timeline-list_item .item--desc,
.timeline-list .timeline-list_item .item--desc p,
.timeline-list .timeline-list_item .item--desc ul,
.timeline-list .timeline-list_item .item--desc ol,
.timeline-list .timeline-list_item .item--desc li,
.timeline-list .timeline-list_item .item--details p {
    color: var(--navy-blue)!important;
}

.timeline-list .timeline-list_item .item--details p {
    margin: 0;
    transition: all .25s;
    width: 100%;
    color: var(--navy-blue) !important;
    
}



.timeline-list .timeline-list_item .item--details p.item--date {
    color: var(--navy-blue);
    font-size: 22px;
    font-size: 1.38rem;
    font-style: normal;
    font-weight: 700;
    line-height: 34px;
    line-height: 2.13rem;
}

.timeline-list .timeline-list_item .item--details a {
    color: var(--navy-blue);
    cursor: pointer;
    font-weight: 700;
    /* margin-top: 16px; */
    margin-left: 0;
        padding: 0;
    background-color: transparent !important;
    border: 0;
    border-radius: 0;
}




/*============
    ALIGNED
=============*/

.timeline-list.aligned .item--arrow {
    left: -15px;
}

.timeline-list.aligned .timeline-list_item .item--details {
    margin-left: 5%;
}

.timeline-list.aligned li.timeline-list_item {
    position: relative;
    margin-bottom: 36px;
    display: flex;
    align-items: center;
}

.timeline-list.aligned li.timeline-list_item::before {
    position: absolute;
    left: -52px;
    height: 20px;
    width: 20px;
    border-radius: 50px;
    background-color: var(--sky-blue);
    content: '';
}

.timeline-list.aligned li.timeline-list_item:not(:first-of-type, :last-of-type)::after {
    position: absolute;
    left: -43.5px;
    height: calc(100% + 36px);
    width: 3px;
    border-radius: 50px;
    background-color: var(--sky-blue);
    content: '';
    top: 0;
}

.timeline-list.aligned li.timeline-list_item:first-of-type::after {
    position: absolute;
    left: -43.5px;
    height: calc(50% + 36px);
    width: 3px;
    border-radius: 50px;
    background-color: var(--sky-blue);
    content: '';
    bottom: -36px;
}

.timeline-list.aligned li.timeline-list_item:last-of-type::after {
    position: absolute;
    left: -43.5px;
    height: 50%;
    width: 3px;
    border-radius: 50px;
    background-color: var(--sky-blue);
    content: '';
    top: 0;
}





/*============
  ALTERNATING
=============*/

ul.timeline-list.alt {
    list-style-type: none;
    position: relative;
    padding-inline-start: 0;
}

.timeline-list.alt li.timeline-list_item {
    align-items: center;
    display: flex;
    margin: 0;
    max-width: 50%;
    position: relative;
    width: 100%;
}

.timeline-list.alt li.timeline-list_item:nth-child(even) {
    /* margin: auto 0 auto auto; */
    float: right;
    padding-left: 7%;
}

.timeline-list.alt li.timeline-list_item:nth-child(odd) {
    clear: left;
    float: left;
    padding-right: 7%;
}

.timeline-list.alt li.timeline-list_item:nth-child(even) .item--arrow {
    left: calc(-21px + 1px); /* width minus 1px for coverage */
}

.timeline-list.alt li.timeline-list_item:nth-child(odd) .item--arrow {
    right: calc(-21px + 1px); /* width minus 1px for coverage */
    transform: rotate(180deg);
}

.timeline-list.alt li.timeline-list_item::before,
.timeline-list.alt li.timeline-list_item::after {
    position: absolute;
    background-color: var(--sky-blue);
    content: '';
}

.timeline-list.alt li.timeline-list_item::before {
    height: 26px;
    width: 26px;
    border-radius: 50px;
    display: flex;
    z-index: 2;
}

.timeline-list.alt li.timeline-list_item:nth-child(even)::before {
    left: -13px;
    margin-top: -22px;
}

.timeline-list.alt li.timeline-list_item:nth-child(odd)::before {
    right: -13px;
    margin-top: -22px;
}

.timeline-list.alt li.timeline-list_item::after {
    background-size: 3px 100%;
    width: 2px;
}

.timeline-list.alt li.timeline-list_item:nth-child(even)::after {
    left: -1px;
    /* top: 0; */
}

.timeline-list.alt li.timeline-list_item:not(:first-of-type, :last-of-type)::after {
    /* height: calc(100% + 36px); */
    /* height: 100%; */
}

/* .timeline-list.alt li.timeline-list_item:last-of-type:nth-child(even)::after {
    height: 50%;
} */

.timeline-list.alt li.timeline-list_item:nth-child(odd):not(:first-of-type, :last-of-type)::after {
    right: -1px;
    /* height: calc(100% + 36px); */
    /* top: 0; */
}

.timeline-list.alt li.timeline-list_item:first-of-type::after {
    background-image: linear-gradient(180deg, var(--sky-blue) 0%, var(--sky-blue) 50%, transparent 50%, transparent 100%);
    bottom: 0;
    height: 100%;
    right: -1px;
    z-index: 1;
}

/* .timeline-list.alt li.timeline-list_item:nth-last-child(2)::after {
    height: 50%;
} */

.timeline-list.alt li.timeline-list_item:last-of-type:nth-child(odd)::after {
    right: -1px;
    /* height: 50%; */
    /* top: 0; */
}

.timeline-list.alt li.timeline-list_item:last-of-type::after {
    background-image: linear-gradient(180deg, transparent 0%, transparent 50%, var(--patch-reef-blue) 50%, var(--patch-reef-blue) 100%);
    height: 100%; 
    top: 0; 
    z-index: 1;
}
/*
    =================================================
                        DESKTOP ONLY
    =================================================
*/

@media screen and (min-width: 1366px) {
   /*============
      ALTERNATING
    =============*/
    .timeline-list.alt li.timeline-list_item:nth-child(2){
        margin-top: calc(26px + 240px + 9px); /* padding-top + img height + distance from bottom of image to triangle */
    }
    .timeline-list.alt li.timeline-list_item:nth-child(2)::after {
        /* height: calc(50% + 0px); 50% plus margin-top, so it doesn't extend past marker */
        /* top:0; same as negative margin-top */
    }
    .timeline-list.alt li.timeline-list_item:not(:first-of-type, :nth-child(2)){
        margin-top: 145px;
    } 
    .timeline-list.alt li.timeline-list_item:not(:first-of-type, :last-of-type, :nth-child(2))::after {
        height: calc(100% + (145px * 2)); /* covers top and bottom margin*/
        top: -145px; /* same as negative margin-top */
    }

}
/*
    =================================================
        BB "LARGE" DESKTOP, and down
    =================================================
*/
@media only screen and (max-width: 1365px) {
    /* turn off animation on all breakpoints other than XL Desktop */
    .row--interactive-timeline .item--details.fl-animation {
        -webkit-animation: none !important;
        animation: none !important;
        -webkit-transform: none !important;
        transform: none !important;
        transition-property: none !important;
        opacity: 1 !important;
    }
}
/*
    =================================================
        BB "LARGE" DESKTOP, only
    =================================================
*/

@media only screen and (min-width: 993px) and (max-width: 1365px) {
    .timeline-list.alt li.timeline-list_item:nth-child(2){
        margin-top: calc(26px + 240px + 26px); /* padding-top + img height + distance from bottom of image to triangle */
    }
    .timeline-list.alt li.timeline-list_item:not(:first-of-type, :nth-child(2)){
        margin-top: 100px;
    } 
    .timeline-list.alt li.timeline-list_item:not(:first-of-type, :last-of-type, :nth-child(2))::after {
        height: calc(100% + (100px * 2)); /* covers top and bottom margin*/
        top: -100px; /* same as negative margin-top */
    }
}

/*
    =================================================
        BB "MEDIUM" TABLET, only
    =================================================
*/
@media only screen and (min-width: 769px) and (max-width: 992px) {
    .timeline-list.alt li.timeline-list_item:nth-child(2){
        margin-top: calc(26px + 240px + 36px); /* padding-top + img height + distance from bottom of image to triangle */
    }
    .timeline-list.alt li.timeline-list_item:not(:first-of-type, :nth-child(2)){
        margin-top: 95px;
    } 
    .timeline-list.alt li.timeline-list_item:not(:first-of-type, :last-of-type, :nth-child(2))::after {
        height: calc(100% + (95px * 2)); /* covers top and bottom margin*/
        top: -95px; /* same as negative margin-top */
    }
}

/*
    =================================================
                        MOBILE
    =================================================
*/
@media only screen and (max-width: 768px) {
    /*============
        GENERAL
    =============*/

    .timeline-container {
        overflow: initial;
    }
    .timeline-list.alt li.timeline-list_item:nth-child(even)::before,
    .timeline-list.alt li.timeline-list_item:nth-child(odd)::before {
        width: 18px;
        height: 18px;
        left: -8px !important;
    }
    .timeline-list .timeline-list_item .item--details {
        padding: 16px;
    }

    .timeline-list .timeline-list_item .item--details p:not(.h4) {
        /* margin-top: 6px; */
    }

    .timeline-list .timeline-list_item .item--details a {
        /* margin-top: 8px; */
    }
    
    .timeline-container .timeline-list li.timeline-list_item {
        margin-bottom: 16px;
    }

    .timeline-container .timeline-list .timeline-list_item .item--details {
        border-radius: 16px;
        margin-left: 32px;
    }
    .timeline-list .timeline-list_item .item--img {
        border-radius: 16px;
        margin-bottom: 0;
    }
    .timeline-list .timeline-list_item .item--details p.item--date {
        font-size: 20px;
        font-size: 1.25rem;
    }




    /*============
      ALTERNATING
    =============*/

    .timeline-list.alt li.timeline-list_item {
        max-width: 100%;
    }
    
    .timeline-list.alt li.timeline-list_item:nth-child(even) .item--arrow,
    .timeline-list.alt li.timeline-list_item:nth-child(odd) .item--arrow  {
        left: -15px;
    }

    .timeline-list.alt li.timeline-list_item:nth-child(even),
    .timeline-list.alt li.timeline-list_item:nth-child(odd) {
        margin-bottom: 0;
        padding-left: 0px;
    }

    .timeline-list.alt li.timeline-list_item:nth-child(odd) {
        padding-right: 0;
    }

    .timeline-list.alt li.timeline-list_item:nth-child(odd) .item--arrow {
        transform: rotate(0);
    }

    .timeline-list.alt li.timeline-list_item::before,
    .timeline-list.alt li.timeline-list_item:nth-child(even)::before,
    .timeline-list.aligned li.timeline-list_item::before {
        left: -11px;
    }

    .timeline-list.alt li.timeline-list_item:not(:first-of-type, :last-of-type)::after,
    .timeline-list.alt li.timeline-list_item:first-of-type::after,
    .timeline-list.alt li.timeline-list_item:last-of-type::after,
    .timeline-list.aligned li.timeline-list_item:not(:first-of-type, :last-of-type)::after,
    .timeline-list.aligned li.timeline-list_item:first-of-type::after,
    .timeline-list.aligned li.timeline-list_item:last-of-type::after {
        left: 0px;
    }
    
    .timeline-list.alt li.timeline-list_item:not(:first-of-type){
        margin-top: 16px;
    } 
    .timeline-list.alt li.timeline-list_item:not(:first-of-type, :last-of-type)::after {
        height: calc(100% + (16px * 2)); /* covers top and bottom margin*/
        top: -16px; /* same as negative margin-top */
    }
}