/* =========================================================
   Full-Screen Homepage Hero
   ========================================================= */
@keyframes backgroundDrift {
	0%, 100% { background-position: center; }
	50% { background-position: calc(center + 10px) calc(center + 10px); }
}

@keyframes lazyLoadFade {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

.hero {
	position: relative;
	min-height: clamp(480px, 75vh, 800px);
	display: flex;
	align-items: center;
	background: var(--color-dark) center / cover no-repeat;
	animation: backgroundDrift 15s ease-in-out infinite;
	overflow: hidden;
	margin-top: calc(var(--header-height) * -1);
	padding-top: var(--header-height);
	width: 100%;
	box-sizing: border-box;
}

body.admin-bar .hero {
	padding-top: calc(var(--header-height) + 32px);
}

@media (max-width: 782px) {
	body.admin-bar .hero {
		padding-top: calc(var(--header-height) + 46px);
	}
}

.hero--dark {
	background: #292b30 center / cover no-repeat;
}

.hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		rgba(249, 154, 54, 0.08) 0%,
		rgba(41, 43, 48, 0.75) 100%
	);
}

.hero--dark .hero__overlay {
	background: linear-gradient(
		135deg,
		var(--hero-overlay-start, rgba(100, 100, 110, 0.3)) 0%,
		var(--hero-overlay-end, rgba(80, 80, 95, 0.7)) 100%
	);
}

.hero__wrapper {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: clamp(2rem, 5vw, 4rem);
	padding-block: clamp(3rem, 8vw, 6rem);
}

.hero__content {
	flex: 1;
	max-width: 600px;
}

.hero__image-wrapper {
	flex: 0 1 auto;
	display: none;
	position: relative;
	width: 100%;
	max-width: 450px;
	height: clamp(400px, 60vh, 600px);
}

.hero__image-pile {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hero__image-card {
	position: absolute;
	width: 100%;
	max-width: 380px;
	height: 420px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(calc((var(--card-index) - 2) * 8deg)) translateY(calc((var(--card-index) - 1) * 15px));
	transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.5s ease;
	filter: drop-shadow(0 4px 12px rgba(0,0,0,0.15));
	z-index: calc(4 - var(--card-index));
	animation: lazyLoadFade 0.6s ease-out 0.25s both;
}

.hero__image-pile:hover .hero__image-card:nth-child(1) {
	transform: translate(-180px, -50%) rotate(-15deg) scale(1.05);
	filter: drop-shadow(0 8px 20px rgba(0,0,0,0.2));
}

.hero__image-pile:hover .hero__image-card:nth-child(2) {
	transform: translate(-50%, -50%) rotate(0deg) scale(1.05);
	filter: drop-shadow(0 8px 20px rgba(0,0,0,0.2));
}

.hero__image-pile:hover .hero__image-card:nth-child(3) {
	transform: translate(80px, -50%) rotate(15deg) scale(1.05);
	filter: drop-shadow(0 8px 20px rgba(0,0,0,0.2));
}

.hero__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius-lg);
}

@media (min-width: 1024px) {
	.hero__image-wrapper {
		display: block;
	}
}

.hero__eyebrow {
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 900;
	letter-spacing: .25em;
	text-transform: uppercase;
	color: var(--color-primary);
	margin-bottom: .75rem;
}

.hero__title {
	font-family: var(--font-display);
	font-weight: 900;
	color: var(--color-text-inv);
	font-size: clamp(2rem, 5vw, 3.3rem);
	line-height: 1.05;
	margin-bottom: 1rem;
}

.hero__title .accent {
	color: var(--color-primary);
}

.hero__subtitle {
	color: rgba(255,255,255,.65);
	font-size: clamp(.875rem, 2vw, .9375rem);
	max-width: 440px;
	margin-bottom: 2rem;
	line-height: 1.7;
	animation: fadeIn 0.6s ease-out 0.25s both;
}

.hero__cta {
	display: inline-flex;
	gap: .75rem;
	flex-wrap: wrap;
}

/* =========================================================
   Single Event Hero (image + overlay)
   ========================================================= */
.event-hero {
	position: relative;
	min-height: clamp(320px, 50vh, 600px);
	background: var(--color-dark);
	overflow: hidden;
}

.event-hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.event-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(18,16,26,.2) 0%,
		rgba(18,16,26,.85) 100%
	);
	display: flex;
	align-items: flex-end;
}

.event-hero__content {
	position: relative;
	z-index: 1;
	padding-bottom: clamp(2rem, 5vw, 3.5rem);
	padding-top: 2rem;
}

.event-hero__content .badge {
	margin-bottom: .75rem;
}

.event-hero__title {
	color: var(--color-text-inv);
	font-size: clamp(1.75rem, 4vw, 3rem);
	text-shadow: 0 2px 12px rgba(0,0,0,.5);
	margin-bottom: .75rem;
}

.event-hero__date {
	color: var(--color-secondary);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 1.0625rem;
	margin-bottom: .25rem;
}

.event-hero__venue {
	color: rgba(255,255,255,.8);
	font-size: 1rem;
}
