.jpcv-video-rail {
	--jpcv-gap: var(--nlvr-gap, 16px);
	--jpcv-card-height: var(--nlvr-card-height, 360px);
	--jpcv-vertical-width: var(--nlvr-vertical-width, 244px);
	--jpcv-wide-width: var(--nlvr-wide-width, 460px);
	--jpcv-radius: var(--nlvr-radius, 10px);
	--jpcv-title-color: var(--nlvr-text, #151515);
	--jpcv-meta-color: var(--nlvr-muted, #6b6b68);
	--jpcv-control-color: var(--nlvr-control-color, #ffffff);
	--jpcv-control-background: var(--nlvr-control-bg, rgba(18, 18, 18, 0.68));
	--jpcv-control-padding: 6px;
	--jpcv-control-icon-size: 18px;
	--jpcv-play-icon-size: 20px;
	--jpcv-control-border-width: 1px;
	--jpcv-control-border-color: rgba(255, 255, 255, 0.36);
	--jpcv-control-radius: 8px;
	--jpcv-control-gap: 6px;
	--jpcv-control-inset: 8px;
	--jpcv-control-hover-background: rgba(18, 18, 18, 0.84);
	--jpcv-control-hover-border-color: rgba(255, 255, 255, 0.76);
	--jpcv-motion: var(--nlvr-motion, 220ms);
	box-sizing: border-box;
	inline-size: 100%;
	max-inline-size: 100%;
	min-inline-size: 0;
	color: var(--jpcv-title-color);
}

.jpcv-video-rail,
.jpcv-video-rail * {
	box-sizing: border-box;
}

.jpcv-video-rail .jpcv-video-rail__track {
	display: flex;
	align-items: flex-start;
	gap: var(--jpcv-gap);
	inline-size: 100%;
	max-inline-size: 100%;
	min-inline-size: 0;
	overflow-x: auto;
	overflow-y: hidden;
	padding-block: 2px 8px;
	padding-inline: 2px;
	cursor: grab;
	scrollbar-width: none;
	overflow-anchor: none;
	overscroll-behavior-inline: contain;
	touch-action: pan-x pan-y;
	-webkit-overflow-scrolling: touch;
}

.jpcv-video-rail .jpcv-video-rail__track::-webkit-scrollbar {
	display: none;
}

.jpcv-video-rail .jpcv-video-rail__track.is-dragging {
	cursor: grabbing;
	user-select: none;
}

.jpcv-video-rail .jpcv-video-rail__track:focus-visible {
	outline: 2px solid transparent;
	background: rgba(21, 21, 21, 0.04);
	box-shadow: inset 0 -2px 0 rgba(21, 21, 21, 0.52);
}

.jpcv-video-rail .jpcv-card {
	flex: 0 0 min(62vw, var(--jpcv-vertical-width));
	min-inline-size: 0;
	margin: 0;
}

.jpcv-video-rail .jpcv-card--wide {
	flex-basis: min(84vw, var(--jpcv-wide-width));
}

.jpcv-video-rail .jpcv-media {
	position: relative;
	isolation: isolate;
	inline-size: 100%;
	block-size: var(--jpcv-card-height);
	min-block-size: 180px;
	overflow: hidden;
	border-radius: var(--jpcv-radius);
	background: #d8d7d2;
}

.jpcv-video-rail .jpcv-media--no-poster {
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.18), transparent 46%),
		linear-gradient(145deg, #73736f, #292a2b);
}

.jpcv-video-rail .jpcv-poster,
.jpcv-video-rail .jpcv-video,
.jpcv-video-rail .jpcv-youtube-layer,
.jpcv-video-rail .jpcv-youtube-layer iframe {
	position: absolute;
	inset: 0;
	display: block;
	inline-size: 100%;
	block-size: 100%;
}

.jpcv-video-rail .jpcv-poster,
.jpcv-video-rail .jpcv-video {
	object-fit: cover;
}

.jpcv-video-rail .jpcv-poster {
	z-index: 1;
	background: #4d4f50;
	transition: opacity var(--jpcv-motion) ease;
}

.jpcv-video-rail .jpcv-video,
.jpcv-video-rail .jpcv-youtube-layer {
	z-index: 2;
}

.jpcv-video-rail .jpcv-video {
	opacity: 0;
	transition: opacity var(--jpcv-motion) ease;
}

.jpcv-video-rail .jpcv-media.is-ready .jpcv-video,
.jpcv-video-rail .jpcv-media.is-ready .jpcv-poster {
	opacity: 1;
}

.jpcv-video-rail .jpcv-media.is-ready .jpcv-poster {
	opacity: 0;
}

.jpcv-video-rail .jpcv-youtube-layer {
	pointer-events: none;
	background: #111111;
	opacity: 0;
	transition: opacity var(--jpcv-motion) ease;
}

.jpcv-video-rail .jpcv-media.is-ready .jpcv-youtube-layer {
	opacity: 1;
}

.jpcv-video-rail .jpcv-youtube-layer iframe {
	border: 0;
	object-fit: cover;
}

.jpcv-video-rail .jpcv-media:fullscreen,
.jpcv-video-rail .jpcv-media:-webkit-full-screen {
	inline-size: 100vw;
	block-size: 100vh;
	border-radius: 0;
	background: #000000;
}

.jpcv-video-rail .jpcv-media:fullscreen .jpcv-poster,
.jpcv-video-rail .jpcv-media:fullscreen .jpcv-video,
.jpcv-video-rail .jpcv-media:fullscreen iframe,
.jpcv-video-rail .jpcv-media:-webkit-full-screen .jpcv-poster,
.jpcv-video-rail .jpcv-media:-webkit-full-screen .jpcv-video,
.jpcv-video-rail .jpcv-media:-webkit-full-screen iframe {
	object-fit: contain;
	background: #000000;
}

.jpcv-video-rail .jpcv-media-toggle {
	position: absolute;
	z-index: 3;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	inline-size: 100%;
	block-size: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: inherit;
	background: transparent;
	color: var(--jpcv-control-color);
	cursor: pointer;
}

.jpcv-video-rail .jpcv-media-toggle .jpcv-media-toggle__icon {
	opacity: 0;
	transition: opacity 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.jpcv-video-rail .jpcv-media-toggle:hover .jpcv-media-toggle__icon,
.jpcv-video-rail .jpcv-media-toggle:focus-visible .jpcv-media-toggle__icon {
	opacity: 1;
}

.jpcv-video-rail [data-jpcv-source-type="youtube"] .jpcv-media-toggle[aria-pressed="false"] .jpcv-media-toggle__icon--play {
	display: inline-flex;
	inline-size: auto;
	block-size: auto;
	min-inline-size: 32px;
	min-block-size: 32px;
	padding: var(--jpcv-control-padding);
	border: var(--jpcv-control-border-width) solid var(--jpcv-control-border-color);
	border-radius: var(--jpcv-control-radius);
	background: var(--jpcv-control-background);
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.2);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	opacity: 1;
}

.jpcv-video-rail [data-jpcv-source-type="youtube"] .jpcv-media-toggle[aria-pressed="false"]:hover .jpcv-media-toggle__icon--play {
	border-color: var(--jpcv-control-hover-border-color);
	background: var(--jpcv-control-hover-background);
	transform: scale(1.04);
}

.jpcv-video-rail .jpcv-media-toggle[aria-pressed="false"] .jpcv-media-toggle__icon--pause,
.jpcv-video-rail .jpcv-media-toggle[aria-pressed="true"] .jpcv-media-toggle__icon--play {
	display: none;
}

.jpcv-video-rail .jpcv-media-toggle[aria-pressed="true"] .jpcv-media-toggle__icon--pause {
	display: inline-flex;
}

.jpcv-video-rail .jpcv-media-toggle:focus-visible {
	outline: 2px solid transparent;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.88), 0 0 0 3px rgba(21, 21, 21, 0.24);
}

.jpcv-video-rail .jpcv-media-toggle[hidden] {
	display: none;
}

.jpcv-video-rail .jpcv-controls {
	position: absolute;
	z-index: 5;
	inset-inline-end: var(--jpcv-control-inset);
	inset-block-end: var(--jpcv-control-inset);
	display: flex;
	align-items: center;
	gap: var(--jpcv-control-gap);
	opacity: 0;
	pointer-events: none;
	transform: translateY(4px);
	transition: opacity 180ms ease, transform 180ms ease;
}

/* Zero height keeps the gap click-through while overflowing buttons stay above the bottom inset. */
.jpcv-video-rail[data-jpcv-controls-layout="split"] .jpcv-controls {
	inset-inline-start: var(--jpcv-control-inset);
	block-size: 0;
	align-items: flex-end;
	justify-content: space-between;
}

.jpcv-video-rail[data-jpcv-controls-layout="split"] [data-jpcv-sound] {
	order: -1;
}

.jpcv-video-rail [data-jpcv-card][data-jpcv-controls="always"] .jpcv-controls,
.jpcv-video-rail [data-jpcv-card][data-jpcv-controls="hover"] .jpcv-media:hover .jpcv-controls,
.jpcv-video-rail [data-jpcv-card][data-jpcv-controls="hover"] .jpcv-media:focus-within .jpcv-controls,
.jpcv-video-rail [data-jpcv-card][data-jpcv-controls="hover"] .jpcv-media.is-audible .jpcv-controls {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.jpcv-video-rail [data-jpcv-card][data-jpcv-controls="hidden"] .jpcv-controls {
	display: none;
}

.jpcv-video-rail [data-jpcv-card][data-jpcv-pause="hide"] [data-jpcv-play] {
	display: none;
}

.jpcv-video-rail .jpcv-control {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: auto;
	block-size: auto;
	min-inline-size: 32px;
	min-block-size: 32px;
	margin: 0;
	padding: var(--jpcv-control-padding);
	border: var(--jpcv-control-border-width) solid var(--jpcv-control-border-color);
	border-radius: var(--jpcv-control-radius);
	background: var(--jpcv-control-background);
	color: var(--jpcv-control-color);
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	cursor: pointer;
	transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.jpcv-video-rail .jpcv-control:hover:not(:disabled) {
	border-color: var(--jpcv-control-hover-border-color);
	background: var(--jpcv-control-hover-background);
	color: var(--jpcv-control-hover-color, var(--jpcv-control-color));
}

.jpcv-video-rail .jpcv-control:active {
	transform: translateY(1px) scale(0.96);
}

.jpcv-video-rail .jpcv-control:focus-visible {
	outline: 2px solid transparent;
	border-color: var(--jpcv-control-color);
	background: var(--jpcv-control-hover-background);
	box-shadow: inset 0 -3px 0 var(--jpcv-control-color), 0 8px 22px rgba(0, 0, 0, 0.2);
}

.jpcv-video-rail .jpcv-control:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.jpcv-video-rail .jpcv-fallback:focus-visible {
	outline: 2px solid transparent;
	border-color: var(--jpcv-control-color);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.72), 0 8px 22px rgba(0, 0, 0, 0.2);
}

.jpcv-video-rail .jpcv-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 20px;
	block-size: 20px;
	pointer-events: none;
}

.jpcv-video-rail .jpcv-icon svg {
	inline-size: 20px;
	block-size: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.jpcv-video-rail .jpcv-control .jpcv-icon,
.jpcv-video-rail .jpcv-control .jpcv-icon svg {
	inline-size: var(--jpcv-control-icon-size);
	block-size: var(--jpcv-control-icon-size);
	flex-shrink: 0;
}

.jpcv-video-rail .jpcv-media-toggle .jpcv-icon,
.jpcv-video-rail .jpcv-media-toggle .jpcv-icon svg {
	inline-size: var(--jpcv-play-icon-size);
	block-size: var(--jpcv-play-icon-size);
	flex-shrink: 0;
}

.jpcv-video-rail .jpcv-media-toggle:hover {
	color: var(--jpcv-control-hover-color, var(--jpcv-control-color));
}

.jpcv-video-rail .jpcv-icon--pause,
.jpcv-video-rail [data-jpcv-play][aria-pressed="false"] .jpcv-icon--pause,
.jpcv-video-rail [data-jpcv-sound][aria-pressed="true"] .jpcv-icon--muted {
	display: none;
}

.jpcv-video-rail [data-jpcv-play][aria-pressed="true"] .jpcv-icon--pause,
.jpcv-video-rail [data-jpcv-play][aria-pressed="true"] .jpcv-icon--play,
.jpcv-video-rail [data-jpcv-sound][aria-pressed="true"] .jpcv-icon--sound {
	display: inline-flex;
}

.jpcv-video-rail [data-jpcv-play][aria-pressed="true"] .jpcv-icon--play,
.jpcv-video-rail [data-jpcv-sound][aria-pressed="false"] .jpcv-icon--sound {
	display: none;
}

.jpcv-video-rail .jpcv-status {
	position: absolute;
	z-index: 6;
	inset: 50% 16px auto;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, 0.38);
	border-radius: 10px;
	background: rgba(18, 18, 18, 0.82);
	color: #ffffff;
	font-size: 13px;
	font-weight: 650;
	line-height: 1.35;
	text-align: center;
	transform: translateY(-50%);
}

.jpcv-video-rail .jpcv-status[hidden] {
	display: none;
}

.jpcv-video-rail .jpcv-fallback {
	position: absolute;
	z-index: 7;
	inset: auto 8px 8px 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-block-size: 44px;
	padding: 10px 14px;
	border: 1px solid rgba(255, 255, 255, 0.42);
	border-radius: 10px;
	background: rgba(18, 18, 18, 0.82);
	color: #ffffff;
	font-size: 13px;
	font-weight: 650;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
}

.jpcv-video-rail .jpcv-fallback[hidden] {
	display: none;
}

.jpcv-video-rail .jpcv-caption {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding-block-start: 12px;
	color: var(--jpcv-title-color);
	font: inherit;
}

.jpcv-video-rail .jpcv-title,
.jpcv-video-rail .jpcv-meta {
	min-inline-size: 0;
	overflow-wrap: anywhere;
}

.jpcv-video-rail .jpcv-title {
	font-size: 14px;
	font-weight: 650;
	line-height: 1.35;
}

.jpcv-video-rail .jpcv-meta {
	color: var(--jpcv-meta-color);
	font-size: 12px;
	font-weight: 450;
	line-height: 1.35;
	text-align: end;
}

.jpcv-video-rail[data-jpcv-caption-layout="stacked"] .jpcv-caption {
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 4px;
}

.jpcv-video-rail[data-jpcv-caption-layout="stacked"] .jpcv-title,
.jpcv-video-rail[data-jpcv-caption-layout="stacked"] .jpcv-meta {
	inline-size: 100%;
	max-inline-size: 100%;
	text-align: start;
}

.jpcv-video-rail .jpcv-placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 24px;
	color: #ffffff;
	font-size: 13px;
	font-weight: 650;
	letter-spacing: 0.02em;
	text-align: center;
}

@media (hover: none), (pointer: coarse) {
	.jpcv-video-rail .jpcv-control,
	.jpcv-video-rail [data-jpcv-source-type="youtube"] .jpcv-media-toggle[aria-pressed="false"] .jpcv-media-toggle__icon--play {
		min-inline-size: 44px;
		min-block-size: 44px;
	}

	.jpcv-video-rail [data-jpcv-card][data-jpcv-controls="hover"] .jpcv-controls {
		opacity: 1;
		pointer-events: auto;
		transform: none;
	}
}

@media (max-width: 640px) {
	.jpcv-video-rail .jpcv-caption {
		gap: 8px;
	}

	.jpcv-video-rail .jpcv-meta {
		max-inline-size: 52%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.jpcv-video-rail {
		--jpcv-motion: 0ms;
	}

	.jpcv-video-rail .jpcv-poster,
	.jpcv-video-rail .jpcv-video,
	.jpcv-video-rail .jpcv-youtube-layer,
	.jpcv-video-rail .jpcv-media-toggle .jpcv-media-toggle__icon,
	.jpcv-video-rail .jpcv-controls,
	.jpcv-video-rail .jpcv-control {
		transition: none;
	}
}

.jpcv-popup {
	box-sizing: border-box;
	position: fixed;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	max-inline-size: none;
	max-block-size: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	overflow: hidden;
	overscroll-behavior: contain;
}
.jpcv-popup[open] { display: grid; place-items: center; }
.jpcv-popup::backdrop { background: rgba(0, 0, 0, 0.82); }
.jpcv-popup .jpcv-popup__frame {
	position: relative;
	box-sizing: border-box;
	inline-size: min(calc(100vw - 32px), calc(min(78vh, calc(100vh - 160px)) * var(--jpcv-popup-ratio)));
	inline-size: min(calc(100vw - 32px), calc(min(78dvh, calc(100dvh - 160px)) * var(--jpcv-popup-ratio)));
	aspect-ratio: var(--jpcv-popup-ratio);
	border-radius: 8px;
	background: #111;
	overflow: hidden;
	box-shadow: 0 20px 70px rgba(0, 0, 0, 0.4);
}
.jpcv-popup .jpcv-popup__frame > video,
.jpcv-popup .jpcv-popup__frame > iframe {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	position: absolute;
	inset: 0;
	border: 0;
	object-fit: contain;
	background: #111;
}
.jpcv-popup .jpcv-popup__close {
	box-sizing: border-box;
	position: absolute;
	top: 10px;
	right: 10px;
	display: grid;
	place-items: center;
	inline-size: 44px;
	block-size: 44px;
	min-inline-size: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.38);
	border-radius: 50%;
	color: #fff;
	background: rgba(30, 30, 30, 0.86);
	cursor: pointer;
	z-index: 2;
}
.jpcv-popup .jpcv-popup__close svg {
	display: block;
	inline-size: 20px;
	block-size: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
}
.jpcv-popup .jpcv-popup__close:hover { background: #3d3d3d; }
.jpcv-popup .jpcv-popup__close:focus-visible {
	outline: 2px solid transparent;
	background: #fff;
	color: #111;
	border-color: #fff;
}
.jpcv-popup .jpcv-popup__status {
	box-sizing: border-box;
	position: absolute;
	inset-block-end: 64px;
	z-index: 1;
	inset-inline: 12px;
	margin: 0;
	padding: 8px 12px;
	border-radius: 8px;
	color: #fff;
	background: rgba(0, 0, 0, 0.8);
	font: 14px/1.5 system-ui, sans-serif;
	text-align: center;
	pointer-events: none;
}
.jpcv-popup .jpcv-popup__status[hidden] { display: none; }

.jpcv-popup .jpcv-popup__close { border-radius: 8px; }
.jpcv-popup .jpcv-popup__fallback { display: inline-block; min-height: 44px; box-sizing: border-box; pointer-events: auto; color: #fff; text-decoration: underline; padding: 8px; }
.jpcv-popup .jpcv-popup__fallback:focus-visible { background: #fff; color: #111; }

/* Keep physical dragging immediate while native touch scrolling remains unchanged. */
.jpcv-video-rail [data-jpcv-track].is-dragging { scroll-snap-type: none; scroll-behavior: auto; }
.jpcv-video-rail [data-jpcv-track].is-dragging .jpcv-media-toggle { cursor: grabbing; }

/* Keep a native navigation fallback in the Elementor canvas only. */
.jpcv-video-rail[data-jpcv-editor="yes"] .jpcv-video-rail__track {
	scrollbar-width: auto;
	scrollbar-color: #a7a7a7 #303030;
}
.jpcv-video-rail[data-jpcv-editor="yes"] .jpcv-video-rail__track::-webkit-scrollbar {
	display: block;
	height: 14px;
}
.jpcv-video-rail[data-jpcv-editor="yes"] .jpcv-video-rail__track::-webkit-scrollbar-track {
	background: #303030;
	border-radius: 7px;
}
.jpcv-video-rail[data-jpcv-editor="yes"] .jpcv-video-rail__track::-webkit-scrollbar-thumb {
	background: #a7a7a7;
	border: 3px solid #303030;
	border-radius: 7px;
}
.jpcv-video-rail[data-jpcv-editor="yes"] .jpcv-editor-navigation-help {
	font-size: 12px;
	line-height: 1.5;
	margin-block: 0 8px;
	opacity: .8;
}

/* Native disclosure deliberately keeps every source available without JavaScript. */
.jpcv-video-rail .jpcv-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-block: 8px; }
.jpcv-video-rail .jpcv-load-more { display: inline-flex; align-items: center; justify-content: center; min-block-size: 44px; max-inline-size: 100%; padding: 10px 16px; border: 1px solid currentColor; border-radius: var(--jpcv-control-radius); background: transparent; color: inherit; font: inherit; line-height: 1.25; cursor: pointer; }
.jpcv-video-rail .jpcv-load-more[hidden] { display: none; }
.jpcv-video-rail .jpcv-load-more:hover { background: rgba(127,127,127,.12); }
.jpcv-video-rail .jpcv-load-more[aria-busy="true"] { opacity: .65; cursor: wait; }
.jpcv-video-rail .jpcv-load-more[aria-disabled="true"]:not([aria-busy="true"]) { opacity: .65; cursor: default; }
.jpcv-video-rail .jpcv-pagination-status { margin: 0; font-size: 13px; }
.jpcv-video-rail .jpcv-video-index { margin-block: 8px; font-size: 14px; }
.jpcv-video-rail .jpcv-video-index summary { cursor: pointer; inline-size: fit-content; max-inline-size: 100%; min-block-size: 44px; padding-block: 12px; line-height: 20px; }
.jpcv-video-rail .jpcv-video-index ol { max-block-size: 240px; overflow-y: auto; overscroll-behavior: contain; margin-block: 4px 12px; padding-inline-start: 28px; }
.jpcv-video-rail .jpcv-video-index a { display: inline-block; padding-block: 6px; color: inherit; overflow-wrap: anywhere; text-decoration: underline; }
.jpcv-video-rail .jpcv-load-more:focus-visible,
.jpcv-video-rail .jpcv-video-index summary:focus-visible,
.jpcv-video-rail .jpcv-video-index a:focus-visible { outline: 2px solid transparent; border-color: var(--jpcv-control-hover-border-color); background: var(--jpcv-control-hover-background); color: var(--jpcv-control-color); text-decoration: underline; text-underline-offset: 3px; }
