*{
	padding:0;
	margin:0;
}


:root{
	--color1:#333333;
	--color2:#999999;
}

#cboxOverlay{
	height:100VH;
}

body div#colorbox{
	top:50VH !important;
	margin-left:50VW;
	transform:translate(-50%, -50%) !important;
	position:fixed !important;
	max-height:90VH;
	max-width:90vw;
	width:100%;
	height:100%;
	left:unset !important;
	right:unset !important;
}

#colorbox #cboxWrapper, #colorbox #cboxContent #cboxLoadedContent, #colorbox #cboxContent, #colorbox #cboxContent #cboxLoadedContent *{
	max-width:100%;
	max-height:100%;
	height:auto !important;
}


.cookiebar{
	background-color:rgba(0,0,0,0.7);
	z-index:1000;
}

.cookiebar *{
	font-size:14px !important;
}

div#totop{
	position:fixed;
	right:25px;
	bottom:50px;
	z-index:20000;
	width:40px;
	height:40px;
	background-color:forestgreen;
	display:none;
	border:2px solid #555;
	cursor:pointer;
}

#totop::before{
	content:"\2191";
	color:#fff;
	width:100%;
	height:100%;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:22px;
	font-weight:bold;
}



div#popup{
	width:600px;
	max-width:calc(100% - 50px);
	height:auto;
	max-height:80VH;
	position:fixed;
	left:50vw;
	top:45VH;
	transform:translate(-50%, -50%);
	background-color:#fff;
	padding:30px;
	padding-top:40px;
	border-radius:10px;
	box-shadow:0 10px 12px rgba(0,0,0,0.45);
	margin:0;
	z-index:300;
	hyphens:none !important;
	overflow-y:auto;
}


div#popcloser{
	background-color:#1447b0;
	color:#fff !important;
	width:40px;
	height:40px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-size:30px;
	position:absolute;
	right:0;
	top:0;
	border-bottom-left-radius:50%;
	cursor:pointer;
}

#popcloser span{
	transform:rotateZ(45deg);
	color:inherit;
}

#popup .ce_text > h3, #popup .content-text > h3{
	color:#1447b0 !important;
	font-weight:bold;
}

#popup .ce_text, #popup .content-text{
	width:100%;
}

#popup .ce_image figure,#popup .content-image figure{
	margin-bottom:0;
}

#popup *{
	hyphens:none !important;
}



body{
	overflow-x:hidden;
	font-family:"Open Sans", "Trebuchet", sans-serif;
}

body.noheader #container{
	padding-top:100px;
}

body *{
	
}

body .container{
	width:1500px;
	max-width:100%;
}

body #container{
    padding-top:unset;
}

header li, footer li{
    list-style-type:none;
}


a, em, strong{
    font-size:inherit;
    color:inherit;
}

p, li, option, label, td, button, input, legend, th, select{
	font-size:18px;
}


body h1, body h1 *, body h2, body h2 *, body h3, body h3 *, body h4, body h4 *, body h5, body h5 *, body h6, body h6 *{
	
}


body h1, .h1{
	font-size:clamp(30px, 4vw, 60px);
}

body h2, .h2{
	font-size:clamp(26px, 3.5vw, 50px);
}

body h3, .h3{
	font-size:clamp(22px, 3vw, 42px);
}

body h4, .h4{
	font-size:clamp(20px, 3vw, 36px);
}


div .np, div .nop{
	padding-left:0;
	padding-right:0;
}

.fullimage figure{
	width:100%;
	margin:0;
	
}

.fullimage figure img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center center;
}

.paddingTop{
    padding-top:50px;
}

.paddingBottom{
    padding-bottom:50px;
}

.centered{
    left:50%;
    position:relative;
    transform:translateX(-50%);
}

.floatright{
    float:right !important;
}

.ofv{
    overflow:visible !important;
}

.ofh{
	overflow:hidden;
}

div .rel{
	position:relative;
}

.whiteBG{
    background-color:#fff;
}


.flex{
    display:flex;
    flex-wrap:wrap;
}

.flex.reverseRow{
    flex-direction:row-reverse;
}

.flex.reverseCol{
    flex-direction:column-reverse;
}

.middle{
    align-items:center;
}

.stretch{
    align-items:stretch;
}

.baseline{
	align-items:baseline;
}

.aife{
	align-items:flex-end;
}

.jcsb{
	justify-content:space-between;
}

.jcfe{
	justify-content:flex-end;
}

.jcc{
	justify-content: center;
}


/* ############################### Menustyles ################################# */

#menucontainer{
	width:100%;
    position:fixed;
    z-index:200;
    height:100px;
    top:0;
	left:0;
    background-color:white;
	padding-top:10px;
	padding-bottom:10px;
}

#menuBox{
	display:flex;
    flex-wrap:nowrap;
    justify-content:space-between;
    align-items:center;
}


#menuBox ul{
    list-style-type:none;
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:unset;
    padding-left:25px;
    height:100%;
}

#menuBox li{
	position:relative;
}

#menuBox > *:not(#mobilLogo){
	flex-grow:1;
}

#menuBox li strong.active, #menuBox li a:hover, #menuBox a.trail{
    
}


#mobilLogo{
    width:200px;
    height:80px;
    
    background-image:url(../img/logo.png);
    background-repeat:no-repeat;
    background-position:center center;
    background-size:contain;
    
    left:20px;
    top:0px;
    
    display:block;
}

#menutrigger{
    width:50px;
    height:50px;
    background-color:red;

    background-image:url(../img/openM.png);
    background-repeat:no-repeat;
    background-position:center center;
    background-size:contain;

    cursor:pointer;
    float: right;
    right:0;
    margin-right: 15px;
    z-index:3;

    position:absolute;
    top:20px;
}





/* ############################### Footerstyles ################################# */

#footercontainer{
	width:100%;
	background-color:#fff;
}

#innerFooter{
	padding-top:50px;
	padding-bottom:50px;
    
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
}

#innerFooter a, #innerFooter a:hover{
    color:inherit;
    text-decoration:none;
}

.fInfo{
    
}

.fNav ul{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	padding-left:0;
    list-style-type:none;
}

.fLogo img{
	width:100%;
	height:100%;
	min-width:unset;
	max-width:100%;
	min-height:unset;
	max-height:100%;
	object-fit:contain;
	object-position:center center;
}







/* ############################### Styles ################################# */

/* ############################### Styles Galerie ################################# */

.ce_gallery ul, .content-gallery ul{
	display:flex;
	width:100%;
	flex-wrap:wrap;
	justify-content:space-between;
	padding:0px !important;
	gap:10px;
}


.ce_gallery .cols_2 li,
.content-gallery--cols-2 li {
  width: calc(50% - 10px);
}

.ce_gallery .cols_3 li,
.content-gallery--cols-3 li {
  width: calc(33.3333% - 10px);
}

.ce_gallery .cols_4 li,
.content-gallery--cols-4 li {
  width: calc(25% - 10px);
}

.ce_gallery .cols_5 li,
.content-gallery--cols-5 li {
  width: calc(20% - 10px);
}

.ce_gallery .cols_6 li,
.content-gallery--cols-6 li {
  width: calc(16.6667% - 10px);
}

.ce_gallery .cols_7 li,
.content-gallery--cols-7 li {
  width: calc(14.2857% - 10px);
}

.ce_gallery .cols_8 li,
.content-gallery--cols-8 li {
  width: calc(12.5% - 10px);
}

.ce_gallery .cols_9 li,
.content-gallery--cols-9 li {
  width: calc(11.1111% - 10px);
}

.ce_gallery .cols_10 li,
.content-gallery--cols-10 li {
  width: calc(10% - 10px);
}

/* Gemeinsame Styles */
.ce_gallery li,
.content-gallery li {
  transform-origin: center center;
  transition-duration: 0.2s;
  aspect-ratio: 800/600;
}

.ce_gallery li img, .content-gallery li img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center center;
	display:flex;
}

.ce_gallery li figure,
.content-gallery li figure{
	width:100%;
	height: 100%;
	margin:0;
	display: flex;
}




.pagination{
	margin-bottom:25px;
}
.pagination ul{
	width:100%;
	
	display:flex;
	flex-wrap:wrap;
	list-style-type:none;
	justify-content:center;
}

.pagination li{
	padding:5px 10px;
	margin-right:2px;
	border:1px solid #ddd;
}

.pagination > p{
	padding:5px 5px;
	width:140px;
    display:none;
}

.pagination li *{
	color:#333;
}

.pagination .active{
	font-weight:bolder;
	color: #0089b9;
}


p.back a, p.back a:hover{
    text-decoration:none;
    color:inherit;
}







/* ############################### Styles Headerbild ################################# */


div.headercon{
	overflow:hidden;
	height:100VH;
	max-height:900px;
	width:100%;
	position: relative;
}

.headerbild{
	max-height:100VH;
	height:100%;
	width:100%;
	overflow:hidden;
}

.headerbild figure{
	width:100%;
	max-height:100%;
	height:100%;
	object-fit:cover;
	object-position:center center;
	margin:0;
}

.headerbild figure img{
	width:100%;
	height:100%;
	min-width:unset;
	max-width:unset;
	min-height:unset;
	max-height:unset;
	object-fit:cover;
	object-position:center center;
}


div.headertext{
	position: absolute;
	left:50%;
	transform:translateX(-50%);
	z-index: 2;
	bottom:100px;
}



.downarrow{
	width:80px;
	height:80px;
	margin-left:50%;
	transform:translate(-50%, -50%);
	position:relative;
	margin-top:-100px;
	z-index:10;
	cursor:pointer;
}






/* ############################### Styles Rocksolid Slider ################################# */

.rsts-nav-bullets{
    display:none;
}

.rsts-view a.rsts-prev, .rsts-view a.rsts-next{
	bottom:100px;
	margin-right:5vw;
	
	border:2px solid #8abd24;
	border-radius:0px !important;
	background-color:transparent !important;
	
	width:40px;
	height:40px;
}






/* ############################### Styles Kontaktformular ################################# */


.ce_form ::placeholder{
    opacity:1;
    color:#000;
}

input.formfield, textarea.formfield{
    width:100%;
    padding:15px;
    border:1px solid #000;
    appearance: none;
    -webkit-appearance:none;
}

.dse span{
    display:flex;
    align-items:center;
}

.dse input{
	margin-right:10px;
	opacity: 0;
	position: absolute;
}


button.sender{
    padding:15px 20px;
    border:none;
}

form .checkbox_container input + label{
	position: relative;
}

form .checkbox_container input + label::before, form .radio_container input + label::before{
	content:"";
	width:20px;
	height:20px;
	cursor:pointer;
	border:1px solid #333;
	aspect-ratio:1/1;
	position: absolute;
	left:0;
	display:block;
}

form input[type=checkbox]:checked + label::before, form input[type=radio]:checked + label::before{
	content:"";
	background-image:url(../img/check-symbol.png);
	background-position:center center;
	background-repeat:no-repeat;
	background-size:auto 80%;
}

form .checkbox_container input, form .radio_container input{
	width:20px;
	height:20px;
	opacity:0;
	cursor:pointer;
	position: absolute;
	
}

form .widget{
	margin-bottom:20px;
	
}

.widget.dse{
	margin-bottom:30px;
	width:100%;
	display:flex;
	align-items:center;
	justify-content:center;
}

form .formbody{
	display:flex;
	flex-wrap: wrap;
	align-items: stretch;
}


.widget.dse a{
	color:forestgreen;
	text-decoration:underline;
}

#wrapper ul{
	padding-left:20px;
}


figure{
	position: relative;
}

figure a{
	display:flex;
	height:100%;
	width: 100%;
}

figcaption{
	position: absolute;
	right: 0;
	bottom:0;
	padding:5px 15px 5px 10px;
	font-size:12px;
	background-color:rgba(255,255,255,0.5);
	color:initial;
	border-top-left-radius: 5px;
}

.content-text > figure{
	margin:0 0 15px 0;
}

.content-text .textOnly + figure{
	margin:15px 0 0 0;
}

.mod_newslist{
	display:flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap:20px;
}

.mod_newslist .layout_latest{
	width:calc(33.3% - 20px);
}

.mod_newslist .imageOnly{
	aspect-ratio: 1/0.6;
	width:100%;
}
.mod_newslist .imageOnly figure{
	margin:0;
	width: 100%;
	height: 100%;
}

.mod_newslist .imageOnly figure img{
	margin:0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	border-radius:20px;
}


div.layout_full{
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

.layout_full > *{
	padding-left: 15px;
	padding-right: 15px;
	margin-bottom:15px;
}

.layout_full > .newshead{
	width:100%;
}















@media (max-width:1100px){
	
	div #menutrigger{
		display:block !important;
		width:40px;
		height:40px;
		border-radius: 5px;
	}
	
	#menucontainer{
		height:80px;
	}
	
	#menuBox nav{
		position: absolute;
		left: 0;
		top:80px;
		width: 100%;
		padding:15px;
		background-color:rgba(0,0,0,0.2);
		margin-top:-120VH;
		opacity: 0;
		transition:all 0.5s ease-out;
	}
	
	#menuBox nav *{
		color:black;
	}
	
	#menuBox nav .level_1{
		width: 100%;
		padding:0;
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		gap:10px;
	}
	
	div #menuBox .level_1 > li{
		border-bottom:1px solid rgba(0,0,0,0.1);
		width: 100%;
		padding:7px 0 10px;
	}
	
	#menuBox{
		width:100%;
	}
	
	#mobilLogo{
		position: absolute;
		left: 20px;
		top:15px;
	}
	
}