/**
 * Site-header — sticky shell, rustige transitions, géén layout-shift door vaste rails.
 * De vroegere `header-topbar` (openingstijden + reviews + tel/WA) is bewust verwijderd: tel,
 * WhatsApp en spoed staan in `.site-header__actions` zelf en het mobiele menu — strakker.
 */

:root {
	--effective-site-header-main: var(--site-header-h);
	/* Fallback vóór JS-meting (drawer onder sticky shell); overschreven door navigation.js */
	--mobile-nav-drawer-top: var(--effective-site-header-main);
	--admin-bar-offset: 0px;
	--sticky-rail-gap: var(--space-6);
	--site-sticky-below-header: calc(
		var(--admin-bar-offset) + var(--mobile-nav-drawer-top) + var(--sticky-rail-gap)
	);
}

html.header-scroll-compact {
	--effective-site-header-main: var(--site-header-h-compact);
	--mobile-nav-drawer-top: var(--site-header-h-compact);
}

.site-header-shell {
	--shell-shadow: var(--shadow-header);
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	display: flex;
	flex-direction: column;
	background: var(--color-background);
	box-shadow: var(--shell-shadow);
	transition: box-shadow var(--transition-header);
}

/* Subtiele NL-verwijzing — één dunne tricolor boven de header */
.site-header-shell__ribbon {
	flex-shrink: 0;
	height: 3px;
	background: linear-gradient(
		90deg,
		var(--color-accent) 0 33.33%,
		var(--color-surface) 33.33% 66.66%,
		var(--color-brand) 66.66% 100%
	);
}

body.admin-bar {
	--admin-bar-offset: 32px;
}

body.admin-bar .site-header-shell {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar {
		--admin-bar-offset: 46px;
	}

	body.admin-bar .site-header-shell {
		top: 46px;
	}
}

.site-header-shell--compact {
	--shell-shadow: var(--shadow-header-scrolled);
}

/* Primaire rij --------------------------------------------------------------- */

/* Hello Elementor header-footer.css zet .site-header op flex+wrap — breekt onze grid op mobiel */
.site-header-shell > .site-header {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.site-header {
	min-height: var(--effective-site-header-main);
	height: auto;
	background: linear-gradient(
		180deg,
		var(--color-surface) 0%,
		color-mix(in srgb, var(--color-surface-soft) 55%, var(--color-surface)) 100%
	);
	border-bottom: 1px solid color-mix(in srgb, var(--color-brand) 8%, var(--color-border));
	padding-block: 0.5rem;
	box-sizing: border-box;
	transition:
		min-height var(--transition-header),
		box-shadow var(--transition-header),
		border-color var(--transition-header),
		opacity 0.2s ease;
}

.site-header-shell--compact .site-header {
	box-shadow: none;
	border-bottom-color: rgba(229, 231, 235, 0.85);
}

.site-header__inner {
	display: grid;
	grid-template-columns: auto minmax(240px, 1fr) auto;
	align-items: center;
	column-gap: var(--space-4) clamp(var(--space-4), 4vw, var(--space-8));
	row-gap: var(--space-3);
	min-height: calc(var(--effective-site-header-main) - 0.8rem);
	height: auto;
	box-sizing: border-box;
}

@media (min-width: 1400px) {
	.site-header__inner {
		grid-template-columns: auto minmax(320px, 1fr) auto;
	}
}

@media (max-width: 1160px) {
	.site-header__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto;
		grid-template-areas:
			'brand actions'
			'nav nav';
		column-gap: var(--space-3);
		min-height: 0;
	}

	.site-header__brand {
		grid-area: brand;
	}

	.site-header__actions {
		grid-area: actions;
	}

	.primary-nav {
		grid-area: nav;
		justify-self: stretch;
	}
}

.site-header__brand {
	flex-shrink: 0;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--space-3);
	min-width: 0;
	max-width: min(100%, 300px);
	width: auto;
	transition: opacity var(--transition-header);
}

.site-header__brand-mark {
	flex-shrink: 0;
	width: 4px;
	align-self: stretch;
	min-height: 2.75rem;
	border-radius: var(--radius-pill);
	background: linear-gradient(
		180deg,
		var(--color-accent) 0 33.33%,
		var(--color-surface) 33.33% 66.66%,
		var(--color-brand) 66.66% 100%
	);
}

.site-header__brand-body {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.site-header__cred {
	margin: 0;
	font-size: var(--text-xs);
	font-weight: 600;
	color: var(--color-brand);
	line-height: 1.25;
	opacity: 0.88;
	max-width: 14rem;
}

@media (max-width: 967px) {
	.site-header__cred,
	.site-header__brand-mark {
		display: none;
	}
}

html.header-scroll-compact .site-header__cred {
	display: none;
}

.site-header__brand .custom-logo-link {
	display: block;
	line-height: 0;
	width: fit-content;
	max-width: min(268px, 100%);
	overflow: visible;
}

.site-header__brand .custom-logo-link:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 4px;
	border-radius: 2px;
}

.site-header__brand .custom-logo-link img.custom-logo-img--header {
	height: var(--site-logo-h);
	width: auto;
	max-width: 100%;
	object-fit: contain;
	vertical-align: bottom;
	transition: height var(--transition-header);
	display: inline-block;
}

html.header-scroll-compact .site-header__brand .custom-logo-link img.custom-logo-img--header {
	height: var(--site-logo-h-compact);
}

.site-header__title-link {
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: var(--text-lg);
	color: var(--color-primary);
	text-decoration: none;
	transition: color var(--transition);
}

html.header-scroll-compact .site-header__title-link {
	font-size: var(--text-base);
}

.site-header__title-link:hover {
	color: var(--color-accent);
}

.site-header__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--space-2);
	flex-shrink: 0;
	flex-wrap: nowrap;
	min-width: 0;
}

@media (max-width: 1160px) {
	.site-header__actions {
		flex-wrap: wrap;
		gap: var(--space-2);
	}
}

.site-header__actions .btn-primary {
	flex-shrink: 0;
	box-shadow: var(--shadow-subtle);
	min-height: var(--btn-height-sm);
	padding-inline: var(--space-5);
	font-size: var(--text-sm);
}

html.header-scroll-compact .site-header__actions .btn-primary {
	min-height: 42px;
	padding-inline: var(--space-4);
}

.site-header__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--space-3);
	flex-shrink: 0;
	flex-wrap: nowrap;
	min-width: 0;
	padding: var(--space-2) var(--space-3);
	margin: calc(var(--space-1) * -1) 0;
	border-radius: var(--radius-md);
	background: color-mix(in srgb, var(--color-surface) 88%, var(--color-surface-soft));
	border: 1px solid color-mix(in srgb, var(--color-brand) 7%, transparent);
}

@media (min-width: 968px) {
	.site-header__actions {
		box-shadow: var(--shadow-subtle);
	}
}

.site-header__phone-link--bar.btn-secondary {
	min-height: var(--btn-height-sm);
	padding-inline: var(--space-4);
	gap: var(--space-2);
	font-size: var(--text-sm);
	font-weight: 700;
	box-shadow: var(--shadow-subtle);
	color: var(--color-surface);
}

.site-header__phone-link--bar.btn-secondary .site-header__phone-link-label {
	color: var(--color-surface);
}

.site-header__phone-link--bar.btn-secondary .site-header__phone-link-icon--bar {
	background: var(--color-surface);
}

.site-header__phone-link {
	flex-shrink: 0;
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--color-brand);
	padding: var(--space-2) var(--space-3);
	border-radius: var(--radius-sm);
	transition:
		color var(--transition),
		background-color var(--transition);
}

.site-header__phone-link:not(.btn-secondary):hover {
	color: var(--color-brand-dark);
	background: var(--color-surface-soft);
}

.site-header__phone-link:focus-visible {
	outline: 2px solid var(--color-brand);
	outline-offset: 2px;
}

.site-header__phone-link--compact {
	display: none;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	margin-right: var(--space-2);
	border: 1px solid var(--color-border);
	background: var(--color-surface);
}

.site-header__phone-link--bar {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
}

.site-header__phone-link-icon--bar {
	display: block;
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

.site-header__phone-link-icon {
	display: block;
	width: 18px;
	height: 18px;
	background: currentColor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E")
		center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E")
		center / contain no-repeat;
}

.site-header__cta-main {
	flex-shrink: 0;
	min-height: var(--btn-height-sm);
	max-width: max-content;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 967px) {
	.site-header-shell {
		--site-header-h: 52px;
		--site-header-h-compact: 48px;
		--site-logo-h: 32px;
		--site-logo-h-compact: 30px;
	}

	.site-header {
		padding-block: 0;
		min-height: var(--effective-site-header-main);
	}

	.site-header__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto;
		grid-template-areas: 'brand actions';
		column-gap: var(--space-2);
		align-items: center;
		row-gap: 0;
		min-height: var(--effective-site-header-main);
		padding-inline: var(--container-pad-sm);
	}

	.site-header-shell .site-header__inner > .primary-nav {
		display: none !important;
	}

	.site-header__brand {
		grid-area: brand;
		min-width: 0;
		max-width: none;
		align-items: center;
	}

	.site-header__brand .custom-logo-link {
		max-width: 148px;
	}

	.site-header__actions {
		grid-area: actions;
		flex-wrap: nowrap;
		justify-content: flex-end;
		align-items: center;
		gap: var(--space-2);
		padding: 0;
		margin: 0;
		background: transparent;
		border: none;
		box-shadow: none;
	}

	.site-header-shell .site-header__actions .site-header__phone-link--bar.btn-secondary {
		display: inline-flex !important;
		position: relative;
		min-width: 40px;
		min-height: 40px;
		width: 40px;
		padding: 0;
		justify-content: center;
		flex-shrink: 0;
	}

	.site-header__phone-link--bar .site-header__phone-link-label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.site-header-shell .site-header__actions > .site-header__cta-main {
		display: none !important;
	}

	.site-header-shell .site-header__actions > .nav-toggle {
		display: inline-flex !important;
		flex-shrink: 0;
		width: 40px !important;
		height: 40px !important;
		min-height: 40px !important;
	}
}

.site-header-shell[data-mobile-open="1"] {
	box-shadow: var(--shadow-header-scrolled);
}

.site-header-shell[data-mobile-open="1"] .nav-toggle {
	border-color: var(--color-accent);
}

[id] {
	scroll-margin-top: calc(var(--mobile-nav-drawer-top, 96px) + var(--space-4));
}

.primary-nav .primary-nav__link:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
	border-radius: 2px;
	box-shadow: none;
}

.primary-nav .primary-nav__sub-link:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: -1px;
}
