/* Heavened Legal – Barrierefreiheit */
.hvl-skip-link {
	position: absolute;
	left: 8px;
	top: -100px;
	z-index: 2147483647;
	background: #1d2327;
	color: #fff !important;
	padding: 12px 18px;
	border-radius: 0 0 8px 8px;
	font: 600 16px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	text-decoration: underline;
}
.hvl-skip-link:focus { top: 0; outline: 3px solid #ffbf47; }

.hvl-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Bedienhilfen-Menü */
.hvl-a11y { position: fixed; bottom: 72px; z-index: 2147482998; font: 15px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; }
.hvl-a11y-right { right: 16px; }
.hvl-a11y-left { left: 16px; }
.hvl-a11y-toggle {
	width: 48px; height: 48px; border-radius: 50%; border: 2px solid #fff; padding: 0;
	background: #1d2327; color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .3);
}
.hvl-a11y-panel[hidden] { display: none; }
.hvl-a11y-panel {
	position: absolute; bottom: 58px; width: 240px; background: #fff; color: #1d2327;
	border-radius: 12px; padding: 14px; box-shadow: 0 10px 40px rgba(0, 0, 0, .3); display: grid; gap: 8px;
}
.hvl-a11y-right .hvl-a11y-panel { right: 0; }
.hvl-a11y-left .hvl-a11y-panel { left: 0; }
.hvl-a11y-title { margin: 0 0 2px; font-weight: 700; font-size: 16px; }
.hvl-a11y-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.hvl-a11y-panel button {
	font: inherit; font-weight: 600; min-height: 42px; padding: 8px 12px; border-radius: 8px; cursor: pointer;
	border: 2px solid #1d2327; background: #fff; color: #1d2327; text-align: left; margin: 0;
}
.hvl-a11y-row button { min-width: 56px; text-align: center; }
.hvl-a11y-panel button[aria-pressed="true"] { background: #1d2327; color: #fff; }
.hvl-a11y-panel .hvl-a11y-reset { border-style: dashed; }
.hvl-a11y-link { margin: 4px 0 0; font-size: 13px; }
.hvl-a11y-link a { color: #1f4fd8; text-decoration: underline; }
.hvl-a11y button:focus-visible, .hvl-a11y a:focus-visible { outline: 3px solid #1f4fd8; outline-offset: 2px; }

/* Modi */
html.hvl-a11y-contrast body, html.hvl-a11y-contrast body *:not(.hvl-a11y):not(.hvl-a11y *):not(svg):not(path):not(img):not(video):not(iframe) {
	background-color: #000 !important; color: #fff !important; border-color: #fff !important; text-shadow: none !important; box-shadow: none !important;
}
html.hvl-a11y-contrast body a, html.hvl-a11y-contrast body a * { color: #ffeb3b !important; }
html.hvl-a11y-contrast body button:not(.hvl-a11y button), html.hvl-a11y-contrast body input, html.hvl-a11y-contrast body select, html.hvl-a11y-contrast body textarea { border: 2px solid #fff !important; }
html.hvl-a11y-links body a { text-decoration: underline !important; text-underline-offset: 3px; text-decoration-thickness: 2px !important; outline: 1px dotted currentColor; }
html.hvl-a11y-font body, html.hvl-a11y-font body *:not(svg):not(path):not([class*="icon"]):not([class*="fa-"]):not(.dashicons) {
	font-family: Verdana, Tahoma, "Segoe UI", Arial, sans-serif !important; letter-spacing: .03em !important; word-spacing: .08em !important; line-height: 1.6 !important;
}
html.hvl-a11y-motion *, html.hvl-a11y-motion *::before, html.hvl-a11y-motion *::after {
	animation: none !important; transition: none !important; scroll-behavior: auto !important;
}

@media (max-width: 600px) {
	.hvl-a11y { bottom: 70px; }
}
@media print {
	.hvl-a11y, .hvl-skip-link { display: none !important; }
}
