/* ==========================================================================
   Hero sectie
   ========================================================================== */

.hero {
	width: 100%;
	height: calc(100vh - 64px);
	display: flex;
	justify-content: flex-start;
	align-items: center;
	background-color: var(--ms-blue);
	border-radius: var(--ms-radius-lg);
	overflow: hidden;
	position: relative;
}
.admin-bar .hero { height: calc(100vh - 96px); }

.hero__content {
	width: 100%;
	color: var(--ms-sand);
	padding: 100px;
	position: relative;
	z-index: 3;
}
.hero__content__cta {
	display: flex;
	align-items: center;
	gap: 60px;
}

.hero h1 {
	font-size: 100px;
	line-height: 1;
	font-family: var(--ms-font-display);
	margin-bottom: 40px;
}
.hero h2 {
	font-size: 30px;
	font-weight: normal;
	opacity: 0.75;
	margin-bottom: 60px;
}
.hero h3 {
	font-weight: normal;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--ms-orange);
}
.hero__content__cta__logo svg { width: 300px; }
.hero__content svg path { fill: var(--ms-sand); }

.hero__background {
	width: 100%;
	height: 100%;
	border-radius: var(--ms-radius-lg);
	mix-blend-mode: multiply;
	opacity: 0.3;
	overflow: hidden;
	position: absolute;
	inset: 0;
	z-index: 1;
}
.hero__background img {
	width: 110%;
	height: 110%;
	object-fit: cover;
	transform: scale(1.1);
	position: absolute;
	inset: 0;
	transition: transform 0.1s ease-out;
	will-change: transform;
}
.hero__background video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	inset: 0;
}
.hero__gradient {
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, rgba(35,81,107,1) 0%, rgba(35,81,107,0) 100%);
	position: absolute;
	inset: 0;
	z-index: 2;
}

/* Nudge — telefoon kaartje rechtsonder */
.hero__nudge {
	width: 350px;
	height: 120px;
	background-color: var(--ms-sand);
	display: flex;
	align-items: center;
	padding-left: 25px;
	border-radius: 32px 0 0 0;
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: 4;
}
.hero__nudge svg { display: block; }
.hero__nudge svg path { fill: var(--ms-sand); }
.hero__nudge__top-right {
	position: absolute;
	right: 0;
	top: -32px;
}
.hero__nudge__bottom-left {
	position: absolute;
	left: -32px;
	bottom: 0;
}

/* Callme knop */
.callme {
	display: flex;
	align-items: center;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.callme:hover figure { transform: scale(1.1); }

.callme figure {
	width: 80px;
	height: 80px;
	margin-right: 15px;
	position: relative;
	transition: all .2s ease-out;
}
.callme__status {
	width: 16px;
	height: 16px;
	border-radius: 8px;
	background-color: var(--ms-green);
	z-index: 2;
	position: absolute;
	top: 5px;
	right: 5px;
}
.callme figure img {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	border: 2px solid #fff;
	box-shadow: 0 4px 4px rgba(0,0,0,0.25);
	object-fit: cover;
	position: absolute;
	inset: 0;
}
.callme figure::after {
	content: '';
	width: 100%;
	height: 100%;
	border-radius: 50%;
	mix-blend-mode: multiply;
	background-color: var(--ms-sand-shadow);
	z-index: 1;
	position: absolute;
	inset: 0;
}
.callme__content { text-align: left; }
.callme__content__name {
	font-size: 18px;
	font-weight: bold;
	margin-bottom: 5px;
}
.callme__content__phone {
	font-size: 18px;
	color: var(--ms-green);
	display: flex;
	align-items: center;
}
.callme__content__phone svg {
	width: 12px;
	height: 12px;
	margin-left: 5px;
}
.callme__content__phone svg path { fill: var(--ms-green); }

/* Intro animatie */
.hero h1, .hero h2, .hero__content__cta__logo svg, .hero .button {
	opacity: 0;
	animation-fill-mode: forwards;
	animation-timing-function: ease-out;
}

.hero h1 {
	animation-name: fadeInUp;
	animation-duration: 0.8s;
	animation-delay: 0.2s;
}
.hero h2 {
	animation-name: fadeInH2;
	animation-duration: 0.8s;
	animation-delay: 0.7s;
}
.hero__content__cta__logo svg {
	animation-name: fadeInFull;
	animation-duration: 0.8s;
	animation-delay: 1.2s;
}
.hero .button {
	animation-name: fadeInPart;
	animation-duration: 0.8s;
	animation-delay: 1.7s;
}

@keyframes fadeInUp {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInH2 {
	from { opacity: 0; }
	to   { opacity: 0.75; }
}
@keyframes fadeInFull {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes fadeInPart {
	from { opacity: 0; }
	to   { opacity: 0.9; }
}

/* ==========================================================================
   Mobiel — hero
   ========================================================================== */

@media (max-width: 768px) {
	.hero {
		height: auto;
		align-items: flex-start;
		margin-bottom: 130px;
		overflow: visible;
	}
	.hero__content { padding: 70px 30px; }
	.hero h1 { font-size: 40px; margin-bottom: 20px; line-height: 0.9; }
	.hero h2 { font-size: 20px; margin-bottom: 0; line-height: 1.3; }
	.hero h3 { font-size: 18px; }
	.hero__content__cta { align-items: flex-start; flex-direction: column; gap: 0; }
	.hero__content__cta__logo svg { width: 80%; }
	.hero__gradient {
		border-radius: var(--ms-radius-lg);
		background: linear-gradient(180deg, rgba(35,81,107,1) 0%, rgba(35,81,107,0) 100%);
	}
	.hero__nudge__top-right, .hero__nudge__bottom-left { display: none; }
	.hero__nudge {
		justify-content: center;
		border-radius: var(--ms-radius-lg);
		width: 100%;
		position: absolute;
		left: -20px;
		right: -20px;
		bottom: -130px;
		background-color: var(--ms-sand);
	}
	.hero .button {
		margin-top: -20px;
		padding: 15px 30px;
	}
}
