.vet-banner {
	position: relative;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	height: var(--vet-banner-height, 720px);
	min-height: 0;
	overflow: hidden;
	isolation: isolate;
	box-sizing: border-box;
}

.vet-banner *,
.vet-banner *::before,
.vet-banner *::after {
	box-sizing: border-box;
}

.vet-banner__media,
.vet-banner__video-shell,
.vet-banner__image-picture,
.vet-banner__poster-picture,
.vet-banner__image,
.vet-banner__poster,
.vet-banner__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.vet-banner__image-picture,
.vet-banner__poster-picture {
	display: block;
}

.vet-banner__image,
.vet-banner__poster,
.vet-banner__video {
	display: block;
	max-width: none;
	object-fit: cover;
}

/* Elementor applies height:auto to images. Keep Banner media locked to the configured height. */
.elementor .vet-banner .vet-banner__image,
.elementor .vet-banner .vet-banner__poster,
.elementor .vet-banner .vet-banner__video {
	width: 100%;
	max-width: none;
	height: 100%;
}

.vet-banner__video[hidden],
.vet-banner__poster-picture[hidden],
.vet-banner__poster[hidden] {
	display: none;
}

.vet-banner__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: var(--vet-overlay-opacity, .35);
}

.vet-banner__overlay--solid {
	background: var(--vet-overlay-color, #000);
}

.vet-banner__overlay--gradient {
	background: linear-gradient(
		var(--vet-overlay-gradient-direction, to right),
		var(--vet-overlay-gradient-start, #000),
		var(--vet-overlay-gradient-end, transparent)
	);
}

.vet-banner__content {
	position: relative;
	z-index: 2;
	display: flex;
	width: 100%;
	height: 100%;
	min-height: 0;
	margin-inline: auto;
	padding: var(--vet-content-padding, 32px);
	pointer-events: none;
}

.vet-banner__structured-content,
.vet-banner__template-content {
	width: auto;
	max-width: 100%;
	pointer-events: auto;
}

.vet-banner__content-align--left { text-align: left; }
.vet-banner__content-align--center { text-align: center; }
.vet-banner__content-align--right { text-align: right; }

.vet-banner--position-top_left .vet-banner__content { align-items: flex-start; justify-content: flex-start; }
.vet-banner--position-top_center .vet-banner__content { align-items: flex-start; justify-content: center; }
.vet-banner--position-top_right .vet-banner__content { align-items: flex-start; justify-content: flex-end; }
.vet-banner--position-center_left .vet-banner__content { align-items: center; justify-content: flex-start; }
.vet-banner--position-center_center .vet-banner__content { align-items: center; justify-content: center; }
.vet-banner--position-center_right .vet-banner__content { align-items: center; justify-content: flex-end; }
.vet-banner--position-bottom_left .vet-banner__content { align-items: flex-end; justify-content: flex-start; }
.vet-banner--position-bottom_center .vet-banner__content { align-items: flex-end; justify-content: center; }
.vet-banner--position-bottom_right .vet-banner__content { align-items: flex-end; justify-content: flex-end; }

.vet-banner__eyebrow,
.vet-banner__title,
.vet-banner__description {
	margin-block-start: 0;
}

.vet-banner__title {
	margin-block-end: .5em;
}

.vet-banner__description {
	margin-block-end: 1em;
}

.vet-banner__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.vet-banner__content-align--center .vet-banner__buttons { justify-content: center; }
.vet-banner__content-align--right .vet-banner__buttons { justify-content: flex-end; }

.vet-banner__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	text-decoration: none;
}

.vet-banner__button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.vet-banner__editor-warning,
.vet-banner__editor-error {
	display: none;
}

.elementor-editor-active .vet-banner__editor-warning,
.elementor-editor-active .vet-banner__editor-error,
.elementor-editor-preview .vet-banner__editor-warning,
.elementor-editor-preview .vet-banner__editor-error {
	position: relative;
	z-index: 3;
	display: block;
	margin: 8px;
	padding: 8px 12px;
	background: #fff4cc;
	color: #3d3200;
	font: 600 12px/1.4 sans-serif;
}

@media (prefers-reduced-motion: reduce) {
	.vet-banner * {
		scroll-behavior: auto;
		transition-duration: 0s !important;
	}
}
