.nnps-slider {
	--nnps-height: 100svh;
	--nnps-padding-x: clamp(24px, 7vw, 112px);
	--nnps-padding-y: clamp(28px, 7vh, 84px);
	--nnps-color: #fff;
	--nnps-background: #171717;
	--nnps-transition: 760ms;
	--nnps-overlay-opacity: 0.58;
	position: relative;
	width: 100%;
	height: var(--nnps-height);
	min-height: min(420px, 100svh);
	overflow: hidden;
	isolation: isolate;
	color: var(--nnps-color);
	background: var(--nnps-background);
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
}

html:has(body.post-type-archive .nnps-slider),
body.post-type-archive:has(.nnps-slider) {
	background-color: #171717;
}

.nnps-slider *,
.nnps-slider *::before,
.nnps-slider *::after {
	box-sizing: border-box;
}

.nnps-slider:focus {
	outline: none;
}

.nnps-slider:focus-visible {
	outline: 2px solid var(--nnps-color);
	outline-offset: -5px;
}

.nnps-slider__slides,
.nnps-slide,
.nnps-slide__background,
.nnps-slide__scrim,
.nnps-slide__link {
	position: absolute;
	inset: 0;
}

.nnps-slide {
	z-index: 0;
	visibility: hidden;
	opacity: 0;
	transition:
		opacity 0s linear var(--nnps-transition),
		visibility 0s linear var(--nnps-transition);
}

.nnps-slide.is-active {
	z-index: 1;
	visibility: visible;
	opacity: 1;
	transition:
		opacity var(--nnps-transition) ease,
		visibility 0s linear 0s;
}

.nnps-slide__background {
	z-index: 0;
	overflow: hidden;
	background: var(--nnps-background);
}

.nnps-slide__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
}

/* Elementor applies `.elementor img { height: auto; }`; preserve full-bleed covers. */
.nnps-slider .nnps-slide__background > img.nnps-slide__image {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100% !important;
	min-height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: center center !important;
}

.nnps-slide__video {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 1;
	width: 100%;
	height: 100%;
	min-width: 177.78vh;
	min-height: 56.25vw;
	border: 0;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -50%) scale(1.04);
	transition: opacity 460ms ease;
}

.nnps-slide__background.is-video-ready .nnps-slide__video {
	opacity: 1;
}

@supports (width: 100cqw) {
	.nnps-slide__background--video {
		container-type: size;
	}

	.nnps-slide__video {
		min-width: 177.78cqh;
		min-height: 56.25cqw;
	}
}

.nnps-slide__scrim {
	z-index: 2;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgb(0 0 0 / 5%) 0%, rgb(0 0 0 / 4%) 44%, rgb(0 0 0 / var(--nnps-overlay-opacity)) 100%),
		linear-gradient(90deg, rgb(0 0 0 / 15%) 0%, transparent 58%);
}

.nnps-slide__link {
	z-index: 3;
}

.nnps-slide__link:focus-visible {
	outline: 2px solid var(--nnps-color);
	outline-offset: -8px;
}

.nnps-slide__content {
	position: absolute;
	left: var(--nnps-padding-x);
	bottom: var(--nnps-padding-y);
	z-index: 4;
	max-width: min(62%, 780px);
	pointer-events: none;
}

.nnps-slide__eyebrow,
.nnps-slide__client,
.nnps-slide__title,
.nnps-slide__details {
	margin: 0;
	color: inherit;
}

.nnps-slide__eyebrow {
	display: block;
	margin-bottom: 9px;
	font-size: clamp(10px, 0.76vw, 12px);
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
	opacity: 0.78;
}

.nnps-slide__client {
	font-size: clamp(25px, 4vw, 58px);
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1.06;
}

.nnps-slide__title {
	margin-top: 10px;
	font-size: clamp(17px, 2.2vw, 30px);
	font-weight: 400;
	line-height: 1.2;
}

.nnps-slide__details {
	margin-top: 13px;
	font-size: clamp(13px, 1.05vw, 16px);
	font-weight: 400;
	line-height: 1.45;
	opacity: 0.86;
}

.nnps-slide__detail-separator {
	margin-inline: 7px;
}

.nnps-slider__navigation {
	position: absolute;
	right: var(--nnps-padding-x);
	bottom: var(--nnps-padding-y);
	z-index: 5;
	display: none;
	align-items: flex-end;
	flex-direction: column;
	gap: 15px;
}

.nnps-slider.is-ready .nnps-slider__navigation {
	display: flex;
}

.nnps-slider__counter {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.08em;
	line-height: 1;
}

.nnps-slider__counter-separator,
.nnps-slider__counter-total {
	opacity: 0.68;
}

.nnps-slider__buttons {
	display: flex;
	align-items: center;
	gap: 12px;
}

.nnps-slider .nnps-slider__button {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 6px;
	border: 0;
	border-radius: 0;
	color: inherit;
	background: transparent;
	cursor: pointer;
	transition: opacity 180ms ease, transform 180ms ease;
	appearance: none;
}

.nnps-slider .nnps-slider__button:hover {
	opacity: 0.7;
}

.nnps-slider .nnps-slider__button:disabled {
	opacity: 0.28;
	cursor: default;
	transform: none;
}

.nnps-slider .nnps-slider__button:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 2px;
}

.nnps-slider__button--previous:hover {
	transform: translateX(-3px);
}

.nnps-slider__button--next:hover {
	transform: translateX(3px);
}

.nnps-slider__button svg {
	display: block;
	width: 100%;
	height: auto;
}

.nnps-slider .nnps-slider__button--toggle {
	width: 38px;
	height: 38px;
	padding: 9px;
}

.nnps-slider__icon-play,
.nnps-slider.is-paused .nnps-slider__icon-pause {
	display: none !important;
}

.nnps-slider.is-paused .nnps-slider__icon-play {
	display: block !important;
}

.elementor-widget-shortcode .nnps-slider {
	max-width: 100%;
}

@media (max-width: 767px) {
	.nnps-slider {
		--nnps-padding-x: 22px;
		--nnps-padding-y: 32px;
		min-height: 100svh;
		background-color: var(--nnps-background);
	}

	.nnps-slider .nnps-slide__background {
		inset: 0;
		width: 100%;
		height: 100%;
		min-width: 100%;
		min-height: 100%;
		background-color: var(--nnps-background);
	}

	.nnps-slider .nnps-slide__background > img.nnps-slide__image {
		position: absolute !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100% !important;
		min-width: 100% !important;
		min-height: 100% !important;
		max-width: none !important;
		max-height: none !important;
		object-fit: cover !important;
		object-position: center center !important;
	}

	.nnps-slider .nnps-slide__background--video > iframe.nnps-slide__video {
		top: 50% !important;
		left: 50% !important;
		width: max(100%, 177.78svh) !important;
		height: max(100%, 56.25vw) !important;
		min-width: 177.78svh !important;
		min-height: 100% !important;
		max-width: none !important;
		max-height: none !important;
		border: 0 !important;
		transform: translate(-50%, -50%) scale(1.06) !important;
	}

	.nnps-slide__content {
		bottom: calc(var(--nnps-padding-y) + 70px);
		max-width: calc(100% - (var(--nnps-padding-x) * 2));
	}

	.nnps-slider__navigation {
		right: var(--nnps-padding-x);
		left: var(--nnps-padding-x);
		align-items: center;
		flex-direction: row;
		justify-content: space-between;
	}

	.nnps-slider__buttons {
		gap: 8px;
	}

	.nnps-slide__scrim {
		background: linear-gradient(180deg, rgb(0 0 0 / 7%) 0%, rgb(0 0 0 / 5%) 35%, rgb(0 0 0 / var(--nnps-overlay-opacity)) 100%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.nnps-slide,
	.nnps-slide.is-active,
	.nnps-slide__video,
	.nnps-slider .nnps-slider__button {
		transition-duration: 0.01ms;
	}
}
