/**
 * Voorkomt kleine viewport-breedteverspringing als de scrollbalk in/uit schakelt,
 * waardoor bij sticky header onder scroll minder jitter optreedt.
 */
html {
	scrollbar-gutter: stable;
}

#wpadminbar {
	position: fixed;
}

/**
 * Hello Elementor parent (`assets/css/theme.css`) boxed layout:
 * - `body:not([class*=elementor-page-]) .site-main`
 * - `.site-header:not(.dynamic-header)` en `.site-footer:not(.dynamic-footer)`
 * krijgen dezelfde oplopende max-width (500px → 1140px) + kleine viewport-padding.
 * Header/footer staan buiten `#page.site` (alleen main zit in #page), dus die apart
 * unboxen. Binnenbreedte: .container / .container-lg / .container-full.
 */
body .site-header:not(.dynamic-header),
body .site-footer:not(.dynamic-footer) {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
	box-sizing: border-box;
}

#page.site {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	box-sizing: border-box;
}

#page.site .site-main {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
	box-sizing: border-box;
}

#page.site .site-main .page-content,
#page.site .content-area {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

.site {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: none;
}

.site-main--default {
	width: 100%;
	max-width: none;
}

.site-main--default .page-default {
	width: 100%;
	max-width: none;
	margin: 0;
}

.site-main--default .entry-content {
	width: 100%;
	max-width: none;
}

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

/* Skip-link: onzichtbaar en niet klikbaar tot keyboard-focus (Hello #c36) */
.skip-link {
	position: fixed;
	top: 0;
	left: 0;
	z-index: calc(var(--z-header) + 20);
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	background: transparent !important;
	color: transparent !important;
	text-decoration: none;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.skip-link:focus,
.skip-link:focus-visible {
	width: auto;
	height: auto;
	margin: 0;
	padding: var(--space-3) var(--space-5);
	overflow: visible;
	clip: auto;
	clip-path: none;
	top: var(--space-3);
	left: var(--space-3);
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	background: var(--color-brand) !important;
	color: var(--color-surface) !important;
	font-weight: 600;
	font-size: var(--text-sm);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

body.admin-bar .skip-link:focus,
body.admin-bar .skip-link:focus-visible {
	top: calc(32px + var(--space-3));
}

@media screen and (max-width: 782px) {
	body.admin-bar .skip-link:focus,
	body.admin-bar .skip-link:focus-visible {
		top: calc(46px + var(--space-3));
	}
}

.site-main:focus {
	outline: none;
}

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

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