/* lato-300 - latin */
@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 300;
	src: url('../fonts/lato-v23-latin-300.eot'); /* IE9 Compat Modes */
	src: local(''),
		url('../fonts/lato-v23-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
		url('../fonts/lato-v23-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
		url('../fonts/lato-v23-latin-300.woff') format('woff'), /* Modern Browsers */
		url('../fonts/lato-v23-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
		url('../fonts/lato-v23-latin-300.svg#Lato') format('svg'); /* Legacy iOS */
}

/* lato-regular - latin */
@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/lato-v23-latin-regular.eot'); /* IE9 Compat Modes */
	src: local(''),
		url('../fonts/lato-v23-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
		url('../fonts/lato-v23-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
		url('../fonts/lato-v23-latin-regular.woff') format('woff'), /* Modern Browsers */
		url('../fonts/lato-v23-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
		url('../fonts/lato-v23-latin-regular.svg#Lato') format('svg'); /* Legacy iOS */
}

html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    float: left;
    clear: both;
    font-family: 'Lato', arial, sans-serif;
    font-size: 18px;
    font-weight: 300;
    color: #363636;
}

.text-right {
    text-align: right;
}

.text-left {
    text-align: left;
}

.text-center {
    text-align: center;
}

.text-justify {
    text-align: justify;
}

strong{
    font-weight: 400;
}

img {
    max-width: 100%;
    height: auto;
}

.ce-gallery.videocontainer .video[data-type="external"] {
    background: #eee;
}

.video-embed .video-defer {
    opacity: 1;
}

.ce-gallery.videocontainer {
    width: 100%;
	float: left;
	clear: both;  
}

.ce-gallery.videocontainer .video-column {
    width: 100%;
    float: left;
}

.ce-gallery.videocontainer[data-ce-columns="1"] .video-column {
	width: 100%;
	float: left;
	clear: both;
}

.ce-gallery.videocontainer figure.video {
	display: block;
}

.video-embed iframe, 
.video-embed a.videoiframelink,
.iframevideo a.videoiframelink {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.video-embed a.videoiframelink,
.iframevideo a.videoiframelink  {
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0;
    color: transparent;
    overflow: hidden;
    text-indent: -999px;
    display: none;
}

.loadiframenow a.videoiframelink,
.mediaconsent.loadok a.videoiframelink,
.frame-type-textmedia.frame-layout-10 .videobox  a.videoiframelink  {
    display: flex;
}

.video-embed a.videoiframelink::before,
.iframevideo a.videoiframelink::before,
.frame-type-textmedia.frame-layout-10 .videobox  a.videoiframelink::before {
    content: "";
    display: block;
    width: 70px;
    height: 50px;
    background: #000000;
    border-radius: 5px;
    transition: opacity 0.3s ease;
	box-shadow: 0 0 60px 0 #FFFFFF;
	opacity: 0.8;
}

.video-embed a.videoiframelink:hover::before,
.iframevideo a.videoiframelink:hover::before,
.frame-type-textmedia.frame-layout-10 .videobox  a.videoiframelink:hover::before {
	opacity: 0.9;
}

.video-embed a.videoiframelink::after,
.iframevideo a.videoiframelink::after,
.frame-type-textmedia.frame-layout-10 .videobox  a.videoiframelink::after {
    content: "";
    width: 0px;
    height: 0px;
    border-style: solid;
    border-width: 10px 0 10px 20px;
    border-color: transparent transparent transparent #FFFFFF;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -10px 0 0 -8px;
    z-index: 3;
}

.video[data-type="external"] .video-embed {
    padding: 0;
}

.videobox {
    padding-top: 56.25%;
    overflow: hidden;
}

.mediaconsent > a.videoiframelink {
    display: none;
}

body.lb_body {
    height: auto !important;
    max-width: 800px;
    width: 90vw;
}

#lightbox {
    width: 96%;
    margin: 10px 2%;    
}

/* -- Headervideo -- */
.frame-type-textmedia.frame-layout-11 > .rahmen {
    width: 100% !important;
    max-width: none !important;
    float: left !important;
    clear: both !important;
    margin: 0 !important;
    display: block !important;
}

.frame-type-textmedia.frame-layout-11 .ce-gallery {
    margin: 0;
    width: 100%;
    float: left;
    clear: both;
    position: relative;
}

.frame-type-textmedia.frame-layout-11 .ce-gallery::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
}

.frame-type-textmedia.frame-layout-11 .video-embed .video-preview {
    height: 100%;
}

.frame-type-textmedia.frame-layout-11 .video-embed .video-preview img {
    width: 100%;
    max-width: none;
    height: auto;
}

.frame-type-textmedia.frame-layout-11.loadingok .video-embed .video-preview {
    display: none;
}

.frame-type-textmedia.frame-layout-11 .video[data-type="internal"] .video-embed .video-embed-item {
    width: 100%;
}

/*~ Onepage Standard ~*
/* -- oben -- */
#oben {
    width: 100%;
    float: left;
    clear: both;
    box-shadow: 0 0 5px #aaa;
    position: fixed;
    min-height: 60px;
    z-index: 5;
}

/* -- Footer -- */
#footer {
    width: 100%;
    float: left;
    clear: both;
    position: relative;
}

#footer > .rahmen {
    margin-top: 30px;
    width: 96%;
    max-width: 988px;
    margin: 0 auto;
}

#footer > .rahmen > .frame {
    width: 70%;
    float: left;
}

#footer > .rahmen > .qnavi {
    width: 30%;
    float: right;
    text-align: right;
    margin: 0;
    padding: 0;
    list-style: none;
}

.funktionen {
    position: fixed;
    right: 15px;
    bottom: 30px;
    background: #FFFFFF;
    display: block;
    width: 30px;
    overflow: hidden;
    z-index: 4;
    opacity: 0.8;
}
 
.totop, .tobottom {
    display: block;
    cursor: pointer;
    background-position: center center;
    background-repeat: no-repeat;
    width: 24px;
    height: 24px;
    margin: 5px 3px 5px 3px;
    float: left;
    clear: both;
    background-color: rgba(0,0,0,0.3);
    background-image: url(../images/arrow-top.png);
    background-position: left top;
    background-repeat: no-repeat;
}
 
.tobottom {
    background-image: url(../images/arrow-bottom.png);
}
 
.totop:hover, .tobottom:hover {
    background-color: #aaa;
}

.smarty {
    clear: right;
    float: right;
    display: inline-block;
    width: 60px;
    margin: 10px 0px 10px 0;
}
 
.smarty img {
    width: 100%;
    height: auto;
    float: left;
    clear: both;
}

/*~ Progressbar ~*/
.progressbox {
    width: 100%;
    float: left;
    clear: both;
    margin: 0;
    padding: 0;
    display: block;
    margin-top: 10px;
}

.progressbar {
    width: 0;
    height: 5px;
    background: #004b7c;
    transition: all linear 0.1s;
}

/*~ Anpassungen ~*/
a {
    color: #004b7c;
    text-decoration: none;
    font-weight: 400;
}

a[href*="mail"],
a[href*="tel"] {
    color: #363636;
    font-weight: 300;
}

p {
    margin: 0 0 10px 0;
}

/*~ Oben ~*/
#oben {
    padding: 20px 0 0;
    background: #FFF;
}

#oben .rahmen {
    padding: 0px 2%;
    width: 90%;
    max-width: 988px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

#oben .rahmen .rahmen {
    float: left;
    clear: both;
    width: 100%;
    margin: 0 0 0 0;
    padding: 0 0 0 0;
}

#oben .navi {
    float: left;
    clear: both;
    width: calc(100% - 300px);
    margin-right: 50px;
}

#oben .navi .onepagenavi {
    float: left;
    clear: both;
    width: 100%;
    padding: 0 0 0 0;
    margin: 0 0 0 0;
    list-style: none;
}

#oben .navi .onepagenavi li {
    float: left;
    clear: none;
}

#oben .navi .onepagenavi li a {
    float: left;
    padding: 10px 10px;
    text-decoration: none;
    color: #010101;
    position: relative;
    z-index: 1;
    margin-right: 5px;
}

#oben .navi .onepagenavi li:last-child a {
    margin-right: 0;
}

#oben .navi .onepagenavi li a:hover {
    color: #FFF;
}

#oben .navi .onepagenavi li a::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    right: 100%;
    bottom: 0;
    z-index: -1;
    transition: 0.3s;
    background: #004b7c;
}

#oben .navi .onepagenavi li a:hover::after {
    right: 0;
}

/*~ Logo ~*/
.logo {
    width: 250px;
    float: left;
}

.logo * {
    float: left;
    clear: both;
    width: 100%;
    margin: 0 0 0 0 !important;
}

/*~ Header ~*/
.frame-header {
    position: relative;
}

.frame-header > .rahmen > .frame-bildslider {
    float: left;
    clear: both;
    width: 100%;
}

.frame-header > .rahmen > .frame-default {
    position: absolute;
    bottom: -60px;
    width: 230px;
    right: 50px;
    z-index: 2;
    border-radius: 100%;
    border: 2px dashed #FFF;
}

.frame-header > .rahmen > .frame-default .ce-gallery,
.frame-layout-20 > .rahmen .ce-gallery {
    aspect-ratio: unset;
}

/*~ Inhalt ~*/
#inhaltsbereich {
    float: left;
    clear: both;
    width: 100%;
}

#inhaltsbereich > .frame-space-before-100:first-child {
    margin-top: 200px !important;
}

#inhaltsbereich > .frame-default.frame-type-textmedia,
#inhaltsbereich > .tx_cn-multicontent > .rahmen > .tx_cn-columns > .row > .col-100 > div {
    margin-top: 100px;
}


#inhaltsbereich > .frame-default.frame-type-textmedia > .rahmen,
#inhaltsbereich > .tx_cn-multicontent > .rahmen > .tx_cn-columns > .row > .col-100 > div > .rahmen {
    width: 90%;
    max-width: 988px;
    margin: 0 auto;
}

#inhaltsbereich > .tx_cn-multicontent > .rahmen > .tx_cn-columns > .row > .col-100 > div > .rahmen .rahmen {
    float: left;
    clear: both;
    width: 100%;
    margin: 0 0 0 0;
}

h1, h2 {
    color: #004b7c;
    display: block;
    font-size: 38px;
    font-weight: 400;
    text-transform: uppercase;
    margin: 0 0 30px;
}

h3 {
    color: #004b7c;
    display: block;
    font-size: 22px;
    font-weight: 400;
    margin: 0 0 20px;
}

a.more {
    padding: 10px 10px 10px 40px;
    background: #004b7c;
    color: #FFF;
    position: relative;
    display: inline-block;
    clear: both;
    margin-top: 20px;
}

a.more::before {
    content: '';
    position: absolute;
    left: 10px;
    top: 10px;
    background: url(../images/more.png) center center no-repeat;
    background-size: contain;
    width: 20px;
    height: 20px;
}

.frame-default .ce-bodytext + .ce-gallery {
    margin-top: 30px;
}

.ce-intext.ce-left .ce-gallery {
    margin-right: 20px;
}

#inhaltsbereich ul {
    float: left;
    clear: both;
    width: 100%;
    padding: 0 0 0 0;
    margin: 0 0 10px 0;
    list-style: none;
}

#inhaltsbereich ul > li {
    padding-left: 15px;
    float: left;
    clear: both;
    width: calc(100% - 15px);
    position: relative;
    margin-bottom: 5px;
}

#inhaltsbereich ul > li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 10px;
    height: 8px;
    background: url(../images/li-before.png) center center no-repeat;
    background-size: 100% 100%;
}

#inhaltsbereich ul > li > ul {
    margin: 5px 0 0 5px;
    width: calc(100% - 5px);
}

/* -- Zwischenheader -- */
.frame-default.frame-layout-20{
    height: 400px;
    background-attachment: fixed;
    background-size: cover;
}

.frame-default.frame-layout-20 > .rahmen .ce-gallery.zw_normal{
    opacity: 0;
}
/* -- Zwischenheader -- */

.frame-grau {
    background: url(../images/bg_grau.jpg) left top repeat;
    padding: 100px 0;
}

.frame-hellgrau,
.frame-partner,
.frame-downloads {
    background: #f2f2f2;
    padding: 100px 0;
}

.frame-blau {
    background: #004b7c;
    padding: 100px 0;
    color: #FFF;
}

.frame-blau h1, 
.frame-blau h2,
.frame-blau h3,
.frame-blau a {
    color: #FFF;
}

.frame-blau a.more {
    background: #FFF;
    color: #004b7c;
}

.frame-blau a.more::before {
    background: url(../images/more-b.png) center center no-repeat;
    background-size: contain;
}

#inhaltsbereich .frame-blau ul > li::before {
    background: url(../images/li-before-w.png) center center no-repeat;
    background-size: 100% 100%;
}

.frame-space-before-1 {
    margin-top: 0 !important;
}

.frame-partner .ce-gallery {
    float: left;
    clear: both;
    width: 100%;
}

.frame-partner .ce-gallery .ce-row {
    float: left;
    clear: none;
    margin: 0 10px 10px 0;
}

.frame-partner .ce-gallery .ce-row img {
    height: 130px;
    width: auto;
}

#inhaltsbereich .frame-downloads ul li {
    padding: 0 0 0 0;
    margin: 0 20px 20px 0;
    clear: none;
    float: left;
    width: auto;
}

#inhaltsbereich .frame-downloads ul li a {
    padding: 160px 0 0 0;
    width: 200px;
    text-align: center;
    color: #004b7c;
    float: left;
    clear: both;
    position: relative;
}

#inhaltsbereich .frame-downloads ul li a::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    height: 150px;
    margin: 0 0 0 -75px;
    width: 150px;
    background: url(../images/pdf.png) center center no-repeat, #004b7c;
    border-radius: 50%;
    background-size: 50px;
}

#inhaltsbereich .frame-downloads ul li::before {
    display: none;
}

/*~ Slidein ~*/
.slidein > .frame > .rahmen,
.slidein > .frame > header.button > * > *,
.slideinmob header.button > * > * {
    box-shadow: 0 0 10px 0 rgb(0 0 0 / 40%);
}

.slidein > .frame > header.button > * > *, .slideinmob header.button > * > * {
    padding: 0 0 0 0;
}

.slidein .button h3,
.slideinmob .button h3 {
    color: #FFF;
    background: #004b7c;
    font-size: 38px;
    font-weight: 400;
    text-transform: uppercase;
    margin: 0 0 0 0;
}

.slidein .button h3 a,
.slideinmob .button h3 a {
    color: #FFF;
    display: block;
    padding: 0 10px;
}

.slidein .ce-textpic, .slideinrespinhalt .ce-textpic {
    background: #004b7c;
}

.slidein .ce-textpic, .slideinrespinhalt .ce-textpic,
.slidein .ce-textpic h3, .slideinrespinhalt .ce-textpic h3,
.slidein .ce-textpic a, .slideinrespinhalt .ce-textpic a {
    color: #FFF;
}

/*~ Powermail ~*/
.tx-powermail,
.tx-powermail .powermail_fieldset,
.tx-powermail .powermail_fieldwrap {
    float: left;
    clear: both;
    width: 100%;
}

.tx-powermail > div > form > h3,
.tx-powermail .powermail_fieldset > legend  {
    display: none;
}

.tx-powermail .powermail_fieldset {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    border: none;
}

.tx-powermail .powermail_fieldwrap {
    margin: 0 0 10px 0;
}

.tx-powermail .powermail_fieldwrap.powermail_fieldwrap_type_check.powermail_fieldwrap_marker > .powermail_label {
    display: none;
}

.tx-powermail .powermail_fieldwrap > label {
    width: 100px;
    margin-right: 10px;
    float: left;
    clear: none;
}

.tx-powermail .powermail_fieldwrap > .powermail_field {
    width: calc(100% - 110px);
    float: left;
    clear: none;
    position: relative;
}

.tx-powermail .powermail_fieldwrap > .powermail_field > * {
    float: left;
    clear: both;
    width: calc(100% - 10px);
    padding: 5px;
    margin: 0 0 0 0;
    background: #eee;
    font-family: 'Lato', arial, sans-serif;
    border: none;
}

.tx-powermail .powermail_fieldwrap.powermail_fieldwrap_type_check.powermail_fieldwrap_marker .powermail_field {
    float: right;
}

.tx-powermail .powermail_fieldwrap.powermail_fieldwrap_type_check.powermail_fieldwrap_marker .powermail_field > * {
    background: none;
}

.tx-powermail .powermail_fieldwrap_type_submit .powermail_field {
    clear: both;
    width: 100%;
    cursor: pointer;
}  

.tx-powermail .powermail_fieldwrap_type_submit .powermail_field > * {
    color: #FFF;
    background: #004b7c;
    text-transform: uppercase;
    font-family: 'Lato', arial, sans-serif;
    font-size: 14px;
    padding: 7px 0;
    width: 100%;
}

.tx-powermail .powermail_fieldwrap .powermail-errors-list {
    position: absolute;
    bottom: -5px;
    right: -2px;
    background: #7d000c;
    width: auto !important;
    margin: 0 0 0 0 !important;
    padding: 0 5px !important;
}

.tx-powermail .powermail_fieldwrap .powermail-errors-list li {
    padding: 0 0 0 0 !important;
    margin: 0 0 0 0;
    color: #FFF;
    font-size: 12px;
    white-space: nowrap;
}

.tx-powermail .powermail_fieldwrap .powermail-errors-list li::before {
    display: none;
}

.tx-powermail input,
.tx-powermail textarea {
    font-family: 'Lato', arial, sans-serif;
    outline: none;
}

/*~ Footer ~*/
#footer {
    background: #004b7c;
    color: #FFF;
    font-size: 14px;
    padding: 20px 0;
}

#footer a {
    color: #FFF;
}

#footer .tx_cn-multicontent > .rahmen > div {
    float: left;
    clear: both;
    width: 100%;
}

#footer .cn_multicontent_teaser {
    margin-bottom: 10px;
    border-bottom: 1px dotted #FFF;
}

/* Anpassung Safari */
@media not all and (min-resolution:.001dpcm) { 
	@supports (-webkit-appearance:none) {
		.frame-default.frame-layout-20{
			background-attachment: inherit !important;
			background-size: cover !important;
			background-repeat: no-repeat !important;
			background-position: center center !important;
			height: auto ;
			margin: 40px 0; 
		}
	}
}