.timeline-wrapper {
    display: flex;
    flex-direction: column;
}

.timeline {
    display: flex;
    align-items: center;
    gap: 24px;
    opacity: 0.3;
    cursor: pointer;
}

.timeline.active {
    margin: 0 0 -1px;
}

.timeline-number {
    min-width: 32px;
    display: flex;
    align-items: center;
    font-weight: 500;
}

.timeline-wrapper .timeline-heading {
    display: flex;
    align-items: center;
    margin: 0;
    color: inherit;
}

.timeline-image {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 65px;
    position: relative;
}

.timeline .timeline-image:before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background: #fff;
    border-radius: 50%;
}

.timeline.active .timeline-image:before {
    display: none;
}

.timeline.active .timeline-image {
    height: 65px;
}

.timeline-image img {
    width: 0;
    height: 0;
    border-radius: 50%;
    border: 2px solid transparent;
    transition: height 0.5s ease-in-out, width 0.5s ease-in-out, border-color 0.5s ease-in-out 0.5s;
}

.timeline.active .timeline-image img {
    width: 64px;
    height: 64px;
    border-color: currentColor;
}

.timeline.active {
    opacity: 1;
}

.timeline-separator {
    padding-left: 88px;
}

.timeline-separator:after {
    content: '';
    display: block;
    width: 1px;
    height: 0;
    opacity: 0.3;
    background: #fff;
    transition: height 0.5s ease-in-out;
}

.timeline.animated+.timeline-separator:after {
    height: 65px;
}

.timeline.animated.active+.timeline-separator:after {
    opacity: 1;
}

.timeline-content {
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    height: 0;
    transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out !important;
}
.timeline-content.active {
    opacity: 1;
    visibility: visible;
    overflow: hidden;
    height: 100%;
}



@media (max-width: 1024px) {
	.timeline-wrapper {
		flex-direction: row;
	}
	.timeline {
		flex-direction: column;
	}
	.timeline-separator {
		padding: 0;
	}
	.timeline.animated+.timeline-separator:after {
        height: 1px;
	    width: 100%;
	}
	.timeline-separator {
		padding: 0;
	    flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0 -16px;
	}
	.timeline-image {
    	height: 65px;
	}
	.timeline .timeline-image:before { 
    	margin-bottom: -8px;
	}
}


