/* CSS Document */

.menu-mobileWrapper,
.menu-top .menu-top-extend {
	display:none;
}

/* HEADER */

.header-bg {
	position:fixed;
    display:block;
	top:0;
	left:0;
	width:100%;
	height:120px;
	margin:0;
	padding:0;
	background:rgba(0,38,82,1);
    z-index:1000;
    
    -webkit-transition:all 400ms ease;
    -moz-transition:all 400ms ease;
    transition:all 400ms ease;
	
	-webkit-box-shadow:0 0 10px rgba(0,0,0,0.5);
	-moz-box-shadow:0 0 10px rgba(0,0,0,0.5);
	box-shadow:0 0 10px rgba(0,0,0,0.5);
}

.header-bg.scrollUp {
    -webkit-transform:translateY(-120px);
    -moz-transform:translateY(-120px);
    transform:translateY(-120px);
}
.header-bg.colored {
    background:rgba(0,38,82,1) !important;
}

#header {
	position:fixed;
    display:block;
	top:0;
	left:0;
	width:100%;
	height:120px;
	margin:0;
	padding:0;
	z-index:1050;
}

#logo {
	position:absolute;
	display:block;
	top:20px;
	left:40px;
	width:100px;
	height:82px;
	margin:0;
	padding:0;
	background-image:url(../graphics/logo_dark.svg);
	background-repeat:no-repeat;
	background-size:cover;
	z-index:1060;
}

#logo > a {
	display:block;
	width:100%;
	height:100%;
}

.menu-top {
	position:absolute;
    display: block;
	top: 10px;
	right: 30px;
	color: rgb(90,140,200);
	text-align: right;
	text-transform: uppercase;
    white-space: nowrap;
	z-index:1060;
}

.menu-top a:link, .menu-top a:visited, .menu-top a i, .menu-top a:link .menu-top-text, .menu-top a:visited .menu-top-text {
	color:rgb(90,140,200);
    vertical-align:baseline;
}

.menu-top a:hover, .menu-top a:hover i, .menu-top a:hover .menu-top-text {
	color:rgb(255,255,255);
}



/* MENU */

#menu {
  position:absolute;
  display:block;
  top:40px;
  left:10%;
  width:80%;
  height:auto;
  z-index:1070;
}

#menu ul {
    text-align:center;
}

#menu ul,
#menu ul li,
#menu ul li a {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
  line-height: 1;
  display: block;
  position: relative;
  
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  
  z-index:1080;
}
/*
#menu:after,
#menu > ul:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}
*/
#menu > ul > li {
/*  background: rgba(69,130,173,0.1);	*/
  display:inline-block;
}
#menu > ul > li:hover {
/*  background: rgb(169,130,173);	*/
}

#menu > ul > li > a {
  padding: 0 18px;
  height: 40px;
  font-size: 1.2em;
  line-height: 40px;
  font-family: 'Open Sans', Arial, sans-serif;
  text-decoration: none;
  font-weight: 400;
  text-transform: uppercase;
}
#menu > ul > li > a,
#menu > ul > li > a > .bold {
  color: rgb(255,255,255);
  
  -webkit-transition: color 200ms ease;
  transition: color 200ms ease;
}
#menu > ul > li:hover > a,
#menu > ul > li:hover > a > .bold {
  color: rgb(90,140,200);
}
#menu > ul > li.has-sub > a {
  padding-right: 28px;
}
#menu > ul > li.has-sub > a:after {
  position: absolute;
  top: 20px;
  right: 13px;
  width: 8px;
  height: 2px;
  display: block;
  background: rgb(255,255,255);
  content: '';
}
#menu > ul > li.has-sub > a:before {
  position: absolute;
  top: 17px;
  right: 16px;
  display: block;
  width: 2px;
  height: 8px;
  background: rgb(255,255,255);
  content: '';
  -webkit-transition: all 300ms ease;
  transition: all 300ms ease;
}
#menu > ul > li.has-sub:hover > a:before {
  top: 21px;
  height: 0;
}
#menu ul ul {
  position: absolute;
  left: calc(50% - 150px);
  visibility: hidden;
}
#menu ul ul li {
}
#menu li:hover > ul {
	visibility: visible;
}

/*
#menu ul ul {
  border: 1px solid rgb(180,180,180);
}
*/

#menu > ul > li > ul {
  top: 100px;
  height: auto;
  opacity: 0;
  text-align: left;
  
  -webkit-box-shadow: 3px 3px 12px rgba(0,0,0,0.1);
  -moz-box-shadow: 3px 3px 12px rgba(0,0,0,0.1);
  box-shadow: 3px 3px 12px  rgba(0,0,0,0.1);
  
  -webkit-transition: -webkit-transform 300ms ease, opacity 300ms ease;
  transition: transform 300ms ease, opacity 300ms ease;
}

#menu > ul > li.has-sub:hover {
  padding-bottom: 40px;
}

#menu > ul > li:hover > ul {
  -webkit-transform: translateY(-20px);
  transform: translateY(-20px);
  opacity: 1; 
}

#menu ul ul li a {
  padding: 12px 15px;
  width: 300px;
  font-size: 1em;
  line-height: 1.4em;
  text-decoration: none;
  color: rgb(0,47,102);
  font-weight: 400;
  background-color: rgb(255,255,255);
  border-bottom: 1px solid rgb(240,240,240);
  border-left: 5px solid rgb(255,255,255);
  
  -webkit-transition: all 400ms ease;
  transition: all 400ms ease;
}
#menu ul ul li:last-child a {
    border-bottom: none;
}
#menu ul ul li:first-child > a:after,
#menu ul ul li.first-item > a:after {
	content: '';
	background-color: rgb(255,255,255);
	position: absolute;
	width: 1em;
	height: 1em;
	top: -0.5em;
	left: 50%;
	margin-left: -0.5em;
	
	-webkit-transition: all 400ms ease;
	transition: all 400ms ease;
	
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
#menu ul ul li:first-child:hover > a:after,
#menu ul ul li:hover > a,
#menu ul ul li a:hover {
  background-color: rgb(240,243,245);
}
#menu ul ul li a:hover {
  padding-left: 25px;
  border-left: 5px solid rgb(90,140,200);
}

#menu ul ul li a span {
  float:right;
  padding: 0 5px;
  font-size: 0.8em;
  color: rgb(230,10,90);
  font-weight: 600;
  border: 1px solid rgb(230,10,90);
  border-radius: 3px;
}



/* MENU MOBILE */

.menu-mobileWrapper {
	position:fixed;
	top:100px;
	right:-450px;
	bottom:0;
	width:450px;
	background-color:rgb(255,255,255);
	overflow:auto;
    opacity:0;
	z-index:1080;
    
    -webkit-overflow-scrolling:touch;
	-moz-overflow-scrolling:touch;
	-ms-overflow-scrolling:touch;
	overflow-scrolling:touch;
    
    -webkit-transition: all 300ms ease-in-out; /* Chrome < 26, Safari < 7 */
    -moz-transition: all 300ms ease-in-out; /* Firefox < 16 */
    -o-transition: all 300ms ease-in-out; /* Opera < 12.10 */
    transition: all 300ms ease-in-out; /* Chrome 26-35, Safari, Opera 15-23 */
    transition: all 300ms ease-in-out; /* IE10+, Firefox 16+, Chrome 36+, Opera 12.10 */
}

.menu-mobileWrapper.open {
    opacity:1;
    
    -webkit-transform:translateX(-450px);
    -moz-transform:translateX(-450px);
    -ms-transform:translateX(-450px); /* Only for graceful degradation in IE9, cannot be transitioned */
    -o-transform:translateX(-450px);
    transform:translateX(-450px);
}
	
.menu-mobileWrapper li, .menu-mobileWrapper li.menu-mobile-hl {
	position:relative;
	display:block;
	margin:0;
	padding:0;
	width:100%;
	height:50px;
	border-bottom:1px solid rgba(210,210,210,1);
}

.menu-mobileWrapper li.menu-mobile-hl {
	font-size:1.4em;
	font-weight:400;
	line-height:50px;
	color:rgb(90,140,200);
	text-align:left;
	text-transform:uppercase;
	text-indent:1.5em;
	background-color:rgba(246,246,246,1);
	border-bottom:1px solid rgba(90,140,200,1);
}

.menu-mobileWrapper li a.menu-mobile {
	position:absolute;
	display:block;
	top:0;
	margin:0;
	padding:0;
	width:100%;
	height:100%;
	font-family:'Open Sans', Arial, sans-serif;
	color:rgb(0,38,82);
	font-size:1.0em;
	line-height:50px;
	text-align:left;
	text-decoration:none;
	text-indent:2.2em;
	background-color:rgba(255,255,255,1);
	
	-webkit-transition:background-color 400ms ease;
	transition:background-color 400ms ease;
}

.menu-mobileWrapper li a.menu-mobile:hover {
	color:rgb(255,255,255);
	background-color:rgba(0,38,82,1.0);
}

.menu-mobileWrapper li a.menu-mobile span {
  float:right;
  margin: 12px 25px 12px 12px;
  padding: 0 10px;
  font-size: 0.8em;
  color: rgb(230,10,90);
  font-weight: 600;
  line-height: 26px;
  text-align: center;
  text-indent: 0;
  border: 1px solid rgb(230,10,90);
  border-radius: 3px;
}



/* BUTTON MENU MOBILE */

.menu-mobile-icon {
	position:absolute;
	display:none;
	top:30px;
	right:5%;
	border:none;
	width:40px;
	height:40px;
	margin:0;
	text-indent:-900em;
	background:none;
	overflow:hidden;
	cursor:pointer;
	outline:none;
    z-index:1080;
}

.menu-mobile-icon span {
	position:absolute;
	display:block;
	top:18px;
	left:2px;
	width:36px;
	height:5px;
	background-color:rgb(255,255,255);
	font-size:0px;
	-webkit-touch-callout:none;
	-webkit-user-select:none;
	-khtml-user-select:none;
	-moz-user-select:none;
	-ms-user-select:none;
	user-select:none;
	transition:all 250ms ease-in-out;
}

.menu-mobile-icon span:before,
.menu-mobile-icon span:after {
	position:absolute;
	left:0;
	width:100%;
	height:100%;
	background-color:rgb(255,255,255);
	content:'';
	transition:all 250ms ease-in-out;
}

.menu-mobile-icon span:before {
	transform:translateY(-12px);
}
.menu-mobile-icon span:after {
	transform:translateY(12px);
}

.menu-mobile-icon:hover span,
.menu-mobile-icon:hover span:before,
.menu-mobile-icon:hover span:after {
	background-color:rgb(90,140,200);
}

.menu-open.menu-mobile-icon span {
	background-color:transparent;
}
.menu-open.menu-mobile-icon span:before {
	background-color:rgb(255,255,255);
	transform:translateY(0) rotate(45deg);
}
.menu-open.menu-mobile-icon span:after {
	background-color:rgb(255,255,255);
	transform:translateY(0) rotate(-45deg);
}

.menu-open.menu-mobile-icon:hover span:before,
.menu-open.menu-mobile-icon:hover span:after {
	background-color:rgb(90,140,200);
}



/* MEDIA QUERIES */

@media only screen and (max-width: 1200px) {
    #menu {
        top:56px;
    }
    #menu > ul > li > ul {
        top:84px;
    }
    #menu > ul > li.has-sub:hover {
        padding-bottom:24px;
    }
    #menu > ul > li.menu-extend {
        display:none;
    }
    .menu-top {
        top:15px;
        right:50%;
        border-bottom:1px solid rgb(90,140,200);
        padding-bottom:5px;
        
        -webkit-transform: translateX(50%);
        transform: translateX(50%);
    }
    .menu-top .menu-top-extend {
        display:block;
        float:left;
    }
}

@media screen and (max-width: 1024px) {
    #menu {
        display:none;
    }
    .header-bg {
        height:100px;
    }
    .header-bg.scrollUp {
        -webkit-transform:translateY(-100px);
        -moz-transform:translateY(-100px);
        transform:translateY(-100px);
    }
    #header {
        width:100%;
        height:100px;
    }
    #logo {
        position:relative;
        float:left;
        top:0;
        left:0;
        width:73px;
        height:60px;
        margin:20px 0 0 5%;
        background-image:url(../graphics/logo_dark_mobile.svg);
    }
    .menu-mobile-icon,
    .menu-mobileWrapper {
        display:block;
    }
    .menu-top {
        top:35px;
        right:50%;
        border-bottom:none;
        
        -webkit-transform: translateX(50%);
        transform: translateX(50%);
    }
}

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


@media screen and (max-width: 667px) {
    .menu-top-text {
        display:none;
    }
    .menu-top a i {
        margin-right:0;
    }
    .menu-mobileWrapper {
	    right:-100%;
        width:100%;
    }
    .menu-mobileWrapper.open {
        -webkit-transform:translateX(-100%);
        -moz-transform:translateX(-100%);
        -ms-transform:translateX(-100%); /* Only for graceful degradation in IE9, cannot be transitioned */
        -o-transform:translateX(-100%);
        transform:translateX(-100%);
    }
}
