/* Video Slider for YouTube – Pro front end. */

/* ---------- Tabs ---------- */
.vsfy-tabs { margin: 0 0 1.5em; }
.vsfy-tablist {
	display: flex; gap: 6px; flex-wrap: wrap;
	margin: 0 0 20px; padding: 4px;
	width: max-content; max-width: 100%;
	border-radius: 999px;
	background: color-mix(in srgb, currentColor 6%, transparent);
}
.vsfy-tabs .vsfy-tab {
	all: unset; box-sizing: border-box; cursor: pointer;
	padding: 8px 18px; border-radius: 999px;
	font-size: 14px; font-weight: 650; line-height: 1.3;
	color: inherit; opacity: .72;
	transition: background .2s, color .2s, opacity .2s;
}
.vsfy-tabs .vsfy-tab:hover { opacity: 1; }
.vsfy-tabs .vsfy-tab.is-active { opacity: 1; background: var(--vsfy-accent); color: #fff; box-shadow: 0 6px 16px -8px color-mix(in srgb, var(--vsfy-accent) 70%, transparent); }
.vsfy-tabs .vsfy-tab:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.vsfy-tabpanel[hidden] { display: none; }
.vsfy-tabpanel > .vsfy { animation: vsfy-in .3s ease; }

/* ---------- Coverflow ---------- */
.vsfy--coverflow .vsfy-track {
	/* Container units: card width and side padding both relate to the gallery width, so the first video sits centered. */
	grid-auto-columns: 46cqi;
	padding: 24px 27cqi 28px;
	position: relative; /* Card offsets are measured from the track. */
	margin: -24px 0 0;
	scroll-snap-type: x mandatory;
}
.vsfy--coverflow .vsfy-track > .vsfy-card { scroll-snap-align: center; transition: opacity .25s; transform-origin: 50% 50%; }
.vsfy--coverflow .vsfy-card:not(.is-center) .vsfy-card-body { opacity: 0; transition: opacity .25s; }
.vsfy--coverflow .vsfy-card.is-center .vsfy-card-body { opacity: 1; transition: opacity .25s .1s; }
.vsfy--coverflow .vsfy-card:not(.is-center) .vsfy-play { opacity: 0; }
.vsfy--coverflow .vsfy-card.is-center .vsfy-media { box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); }
.vsfy--coverflow .vsfy-dots { visibility: hidden; }
.vsfy--coverflow .vsfy-controls { justify-content: center; }
.vsfy--coverflow .vsfy-controls .vsfy-dots { flex: 0 0 0; }
@container vsfy (max-width: 640px) {
	.vsfy--coverflow .vsfy-track { grid-auto-columns: 72cqi; padding-inline: 14cqi; }
}
.vsfy--coverflow.vsfy--portrait .vsfy-track { grid-auto-columns: 28cqi; padding-inline: 36cqi; }

/* ---------- Mini player ---------- */
.vsfy-mini-placeholder { border-radius: var(--vsfy-radius); background: color-mix(in srgb, currentColor 6%, transparent); }
.vsfy .vsfy-media.vsfy-mini,
.vsfy .vsfy-stage .vsfy-media.vsfy-mini {
	position: fixed; right: 20px; bottom: 20px; left: auto; top: auto; z-index: 99990;
	width: min(380px, calc(100vw - 40px)); height: auto; aspect-ratio: 16 / 9;
	border-radius: 14px; box-shadow: 0 20px 50px rgba(0, 0, 0, .45);
	animation: vsfy-mini-in .3s cubic-bezier(.2, .7, .2, 1);
}
.vsfy .vsfy-mini-close {
	position: absolute; top: 8px; right: 8px; z-index: 3;
	width: 30px; height: 30px; border-radius: 50%;
	display: grid; place-items: center;
	background: rgba(0, 0, 0, .65); color: #fff;
}
.vsfy .vsfy-mini-close:hover { background: var(--vsfy-accent); }
.vsfy.vsfy .vsfy-mini-close svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
@keyframes vsfy-mini-in { from { transform: translateY(20px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 600px) {
	.vsfy .vsfy-media.vsfy-mini { right: 12px; bottom: 12px; width: 62vw; }
}
@media (prefers-reduced-motion: reduce) {
	.vsfy--coverflow .vsfy-track > .vsfy-card { transform: none !important; opacity: 1 !important; }
}

/* ---------- Call-to-action button ---------- */
.vsfy-cta { display: flex; justify-content: center; margin-top: calc(var(--vsfy-gap) * 1.4); }
.vsfy .vsfy-cta-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 13px 24px; border-radius: 999px;
	background: var(--vsfy-accent); color: #fff;
	font-size: 15px; font-weight: 700; line-height: 1.2; text-decoration: none;
	box-shadow: 0 10px 26px -10px color-mix(in srgb, var(--vsfy-accent) 70%, transparent);
	transition: transform .2s, filter .2s, box-shadow .2s;
}
.vsfy .vsfy-cta-btn:hover { color: #fff; transform: translateY(-2px); filter: brightness(1.1); }
.vsfy.vsfy .vsfy-cta-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.vsfy .vsfy-cta-btn:hover svg { transform: translateX(3px); }
