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

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

.timeline-list {
    counter-reset: timeline-steps;
}
.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(--Blood-Red);
} */

.timeline-list .timeline-list_item .item--details {
    align-items: start;
    background-color: var(--white);
    border-radius: 30px;
    box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.15);
    color: var(--Purple) !important;
    display: flex;
    flex-flow: column nowrap;
    gap: 16px;
    padding: 26px;
    position: relative;
    transition: all .25s;
    width: 100%;
}

/* .timeline-list .timeline-list_item .item--details:hover {
    background-color: var(--Blood-Red);
} */
.timeline-list .timeline-list_item .item--icon {
    height: 59px;
    margin-bottom: 10px; /* on image, in case there is no image // combined with parent's gap */
    overflow: hidden;
    width: 100%;
}
.timeline-list .timeline-list_item .item--icon img {
    height: 59px;
}

.timeline-list .timeline-list_item .item--icon svg {
    max-height: 59px;
    object-fit: cover;
    width: 100%;
}
.item--step {
    color: var(--Blood-Red);
    font-size: 22px;
    font-size: 1.38rem;
    font-weight: 700;
    line-height: 36px; 
    line-height: 2.25rem; 
}
.item--step::after {
    counter-increment: timeline-steps;
    content: counter(timeline-steps);
}

.timeline-list .timeline-list_item .item--title,
.timeline-list .timeline-list_item .item--details p {
    color: var(--Purple);
}

.timeline-list .timeline-list_item .item--details p {
    font-size: 18px;
    font-size: 1.13rem;
    line-height: 30px;
    margin: 0;
    transition: all .25s;
    width: 100%;
}
.timeline-item--button.button-branded {
    margin-top: 10px; /* on button, in case there is no button // combined with parent's gap */
}
.timeline-item--button.button-branded,
.timeline-item--button.button-branded:hover,
.timeline-item--button.button-branded:focus {
    background: var(--Pink);
    border: 1px solid var(--Pink);
    color: var(--black) !important;
    font-weight: 700;
    padding: 16px 26px;
    transition: all .25s ease-in-out;
}

/* no hover state for mobile, is wonky with flyouts */
@media only screen and (min-width: 768px) {
    .timeline-item--button.button-branded:hover,
    .timeline-item--button.button-branded:focus {
        transform: scale(1.05);
    }
}


/*============
    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(--Blood-Red);
    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(--Blood-Red);
    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(--Blood-Red);
    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(--Blood-Red);
    content: '';
    top: 0;
}

/* Uncomment for full height timeline chain with border */
/*ul.timeline-list.aligned {
     border-left: 3px solid var(--Blood-Red);
    list-style-type: none;

}

ul.timeline-list.aligned:before {
    position: absolute;
    transform: translateX(-48.5px);
    height: 1px;
    width: 16px;
    background-color: var(--Blood-Red);
    content: '';
} */




/*============
  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(--Blood-Red);
    content: '';
}

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

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

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

.timeline-list.alt li.timeline-list_item::after {
    background-image: linear-gradient(180deg, var(--Beige), var(--Beige) 50%, var(--Blood-Red) 50%, var(--Blood-Red) 100%);
    background-size: 3px 9px;
    /* background-size: 3px 100%; */
    width: 2px;
}

.timeline-list.alt li.timeline-list_item:nth-child(even)::after {
    left: -1.5px;
    /* 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: -0.5px;
    /* height: calc(100% + 36px); */
    /* top: 0; */
}

.timeline-list.alt li.timeline-list_item:first-of-type::after {
    background-image: linear-gradient(180deg, var(--Beige) 0%, var(--Beige) 50%, transparent 50%, transparent 100%),
                        linear-gradient(180deg, var(--Beige) 0%, var(--Beige) 50%, var(--Blood-Red) 50%, var(--Blood-Red) 100%);
    background-size: 3px 100%, 3px 9px;
    /* bottom: -36px; */
    bottom: 0;
    /* height: calc(50% + 36px); */
    height: 100%;
    right: -0.5px;
    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: -0.5px;
    /* 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(--Beige) 50%, var(--Beige) 100%),
                        linear-gradient(180deg, var(--Beige) 0%, var(--Beige) 50%, var(--Blood-Red) 50%, var(--Blood-Red) 100%);
    background-size: 3px 100%, 3px 9px;
    height: 100%; 
    top: 0; 
    z-index: 1;
}



/* Animation */
.fl-animated.fl-slide-in-left {
    animation: fl-slide-in-left 1s ease;
    -webkit-animation: fl-slide-in-left 1s ease;
}
/* for mobile only, both right and left should slide-in-right */
@media only screen and (max-width: 768px) {
    .fl-animated.fl-slide-in-left {
        animation: fl-slide-in-right 1s ease;
        -webkit-animation: fl-slide-in-right 1s ease;
    }    
}
.fl-animated.fl-slide-in-right {
    animation: fl-slide-in-right 1s ease;
    -webkit-animation: fl-slide-in-right 1s ease;
}
@-webkit-keyframes fl-slide-in-left {
    from {
        -webkit-transform: translate3d(-50%, 0, 0);
        transform: translate3d(-50%, 0, 0);
        visibility: visible;
    }

    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}
@keyframes fl-slide-in-left {
    from {
        -webkit-transform: translate3d(-50%, 0, 0);
        transform: translate3d(-50%, 0, 0);
        visibility: visible;
    }

    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@-webkit-keyframes fl-slide-in-right {
    from {
        -webkit-transform: translate3d(50%, 0, 0);
        transform: translate3d(50%, 0, 0);
        visibility: visible;
    }

    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fl-slide-in-right {
    from {
        -webkit-transform: translate3d(50%, 0, 0);
        transform: translate3d(50%, 0, 0);
        visibility: visible;
    }

    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }
}
/*
    =================================================
                        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-list .timeline-list_item .item--details {
        padding: 16px;
    }
    .timeline-list .timeline-list_item .item--icon {
        margin-bottom: 0;
    }
    .timeline-container .timeline-list li.timeline-list_item {
        margin-bottom: 20px;
    }
    .timeline-container .timeline-list .timeline-list_item .item--details {
        /* margin-left: 32px; ignores page padding */
        margin-left: 47px; /* honours page padding */
    }
    .item--step {
        font-size: 20px;
        font-size: 1.25rem;
    }
    .timeline-item--button.button-branded {
        margin-top: 0;
    }




    /*============
      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: -20px;
    }

    .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: -13px; ignores page padding */
        left: 0; /* honours page padding */
    }

    .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; ignores page padding */
        left: 12px; /* honours page padding */
    }
    
    .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 */
    }
}