
:root {
    /* typography */
    --text-xxl: 2.7vw;
    --text-xl: 3.5rem;
    --text-l:2.4em;
    --text-m: 1.8rem;
    --text-sm: 1.5rem;
    --text-s: 1.2rem;
    --text-xs: 0.9rem;

    --abstand-xs:13px;
    --abstand-s:26px;
	--abstand-m:70px;
	--abstand-l:100px;
    --abstand-xl:160px;

    --maincolor-rot: #D42616;
    --maincolor-hellgrau: #f2f4f8;
    --maincolor-blau: #2E3754;
}

@media(max-width: 1024px){
  :root {
    --text-xxl: 2.0rem;
    --text-xl: 2.3rem;
    --text-l: 1.6rem;
    --text-m: 1.2rem;
    --text-sm: 1.05rem;
    --text-s: 1rem;
    --text-xs: 0.9rem;

    --abstand-xs:10px;
    --abstand-s:15px;
    --abstand-m:50px;
	--abstand-l:70px;
    --abstand-xl:120px;
  }
}
@media(max-width: 768px){
  :root {
    --abstand-xs:8px;
    --abstand-s:12px;
    --abstand-m:40px;
	--abstand-l:60px;
    --abstand-xl:100px;
  }
}

@media(max-width: 640px){
  :root {
    --text-xxl: 1.6rem;
    --text-xl: 1.9rem;
    --text-l: 1.4rem;
    --text-m: 1.2rem;
    --text-sm: 1.1rem;
    --text-s: 1.1rem;
    --text-xs: 0.85rem;

    --abstand-xs:4px;
    --abstand-s:8px;
    --abstand-m:25px;
	--abstand-l:50px;
    --abstand-xl:80px;
  }
}



* {
	line-height:140%;
	margin:0;
	padding:0;
	}

body {
	background: #fff;
  	cursor: auto;
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
  	line-height: 1.5;
  	margin: 0;
    padding: 0;
    color:var(--maincolor-blau);
	}
/*
.cell {
    border:1px solid red;
    }*/
.grid-container {
    max-width: 75rem;
    }

.skip-link {
    position: absolute;
    left: -9999px;
    top: 10px;
    z-index: 9999;
    background: #fff;
    color: #000;
    padding: 10px 15px;
    border: 2px solid #000;
    text-decoration: none;
}

.skip-link:focus {
    left: 10px;
}
/**************************/
/**************************/

.weiss, .rahmen-layout-1  {
    background: #fff;
    }

.blau, .rahmen-layout-3 {
	padding: var(--abstand-s) 0;
    background:var(--maincolor-blau);
    }

.vollebreite.rahmen-layout-3 {
	padding: 0;
    background:var(--maincolor-blau);
	}
.vollebreite.rahmen-layout-3 .grid-container {
	max-width:100%;
	width:100vw;
	padding-right: 0;
    padding-left: 0;
	}
.hellgrau, .rahmen-layout-2, .frame-layout-2 {
    padding:var(--abstand-s) 0; 
    background:var(--maincolor-hellgrau);
    }
.zweispalter .frame-layout-2 {
	display:block;
	margin: 0 var(--abstand-s) calc(var(--abstand-s) + 22px) var(--abstand-s);
 	background:var(--maincolor-hellgrau);
	padding: var(--abstand-s) 0;
	}
.rot {
    padding:var(--abstand-s) 0; 
    background:var(--maincolor-rot);
    }
.rot *, .rahmen-layout-3 * {
    color:#fff !important;
    }

/**************************/
/******** Teaser ************/
/**************************/
.submenupages{
	width:100%;
	padding:0 var(--abstand-s) var(--abstand-m) var(--abstand-s);
	margin:0;
	display:grid;
	grid-template-columns:1fr 1fr 1fr 1fr;
  	gap: var(--abstand-s); 
    }
.item {
    position: relative;
  	height: 200px;
    padding:var(--abstand-s);
    background:var(--maincolor-rot);
    text-align: center;
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    }
.item:hover {
    background:var(--maincolor-blau);
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    }
/*.image {
    margin-top:10px;
    max-width: 220px;
    max-height: 70px;
    }*/
.img-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    }

.text {
    position: absolute;
    top: 65%;
    width: 100%;
    color: var(--maincolor-hellgrau);
    text-align: center;
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
	font-size:var(--text-m);
    }


/**************************/
/******** Header **********/
/**************************/
.header {
    -webkit-transition: all 0.5s ease;
 	transition: all 0.5s ease;
	position: fixed;
    margin:0;
  	width: 100vw;	
	background:#fff;
  	height: 140px;
    z-index: 1000;
	}
.scrolled .header{
    -webkit-transition: all 0.4s ease;
 	transition: all 0.4s ease;
    -webkit-box-shadow: 0px 12px 13px -3px rgba(0,0,0,0.38); 
    box-shadow: 0px 12px 13px -3px rgba(0,0,0,0.38);
  	height: 90px;
	}
.abstand {
    height: 140px;
    }
.scrolled .abstand {
    height: 90px;
    }
#logo {
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    margin:20px 0 auto 0;
    padding:0 var(--abstand-s);
    width:220px;
    opacity: 1;
	}
.scrolled  #logo {
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    margin-top:15px;
    width:160px;
    opacity: 1;
	}


/**************************/
/******** Formatierung ****/
/**************************/
h1{
    font-family: 'Source Sans 3';
    font-style: normal;
	font-weight:700;
	font-size:var(--text-l);
    line-height: 110%;
    text-wrap: balance;
	}
h2{
    font-family: 'Source Sans 3';
    font-style: normal;
	font-weight:700;
	font-size:var(--text-l);
    line-height: 110%;
    text-wrap: balance;
	}

h3, p.lead {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
	font-size:var(--text-sm);
	line-height:140%;
	}
h4 {
	font-family: 'Get Show';
  	font-style: normal;
  	font-weight: 400;
  	font-size: var(--text-xl);
  	color: var(--maincolor-rot);
  	margin: 40px auto 30px auto;
  	text-align: center;
  	line-height: 90%;
	}

p, table tr td {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
	font-size:var(--text-s);
	line-height:170%;
	}
p a, p a:visited, .frame-type-text ul li a{
	font-size:100%;
    color:var(--maincolor-rot);
	}
p a:hover, p a:visited:hover, .frame-type-text ul li a:hover {
    color:#000;
	}
p b {
    font-weight: 700;
    font-size: 100%;
    }
.frame-type-text ul {
    list-style-type: disc;
    }
.frame-type-text ul li {
	font-size:var(--text-s);
    padding: 5px 0;
    line-height:170%;
    }
.rahmen-layout-3 .frame-type-text ul li {
	font-size:var(--text-s);
    padding: 5px 0;
    line-height:140%;
    }

ul.ce-uploads li {
	font-size:var(--text-s);
    padding: 4px 0;
	margin:0;
    line-height:100%;
    background-size: 22px;
    background-repeat: no-repeat;
    background-position: 0 4px;
    padding-left:35px;
    background-image: url(../Icons/pdf-icon.svg);
    }
ul.ce-uploads li a {
    color:var(--maincolor-rot);
    }
ul.ce-uploads li a:hover {
    color:var(--maincolor-blau);
    }
form button, a.klickbutton  {
    display: inline-block;
    padding: 15px 25px;
    color: #fff;
    background: var(--maincolor-rot);
        -webkit-transition: all .5s ease;
    transition: all .5s ease;
    cursor: pointer;
	font-size:var(--text-s);
    font-weight: 500;
    text-transform: uppercase;
    }
form button:hover, a.klickbutton:hover {
    background: #fff;
    color:var(--maincolor-rot);
        -webkit-transition: all .5s ease;
    transition: all .5s ease;
    }

.blau * {
     color:#fff; 
    }
.rund, .ce-border{
    position: relative;
    background: var(--maincolor-hellgrau);
    width: 100%;
    height: auto;
    border-radius: 50%;
    margin:var(--abstand-s) 0;
	position:0;
    }
.rund img, .ce-border img{
    width: 100%;
    height: auto;
    border-radius: 50%;
	border:0;
    }
tbody, tbody tr:nth-child(2n) {
    border: none;
    background-color: transparent;
    }
table tr td {
    padding:0 0;
    line-height:140%;
    }
/**************************/
/******** Abstaende ********/
/**************************/

.frame-space-before-extra-small {
	margin-top:var(--abstand-xs);
	}
.frame-space-before-small {
  	margin-top:var(--abstand-s);
	}
.frame-space-before-medium {
 	margin-top:var(--abstand-m);
	}
.frame-space-before-large {
	margin-top:var(--abstand-l);
	}
.frame-space-before-extra-large {
	margin-top:var(--abstand-xl);
	}

.frame-space-after-extra-small {
	margin-bottom:var(--abstand-xs);
	}
.frame-space-after-small {
  	margin-bottom:var(--abstand-s);
	}
.frame-space-after-medium {
 	margin-bottom:var(--abstand-m);
	}
.frame-space-after-large {
	margin-bottom:var(--abstand-l);
	}
.frame-space-after-extra-large {
	margin-bottom:var(--abstand-xl);
	}

h1 {
	margin:var(--abstand-m) var(--abstand-m) var(--abstand-s) var(--abstand-m);
	}
h2 {
    margin:var(--abstand-m) var(--abstand-m) var(--abstand-s) var(--abstand-m);
	}
h3 {
	margin:var(--abstand-s) var(--abstand-m) var(--abstand-s) var(--abstand-m);
	}
p.lead {
    display: block;
	margin:var(--abstand-s) var(--abstand-m) var(--abstand-s) var(--abstand-m);
	}
p, ul.kurzmenu {
	margin:var(--abstand-s) var(--abstand-m) var(--abstand-s) var(--abstand-m);
	}
.frame-type-text ul {
	margin:15px var(--abstand-m) var(--abstand-s) calc(var(--abstand-m) + 20px);
	padding-top:0;
	}
p:has(+ ul) {
    margin-bottom: 0;
	padding-bottom:0;
	}
ul.ce-uploads {
	margin:var(--abstand-s) var(--abstand-m) var(--abstand-m) var(--abstand-m);
	}
button {
    margin:20px var(--abstand-s) 30px var(--abstand-s);
    }
button.btn.btn-primary {
    margin-left: 0;
    }
footer table{
    margin:var(--abstand-s) var(--abstand-m) var(--abstand-s) var(--abstand-s);
    }
a.pfeil span {display: none}
a.pfeil {
    display: inline-block;
    width:45px;
    height:45px!important;
    background-image: url(../Icons/pfeil.svg);
    background-size: 42px;
    background-repeat: no-repeat;
    background-position: 0 0;
    cursor: pointer;
    margin:0 var(--abstand-s) var(--abstand-s) var(--abstand-s);
       -webkit-transition: all 0.4s ease;
 	transition: all 0.4s ease;
	}

a.pfeil:hover {
    transform: scale(1.1);
     -webkit-transition: all 0.4s ease;
 	transition: all 0.4s ease;
	}

.jobs-iframe iframe {
    width: 100%;
    min-height: 1200px;
    border: 0;
	}
.newsschriftzug {
	width:160px; 
	margin-bottom:-5vw!important;
	transform: rotate(-10deg)!important;
	}

/*******************************************/
/******** Header + Inhaltsbilder   ********/
/*****************************************/

.headerbild {
    position: relative;
    width: fit-content; /* oder feste Breite z. B. 1000px, je nach Design */
    display: inline-block;
    }

.headerbild img {
    display: block;
    width: 100vw;
    height: auto;
    }
#overlaytext {
    position: absolute;
    top: 67%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    padding: 20px;
    text-align: center;
    max-width: 80%;
    }
#overlaytext h1 {
    margin: 0 0 10px 0;
    }

#overlaytext p {
    margin: 0 var(--abstand-m);
    font-size:var(--text-sm);
    }
/**************************/
/******** Kat Listen   ********/
/**************************/

.frame-type-menu_categorized_pages ul {
	list-style-type:none;
	margin:var(--abstand-s) var(--abstand-m);
	}
.frame-type-menu_categorized_pages ul li {
	display:block;
	padding:0 5px;
	margin:0 0 5px 0;
	}
.frame-type-menu_categorized_pages ul li a{
	color:var(--maincolor-rot);
	font-size:var(--text-sm)!important;
	}
.frame-type-menu_categorized_pages ul li a:hover{
	color:var(--maincolor-blau);
	}

/*************  2-Klick-Banner auf Google Map *************/

div.privacy-msg  {
    display: grid;
    justify-content: center;
    align-items: center;
    text-align:center;
    overflow:hidden;
	background-image: url(../Images/dummykarte.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 0;
    }

div.privacy-msg p {
	max-width:50vw;
    background:var(--maincolor-hellgrau);
    padding: var(--abstand-m);
  	color:var(--maincolor-blau)!important;
	}
.privacy-msg p a{ 
	color:var(--maincolor-rot) !important;
	font-size:100% !important;
	}
.privacy-msg p a:hover{ 
	color:var(--maincolor-blau) !important;
	}

iframe {
	border:0;
	}
/**************************/
/******** Footer   ********/
/**************************/

footer {
    background: var(--maincolor-hellgrau);
    }
footer p{
	margin:var(--abstand-s);
    line-height:140%;
	}
footer ul.kurzmenu {
	margin:0 var(--abstand-s) var(--abstand-m) var(--abstand-s);
	}
footer #logofooter {
    max-width: 200px;
    margin:var(--abstand-m) var(--abstand-s) 0 var(--abstand-s);
    }
#back-top img {
    position: fixed;
    right: 2.5vw;
    bottom: 40px;
	width:25px;
	}
footer p a {
    background-size: 22px;
    background-repeat: no-repeat;
    background-position: 0 4px;
    padding-left:35px;
    line-height:160%;
    }
footer p a.mail {
    background-image: url(../Icons/mail.svg);
    }
footer p a.tel {
    background-image: url(../Icons/tel.svg);
    }
footer table{
    margin:var(--abstand-s) var(--abstand-m) var(--abstand-s) var(--abstand-s);
    width:280px;
    }
footer .grid-container .grid-x{
   	display:flex;
    align-items: flex-end;
    }


/**************************/
/******** Social Media   ********/
/**************************/

.social{
    position: fixed;
    right: 2.5vw;
    top:12px;
    height:auto;
    padding:10px 0;
    -webkit-transition: all 0.4s ease;
 	transition: all 0.4s ease;
    }
.social2{
    position: relative;
    left:20px;
    height:auto;
    padding:20px;
    }
.social a span, .social2 a span{
    display: none;
    }
.social a, .social2 a  {
    display: inline-block;
    width:28px;
    height:25px;
    background-repeat: no-repeat;
	margin:0 6px;
    }
.social a.facebook, .social2 a.facebook{
    background-image: url(../Icons/facebook.svg);
    background-repeat: no-repeat;
    background-size: 22px;
    background-position:0 0;
    }
.social a.instagram, .social2 a.instagram {
    background-image: url(../Icons/instagram.svg);
    background-repeat: no-repeat;
    background-size: 22px;
    background-position:0 0;
    }
.scrolled .social{
    top:10px;
    -webkit-transition: all 0.4s ease;
 	transition: all 0.4s ease;
    }
/**************************/
/******** Orga  ********/
/**************************/

.orga{
    position: fixed;
    top: 50%; /* vertikal zentriert */
    right: 4vw; /* Abstand vom rechten Rand */
    transform: rotate(-90deg);
    transform-origin: top right; /* Drehpunkt ist oben rechts */
    z-index: 3000;
	height:35px;
    }
.orga a.punkt{
    background-image: url(../Icons/punkt.svg);
    background-repeat: no-repeat;
    background-size: 25px;
    background-position:0 4px;
    color:var(--maincolor-rot);
    padding:3px 30px;
	display:inline-block;
	height:35px!important;
    }




/**********************************************/

@media only screen and (max-width: 1200px)  {
    
h2 {
	hyphens:auto;
	}


}

/**********************************************/

@media only screen and (max-width: 1024px)  {

#logo, .scrolled  #logo {
    margin:50px 0 auto 0;
    padding:0 58px;
    width:240px;
	}
.header, .scrolled .header, .abstand, .scrolled .abstand {
  	height: 155px;
	}
.social, .scrolled .social{
    position: absolute;
    top:0;
    z-index:3000;
    }
.orga, .orga a.punkt{
    display: none!important;
    }
footer p a {
    background-size: 18px;
    background-position: 0 1px;
    padding-left:25px;
    }
footer p{
	margin:var(--abstand-s) var(--abstand-m) var(--abstand-s) var(--abstand-m);
	}
footer ul.kurzmenu{
	margin:var(--abstand-s) var(--abstand-m) var(--abstand-m) var(--abstand-m);
	}
footer #logofooter {
    margin:var(--abstand-m) var(--abstand-m) var(--abstand-s) var(--abstand-m);
    }
footer table{
    width:250px;
    margin:calc(var(--abstand-s) + 20px) 0 calc(var(--abstand-s) + 20px) var(--abstand-m);
    }
.text {
    position: absolute;
    top: 50%;
    left: 20%;
    -webkit-transform: translate(-20%, -20%);
    -ms-transform: translate(-20%, -20%);
    transform: translate(-20%, -20%);
    }
.text span{
    display: block;
    padding-top:20px;
    }
.jobs-iframe iframe {
    width: 100%;
    height: 100dvh;
    border: 0;
    overflow: hidden;
	}
}

/**********************************************/

@media only screen and (max-width: 768px)  {
    
.submenupages{
    grid-template-columns: 1fr 1fr;
	gap:var(--abstand-s);
    }
.vollebreite.rahmen-layout-3 figure.image {
	display:none;
	}
.vollebreite.rahmen-layout-3 .large-5 {
	padding-bottom:30px;
	}
div.privacy-msg p {
	max-width:80vw;
	}
.newsschriftzug {
	width:110px!important; 
	}
}

/**********************************************/

@media only screen and (max-width: 640px) {
    
#logo, .scrolled  #logo {
    margin:50px 0 auto 0;
    padding:0 58px;
    width:210px;
	}
.header, .scrolled .header, .abstand, .scrolled .abstand {
  	height: 120px;
	}
.submenupages{
    grid-template-columns: 1fr;
	column-gap:var(--abstand-s);
    row-gap:var(--abstand-m);
    }


}

/**********************************************/
@media only screen and (max-width: 560px) {
    
.jobs-iframe iframe {
  	min-height: 2200px;
	}

}