/* ===== ALLGEMEIN ===== */

* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: 'SPD TheSans', sans-serif;
	background: none;
	height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	display: flex;
	flex-wrap: wrap;
	min-height: 100vh;
	align-items: flex-start;
	transform-style: preserve-3d;
}

p, ul {
	font-size: 15pt;
	margin-bottom: 0.5em;
	line-height: 1.6em;
	color: #000000;
}

a:link, a:active, a:visited, a:hover {
	font-size: 15pt;
	color: #E0001B;
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
	color: #ac001b;
}

a.link-button {
	display: inline-block;
	vertical-align: middle;
	padding: 1em 2.5em;
	border: 3px solid #E0001B;
	color: #E0001B;
	margin-top: 1.5em;
	margin-bottom: 0;
	transition: all 300ms ease 0ms;
	font-weight: bold;
	line-height: 1em;
}

a.link-button:hover {
	text-decoration: none;
	padding: 1em 1.75em;
	cursor: pointer;
}

a.link-button:after {
	content: "»";
	margin-left: -1em;
	transition: all 300ms ease 0ms;
	width: 1em;
	opacity: 0;
	visibility: hidden;
	display: inherit;
}

a.link-button:hover:after {
	margin-left: 0.5em;
	opacity: 1;
	visibility: initial;
}

@media screen and (max-width: 800px) {	
	p, a, a:link, a:active, a:visited, a:hover, ul  {
		font-size: 12pt;
	}
}

b, strong {
	font-weight: bold;
}

i, em {
	font-style: italic;
}

sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

h1 {
	font-family: 'SPD TheSans';
	font-size: 40pt;
	color: #E0001B;
	font-weight: bold;
	text-transform: uppercase;
	margin-bottom: 1em;
}

h2 {
	font-family: 'SPD TheSans';
	color: #E0001B;
	position: relative;
	display: inline;
	line-height: 1.4em;
	font-size: 30pt;
	font-weight: bold;
	width: 100%;
	text-align: left;
	text-transform: uppercase;
	margin: 0.5em 0 1em;
}

h3 {
	font-family: 'SPD TheSans';
	color: #E0001B;
	font-size: 22pt;
	font-weight: bold;
	margin: 0.5em 0 0.25em;
	line-height: 1.4em;
	text-transform: uppercase;
}

h4 {
	font-family: 'SPD TheSans';
	color: #E0001B;
	font-size: 15pt;
	margin: 0.5em 0 0.25em;
	line-height: 1.4em;
}

h5 {
	color: #555555;
	margin: 0;
	font-size: 12pt;
	width: 100%;
}

@media screen and (max-width: 1100px) {	
	h1 {
		font-size: 35pt;
	}
	
	h2 {
		font-size: 30pt;
	}
	
	h2 {
		font-size: 25pt;
	}
	
	h3 {
		font-size: 20pt;
	}
	
	h4 {
		font-size: 12pt;
	}
	
	h5 {
		font-size: 10pt;
	}
}

ul {
	list-style-type: none;
	list-style-position: inside;
}

ol {
	list-style-type: decimal;
	list-style-position: inside;
}

li  {
	position:relative;
	margin-left: 1em;
	line-height: 1.6em;
}

li:before  {
	content: "\2022";
	line-height: 0;
	position: absolute;
	top: 0.625em;
	left: -1em;
}

img {
	max-width: 100%;
}

label {
	font-size: 14pt;
	margin-bottom: 0.5em;
	line-height: 1.25em;
	color: #000000;
}

figcaption {
	position: absolute;
	top: 10px;
	right: 10px;
	color: white;
	font-size: 8pt;
	z-index: 10;
}

.container {
	position: relative;
	width: 100%;
	background-color: #ffffff;
	justify-content: center;
	display: flex;
	align-items: flex-start;
	padding: 3em 0;
	z-index: 5;
}

.nopadding {
	padding: 0 0 0.5em !important;
}

.nopadding-top {
	padding-top: 0em !important;
}

.nopadding-bottom {
	padding-bottom: 0 !important;
}

.row {
	width: calc(100% - 10em);
	text-align: left;
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	flex-wrap: wrap;
}

.container-spacer-top {
	float: left;
	width: 100%;
	height: 8em;
}

.container-spacer-bottom {
	float: left;
	width: 100%;
	height: 3em;
}

.half {
	width: 50%;
}

.right {
	float: right;
	padding-left: 5em;
	border-left: 5px solid #efefef;
}

.left {
	float: left;
	padding-right: 5em;
}

a.button, a.button:hover {
	color: white;
	text-decoration: none;
	text-align: center;
}

a.button > div {
	display: inline-block;
	background-color: #E0001B;
	padding: 0.75em;
	font-size: 14pt;
	font-weight: bold;
}

.BR-ON-MOBILE {
	display: none;
}

@media screen and (max-width: 800px) {
	.container {
		width: 100%;
	}
	
	.container:before, .container:after {
		min-width: 5%;
		width: 1.5em;
	}
	
	.row {
		width: 90%;
		flex-wrap: wrap;
	}
	
	.BR-ON-MOBILE {
		display: initial;
	}
}



/* ===== REDACTOR ===== */

.redactor-output .text-left {
	text-align: left;
}

.redactor-output .text-right {
	text-align: right;
}

.redactor-output .text-center, .text-center {
	text-align: center;
}

.redactor-output .text-justify {
	text-align: justify;
}

.redactor-output h1 {
	font-weight: bold;
	margin: 0 0 0.75em;
	font-size: 25pt;
}

.redactor-output h2 {
	font-weight: bold;
	margin: 0 0 0.75em;
	font-size: 20pt;
}

.redactor-output h3 {
	font-weight: bold;
	margin: 0 0 0.75em;
	font-size: 18pt;
}

.redactor-output h4 {
	font-weight: bold;
	margin: 0 0 0.75em;
	font-size: 16pt;
}

.redactor-output h5 {
	font-weight: bold;
	margin: 0 0 0.75em;
	font-size: 14pt;
}

.redactor-output h6 {
	font-weight: bold;
	margin: 0 0 0.75em;
	font-size: 12pt;
}

.redactor-output table {
	width: 100%;
}

.redactor-output td {
	border: 1px solid black;
	padding: 0.25em;
}

.pic-200px .image {
	width: 200px !important;
	height: auto !important;
	max-width: 100%;
	margin: 0.5em 0;
}

.pic-200px .image img {
	width: 200px !important;
	height: auto !important;
	top: 0 !important;
	left: 0 !important;
	transform: translate(0,0) !important;
	position: initial;
}

.pic-500px .image {
	min-height: 500px;
}


/* ===== RASTER ===== */

.grid_col {padding: 0; float: left;}

.col_100_1 {width: 100%}

.col_50-50_1 {width: calc(((100% - 4em) / 2) + 2em); padding-right: 2em;}
.col_50-50_2 {width: calc(((100% - 4em) / 2) + 2em); padding-left: 2em;}

.col_33-33-33_1 {width: calc(((100% - 8em) / 3) + 2em); padding-right: 2em;}
.col_33-33-33_2 {width: calc(((100% - 8em) / 3) + 4em); padding-left: 2em; padding-right: 2em;}
.col_33-33-33_3 {width: calc(((100% - 8em) / 3) + 2em); padding-left: 2em;}

.col_25-25-25-25_1 {width: calc(((100% - 12em) / 4) + 2em); padding-right: 2em;}
.col_25-25-25-25_2 {width: calc(((100% - 12em) / 4) + 4em); padding-left: 2em; padding-right: 2em;}
.col_25-25-25-25_3 {width: calc(((100% - 12em) / 4) + 4em); padding-left: 2em; padding-right: 2em;}
.col_25-25-25-25_4 {width: calc(((100% - 12em) / 4) + 2em); padding-left: 2em;}

.col_75-25_1 {width: calc(((100% - 4em) * (3 / 4)) + 2em); padding-right: 2em;}
.col_75-25_2 {width: calc(((100% - 4em) / 4) + 2em); padding-left: 2em;}

.col_25-75_1 {width: calc(((100% - 4em) / 4) + 2em); padding-right: 2em;}
.col_25-75_2 {width: calc(((100% - 4em) * (3 / 4)) + 2em); padding-left: 2em;}

.col_50-25-25_1 {width: calc(((100% - 8em) / 2) + 2em); padding-right: 2em;}
.col_50-25-25_2 {width: calc(((100% - 8em) / 4) + 4em); padding-left: 2em; padding-right: 2em;}
.col_50-25-25_3 {width: calc(((100% - 8em) / 4) + 2em); padding-left: 2em;}

.col_25-50-25_1 {width: calc(((100% - 8em) / 4) + 2em); padding-right: 2em;}
.col_25-50-25_2 {width: calc(((100% - 8em) / 2) + 4em); padding-left: 2em; padding-right: 2em;}
.col_25-50-25_3 {width: calc(((100% - 8em) / 4) + 2em); padding-left: 2em;}

.col_25-25-50_1 {width: calc(((100% - 8em) / 4) + 2em); padding-right: 2em;}
.col_25-25-50_2 {width: calc(((100% - 8em) / 4) + 4em); padding-left: 2em; padding-right: 2em;}
.col_25-25-50_3 {width: calc(((100% - 8em) / 2) + 2em); padding-left: 2em;}

.col_66-33_1 {width: calc(((100% - 4em) * (2 / 3)) + 2em); padding-right: 2em;}
.col_66-33_2 {width: calc(((100% - 4em) / 3) + 2em); padding-left: 2em;}

.col_33-66_1 {width: calc(((100% - 4em) / 3) + 2em); padding-right: 2em;}
.col_33-66_2 {width: calc(((100% - 4em) * (2 / 3)) + 2em); padding-left: 2em;}

@media screen and (max-width: 1200px) {
	.grid_col {
		width: 100% !important;
		padding: 0 !important;
		margin-bottom: 1em;
	}
	
	.col_25-25-25-25_1, .col_25-25-25-25_3 {
		width: calc(50% - 2em) !important;
		margin-right: 1em;
	} 
	
	.col_25-25-25-25_2, .col_25-25-25-25_4 {
		width: calc(50% - 2em) !important;
		margin-left: 1em;
	}
	
	.firstcol-mobile {
		order: -1;
	}
}



/* ===== TEXT/BILD ===== */

.ueberschrift {
	margin-bottom: 15pt;
}

.text {
	width: 100%;
}

.image {
	width: 100%;
	height: 100%;
	overflow: hidden;
	position: relative;
}

.pic-minheight .image {
	min-height: calc((540px - 2em) * (3 / 4));
}

.image img {
	position: absolute;
	top: 50%;
	left: 50%;
	max-width: none;
	min-width: 100%;
	object-fit: cover;
	min-height: 100%;
}

@media screen and (min-width: 1200.01px) { 	
	.nopicresize img {
		height: unset !important;
		min-height: unset;
		max-height: 100%;
		width: unset !important;
		min-width: unset;
		max-width: 100%;
		transform: translate(-50%,0) !important;
		top: 0;
		left: 50%;
	}
}

@media screen and (max-width: 1200px) { 
	.image {
		height: 30vh;
		min-height: 40vw;
	}
	
	.mobile-flex-1 {
		order: 1;
	}
	
	.mobile-flex-2 {
		order: 2;
	}
}



/* ===== VORSTAND ===== */

.vorstand {
	width: calc((100% - 6em) / 3);
	display: flex;
	flex-wrap: nowrap;
	margin-bottom: 3em;
}

.vorstand-bild {
	width: 200px;
	height: 200px;
	position: relative;
	overflow: hidden;
}

.vorstand-bild img {
	height: 200px;
	width: auto;
	max-width: unset;
	position: absolute;
	transform: translate(-50%,-50%);
	top: 50%;
	left: 50%;
}

.vorstand-infos {
	width: 50%;
	padding-left: 1em;
}

.vorstand-name {
	color: #E0001B;
	font-weight: bold;
	text-transform: uppercase;
}

@media screen and (max-width: 1400px) { 
	.vorstand {
		width: calc((100% - 3em) / 2);
	}
}

@media screen and (max-width: 800px) { 
	.vorstand {
		width: 100%;
	}
}



/* ===== KONTAKTFORMULAR ===== */

.contact-overview {
	width: calc(100% / 3);
	display: flex;
	flex-wrap: wrap;
	align-content: start;
	padding-right: 1.5em;
}

.contact-form {
	width: calc(100% * (2 / 3));
	display: flex;
	flex-wrap: wrap;
	align-content: center;
	padding-left: 1.5em;
	border-left: 1px solid black;
}

@media screen and (max-width: 960px) {
	.contact-overview, .contact-form {
		width: 100%;
		padding: 0;
		border: none;
	}
	
	.contact-overview {
		margin-bottom: 1.5em;
	}
	
	.contact-overview h2 {
		margin-bottom: 0.5em;
	}
}



/* ===== YFORM-FORMULARE ===== */

.yform {
	width: 100%;
}

.rex-yform label, .rex-yform label a {
	width: 100%;
	font-size: 12pt !important;
}

.rex-yform select, .rex-yform input, .rex-yform textarea, .rex-yform button {
	width: 100%;
	border: 2px solid black;
	padding: 0.75em;
	margin: 0.25em 0 1.5em;
	border-radius: 0 !important;
	font-family: 'SPD TheSans', sans-serif;
	font-size: 15pt;
}

.rex-yform select {
	appearance: none;
	background-image: url(/media/dropdown-arrow.png);
	background-position: right;
	background-repeat: no-repeat;
	background-size: contain;
	cursor: pointer;
}

 .rex-yform textarea {
	resize: none;
}

.rex-yform button {
	background-color: black;
	color: white;
	font-weight: bold;
	font-family: 'SPD TheSans', sans-serif;
}

.rex-yform > .alert {
	width: 100%;
	padding: 0.5em;
	border-radius: 5px;
	overflow: hidden;
	background-color: rgba(245,215,110,0.4);
	line-height: 1.5em;
	margin-bottom: 1em;
	padding: 1em;
}

.rex-yform > .alert ul {
	margin: 0;
}

.rex-yform > .alert li:before  {
	content: "\26A0";
	font-size: 15pt;
	line-height: 0;
	position: absolute;
	top: 0.625em;
	left: -1em;
}

.checkbox label {
	text-align: center;
	margin: 0.5em 0 1em;
	float: left;
}

.checkbox input {
	width: auto;
	margin: 0 1em 0 0;
}



/* ===== KANDIDAT*INNEN ===== */

.kandidat {
	width: calc((100% - 8em) / 4);
	margin-bottom: 3em;
}

.kandidatenportrait {
	width: 100%;
}

.kandidatenzitat {
	font-style: italic;
	color: #E0001B;
}

@media screen and (max-width: 1600px) {
	.kandidat {
		width: calc((100% - 6em) / 3);
	}
}

@media screen and (max-width: 1200px) {
	.kandidat {
		width: calc((100% - 4em) / 2);
	}
}

@media screen and (max-width: 800px) {
	.kandidat {
		width: 100%;
	}
}



/* ===== KALENDER ===== */

#calendar {
	width: 100%;
}

.calendar-overview-title {
	width: calc(100% / 3);
	display: flex;
	flex-wrap: wrap;
	align-content: start;
	padding-right: 1.5em;
}

.calendar-overview-entries {
	width: calc(100% * (2 / 3));
	display: flex;
	flex-wrap: wrap;
	align-content: center;
	padding-left: 1.5em;
	border-left: 1px solid black;
}

.calendar-overview-entry {
	width: 100%;
	margin: 1.5em 0;
}

.calendar-overview-entry h3 {
	margin-top: 0;
}

.calendar-overview-infos {
	margin: 0.25em 0;
}

.calendar-overview-entries h3, .calendar-entry h3 {
	margin-bottom: 0;
}

.calendar-entry {
	width: 100%;
	margin-bottom: 3em;
}

.calendar-entry h3 {
	margin: 0;
}

.calendar select {
	line-height: 1em;
	padding: 0.5em;
	border: 2px solid #D90000;
	background-color: transparent;
	margin-bottom: 2em;
	font-family: 'Lato', sans-serif;
	font-size: 15pt;
}

@media screen and (max-width: 960px) {
	.calendar-overview-title, .calendar-overview-entries {
		width: 100%;
		padding: 0;
		border: none;
	}
	
	.calendar-overview-title {
		margin-bottom: 1.5em;
	}
	
	.calendar-overview-title h2 {
		margin-bottom: 0.5em;
	}
}



/* ===== HEADER ===== */

.header-wrapper{
	padding: 0;
}

.header {
	background: rgb(255,255,255);
	background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 50%, rgba(224,0,27,1) 50%, rgba(224,0,27,1) 100%);
	padding: 3em 0;
	margin: 0 5em;
	position: relative;
	display: flex;
	align-items: flex-start;
}

.header-image {
	width: 60%;
	position: relative;
	box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.5);
	overflow: hidden;
}

.header-image img {
	min-width: 100%;
	min-height: 100%;
	bottom: 5;
	position: relative;
}

.header-image:before {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 10;
	background: rgb(255,255,255);
	background: linear-gradient(30deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 66%, rgba(0,0,0,0.5) 100%); 
}

.header h1 {
	position: absolute;
	top: 1.5em;
	left: 50%;
	z-index: 20;
	line-height: 1.2em;
	color: white;
}

.header-text {
	width: 40%;
	z-index: 20;
	margin-top: 15em;
	padding: 0 2em;
}

.header-text p {
	color: #ffffff;
	font-size: 20pt;
}

.header-sub {
	padding: 3em 0;
	width: calc(100% - 10em);
	position: relative;
	justify-content: space-between;
}

.header-sub-text {
	position: relative;
	top: 15px;
	left: 5%;
	width: 50%;
	padding: 3em;
	background-color: #E0001B;
	z-index: 10;
	box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.5);
}

.header-sub-text h1, .header-sub-text p {
	color: white !important;
}

.header-sub-text p {
	font-size: 20pt;
}


.header-sub-image {
	position: absolute;
	left: 50%;
	top: 0;
	width: 50%;
	overflow: hidden;
}

@media screen and (max-width: 1400px) {
	.header h1, .header-sub h1 {
		font-size: 33pt;
		top: 2em;
	}
	
	.header-text {
		margin-top: 12em;
	}
	
	.header-text p, .header-sub-text p {
		font-size: 15pt;
	}
}

@media screen and (max-width: 1100px) {
	.header {
		margin-top: 2em;
	}
	
	.header h1, .header-sub-text h1 {
		font-size: 25pt;
		top: 2em;
	}
	
	.header-text	{
		margin-top: 7em;
	}
	
	.header-text p, .header-sub-text p {
		font-size: 15pt;
	}
}

@media screen and (max-width: 800px) {	
	.header {
		background: linear-gradient(rgba(255,255,255,0) 0%, rgba(255,255,255,0) 20%, rgba(224,0,27,1) 20%, rgba(224,0,27,1) 100%);
		margin: 0 0.5em 0 1.5em;
		width: calc(100% - 2.5em);
		padding-top: 0;
		flex-wrap: wrap;
	}
	
	.header-image {
		width: 100%;
		margin-left: -1em;
		position: unset;
	}
	
	.header-image:before {
		display: none;
	}
	
	.header h1 {
		position: unset;
		margin: 1.5em 1em 1em;
	}
	
	.header-text {
		width: 100%;
		margin-top: 0;
	}
	
	.header-sub {
		margin: 0 0.5em 0 1.5em;
		width: calc(100% - 2.5em);
		padding-top: 0;
		flex-wrap: wrap;
		display: flex;
	}
	
	.header-sub-image {
		width: 100%;
		position: unset;
		order: 1;
	}
	
	.header-sub-text {
		width: 100%;
		margin-top: 0;
		position: unset;
		order: 2;
		margin-top: -3em;
		margin-left: -1em;
	}
}



/* ===== COOKIE-BANNER ===== */

.consent_manager-background {
	height: 100vh !important;
}

div.consent_manager-wrapper {
	width: 50vw !important;
	max-width: none !important;
}

@media screen and (max-width: 1400px) {
	div.consent_manager-wrapper {
		width: 100vw !important;
	}
}

.consent_manager-headline, .consent_manager-text, .consent_manager-cookiegroup-checkbox, div.consent_manager-show-details a, div.consent_manager-sitelinks a, button.consent_manager-save-selection, button.consent_manager-accept-all, button.consent_manager-accept-none, div.consent_manager-detail, div.consent_manager-detail a {
	font-family: 'SPD TheSans' !important;
	font-size: 14pt !important;
}

.consent_manager-headline {
	color: #E0001B !important;
	font-size: 16px !important;
}

.consent_manager-accept-all {
	background: #E0001B !important;
}



/* ===== MENÜ ===== */

.logo {
	width: 100%;
	display: flex;
	justify-content: center;
	padding: 2em;
	align-self: flex-start;
}

.logo a img {
	height: 3em;
}

.menu-wrapper {
	position: relative;
	width: 100%;
	background-color: #ffffff;
	justify-content: center;
	align-items: flex-start;
	display: flex;
	z-index: 20;
	padding: 1.5em 0 0;
	align-self: flex-start;
}

.menu {
	width: calc(100% - 10em);
	text-align: left;
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	flex-wrap: nowrap;
	box-sizing: border-box;
}

.menuitems {
	width: 100%;
	padding-right: 52.5%;
	display: flex;
	justify-content: space-between;
}

.menuitem {
	line-height: 2em;
	width: auto;
	display: inline-block;
	font-weight: bold;
}

.current-page a {
	text-decoration: underline;
}

.menu a {
	color: #E0001B;
}
	
.menuitem a:hover, .current-page a:hover {
	opacity: 0.7;
	text-decoration: none;
}

@media screen and (max-width: 1100px) {
	.logo a img {
		height: 2em;
	}
	
	.hamburger {
		display: block;
		position: fixed;
	}
	
	.menu-wrapper {
		display: none;
		position: fixed;
		width: 85vw;
		height: 100%;
		max-width: 90%;
		left: initial;
		right: 0;
		background-color: white;
		z-index: 200;
	}
	
	.menu {
		width: 100%;
		height: 100vh;
		position: absolute;
		top: 0;
		left: 0;
		box-shadow: 1px 10px 31px -16px rgba(0,0,0,0.76);
		padding-top: calc(2em + 28px);
	}
	
	.menuitems {
		flex-wrap: wrap;
		padding: 0;
		align-content: flex-start;
	}
	
	.menuitem {
		text-align: left;
		width: 100%;
		background-color: white;
		border: none;
		padding: 1em;
		margin: 0;
	}
	
	.menuitem a {
		font-size: 15pt;
	}
	
	.current-page a {
		font-weight: bold;
	}
}



/* ===== FOOTER ===== */

.footer {
	width: 100%;
	background-color: #E0001B;
	padding: 1em 0;
	align-self: flex-end;
}

.footer p, .footer a:link, .footer a:hover, .footer a:visited {
	color: #ffffff;
}