* {
    margin: 0;
    font-weight: normal;
    vertical-align: top;
    padding: 0;
    font-size: 14px;
    font-weight: normal;
    font-family: 'Open Sans', sans-serif;
}

b {
    font-weight: bold;
}

a {
    text-decoration: none;
}

.clear {
    clear: both;
}

.center {
    text-align: center;
}

.element {
    width: 100%;
    background: #ffffff;
}

hr {
    width: 150px;
    margin: 0 auto 30px auto;
}

#top-link {
    display: none;
    position: fixed;
    right: 30px;
    bottom: 60px;
    cursor: pointer;
}

#top-link.active {
    display: block;
}

.element .cont {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
    vertical-align: top;
    display: block;
    clear: both;
    min-height: 100%;
}

a.icon-email {
    padding-left: 20px;
    background-image: url(/resources/images/icons/close-envelope.png);
    background-position: left center;
    background-repeat: no-repeat;
    color: #ffffff;
    text-decoration: none;
}

a.icon-email-dark {
    padding-left: 20px;
    background-image: url(/resources/images/icons/close-envelope-blue.png);
    background-position: left center;
    background-repeat: no-repeat;
    color: #3A68A4;
    text-decoration: none;
}

a.icon-phone {
    padding-left: 20px;
    background-image: url(/resources/images/icons/phone-receiver.png);
    background-position: left center;
    background-repeat: no-repeat;
    color: #ffffff;
    text-decoration: none;
}

a.icon-phone-dark {
    padding-left: 20px;
    background-image: url(/resources/images/icons/phone-receiver-2.png);
    background-position: left center;
    background-repeat: no-repeat;
    color: #3A68A4;
    text-decoration: none;
}

a.icon-mobile {
    padding-left: 20px;
    background-image: url(/resources/images/icons/smartphone.png);
    background-position: left center;
    background-repeat: no-repeat;
    color: #ffffff;
    text-decoration: none;
}

a.icon-mobile-dark {
    padding-left: 20px;
    background-image: url(/resources/images/icons/smartphone-call-1.png);
    background-position: left center;
    background-repeat: no-repeat;
    color: #3A68A4;
    text-decoration: none;
}

a.icon-fax {
    padding-left: 20px;
    background-image: url(/resources/images/icons/printer.png);
    background-position: left center;
    background-repeat: no-repeat;
    color: #ffffff;
    text-decoration: none;
}

a.icon-fax-dark {
    padding-left: 20px;
    background-image: url(/resources/images/icons/printer-1.png);
    background-position: left center;
    background-repeat: no-repeat;
    color: #3A68A4;
    text-decoration: none;
}

img.imagefloatright {
    float: right;
    box-shadow: 5px 5px 5px #2a2f33;
    margin: 0 0 25px 20px;
}

img.imagefloatleft {
    float: left;
    box-shadow: 5px 5px 5px #2a2f33;
    margin: 0 20px 20px 0;
}

.element.top-panel {
    background: #3a68a4;
}

.element.top-panel .cont .info-block {
    display: inline-block;
    padding: 7px 0;
    margin-right: 10px;
    font-size: 13px;
}

.element.nav .cont .logo {
    display: inline-block;
    height: 100px;
}

.element.nav .cont .logo a {
    display: block;
}

.element.nav .cont .logo img {
    height: 75px;
    margin: 12px 0;
}

.element.nav .cont .navi {
    display: inline-block;
    float: right;
}

.element.nav .cont .navi #mobilenavi {
    display: none;
    cursor: pointer;
}

.element.nav .cont .navi ul {
    list-style: none;
    display: inline-block;
}

.element.nav .cont .navi ul li {
    display: inline-block;
    text-align: center;
    float: left;
    text-transform: uppercase;
    -webkit-transition: .5s all ease;
    transition: .5s all ease;
    z-index: 120;
    position: relative;
}

.element.nav .cont .navi ul li a {
    line-height: 100px;
    padding: 0 20px;
    display: inline-block;
    text-decoration: none;
    color: #000000;
}

.element.nav .cont .navi ul li:hover {
    /*border-bottom-color: #02c5e1;*/
    background-color: #3a68a4;
}

.element.nav .cont .navi ul li:hover a {
    color: #ffffff;
}

.element.nav .cont .navi ul li .submenu {
    top: 100px;
    display: block;
    max-height: 0;
    overflow: hidden;
    position: absolute;
    width: 540px;
    background: #ffffff;
    z-index: 100;
    -webkit-transition-property: max-height;
    transition-property: max-height;
    -webkit-transition-duration: .5s;
    transition-duration: .5s;
}

.element.nav .cont .navi ul li .submenu ul {
    display: block;
    overflow: hidden;
    width: 270px;
    background: #ffffff;
    float: left;
}

.element.nav .cont .navi ul li .submenu ul li {
    float: none;
    text-align: left;
    display: block;
    color: #000000;
    border-top: solid 1px #c5c5c5;
    border-left: solid 1px #c5c5c5;
    border-right: solid 1px #c5c5c5;
}

.element.nav .cont .navi ul li .submenu ul li:last-child {
    border-bottom: solid 1px #c5c5c5;
}

.element.nav .cont .navi ul li .submenu ul li a {
    line-height: normal;
    text-transform: none;
    display: block;
    color: #000000;
    padding: 12px 10px;
}

.element.nav .cont .navi ul li .submenu ul li:hover {
    background-color: #3a68a4;
    color: #ffffff;
}

.element.nav .cont .navi ul li .submenu ul li:hover a {
    color: #ffffff;
}

.element.nav .cont .navi ul li:hover .submenu {
    display: block;
    max-height: 400px;
}

.element.page-header {
    border-bottom: 10px solid #3a68a4;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.element.page-header .cont {
    height: 370px;
}

.element.page-header .background-img {
    height: 370px;
    display: none;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.element.page-header .background-img.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 3s;
  animation-name: fade;
  animation-duration: 3s;
}

@-webkit-keyframes fade {
  from {opacity: .1}
  to {opacity: 1}
}

@keyframes fade {
  from {opacity: .1}
  to {opacity: 1}
}

.element.maincontent {
    background-image: url(/resources/images/fabric_of_squares_gray.png);
}

.element.maincontent .cont {
    padding: 40px 20px;
}

.element.maincontent .cont h1 {
    color: #3a68a4;
    font-size: 25px;
    margin-bottom: 30px;
}

.element.maincontent .cont h2 {
    font-size: 20px;
    margin-bottom: 20px;
}

.element.maincontent .cont h3 {
    font-size: 18px;
    margin-bottom: 20px;
}

.element.maincontent .cont h3.slogans {
    font-size: 17px;
    margin-bottom: 30px;
    color: #3a68a4;
}

.element.maincontent .cont p {
    margin-bottom: 30px;
    font-size: 17px;
}

.element.maincontent .cont ul {
    margin-left: 30px;
    margin-bottom: 20px;
}

.element.maincontent .cont ul li {
    line-height: 20px;
}

.element.maincontent .cont blockquote {
    background-color: #ffffff;
    padding: 40px 100px;
    box-shadow: 0px 6px 12px 0px #2a2f33;
    position: relative;
    font-size: 22px;
    font-style: italic;
    margin-top: 30px;
    text-align: center;
}

.element.maincontent .cont blockquote:before {
    content: '"';
    font-size: 100px;
    line-height: 1;
    color: #36a5ed;
    position: absolute;
    left: 23px;
    top: 46px;
    font-style: italic;
}

.element.maincontent .cont blockquote:after {
    content: '"';
    font-size: 100px;
    line-height: 1;
    color: #36a5ed;
    position: absolute;
    right: 47px;
    top: 0px;
    font-style: italic;
}

.element.maincontent .cont .easyblock {
    background: #ffffff;
    padding: 15px;
    border: 1px solid #cccccc;
    border-radius: 0px 0px 10px 0px;
    box-shadow: 3px 3px 3px #cccccc;
    margin-bottom: 30px;
}

.element.maincontent .cont .easyblock h2 {
    background: #3a68a4;
    color: #ffffff;
    padding: 8px;
    border-radius: 0px 0px 10px 0px;
    display: inline-block;
    margin-bottom: 15px;
}

.element.maincontent .cont .easyblock .easycontent ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.element.maincontent .cont .easyblock .easycontent ul li {
    padding-left: 1em; 
    text-indent: -.7em;
}

.element.maincontent .cont .easyblock .easycontent ul li::before {
    content: '\2022';
    margin-right: 10px;
    color: #36a5ed;
}

.element.maincontent .cont .table {
    display: table;
    width: 100%
}

.element.maincontent .cont .table .trow {
    display: table-row;
}

.element.maincontent .cont .table .trow .cell {
    display: table-cell;
}

.element.maincontent .cont .table.contact .trow .cell.left {
    width: 390px;
}

.element.maincontent .cont .table.contact .trow .cell.left .infobox {
    max-width: 290px;
    background: #3a68a4;
    color: #ffffff;
    padding: 35px;
}

.element.maincontent .cont .table.contact .trow .cell.right {
    
}

.element.maincontent .cont .formular {
    width: 100%;
}

.element.maincontent .cont .formular .formelement {
    width: 100%;
    margin-bottom: 18px;
}

.element.maincontent .cont .formular .formelement .elementtitle {
    
}

.element.maincontent .cont .formular .formelement .text {
    width: 100%;
    color: #3a68a4;
    background-color: #ccc;
    padding: 16px 20px;
    border: none;
    border-radius: 4px;
    box-sizing: border-box;
}

.element.maincontent .cont .formular .formelement .textarea {
    width: 100%;
    color: #3a68a4;
    background-color: #ccc;
    padding: 16px 20px;
    border: none;
    border-radius: 4px;
    height: 118px;
    box-sizing: border-box;
}

.element.maincontent .cont .formular .formelement .selectbox {
    width: 100%;
    color: #3a68a4;
    background-color: #ccc;
    padding: 16px 20px;
    border: none;
    border-radius: 4px;
    box-sizing: border-box;
}

.element.maincontent .cont .formular .formelement select.error,
.element.maincontent .cont .formular .formelement textarea.error,
.element.maincontent .cont .formular .formelement input.error {
    border: 1px solid #fd3c3d;
}

.element.maincontent .cont .formular .formelement .button {
    background-color: #3a68a4;
    border-color: #3a68a4;
    color: #ffffff;
    border-radius: 4px;
    text-decoration: none;
    text-transform: uppercase;
    padding: 15px 40px;
    line-height: 1.5;
    display: inline-block;
    padding: 15px 38px;
    cursor: pointer;
    text-align: center;
    vertical-align: top;
    white-space: nowrap;
    text-overflow: ellipsis;
    border: 1px solid;
    box-shadow: none;
}

.element.maincontent .cont .formular .formelement.captch .txt {
    display: inline-block;
    vertical-align: middle;
    font-size: 20px;
}

.element.maincontent .cont .formular .formelement.captch .txt span {
    font-size: 20px;
}

.element.maincontent .cont .formular .formelement.captch .text.captch {
    vertical-align: middle;
    width: 100px;
    margin-left: 30px;
}

.element.maincontent .cont .formular .infoblock {
    text-align: right;
    margin-bottom: 27px;
}

.element.maincontent .cont .formular .infoblock.ok {
    color: green;
}

.element.maincontent .cont .formular .infoblock.error {
    color: red;
}

.element.maincontent .cont .formular .formelement .button:hover {
    background-color: #525b64;
    border-color: #525b64;
}

.element.maincontent .cont .goolecontainer {
    max-width: 600px;
    margin: 0 auto;
}

.element.maincontent .cont .goolecontainer iframe {
    width: 100%;
}

.element.maincontent .cont .leistungen {
    max-width: 700px;
    margin: 0 auto;
    margin-top: 75px;
}

.element.maincontent .cont .leistungen .leistung {
    margin-bottom: 30px;
    display: block;
    padding: 20px;
    background-color: #ffffff;
    box-shadow: 0px 6px 12px 0px #2a2f33;
    -webkit-transition: 250ms linear;
    transition: 250ms linear;
    -webkit-transition-property: background-color;
    transition-property: background-color;
    color: #000000;
    
}

.element.maincontent .cont .leistungen .leistung.right {
    border-radius: 0px 0px 10px 0px;
}

.element.maincontent .cont .leistungen .leistung.left {
    border-radius: 0px 0px 0px 10px;
}

.element.maincontent .cont .leistungen .leistung:hover {
    background-color: #acb8c1;
}

.element.maincontent .cont .leistungen .leistung img.imagefloatright {
    margin-bottom: 0
}

.element.maincontent .cont .leistungen .leistung img.imagefloatleft {
    margin-bottom: 0
}

.element.maincontent .cont .leistungen .leistung h2 {
    font-size: 23px;
    margin-top: 20px;
}

.element.maincontent .cont .leistungen .leistung.left h2 {
    font-size: 23px;
    text-align: right;
}

.element.maincontent .cont .contactpersons {
    margin-bottom: 50px;
}

.element.maincontent .cont .contactpersons .person {
    margin: 25px 0;
    clear: both;
}

.element.maincontent .cont .contactpersons img {
    max-width: 300px;
}

.element.maincontent .cont .contactpersons h2 {
    color: #3a68a4;
    margin-bottom: 0;
}

.element.maincontent .cont .contactpersons h3 {
    font-size: 14px;
    margin-bottom: 30px;
}

.element.maincontent .cont .contactpersons .contact {
    
}

.element.maincontent .cont .contactpersons .contact a {
    line-height: 25px;
    font-size: 18px;
}

.element.contact {
    background-color: #2a2f33;
    border-top: 5px solid #3A68A4;
}

.element.contact .cont .box {
    max-width: 300px;
    float: left;
    padding: 0 15px;
    margin: 30px 0;
    min-height: 137px;
    box-sizing: border-box;
}

.element.contact .cont .box.doppel {
    max-width: 570px;
    padding: 0 15px;
}

.element.contact .cont .box.drei {
    max-width: 870px;
    padding: 0 15px;
}

.element.contact .cont .box.vier {
    max-width: 1200px;
    box-sizing: border-box;
}

.element.contact .cont .box .box-content {
    width: 292px;
    float: left;
    color: #ffffff;
    line-height: 25px;
    margin-top: 15px;
    padding: 0 15px;
    box-sizing: border-box;
}

.element.contact .cont .box.vier .box-content {
    min-height: 150px;
}

.element.contact .cont .box h6 {
    width: 100%;
    padding-bottom: 5px;
    border-bottom: 1px solid #ffffff;
    color: #ffffff;
    font-weight: bold;
}

.element.contact .cont .box .box-content img.contactimage {
    float: right;
    box-shadow: 5px 5px 5px black;
}

.element.footer {
    background-color: #272b2f;
}

.element.footer .cont {
    color: #ffffff;
    padding: 20px;
}

.element.footer .cont a {
    color: #ffffff;
    text-decoration: none;
}

@media(max-width:1070px) {
    .element.nav .cont .navi #mobilenavi {
        display: block;
        padding-left: 23px;
        background-image: url(/resources/images/menu.png);
        background-position: left center;
        background-repeat: no-repeat;
        margin: 40px 0;
        font-size: 20px;
        box-sizing: border-box;
    }
    
    .element.nav .cont .navi ul {
        list-style: none;
        position: absolute;
        right: 0;
        width: 100%;
        background: #ffffff;
        margin-top: -3px;
        max-height: 0;
        overflow: hidden;
        position: absolute;
        -webkit-transition-property: max-height;
        transition-property: max-height;
        -webkit-transition-duration: .5s;
        transition-duration: .5s;
        border: solid 1px #c5c5c5;
    }
    
    .element.nav .cont .navi.active ul {
        max-height: 635px !important;
        display: block;
        background: #ffffff;
        z-index: 100;
    }

    .element.nav .cont .navi ul li {
        display: block;
        text-align: left;
        float: none;
        border-bottom: solid 1px #c5c5c5;
        text-transform: uppercase;
        -webkit-transition: unset;
        transition: unset;
    }
    
    .element.nav .cont .navi ul li:last-child {
        border-bottom: 0;
    }
    
    .element.nav .cont .navi ul li:hover {
        background-color: #3a68a4;
    }

    .element.nav .cont .navi ul li a {
        line-height: 35px;
        padding: 0 10px;
        display: block;
        text-decoration: none;
        color: #000000;
    }

    .element.nav .cont .navi ul li .submenu {
        display: block;
        border: 0;
        position: relative;
        width: auto;
        background: #ffffff;
        z-index: 100;
        max-height: 400px;
        top: 0;
    }

    .element.nav .cont .navi ul li .submenu ul {
        display: block;
        float: none;
        border: 0;
        margin-top: 0;
        position: relative;
        width: auto;
        background: #ffffff;
        z-index: 100;
        max-height: 350px;
        top: 0;
    }

    .element.nav .cont .navi ul li .submenu ul li {
        float: none;
        text-align: left;
        display: block;
        color: #ffffff;
        border: 0;
        padding-left: 25px;
        border-top: solid 1px #c5c5c5;
    }
    
    .element.nav .cont .navi ul li .submenu ul li:first-child {
         
    }
    
    .element.nav .cont .navi ul li .submenu ul li:last-child {
         border-bottom: 0; 
    }

    .element.nav .cont .navi ul li .submenu ul li a {
        line-height: normal;
        text-transform: none;
        display: block;
        color: #000000;
        padding: 10px 5px;
    }
    
    .element.nav .cont .navi ul li .submenu ul li a:hover {
        text-decoration: none;
    }
}

@media(max-width:900px) {
    
    .element.maincontent .cont .leistungen .leistung img {
        float: none;
        margin: 0;
        max-width: 300px;
        width: 100%;
    }
    
    .element.maincontent .cont .leistungen .leistung {
        text-align: center;
        max-width: 300px;
        border-radius: 10px 10px 10px 10px !important;
        margin: 30px auto;
    }
    
    .element.maincontent .cont .leistungen .leistung h2 {
        text-align: center !important;
    }
    
    .element.maincontent .cont .table {
        display: block;
    }
    
    .element.maincontent .cont .table .trow {
        display: block;
    }
    
    .element.maincontent .cont .table .trow .cell {
        display: block;
    }
    
    .element.maincontent .cont .table.contact .trow .cell.left {
        width: 100%;
        max-width: 390px;
    }
    
    .element.maincontent .cont .table.contact .trow .cell.right {
        margin-top: 30px;
    }
}

@media(max-width:660px) {
    .element.nav .cont .logo img {
        height: 50px;
        margin: 25px 0;
    }
    
    img.imagefloatright {
        float: none;
        margin: 0 20px 25px 0;
    }

    img.imagefloatleft {
        float: none;
        margin: 0 20px 20px 0;
    }
    
    .element.maincontent .cont .contactpersons h3 {
        margin-bottom: 10px;
    }
}