/* ABOUTME: Styles for hero header sections (full tiles, gradient, image storm). */
/* ABOUTME: Controls hero height, background positioning, and shared content/booking layout. */
section.hero-section {
	height: 75vh;
	margin-bottom: 6vh;
}

.hero-section {
	position: relative;
	padding-block: 2vw 0;
}

.hero-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: inherit;
	z-index: 0;
}

section.hero-section .hero-layout.content_wrapper {
	position: relative;
	z-index: 99;
	max-width: var(--mcw);
	width: 100%;
	min-height: 75vh;
	margin-inline: auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--rcg);
	align-items: start;
}

section.hero-section .hero-copy.column {
	align-self: start;
	justify-self: start;
}

section.hero-section .hero-booking {
	align-self: end;
	justify-self: end;
	margin-bottom: 10vh;
	z-index: 100;
}

section.hero-section .hero-booking form.booking-form {
	margin-top: 0;
}

section.hero-type-header_gradient::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		120deg,
		rgba(99, 199, 210, 1) 0%,
		rgba(99, 199, 210, 0.8) 50%,
		rgba(42, 123, 155, 0) 100%
	);
	z-index: 1;
	pointer-events: none;
}

section.hero-type-header_gradient {
	height: auto;
	min-height: 75vh;
	padding-block: 2vw 0;
}

.hero-section .column {
	max-width: 560px;
}

section.hero-type-header_full_tiles {
	margin-inline: 1rem;
	margin-top: calc(70px + 1rem);
	border-radius: var(--rbr);
	overflow: hidden;
}

section.section--card-background-colored.hero-type-header_full_tiles
	.content_wrapper {
	background-color: transparent !important;
}

.hero-type-header_full_tiles .content_wrapper .column {
	background-color: var(--card-bg-color, #efefef);
	padding: 2rem;
	opacity: 0.95;
	border-radius: var(--rbr);
}

section.regular_section.section--header_image_storm .hero-layout {
	z-index: 99;
	padding: 0;
}

section.regular_section.section--header_image_storm .hero-copy {
	background-color: var(--card-bg-color, #efefef);
	padding: 2vw;
	max-width: none;
	overflow-wrap: break-word;
	hyphens: auto;
	border-radius: var(--rbr);
	max-width: 70ch;
}

section.section--card-background-colored.section--header_image_storm
	.hero-layout {
	background-color: transparent !important;
}

@media screen and (max-width: 1023px) {
	section.hero-section .hero-layout.content_wrapper {
		grid-template-columns: 1fr;
		align-content: start;
		gap: calc(var(--rcg) * 2);
	}

	section.hero-section .hero-booking {
		align-self: start;
		justify-self: end;
		margin-bottom: 0;
	}
}

@media screen and (max-width: 768px) {
	section.hero-section {
		height: auto;
		margin-bottom: 2vh;
	}

	section.regular_section.section--header_image_storm .hero-layout {
		width: auto;
		z-index: auto;
		margin-block: 1rem;
	}

	section.regular_section.section--header_image_storm .hero-copy {
		width: auto;
	}
}

section.regular_section.section--header_image_storm
	.image-storm__item.image-storm__item_2 {
	top: 50%;
}

section.regular_section.section--header_image_storm
	.image-storm__item.image-storm__item_1 {
	top: 60%;
}

section.hero-type-header_gradient .hero-booking {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: clamp(1rem, 2vw, 2rem);
}

section.hero-type-header_gradient .background_illustration {
	position: relative;
	/* width: clamp(220px, 28vw, 420px);
	height: clamp(120px, 18vh, 240px); */
	overflow: hidden;
	z-index: auto;
	pointer-events: none;
	flex: 0 0 auto;
	position: absolute;
	left: -10px;
	bottom: 20px;
	z-index: 9;
	width: 100vw;
}

section.hero-type-header_gradient .background_illustration svg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

@media screen and (min-width: 1024px) {
	section.hero-section .hero-layout.content_wrapper {
		grid-template-rows: auto 1fr;
	}

	section.hero-section .hero-copy.column {
		grid-row: 1;
	}

	section.hero-section .hero-booking {
		grid-row: 2;
		align-self: end;
		justify-self: end;
	}

	section.hero-type-header_gradient .hero-layout.content_wrapper {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	section.hero-type-header_gradient .hero-copy.column {
		grid-column: 1 / -1;
	}

	section.hero-type-header_gradient .background_illustration {
		width: 75vw;
		height: auto;
		overflow: visible;
		pointer-events: none;
	}

	section.hero-type-header_gradient .hero-booking {
		grid-column: 2;
		grid-row: 2;
	}

	section.hero-type-header_gradient .background_illustration svg {
		width: 100%;
		height: auto;
		object-fit: contain;
		object-position: center;
	}
}

@media screen and (max-width: 767px) {
	section.hero-type-header_gradient {
		height: auto;
		min-height: auto;
		padding-block: 0;
	}

	section.hero-type-header_gradient .hero-layout.content_wrapper {
		min-height: auto;
	}

	section.hero-type-header_gradient .hero-booking {
		align-items: center;
		justify-self: center;
		width: 100%;
		padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
	}

	section.hero-type-header_gradient .background_illustration {
		position: relative;
	}
}
