/* =========================================================================
   Basis: reset, typografie, layout-helpers
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font);
	font-size: var(--fs-body);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
a:hover { color: var(--plum); }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--forest); outline-offset: 3px; border-radius: 4px; }

h1, h2, h3, h4 { margin: 0; font-weight: 700; color: inherit; text-wrap: balance; }
p { margin: 0; }

.display { font-size: var(--fs-display); line-height: .95; letter-spacing: -.035em; }
.h1 { font-size: var(--fs-h1); line-height: 1; letter-spacing: -.03em; }
.h2 { font-size: var(--fs-h2); line-height: 1.05; letter-spacing: -.025em; }
.h3 { font-size: var(--fs-h3); line-height: 1.15; letter-spacing: -.015em; font-weight: 600; }
.h4 { font-size: var(--fs-h4); line-height: 1.3; letter-spacing: -.01em; font-weight: 600; }
.lead { font-size: var(--fs-lead); line-height: 1.5; }
.small { font-size: var(--fs-small); line-height: 1.5; }
.muted { color: var(--ink-muted); }
.text-light { color: var(--white); }
.text-light-soft { color: rgba(255, 255, 255, .88); }

/* Layout */
.container { width: 100%; max-width: calc(var(--content-max) + 2 * var(--page-pad)); margin-inline: auto; padding-inline: var(--page-pad); }
.section { padding-top: var(--section); }
.stack > * + * { margin-top: var(--stack, 16px); }
.grid { display: grid; gap: var(--gutter); }
.grid-7-5 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.grid-5-7 { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1080px) { .grid-7-5, .grid-5-7 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 820px) { .grid-3 { grid-template-columns: minmax(0, 1fr); } .hide-sm { display: none !important; } }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 12px; left: 12px; z-index: 1000; width: auto; height: auto; clip: auto; padding: 12px 18px; background: var(--white); border-radius: var(--radius-sm); }

/* Standaard pagina-inhoud (page.php, juridische pagina's) */
.prose { max-width: 720px; }
.prose > * + * { margin-top: 1em; }
.prose h2 { font-size: var(--fs-h3); margin-top: 1.6em; }
.prose h3 { font-size: var(--fs-h4); margin-top: 1.4em; }
.prose ul, .prose ol { padding-left: 1.2em; }
.prose a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
