/* ==========================================================================
   Carousel (scroll-snap)
   Ρυθμίζεται ανά component με:
   --oh-carousel-gap, --oh-carousel-slide (πλάτος slide)
   ========================================================================== */

.oh-carousel {
	--oh-carousel-gap: 24px;
	--oh-carousel-slide: calc((100% - var(--oh-carousel-gap) * 2) / 3);

	position: relative;
	min-width: 0;
}

.oh-carousel .oh-carousel__track {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: var(--oh-carousel-slide);
	column-gap: var(--oh-carousel-gap);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.oh-carousel__track::-webkit-scrollbar {
	display: none;
}

.oh-carousel .oh-carousel__slide {
	margin: 0;
	min-width: 0;
	scroll-snap-align: start;
}

/* Navigation */
.oh-carousel__nav {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 28px;
}

.oh-carousel.is-static .oh-carousel__nav {
	display: none;
}

.oh-carousel .oh-carousel__btn {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(31, 42, 38, 0.2);
	border-radius: 50%;
	background: transparent;
	color: var(--oh-color-dark);
	cursor: pointer;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, opacity 0.25s ease;
}

.oh-carousel .oh-carousel__btn:hover:not(:disabled),
.oh-carousel .oh-carousel__btn:focus-visible {
	border-color: var(--oh-color-primary);
	background: var(--oh-color-primary);
	color: #fff;
}

.oh-carousel .oh-carousel__btn:disabled {
	opacity: 0.35;
	cursor: default;
}

/* Tablet: 2 ανά προβολή */
@media (max-width: 1024px) {
	.oh-carousel {
		--oh-carousel-slide: calc((100% - var(--oh-carousel-gap)) / 2);
	}
}

/* Mobile: 1 + "peek" του επόμενου, το track φτάνει μέχρι την άκρη της οθόνης */
@media (max-width: 767px) {
	.oh-carousel {
		--oh-carousel-gap: 16px;
		--oh-carousel-slide: 80%;
	}

	.oh-carousel .oh-carousel__track {
		margin-inline: calc(-1 * var(--oh-gutter));
		padding-inline: var(--oh-gutter);
		scroll-padding-inline: var(--oh-gutter);
	}

	.oh-carousel__nav {
		justify-content: flex-start;
	}
}
