/*
 * Hero section — ported from /reference/styles.css L580–751.
 * Used by the hero patterns (video / image / minimal). Every reference page
 * opens with a hero, so this ships alongside header/footer CSS.
 */
.hero {
	position: relative;
	background: #fff;
	padding: 1rem;
	height: 100vh;
	z-index: 1;
	/* reference <section class="hero border-bottom"> (Bootstrap utility) */
	border-bottom: 1px solid #dee2e6;
}

.hero-teaser {
	position: relative;
	overflow: hidden;
	height: 100%;
	background: #0f1a20;
	border-radius: var(--radius);
	display: flex;
	flex-direction: column;
}

.hero-media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* core/video block as hero background (client-swappable) */
.hero-teaser .wp-block-video.hero-media-wrap {
	position: absolute;
	inset: 0;
	margin: 0;
	height: 100%;
}

.hero-teaser .hero-media-wrap video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* image-hero variant (career) — swappable core/image as background layer */
.hero-teaser .wp-block-image.hero-media-img {
	position: absolute;
	inset: 0;
	margin: 0;
	height: 100%;
}

.hero-teaser .hero-media-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 0;
}

.hero-teaser::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(6, 38, 47, 0) 0%, #06262f 90%);
}

.hero-content {
	position: relative;
	z-index: 1;
	color: #fff;
	max-width: 50%;
}

.hero-pad {
	padding-top: clamp(88px, 14vh, 148px);
	padding-bottom: 1.25rem;
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	align-items: flex-end;
	z-index: 1;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-bottom: none;
}

.hero-sponsors-full,
.hero-content-full {
	position: relative;
	z-index: 1;
	width: 100%;
	margin-top: 0;
	flex: 0 0 auto;
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	padding: 0;
	overflow: hidden;
}

.hero-sponsors-full .seal-container,
.hero-content-full .seal-container {
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-top: none;
	border-bottom: none;
	padding: 1.5rem 1rem;
	overflow: hidden;
	width: 100%;
}

.hero-content-full h1,
.hero-content-full h2 {
	color: var(--white);
}

.hero-content .text-muted {
	color: rgba(255, 255, 255, 0.78);
}

/* Hero variant of the secondary button (white on dark).
   Hover/active deliberately deviate from the reference (client feedback):
   brand-primary orange on hover, darkened orange on active — the reference's
   white-on-white hover was too subtle. */
.hero-content .is-style-secondary-brand .wp-block-button__link {
	background-color: rgba(255, 255, 255, 0.92);
	border-color: rgba(255, 255, 255, 0.92);
	color: #06262f;
}

.hero-content .is-style-secondary-brand .wp-block-button__link:hover {
	background-color: var(--brand-primary);
	border-color: var(--brand-primary);
	color: var(--white);
}

.hero-content .is-style-secondary-brand .wp-block-button__link:active {
	background-color: color-mix(in srgb, var(--brand-primary) 78%, black);
	border-color: color-mix(in srgb, var(--brand-primary) 78%, black);
	color: var(--white);
}

@media (max-width: 767.98px) {
	.hero-pad {
		padding-top: 112px;
		padding-bottom: 1rem;
	}

	.hero-content {
		max-width: 100%;
	}
}
