/*================================================================
                 CLICK MENU STYLES
================================================================*/

/*
    THESE STYLES will probably not be needed and are adjusted in your main styles
    - * for example is most efficient when not a child of a class
       -- hopefully you already are using the box sizing globally
    - you may not need text-decoration etc. depending on your global anchors
*/
.cm-menu a, .cm-menu a:visited {color:#000; text-decoration:none; }
.cm-menu *, .cm-menu *:after, .cm-menu *:before {
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
}

.cm-menu:focus { outline:3px solid blue;  }
.cm-menu, .cm-menu ul { margin:0; padding:0; list-style:none; background:#efeded; }

.toggle-menu + .cm-menu, .cm-menu ul {
    max-height:0;
    opacity:0;
    overflow:hidden;
    -wekbit-transition: max-height 0.4s ease-in-out, opacity 0.4s ease-in-out;
            transition: max-height 0.4s ease-in-out, opacity 0.4s ease-in-out;
}
.cm-menu { position:relative; }
.cm-menu li a { display:block; padding:10px; position:relative; }

.cm-menu li { border-top:1px solid #ccc; }
.cm-menu li:first-child { border-top:0; }
.cm-menu li { position:relative; }

.cm-menu .has-sub:after,
.cm-menu .expander-wrap .has-sub > span:after {
    content:"+";
    display:inline-block;
    position:absolute; top:40%; right:10px;
    margin:2px 0 0 5px;
	font-weight:bold;
	font-size:40px;
    vertical-align:middle;
    /* Extra is for anti-aliasing issues in firefox and others */
     
    -wekbit-transition: all 0.4s ease-in-out;
            transition: all 0.4s ease-in-out;
    -webkit-transform: scale(0.98) translateY(-50%);
        -ms-transform: scale(0.98) translateY(-50%);
            transform: scale(0.98) translateY(-50%);
}

.cm-menu .opened > .has-sub:after,
.cm-menu .opened > .expander-wrap .has-sub > span:after{
    border-top-color:#1b1b1b;
    -webkit-transform: scale(0.98) translateY(-50%) rotate(-45deg);
        -ms-transform: scale(0.98) translateY(-50%) rotate(-45deg);
            transform: scale(0.98) translateY(-50%) rotate(-45deg);
}

.cm-menu > .opened > a,
.cm-menu > li > a:hover,
.cm-menu > li > a:focus {color:#2d2d2d !important;}


.cm-menu > li > li > a:hover,
.cm-menu > li > li > a:focus {text-decoration:underline; }

.cm-menu .expander-wrap .has-sub:hover > span,
.cm-menu .expander-wrap .has-sub:focus > span { color:#1b1b1b; background:#d4d4d4; }

.cm-menu ul .opened > a,
.cm-menu ul a:hover, .cm-menu ul li a:focus { background:#68b468; }

.cm-menu ul .opened > .has-sub:after,
.cm-menu ul .opened > .expander-wrap .has-sub > span:after{
    border-top-color:#fff;
}

.cm-js-active .cm-menu { max-height:80em; opacity:1; }
.cm-menu .opened > ul { max-height:80em; opacity:1; }

/* ================= SEPARATE EXPANDERS OPTION IS ENABLED ================= */

.cm-menu .expander-wrap { display:table; width:100%; }
.cm-menu .expander-wrap a { display:table-cell; }
.cm-menu .expander-wrap .has-sub { position:relative; width:30px; }
.cm-menu .expander-wrap .has-sub:after { display:none; }
.cm-menu .expander-wrap .has-sub > span {
    display:block;
    position:absolute; top:0; right:0;
    width:100%; height:100%;
    background:#aaa;
}
.cm-menu .expander-wrap .has-sub > span:after {
    content:" ";
    display:inline-block;
    position:absolute; top:50%; right:50%;
    margin:2px 0 0 5px;
    vertical-align:middle;
    border:5px solid transparent;
    /* Extra is for anti-aliasing issues in firefox and others */
    border:5px solid rgba(0,0,0,0);
    border-top-color:#fff;
    -wekbit-transition: all 0.4s ease-in-out;
            transition: all 0.4s ease-in-out;
    -webkit-transform: scale(0.98) translate(50%, -50%);
        -ms-transform: scale(0.98) translate(50%, -50%);
            transform: scale(0.98) translate(50%, -50%);
}
.cm-menu .opened > .expander-wrap .has-sub > span:after {
    border-top-color:#1b1b1b;
    -webkit-transform: scale(0.98) translate(50%, -75%) rotate(-180deg);
        -ms-transform: scale(0.98) translate(50%, -75%) rotate(-180deg);
            transform: scale(0.98) translate(50%, -75%) rotate(-180deg);
}

/* ================= HOVER FALLBACK IF JAVASCRIPT IS DISABLED ================= */

.no-js .toggle-menu + .cm-menu { opacity:1; max-height:80em; }
.no-js .cm-menu > li:hover > a { background:#1b1b1b; }
.no-js .cm-menu ul ul li:hover > a { background:#444; }

.no-js .cm-menu li:hover > ul { display:block; max-height:80em; opacity:1; width:100%; }
.no-js .cm-menu ul { display:none; overflow:visible; }


/* ================= MENU OPEN FUNCTIONALITY ADDED ON SETUP ================= */

@media (min-width:80em){
    .toggle-menu + .cm-menu { max-height:80em; opacity:1; overflow:visible; }
    .cm-menu ul { top:100%; overflow:hidden; }
    .cm-menu .opened > ul { max-height:80em; opacity:1; }

    .cm-menu .animated > ul { overflow:visible; z-index:10; }
    .cm-menu .animating > ul { z-index:-1; }
}


/*================================================================
                 CLICK MENU MENU TYPES
================================================================*/

/*  NAV BAR STYLE TYPE
    ================================================================*/

@media (min-width:80em){
    .nav-bar li { border-top:0; }

    .nav-bar > ul { display:table; width:100%; }
    .nav-bar > ul > li { display:table-cell; vertical-align:middle; }
    .nav-bar > ul > li > a { display:table; width:100%; padding:0; }
    .nav-bar > ul > li > a > span {position:relative; padding:0 10px; height:40px; vertical-align:middle; text-align:center; }
    .nav-bar > ul > li > ul { position:absolute; }

    .nav-bar .has-sub span:after { position:static; margin-top:10px; }
    .nav-bar ul ul .has-sub:after { right:5px; }

    .nav-bar ul li li { margin:1px 0; }
    .nav-bar ul li li li { margin-left:0; margin-right:0; }
    .nav-bar ul ul a { padding:3px 15px; font-weight:600;}

    .nav-bar ul ul a:hover, .nav-bar ul ul a:focus,
    .nav-bar ul ul .opened > a { text-decoration:none;}

    /* ================= HOVER FALLBACK IF JAVASCRIPT IS DISABLED ================= */

    .no-js .nav-bar ul ul li:hover > a { color:#000; background:#ddd; }

	.banner-wrap {margin-top:-70px;}
}


/*  ACCORDION NAVIGATION
    ================================================================*/

/* ------------- CURRENTLY KEEPS SMALL SCREEN STYLES -------------- */
 

/*  MEGA MENU NAVIGATION ADJUSTMENTS
    ================================================================*/

	.cm-menu > li  > a {
		font-size:20px;
		font-weight:bold;
		text-transform:uppercase;
	}

	.cm-menu  li li a:before {
		content: "\25ba";
		font-family: 'icomoon';
		color:#000;
		font-size:10px;
		margin-right:13px;
	}	
	
@media (min-width:80em){
	.cm-menu, .cm-menu ul {background:transparent; }
 
	.cm-menu > li  > a,
	.cm-menu > li  > a:visited	{
		color:#2d2d2d;
	}
		
    .cm-menu [data-type="mega"] {
		position:static; 
	}
	
    [data-type="mega"] > ul {
        position:absolute;
        top:100%; left:0;
        width:100%; max-height:0;
        background:#1b1b1b;
        overflow:hidden;
        -wekbit-transition: all 0.5s ease-in-out;
                transition: all 0.5s ease-in-out;
    }

    [data-type="mega"] > ul ul { position:static; max-height:80em; width:100%; overflow:hidden; background:transparent; opacity:1; }
    [data-type="mega"] > ul .opened ul { margin-left:0; }
    [data-type="mega"] > ul > li { float:left; width:25%; }
    [data-type="mega"] > ul > li:nth-child(4n+1) { clear:left; }

    [data-type="mega"] > ul > .link-landing { margin:0; width:100%; }
    [data-type="mega"] > ul > .link-landing ~ li:nth-child(4n+1) { clear:none; }
    [data-type="mega"] > ul > .link-landing ~ li:nth-child(4n+2) { clear:left; }

    /* ================= OPENED FUNCTIONALITY ADDED ON SETUP ================= */

    [data-type="mega"] a + .has-sub { width:0; min-height:0; height:100%; }
    [data-type="mega"] a + .has-sub > span { min-height:0; height:100%; }
    [data-type="mega"] ul .has-sub:after { display:none; }
    [data-type="mega"].opened > ul { padding:20px; }

    /* ================= SEPARATE EXPANDERS OPTION IS ENABLED ================= */

    [data-type="mega"] ul a + .has-sub { display:none; }

    /* ================= HOVER FALLBACK IF JAVASCRIPT IS DISABLED ================= */

    .no-js .cm-menu [data-type="mega"] ul ul { display:block; }

}


/*================================================================
                 NAVIGATION TOGGLE STYLES
================================================================*/

.toggle-menu { display:block; position:absolute; border:0; width:55px; height:47px; background:#fff; float:right; top:70px; right:20px;}
.toggle-menu:before, .toggle-menu:after, .toggle-menu > span:before {
    content:" ";
    position:absolute;
    left:18%;
    border-radius:3px;
    width:64%; height:5px;
    background:#626262;
}

.toggle-menu:before { top:13px; }
.toggle-menu:after { top:21px; }
.toggle-menu > span:before { top:29px;}

.toggle-menu:hover, .toggle-menu:focus, .js-menu-active .toggle-menu { background:#111; }

@media (min-width:48em){
    .toggle-menu {top:76px;}
}

@media (min-width:80em){
    .toggle-menu {display:none; }
}


/*================================================================
                 EXTRA OVERWRITE STYLES
================================================================*/

.main-nav { position:relative; z-index:1000; }

[data-type="sliding"] .sub-menu .item-banner { width:100%; }
[data-type="sliding"] .sub-menu .item-banner a { text-align:center; background:none; }

.custom-sub {
    max-height:0; opacity:0;
    overflow:hidden;
    -wekbit-transition: all 0.5s ease-in-out;
            transition: all 0.5s ease-in-out;
}
[data-type="mega"] .custom-sub ul { position:static; opacity:1; max-height:80em; }
[data-type="mega"] .custom-sub p { margin:10px; color:#fff; }

[data-type="mega"] .custom-sub .banner-wrap { width:100%; }
[data-type="mega"] .custom-sub .banner-wrap a { text-align:center; background:none; }

.cm-menu .opened > .custom-sub { max-height:80em; opacity:1;}
.cm-menu .animated > .custom-sub { overflow:visible; z-index:10; }
.cm-menu .animating > .custom-sub { z-index:-1; }

@media (min-width:80em) {
    [data-type="mega"] .custom-sub {
        position:absolute;
        top:100%; left:0;
        width:100%;
        background:#1b1b1b;
		padding:20px;
    }
}

@media (min-width:80em) {
    .table-row { display:table; width:100%; }
    .table-col { display:table-cell; vertical-align:top; }
}

.section-nav .opened > ul { border-bottom:1px solid #d4d4d4; max-height:80em; opacity:1; }
.section-nav .opened > a,
.section-nav .opened > .expander-wrap a { border-bottom:1px solid #aaa; color:#1b1b1b; background:#d4d4d4; }
.section-nav .opened .opened > .expander-wrap > a { background:#c4c4c4; }

html { overflow:hidden; overflow-y:auto; }
body { width:100%; }

.main-nav,
.site-header .grid_9,
.cm-menu {
    position: static;
}

@media (max-width:79.99em) {
	.cm-menu {
		left: 0;
		position: absolute !important;
		width:100%;
		z-index:1000;
	}
}

@media (max-width:47.9em) {
	.cm-menu {
		top:148px;
	}
}

@media (min-width:48em) and (max-width:79.99em) {
	.cm-menu {
		top:155px;
	}
} 

[data-type="mega"] .custom-sub {
    max-height:0; opacity:0;
    overflow:hidden;
    -wekbit-transition: all 0.5s ease-in-out;
            transition: all 0.5s ease-in-out;
}
[data-type="mega"] .custom-sub ul { position:static; opacity:1; max-height:80em; }
[data-type="mega"] .custom-sub p { margin:10px; color:#fff; }

[data-type="mega"] .custom-sub .banner-wrap { width:100%; }
[data-type="mega"] .custom-sub .banner-wrap a { text-align:center; background:none; }

.cm-menu .opened > .custom-sub { max-height:80em; opacity:1;}
.cm-menu .animated > .custom-sub { overflow:visible; z-index:10; }
.cm-menu .animating > .custom-sub { z-index:-1; }

@media (min-width:80em) {
    [data-type="mega"] .custom-sub {
        position:absolute;
        top:154px;
		left:0;
        width:100%;
        background:#efeded;
		padding:20px; 
		-moz-box-shadow:    0px 5px 3px 3px rgba(0,0,0,0.2);
		-webkit-box-shadow: 0px 5px 3px 3px rgba(0,0,0,0.2);
		box-shadow:         0px 5px 3px 3px rgba(0,0,0,0.2);
    }
}

@media (min-width:80em) {
	
	.main-nav {
		margin-top:20px;
	}
	
	.table-col > ul > li {
		float: left;
		width: 31%;
	}
	
	.link-landing { 
		margin: 0 auto;
		max-width: 88.125em;
		position: relative;
		transition: all 0.1s linear 0s;
	}
	
	.link-landing a { 
		font-size:24px;
		font-weight:bold;
	}

	.cm-menu .has-sub span:after  {
		content:" ";
		display:inline-block;
		position:absolute; top:50%; right:-5px;
		margin:2px 0 0 5px;
		vertical-align:middle;
		border:5px solid transparent;
		/* Extra is for anti-aliasing issues in firefox and others */
		border:5px solid rgba(0,0,0,0);
		border-top-color:#2d2d2d;
		-wekbit-transition: all 0.4s ease-in-out;
				transition: all 0.4s ease-in-out;
		-webkit-transform: scale(0.98) translateY(-50%);
			-ms-transform: scale(0.98) translateY(-50%);
				transform: scale(0.98) translateY(-50%);
	}
	
	.cm-menu .has-sub:after  {display:none;}

	.cm-menu .opened > .has-sub:after,
	.cm-menu .opened > .expander-wrap .has-sub > span:after{
		border-top-color:#1b1b1b;
		-webkit-transform: scale(0.98) translateY(-50%) rotate(0deg);
			-ms-transform: scale(0.98) translateY(-50%) rotate(0deg);
				transform: scale(0.98) translateY(-50%) rotate(0deg);
	}
	
	.cm-menu  li .table-col:nth-child(2) {
		width:310px;
	}
	
}

.nav-bar ul ul a {font-weight:600;}
.link-landing a {font-weight: bold;}


.cm-js-menu-active body {overflow:hidden; height:100%;}
.cm-js-menu-active .main-nav:before {
	content:"";
	width:100%;
	height:9999rem;
	display:block;
	position:absolute;
	top: 148px;
	left:0;
	background:#efeded;
}

@media (min-width:48em) {
	.cm-js-menu-active .main-nav:before {
		top: 155px;
	}
}

@media (min-width:80em) {
	.cm-js-menu-active .main-nav:before {
		display:none;
	}
	
	.cm-menu > .opened > a:after,
	.cm-menu > li > a:hover:after,
	.cm-menu > li > a:focus:after {
		content:"";
		width:100%;
		height:5px;
		display:block;
		position:absolute;
		top:40px;
		left:0;
		background:#68b468;	
	}

	
}
