/* ++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* +++++++++++++++++ Barrierefreiheit +++++++++++++++++ */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/* +++++++++++++++++ Schriftgroesse +++++++++++++++++ */

/*
 * Die Klasse .bigfonts dient nur noch als Statusklasse für den Button.
 * Die tatsächliche Vergrößerung erfolgt in footer.php per JavaScript:
 * Nur Schriften unter 24px werden auf 24px angehoben; Schriften ab 24px bleiben unverändert.
 */
body#bodycontainer.bigfonts {}

html body#bodycontainer.bigfonts * {
	-webkit-hyphens: auto;
	hyphens: auto;
}

/* Empfohlene Untergrenze für sehr kleine Hilfs-/Metatexte. */
.news.single figcaption,
.video_bu a {
	font-size: 14px;
}

/* +++++++++++++++++ Kontraste +++++++++++++++++ */
:root body#bodycontainer.kontrast {
	--gruen: #000;
	--tuerkis: #000;
	--akzent: #000;
	--link: #000;
	--text: #3c3c3c;
	--footer: #000;
	--white: #FFF;
	--hellgrau: #EDEDED;
	--mittelgrau: #C1C1C1;
}

body#bodycontainer.kontrast nav .content .servicenavi .btn_schriftgroesse {
	background-image: url('../img/schriftgroesse_dark.svg');
	background-size: 29px;
}

body#bodycontainer.kontrast nav .content .servicenavi .btn_kontrast {
	background-image: url('../img/kontrast_dark.svg');
	background-size: 26px;
}

body#bodycontainer.kontrast nav .content .servicenavi .btn_telefon {
	background-image: url('../img/telefon_dark.svg');
	background-size: 22px;
}

body#bodycontainer.kontrast nav .content .servicenavi .btn_email {
	background-image: url('../img/email_dark.svg');
	background-size: 26px;
}

/* +++++++++++++++++ BFSG-/WCAG-Ergänzungen 2026 +++++++++++++++++ */

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

html,
body {
	max-width: 100%;
}

body {
	/* overflow-wrap: anywhere; */
}

main:focus {
	outline: none;
}

iframe {
	max-width: 100%;
}

img,
video {
	height: auto;
}

address {
	font-style: normal;
}

.skip-link {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 100000;
	display: inline-block;
	padding: 12px 18px;
	color: var(--white) !important;
	background: var(--text);
	border: 3px solid var(--white);
	border-radius: 6px;
	transform: translateY(-140%);
	transition: transform .2s ease;
}

.skip-link:focus,
.skip-link:focus-visible {
	transform: translateY(0);
}

/* Textlinks visuell kennzeichnen, Navigation/Bildkacheln bleiben davon ausgenommen. 
a[href] {
	text-decoration: underline !important;
	text-decoration-thickness: .08em !important;
	text-underline-offset: .18em !important;
}

nav a[href],
.logo a,
.socialmedia a,
.teaser_einzeln a,
a.button_tuerkis,
footer a[href] {
	text-decoration: none !important;
} */

/* Deutliche Tastatur-Fokusmarkierung */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 4px solid #ff2323 !important;
	outline-offset: -4px !important;
	/* box-shadow: 0 0 0 6px #000 !important; */
}

body#bodycontainer.kontrast a:focus-visible,
body#bodycontainer.kontrast button:focus-visible,
body#bodycontainer.kontrast input:focus-visible,
body#bodycontainer.kontrast select:focus-visible,
body#bodycontainer.kontrast textarea:focus-visible,
body#bodycontainer.kontrast [tabindex]:focus-visible {
	outline-color: #fff000 !important;
	box-shadow: 0 0 0 6px #000 !important;
}

/* Interaktive Elemente, die zuvor DIVs/Links ohne href waren. */
button {
	font: inherit;
}

nav button,
.linkbutton,
.schliessenbtn button,
.closelayer {
	cursor: pointer;
}

nav .content .servicenavi button,
#hamburger,
#navilayer,
.navi-toggle,
.linkbutton,
.schliessenbtn button,
.closelayer {
	border: 0;
	appearance: none;
	-webkit-appearance: none;
}

#navilayer {
	padding: 0;
}

#hamburger {
	background: transparent;
}

#hamburger span {
	pointer-events: none;
}

/* #hauptnavi li a, */
#hauptnavi li button.navi-toggle {
	position: relative;
	z-index: 10;
	display: flex;
	width: 100%;
	font-family: 'Hind', sans-serif;
	font-weight: 600;
	font-size: clamp(14px, 5vw, 20px);
	color: var(--tuerkis);
	text-align: center;
	line-height: 1em;
	text-transform: uppercase;
	padding: 17px 20px 13px;
	background-color: var(--white);
	box-shadow: 0px 6px 5px #0003;
	transition: .3s;
}

#hauptnavi li button.navi-toggle {
	justify-content: center;
	align-items: center;
}

#hauptnavi li a:hover,
#hauptnavi li a.active,
#hauptnavi li button.navi-toggle:hover,
#hauptnavi li button.navi-toggle.active,
#hauptnavi li button.navi-toggle[aria-expanded="true"] {
	color: var(--white);
	background-color: var(--tuerkis);
	box-shadow: 0px 5px 5px #0003 inset, 0px 6px 5px #0003;
	transition: .3s;
}

#hauptnavi li:first-child button.navi-toggle {
	border-bottom-left-radius: 12px;
}

#hauptnavi li:last-child button.navi-toggle,
#hauptnavi li:last-child a {
	border-bottom-right-radius: 12px;
}

#hauptnavi li ul.subnavi li a {
	display: block;
}

.linkbutton,
.news_mehr,
a.zur_projektseite,
.slider a {
	font-weight: 600;
	color: var(--tuerkis);
	padding-left: 20px;
	background-image: url(../img/mehrpfeil.svg);
	background-position: center left;
	background-repeat: no-repeat;
	text-transform: uppercase;
}

.linkbutton {
	display: inline-block;
	background-color: transparent;
	margin-top: -10px;
	text-align: left;
}

.schliessenbtn button {
	text-align: center;
	padding: 5px 20px;
	background-color: var(--tuerkis);
	border-radius: 12px;
	color: var(--white);
	margin: auto;
	transition: .3s;
}

.schliessenbtn button:hover,
.schliessenbtn button:focus-visible,
.closelayer:hover,
.closelayer:focus-visible {
	background-color: var(--gruen);
}

.closelayer img {
	pointer-events: none;
}

.layer[aria-hidden="true"] {
	display: none;
}

.layer[aria-hidden="false"] {
	display: block;
}

/* Anpassungen für starke Vergrößerung / kleine Viewports */
@media(max-width:1320px) {
	#hauptnavi li button.navi-toggle {
		display: inline-block;
		width: 100%;
		box-shadow: none;
		background-color: transparent;
		border-top: 1px solid var(--tuerkis);
	}

	#hauptnavi li:first-child button.navi-toggle {
		border-bottom-left-radius: 0px;
		border-top: none;
	}

	#hauptnavi li button.navi-toggle:hover,
	#hauptnavi li button.navi-toggle.active,
	#hauptnavi li button.navi-toggle[aria-expanded="true"] {
		color: var(--white);
		background-color: var(--tuerkis);
	}
}

@media(max-width:480px) {

	.content,
	nav .content,
	nav #navigation,
	section.grau .content {
		width: 100%;
		padding-left: 16px;
		padding-right: 16px;
	}

	.wrapper {
		margin-top: 118px;
	}

	h1 {
		font-size: clamp(1.75rem, 10vw, 2.5rem);
		line-height: 1.15;
	}

	h2 {
		font-size: clamp(1.5rem, 8vw, 2.1rem);
		line-height: 1.2;
	}

	p,
	ul,
	ol,
	a,
	button {
		font-size: 1rem;
		line-height: 1.55;
	}

	.slider {
		width: 100%;
	}

	.teaser_einzeln a {
		grid-template-rows: auto minmax(180px, auto);
	}

	.ansprechpartner,
	.ansprechpartner img,
	.startseite_partner img,
	.button_tuerkis,
	.layer_inside {
		max-width: 100%;
		width: 100%;
	}

	.layer_inside {
		height: 100vh;
		margin: 0;
	}
}
