#nav_wrapper { z-index: 99; position: relative;}
#masthead { height: inherit; width: 100vw; max-width: 100%; }


/* pulls the masthead content above the mobile expanded menu */
#masthead .scattered.layout_object  {z-index: 999; }

/*
#nav_wrapper .colapsed { height: inherit; }
#nav_wrapper .expanded {  height: auto; }

#nav_wrapper:not(.expanded) .area_wrap { position:relative; height: inherit;}
#nav_wrapper:not(.expanded) .area_content_wrap { height: inherit;}

#nav_wrapper.expanded .area_wrap { height: auto;}
#nav_wrapper.expanded .area_content_wrap { height: auto;}

*/

.m_area.fixed {
	width: 100%; display: block; position: fixed; z-index: 99;
} 


.layout_object.part-nav_main { z-index: 999; }

.mobile_toggle { z-index: 999;  }


.nav {
	z-index: 99;
	padding: 0 0 0 0;
}
/* all nav */
.nav_element {
	/*position: relative;*/
	width: 100%;
	z-index: 99;
	line-height: normal;
	display: block !important;
}

/*inherit all*/
ul.menu_element { margin: 0 0 0 0; padding: 0 0 0 0; 
	/*font-size: 0; */
	/*needed to patch the space for inline items*/
}
.nav_element a[data-link="0"].menu-link { font-size: 1rem; }  /*to prevent 0 from making text invisible on clean installs*/




@media print, screen and (max-width: 12em) {
	.part-nav_main.small-align-left .menu_element {
		text-align: left;
		margin: 0 auto;
		float: none; 
	}

	.part-nav_main.small-align-center .menu_element {
		text-align: center;
		margin: 0 auto;
		float: none; 
	} /* font-size:0 patch for inline-block spacing problem */


	.part-nav_main.small-align-right .menu_element{
		text-align: right;
		margin: 0 auto;
		float: right; width: 100%;
	}
}

@media print, screen and (min-width: 40em) {
	.part-nav_main.t_left-medium .menu_element {
		text-align: left;
		margin: 0 auto;
		float: none;
	}

	.part-nav_main.t_center-medium .menu_element {
		text-align: center;
		margin: 0 auto;
		float: none; border: 1px solid red !important; 
		font-size: 0
	} /* font-size:0 patch for inline-block spacing problem */


	.part-nav_main.t_right-medium .menu_element{
		text-align: right;
		margin: 0 auto;
		float: right; width: 100%;
	}
}



@media print, screen and (min-width: 64em) {
.part-nav_main.t_left-large .menu_element {
		text-align: left;
		margin: 0 auto;
		float: none;
	}

	.part-nav_main.t_center-large .menu_element {
		text-align: center;
		margin: 0 auto;
		float: none; 
		font-size: 0
	} /* font-size:0 patch for inline-block spacing problem */


	.part-nav_main.t_right-large .menu_element{
		text-align: right;
		margin: 0 auto;
		float: right; width: 100%;
	}
}








.nav.fixed, .nav.fixed_always, .sticky_header.fixed, .sticky_header.fixed_always {
	z-index: 900;
	position: fixed;
}
.sticky_header.fixed.v_normal, .sticky_header.fixed_always.v_normal {
	top: 0;
	width: 100%;
}
.sticky_header.fixed.full, .sticky_header.fixed_always.full, .sticky_header.fixed.inner, .sticky_header.fixed_always.inner {
	width: 100%;
}
.nav_element li.menu-item {
	list-style: none;
	margin: 0 0 0 0;
	padding: 0;
	/*position: relative;*/
	line-height: normal;
	vertical-align: middle;
}
.nav_element li.menu-item a.menu-link {
	display: block;
	box-sizing: border-box;
	-webkit-transition: all .3s ease-out;
	-moz-transition: all .3s ease-out;
	transition: all .3s ease-out;
}
/* [data-level="0"] */
.desktop .nav_element li.menu-item[data-level="0"] {
	display: inline-block; 
}
.nav_element > ul.menu > li.menu-item > a:not(.btn) {
	padding: 0;
}
/*inline block items need a font size of 0 to remove the blank space problem*/
.nav_element > ul.menu {
	/*font-size: 0;*/
}
/* [data-level="1"]*/
.nav_element ul.menu ul.sub-menu {
	top: auto;
	width: 220px;
	position: absolute;
	text-align: left;
	display: none;
	margin: 0 0 0 0;
	padding: 0 0 0 0;
	box-sizing: content-box; /*//width of any border or padding will be added to the final rendered width*/
}
.desktop .nav_element ul.menu ul.sub-menu { z-index: 99; }
.mobile .nav_element ul.menu ul.sub-menu { z-index: 2; }

.nav_element li.menu-item li.menu-item {
	display: block;  
}
/* [data-level="2"] */
.nav_element ul.menu ul.sub-menu ul.sub-menu {
	top: 0;
	left: 220px;
}
.nav_element > ul.menu > li.menu-item:hover > ul.sub-menu > li.menu-item:hover > ul.sub-menu {
	opacity: 1;
	visibility: visible;
	top: 0;
}
/* .from_left */
.nav_element > ul.menu > li.menu-item.from_left:hover > ul.sub-menu {
	right: 0;
}
.nav_element li.from_left ul.sub-menu ul.sub-menu {
	left: auto !important;
	right: 220px;
}
.nav_element.active {
}



.nav_element li.from_left li.has-sub > a:after {
	float: left;
	content: '\f0d7';
	font-family: 'Font Awesome 5 Pro';
	margin-right: 10px; 
    font-weight: bold;
}
/* core  */
.nav_element li.has-sub > a:after {
	content: '\f0d7';
	font-family: 'Font Awesome 5 Pro';
	margin-left: 10px;
	line-height: inherit;
	float: right;  
    font-weight: bold;
}





.nav_element li li.has-sub > a:after {
	content: '\f0d7';
	font-family: 'Font Awesome 5 Pro';
	margin-left: 10px;
	line-height: inherit;
	float: right;  
    font-weight: bold;
}
.nav_element.hide-arrows li.has-sub > a:after, .nav_element.hide-arrows li li.has-sub > a:after, .nav_element.hide-arrows li.from_left li.has-sub > a:after {
	display: none;
}
.nav_element .menu-toggle, 
.nav_element .close-menu {
	display: none;
	text-transform: uppercase;
	text-decoration: none;
	
}

/*.desktop .nav_element .toggle { z-index: 99; }
.mobile .nav_element .toggle { z-index: 2; }
*/

.nav_element .toggle {
    display: none;
	top: 0;
	padding: 0;
	/*width: 48px;
	height: 48px;*/
	text-align: center;
	border: 0;
	text-decoration: none !important;
}
.mobile .mobile_menu_align_left .nav_element .toggle {	right: 0; position: absolute;}
.mobile .mobile_menu_align_right .nav_element .toggle {	left: 0; position: absolute;}
.mobile .mobile_menu_align_center .nav_element .toggle { margin: 0 auto;}


.nav_element .toggle i {
	/*transform-origin: 50% 50% 0;*/
	-webkit-transition: transform .3s ease-out;
	-moz-transition: transform .3s ease-out;
	transition: transform .3s ease-out; display: block; 
	width: 100%; height: 100%;/*this is needed to prevent the element from showing when the menu is closed... chrome bug?*/
	line-height: 20px;
}
.nav_element .toggle .fa:before { /*position: absolute;*/}
.nav_element li.open .toggle.expanded i {
	-webkit-transform: rotate(135deg);
	-moz-transform: rotate(135deg);
	-ms-transform: rotate(135deg);
	-o-transform: rotate(135deg);
	transform: rotate(135deg); 
	/*filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);*/
	text-decoration: none !important;
}


.nav_element > ul > li > a.toggle {
	padding: 0;
}


.nav_element .sub-menu.expanded {
	clear: both; display: block !important;
}





@media only screen and (min-width: 64.063em) {
/* sticky nav */ 
.nav_element.fixed {
	position: fixed;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 9999;
}
.nav_element.active {
	display: block
}
}

@media only screen and (max-width: 25em) {
/* small patches, 328px - 25em */

}

@media only screen and (max-width: 64em) {
/* BASELINE - covers mobile phones and small devices
	1024 = 64em - covers everything up to the desktop view
	*/

}

@media only screen and (min-width: 46em) and (max-width: 64em) {
/*Tablets / Laptops */
	
}

@media only screen and (min-width: 64em) {
/* GREY AREA for the iPad Pro and Surface Pro, touch enabled */	
	.nav_element.open {
		clear: both;
	}

}



.desktop .nav.fixed.v_top_left, .desktop .nav.fixed.v_top_right, .desktop .nav.fixed.v_bottom_left, .desktop .nav.fixed.v_bottom_right {
	width: auto
}
.desktop .nav.full.fixed {
	width: 100%
}
.desktop .nav.fixed.v_normal {
	top: 0;
	left: 0;
}
.desktop .nav.fixed.v_normal.full.unwrap.fixed .area_wrap {
	width: 100% !important;
	margin: 0;
	max-width: 100%;
}
.desktop .nav.fixed.v_normal.wrap.unwrap.fixed, .desktop .nav.fixed.v_normal.inner.unwrap.fixed {
	width: 100% !important;
	margin: 0 auto;
	max-width: 100%;
}
.nav_container.mast_absolute {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 110;
} /*abs pos for the mashead */
/* mobile nav JS activation */


.mobile_toggle:not(.always-visible) { 
		display: none;
}
.mobile_toggle { /*#main_menu_toggle or #secondary_menu_toggle*/
	z-index: 101; /* 99 is the level of the nav_wrapper*/
	/*do not animate this element because of the body scrollbar freeze will cause it to jump */
	-webkit-transition: none;
	-moz-transition: none;
	-o-transition: none;
	transition: none; 
	overflow:visible;
}

button.mobile_toggle:hover,
button.mobile_toggle:active,
button.mobile_toggle:focus {
	outline: none;
}


.mobile_toggle.btn_style .arr_interior{ width: 100%; display: block; position: static; transform: none;}



.mobile_toggle.btn_style.anim_tog .ianim,
.mobile_toggle.btn_style.anim_tog .toggle_text { float: left; }

.mobile_toggle.btn_style.ico_tog .fa,
.mobile_toggle.btn_style.ico_tog .toggle_text { display: inline-block;}


  
.mobile_toggle.ico_tog:not(.btn_style) i{ width: 100%; height: 100%;display: block;}


.mobile_toggle img { max-width: 100%;
}
.mobile_toggle.relative {
	position: absolute;
	margin: 0 0 0 0;
}
.mobile_toggle.absolute {
	position: fixed;
}
.sticky_header .mobile_toggle.v_normal { /*right:0; position:absolute;*/
}
.mobile_toggle.v_normal {
	right: 0;
	position: absolute;
    
}
.mobile_toggle:hover {
	cursor: pointer
}
.mobile.nav_container.sticky_menu .nav, 
.mobile.nav_container.toggle_sticky .nav {
	position: fixed;
	z-index: 190;
	padding: 0 0 0 0;
	margin: 0 0 0 0;
	top: 0;
}
/* special cases for left */
.mobile.normal.no_breakpoint .nav,
.mobile.nav_container.sticky_menu .nav.v_normal,
.mobile.nav_container.sticky_menu .nav.fixed_on_scroll:not(.fixed) {
	left: 0;
}

/* when the toggle is static in the header, on desktop, but needs to be absolute when open*/
.mobile_toggle.static.normal.always-visible.is_open {
	position: absolute; z-index: 999;
}


.mobile.nav_container.open .nav {
	display: block;
	width: 100%;
}
.mobile.nav_container.include_bg .nav {
	position: static !important;
	padding: 0 0 0 0 !important
}
.mobile.nav_container.sticky_header.fixed .nav, 
.mobile.nav_container.sticky_header.fixed_always .nav, 
.mobile.nav_container.sticky_header.fixed_on_scroll .nav {
	position: absolute;
	left: 0;
} 
/*only allow menu BG*/
.mobile.nav_container.sticky_header.include_bg .nav {
	position: static !important;
} 
/*includes header BG in expansion*/
/*m_area full fixed_always include_bg   nav_container  fixed */
.mobile.nav_container.sticky_header .logo .area_content_wrap, 
.mobile.nav_container.sticky_menu .logo .area_content_wrap {
	position: relative;
}
.mobile .nav_element {
	width: 100%;
	z-index: 190;
}
.mobile .nav.fixed {
	z-index: 190;
}
.mobile .nav.colapsed {
	height:0;
	width: 100%;
}
.mobile .nav.colapsed .area_wrap {
	overflow-y: hidden;
	overflow-x: hidden;
}
.mobile .nav .area_wrap {
	overflow-y: scroll;
	overflow-x: hidden;
}
.mobile .nav.full .area_wrap {
	width: 100% !important;
	margin: 0;
	max-width: 100%;
}
.mobile .nav .nav_wrapper {
	max-width: 100%;
    
}

/* MAX SCROLL ADJUSTMENT*/
.mobile.nav_container.sticky_header.active.open.expanded{
	   width: 100vw;
}
.mobile .nav .nav_wrapper { /*.nav.expanded will cause a jump... */
    max-width: 100vw;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    max-height: 100vh;
    overflow-x: hidden;
    overflow-y: auto;
    z-index: 9;
}
.mobile .nav.colapsed .nav_wrapper {
    overflow-x: hidden;
    overflow-y: hidden;
}

.mobile.nav_container:not(.open) { pointer-events: none;
}


.mobile.nav_container.open { pointer-events:visible;

}



    
  



/*
.nav.colapsed
.nav.expanded

are depricated... 
to be replaced with

.expanded .nav_container 
.expanded .nav_container .nav
.colapsed .nav_container 
.colapsed .nav_container .nav

consider
.nav_container.active.open.expanded

.nav_container
*/

.nav_container.mobile { overflow: hidden; }

.mobile.nav,
.mobile.nav.colapsed,
.mobile.nav_container.sticky_menu .nav,
.mobile.nav_container.sticky_menu .nav.colapsed {
	display: block; 
	height: 0;
	overflow:hidden;
} /*min-height: 0;*/

/*-------------------- works on normal header --------------------*/
/*
.mobile.nav_container .nav - 0
.mobile.nav_container .nav.expanded - 1
*/
		.mobile.nav_container .nav.expanded,
		.mobile.normal.no_breakpoint .nav.expanded,
		.mobile.nav_container.sticky_menu .nav.expanded,
		.mobile.sticky_header.expanded .nav
		{
			height: 100vh !important;
			opacity: 1 !important;
			overflow:hidden !important;
		} /*min-height: 100vh;  */

		.mobile.nav_container .nav .area_wrap,
		.mobile.nav_container .nav .area_content_wrap{ 
			height: inherit; 
			opacity: inherit; 
		}



/*switch the logo to act like the masthead  for normal menu with variation in masthead/nav wrapping*/
.mobile.nav_container.normal .logo .area_content_wrap {
	position: relative;
}
/*
 special cases for bottom menu positioning
 
 .mobile.nav_container.nav_container.v_bottom_middle { height:
 auto;}
.mobile.nav_container.nav_container.v_bottom_middle.fixed.open { height:100vh;}*/

.mobile.nav_container.v_bottom_middle.sticky_header.fixed .nav, .mobile.nav_container.v_bottom_middle.sticky_header.fixed_always .nav, .mobile.nav_container.v_bottom_middle.sticky_header.fixed_on_scroll .nav, .mobile.nav_container.v_bottom_left.sticky_header.fixed .nav, .mobile.nav_container.v_bottom_left.sticky_header.fixed_always .nav, .mobile.nav_container.v_bottom_left.sticky_header.fixed_on_scroll .nav, .mobile.nav_container.v_bottom_right.sticky_header.fixed .nav, .mobile.nav_container.v_bottom_right.sticky_header.fixed_always .nav, .mobile.nav_container.v_bottom_right.sticky_header.fixed_on_scroll .nav {
	position: static;
} /*only allow menu BG*/
/*turn off BG, it will be set with javascript*/
.mobile.nav_container.v_bottom_middle.sticky_header.no_bg .area_wrap.in_masthead, 
.mobile.nav_container.v_bottom_left.sticky_header.no_bg .area_wrap.in_masthead, 
.mobile.nav_container.v_bottom_right.sticky_header.no_bg .area_wrap.in_masthead {
	clear: both;
}
.mobile .nav_element .menu-toggle {
	color: #777;
	padding: 15px;
}
.mobile .nav_element {
	position: static;
}
.mobile .nav_element:not(.active) {
	padding: 0 0 0 0 !important;
	margin: 0 0 0 0 !important
}
.mobile .nav_element.active {
	padding-bottom: 0;
}
.mobile .nav_element.active > ul {
	display: block;
}
.mobile .nav_element ul.menu {
	text-align: left;
}

.mobile .nav_element li.menu-item > a {
/*	padding: 15px;*/
}
.mobile .nav_element ul.menu {
}
.mobile .nav_element ul.menu ul.sub-menu {
	position: relative;
	opacity: 1;
	visibility: visible;
	width: 100%;
	display: none;
	-moz-transition: none;
	-webkit-transition: none;
	-o-transition: color 0 ease-in;
	transition: none;
}
.mobile .nav_element ul.menu ul.sub-menu ul.sub-menu {
	left: auto;
	top: auto;
}
.mobile .nav_element li.from_left ul.sub-menu ul.sub-menu {
	right: auto;
}
.mobile .nav_element li.menu-item a {
	/*border-bottom: 1px solid rgba(255, 255, 255, .15);*/
}
.mobile .nav:not(.menu_align_center) .nav_element li.has-sub a {
	/*padding-right: 50px; not needed anymore*/
}


.mobile .nav_element .menu-toggle, .mobile .nav_element .toggle, .mobile .nav_element .close-menu {
	display: block;
}
.mobile .nav_element li.has-sub > a:after, .mobile .nav_element li li.has-sub > a:after, .mobile .nav_element li.from_left li.has-sub > a:after {
	display: none;
}





.mobile .nav_element li.menu-item[data-level="0"] {
	display: block;
	/*position: relative;*/
}
.mobile .nav_element li a.toggle {
	border: 0; float: right; clear: right; z-index: 999
	/*z-index: 9; position: absolute; right: 0;*/
}




