.maps-timeline-wrapper {
	position: relative;
	overflow: hidden;
	width: 100%;
}

.maps-timeline-track {
	display: flex;
	gap: 0;
	overflow-x: auto;
	padding: 50px 32px 40px;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	position: relative;
	scrollbar-width: thick;
	scrollbar-color: #9249FF #EDE9E4;
}

.maps-timeline-track::-webkit-scrollbar {
	height: 12px;
}

.maps-timeline-track::-webkit-scrollbar-track {
	background: #EDE9E4;
	border-radius: 6px;
}

.maps-timeline-track::-webkit-scrollbar-thumb {
	background: #9249FF;
	border-radius: 6px;
}

.maps-timeline-line {
	position: absolute;
	top: 74px;
	left: 32px;
	right: 32px;
	height: 4px;
	background: linear-gradient(90deg, #FF3C44, #FF5FC7, #9249FF, #0F2A4A);
	z-index: 0;
}

.maps-tl-item {
	flex: 0 0 280px;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	z-index: 1;
}

.maps-tl-dot {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 3px solid #9249FF;
	background: #FFFFFF;
	margin-bottom: 20px;
	flex-shrink: 0;
}

.maps-tl-card {
	background: #FFFFFF;
	border-radius: 10px;
	padding: 20px;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.07);
	width: 240px;
	text-align: center;
}

.maps-tl-card .year {
	font-size: 15px;
	font-weight: 700;
	color: #C62828;
	font-family: 'Bricolage Grotesque', sans-serif;
}

.maps-tl-card .title {
	font-weight: 700;
	font-size: 17px;
	margin: 6px 0 8px;
	color: #0F2A4A;
	font-family: 'Lato', sans-serif;
}

.maps-tl-card .desc {
	font-size: 14px;
	color: #645B52;
	line-height: 1.5;
	font-family: 'Lato', sans-serif;
}

.maps-type-tag {
	display: inline-block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 4px;
	margin-top: 10px;
}

.maps-tag-research {
	background: #E8F5E9;
	color: #1B6B1F;
}

.maps-tag-policy {
	background: #E3F2FD;
	color: #1565C0;
}

.maps-tag-culture {
	background: #FFF3E0;
	color: #B94100;
}

.maps-tag-education {
	background: #F3E5F5;
	color: #7B1FA2;
}

.maps-tag-community {
	background: #FCE4EC;
	color: #C62828;
}

.maps-tl-arrows {
	text-align: center;
	margin-top: 16px;
}

.maps-tl-arrows button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	border-radius: 50%;
	border: 2px solid #8A8279;
	color: #645B52;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	margin: 0 6px;
	padding: 0;
	background: transparent;
	box-sizing: border-box;
	transition: border-color 0.2s, color 0.2s;
}

.maps-tl-arrows button:hover {
	border-color: #9249FF;
	color: #9249FF;
}
