/* Shared front-end video styling: header hero, interior modal, room gallery */

/* ---- Header hero video ---- */
.wkhm-header-media {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	max-width: 100%;
	height: 100%;
	overflow: hidden;
	z-index: 0;
}

/* Clip hero media so cover crops never widen the document */
#header {
	max-width: 100%;
	overflow-x: hidden;
}

.header-container {
	max-width: 100%;
	overflow-x: hidden;
}

.wkhm-header-media .wkhm-header-video {
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	transform: translate(-50%, -50%);
	object-fit: cover;
	opacity: 0;
	border: 0;
	pointer-events: none;
	transition: opacity 0.8s ease-in-out;
}

.wkhm-header-media video.wkhm-header-video {
	width: 100%;
	height: 100%;
	/* Fill the box; no layout-expanding vh/vw sizes */
	max-width: none;
}

/* Cover crop via scale (layout stays 100% of parent — no 177vh overflow) */
.wkhm-header-media iframe.wkhm-header-video-yt {
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	min-width: 100%;
	min-height: 100%;
	transform: translate(-50%, -50%) scale(1.35);
	transform-origin: center center;
}

.wkhm-header-media .wkhm-header-video.wkhm-video-ready {
	opacity: 1;
}

/* Small screens: stop any leftover sideways drag / white strip */
@media (max-width: 991px) {
	html,
	body {
		overflow-x: hidden;
		max-width: 100%;
	}

	#page {
		max-width: 100%;
		overflow-x: hidden;
	}
}

/* ---- Interior carousel: hover preview + centered play orb ---- */
.interiorbox .wkhm-hover-preview {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	z-index: 3;
	transition: opacity 0.4s ease;
	background: #000;
}

.interiorbox.wkhm-hover-active .wkhm-hover-preview {
	opacity: 1;
}

.interiorbox .wkhm-hover-preview .wkhm-hover-media {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
	pointer-events: none;
}

.interiorbox .wkhm-hover-preview iframe.wkhm-hover-media {
	/* Cover the tile with a 16:9 YouTube frame */
	width: 100%;
	height: 100%;
	transform: scale(1.35);
	transform-origin: center center;
}

.interiorbox .wkhm-video-orb {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 60px;
	height: 60px;
	margin: 0;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.55);
	background: rgba(0, 0, 0, 0.45);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
	transform: translate(-50%, -50%) scale(1);
	opacity: 1;
	z-index: 2;
	pointer-events: none;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.4s ease, transform 0.4s ease;
	animation: wkhm-orb-pulse 2.4s ease-in-out infinite;
}

.interiorbox .wkhm-video-orb-play {
	display: block;
	width: 0;
	height: 0;
	margin-left: 3px;
	border-style: solid;
	border-width: 9px 0 9px 15px;
	border-color: transparent transparent transparent #fff;
}

.interiorbox.wkhm-hover-active .wkhm-video-orb {
	opacity: 0;
	transform: translate(-50%, -50%) scale(0.92);
	animation: none;
}

@keyframes wkhm-orb-pulse {
	0%,
	100% {
		transform: translate(-50%, -50%) scale(1);
		box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
	}
	50% {
		transform: translate(-50%, -50%) scale(1.06);
		box-shadow: 0 8px 22px rgba(0, 0, 0, 0.34);
	}
}

@media (prefers-reduced-motion: reduce) {
	.interiorbox .wkhm-video-orb {
		animation: none;
	}
}

/* ---- Minimal modal overlay (video items only; photos still use Fancybox) ---- */
body.wkhm-modal-open {
	overflow: hidden;
}

.wkhm-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.85);
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	box-sizing: border-box;
}

.wkhm-modal-inner {
	width: 100%;
	max-width: 960px;
}

.wkhm-modal-close {
	position: absolute;
	top: 16px;
	right: 24px;
	background: transparent;
	border: 0;
	color: #fff;
	font-size: 36px;
	line-height: 1;
	cursor: pointer;
	z-index: 1;
}

/* ---- Shared lightbox video player (interior + room page) ---- */
.wkhm-lightbox-player {
	position: relative;
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	background: #000;
}

.wkhm-lightbox-player .wkhm-poster {
	width: 100%;
	display: block;
	cursor: pointer;
}

.wkhm-lightbox-player .wkhm-play-overlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 72px;
	height: 72px;
	line-height: 72px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.6);
	color: #fff;
	font-size: 28px;
	text-align: center;
	cursor: pointer;
	transition: background 0.2s;
}

.wkhm-lightbox-player .wkhm-play-overlay:hover {
	background: rgba(0, 0, 0, 0.85);
}

.wkhm-lightbox-player video,
.wkhm-lightbox-player iframe {
	width: 100%;
	display: block;
	aspect-ratio: 16 / 9;
	border: 0;
}

/* ---- Room page video thumbnails alongside photos ---- */
.wkhm-room-video-thumb {
	position: relative;
	cursor: pointer;
}

.wkhm-room-video-thumb img {
	width: 100%;
	display: block;
}

.wkhm-room-video-thumb .wkhm-play-overlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 32px;
	height: 32px;
	line-height: 32px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.6);
	color: #fff;
	font-size: 14px;
	text-align: center;
}

/* ---- Room page: inline video inside main image area ---- */
#image-block #view_full_size {
	position: relative;
	display: block;
}

#view_full_size.wkhm-inline-active {
	background: #0c0c0c;
}

#view_full_size .wkhm-inline-stage {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #0c0c0c;
	z-index: 2;
	opacity: 0;
	animation: wkhm-inline-fade-in 0.35s ease forwards;
	/* Soft cinema frame — not a heavy box border */
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.18),
		inset 0 0 0 6px rgba(0, 0, 0, 0.22),
		inset 0 0 48px rgba(0, 0, 0, 0.35);
}

#view_full_size .wkhm-inline-stage::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 3;
	/* Gentle vignette so the edge reads finished */
	background: radial-gradient(
		ellipse at center,
		rgba(0, 0, 0, 0) 55%,
		rgba(0, 0, 0, 0.28) 100%
	);
	box-shadow: inset 0 0 0 1px rgba(212, 197, 169, 0.22);
}

#view_full_size .wkhm-inline-media {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
	background: #0c0c0c;
}

#view_full_size iframe.wkhm-inline-media {
	/* Fill the image box similarly to a cover crop */
	width: 100%;
	height: 100%;
	transform: scale(1.2);
	transform-origin: center center;
}

#view_full_size video.wkhm-inline-media {
	/* Keep native controls readable over the frame */
	z-index: 1;
}

/* Active video thumb — quiet highlight, matches the cinema frame */
#views_block li.wkhm-room-video-thumb-li a.shown {
	outline: 1px solid rgba(212, 197, 169, 0.85);
	outline-offset: 2px;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35);
}

#views_block li.wkhm-room-video-thumb-li a.shown .wkhm-play-overlay {
	opacity: 0.35;
}

@keyframes wkhm-inline-fade-in {
	from {
		opacity: 0;
		transform: scale(1.015);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	#view_full_size .wkhm-inline-stage {
		animation: none;
		opacity: 1;
		transform: none;
	}
}
