.tvbg-gallery {
	box-sizing: border-box;
	margin: 0 auto 34px;
	max-width: var(--tvbg-max-width, 1180px);
	padding: 10px 16px 0;
}

.tvbg-gallery *,
.tvbg-gallery *::before,
.tvbg-gallery *::after {
	box-sizing: inherit;
}

.tvbg-stage {
	height: clamp(var(--tvbg-min-height, 330px), var(--tvbg-height-vw, 56vw), var(--tvbg-max-height, 610px));
	overflow: hidden;
	position: relative;
}

.tvbg-slides {
	height: 100%;
	position: relative;
}

.tvbg-slide {
	appearance: none;
	background: #111;
	border: 4px solid rgba(255, 255, 255, .85);
	box-shadow: 0 18px 36px rgba(0, 0, 0, .28);
	cursor: pointer;
	height: 100%;
	left: 50%;
	opacity: 0;
	overflow: hidden;
	padding: 0;
	position: absolute;
	top: 0;
	transform: translateX(-50%) scale(.66);
	transition: opacity .35s ease, transform .45s ease, filter .35s ease, box-shadow .35s ease;
	width: min(var(--tvbg-center-width, 68%), 900px);
	z-index: 0;
}

.tvbg-slide::before,
.tvbg-slide::after {
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 2;
}

.tvbg-slide::before {
	border: 1px solid rgba(255, 255, 255, .46);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .16);
	opacity: 0;
	transition: opacity .3s ease, box-shadow .35s ease;
}

.tvbg-slide::after {
	background: linear-gradient(115deg, transparent 0%, rgba(255, 255, 255, .32) 46%, transparent 58%);
	opacity: 0;
	transform: translateX(-130%);
	transition: opacity .25s ease, transform .7s ease;
}

.tvbg-slide img {
	display: block;
	height: 100%;
	object-fit: cover;
	transform: scale(1.01);
	transition: transform .7s ease, filter .45s ease;
	width: 100%;
}

.tvbg-slide.is-active {
	filter: none;
	opacity: 1;
	transform: translateX(-50%) scale(1);
	z-index: 3;
}

.tvbg-has-frame .tvbg-slide.is-active {
	border-color: #fff;
	box-shadow: 0 18px 38px rgba(0, 0, 0, .34);
}

.tvbg-has-frame .tvbg-slide.is-active::before {
	opacity: 1;
}

.tvbg-has-frame .tvbg-slide.is-active:hover,
.tvbg-has-frame .tvbg-slide.is-active:focus {
	border-color: #fff;
	box-shadow: 0 20px 46px rgba(0, 0, 0, .38), 0 0 28px rgba(248, 98, 1, .22);
}

.tvbg-has-frame .tvbg-slide.is-active:hover::after,
.tvbg-has-frame .tvbg-slide.is-active:focus::after {
	opacity: 1;
	transform: translateX(130%);
}

.tvbg-hover-float .tvbg-slide.is-active:hover,
.tvbg-hover-float .tvbg-slide.is-active:focus {
	transform: translateX(-50%) translateY(-8px) scale(1.015);
}

.tvbg-hover-zoom .tvbg-slide.is-active:hover img,
.tvbg-hover-zoom .tvbg-slide.is-active:focus img {
	transform: scale(1.07);
}

.tvbg-hover-pan .tvbg-slide.is-active:hover img,
.tvbg-hover-pan .tvbg-slide.is-active:focus img {
	transform: scale(1.06) translateX(-1.8%);
}

.tvbg-hover-none .tvbg-slide.is-active:hover,
.tvbg-hover-none .tvbg-slide.is-active:focus {
	transform: translateX(-50%) scale(1);
}

.tvbg-hover-none .tvbg-slide.is-active:hover img,
.tvbg-hover-none .tvbg-slide.is-active:focus img {
	transform: scale(1.01);
}

.tvbg-slide.is-prev {
	filter: saturate(.8) brightness(.72);
	opacity: .72;
	transform: translateX(-112%) scale(.78);
	z-index: 2;
}

.tvbg-slide.is-next {
	filter: saturate(.8) brightness(.72);
	opacity: .72;
	transform: translateX(12%) scale(.78);
	z-index: 2;
}

.tvbg-caption {
	align-items: center;
	background: radial-gradient(circle at center, rgba(0, 0, 0, .18) 0%, rgba(0, 0, 0, .62) 100%);
	color: #fff;
	display: flex;
	flex-direction: column;
	inset: 0;
	justify-content: center;
	opacity: 0;
	padding: 24px;
	position: absolute;
	text-align: center;
	text-shadow: 0 2px 10px rgba(0, 0, 0, .72);
	transition: opacity .3s ease;
}

.tvbg-slide.is-active:hover .tvbg-caption,
.tvbg-slide.is-active:focus .tvbg-caption {
	opacity: 1;
}

.tvbg-title {
	display: block;
	font-family: "Voltaire", "Open Sans", Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.06;
	max-width: 760px;
}

.tvbg-text {
	display: block;
	font-size: 14px;
	line-height: 1.45;
	margin-top: 12px;
	max-width: 650px;
}

.tvbg-nav,
.tvbg-lightbox__nav,
.tvbg-lightbox__close {
	align-items: center;
	appearance: none;
	background: rgba(0, 0, 0, .58);
	border: 1px solid rgba(255, 255, 255, .34);
	color: #fff;
	cursor: pointer;
	display: flex;
	font-family: Arial, sans-serif;
	justify-content: center;
	line-height: 1;
	position: absolute;
	transition: background .2s ease, transform .2s ease;
	z-index: 10;
}

.tvbg-nav {
	border-radius: 50%;
	font-size: 25px;
	height: 46px;
	top: 50%;
	transform: translateY(-50%);
	width: 46px;
}

.tvbg-nav--prev {
	left: 12px;
}

.tvbg-nav--next {
	right: 12px;
}

.tvbg-nav:hover,
.tvbg-lightbox__nav:hover,
.tvbg-lightbox__close:hover,
.tvbg-nav:focus,
.tvbg-lightbox__nav:focus,
.tvbg-lightbox__close:focus {
	background: rgba(248, 98, 1, .92);
	outline: 0;
}

.tvbg-dots {
	display: flex;
	gap: 7px;
	justify-content: center;
	margin-top: 16px;
}

.tvbg-dot {
	appearance: none;
	background: #b8b8b8;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	height: 9px;
	padding: 0;
	width: 9px;
}

.tvbg-dot.is-active {
	background: #f86201;
	transform: scale(1.25);
}

.tvbg-lightbox {
	align-items: center;
	background: rgba(0, 0, 0, .85);
	display: flex;
	inset: 0;
	justify-content: center;
	opacity: 0;
	padding: 34px;
	pointer-events: none;
	position: fixed;
	transition: opacity .3s ease;
	z-index: 10000;
}

.tvbg-lightbox.is-open {
	opacity: 1;
	pointer-events: auto;
}

.tvbg-lightbox__content {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	max-height: 92vh;
	max-width: 92vw;
	overflow: auto;
	position: relative;
	width: 100%;
}

.tvbg-lightbox__content img {
	box-shadow: 0 14px 42px rgba(0, 0, 0, .45);
	display: block;
	max-height: 82vh;
	max-width: 86vw;
	object-fit: contain;
}

.tvbg-lightbox__caption {
	bottom: 0;
	color: #fff;
	left: 50%;
	max-width: min(760px, 82vw);
	position: fixed;
	text-align: center;
	text-shadow: 0 2px 10px rgba(0, 0, 0, .8);
	transform: translateX(-50%);
}

.tvbg-lightbox__caption strong {
	display: block;
	font-family: "Voltaire", "Open Sans", Arial, sans-serif;
	font-size: clamp(22px, 3.2vw, 42px);
	font-weight: 400;
	line-height: 1.1;
}

.tvbg-lightbox__caption span {
	display: block;
	font-size: clamp(13px, 1.5vw, 18px);
	line-height: 1.4;
	margin-top: 8px;
}

.tvbg-lightbox__close {
	border-radius: 50%;
	font-size: 30px;
	height: 44px;
	right: 22px;
	top: 18px;
	width: 44px;
}

.tvbg-lightbox__nav {
	border-radius: 50%;
	font-size: 30px;
	height: 52px;
	top: 50%;
	transform: translateY(-50%);
	width: 52px;
}

.tvbg-lightbox__nav--prev {
	left: 22px;
}

.tvbg-lightbox__nav--next {
	right: 22px;
}

body.tvbg-lock {
	overflow: hidden;
}

@media (max-width: 760px) {
	.tvbg-gallery {
		padding-left: 0;
		padding-right: 0;
	}

	.tvbg-stage {
		height: clamp(280px, 76vw, 430px);
	}

	.tvbg-slide {
		width: 82%;
	}

	.tvbg-slide.is-prev {
		transform: translateX(-102%) scale(.72);
	}

	.tvbg-slide.is-next {
		transform: translateX(2%) scale(.72);
	}

	.tvbg-slide.is-active .tvbg-caption {
		opacity: 1;
	}

	.tvbg-caption {
		padding: 14px;
	}

	.tvbg-title {
		font-size: 14px;
	}

	.tvbg-text {
		font-size: 15px;
		margin-top: 6px;
	}

	.tvbg-nav {
		height: 40px;
		width: 40px;
	}

	.tvbg-lightbox {
		padding: 16px;
	}

	.tvbg-lightbox__content img {
		max-height: 76vh;
		max-width: 92vw;
	}

	.tvbg-lightbox__caption {
		bottom: 16px;
	}
}
