/* 4cyte Seamless Carousel */
.fcyte-carousel { position: relative; width: 100%; --fc-gap: 16px; --fc-per-view: 2; }
.fcyte-viewport { overflow: hidden; width: 100%; touch-action: pan-y; }
.fcyte-track {
	display: flex;
	will-change: transform;
	transition: transform 500ms cubic-bezier(.22,.61,.36,1);
}
.fcyte-track.fcyte-no-anim { transition: none !important; }
.fcyte-slide {
	flex: 0 0 calc((100% - (var(--fc-per-view) - 1) * var(--fc-gap)) / var(--fc-per-view));
	margin-right: var(--fc-gap);
	box-sizing: border-box;
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
}
.fcyte-carousel[data-lightbox="no"] .fcyte-slide { cursor: default; }
.fcyte-slide img { display: block; width: 100%; height: auto; }

/* Arrows */
.fcyte-arrow {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 44px; height: 44px; border-radius: 50%; border: 0;
	background: rgba(0,0,0,.55); color: #fff; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	z-index: 2; opacity: .85; transition: opacity .15s, background .15s;
}
.fcyte-arrow:hover { opacity: 1; background: rgba(0,0,0,.8); }
.fcyte-arrow:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.fcyte-arrow svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.fcyte-arrow.fcyte-prev { left: 12px; }
.fcyte-arrow.fcyte-next { right: 12px; }

/* Dots */
.fcyte-dots { display: flex; justify-content: center; gap: 8px; margin-top: 12px; }
.fcyte-dot {
	width: 10px; height: 10px; border-radius: 50%; border: 0; padding: 0;
	background: rgba(0,0,0,.25); cursor: pointer; transition: background .15s, transform .15s;
}
.fcyte-dot.is-active { background: rgba(0,0,0,.75); transform: scale(1.25); }

/* Lightbox */
.fcyte-lb {
	position: fixed; inset: 0; z-index: 99999;
	background: rgba(0,0,0,.92);
	display: flex; align-items: center; justify-content: center;
	opacity: 0; transition: opacity .2s ease;
}
.fcyte-lb.is-open { opacity: 1; }
.fcyte-lb-stage {
	position: relative; max-width: 92vw; max-height: 90vh;
	display: flex; flex-direction: column; align-items: center;
}
.fcyte-lb-img {
	max-width: 92vw; max-height: 82vh; width: auto; height: auto;
	object-fit: contain; box-shadow: 0 10px 40px rgba(0,0,0,.6);
	opacity: 0; transform: scale(.97); transition: opacity .25s ease, transform .25s ease;
}
.fcyte-lb-img.is-ready { opacity: 1; transform: scale(1); }
.fcyte-lb-caption { color: #ddd; font-size: 14px; margin-top: 12px; text-align: center; max-width: 80vw; }
.fcyte-lb-counter { position: absolute; top: 16px; left: 20px; color: #bbb; font-size: 13px; letter-spacing: .05em; }
.fcyte-lb-btn {
	position: absolute; border: 0; background: transparent; color: #fff; cursor: pointer;
	width: 56px; height: 56px; display: flex; align-items: center; justify-content: center;
	opacity: .8; transition: opacity .15s;
}
.fcyte-lb-btn:hover { opacity: 1; }
.fcyte-lb-btn:focus-visible { outline: 2px solid #fff; outline-offset: -6px; }
.fcyte-lb-btn svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.fcyte-lb-close { top: 8px; right: 8px; }
.fcyte-lb-prev { left: 8px; top: 50%; transform: translateY(-50%); }
.fcyte-lb-next { right: 8px; top: 50%; transform: translateY(-50%); }
.fcyte-lb-spinner {
	position: absolute; width: 36px; height: 36px; border-radius: 50%;
	border: 3px solid rgba(255,255,255,.25); border-top-color: #fff;
	animation: fcyte-spin .8s linear infinite; display: none;
}
.fcyte-lb.is-loading .fcyte-lb-spinner { display: block; }
@keyframes fcyte-spin { to { transform: rotate(360deg); } }
body.fcyte-lb-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.fcyte-track, .fcyte-lb, .fcyte-lb-img { transition: none; }
}
