/* ── base.css — Reset & Grundlayout ──────────────────────────────────────────
   Setzt tokens.css voraus. Webfonts (Montserrat, Source Sans Pro) werden über
   fonts.css geladen; bis dahin greift der system-ui-Fallback.
   ──────────────────────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
	color: var(--c-text);
	background: var(--c-bg);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
	font-family: var(--font-head);
	line-height: 1.2;
	margin: 0 0 0.5em;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--c-link); }
a:hover { color: var(--c-primary); }

.visually-hidden {
	position: absolute;
	width: 0.0625rem;
	height: 0.0625rem;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	left: -62.5rem;
	top: 0;
	background: var(--c-primary);
	color: var(--c-white);
	padding: 0.75rem 1.25rem;
	z-index: 100;
}

.skip-link:focus-visible { left: 0.5rem; top: 0.5rem; }

.container {
	max-width: var(--maxw);
	margin-inline: auto;
	padding-inline: 1.5rem;
}

.section { padding-block: 3rem; }

.btn {
	display: inline-block;
	font-family: var(--font-head);
	font-weight: 600;
	padding: 0.75rem 1.5rem;
	border-radius: var(--radius-sm);
	text-decoration: none;
	cursor: pointer;
	border: 0.09375rem solid transparent;
}

.btn--primary { background: var(--c-primary); color: var(--c-white); }
.btn--secondary { background: transparent; color: var(--c-primary); border-color: var(--c-primary); }

:focus-visible {
	outline: 0.125rem solid var(--c-accent-dark);
	outline-offset: 0.125rem;
}

@media (max-width: 48rem) {
	.section { padding-block: 2rem; }
}

details.disclosure > summary {
	cursor: pointer;
	list-style: none;
}

details.disclosure > summary::-webkit-details-marker {
	display: none;
}

details.disclosure > summary::after {
	content: "+";
	flex-shrink: 0;
	font-family: var(--font-head);
	font-size: 1.25rem;
	color: var(--c-accent-dark);
}

details.disclosure[open] > summary::after {
	content: "–";
}
