/* Shared card media surface — poster + optional hover/hold video preview */

.tourbin-media-surface {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	isolation: isolate;
}

.tourbin-media-surface--image .tourbin-media-surface__poster {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tourbin-media-surface--video .tourbin-media-surface__poster,
.tourbin-media-surface--video .tourbin-media-surface__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.tourbin-media-surface--image .tourbin-media-surface__poster,
.tourbin-media-surface--video .tourbin-media-surface__poster {
	transition: opacity 240ms ease, transform var(--tourbin-duration, 200ms) var(--tourbin-ease, cubic-bezier(0.2, 0, 0, 1));
}

.tourbin-media-surface--video .tourbin-media-surface__poster {
	z-index: 1;
	opacity: 1;
	pointer-events: none;
}

.tourbin-media-surface__poster--empty {
	background: color-mix(in srgb, CanvasText 8%, transparent);
}

.tourbin-media-surface--video .tourbin-media-surface__video {
	z-index: 0;
	opacity: 0;
	transition: opacity 240ms ease;
	background: #111;
	pointer-events: none;
}

.tourbin-media-surface.is-previewing .tourbin-media-surface__poster {
	opacity: 0;
}

.tourbin-media-surface.is-previewing .tourbin-media-surface__video {
	opacity: 1;
}

.tourbin-media-surface__badge {
	position: absolute;
	z-index: 2;
	top: 0.65rem;
	inset-inline-start: 0.65rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 0.4rem;
	color: #fff;
	background: color-mix(in srgb, #0a0a0a 55%, transparent);
	backdrop-filter: blur(6px);
	pointer-events: none;
	box-shadow: 0 1px 2px color-mix(in srgb, #000 25%, transparent);
}

.tourbin-media-surface__badge-icon {
	display: block;
}

/* Fill framed media boxes on cards / slides.
 * Do NOT force position on .tourbin-tour-slide__media — that box is already
 * `position:absolute; inset:0` in home.css; making it relative collapses height. */
.tourbin-tour-card__media,
.tourbin-blog-section-card__media,
.tourbin-blog-card__media,
.tourbin-secret-card__media,
.tourbin-post-card__media {
	position: relative;
}

a > .tourbin-media-surface,
.tourbin-tour-card__media > .tourbin-media-surface,
.tourbin-blog-section-card__media > .tourbin-media-surface,
.tourbin-blog-card__media > .tourbin-media-surface,
.tourbin-secret-card__media > .tourbin-media-surface,
.tourbin-tour-slide__media > .tourbin-media-surface,
.tourbin-post-card__media > .tourbin-media-surface {
	position: absolute;
	inset: 0;
}

/* Keep slide images filling the absolute media plane (video surface + imaginit wrap) */
.tourbin-tour-slide__media .tourbin-media-surface,
.tourbin-tour-slide__media .tourbin-media-surface .imaginit-image-wrap {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	aspect-ratio: auto !important;
}

.tourbin-tour-slide__media .tourbin-media-surface__poster,
.tourbin-tour-slide__media .tourbin-media-surface__video,
.tourbin-tour-slide__media .tourbin-media-surface .imaginit-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tourbin-featured-video {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.tourbin-featured-video__media {
	display: block;
	width: 100%;
	height: auto;
	max-height: min(70vh, 40rem);
	background: #0a0a0a;
}

@media (prefers-reduced-motion: reduce) {
	.tourbin-media-surface--video .tourbin-media-surface__poster,
	.tourbin-media-surface--video .tourbin-media-surface__video {
		transition: none;
	}
}
