/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote::before, blockquote::after,
q::before, q::after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* =========================================
   1. Columns
   ========================================= */

.full-width,
.one-half,
.one-third,
.two-third,
.one-fourth,
.three-fourth,
.one-fifth,
.two-fifth,
.three-fifth,
.four-fifth,
.one-sixth,
.five-sixth {
  float: left;
  display: block;
  position: relative;
  overflow: hidden;
  width: 100%;
}

.clear-column {
  clear:both;
  display:block;
  font-size:0;
  height:0;
  line-height:0;
  width:100%;
  overflow: hidden;
}

.full-width  {
  width: 100%;
}
.one-half {
  width: 48%;
  margin-right: 4%;
}
.one-half.last-column {
  width: 48%;
  margin-right: 0px;
}
.one-third {
  width: 31%;
  margin-right: 3.33%;
}
.one-third.last-column {
  width: 31%;
  margin-right: 0px;
}
.two-third {
  width: 65%;
  margin-right: 4%;
}
.two-third.last-column {
  width: 65.33%;
  margin-right: 0;
}
.one-fourth {
  width: 22%;
  margin-right: 4%;
}
.one-fourth.last-column {
  width: 22%;
  margin-right: 0px;
}
.three-fourth {
  width: 72.5%;
  margin-right: 4%;
}
.three-fourth.last-column {
  width: 72.5%;
  margin-right: 0px;
}
.one-fifth {
  width: 16.4%;
  margin-right: 4%;
}
.one-fifth.last-column {
  width: 16.4%;
  margin-right: 0px;
}
.two-fifth {
  width: 37%;
  margin-right: 4%;
}
.two-fifth.last-column {
  width: 37%;
  margin-right: 0px;
}
.three-fifth {
  width: 57%;
  margin-right: 4%;
}
.three-fifth.last-column {
  margin-right: 0;
}
.four-fifth {
  margin-right: 4%;
}
.four-fifth.last-column {
  margin-right: 0;
}
.one-sixth {
    width: 13%;
    margin-right: 4.4%;
}
.one-sixth.last-column {
    margin-right: 0;
}
.last-column {
    margin-right: 0!important;
    margin-bottom: 0;
}
.overflow-visible {
    overflow: visible;
}
.section {
    position: relative;
    display: block;
    overflow: hidden;
    width: 100%;
}
.section.odd {
    background: rgba(0,93,127,0.05);
    border-top: 1px solid rgba(0,93,127,0.1);
    border-bottom: 1px solid rgba(0,93,127,0.1);
}
.container {
    display: block;
    overflow: hidden;
    margin: 0 auto;
    position: relative;
    max-width: 1024px;
    padding: 3em 1.25em;
}
.container.full {
    max-width: 100%;
    padding: 0 0;
}
.centered {
    text-align: center;
}
#particles-js {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    opacity: .34;
}

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

  .full-width:not(.no-break),
  .one-half:not(.no-break),
  .one-third:not(.no-break),
  .two-third:not(.no-break),
  .one-fourth:not(.no-break),
  .three-fourth:not(.no-break),
  .one-fifth:not(.no-break),
  .two-fifth:not(.no-break),
  .three-fifth:not(.no-break),
  .four-fifth:not(.no-break),
  .last-column:not(.no-break),
  .container {
    clear: both;
    width: 100%!important;
    margin-left: 0;
    margin-right: 0;
    padding-bottom: 1.5em;
    float: none;
  }
}

/* Main CSS */

.preloader,
.preloader-image {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    opacity: 1;
    z-index: 998;
}
.preloader-image {
    background: url(../img/gear.svg) center center no-repeat;
    z-index: 999;
}

* {
    box-sizing: border-box;
}

body {
    font-size: 1em;
    line-height: 1.5;
    background: #fff;
    font-family: 'Lato', sans-serif;
    color: #111;
    min-width: 320px;
}

b, strong {
    font-weight: 700;
}

h1 { font-size: 2em; }
h2 { font-size: 1.5em; }
h3 { font-size: 1.17em; }
h4 { font-size: 1.12em; }
h5 { font-size: .83em; }
h6 { font-size: .75em; }

h2, h3, h4, h5, h6 {
    margin: 0 0 1em;
}

h2,h3,h4,h5,h6 {
    text-transform: uppercase;
}

a,
a:focus,
a:hover,
a:visited,
a:active {
    display: inline-block;
    color: rgba(0,93,127,1);
    /*border-bottom: 2px solid rgba(0,93,127,.5);*/
    text-decoration: none;
    line-height: 1;
    transition: opacity .2s linear;
}

a:hover {
    opacity: .8;
}

a.no-border {
    border:none;
}

p {
    margin-bottom: 1em;
}

.last {
    margin-bottom: 0!important;
    padding-bottom: 0!important;
}

p.description.margin-bottom {
    display: block;
    margin-bottom: 1em;
}

ul.centered-list {
    list-style: square;
    text-align: left;
    padding-left: 1em;
    max-width: 740px;
    display: block;
    margin: 0 auto;
}

ul.centered-list li {
    padding-bottom: .125em;
}

ul.centered-list li:last-child {
    padding-bottom: 0;
}

ul.timetable,
ul.prices {
  max-width:340px;
  padding:0;
  list-style:none;
}

ul.centered-list.timetable li,
ul.centered-list.prices li {
  border-bottom: 1px solid #eee;
  padding: .25em 0 .125em;
}

small {
    font-size: .875em;
}

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

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

.highlight {
    color: #005d7f;
}

.float-right {
  float: right;
}

.footer-icon {
    margin-top: 12px;
    font-size: 3em;
    color: #ddd;
}

li.padding-top {
    padding-top: 1em;
}

img {
    max-width: 100%;
}

img.portrait {
    margin-top: 2em;
}

a img {
    border: none!important;
}

.header {
    padding: 14em 1em 9em;
    background: #f3f3f3 url(../img/landmark-duesseldorf.jpg) no-repeat center top;
    background-size: cover;
    position: relative;
}

.header .container {
    max-width: 1120px;
}

.overlay {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,.1);
    z-index: 2;
}

h1.slogan {
    font-size: 2.5em;
    display: block;
    color: #fff;
    text-shadow: 1px 1px 1px rgba(0,0,0,.5);
    letter-spacing: 0px;
    font-weight: 400;
    line-height: 1.25;
    position: relative;
    z-index: 3;
}

.slogan-line {
    display: block;
    list-style-type: none;
}

.slogan-line-small {
    font-size: .6125em;
    line-height: 1.5;
    padding-bottom: .5em;
    margin-bottom: .5em;
    font-weight: 300;
    border-bottom: 1px solid rgba(255,255,255,.25);
    letter-spacing: 1px;
    /*text-transform: uppercase;*/
}

.main {
    display: block;
    overflow: hidden;
    padding: 0;
    margin: 0 auto;
}

.main-half {
  max-width: 960px;
}

blockquote {
    padding: 0.5em 1em;
    max-width: 100%;
    margin: 0 auto 2em;
}

blockquote p {
    display: inline;
}

blockquote cite {
    color: #999999;
    display: block;
    margin-top: .5em;
    font-size: 1.125em;
}

/* =========================================
   Flyout Container
   ========================================= */

.flyout-container {
  display:block;
  overflow:hidden;
  max-width:100%;
  margin:1em 0 0;
}

.flyout-container-title {
  display: block;
  padding: .5em;
  font-weight: 600;
  color: #666;
  background: #f3f3f3;
  transition: all 300ms;
}

.flyout-container-title:hover {
  background:#efefef;
  cursor:pointer;
}

.flyout-container-title.active {
  background:#efefef;
}

.flyout-container-title::before {
  font-family: FontAwesome;
  /*color: #dd7f35;*/
  color: #779fbd;
  opacity: .75;
  display:inline-block;
  /*content:"\f0e7";*/
  content:"\f078";
  width: 1em;
  margin-right: .25em;
  position: relative;
  top: -1px;
}

.flyout-container-title.active::before {
  content:"\f077";
}

.section.odd .flyout-container-title {
  color: #4c5558;
  background: #dfe6e8;
}

.section.odd .flyout-container-title:hover {
  background:#d8e2e4;
}

.section.odd .flyout-container-title.active {
  background:#d8e2e4;
}

.section.odd .flyout-container-title::before {
  color: #4c5558;
  opacity: .25;
}

.flyout-container-content {
  display:block;
  overflow:hidden;
  padding:.5em 0 0 .5em;
}

.flyout-container-content p {
    margin-bottom: 1em;
}

.flyout-container-content .img-wrapper {
    float: left;
    margin: 0 1em 1em 0;
    width: 120px;
    height: 120px;
    display: block;
    background: #eee;
    background-size: cover!important;
    background-position: center center!important;
}

/* =========================================
   Valuemeter
   ========================================= */

.valuemeter {
  position:relative;
  display:block;
  max-width:100%;
  padding:.7em .5em .8em;
  background:#f3f3f3;
  line-height: 1;
  text-align: left;
  margin-bottom: .6125em;
}

.valuemeter-name {
  position:relative;
  z-index:2;
  font-size:.875em;
  color:#fff;
  font-weight:400;
  /*text-transform: uppercase;*/
  letter-spacing: 1px;
  line-height: 1;
  text-shadow: 1px 1px 1px rgba(0,0,0,.375);
}

.valuemeter-name::before {
    font-family: FontAwesome;
    content: '\f00c';
    margin-right: .375em;
}

.valuemeter-value {
  display:block;
  position:absolute;
  left:0;
  top:0;
  height:100%;
  width:0;
  background: rgba(0,93,127,.75);
  line-height: 1;
}

.has-border-radius {
  border-top-right-radius:4px;
  border-bottom-right-radius:4px;
}

.embed-wrapper {
    position:relative;
    height:0;
    overflow:hidden;
    padding-bottom: 32em;
}

iframe, object, embed {
    position:absolute;
    width:100%;
    height:100%;
    left: 0;
    top: 0;
}

/* =========================================
   Main Navigation
   ========================================= */

#main-nav {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    background: #fff;
    display: block;
    z-index: 99;
    padding: .5em 0;
    box-shadow: 1px 2px 3px rgba(0,0,0,.25);
}

#main-nav #main-nav-inner {
    max-width: 1120px;
    display: block;
    margin: 0 auto;
    padding: 0 1.25em;
}

.logo {
    color: rgba(0,93,127,1);
    font-weight: 700;
}

#main-nav .logo {
    width: 15%;
    float: left;
    text-align: left;
    font-size: 2.125em;
    position: relative;
    top: -1px;
    cursor: pointer;
}

.logo img {
    width: 68px;
    position: relative;
    top: 4px;
}

/*.logo .fa.fa-bolt {
    color: #dd7f35;
}*/

#main-nav ul {
    margin: 0 auto;
    display: block;
    text-align: right;
}

#main-nav nav {
    width: 85%;
    float: right;
}

#main-nav ul li {
    display: inline-block;
    margin: 0 auto;
}

#main-nav ul li a {
    transition: all .2s linear;
    border-bottom: 0px;
    z-index: 99;
    position: relative;
    padding: 1em .5em;
    color: #111;
    font-weight: 300;
    font-size: 1.06125em;
}

#main-nav ul li:last-child a {
    padding-right: 0;
}

#main-nav ul li a:hover {
    color: #aaa;
}

#main-nav ul li a.active {
    color: #005d7f;
}

#main-nav ul li a:focus {
    color: #005d7f;
}

#nav-opener {
    display: none;
    margin: 0 auto;
    font-size: 2em;
    cursor: pointer;
}

#scroll-to-top {
    border: 0!important;
}

/* =========================================
   Scroll Position
   ========================================= */

.scroll-position {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    z-index: 999999;
    opacity: .25;
}

.scroll-position-value {
    position: absolute;
    left: 0;
    top: 0;
    width: 0%; /* Adjusted in js/main.js */
    height: 100%;
    background: #005d7f;
}

/* =========================================
   Footer
   ========================================= */

.section-footer {
    background: #373742;
    color: #fff;
    font-weight: 300;
}

.section-footer a {
    color: #ee9f33;
    font-weight: 400;
    transition: opacity .2s linear;
}

.section-footer a:hover {
    opacity: .8;
}

.section-footer .flyout-container-title {
  display: block;
  padding: .5em;
  font-weight: 600;
  color: #eee;
  background: #262630;
  transition: all 300ms;
}

.section-footer .flyout-container-title::before {
    color: #444450;
}

.section-footer .flyout-container-title:hover {
  background:#1e1e27;
  cursor:pointer;
}

.section-footer .flyout-container-title.active {
  background:#1e1e27;
}

.section-footer .flyout-container-title.active::before {
  content:"\f077";
}

/* =========================================
   Form / Input
   ========================================= */

label {
    display: block;
    text-transform: uppercase;
    font-size: .93875em;
    font-weight: 400;
    margin-bottom: .25em;
}

input, textarea {
    width: 98%;
    max-width: 98%;
    min-width: 98%;
    border: 1px solid rgba(0,93,127,0.1);
    background: rgba(0,93,127,0.05);
    font-size: 1em;
    padding: .5em;
    margin-bottom: 1em;
    outline: 0;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
}

textarea {
    height: 10em;
}

input[type=submit] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: auto;
    max-width: auto;
    min-width: auto;
    color: #fff;
    font-weight: 600;
    background: #373742;
    padding: .75em;
    display: inline-block;
    border-radius: 4px;
    transition: all .2s linear;
}

input[type=submit]:hover {
    background: #1e1e27;
}

.required::after {
    content: '*';
    color: red;
    margin-left: .25em;
}

.submitting {
    font-size: 1.5em;
    color: orange;
    margin-left: .375em;
    position: relative;
    top: 3px;
    display: none;
}

#form-success {
    display: none;
    margin-bottom: 1.25em;
}

/* =========================================
   Image Lightbox
   ========================================= */

#imagelightbox {
    cursor: pointer;
    position: fixed;
    z-index: 10000;
    -ms-touch-action: none;
    touch-action: none;
    -webkit-box-shadow: 0 0 3.125em rgba( 0, 0, 0, .75 );
    box-shadow: 0 0 3.125em rgba( 0, 0, 0, .75 );
}

#imagelightbox-loading,
#imagelightbox-loading div {
    border-radius: 50%;
}

#imagelightbox-loading {
    width: 2.5em; /* 40 */
    height: 2.5em; /* 40 */
    background-color: #fff;
    opacity: .75;
    position: fixed;
    z-index: 10003;
    top: 50%;
    left: 50%;
    padding: 0.625em; /* 10 */
    margin: -1.25em 0 0 -1.25em; /* 20 */
    -webkit-box-shadow: 0 0 2.5em rgba( 0, 0, 0, .75 ); /* 40 */
    box-shadow: 0 0 2.5em rgba( 0, 0, 0, .75 ); /* 40 */
}

#imagelightbox-loading div {
    width: 1.25em; /* 20 */
    height: 1.25em; /* 20 */
    background-color: #dd7f35;
    opacity: .5;
    -webkit-animation: imagelightbox-loading .5s ease infinite;
    animation: imagelightbox-loading .5s ease infinite;
}

@-webkit-keyframes imagelightbox-loading {
    from { opacity: .5;	-webkit-transform: scale( .75 ); }
    50%	 { opacity: 1;	-webkit-transform: scale( 1 ); }
    to	 { opacity: .5;	-webkit-transform: scale( .75 ); }
}

@keyframes imagelightbox-loading {
    from { opacity: .5;	transform: scale( .75 ); }
    50%	 { opacity: 1;	transform: scale( 1 ); }
    to	 { opacity: .5;	transform: scale( .75 ); }
}

#imagelightbox-overlay {
    background-color: rgba( 0,0,0, .6 );
    position: fixed;
    z-index: 9998;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

a.lightbox {
    border: .5em solid #fff;
    transition: all .2s linear;
    margin-bottom: 1em;
    box-shadow: 0 1px 2px rgba(0,0,0,.2);
}

a.lightbox:hover {
    opacity: 1;
    box-shadow: 0 0 .5em rgba(0,0,0,.3);
}

#imagelightbox-caption {
	text-align: center;
	color: #fff;
	background-color: rgba(0,0,0,.7);
	position: fixed;
	z-index: 10001;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 0.625em; /* 10 */
}

.format16-9,
.format16-9:hover,
.format16-9:focus {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 0;
    margin-bottom: 1em;
    padding-bottom: 56.25%;
    background-size: cover!important;
    background-position: center center!important;
}

/* =========================================
   Partner Logos
   ========================================= */

.partner-logos div {
    height: 7em;
}

.partner-logos img {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
}

/* =========================================
   Responsive Styles
   ========================================= */

@media screen and (min-width: 768px) {
    #main-nav {
        display: block!important;
    }
}

@media screen and (max-width: 1023px) {
    body {
        font-size: .93875em;
    }

    /*#particles-js {
        display: none;
    }*/
}

@media screen and (max-width: 767px) {
    body {
        font-size: .875em;
    }
    .header {
        padding: 11em 1em 6em;
    }
    .logo {
        display: none;
    }
    #main-nav {
        display: none;
        padding: 5em 0 0;
        z-index: 12;
        height: 110%;
        background: rgba(25,64,83,.9875);
        position: fixed;
        top: 0;
        border-top: 0;
        overflow-y: auto;
    }

    #main-nav nav {
        width: 100%;
    }

    #main-nav ul {
        position: relative;
        top: 4em;
    }

    #main-nav ul li {
        display: block;
        padding: .4em 0;
        font-size: 1.75em!important;
        line-height: 1;
        text-align: center;
    }

    #main-nav ul li a {
        padding: .125em;
        color: #fff;
    }

    #main-nav ul li a,
    #main-nav ul li a.active,
    #main-nav ul li a:hover,
    #main-nav ul li a:focus,
    #main-nav ul li a:active {
        color: #fff;
        box-shadow: 0 0;
    }

    #main-nav ul li a:hover {
        opacity: .5;
    }

    #nav-opener {
        position: fixed;
        background: rgba(255,255,255,1);
        top: 0;
        width: 100%;
        display: block;
        transition: all .3s ease;
        padding: .32em 1em;
        box-shadow: 1px 2px 3px rgba(0,0,0,.25);
        z-index: 99;
    }

    #nav-opener .logo {
        display: block;
        float: left;
    }

    #nav-opener .fa.fa-navicon {
        display: block;
        position: absolute;
        right: .5em;
        top: .55em;
        float: right;
        color: #afcad7;
        transition: color .2s linear;
    }

    #nav-opener .fa.fa-navicon:hover {
        color: #688fa3;
    }

    #nav-opener:hover {
        opacity: 1;
    }
}

@media screen and (max-width: 640px) {
    body {
        font-size: .875em;
    }

    .logo img {
        width: 48px;
        top: 2px;
    }

    .partner-logos div {
        height: 5em;
    }

    .valuemeter {
        line-height: 1.5;
        text-indent: -1em;
        padding-left: 1.5em;
    }
}

@media screen and (max-width: 480px) {
    .partner-logos div {
        height: 64px;
    }
}

@media screen and (max-width: 479px) {
    h1.slogan {
        font-size: 2em;
    }

    .slogan-line-small {
        font-size: .6125em;
        font-weight: 400;
    }
}

@media screen and (max-width: 400px) {
    h1.slogan {
        font-size: 1.75em;
    }

    .slogan-line-small {
        font-size: .5em;
        font-weight: 400;
    }

    #main-nav ul {
        top: 2em;
    }
}

@media screen and (max-width: 359px) {
    h1.slogan {
        font-size: 1.6em;
    }

    .logo img {
        top: 1px;
    }

    #nav-opener {
        padding: .125em 1em;
    }

    #nav-opener .fa.fa-navicon {
        top: .5em;
        font-size: .875em;
    }

    #main-nav ul {
        top: .75em;
    }

    #main-nav ul li a {
        padding: 0.25em .5em;
        font-size: .75em;
    }
}
