/* Finsif Video List: carousel and grid */

.fv-video-list-block {
	background: transparent;
}

/* Carousel */
.fv-carousel {
	--fv-gap: 32px;
}
.fv-carousel__track {
	position: relative;
	display: flex;
	gap: var(--fv-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	/* room for the card shadow (overflow clips it otherwise) */
	padding: 12px 20px 32px;
	margin: -12px -20px -32px;
	scroll-padding-inline: 20px;
}
.fv-carousel__track::-webkit-scrollbar {
	display: none;
}
.fv-carousel__track > .fv-card {
	flex: 0 0 calc((100% - 2 * var(--fv-gap)) / 3);
	scroll-snap-align: start;
}
.fv-carousel__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 24px;
}
.fv-carousel__dots {
	display: flex;
	justify-content: center;
}
.fv-dot {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.fv-dot::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 4px;
	background: var(--fv-dot);
	transition: width 0.2s, background-color 0.2s;
}
.fv-dot[aria-current="true"]::before {
	width: 28px;
	background: var(--fv-arrow);
}
.fv-arrow {
	position: relative;
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 30px;
	background: var(--fv-arrow);
	cursor: pointer;
	transition: opacity 0.2s;
}
/* 44 x 44 px touch target around the smaller visual */
.fv-arrow::after {
	content: "";
	position: absolute;
	inset: -4px;
}
.fv-arrow svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: var(--fv-arrow-ink);
	stroke-width: 2.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.fv-arrow:disabled {
	opacity: 0.35;
	cursor: default;
}
.fv-carousel.is-static .fv-carousel__nav {
	display: none;
}

/* Grid */
.fv-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 48px 32px;
}
.fv-grid__more {
	margin: 48px 0 0;
	text-align: center;
}

@media (max-width: 990px) {
	.fv-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 36px 24px;
	}
	.fv-carousel {
		--fv-gap: 24px;
	}
	.fv-carousel__dots {
		display: none;
	}
	.fv-carousel__track > .fv-card {
		flex-basis: calc((100% - var(--fv-gap)) / 2);
	}
}

@media (max-width: 600px) {
	.fv-grid {
		grid-template-columns: 1fr;
	}
	.fv-carousel {
		--fv-gap: 16px;
	}
	.fv-carousel__track > .fv-card {
		flex-basis: min(290px, 82%);
	}
	.fv-list--carousel .fv-media {
		--fv-play: 52px;
	}
}
