/*---------------------------------------------------------------------------------

Theme Name: LVU-Theme
Text Domain: lvu
Version: 1.14.2
Description: Theme für die LVU Rheinland-Pfalz
Tags: 
Author: Visualtech GmbH
Author URI: https://visualtech.de
License: 
License URI: 
Theme URI: 
	
---------------------------------------------------------------------------------*/

/* FONTS */

/* Performance (1.13.0): WOFF2 statt OTF (43 statt 140 KB je Schnitt, gleiche Zeichen) und
   font-display: swap – Text ist sofort lesbar, die DIN kommt nach. „DIN Light" war deklariert,
   aber nirgends benutzt (--light-font nimmt „DIN Regular"), und entfällt. Regular wird im
   <head> vorgeladen (inc/performance.php). Lizenz: FontFont DIN Pro – siehe README, Paket 3. */

@font-face {
  font-family: "DIN Regular";
  src: url("assets/fonts/DINPro-Regular.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "DIN Medium";
  src: url("assets/fonts/DINPro-Medium.woff2") format("woff2");
  font-display: swap;
}

/* VARIABLES */

:root {
/* colors	*/
/* a11y (1.10.0): Weiß auf dem hellen Markenblau #009fe3 hatte 2,97:1. Flächen mit weißer
   Schrift und blauer Text jetzt in #006daf (5,52:1), das helle Blau nur noch als Akzent
   (Unterstreichung, Rahmen). Gold #d4a129 bleibt für Linien; als Schrift auf Weiß
   #8a6914 (5,11:1), als Hover auf Dunkelblau #f0c75e (5,07:1). Werte: README, Paket 2. */
  --primary-color: #006daf;
  --primary-light-color: #009fe3;
  --secondary-color: #005578;
	--tertiary-color: #d4a129;
	--tertiary-text-color: #8a6914;
	--hover-color: #f0c75e;
	--quarternary-color: #006daf;
	--error-on-dark: #ffd0d0;
	--focus-dark: #00253a;
  --color: #000;
  --body-background-color: #fff;
	--error-red: #b94a48;
	--error-background-red: #ffdfdf;
	
	--primary-color-rgba: rgba(0, 109, 175, 1);
	--secondary-color-rgba: rgba(0, 85, 120, 1);
	--ios-transparent-primary: rgba(0, 109, 175, 0);
	--ios-transparent-secondary: rgba(0, 85, 120, 0);
	
/* fonts */
	--light-font: 300 1em/normal Bahnschrift, "DIN Regular", sans-serif;
  --regular-font: 400 1em/normal Bahnschrift, "DIN Regular", sans-serif;
	--bold-font: 700 1em/normal Bahnschrift, "DIN Medium", sans-serif;
	
/* headline font-sizes */
	--h1-font-size: 50px;
	--h1-front-font-size: 90px;
	--h2-font-size: 35px;
	--h2-front-font-size: 70px;
	--h2-archive-font-size: 25px;
	--h3-font-size: 25px;
	--h4-font-size: 20px;
	
/* golden lines */
	--golden-line-factor: .128;
	
/* header */
	--top-menu-height: 50px;
	--top-menu-color: #fff;
/*	--top-menu-background-color: var(--quarternary-color);*/
	--top-menu-background-color: var(--secondary-color);
	
	--top-menu-hover-color: var(--hover-color);
	
	--top-menu-font-size: 20px;
	
  --main-menu-height: 200px;
	--main-menu-content-width: 1640px;
  --main-menu-color: #fff;
  /* Menü: 20–30 px fett = große Schrift, Weiß darauf 3,95:1 (≥ 3:1) */
  --main-menu-background-color: #0088c4;

  --main-menu-hover-color: var(--hover-color);
  
  --main-menu-font-size: 30px;
	
	--sub-menu-background-color: var(--secondary-color);
	--sub-menu-color: #fff;
	
  --logo-width: 300px;
	--logo-height: var(--logo-width);

/* main */
  --content-width: 1040px;
	
  --button-color: #fff;
  --button-background-color: var(--primary-color);
  --button-background-hover-color: var(--secondary-color);
  
  --copyright-font-size: 12px;
	
/* square-layout (front-page) */
	--square-width: 960px;
	--square-height: var(--square-width);
	
	--square-padding: calc(var(--square-width) * .13);
	
	--square-image-width: calc(var(--content-width) / 2 + var(--square-padding) / 2);
	--square-image-height: var(--square-image-width);
	
	--square-font-size: calc(var(--square-width) * .0422);
	
	
/* news */
	--square-news-font-size: calc(var(--square-width) * .0322);
	--square-news-headline-font-size: calc(var(--square-width) * .0442);
	--square-news-button-font-size: calc(var(--square-width) * .03125);
	
	--square-news-button-height: calc(var(--square-news-button-font-size) * 2.2);
	
/* newsletter */
	--newsletter-registration-box-width: var(--content-width);
	
	--newsletter-registration-box-padding: calc(var(--newsletter-registration-box-width) * .0838);
	
	--newsletter-font-size: calc(var(--newsletter-registration-box-width) * .024);
	
	--newsletter-form-elements-height: calc(var(--newsletter-registration-box-width) * .3692 * .1302);
	--newsletter-form-inputs-font-size: calc(var(--newsletter-registration-box-width) * .0173);
	--newsletter-register-button-font-size: calc(var(--newsletter-registration-box-width) * .0288);

/* Kacheln der LinkedIn-Beiträge auf der Startseite (assets/css/linkedin.css), früher Twitter */
	--tweet-width: 354px;
	--tweet-height: var(--tweet-width);
	--tweet-gap: 36px;
	
	--tweet-header-footer-font-size: calc(var(--tweet-width) * .0508);
/*	--tweet-content-font-size: calc(var(--tweet-width) * .0678); */
  --tweet-content-font-size: calc(var(--tweet-width) * .05);
		
	--twitter-icon-width: 686px;
	--twitter-icon-height: calc(var(--twitter-icon-width) * .8128);
	
/* page and single */
	--page-single-font-size: 20px;
	
	--single-person-text-width-factor: .6;
	--single-person-ifcs-width-factor: .35;
	--single-person-ifcs-solo-width-factor: .5;
	--single-person-image-width-factor: 1;
	--single-person-image-width: calc(var(--content-width) * var(--single-person-ifcs-width-factor) * var(--single-person-image-width-factor));
	--single-person-image-height: var(--single-person-image-width);
	--single-person-image-solo-width: calc(var(--content-width) * var(--single-person-ifcs-solo-width-factor) * var(--single-person-image-width-factor));
	--single-person-image-solo-height: var(--single-person-image-solo-width);
	
/* archive */
	
	--archive-post-font-size: 18px;
	
/* shortcode - person */
	--scp-image-width: 200px;
	--scp-image-height: var(--scp-image-width);
	
	--scp-general-font-size: 16px;
	--scp-name-function-font-size: 18px;
	--scp-contact-icon-font-size: var(--scp-name-function-font-size);
	
	--scp-social-icon-width: 25px;
	--scp-social-icon-height: var(--scp-social-icon-width);
	
/* footer */
	--footer-content-width: var(--main-menu-content-width);
  --footer-background-color: var(--secondary-color);
	--footer-menu-font-size: var(--main-menu-font-size);
	
	--social-media-icon-width: 50px;
	--social-media-icon-height: var(--social-media-icon-width);
	
	--logo-area-width: 325px;
	--logo-area-height: var(--logo-area-width);

/* Schriftgröße aus „Darstellung anpassen" (1, 1.25, 1.5) */
	--lvu-schrift: 1;

/* scroll */
	--scroll-logo-width: 150px;
	--scroll-logo-height: var(--scroll-logo-width);
  
	font: var(--regular-font);
  font-size: 16px;
	line-height: 1.2;
  color: var(--color);
}

/* WebP Express („Alter HTML", Paket 3) setzt <picture> um Bilder mit WebP-Fassung. Das
   zusätzliche Element soll im Layout nicht mitspielen (Flex-Kacheln, Galerien, Bildboxen). */
picture {
  display: contents;
}

/* CF7 */

input[type="checkbox"],
input[type="radio"] {
  width: 20px !important ;
  height: 20px !important;
  border: 5px solid solid var(--secondary-color);
    -webkit-appearance: checkbox !important;
}

input.wpcf7-submit {
	padding: .65em 1em;
	background-color: var(--secondary-color);
	font: var(--bold-font);
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
}

input.wpcf7-text {
  border: 2px solid var(--secondary-color);  
  max-width: 80vW;
	min-width: 50%;   
}

textarea.wpcf7-textarea {
  border: 2px solid var(--secondary-color);  
  max-width: 80vW;
	min-width: 50%;   
}

.wpcf7 form.sent .wpcf7-response-output {
  border-color: var(--secondary-color);
  background-color: var(--secondary-color);
  color: #fff;
}

span.wpcf7-list-item { 
  display: block; 
  margin: 0 0 0 0;
}

div.wpcf7-space {
  margin-bottom: 40px;
}

/* Optionsgruppen als fieldset/legend (Migration Schritt 6, statt verschachtelter Labels) */
.wpcf7 fieldset.lvu-cf7-gruppe {
  margin: 0 0 1em;
  padding: 0;
  border: 0;
}

.wpcf7 fieldset.lvu-cf7-gruppe > legend {
  padding: 0;
  font: var(--bold-font);
}

.wpcf7 .lvu-cf7-pflicht {
  font-size: .9em;
}

/* Rahmen der Eingabefelder: Dunkelblau auf Weiß 8,17:1; Kästchen mit eigenem Rahmen
   (vorher „5px solid solid" – ungültig, also gar keiner) */
input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--secondary-color);
}

/* GENERAL SETTINGS & STYLES */

html :where(img) {
	max-width: unset;
}

* {
  scrollbar-width: thin;
  scrollbar-color: var(--tertiary-color) rgba(26, 157, 217, .15);
}

*::-webkit-scrollbar {
  width: 10px;
}

*::-webkit-scrollbar-track {
  background: rgba(26, 157, 217, .15);
}

*::-webkit-scrollbar-thumb {
  background-color: var(--tertiary-color);
}

body {
	width: 100vw;
	height: 100vh;
	max-width: 100vw;
  min-height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
  position: relative;
  margin: 0;
  background-color: var(--body-background-color);
	font: inherit;
  overflow: hidden;
	overflow-y: auto;
}

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

a {
	color: var(--color);
	text-decoration-color: var(--primary-light-color);
	text-underline-offset: .125em;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 auto .25em;
  font: var(--bold-font);
	text-transform: uppercase;
  color: var(--primary-color);
	-ms-hyphens: auto;
	-webkit-hyphens: auto;
	hyphens: auto;
}

h1 {
	margin: 0 auto .75em;
  font-size: calc(var(--h1-font-size) * var(--lvu-schrift));
	text-align: center;
	color: var(--tertiary-text-color);
	hyphens: initial;
}

h2 {
	position: relative;
  font-size: calc(var(--h2-font-size) * var(--lvu-schrift));
	}

h3 {
	font-size: calc(var(--h3-font-size) * var(--lvu-schrift));
}

h4 {
	font-size: calc(var(--h4-font-size) * var(--lvu-schrift));
}

button,
.button,
input {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	font: var(--regular-font);
	border: none;
}

button,
.button {
	padding: .65em 1em;
	background-color: var(--secondary-color);
	font: var(--bold-font);
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
}

button:hover,
.button:hover {
	color: var(--hover-color);
	transition: all .3s ease-out;
}

/* HEADER */

header {
  width: 100vw;
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: auto auto auto;
  position: fixed;
  top: 0;
  z-index: 10;
}

header a {
	text-decoration: none;
	color: #fff;
}

#wpadminbar ~ header {
  margin-top: 32px;
}

/* MAIN */

main {
	width: 100vw;
/*   min-height: calc(100% - var(--main-menu-height)); */
  margin-top: var(--main-menu-height);
}

body.logged-in > main {
	margin-top: calc(var(--top-menu-height) + var(--main-menu-height));
}

section {
  max-width: 100vw;
	padding: 150px calc((100vw - var(--content-width)) / 2);
}

main ul {
/* 	list-style: none; */
	list-style-type: square;
}

/* main li {
	padding-left: 1em;
	position: relative;
} */

main ul > li:not(:first-child) {
	margin-top: .5em;
}

/* main li::before {
	content: '';
	width: .6em;
	height: .6em;
	display: flex;
	position: absolute;
	top: .2em;
	left: 0;
	margin: 0 .33em .1em 0;
	background-color: var(--primary-color);
} */

/* MAIN - FRONT-PAGE */

body.home h1 {
	font-size: calc(var(--h1-front-font-size) * var(--lvu-schrift));
}

body.home h2 {
	/* fit-content statt min-content + nowrap: bricht um, wenn der Platz nicht reicht
	   (größere Schrift, schmale Fenster; 1.4.10) */
	width: fit-content;
	max-width: 100%;
	font-size: calc(var(--h2-front-font-size) * var(--lvu-schrift));
	text-align: center;
}

/* news */

section#front-news {
	overflow: visible;
}

.news.headline {
	margin-top: 0;
	margin-bottom: .75em;
	font-size: calc(var(--h1-front-font-size) * var(--lvu-schrift));
	color: var(--tertiary-text-color);
}

.news.content {
	display: grid;
	grid-template-columns: auto auto;
}

.news.content > * {
	flex-shrink: 0;
}

.news.post {
	width: var(--square-width);
	height: var(--square-height);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1.2em;
	position: relative;
	padding: var(--square-padding);
	background-color: var(--primary-color);
	font-size: calc(var(--square-news-font-size) * var(--lvu-schrift));
	color: #fff;
}

.news.post:only-child {
	grid-column: 1 / 3;
	justify-self: center;
}

.news.post-headline {
	margin-bottom: 0;
	font-size: calc(var(--square-news-headline-font-size) * var(--lvu-schrift));
	color: #fff; /* Dunkelblau auf #006daf hätte 1,48:1 */
}

#front-news .news.post-headline {
	hyphens: manual;
}

.news.post-teaser {
	max-height: 9.7313em;
	position: relative;
	overflow: hidden;
	hyphens: auto;
}

.news.post-teaser > p {
	margin: 0;
}

.news.post-teaser::after {
	content: '';
	width: 10em;
	height: 1.3em;
	position: absolute;
	right: 0;
	bottom: 0;
	background: linear-gradient(to right, transparent, var(--primary-color-rgba));
  background: -webkit-linear-gradient(left, var(--ios-transparent-primary), var(--primary-color-rgba));
}

.news.read-more-container {
	position: absolute;
	right: var(--square-padding);
	bottom: var(--square-padding);
}

.news.read-more {
	width: min-content;
	align-self: flex-end;
	position: relative;
	color: #fff;
	text-decoration: none;
}

.news.read-more:hover {
	color: #fff;
	text-decoration: underline;
	transition: all .3s ease-out;
}

.news.read-more::before {
	content: '';
	width: calc(1em * var(--golden-line-factor));
	height: 4.5em;
	display: block;
	position: absolute;
	top: .36em;
	left: calc(1em * var(--golden-line-factor) * (-3));
	background-color: var(--tertiary-color);
}

.news.further-news {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2.5em;
	background-color: var(--secondary-color);
	font-size: calc(var(--square-news-button-font-size) * var(--lvu-schrift));
	color: #fff;
	text-decoration: none;
}

.news.further-news:hover {
	color: var(--hover-color);
	transition: all .3s ease-out;
}

.news.image-container {
	width: var(--square-image-width);
	height: var(--square-image-height);
  position: relative;
	margin: auto 0 auto calc(var(--square-padding) / 2 * (-1) - 5px);
/* 	object-fit: cover; */
	z-index: 3;
}

.news.image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

p.isc-source-text {
  position: absolute;
  right: 0;
	bottom: 0;
  margin: 0;
	padding: 10px;
	background-color: rgba(0, 0, 0, .7); /* Weiß auf Foto: mind. 8:1 statt je nach Bild */
	opacity: 1;
	font: var(--light-font);
  font-size: calc(var(--copyright-font-size) * var(--lvu-schrift));
  color: #fff;
	z-index: 9;
}

p.isc-source-text a {
  color: #fff;
}

/* newsletter */

h2.newsletter.headline::before {
	content: '';
	width: calc(1em * var(--golden-line-factor));
	height: 400px;
	display: block;
	position: absolute;
	background-color: var(--tertiary-color);
	left: calc(1em * var(--golden-line-factor) * (-3));
	bottom: .31em;
	z-index: -1;
}

.newsletter.content {
	min-height: 250px;
	display: flex;
	padding: var(--newsletter-registration-box-padding);
	background-color: var(--secondary-color);
	color: #fff;
}

.newsletter.info-text {
	width: 65%;
	height: 100%;
	display: flex;
	flex-direction: column;
/* 	justify-content: space-between; */
	gap: 1.2em;
	font-size: calc(var(--newsletter-font-size) * var(--lvu-schrift));
	padding-right: calc(var(--newsletter-registration-box-padding) / 2);
}

.newsletter.info-text-paragraph {
	
}

.newsletter #mailpoet_form_1 {
	width: 35%;
/* 	display: none; */
}

.newsletter.registration-form,
.newsletter #mailpoet_form_1 form.mailpoet_form {
/*   width: 35%; */
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	margin: 0;
}

.newsletter.registration-form {
	display: none;
}

.newsletter #mailpoet_form_1 form.mailpoet_form {
	position: relative;
  padding: 0;
}

.newsletter.registration-form > *,
.newsletter #mailpoet_form_1 .mailpoet_paragraph {
	height: var(--newsletter-form-elements-height);
	margin: 0;
}

.newsletter.registration-form input {
	padding: 0 1em;
	font-size: calc(var(--newsletter-form-inputs-font-size) * var(--lvu-schrift));
	color: var(--secondary-color);
}

.newsletter #mailpoet_form_1 input {
	height: 100%;
	padding: 0 1em !important;
	font-size: calc(var(--newsletter-form-inputs-font-size) * var(--lvu-schrift));
	color: var(--secondary-color);
}

.newsletter.register.button {
	padding: 0;
	background-color: var(--tertiary-color);
	font-size: calc(var(--newsletter-register-button-font-size) * var(--lvu-schrift));
	color: var(--focus-dark);
	cursor: pointer;
}

.newsletter #mailpoet_form_1 input.mailpoet_submit {
	background-color: var(--tertiary-color);
	font: var(--bold-font);
	font-size: calc(var(--newsletter-register-button-font-size) * var(--lvu-schrift));
	text-transform: uppercase;
	color: var(--focus-dark); /* Weiß auf Gold hatte 2,35:1, jetzt 6,74:1 */
	cursor: pointer;
}

.newsletter #mailpoet_form_1 .mailpoet_message {
	position: absolute;
/* 	bottom: -5em; */
/* 	height: 50px; */
/* 	background-color: greenyellow; */
}

.newsletter #mailpoet_form_1 .parsley-errors-list {
	font-size: .75em;
	line-height: .75em;
	margin-top: 5px;
}

/* Kacheln der LinkedIn-Beiträge auf der Startseite (assets/css/linkedin.css), früher Twitter */

/* who we are */

#front-who-we-are {
	overflow: visible;
}

h2.who-we-are.headline {
	margin-left: 50%;
}

h2.who-we-are.headline::before {
	content: '';
	width: 100vw;
	height: calc(var(--h2-front-font-size) * var(--golden-line-factor));
	display: block;
	position: absolute;
	bottom: .32em;
	left: calc(-100vw - .2em);
	background-color: var(--tertiary-color);
}

.who-we-are.content {
	display: grid;
	grid-template-columns: auto auto;
}

.who-we-are.image {
	width: var(--square-image-width);
	height: var(--square-image-height);
	margin: auto 0;
	object-fit: cover;
	z-index: 3;
}

.who-we-are.text {
	width: var(--square-width);
	height: var(--square-height);
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-left: calc(var(--square-padding) / 2 * (-1));
	padding: var(--square-padding);
	background-color: var(--secondary-color);
	text-align: right;
	font-size: calc(var(--square-font-size) * var(--lvu-schrift));
	color: #fff;
}

.who-we-are.text span {
	margin-top: 1.2em;
}

/* what we do */

#front-what-we-do {
	overflow: visible;
}

h2.what-we-do.headline {
	margin-right: calc(var(--content-width) - var(--square-width));
	color: var(--secondary-color);
}

h2.what-we-do.headline::after {
	content: '';
	width: calc(var(--h2-front-font-size) * var(--golden-line-factor));
	height: calc(2em + var(--square-height) + 300px);
	display: block;
	position: absolute;
	top: .18em;
	right: calc(1em * var(--golden-line-factor) * (-3));
	background-color: var(--tertiary-color);
	z-index: -1;
}

.what-we-do.content {
	display: grid;
	grid-template-columns: auto auto;
}

.what-we-do.text {
	width: var(--square-width);
	height: var(--square-height);
	display: flex;
	align-items: center;
	padding: var(--square-padding);
	background-color: var(--primary-color);
	font-size: calc(var(--square-font-size) * var(--lvu-schrift));
	color: #fff;
}

/* MAIN - PAGE (NOT FRONT-PAGE)  */

body:not(.home) {
	font-size: calc(var(--page-single-font-size) * var(--lvu-schrift));
}

body:not(.home) > main > section:first-child {
	padding-top: 50px;
}

body:not(.home) h2,
body:not(.home) h3,
body:not(.home) h4,
body:not(.home) h5,
body:not(.home) h6 {
	margin-top: 1.5em;
}

/* failed login */

body.page-anmeldung-fehlgeschlagen main #wppb-login-wrap {
  min-height: 17em;
  width: 100%;
	max-width: 550px;
	padding: 2em;
	background-color: var(--secondary-color);
}

body.page-anmeldung-fehlgeschlagen main #wppb-login-wrap form#wppb-loginform > p {
  min-height: 2.5em;  
}

body.page-anmeldung-fehlgeschlagen main #wppb-login-wrap form#wppb-loginform > p > input#rememberme {
	min-width: 20px;
	min-height: 20px;
}

body.page-anmeldung-fehlgeschlagen main #wppb-login-wrap form#wppb-loginform > p.login-remember > label {
  color: #fff;  
}

body.page-anmeldung-fehlgeschlagen main .wp-block-button {
	width: 100%;
	max-width: 550px;
}

body.page-anmeldung-fehlgeschlagen main .wp-block-button > a {
	width: 100%;
}

/* account-settings */

.admin-bar p#wppb_form_general_message {
	padding-top: 6px;
}

form#select_user_to_edit_form {
	display: none;
}

form#wppb-edit-user {
	max-width: 550px;
	display: flex;
	flex-direction: column;
	gap: 2.25rem;
	padding: 2em;
	background-color: var(--secondary-color);
}

form#wppb-edit-user > ul:nth-child(1) {
	margin: 0;
}

form#wppb-edit-user > ul:nth-child(2) {
	display: none;
}

form#wppb-edit-user > ul > li.wppb-form-field {
	padding: 0;
}

form#wppb-edit-user > ul > li.wppb-form-field:not(:nth-child(1)) {
	margin-top: 1.25rem;
}

form#wppb-edit-user > ul > li.wppb-field-error {
	margin-bottom: 0 !important;
	padding: 0 !important;
	background-color: initial;
	border: none;
}

form#wppb-edit-user > ul > li.wppb-form-field label {
	width: unset;
	position: static;
	margin-bottom: .25em;
	text-indent: 0;
	color: #fff;
}

form#wppb-edit-user > ul > li.wppb-form-field label span.wppb-required {
	color: inherit;
}

form#wppb-edit-user > ul > li.wppb-form-field input.text-input {
	height: 2.5em;
	padding: 0 .5em;
	border: none;
	border-radius: unset;
}

form#wppb-edit-user > ul > li.wppb-field-error input.text-input {
	background-color: var(--error-background-red);
}

form#wppb-edit-user > ul > li.wppb-field-error span.wppb-form-error {
	font-size: .8em;
	color: var(--error-on-dark); /* vorher Rot auf Dunkelblau 1,61:1, jetzt 5,91:1 */
}

form#wppb-edit-user > p.form-submit {
	margin: 0;
}

form#wppb-edit-user > p.form-submit > input#edit_profile {
	width: 100%;
	height: 2.5em;
	background-color: var(--primary-color);
	color: #fff;
	cursor: pointer;
}

form#wppb-edit-user > p.form-submit > input#edit_profile:hover {
	color: var(--hover-color);
	transition: all .3s ease-out;
}

/* reset password */

form#wppb-recover-password ul {
	max-width: 550px;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	margin-bottom: 0;
	padding: 2em 2em 1.25rem;
	background-color: var(--secondary-color);
}

form#wppb-recover-password ul li {
	min-height: 2.5em;
	margin: 0;
	padding: 0;
}

form#wppb-recover-password ul li input {
	height: 100%;
	padding: 0 .5em;
	border: none;
	border-radius: unset;
}

form#wppb-recover-password p.form-submit {
	max-width: 550px;
	margin: 0;
	padding: 0 2em 2em;
	background-color: var(--secondary-color);
}

form#wppb-recover-password p.form-submit input.submit.button {
	width: 100%;
	height: 2.5em;
	padding: 0 .5em;
	background-color: var(--primary-color);
	color: #fff;
	cursor: pointer;
}

form#wppb-recover-password p.form-submit input.submit.button:hover {
	color: var(--hover-color);
	transition: all .3s ease-out;
}

/* MAIN - SINGLE */

.single.featured-image-container {
	width: 100vw;
  position: relative;
	margin: -50px 0 var(--h1-font-size) calc((100vw - var(--content-width)) / (-2));
}

.single.featured-image {
  width: 100%;
	height: 400px;
	object-fit: cover;
}

.single.post-info-container {
	display: flex;
/*	flex-direction: column; */
	margin-bottom: 1.5em;
/* 	font-size: 20px; */
}

.single.appointment.post-info-container,
.single.job.post-info-container,
.single.event.post-info-container {
	flex-direction: column;
}

.single.post-info {
	display: flex;
	margin: 0 1.5em .5em 0;
}

.single.post-icon {
	color: var(--secondary-color);
  padding-top: .75px;
	margin-top: -2px;
  margin-right: .5em;
}

section.single:not(.member-organisation, .person) .single.post-icon + * {
	font: var(--bold-font);
}

.single.post-category a {
	color: #000;
  text-decoration: none;
}

.single.post-category a:hover {
  text-decoration: underline;
}

.single.post-date {
	margin-right: 1.5em;
}

/* MAIN - SINGLE-APPOINTMENT */

.single.appointment.date,
.single.appointment.location {
	margin-right: 1.5em;
}

.single.appointment.link {
	text-decoration: none;
}

/* MAIN - SINGLE-PERSON */

.single.person.container {
	display: flex;
	justify-content: space-between;
}

.single.person.content {
	width: calc(var(--content-width) * var(--single-person-text-width-factor));
}

.single.person.content > p:first-child {
	margin-top: 0;
}

.single.person.image-functions-contact-social {
	width: calc(var(--content-width) * var(--single-person-ifcs-width-factor));
	display: flex;
	flex-direction: column;
}

.single.person.image-functions-contact-social:only-child {
	width: calc(var(--content-width) * var(--single-person-ifcs-solo-width-factor));
	align-items: center;
	margin: 0 auto;
}

.single.person.image {
	width: var(--single-person-image-width);
	height: var(--single-person-image-height);
}

.single.person.functions-contact-social {
	width: var(--single-person-image-width);
}

.single.person.functions {
	padding-top: 1em;
	font: var(--bold-font);
	color: var(--secondary-color);
}

.single.person.function {
	font-size: calc(var(--h3-font-size) * var(--lvu-schrift));
	text-transform: uppercase;
}

.single.person.additional-function {
	padding-top: 5px;
	font-size: calc(var(--h4-font-size) * var(--lvu-schrift));
}

.single.person.contact-item {
	display: flex;
	margin: 15px 0;
}

.single.person.contact-icon {
	width: 1.5em;
	flex-shrink: 0;
	color: var(--secondary-color);
}

.single.person.contact-text {
	text-decoration: none;
}

.single.person.social {
	display: flex;
	flex-wrap: wrap;
	margin-top: 25px;
}

.single.person.social-item {
	display: flex;
	justify-content: center;
	align-items: center;
	width: calc(var(--content-width) * var(--single-person-ifcs-width-factor) * var(--single-person-image-width-factor) * 1/5);
	height: calc(var(--content-width) * var(--single-person-ifcs-width-factor) * var(--single-person-image-width-factor) * 1/5);
	background-color: var(--primary-color);
	font-size: calc(var(--content-width) * var(--single-person-ifcs-width-factor) * var(--single-person-image-width-factor) * 1/5 * .5);
	color: #fff;
	text-decoration: none;
}

.single.person.press-image {
	display: flex;
	margin-top: 25px;
}

.single.person.image-functions-contact-social:only-child .single.person.social-item {
	width: calc(var(--content-width) * var(--single-person-ifcs-solo-width-factor) * var(--single-person-image-width-factor) * 1/5);
	height: calc(var(--content-width) * var(--single-person-ifcs-solo-width-factor) * var(--single-person-image-width-factor) * 1/5);
	font-size: calc(var(--content-width) * var(--single-person-ifcs-solo-width-factor) * var(--single-person-image-width-factor) * 1/5 * .5);
}

.single.person.social-item:nth-of-type(even) {
	background-color: var(--secondary-color);
}

.single.person.social-item:hover {
	color: var(--hover-color);
	transition: all .3s ease-out;
}

/* MAIN - SINGLE-MEMBER-ORGANISATION */

.single.member-organisation.container {
	display: flex;
	flex-direction: column;
}

.single.member-organisation.meta {
	display: flex;
	justify-content: space-between;
}

.single.member-organisation.address-contact {
	width: 55%;
	display: flex;
	flex-direction: column;
}

.single.member-organisation.contact {
	margin-top: 1.2em;
}

.single.member-organisation.address-item,
.single.member-organisation.contact-item {
	display: flex;
	gap: 7.5px;
}

.single.member-organisation.address-item.postal {
	margin-top: 1.2em;
}

.single.member-organisation.address-icon,
.single.member-organisation.contact-icon {
	color: var(--secondary-color);
}

.single.member-organisation.contact-text {
	text-decoration: none;
}

.single.member-organisation.logo-container {
	width: 40%;
}

img.single.member-organisation.logo {
	width: 100%;
/* 	height: 100%; */
	object-fit: contain;
}

/* MAIN - ARCHIVE */

/* general */

body:not(.home) .archive h2,
body:not(.home) .archive h3,
body:not(.home) .archive h4,
body:not(.home) .archive h5,
body:not(.home) .archive h6 {
	width: 100%;
	text-align: left;
}

.archive.categories {
  display: flex;
  gap: .75em;
  flex-wrap: wrap;
}

.archive.category-button.active {
  text-decoration: none;
  color: var(--primary-color);
  font-weight: 700; /* nicht nur über die Farbe erkennbar (1.4.1) */
}

.archive.posts-container a {
	text-decoration: none;
}

.archive.post {
  width: 100%;
  min-height: 250px;
  display: flex;
/* 	justify-content: flex-end; */
  position: relative;
  background-color: var(--primary-color);
	font-size: calc(var(--archive-post-font-size) * var(--lvu-schrift));
	color: #fff;
}

.archive.post:nth-of-type(2n) {
  flex-direction: row-reverse;
  margin: 50px 0;
}

.archive.post:last-of-type {
  margin-bottom: 50px;
}

.archive.post-image-link {
	width: 250px;
	height: 100%;
	display: flex;
	position: relative;
}

.archive.post > .post-image-link {
	height: unset;
}

.archive.post-image {
  width: 100%;
  height: 100%;
  flex-shrink: 0;
  object-fit: cover;
  position: absolute;
}

.archive.post-body {
  width: 100%;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  padding: 20px;
	overflow: hidden;
}

.archive.post-image-link + .archive.post-body {
  width: calc(100% - 250px);
}

.archive.post:nth-of-type(2n) .archive.post-image {
  right: 0;
}

.archive.post:nth-of-type(2n+1) .archive.post-image {
  left: 0;
}

h2.archive.post-headline {
/*   max-height: calc(1.3em * 3 + 2px); */
	margin-top: 0;
  overflow: hidden;
	font-size: calc(var(--h2-archive-font-size) * var(--lvu-schrift));
}

h2.archive.post-headline a {
  color: #fff; /* Dunkelblau auf #006daf hätte 1,48:1 */
}

.archive.post-info-container {
  display: flex;
  margin-bottom: .5em;
	font-size: 16px;
}

.archive.post-info {
	display: flex;
}

.archive.post-icon {
  padding-top: .75px;
	margin-top: -1px;
  margin-right: .5em;
}

.archive.post-info:not(:last-child) > *:last-child {
	margin-right: 1.5em;
}

.archive.post-category a {
	color: #fff;
}

.archive.post-teaser {
  height: calc(1.2em * 2);
  position: relative;
/*   text-align: justify; */
  overflow: hidden;
	hyphens: auto;
}

.archive.post-teaser::after {
  content: "";
  text-align: right;
  position: absolute;
  bottom: 0;
  right: 0;
  width: 150px;
  height: 1.2em;
	background: linear-gradient(to right, transparent, var(--primary-color-rgba));
  background: -webkit-linear-gradient(left, var(--ios-transparent-primary), var(--primary-color-rgba));
}

.archive.post-teaser > p {
	margin: 0;
}

.archive.read-more-container {
  margin-top: .5em;
}

.archive.read-more {
	position: relative;
	color: #fff;
}

.archive.post-category a:hover,
.archive.read-more:hover {
	color: #fff;
	text-decoration: underline;
	transition: all .3s ease-out;
}

.archive.read-more::after {
	content: '';
	width: calc(1em * var(--golden-line-factor));
	height: 3em;
	display: block;
	position: absolute;
	top: .22em;
	right: calc(1em * var(--golden-line-factor) * (-3));
	background-color: var(--tertiary-color);
}

/* appointment */

.archive.appointment.post {
	background-color: var(--secondary-color);
}

h2.archive.appointment.post-headline a {
	color: #8fd8f8; /* auf #005578 5,19:1 (vorher #009fe3: 2,75:1) */
}

.archive.appointment.post-teaser::after {
	background: linear-gradient(to right, transparent, var(--secondary-color-rgba));
	background: -webkit-linear-gradient(left, var(--ios-transparent-secondary), var(--secondary-color-rgba));
}

.archive.appointment.former-appointments {
	display: flex;
	justify-content: center;
	margin-top: 2.5em;
}

/* job */

.archive.job.post-info {
	display: flex;
}

/* member-information */

.archive.member-information.categories {
  margin-bottom: 2em;
}

.archive.member-information.category-description {
  margin-bottom: 2em;
	padding: 2em;
	background-color: var(--secondary-color);
	color: #fff;
}

.archive.member-information.category-description h2,
.archive.member-information.category-description h3 {
  margin-top: 0;
  margin-bottom: 1em;
}

.archive.member-information.category-description p {
  margin: 0;
}

.archive.member-information.category-description a {
  color: #fff;
	text-decoration-color: #fff;
}

.archive.member-information.category-description a:hover {
  color: var(--hover-color);
	text-decoration-color: var(--hover-color);
}

/* sw-news */

.archive.sw-news.categories {
  margin-bottom: 2em;
}

.archive.sw-news.category-description {
  margin-bottom: 2em;
	padding: 2em;
	background-color: var(--secondary-color);
	color: #fff;
}

.archive.sw-news.category-description h2,
.archive.sw-news.category-description h3 {
  margin-top: 0;
  margin-bottom: 1em;
}

.archive.sw-news.category-description p {
  margin: 0;
}

.archive.sw-news.category-description a {
  color: #fff;
	text-decoration-color: #fff;
}

.archive.sw-news.category-description a:hover {
  color: var(--hover-color);
	text-decoration-color: var(--hover-color);
}

/* search-results */

section#search-results h1 + h2 {
	margin-bottom: 1em;
}

/* pagination */

.pagination {
	width: 100%;
	display: flex;
	justify-content: center;
}

.pagination > * {
	display: flex;
	padding-top: 1px;
	text-decoration: none;
}

.page-numbers:not(.prev, .next) {
	min-width: 25px;
	min-height: 25px;
	padding: 0 .2em;
	justify-content: center;
	align-items: center;
	margin: 0 2.5px;
	background-color: var(--primary-color);
	color: #fff;
}

.page-numbers.prev,
.page-numbers.next {
	margin: 0 10px;
}

.page-numbers.current {
	background-color: var(--tertiary-text-color); /* Weiß darauf 5,11:1 (vorher 2,35:1) */
}

.page-numbers:not(.prev, .current, .next):hover {
	background-color: var(--secondary-color);
	transition: all .3s ease-out;
}

.page-numbers.prev:hover,
.page-numbers.next:hover {
	color: var(--secondary-color);
	transition: all .3s ease-out;
}

/* MAIN - SHORTCODES */

/* person */

.person-shortcode {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 1em;
}

.person-shortcode + .person-shortcode {
	margin: 2em 0;
}

h2 + .person-shortcode,
h3 + .person-shortcode,
h4 + .person-shortcode,
h5 + .person-shortcode,
h6 + .person-shortcode {
	margin-top: .5em;
}

section.page .person-shortcode + h2 {
	margin-top: 2.5em;
}

.person-shortcode a {
	display: flex;
	text-decoration: none;
}

.person-shortcode-image {
	width: var(--scp-image-width);
	height: var(--scp-image-height);
}

.person-shortcode-info > * {
	margin: 5px 0;
}

.person-shortcode-info *:not(.person-shortcode-name, .person-shortcode-function, .person-shortcode-contact-icon) {
	font-size: calc(var(--scp-general-font-size) * var(--lvu-schrift));
}

.person-shortcode-name {
	font: var(--bold-font);
	color: var(--primary-color);
	text-transform: uppercase;
}

.person-shortcode-function {
	font: var(--bold-font);
	color: var(--secondary-color);
}

.person-shortcode-contact {
	display: flex;
	gap: .5em;
}

.person-shortcode-contact-icon {
	font-size: var(--scp-contact-font-size);
	color: var(--secondary-color);
}

.person-shortcode-contact-text {
	display: flex;
	align-items: center;
}

.person-shortcode-social {
	display: flex;
}

.person-shortcode-social-icon {
	width: var(--scp-social-icon-width);
	height: var(--scp-social-icon-height);
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: var(--primary-color);
	color: #fff;
}

.person-shortcode-social .person-shortcode-social-icon:nth-of-type(even) {
	background-color: var(--secondary-color);
}

.person-shortcode-social-icon:hover {
	color: var(--hover-color);
	transition: all .3s ease-out;
}

/* member-organisation */

body.page-mitgliedsverbaende .wp-block-group__inner-container {
	display: flex;
	gap: 25px;
	flex-wrap: wrap;
}

a.member-organisation-shortcode {
  width: 200px;
  height: 200px;
  display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	padding: 5px;
	background-color: #fff;
	text-align: center;
  border: 1px solid var(--primary-light-color);
}

a.member-organisation-shortcode::before {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background-color: var(--primary-color);
	opacity: 0;
}

a.member-organisation-shortcode:hover::before {
	opacity: .15;
	transition: all .3s ease-out;
}

img.scmo-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
/*   object-position: center top; */
}

/* MAIN - OTHER */

/* copyright (images) */

body:not(.page-bilder-und-logos, .page-vorstand, .page-geschaeftsstelle) span.isc-source {
/*	width: 250px; */
	display: inline-flex;
	flex-grow: 0;
}

span.isc-source-text {
	top: unset !important;
	right: 0;
	bottom: 0;
	left: unset !important;
	padding: 5px !important;
	background-color: rgba(0, 0, 0, .7) !important;
	font: var(--light-font);
	font-size: calc(var(--copyright-font-size) * var(--lvu-schrift)) !important;
	opacity: 1 !important;
	z-index: 9 !important;
}

span.isc-source-text a {
	color: inherit;
}

/* FOOTER */

footer {
  width: 100vw;
	position: relative;
  background-color: var(--footer-background-color); 
  color: #fff;
	font: var(--light-font);
}

footer a {
  color: #fff;
  text-decoration: none;
}

footer a:hover {
	color: var(--hover-color);
	transition: all .3s ease-out;
}

.footer-container {
	width: 100%;
	display: grid;
	grid-template-columns: auto min-content;
	padding: 50px calc((100vw - var(--footer-content-width)) / 2 + var(--logo-area-width) + 50px) 50px calc((100vw - var(--footer-content-width)) / 2);
}

.grid-column-left {
	grid-column: 1 / 2;
}

nav#footer-menu {
	width: 100%;
	display: flex;
	font-size: calc(var(--footer-menu-font-size) * var(--lvu-schrift));
	text-transform: uppercase;
	transition: all .3s ease-out;
}

nav#footer-menu .menu-item {
	margin-bottom: 50px;
}

.copyright {
	grid-column: 1 / 2;
	grid-row: 1 / 2;
}

.grid-column-right {
	grid-column: 2 / 3; 
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
}

footer .social-media-icon {
	font-size: var(--social-media-icon-width);
	line-height: 1;
}

.footer-logo-area {
	width: var(--logo-area-width);
	height: var(--logo-area-height);
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	right: calc((100vw - var(--footer-content-width)) / 2);
	bottom: 0;
	background-color: #fff;
}

.footer-logo-container {
	width: 50%;
	height: 65%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
}

footer .footer-logo-area a {
	display: flex;
	justify-content: center;
	color: #000;
}

img#logo-bdi {
	width: 100%;
	height: auto;
}

img#logo-bda {
	width: 80%;
	height: auto;
}

/* OTHER */

#overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.5);
  visibility: hidden;
  opacity: 0;
  transition: all .3s ease-out;
}

#overlay.open {
  visibility: visible;
  opacity: 1;
}

/* WORDPRESS ALTERATIONS */

.wp-block-file {
	display: flex;
	flex-direction: column;
}

.wp-block-file * + .wp-block-file__button {
	margin-left: 0;
	margin-top: 1em;
}

.wp-block-button__link,
.wp-block-file .wp-block-file__button {
	width: fit-content;
	padding: .65em 1em;
  border-radius: unset;
  background-color: var(--secondary-color) !important;
	font: var(--bold-font);
	text-transform: uppercase;
  color: #fff;
}

.wp-block-button__link:hover,
.wp-block-file a.wp-block-file__button:hover {
	opacity: 1;
	color: var(--hover-color);
	transition: all .3s ease-out;
}

.wp-block-media-text__content > *:first-child {
	margin-top: 0;
}

.wp-block-image figure:is(.aligncenter, .alignleft, .alignright) {
	margin-top: 0;
}

.wp-block-image figure:is(.aligncenter, .alignleft, .alignright) span {
	margin-top: 0;
	margin-bottom: 0;
}

.wp-block-image img {
	width: 100%;
	height: auto;
}

.wp-block-image figure:is(.aligncenter, .alignleft, .alignright) figcaption {
	margin-right: 1.25em;
	font-size: 16px;
	text-align: center;
}

/* PLUGINS */

/* PDF Generator For WP Pro */

.wps-pgfw-pdf-generate-icon__wrapper-frontend {
  margin-top: 3em;
}

a.pgfw-single-pdf-download-button {
  flex-direction: row;
  gap: 9px;
}

/* MEDIA QUERIES */

@media (max-width: 1920px) {
	:root {
		--logo-area-width: 305px;
		--square-width: calc(100vw / 2);
/* 		--square-font-size: calc(var(--square-width) * .0292); */
/* 	--square-news-headline-font-size: calc(var(--square-width) * .0412); */
/* 	--square-news-button-font-size: calc(var(--square-width) * .03125); */
	}
}

@media (max-width: 1740px) {
	:root {
		--logo-area-width: 275px;
	}
	nav#footer-menu .menu-item {
		margin-bottom: 40px;
	}
}

@media (max-width: 1640px) {
	.footer-container{
		padding: 50px calc(50px + var(--logo-area-width) + 50px) 50px 50px;
	}
	.footer-logo-area {
		right: 50px;
	}
}

@media (max-width: 1540px) {
	section {
		padding: 100px calc((100vw - var(--content-width)) / 2);
	}
}

@media (max-width: 1440px) {
  :root {
		--social-media-icon-width: 45px;
    --logo-area-width: 215px;
		--square-image-width: calc(var(--content-width) - var(--square-width) + var(--square-padding) / 2);
  }
	h2.who-we-are.headline {
    margin-left: calc(var(--content-width) - var(--square-width));
	}
	nav#footer-menu .menu-item {
		margin-bottom: 25px;
	}
}

/* Scroll to top button */

#scroll-top {
  position: fixed;
  right: 30px;
  bottom: 30px;
  z-index: 100;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background-color: #fff;
  width: 60px;
  height: 60px;
  box-shadow: 0 3px 24px rgb(0 0 0 / 16%);
  font-size: 2rem;
  color: var(--secondary-color); /* vorher #aaa 2,32:1 */
}

@media (max-width: 1140px) {
	:root {
		--content-width: calc(100vw - 100px);
		--h1-front-font-size: 70px;
		--h2-front-font-size: 50px;
		--square-width: 570px;
/* 		--square-max-width: 570px; */
		--square-image-width: calc(var(--square-width) - var(--square-padding) * 2);
		--tweet-width: calc(var(--content-width) * .3404);
		--tweet-gap: calc(var(--content-width) * .0346);
		--twitter-icon-width: calc(var(--content-width) * .6596);
		--footer-menu-font-size: 20px;
	}
	section {
		padding: 75px 50px;
	}
	.news.post {
		grid-area: 2 / 1 / 3 / 3;
		justify-self: center;
		margin-top: calc(var(--square-padding) / 2 * (-1));
	}
	.news.image-container {
		grid-area: 1 / 1 / 2 / 3;
		justify-self: center;
		margin: 0;
	}
	h2.who-we-are.headline {
		margin-left: calc((100vw - 100px - var(--square-width)) / 2);
	}
	.who-we-are.text {
		grid-area: 1 / 1 / 2 / 3;
		justify-self: center;
		margin-left: 0;
	}
	.who-we-are.image {
		grid-area: 2 / 1 / 3 / 3;
		justify-self: center;
		margin-top: calc(var(--square-padding) / 2 * (-1));
	}
	h2.what-we-do.headline {
		margin-right: calc((100vw - 100px - var(--square-width)) / 2);
	}
	.what-we-do.text {
		grid-area: 1 / 1 / 2 / 3;
		justify-self: center;
/* 		margin-right: 0; */
	}
	.single.featured-image-container {
		margin-top: calc((100vw - var(--content-width)) / (-2));
	}
}

@media (max-width: 1040px) {
	:root {
		--newsletter-registration-box-width: calc(100vw - 100px);
		--newsletter-registration-box-padding: calc(var(--newsletter-registration-box-width) * .0419);
		--newsletter-font-size: 20px;
		--newsletter-form-elements-height: 40px;
		--newsletter-form-inputs-font-size: 14px;
		--newsletter-register-button-font-size: 24px;
		--single-person-text-width-factor: 1;
		--single-person-ifcs-width-factor: 1;
		--single-person-ifcs-solo-width-factor: 1;
		--single-person-image-width-factor: .475;
	}
	.newsletter.info-text {
    padding-right: var(--newsletter-registration-box-padding);
	}
	.single.person.container {
		flex-direction: column-reverse;
	}
	.single.person.image-functions-contact-social {
		flex-direction: row;
		justify-content: space-between;
		margin-bottom: 2em;
	}
	.single.person.image-functions-contact-social:only-child {
		margin: 0;
	}
	.footer-container {
    width: 100%;
    display: flex;
		flex-direction: column;
		align-items: flex-end;
		padding: 50px;
	}
	.grid-column-left {
		width: 100%;
		margin-bottom: 50px;
	}
	nav#footer-menu,
	ul#menu-footer-menue,
	.copyright {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		text-align: center;
	}
	.grid-column-right {
		width: 100%;
		flex-direction: row;
		align-items: flex-start;
		padding: 0 calc((100% - var(--logo-area-width)) / 2) calc(var(--logo-area-height));
	}
	.footer-logo-area {
    right: calc((100% - var(--logo-area-width)) / 2);
	}
}

@media (max-width: 940px) {
	:root {
		--tweet-width: 390px;
		--tweet-gap: 25px;
/* 		--scp-image-width: 175px;
		--scp-general-font-size: 14px;
		--scp-name-function-font-size: 16px;
		--scp-social-icon-width: 20px; */
	}

}

@media (max-width: 782px) {
  #wpadminbar ~ header {
    margin-top: 46px;
  }
	:root {
		--h1-font-size: 35px;
		--h2-font-size: 25px;
		--h3-font-size: 20px;
		--h4-font-size: 18px;
		--page-single-font-size: 18px;
		--logo-area-width: 175px;
		--single-person-image-width-factor: 1;
		--scp-image-width: 250px;
	}
	.newsletter.content {
		flex-direction: column;
	}
	.newsletter.info-text {
		width: 100%;
    padding-right: 0;
    padding-bottom: 1.6em;
	}
	.newsletter.registration-form {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
	}
	.newsletter #mailpoet_form_1 {
		width: 100%;
	}
	.newsletter #mailpoet_form_1 form.mailpoet_form {
		flex-direction: row;
		flex-wrap: wrap;
	}
	.newsletter.registration-form input {
		width: calc(50% - 10px);
	}
	.newsletter #mailpoet_form_1 .mailpoet_paragraph.name,
	.newsletter #mailpoet_form_1 .mailpoet_paragraph.e-mail {
		width: calc(50% - 10px);
	}
	.newsletter.register.button {
		width: 100%;
		margin-top: calc(var(--newsletter-form-elements-height) / 2);
	}
	.newsletter #mailpoet_form_1 .mailpoet_paragraph.register.button {
		margin-top: calc(var(--newsletter-form-elements-height) / 2);
	}
	body.page-anmeldung-fehlgeschlagen main form#wppb-loginform > p > input#rememberme + label {
		left: 2em;
	}
	.single.featured-image {
		height: 350px;
	}
	.single.person.image-functions-contact-social {
    flex-direction: column;
	}
	.archive.post,
  .archive.post:nth-of-type(even) {
    flex-direction: column;
  }
	.archive.post-image-link {
		width: 100%;
	}
  .archive.post-image {
    width: 100%;
    height: 250px;
    position: static;
  }
  .archive.post-image-link + .archive.post-body {
    width: unset;
  }
  .archive.post-body {
    min-height: 250px;
  }
	.archive.job.post-body {
		min-height: 300px;
	}
	.person-shortcode {
		flex-direction: column;
		align-items: flex-start;
		gap: .5em;
	}
	body:not(.page-bilder-und-logos) span.isc-source {
		width: unset;
	}
  
  #scroll-top {
    width: 45px;
    height: 45px;
    font-size: 1.7rem;
  }
  
}

@media (max-width: 670px) {
	:root {
		--square-width: var(--content-width);
		--square-padding: calc(var(--square-width) * .065);
	--square-font-size: calc(var(--square-width) * .0496);
	}
	.news.post {
		padding-bottom: calc(var(--square-padding) * 2);
	}
	.news.read-more-container {
		bottom: calc(var(--square-padding) * 2);
	}
	.news.read-more::before {
		height: 3em;
	}
	.archive.post-info-container {
		flex-direction: column;
		gap: .5em;
	}
}

@media (max-width: 600px) {
	:root {
		--h1-front-font-size: 50px;
		--h2-front-font-size: 35px;
		--square-news-font-size: 16px;
		--square-news-headline-font-size: 24px;
		--square-news-button-font-size: 18px;
	}
  #wpadminbar {
    position: fixed;
  }
	.news.post {
    padding-bottom: calc(var(--square-padding) * 2.5);
	}
	.news.post-teaser {
		max-height: 7.2985em;
	}
	.news.read-more-container {
		bottom: calc(var(--square-padding) * 2.5);
	}
	.newsletter.registration-form input {
    width: 100%;
	}
	.newsletter #mailpoet_form_1 .mailpoet_paragraph.name,
	.newsletter #mailpoet_form_1 .mailpoet_paragraph.e-mail {
		width: 100%;
	}
	.newsletter.registration-form input:last-of-type {
    margin-top: calc(var(--newsletter-form-elements-height) / 2);
	}
	.newsletter #mailpoet_form_1 .mailpoet_paragraph.e-mail {
		margin-top: calc(var(--newsletter-form-elements-height) / 2);
	}
	.single.member-organisation.meta {
    flex-direction: column-reverse;
    gap: 1.2em;
	}
	.single.member-organisation.address-contact,
	.single.member-organisation.logo-container {
		width: 100%;
	}
  div#wppb-login-wrap {
    height: 150px;
    width: 100%; 
  }
  div#wppb-recover-password-container ul,
  div#wppb-recover-password-container .form-submit input {
    width: 100%;
  }
/*   div#wppb-recover-password-container ul input,
  div#wppb-recover-password-container .form-submit input#wppb-recover-password-button {
    font-size: 16px;
  } */
  div.wppb_holder .wppb-success,
  div.wppb_holder .wppb-warning,
  div.wppb_holder .wppb-error {  
    width: 100%;  
  }
  
}

@media (max-width: 540px) {
	:root {
		--content-width: calc(100vw - 50px);
		--square-news-headline-font-size: 20px;
	}
	section {
		padding: 75px 25px;
	}
	h2.who-we-are.headline {
    margin-left: calc(var(--content-width) - var(--square-width));
	}
	h2.what-we-do.headline {
    margin-right: calc(var(--content-width) - var(--square-width));
	}
	.single.featured-image {
		margin-top: -50px;
	}
}

@media (max-width: 440px) {
	:root {
		--tweet-width: var(--content-width);
		--social-media-icon-width: 40px;
		--h1-font-size: 30px;
		--h2-font-size: 22px;
		--h2-archive-font-size: 18px;
		--h3-font-size: 18px;
		--h4-font-size: 16px;
		--page-single-font-size: 16px;
		--archive-post-font-size: 16px;
		--square-news-headline-font-size: 18px;
	}
	.news.post {
    padding-bottom: calc(var(--square-padding) * 3);
	}
	.news.post-teaser {
		max-height: 4.8657em;
	}
	.news.read-more-container {
		bottom: calc(var(--square-padding) * 3);
	}
	.newsletter.content {
		width: var(--square-width);
		height: var(--square-height);
		justify-content: space-between;
	}
	.newsletter.info-text {
		font-size: calc(var(--square-width) * .05);
		padding: 0;
	}
	.archive.job.post-body {
		min-height: var(--content-width);
		gap: 10px;
	}
	.footer-container {
		padding: 50px 25px;
	}
}

@media (max-width: 380px) {
	:root {
		--square-font-size: 16px;
		--square-news-headline-font-size: 16px;
		--newsletter-form-elements-height: 30px;
		--newsletter-register-button-font-size: 18px;
	}
	.news.post-teaser {
    max-height: 2.4329em;
	}
	:is(.who-we-are, .what-we-do).text {
		height: unset;
	}
	body.page-anmeldung-fehlgeschlagen main #wppb-login-wrap {
		height: 15em;
		padding: 1em;
	}
	form#wppb-edit-user {
		gap: 1.25rem;
		padding: 1em;
	}
	form#wppb-recover-password ul {
		gap: 1em;
		padding: 1em;
	}
	form#wppb-recover-password p.form-submit {
		padding: 0 1em 1em;
	}
	body.page-anmeldung-fehlgeschlagen main form#wppb-loginform > p:not(.login-submit) > input:not(#wppb-submit),
	body.page-anmeldung-fehlgeschlagen main form#wppb-loginform > p > input#rememberme + label,
	body.page-passwort-zuruecksetzen main form#wppb-recover-password > ul > li > input {
		font-size: 14px;
	}
	.archive.post-image {
    height: var(--content-width);
  }
	.archive.post-body {
		min-height: var(--content-width);
	}
}

/* ------------------------------------------------------------------
   Barrierefreiheit
   ------------------------------------------------------------------ */

/* Nur für Screenreader sichtbar (entspricht der WordPress-Konvention). */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

/* Skip-Link: erscheint erst bei Tastaturfokus. */
.skip-link:focus,
.screen-reader-text:focus {
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, .6);
  clip: auto !important;
  clip-path: none;
  color: var(--secondary-color);
  display: block;
  font-size: 1rem;
  font-weight: 700;
  height: auto;
  left: 8px;
  line-height: normal;
  padding: 16px 24px;
  text-decoration: none;
  top: 8px;
  width: auto;
  z-index: 100000;
}

/* Sichtbarer Fokus-Indikator – nie ohne Ersatz entfernen.
   Zweifarbig (1.10.0): innen weiß, außen dunkel – sichtbar auf Weiß, auf den blauen
   Flächen und auf Fotos (vorher #00568f: auf Dunkelblau 1,06:1, auf dem Menü 2,59:1). */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--focus-dark);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #fff;
}

/* Ziel des Skip-Links: wird per Skript nie fokussiert, nur per Sprung – kein Rahmen um den
   ganzen Inhalt */
main[tabindex="-1"]:focus {
  outline: none;
  box-shadow: none;
}

/* Die früheren klickbaren <div>-Elemente sind jetzt <button>. */
#scroll-top,
#header-main-menu-toggle,
#header-top-menu-toggle,
.header-icon-button,
.close-icon,
.submenu-toggle-indicator {
  background: none;
  border: 0;
  cursor: pointer;
  font: inherit;
  color: inherit;
  padding: 0;
  text-align: inherit;
}

/* Der Button umschliesst jetzt .header-icon. Da .header-icon mit
   height:100% arbeitet, muss der Button die Hoehe durchreichen -
   sonst verliert das Icon seine vertikale Zentrierung. */
.header-icon-button {
  height: 100%;
  display: flex;
  align-items: center;
}

/* Fokus nicht unter dem festen Kopf (2.4.11): Sprungziele und per Tab erreichte Elemente
   halten Abstand. Gescrollt wird der Viewport (overflow von body geht an ihn über), zur
   Sicherheit steht der Wert auch an body. */
:root {
  --kopf-oben: 0px;
  --kopf-admin: 0px;
}

:root:has(#header-top-menu) {
  --kopf-oben: var(--top-menu-height);
}

:root:has(#wpadminbar) {
  --kopf-admin: 32px;
}

@media (max-width: 782px) {
  :root:has(#wpadminbar) {
    --kopf-admin: 46px;
  }
}

html,
body {
  scroll-padding-top: calc(var(--main-menu-height) + var(--kopf-oben) + var(--kopf-admin) + 1rem);
}

/* Weiches Scrollen (vorher jQuery-Animation) nur ohne „Bewegung reduzieren" */
@media (prefers-reduced-motion: no-preference) {
  html:not(.lvu-ruhig) {
    scroll-behavior: smooth;
  }
}

/* Statt -webkit-text-size-adjust: none (verhinderte auf iOS das Vergrößern von Text) */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* --- Menüs: Aufklapp-Buttons (inc/a11y.php, assets/js/header.js) ------------------- */

@media (min-width: 1141px) {

  /* Desktop: Der Pfeil erscheint nur bei Tastaturfokus oder offenem Untermenü, mit der
     Maus öffnet weiter :hover. Steht unter dem Menüpunkt, damit die Abstände bleiben. */
  nav#header-main-menu > ul.menu > li.menu-item-has-children > .submenu-toggle-indicator,
  nav#header-top-menu > ul.menu > li.menu-item-has-children > .submenu-toggle-indicator {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: 50%;
    bottom: .25em;
    min-width: 24px;
    min-height: 24px;
    width: 1.5em;
    height: 1em;
    transform: translateX(-50%);
    font-size: .8em;
    color: #fff;
    opacity: 0;
    pointer-events: none;
    z-index: 3;
  }

  nav#header-top-menu > ul.menu > li.menu-item-has-children > .submenu-toggle-indicator {
    bottom: -12px;
    background-color: var(--secondary-color);
  }

  /* :is() mit IDs, damit es die Regel oben (opacity: 0) schlägt */
  :is(nav#header-main-menu, nav#header-top-menu) > ul.menu > li.menu-item-has-children > .submenu-toggle-indicator:focus-visible,
  :is(nav#header-main-menu, nav#header-top-menu) > ul.menu > li.menu-item-has-children.sub-menu-open > .submenu-toggle-indicator {
    opacity: 1;
    pointer-events: auto;
  }

  :is(nav#header-main-menu, nav#header-top-menu) li.menu-item-has-children.sub-menu-open > .submenu-toggle-indicator > span {
    display: inline-block;
    transform: rotate(180deg);
  }

  /* Untermenü per Button offen (auch per Tastatur) */
  nav#header-main-menu > ul.menu > li.menu-item.sub-menu-open > ul.sub-menu,
  nav#header-top-menu > ul.menu > li.menu-item.sub-menu-open > ul.sub-menu {
    opacity: 1;
    z-index: 2;
    visibility: visible;
  }

  nav#header-main-menu > ul.menu > li.menu-item.sub-menu-open > a,
  nav#header-top-menu > ul.menu > li.menu-item.sub-menu-open > a {
    background-color: var(--secondary-color);
  }

  /* Escape schließt auch ein per Maus geöffnetes Untermenü (1.4.13), bis die Maus geht */
  :is(nav#header-main-menu, nav#header-top-menu) > ul.menu > li.menu-item.hover-geschlossen:not(.sub-menu-open):hover > ul.sub-menu {
    opacity: 0;
    visibility: hidden;
  }

  :is(nav#header-main-menu, nav#header-top-menu) > ul.menu > li.menu-item.hover-geschlossen:not(.sub-menu-open):hover::after {
    opacity: 0;
  }
}

/* Mobil: Pfeil-Button 62,5 × 75 px wie zuvor das <i>, Symbol im <span> */
.submenu-toggle-indicator > span {
  display: inline-block;
  transition: transform .2s ease-out;
}

/* --- Panels im Kopf (Suche, Darstellung, Mitglieder) -------------------------------- */

/* Die Panels öffnen per Button (.panel-open), nicht mehr per :focus-within – das öffnete sie
   schon beim Durchtabben, aria-expanded stimmte nicht. */
nav#header-main-menu > #header-icons-container > .header-icon-container > .sub-menu {
  align-items: flex-start;
  gap: 1em;
  font: var(--regular-font);
  font-size: 18px;
  text-transform: none;
}

nav#header-main-menu .panel-schliessen {
  width: 32px;
  height: 32px;
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-size: 24px;
  color: #fff;
}

nav#header-main-menu .members-login-logout.login .panel-schliessen {
  position: absolute;
  top: 0;
  right: 0;
}

nav#header-main-menu .panel-schliessen:hover {
  color: var(--hover-color);
}

/* Suche im Kopf (die Regeln für form#search-form griffen nicht mehr) */
nav#header-main-menu .search-form > div {
  display: flex;
  gap: .5em;
}

nav#header-main-menu .search-form input[type="search"] {
  width: 15em;
  min-height: 2em;
  padding: 0 .5em;
  border: 1px solid #fff;
  font: var(--regular-font);
  font-size: inherit;
}

nav#header-main-menu .search-form .search-submit {
  min-height: 2em;
  padding: 0 1em;
  background-color: var(--primary-color);
  font: var(--bold-font);
  text-transform: uppercase;
  color: #fff;
}

/* Hover auf Flächen in #006daf: Fläche dunkler, Schrift Hellgold (Gold auf #006daf: 2,35:1) */
nav#header-main-menu .search-form .search-submit:hover,
nav#header-main-menu .members-login-logout.logout a:hover,
form#wppb-loginform > p > input#wppb-submit:hover,
form#wppb-edit-user > p.form-submit > input#edit_profile:hover,
form#wppb-recover-password p.form-submit input.submit.button:hover,
.single.person.social-item:hover,
.person-shortcode-social-icon:hover {
  background-color: var(--secondary-color);
  color: var(--hover-color);
}

/* Anmeldeformular: sichtbare Beschriftungen statt nur Platzhalter (3.3.2). Profile Builder
   („Placeholder Labels") schiebt die Labels sonst aus dem Bild. */
.wppb-user-forms #wppb-loginform .login-username label,
.wppb-user-forms #wppb-loginform .login-password label,
#wppb-recover-password ul li.wppb-form-field label {
  position: static;
  left: auto;
  text-indent: 0;
  display: block;
  margin: 0 0 .25em;
  padding: 0;
  font: var(--regular-font);
  font-size: .85em;
  text-transform: none;
  color: #fff;
}

form#wppb-loginform > p.login-username,
form#wppb-loginform > p.login-password {
  height: auto;
  flex-direction: column;
}

form#wppb-loginform .wppb-password-field-container {
  width: 100%;
  display: flex;
}

form#wppb-loginform input#wppb_user_login,
form#wppb-loginform input#wppb_user_pass {
  width: 100%;
  min-height: 1.75em;
  padding: 0 .5em;
  border: none;
  border-radius: 0;
}

nav#header-main-menu .wppb-user-forms {
  height: auto;
}

nav#header-main-menu .members-login-logout.login {
  gap: .75em;
  padding-right: 40px;
}

nav#header-main-menu form#wppb-loginform {
  gap: .75em;
}

nav#header-main-menu a.login-auf-seite {
  text-decoration: underline;
}

body.page-anmeldung-fehlgeschlagen main #wppb-login-wrap form#wppb-loginform {
  gap: 1em;
}

form#wppb-recover-password ul li input {
  min-height: 2.5em;
}

/* Newsletter (MailPoet): Beschriftungen über den Feldern (Migration Schritt 6) */
.newsletter #mailpoet_form_1 .mailpoet_paragraph:not(.register) {
  height: auto;
}

.newsletter #mailpoet_form_1 .mailpoet_paragraph:not(.register) input {
  height: var(--newsletter-form-elements-height);
}

.newsletter #mailpoet_form_1 label,
.mailpoet_form label.mailpoet_text_label,
.mailpoet_form label.mailpoet_select_label {
  display: block;
  margin-bottom: .25em;
}

.newsletter #mailpoet_form_1 label {
  font-size: calc(var(--newsletter-form-inputs-font-size) * 1.15 * var(--lvu-schrift));
  color: #fff;
}

/* --- Darstellung anpassen (inc/a11y.php, assets/js/header.js) ----------------------- */

.lvu-darstellung {
  width: 20em;
  display: flex;
  flex-direction: column;
  gap: .6em;
  color: #fff;
}

.lvu-darstellung-titel {
  margin: 0 0 .2em;
  font: var(--bold-font);
  font-size: 1.1em;
  text-transform: uppercase;
}

.lvu-darstellung-label {
  display: block;
  margin-bottom: .3em;
}

.lvu-darstellung-stufen {
  display: flex;
  gap: .4em;
}

.lvu-darstellung button {
  min-height: 44px;
  padding: .4em .7em;
  border: 2px solid #fff;
  background-color: transparent;
  font: var(--regular-font);
  font-size: 1em;
  text-transform: none;
  text-align: left;
  color: #fff;
  cursor: pointer;
}

.lvu-darstellung-stufen button {
  flex: 1 1 0;
  text-align: center;
}

.lvu-darstellung-stufen button[data-lvu-schrift="125"] {
  font-size: 1.15em;
}

.lvu-darstellung-stufen button[data-lvu-schrift="150"] {
  font-size: 1.3em;
}

.lvu-darstellung button:hover {
  color: var(--hover-color);
  border-color: var(--hover-color);
}

/* Gewählt: weiße Fläche, Dunkelblau (8,17:1) – nicht nur über Farbe, auch Häkchen */
.lvu-darstellung button[aria-pressed="true"] {
  background-color: #fff;
  color: var(--secondary-color);
  font: var(--bold-font);
  font-size: inherit;
}

.lvu-darstellung-stufen button[aria-pressed="true"][data-lvu-schrift="125"] {
  font-size: 1.15em;
}

.lvu-darstellung-stufen button[aria-pressed="true"][data-lvu-schrift="150"] {
  font-size: 1.3em;
}

.lvu-darstellung-schalter {
  display: flex;
  align-items: center;
  gap: .6em;
}

.lvu-darstellung-anzeige {
  width: 1.1em;
  height: 1.1em;
  display: inline-flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  border: 2px solid currentColor;
  line-height: 1;
}

.lvu-darstellung button[aria-pressed="true"] .lvu-darstellung-anzeige::after {
  content: "\2713";
}

.lvu-darstellung button.lvu-darstellung-zuruecksetzen {
  min-height: 0;
  padding: .2em 0;
  border: 0;
  text-decoration: underline;
}

.lvu-darstellung-hinweis {
  margin: 0;
  font-size: .8em;
}

@media (max-width: 782px) {
  .lvu-darstellung {
    width: 100%;
  }
}

/* Schriftgröße: Faktor für die Inhaltsschriften (style.css: calc(… * var(--lvu-schrift)))
   und für alles in rem. Der Kopf bleibt (feste Höhen, Browser-Zoom wirkt dort). */
html.lvu-schrift-125 {
  --lvu-schrift: 1.25;
  font-size: 20px;
}

html.lvu-schrift-150 {
  --lvu-schrift: 1.5;
  font-size: 24px;
}

/* Feste Quadrate auf der Startseite wachsen mit, statt Text abzuschneiden */
html:is(.lvu-schrift-125, .lvu-schrift-150, .lvu-abstand) :is(.news.post, .who-we-are.text, .what-we-do.text) {
  height: auto;
  min-height: var(--square-height);
}

html:is(.lvu-schrift-125, .lvu-schrift-150, .lvu-abstand) :is(.news.post-teaser, .archive.post-teaser) {
  max-height: none;
  height: auto;
}

html:is(.lvu-schrift-125, .lvu-schrift-150, .lvu-abstand) :is(.news.post-teaser, .archive.post-teaser)::after {
  display: none;
}

html:is(.lvu-schrift-125, .lvu-schrift-150, .lvu-abstand) .news.read-more-container {
  position: static;
  align-self: flex-end;
}

/* Hoher Kontrast (AAA 1.4.6: Text ≥ 7:1). Flächen dunkler, Schrift schwarz/weiß. */
html.lvu-kontrast {
  --color: #000;
  --primary-color: #00466a;          /* Weiß darauf 10,08:1 */
  --primary-color-rgba: rgba(0, 70, 106, 1);
  --ios-transparent-primary: rgba(0, 70, 106, 0);
  --primary-light-color: #00466a;
  --secondary-color: #002b40;        /* Weiß darauf 14,79:1 */
  --secondary-color-rgba: rgba(0, 43, 64, 1);
  --ios-transparent-secondary: rgba(0, 43, 64, 0);
  --main-menu-background-color: #00466a;
  --tertiary-text-color: #6b5010;    /* auf Weiß 7,55:1 */
  --hover-color: #ffe08a;            /* auf #002b40 11,47:1, auf #00466a 7,81:1 */
}

html.lvu-kontrast body,
html.lvu-kontrast footer {
  font-weight: 400;
}

html.lvu-kontrast footer {
  font: var(--regular-font);
}

html.lvu-kontrast main a:not(.button, .wp-block-button__link, .wp-block-file__button, .page-numbers) {
  color: #000;
  text-decoration: underline;
  text-decoration-color: currentColor;
}

html.lvu-kontrast main :is(.news.post, .archive.post, .what-we-do.text, .who-we-are.text, .newsletter.content, .category-description) a {
  color: #fff;
}

html.lvu-kontrast h2.archive.appointment.post-headline a {
  color: #9fe0fb;                    /* auf #002b40 10,24:1 */
}

html.lvu-kontrast :is(p.isc-source-text, span.isc-source-text) {
  background-color: rgba(0, 0, 0, .85) !important;
}

html.lvu-kontrast ::placeholder {
  color: #555;
  opacity: 1;
}

/* Animationen aus (2.3.3) */
html.lvu-ruhig *,
html.lvu-ruhig *::before,
html.lvu-ruhig *::after {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}

/* Links hervorheben (1.4.1): jeder Link im Inhalt und im Fuß unterstrichen, kräftig */
html.lvu-links :is(main, footer) a {
  text-decoration: underline !important;
  text-decoration-thickness: .12em !important;
  text-decoration-color: currentColor !important;
  text-underline-offset: .18em;
}

html.lvu-links :is(main, footer) a:is(:hover, :focus) {
  text-decoration-thickness: .22em !important;
}

/* Mehr Abstand: Werte aus 1.4.12 (Zeilen 1,5, Absatz 2 em, Buchstaben .12 em, Wörter .16 em) */
html.lvu-abstand :is(main, footer) * {
  line-height: 1.5 !important;
  letter-spacing: .12em !important;
  word-spacing: .16em !important;
}

html.lvu-abstand main p {
  margin-bottom: 2em;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Admin-Spalte: vergangene Termine ausgrauen (vorher Inline-Style). */
.lvu-past-date {
  color: #767676;
}

/* DK PDF: PDF-Symbol aus Remixicon statt Font Awesome vom CDN (1.9.0) */
.dkpdf-button-icon .fa-file-pdf-o::before {
  font-family: "remixicon";
  font-style: normal;
  content: "\ecfd";
}

/* Barrierefreiheit im Kopf: Symbol als SVG (1.14.1) – gleiche Größe wie die Remixicon-Glyphen */
.lvu-a11y-symbol svg {
	width: 1em;
	height: 1em;
	display: block;
}

.lvu-darstellung-untertitel {
	display: block;
	margin-top: .2em;
	font: var(--light-font);
	font-size: .8em;
	text-transform: none;
}
