/*
 * Secção carousel
 */

:root {
	--num_ele_carousel: 3;
	--carousel_track_gap: 20px;
	--carousel_element_img_original_width: 516px;
	--carousel_element_img_original_height: 270px;
	--carousel_element_img_983px_width: 388px;
	--carousel_element_img_983px_height: 202px;
	--carousel_element_img_768px_width: 260px;
	--carousel_element_img_768px_height: 135px;
	--carousel_max_width: calc((var(--carousel_element_img_original_width) * 3) + (var(--carousel_track_gap) * 2));
	--main_elements_total_width: calc(
		(var(--carousel_element_img_original_width) * var(--num_ele_carousel)) + 
		(var(--carousel_track_gap) * (var(--num_ele_carousel) - 1))
	);
	--main_elements_total_width_983px: calc(
		(var(--carousel_element_img_983px_width) * var(--num_ele_carousel)) + 
		(var(--carousel_track_gap) * (var(--num_ele_carousel) - 1))
	);
	--main_elements_total_width_768px: calc(
		(var(--carousel_element_img_768px_width) * var(--num_ele_carousel)) + 
		(var(--carousel_track_gap) * (var(--num_ele_carousel) - 1))
	);
}

@keyframes initial_carousel_animation {
	0% {
		transform: translateX(calc((100% - var(--main_elements_total_width)) / 2));
	}
	100% {
		transform: translateX(calc(((-1 * var(--carousel_element_img_original_width)) - var(--carousel_track_gap)) * var(--num_ele_carousel)));
	}
}

@keyframes carousel_animation {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(calc(((-1 * var(--carousel_element_img_original_width)) - var(--carousel_track_gap)) * var(--num_ele_carousel)));
	}
}

.carousel_section {
	gap: 0;
	margin: 0;
	padding: 0;
	width: 100%;
	border: none;
	outline: none;
	display: flex;
	overflow: hidden;
	flex-wrap: nowrap;
	align-items: center;
	flex-direction: column;
	justify-content: center;
}

.carousel_section_track_wrap {
	padding: 0;
	border: none;
	outline: none;
	margin: 0 auto;
	overflow: hidden;
	position: relative;
	width: clamp(0%, 100%, var(--carousel_max_width));
}

.carousel_section_track_wrap:hover > .carousel_section_track {
	-webkit-animation-play-state: paused;
	-moz-animation-play-state: paused;
	-o-animation-play-state: paused;
	animation-play-state: paused;
}

.carousel_section_track {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	border: none;
	outline: none;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: var(--carousel_track_gap);
	transform: translateX(calc((100% - var(--main_elements_total_width)) / 2));
	animation: initial_carousel_animation 17s linear 1 5s, carousel_animation 20s linear infinite 22s;
}

.carousel_section_element {
	gap: 0;
	margin: 0;
	padding: 0;
	border: none;
	outline: none;
	display: flex;
	flex-wrap: nowrap;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
}

.carousel_section_element_img {
	margin: 0;
	padding: 0;
	border: none;
	outline: none;
	overflow: hidden;
	position: relative;
	border-radius: 16px;
	transition: all 0.2s ease;
	width: var(--carousel_element_img_original_width);
	height: var(--carousel_element_img_original_height);
}

.carousel_section_element_img img {
	top: 50%;
	left: 50%;
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	transition: all 0.2s ease;
	transform: translate(-50%, -50%);
}

@media screen and (max-width: 983px) {
	@keyframes initial_carousel_animation {
		0% {
			transform: translateX(calc((100% - var(--main_elements_total_width_983px)) / 2));
		}
		100% {
			transform: translateX(calc(((-1 * var(--carousel_element_img_983px_width)) - var(--carousel_track_gap)) * var(--num_ele_carousel)));
		}
	}
	@keyframes carousel_animation {
		0% {
			transform: translateX(0);
		}
		100% {
			transform: translateX(calc(((-1 * var(--carousel_element_img_983px_width)) - var(--carousel_track_gap)) * var(--num_ele_carousel)));
		}
	}
	.carousel_section_track {
		transform: translateX(calc((100% - var(--main_elements_total_width_983px)) / 2));
	}
	.carousel_section_element_img {
		width: var(--carousel_element_img_983px_width);
		height: var(--carousel_element_img_983px_height);
	}
}

@media screen and (max-width: 768px) {
	@keyframes initial_carousel_animation {
		0% {
			transform: translateX(calc((100% - var(--main_elements_total_width_768px)) / 2));
		}
		100% {
			transform: translateX(calc(((-1 * var(--carousel_element_img_768px_width)) - var(--carousel_track_gap)) * var(--num_ele_carousel)));
		}
	}
	@keyframes carousel_animation {
		0% {
			transform: translateX(0);
		}
		100% {
			transform: translateX(calc(((-1 * var(--carousel_element_img_768px_width)) - var(--carousel_track_gap)) * var(--num_ele_carousel)));
		}
	}
	.carousel_section_track {
		transform: translateX(calc((100% - var(--main_elements_total_width_768px)) / 2));
	}
	.carousel_section_element_img {
		width: var(--carousel_element_img_768px_width);
		height: var(--carousel_element_img_768px_height);
	}
	.carousel_section {
		margin: 0 0 60px 0;
	}
}

/*
 * Fim secção carousel
 */