ul.timeline {
    padding: 0;
    list-style-type: none;
    position: relative;
}

ul.timeline::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 4px;
	background: #005983;
	z-index: 0;
}

ul.timeline li {
    display: flex;
    margin-bottom: 5rem;
    gap: 2rem;
    align-items: center;
}

.timeline-content {
    flex: 1 1 0;
}

.timeline-content img {
	max-width: 100%;
	height: auto;
	display: block;
}

.timeline-content h2 {
    margin-top: 0;
}

.timeline-year {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    min-width: 150px;
    justify-content: center;
}

.timeline-year .year {
    background-color: #005983;
    color: #ffffff;
    width: 150px;
    text-align: center;
    height: 150px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: bold;
    z-index: 1;
}

.timeline-year .year.small {
    width: 50px;
    height: 50px;
}

.timeline-content.left {
    text-align: right;
}

.timeline-content.right {
    text-align: left;
}

/* ------------------------------ */
/* Responsive Version (mobile) */
/* ------------------------------ */
@media (max-width: 768px) {

	ul.timeline::before {
		left: 30px;
	}

	ul.timeline li {
		display: grid;
		grid-template-columns: 60px 1fr;
		gap: 1rem;
		align-items: start;
		position: relative;
	}

	.timeline-year {
		grid-column: 1;
		justify-self: center;
		flex: none;
		width: 60px;
		height: auto;
	}

	.timeline-year .year {
		width: 60px;
		height: 60px;
		font-size: 0.8rem;
		line-height: 1;
	}

	.timeline-content.left,
	.timeline-content.right {
		grid-column: 2;
		text-align: left;
	}

	.timeline-content img {
		width: 100%;
		margin-bottom: 1rem;
	}

	.timeline-content.left {
		order: 1;
	}
	.timeline-content.right {
		order: 2;
	}

	ul.timeline li:nth-child(even) .timeline-content.left {
		order: 2;
	}
	ul.timeline li:nth-child(even) .timeline-content.right {
		order: 1;
	}

	/* Verstecke leere Content-Spalten (kein Text oder Bild) */
	.timeline-content.left:empty,
	.timeline-content.right:empty {
		display: none;
	}

	/* Safari/Firefox/Chrome-Absicherung: falls das Div Whitespace enthält */
	.timeline-content.left:not(:has(*)),
	.timeline-content.right:not(:has(*)) {
		display: none;
	}
}