/*
======================================================================
Much Ado
Hero
======================================================================
*/

.hero{
	position:relative;
	display:flex;
	align-items:center;
	min-height:100vh;
	overflow:hidden;
}

.hero__image{
	position:absolute;
	inset:0;
	z-index:1;
	width:100%;
	height:100%;
	object-fit:cover;
}

.page__thumbnail-overlay,
.program-header-overlay,
.hero__overlay{
	position:absolute;
	inset:0;
	z-index:2;
	background:linear-gradient(
		to top,
		rgba(23, 23, 23, .9) 0%,
		rgba(23, 23, 23, .35) 45%,
		rgba(23, 23, 23, .35) 80%,
		rgba(0,0,0,.55) 100%
	);
}

.hero__container{
	position:relative;
	z-index:3;
	display:grid;
	grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);
	align-items:center;
	gap:clamp(2rem,6vw,7rem);
	width:100%;
}

.hero__content{
	position:absolute;
	inset:0;
	z-index:3;
	display:flex;
	align-items:center;
	max-width:var(--container-hero);
	padding-top:var(--header-height);
}

.hero__title,
.page__title,
.program-header-content h1,
.play-header-content h1{
	margin:0;
	font-size:clamp(3rem,6vw,5.5rem);
	font-weight:700;
	line-height:.9;
	color:var(--color-crown);
}

.program-intro,
.hero__text{
	font-size:var(--fs-hero-text);
	line-height:1.1;
	color:var(--color-white);
	text-shadow:0 0 4px var(--color-black);
}

.hero__text{
	max-width:40rem;
	margin-bottom:var(--space-32);
}

.hero__button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
}

.hero__scroll{
	position:absolute;
	left:50%;
	bottom:var(--space-24);
	z-index:3;
	transform:translateX(-50%);
	font-size:var(--fs-sm);
	letter-spacing:.15em;
	text-transform:uppercase;
	color:var(--color-white);
	opacity:.8;
	animation:hero-scroll 2s ease-in-out infinite;
}

.hero__scroll::after{
	content:"";
	display:block;
	width:1px;
	height:40px;
	margin:.75rem auto 0;
	background:currentColor;
}

@keyframes hero-scroll{
	0%,
	100%{
		transform:translate(-50%,0);
	}

	50%{
		transform:translate(-50%,8px);
	}
}

.hero__panel{
	max-width:calc(var(--container-hero) * .62);
	padding:3rem;
	border-left:4px solid var(--color-primary);
	background:rgba(0,0,0,.45);
	backdrop-filter:blur(10px);
}

.hero__eyebrow{
	margin-bottom:var(--space-12);
	color:var(--color-white);
	font-weight:700;
	letter-spacing:.12em;
	font-size:var(--fs-base);
}

.hero__eyebrow,
a.button{
	font-family:var(--font-body);
	text-transform:uppercase;
}

.hero__subtitle{
	margin:1rem 0;
	font-family:var(--font-heading);
	font-size:var(--fs-xl);
	color:var(--color-textdarker);
}

.hero__buttons{
	display:flex;
	flex-wrap:wrap;
	gap:1rem;
	justify-content: center;
}

/* =====================================================
   Tablet
===================================================== */

@media (max-width:1024px){

	.hero{
		min-height:100svh;
	}

	.hero__content{
		position:absolute;
		inset:0;

		display:flex;
		align-items:center;

		width:100%;
		max-width:none;

		padding:var(--header-height) 3rem 3rem;
	}

	.hero__left{
		flex:0 0 55%;
		max-width:55%;
	}

	.hero__right{
		flex:0 0 45%;
		max-width:45%;
		padding-left:3rem;
	}

	.hero__title,
	.page__title{
		font-size:clamp(3rem,6vw,4.5rem);
	}

	.hero__subtitle{
		font-size:1.6rem;
	}
}


/* =====================================================
   Mobile
===================================================== */

@media (max-width:768px){

	.hero{
		height:100svh;
		min-height:100svh;
		align-items:flex-start;
	}

	.hero__overlay{
		background:rgba(0,0,0,.55);
	}

	.hero__content.container{
		width:100%;
		max-width:100%;
		margin:0;
		padding:
			calc(var(--header-height) + 1rem)
			1.5rem
			2rem;
	}

	.hero__content{
		position:absolute;
		inset:0;

		display:grid;
		grid-template-rows:1fr 1fr;
	}

	/* Annule complètement le media 1024 */

	.hero__left,
	.hero__right{
		flex:none;
		width:100%;
		height:50vh;
		max-width:none;
		padding:0;
	}

	.hero__left{
		display:flex;
		flex-direction:column;
		justify-content:flex-end;
		padding-bottom:2rem;
	}

	.hero__right{
		display:flex;
		flex-direction:column;
		justify-content:flex-start;
	}

	.hero__title,
	.page__title{
		font-size:clamp(2.4rem,10vw,3.3rem);
		line-height:1;
		margin-bottom:.5rem;
	}

	.hero__subtitle{
		margin:.75rem 0 0;
		font-size:1.15rem;
	}

	.hero__text{
		max-width:none;
		font-size:var(--fs-hero-text);
		margin:0;
	}

	.hero__buttons{
		display:flex;
		flex-direction:column;
		gap:1rem;
		margin-top:2rem;
	}

	.hero__buttons .button{
		width:100%;
	}

	.hero__scroll{
		display:none;
	}
}

/* =====================================================
   Mobile landscape
===================================================== */

@media (max-width:900px) and (orientation:landscape){

	.hero{
		height:100svh;
		min-height:100svh;
	}

	.hero__content{
		display:grid;
		grid-template-columns:1fr 1fr;
		grid-template-rows:none;
		align-items:center;
		gap:2rem;

		padding:
			calc(var(--header-height) + .5rem)
			2rem
			1rem;
	}

	.hero__left,
	.hero__right{
		width:100%;
		max-width:none;
		padding:0;
	}

	.hero__left{
		display:flex;
		flex-direction:column;
		justify-content:flex-end;
	}

	.hero__right{
		display:flex;
		flex-direction:column;
		justify-content:center;
	}

	.hero__eyebrow{
		font-size:.75rem;
		margin-bottom:.5rem;
	}

	.hero__title{
		font-size:clamp(2rem,5vw,3rem);
		line-height:.95;
	}

	.hero__subtitle{
		font-size:1rem;
		margin:.5rem 0 0;
	}

	.hero__text{
		font-size:var(--fs-hero-text);
		line-height:1.1;
		margin:0;
	}

	.hero__buttons{
		margin-top:1rem;
		gap:.75rem;
	}

	.hero__buttons .button{
		padding:.8rem 1.5rem;
		font-size:.9rem;
	}
}

/* =====================================================
   Small phones
===================================================== */

@media (max-width:480px){

	.hero__content.container{
		padding:
			calc(var(--header-height) + .75rem)
			1.25rem
			1.5rem;
	}

	.hero__title,
	.page__title{
		font-size:2.1rem;
	}

	.hero__subtitle{
		font-size:1rem;
	}

	.hero__text{
		font-size:var(--fs-hero-text);
	}

	.hero__eyebrow{
		font-size:.8rem;
	}
}