.ndv-video-player {
	box-sizing: border-box;
	width: 100%;
	margin: 1.5rem auto;
}

.ndv-video-player *,
.ndv-video-player *::before,
.ndv-video-player *::after {
	box-sizing: inherit;
}

.ndv-video-player .ndv-video-title {
	display: block;
	width: 100%;
	margin: 0 0 1rem;
	padding: 0;
	text-align: center;
	font-size: clamp(1.5rem, 2.4vw, 2.1rem);
	font-weight: 800;
	line-height: 1.3;
	color: inherit;
	text-wrap: balance;
}

.ndv-video-frame {
	position: relative;
	width: 100%;
	overflow: hidden;
	border-radius: 12px;
	background: #000;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
}

.ndv-video-fixed-ratio .ndv-video-frame {
	aspect-ratio: var(--ndv-video-ratio, 16 / 9);
}

.ndv-video-element {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	background: #000;
}

.ndv-video-fixed-ratio .ndv-video-element {
	height: 100%;
	object-fit: contain;
}

.ndv-video-original-ratio .ndv-video-element {
	height: auto;
}

@media (max-width: 782px) {
	.ndv-video-player {
		margin: 1rem auto;
	}

	.ndv-video-player .ndv-video-title {
		margin-bottom: 0.8rem;
		font-size: 1.35rem;
	}

	.ndv-video-frame {
		border-radius: 8px;
	}
}

/* v1.2.1: MP4 loads only after interaction; only one NDV video plays at a time. */
.ndv-video-lazy .ndv-video-play {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 4;
	width: 68px;
	height: 68px;
	margin: 0;
	padding: 0;
	transform: translate(-50%, -50%);
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.72);
	box-shadow: 0 6px 22px rgba(0, 0, 0, 0.28);
	cursor: pointer;
}

.ndv-video-lazy .ndv-video-play:hover,
.ndv-video-lazy .ndv-video-play:focus-visible {
	background: rgba(0, 0, 0, 0.86);
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.ndv-video-play-icon {
	position: absolute;
	top: 50%;
	left: 53%;
	width: 0;
	height: 0;
	transform: translate(-50%, -50%);
	border-top: 11px solid transparent;
	border-bottom: 11px solid transparent;
	border-left: 18px solid #fff;
}

.ndv-video-loaded .ndv-video-play {
	display: none;
}

@media (max-width: 782px) {
	.ndv-video-lazy .ndv-video-play {
		width: 56px;
		height: 56px;
	}
}
