/* ---------------------------------------------------------------------------
 * Blok: Pagina-hero (Figma 147:9618, dienstenpagina 141:12164).
 * Donkerblauwe paginakop voor gewone pagina's: breadcrumbs, h1 met blauw
 * accent, intro en knoppen links; rechts een foto (687x512, radius 25) in een
 * kaart met blauw offset-kader (-31/-35). Onderaan dezelfde footer-ellips als
 * curve naar de lichte zone, links het vink-watermerk. Zelfde patronen en
 * posities als de case-hero (weergave foto rechts), alleen zonder de
 * detailkaart eronder. Mobiel zelf ingevuld in lijn met de case-hero
 * (foto onder de tekst, kleinere koppen).
 * ------------------------------------------------------------------------- */

.blok-pagina-hero {
	position: relative;
	/* De foto en het offset-kader lopen op smalle schermen tegen de rand aan;
	 * clip voorkomt horizontale scroll zonder schaduwen af te snijden. */
	overflow-x: clip;
	/* Vaste blokruimte (inc/blok-ritme.php): het volgende blok begint zonder
	 * eigen bovenruimte. De curve (5.885vw hoog, bijna helemaal licht) telt
	 * mee, zodat de inhoud eronder op de blokafstand van de curvekruin staat. */
	padding-bottom: max(0px, calc(var(--blok-pb) - 5.885vw));
}

.blok-pagina-hero__donker {
	position: relative;
	background: var(--c-donkerblauw);
	color: var(--c-wit);
	padding-top: 36px;
}

/* --------------------------------------------------------------------------
 * Watermerk-vink in de achtergrond (zelfde plek als in de case-hero)
 * ------------------------------------------------------------------------ */

.blok-pagina-hero__decor {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	color: var(--c-blauw); /* de watermerk-SVG kleurt mee via currentColor */
}

.blok-pagina-hero__watermerk {
	position: absolute;
	left: calc(50% - 876px);
	top: 14px;
	width: 375.9px;
	height: 346.7px;
	display: block;
}

.blok-pagina-hero__watermerk svg {
	width: 100%;
	height: 100%;
}

.blok-pagina-hero__binnen {
	position: relative;
}

/* --------------------------------------------------------------------------
 * Breadcrumbs (Rank Math): witte links, chevron-pijltjes via CSS-mask omdat
 * de separator door wp_kses_post gaat en losse SVG daar niet doorheen komt.
 * ------------------------------------------------------------------------ */

.blok-pagina-hero__kruimels {
	font-size: var(--fs-s);
	font-weight: 600;
	line-height: 32px;
}

.blok-pagina-hero__kruimels p {
	margin: 0;
}

.blok-pagina-hero__kruimels a {
	color: var(--c-wit);
	text-decoration: none;
	transition: color var(--dur-kort) var(--ease-out);
}

.blok-pagina-hero__kruimels a:hover {
	color: var(--c-blauw);
}

.blok-pagina-hero__kruimels .separator {
	display: inline-flex;
	align-items: center;
	margin-inline: 10px;
	/* Optisch gecentreerd op de kapitaalhoogte: vertical-align middle rekent
	 * met de x-hoogte en zet de chevron net te laag. */
	vertical-align: middle;
	translate: 0 -1.5px;
}

.blok-pagina-hero__kruimel-pijl {
	display: inline-block;
	width: 7px;
	height: 12px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 12'%3E%3Cpath d='M1.4 0 7 6 1.4 12 0 10.6 4.6 6 0 1.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 12'%3E%3Cpath d='M1.4 0 7 6 1.4 12 0 10.6 4.6 6 0 1.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* --------------------------------------------------------------------------
 * Tekstkolom
 * ------------------------------------------------------------------------ */

.blok-pagina-hero__kolommen {
	display: flex;
	flex-direction: column;
}

.blok-pagina-hero__tekst {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 21px;
	margin-top: 24px;
	max-width: 569px;
}

.blok-pagina-hero__titel {
	margin: 0;
	font-size: clamp(34px, 2.71vw, 52px);
	line-height: 1.077; /* 56/52 uit het ontwerp */
	color: var(--c-wit);
}

.blok-pagina-hero__intro {
	color: var(--c-wit);
}

/* Lange koppen (meer dan 55 tekens, zie de template): kleiner, zodat de
 * kop op desktop in vier regels past in plaats van zes. */
.blok-pagina-hero--lange-titel .blok-pagina-hero__titel {
	font-size: clamp(30px, 2.2vw, 42px);
	line-height: 1.14;
}

.blok-pagina-hero__knoppen {
	display: flex;
	flex-wrap: wrap;
	gap: 19px;
}

/* --------------------------------------------------------------------------
 * Foto met blauw offset-kader
 * ------------------------------------------------------------------------ */

.blok-pagina-hero__media {
	position: relative;
	margin: 47px 0 4px 16px;
	z-index: 1;
}

.blok-pagina-hero__media::before {
	content: "";
	position: absolute;
	top: -16px;
	left: -16px;
	width: 100%;
	height: 100%;
	border-radius: 25px;
	background: var(--c-blauw);
}

.blok-pagina-hero__foto {
	position: relative;
	border-radius: 25px;
	overflow: clip;
	aspect-ratio: 687 / 512;
}

.blok-pagina-hero__foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Optioneel kaartje met een kernfeit dat linksonder over de foto hangt. */
.blok-pagina-hero__badge {
	position: absolute;
	left: -44px;
	bottom: 36px;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: 300px;
	margin: 0;
	padding: 16px 24px 16px 16px;
	border-radius: var(--radius-kaart);
	background: var(--c-wit);
	box-shadow: 0 24px 50px rgb(12 26 36 / 30%);
	color: var(--c-donkerblauw);
}

.blok-pagina-hero__badge-icoon {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 12px;
	background: var(--c-blauw);
	color: var(--c-wit);
}

.blok-pagina-hero__badge-icoon svg {
	width: 28px;
	height: auto;
}

.blok-pagina-hero__badge-tekst {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.blok-pagina-hero__badge-tekst strong {
	font-size: 26px;
	line-height: 1.15;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.blok-pagina-hero__badge-tekst span {
	font-size: var(--fs-s);
	line-height: 1.4;
	color: var(--c-grijs-4);
}

@media (max-width: 767px) {
	.blok-pagina-hero__badge {
		left: 12px;
		bottom: -22px;
		gap: 12px;
		max-width: calc(100% - 24px);
		padding: 12px 18px 12px 12px;
	}

	.blok-pagina-hero__badge-icoon {
		width: 42px;
		height: 42px;
	}

	.blok-pagina-hero__badge-icoon svg {
		width: 22px;
	}

	.blok-pagina-hero__badge-tekst strong {
		font-size: 20px;
	}
}

/* --------------------------------------------------------------------------
 * Curve naar de lichte zone (footer-ellips, verticaal gespiegeld)
 * ------------------------------------------------------------------------ */

.blok-pagina-hero__curve {
	margin-top: -1px; /* voorkomt een haarlijn tussen vlak en curve */
}

.blok-pagina-hero__curve svg {
	display: block;
	width: 100%;
	height: auto;
}

/* Zelfde ellips als de footer-curve, maar hier is het donkere vlak boven de
 * boog en vult de lichte ellips de onderkant (zoals in het ontwerp). */
.blok-pagina-hero__curve rect {
	fill: var(--c-donkerblauw);
}

.blok-pagina-hero__curve ellipse {
	fill: var(--c-grijs-1);
}

/* --------------------------------------------------------------------------
 * Desktop (vanaf 1200px): maten uit het 1920-ontwerp. De foto hangt absoluut
 * rechts in de wrapper en loopt over de curve heen; het donkere vlak eindigt
 * op 587px (751px minus de header van 164px), daarna 113px curve.
 * ------------------------------------------------------------------------ */

@media (min-width: 1200px) {
	.blok-pagina-hero__donker {
		min-height: 587px;
		padding-top: 51px;
		/* Valt binnen de min-hoogte (border-box), dus pagina's met een korte
		 * kop houden de ontwerpmaat. Wordt de tekst langer, dan groeit het
		 * donkere vlak mee en houden de knoppen de blokafstand tot de curve
		 * (feedback designer: knoppen niet tegen de rand). */
		padding-bottom: var(--blok-ruimte);
	}

	.blok-pagina-hero__tekst {
		margin-top: 78px;
	}

	.blok-pagina-hero__media {
		position: absolute;
		/* 103px onder de wrapper (die na 51px padding begint): foto-inkt op
		 * 318px vanaf de paginatop, zoals in het ontwerp (317.7). Groeit het
		 * donkere vlak door een lange kop, dan zakt de foto mee: hij hangt
		 * altijd 79px over de curve (433 = 512 foto - 79 overhang). */
		top: max(103px, calc(100% + var(--blok-ruimte) - 433px));
		right: var(--gutter);
		width: min(687px, 46vw);
		margin: 0;
	}

	.blok-pagina-hero__media::before {
		top: -31px;
		left: -35px;
	}

	.blok-pagina-hero__foto {
		height: 512px;
		aspect-ratio: auto;
	}

	/* De foto hangt over de curve (onderkant 79px onder het donkere vlak van
	 * 587px). Dan is de foto de laagste inhoud: het volgende blok begint op de
	 * blokafstand onder de foto. */
	.blok-pagina-hero:not(.blok-pagina-hero--zonder-beeld) {
		padding-bottom: max(0px, calc(var(--blok-pb) + 79px - 5.885vw));
	}
}

/* --------------------------------------------------------------------------
 * Mobiel (ontwerp toont alleen desktop; zelf ingevuld zoals de case-hero):
 * foto onder de tekst, kleinere breadcrumbs en kop.
 * ------------------------------------------------------------------------ */

@media (max-width: 767px) {
	.blok-pagina-hero__donker {
		padding-top: 28px;
	}

	.blok-pagina-hero__watermerk {
		left: -60px;
		top: 12px;
		width: 220px;
		height: 203px;
	}

	.blok-pagina-hero__kruimels {
		font-size: 13px;
		line-height: 24px;
	}

	.blok-pagina-hero__tekst {
		margin-top: 24px;
		gap: 20px;
	}

	.blok-pagina-hero__media {
		margin: 44px 0 4px 16px;
	}
}

/* --------------------------------------------------------------------------
 * Zonder foto (overgenomen pagina's): het donkere vlak hoeft dan niet de
 * hoogte van de fotomontage te houden, anders staat er een groot leeg vlak
 * onder de titel.
 * ------------------------------------------------------------------------ */

@media (min-width: 1200px) {
	.blok-pagina-hero--zonder-beeld .blok-pagina-hero__donker {
		min-height: 0;
	}

	.blok-pagina-hero--zonder-beeld .blok-pagina-hero__tekst {
		margin-top: 40px;
	}
}

.blok-pagina-hero--zonder-beeld .blok-pagina-hero__kolommen {
	display: block;
}

/* --------------------------------------------------------------------------
 * Met overlappende contactkaarten eronder (contactpagina) blijft de oude
 * lichte zone onder de curve staan: de negatieve marge van de kaarten in
 * contact_kaarten.css is daarop afgestemd (295px overlap + 67px).
 * ------------------------------------------------------------------------ */

.blok-pagina-hero:has(+ .blok-contact-kaarten--overlap),
.blok-pagina-hero:not(.blok-pagina-hero--zonder-beeld):has(+ .blok-contact-kaarten--overlap) {
	padding-bottom: 67px;
}

@media (max-width: 767px) {
	.blok-pagina-hero:has(+ .blok-contact-kaarten--overlap),
	.blok-pagina-hero:not(.blok-pagina-hero--zonder-beeld):has(+ .blok-contact-kaarten--overlap) {
		padding-bottom: 34px;
	}
}
