/*!Combinable CSS group = public!*/

ul.menu li {
	list-style-type:none;
}

ul.menu li a {
	text-decoration:none;
	display:inline-block;
	width:100%;
	box-sizing:border-box;
	color:#000;
	position:relative;
}

ul.main_menu {
	padding:0;
	margin:0;
	display:flex;
}

ul.main_menu li {
	display:flex;
	flex:1 0 auto;
	justify-content:center;
	flex-direction:column;	
	position:relative;
} 

ul.main_menu  li li {
	min-width:10vw;
}

ul.main_menu li > ul {
	position:absolute;	
	display:none;
	background-color:#fff;
	box-shadow:1px 1px 5px 1px #bbb;
	flex-direction:column;	
	z-index:99999;
}

ul.main_menu ul.odd_depth {
	top:100%;
	left:0;
}

ul.main_menu ul.even_depth {
	left:100%;	
	top:0;
}

ul.main_menu ul.even_depth.move_to_left {
	left:auto;
	right:100%;
}

ul.main_menu ul.odd_depth.move_to_left {
	left:auto;
	right:0;
}

ul.main_menu li.open > ul,
body:not(.user_uses_touch) ul.main_menu li.open_hover > ul {
	display:flex;
} 

ul.main_menu li a {
	padding:0.7rem 1rem;
	white-space:nowrap;
}

ul.main_menu > li > a {
	text-transform:uppercase;
	font-weight:bold;	
	text-align: center;
}

ul.main_menu li.open > a,
ul.main_menu li.open_hover > a{
	color:#039ECF;
}

ul.main_menu > li a:after {
	content: '';
	position:absolute;
	height:1rem;
	width:1px;
	background-color:#e7eaed;
	top:calc(50% - 0.5rem);
	right:0;
}

ul.main_menu > li:last-child a:after {
	visibility:hidden;
}

ul.main_menu button.toggle_submenu {
	border:1px solid #ccc;
	border-radius:3px;
	position:absolute;
	top:calc(50% - 1rem);
	right:1rem;
	width:2rem;
	height:2rem;
}

body.user_uses_touch ul.main_menu button.toggle_submenu.mobile {
	display:block;
}

body.user_uses_touch ul.main_menu li.has_children a {
	padding-right:4rem;
}

ul.main_menu button.toggle_submenu:before,
ul.main_menu button.toggle_submenu:after {
	content:'';
	position:absolute;
	background-color:#c0c0c0;
}

ul.main_menu button.toggle_submenu:after {	
	height:2px;
	width:calc(100% - 8px);	
	left:4px;
	top:calc(50% - 1px);
}

ul.main_menu button.toggle_submenu:before {
	width:2px;
	height:calc(100% - 8px);
	top:4px;
	left:calc(50% - 1px);
}

ul.main_menu button.toggle_submenu.open:before {
	visibility:hidden;
}

ul.footer_menu {
	flex:1;
	margin-left:3rem;
	display:flex;
	justify-content:space-around;
}

ul.footer_menu > li {
	flex-basis:0;
	flex-grow:1;
}

ul.footer_menu > li > ul {
	display:flex;
	flex-wrap:wrap;
	margin:0 2px;
}

ul.footer_menu > li > a {
	text-transform:uppercase;
	text-align:center;
	font-weight:bold;
}

ul.footer_menu li a {
	padding:0 1rem 0 0;
	color:#fff;
	font-size:0.85rem;
	text-shadow:1px 1px #000;
}

ul.footer_menu > li ul li a:after {
	content: '';
	position:absolute;
	height:1rem;
	width:1px;
	background-color:#fff;
	top:calc(50% - 0.5rem);
	right:0.5rem;
}

@media screen and (max-width: 1050px) {
	ul.main_menu {
		justify-content:center;
	}
}

@media screen and (max-width: 980px) {
	ul.main_menu {
		font-size:0.9em;
	}
	
	body.user_uses_touch ul.main_menu li.has_children a {
		padding-right:3rem;
		white-space:normal;
	}
	
	ul.main_menu button.toggle_submenu {
		right:0.5rem;
	}
	
	ul.main_menu button.toggle_submenu.open {
		top:0.5rem;
	}
}

@media screen and (max-width: 700px) {
	ul.main_menu li a {
		padding:0.7rem;
	}
}

@media screen and (max-width: 650px) {
	ul.main_menu {
		display:none;
	}
	
	ul.main_menu.open {
		display:flex;
		flex-direction:column;
		width:100%;
		order:3;
		max-height:calc(100vh - 260px);
		overflow:auto;
		justify-content:start;	
	}
	
	body:not(.user_uses_touch) ul.main_menu li.open_hover > ul,
	ul.main_menu li.open_hover > ul {
		display:none;
	}
	
	body:not(.user_uses_touch) ul.main_menu li.open_hover.open > ul,
	ul.main_menu li.open_hover.open > ul {
		display:flex;
	}
	
	body:not(.user_uses_touch) ul.main_menu li.open_hover.open > a,	
	ul.main_menu li.open_hover.open > a {
		color:#039ECF;
	}
	
	ul.main_menu li.open a {
		text-align:center;
	}
	
	ul.main_menu li a {
		padding-right:4rem;
		white-space:normal;
	}
	
	ul.main_menu > li a:after {
		display:none;	
	}
	
	ul.main_menu li.open > ul {
		width:100%;
		position:relative;
		top:auto;
		left:auto;
	}
	
	.menu_open {
		position:relative;
		width:2.5rem;
		height:2.5rem;
		background-color:#fff;
		border:1px solid #ccc;
		order:2;
		margin:0.7rem 0.5rem 0 0;
		padding:0;
		border-radius:3px;
		cursor:pointer;
	}
	
	.menu_open:focus {
		outline:none;
	}
	
	.menu_open::-moz-focus-inner {
		border: 0; 
	}
	
	.menu_open:hover {
		border-color:#b5b5b5;
	}
	
	.menu_open span {
		display: block;
		position: absolute;
		height:4px;
		width:calc(100% - 0.4rem);
		background-color:#c0c0c0;
		border-radius:2px;
		opacity: 1;
		left: 0.2rem;
		
		-webkit-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-o-transform: rotate(0deg);
		transform: rotate(0deg);
		
		-webkit-transition: .25s ease-in-out;
		-moz-transition: .25s ease-in-out;
		-o-transition: .25s ease-in-out;
		transition: .25s ease-in-out;
		
		-webkit-transform-origin: left center;
		-moz-transform-origin: left center;
		-o-transform-origin: left center;
		transform-origin: left center;
		
		flex:0;
	}
	
	.menu_open:hover span {
		background-color:#b5b5b5;
	}
	
	.menu_open span:nth-child(1) {
		top: 0.2rem;
	}
	
	.menu_open span:nth-child(2) {
		top: calc(50% - 2px);
	}
	
	.menu_open span:nth-child(3) {
		bottom:0.2rem;
	}
	
	.menu_open.open span:nth-child(1),
	.menu_open.open span:nth-child(3) {
		width:2.1rem;
		left:6px;
	}
	
	.menu_open.open span:nth-child(1) {
		transform: rotate(45deg);		
		top:4px;		
	}
	
	.menu_open.open span:nth-child(2) {
		width: 0;
		opacity: 0;
	}
	
	.menu_open.open span:nth-child(3) {
		transform: rotate(-45deg);
		bottom:4px;
	}
}