/*================================================================
                 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:#ffffff; 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; }

.toggle-menu + .cm-menu, .cm-menu ul {
    max-height:0;
    opacity:0;
    overflow:hidden;
    -wekbit-transition: max-height 200ms ease, opacity 200ms ease, left 1ms ease 2000ms;
            transition: max-height 200ms ease, opacity 200ms ease, left 1ms ease 2000ms;
}

.cm-menu ul li.animating ul,
.cm-menu ul li.opened ul {
    -wekbit-transition: max-height 200ms ease, opacity 200ms ease;
            transition: max-height 200ms ease, opacity 200ms ease;
}

.cm-menu { position:relative; left:-10px; right:-10px; top:100%; padding:20px 0; bottom:auto; min-width:90%;}
.cm-menu li a { display:block; position:relative; line-height:20px; color:#888888; }
.cm-menu li a:visited {color:#888888;}

.cm-menu .opened > .has-sub:after,
.cm-menu .opened > .expander-wrap .has-sub > span:after {
    height:0px; top:14px;
}

.cm-menu > .opened > a,
.cm-menu > li > a:hover,
.cm-menu > li > a:focus,
.cm-menu > li > div > a:hover,
.cm-menu > li > div > a:focus {}

.cm-menu .expander-wrap .has-sub:hover > span,
.cm-menu .expander-wrap .has-sub:focus > span {}

.cm-menu ul li a {
    display:inline-block;
    font-size:14px;
}

.cm-menu ul .opened > a,
.cm-menu ul li a:hover, .cm-menu ul li a:focus {}

.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: 180em; opacity:1; }
.cm-menu .opened > ul { max-height: 180em; 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 200ms ease;
            transition: all 200ms ease;
    -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:#333;
    -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:180em; }
.no-js .cm-menu > li:hover > a { background:#333; }
.no-js .cm-menu ul ul li:hover > a { background:#444; }

.no-js .cm-menu li:hover > ul { display:block; max-height:180em; opacity:1; width:100%; }
.no-js .cm-menu ul { display:none; overflow:visible; }


/* ================= MENU OPEN FUNCTIONALITY ADDED ON SETUP ================= */

@media (min-width:48em){
    .toggle-menu + .cm-menu { max-height:180em; opacity:1; overflow:visible; }
    .cm-menu ul { top:100%; overflow:hidden; }
    .cm-menu .opened > ul { max-height:180em; opacity:1; }

    .cm-menu .animated > ul { overflow:visible; z-index:10; max-height:80em;}
    .cm-menu .animating > ul { z-index:-1; }
}

/*================================================================
                 CLICK MENU MENU TYPES
================================================================*/

/*  NAV BAR STYLE TYPE
    ================================================================*/

.nav-bar .container {padding-left:0; padding-right:0;}

.nav-bar li {position:relative; border-top:0;}
.nav-bar .cm-menu {display:block;}
.nav-bar .cm-menu > li {display:block;}

.nav-bar .cm-menu > li > a svg {position:relative; display:inline-block; vertical-align:bottom; width:29px; height:24px; left:-1px; margin-top:-4px; margin-right:4px; fill:#ffffff;}
.nav-bar .cm-menu > li > a span.adjacent {display:inline-block; padding:0; vertical-align:text-top;}
.nav-bar .cm-menu > li > a {position:relative; display:block; font-weight:700; font-size:16px; line-height:20px;
    text-transform: uppercase;
    color:#ffffff;
    background-color:#000000;
    transition:background-color 200ms ease;
    will-change:background-color;
}
.nav-bar .cm-menu > li.opened > a,
.nav-bar .cm-menu > li.animating > a,
.nav-bar .cm-menu > li > a:hover,
.nav-bar .cm-menu > li > a:focus {
    background-color:#1d376c;
    transition:background-color 200ms ease;
}

.nav-bar .cm-menu > li > a > span {position:relative; display:block; padding:15px;}

.nav-bar ul ul a span {display:block; padding:10px 20px;}
.nav-bar ul ul ul a span {display:block; padding:10px 20px 10px 40px;}

@media (min-width:48em) {

    .nav-bar .cm-menu {display:flex; flex-flow:row nowrap; justify-content:center; width:100%; padding:0;}
    .nav-bar .cm-menu > li {flex-grow:1; display:block; padding:0; align-items:stretch;}
    .nav-bar .cm-menu > li > a {display:table; border-collapse:collapse; border-spacing:0; table-layout:auto; width:100%; height:100%; text-align:center;}

    .nav-bar .cm-menu > li > a > span {display:table-cell; vertical-align:middle; padding:20px 5px 18px 5px; height:100%;}
    .nav-bar .cm-menu > li > a.has-sub > span {height:100%;}
    .nav-bar .cm-menu > li > ul { text-align:left; position:absolute; white-space:normal;}

    .nav-bar ul ul li:last-child > a {border-bottom-left-radius:5px; border-bottom-right-radius:5px;}

    .nav-bar ul li li li { margin-left:0; margin-right:0; }
    .nav-bar ul ul a span {display:block; padding:10px 20px;}
    .nav-bar ul ul ul a span {display:block; padding:10px 20px}

    /* ================= HOVER FALLBACK IF JAVASCRIPT IS DISABLED ================= */

    .no-js .nav-bar ul ul li:hover > a { color:#000; background:#ddd; }

}

/*  ACCORDION NAVIGATION
    ================================================================*/

/* ------------- CURRENTLY KEEPS SMALL SCREEN STYLES -------------- */


/*  DROP DOWN NAVIGATION
    ================================================================*/

@media (min-width:48em) {

    [data-type="dropdown"] ul {
        display:block;
        position:absolute;
        z-index:-1;
        top:100%; left:0; right:0;
        min-width:200px;
        margin:0; padding:0;
        list-style-type:none;
    }
    [data-type="dropdown"] ul ul {top:0;}
    [data-type="dropdown"] .opened > ul { left:100%; max-height:80em; opacity:1; }

    li[data-type="dropdown"]:nth-last-child(-n+2) ul { /*left:auto; right:0;*/ }
    li[data-type="dropdown"]:nth-last-child(-n+2) .opened > ul {/* left:auto; right:100%; */}

    .nav-bar ul li[data-type="dropdown"] li li {}

    [data-type="dropdown"] a + .has-sub { width:0; min-height:0; height:100%; }
    [data-type="dropdown"] a + .has-sub > span { min-height:0; height:100%; }

    /* ================= HOVER FALLBACK IF JAVASCRIPT IS DISABLED ================= */

    .no-js .cm-menu [data-type="dropdown"] li:hover > ul { left:100%; }
    .no-js .cm-menu [data-type="dropdown"]:nth-last-child(-n+2) ul { left:auto; right:0; }
    .no-js .cm-menu [data-type="dropdown"]:nth-last-child(-n+2) li:hover > ul { left:auto; right:100%; }

}

/*  SLIDING MENU NAVIGATION ADJUSTMENTS
    ================================================================*/

[data-type="sliding"].opened .sub-menu,
[data-type="sliding"].opened .sub-menu ul { max-width:100%; }

.cm-menu [data-type="sliding"].opened .sub-menu > ul { max-height:80em; opacity:1; }
.cm-menu [data-type="sliding"].animated .sub-menu > ul { overflow:visible; z-index:10; }
.cm-menu [data-type="sliding"].animating .sub-menu { z-index:-1; }

@media (min-width:48em){

    [data-type="sliding"] .sub-menu {
        position:absolute;
        -wekbit-transition: all 200ms ease;
                transition: all 200ms ease;
    }
    [data-type="sliding"] .sub-menu > ul {
        display:block;
        position:absolute;
        z-index:-1;
        top:100%; left:0;
        width:180px;
        background:#333;
        -wekbit-transition: max-height 200ms ease, opacity 200ms ease, left 200ms ease, right 200ms ease;
                transition: max-height 200ms ease, opacity 200ms ease, left 200ms ease, right 200ms ease;
    }

    [data-type="sliding"] .sub-menu > ul li { position:static; }
    [data-type="sliding"] .sub-menu > ul > li > ul { position:absolute; top:0; }

    [data-type="sliding"] .sub-menu > ul ul { position:absolute; top:0; }

    [data-type="sliding"] .sub-menu ul ul ul { position:static; margin:0; padding:0; max-height:80em; width:100%; overflow:hidden; background:transparent; opacity:1; }

    [data-type="sliding"] .sub-menu ul ul .has-sub { color:#fff; cursor:default; }
    [data-type="sliding"] .sub-menu ul ul .has-sub { background: none; border-bottom:1px solid #fff; }
    [data-type="sliding"] .sub-menu ul ul .has-sub:after,
    [data-type="sliding"] .sub-menu ul ul .expander-wrap .has-sub  { display:none; }

    [data-type="sliding"] .sub-menu > ul > li > ul > li { float:left; width:50%; padding:0 5px; }
    [data-type="sliding"] .sub-menu > ul > li > ul > li:nth-child(2n+1) { clear:left; }
    [data-type="sliding"] .sub-menu > ul > li > ul > .link-landing { margin-left:0; margin-right:0; width:100%; }
    [data-type="sliding"] .sub-menu > ul > li > ul > .link-landing ~ li:nth-child(2n+1) { clear:none; }
    [data-type="sliding"] .sub-menu > ul > li > ul > .link-landing ~ li:nth-child(2n+2) { clear:left; }

    /* ================= ESSENTIAL SLIDING FUNCTIONALITY ================= */

    [data-type="sliding"] .sub-menu.cm-js-inactive { position:relative; left:0 !important; width:100% !important; }
    [data-type="sliding"] .sub-menu.cm-js-inactive > ul { min-width:100%; }
    [data-type="sliding"] .sub-menu.cm-js-inactive > ul > li > ul { padding:0; max-width:0; }

    [data-type="sliding"] .sub-menu > ul ul { width:100%; margin-left:-5px; padding-left:180px; padding-right:5px; z-index:-1; opacity:0; }
    [data-type="sliding"] .sub-menu .animated ul { opacity:1; }

    [data-type="sliding"].opened .sub-menu, [data-type="sliding"].opened .sub-menu ul { max-width:none; }

    /* ================= HOVER FALLBACK IF JAVASCRIPT IS DISABLED ================= */

    .no-js .cm-menu [data-type="sliding"] li:hover > ul { left:100%; }
    .no-js .cm-menu [data-type="sliding"]:nth-last-child(-n+2) ul { left:auto; right:0; }
    .no-js .cm-menu [data-type="sliding"]:nth-last-child(-n+2) li:hover > ul { left:auto; right:100%; }

}

/*  MEGA MENU NAVIGATION ADJUSTMENTS
    ================================================================*/

@media (min-width:48em){

    .cm-menu [data-type="mega"] { position:static; }
    [data-type="mega"] > ul {
        position:absolute;
        top:100%; left:0;
        width:100%; max-height:0;
        background:#333;
        overflow:hidden;
    }

    [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; }

    /* ================= 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:relative; margin:0 auto; padding:0; border:0; width:50px; height:50px; background-color:transparent;}

.toggle-menu > span {display:block; position:absolute; left:9px; right:9px; top:23px; height:0; border-bottom:5px solid rgba(255,255,255,255);
    transition:border-color 1ms ease 100ms;
}

.toggle-menu > span::before {
    content:"";
    position:absolute;
    left:0; right:0; top:-10px; bottom:auto;
    height:0;
    border-top:5px solid #ffffff;
    transform:rotate(0deg);
    transition:transform 100ms ease, top 100ms ease 100ms;
}

.toggle-menu > span::after {
    content:"";
    position:absolute;
    left:0; right:0; top:10px; bottom:auto;
    height:0;
    border-bottom:5px solid #ffffff;
    transform:rotate(0deg);
    transition:transform 100ms ease, top 100ms ease 100ms;
}

.cm-js-menu-active .toggle-menu > span {
    border-color:rgba(255,255,255,0);
}

.cm-js-menu-active .toggle-menu > span::before {top:0; transform:rotate(45deg);
    transition:transform 100ms ease 100ms, top 100ms ease;
}

.cm-js-menu-active .toggle-menu > span::after {top:0; transform:rotate(-45deg);
    transition:transform 100ms ease 100ms, top 100ms ease;
}


@media (max-width:479px){
    .custom-sub-cmlla .nav-column+.nav-column+.nav-column+.nav-column h3+ul { 
		margin-bottom: 25px;
	}
}


/*================================================================
                 EXTRA OVERWRITE STYLES
================================================================*/

.nav-bar {display:block; height:100%; z-index:91; background-color:#000000;}

[data-type="sliding"] .sub-menu .item-banner { width:100%; }
[data-type="sliding"] .sub-menu .item-banner a { text-align:center; background:none; }

[data-type="mega"] .custom-sub {
    display:block;
    max-height:0; opacity:0;
    background-color:#ffffff;
    box-shadow:0px 8px 8px -2px rgba(0,0,0,0.25);
    overflow:hidden;
    -wekbit-transition: all 0.5s ease;
            transition: all 0.5s ease;
}

[data-type="mega"] .custom-sub-cmlla {
    display:flex; flex-flow:row wrap;
    width:100%;
    padding:10px;
}

[data-type="mega"] > .custom-sub a:hover,
[data-type="mega"] > .custom-sub a:focus {text-decoration:underline;}

[data-type="mega"] > .custom-sub .nav-column {display:block; padding:10px; flex-basis:100%;}

[data-type="mega"] > .custom-sub .nav-column li {display:block; margin-bottom:2px;}

[data-type="mega"] > .custom-sub h3 {
    margin:10px 0 6px 0;
    line-height:22px;
    font-weight:700;
    font-size:15px;
    color:#372f2b;
    text-transform:uppercase;
}

[data-type="mega"] > .custom-sub h3 a {
    color:#005c93;
}

[data-type="mega"] > .custom-sub .more {
    font-weight:700;
}



@media (min-width:30em) {

    [data-type="mega"] > .custom-sub .nav-column {flex-basis:50%;}

}

@media (min-width:48em) {

[data-type="mega"] .custom-sub-cmlla {flex-wrap:nowrap;}
    [data-type="mega"] > .custom-sub .nav-column {flex-basis:100%;}

}

@media (min-width:62em) {



}

[data-type="mega"] .custom-sub ul { position:static; opacity:1; max-height:180em; }
[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:180em; opacity:1; }
.cm-menu .animated > .custom-sub { overflow:visible; z-index:10; }
.cm-menu .animating > .custom-sub { z-index:-1; }

/* 16px baseline (max 767px) */
@media only screen and (max-width:47.938em) {

    .cm-menu, .cm-menu ul {
        max-height:0;
        opacity:0;
        overflow:hidden;
        -wekbit-transition: max-height 200ms ease, opacity 200ms ease;
                transition: max-height 200ms ease, opacity 200ms ease;
    }
    .cm-menu {
        left:0; right:0; padding:0;
        -wekbit-transition: max-height 200ms ease, opacity 200ms ease;
                transition: max-height 200ms ease, opacity 200ms ease;
    }
    .cm-menu > li.firstnavitemli {}
    .cm-menu > li.lastnavitemli {padding-bottom:20px;}

}

@media (min-width:48em) {

    .nav-bar {position:relative;}

    .cm-menu {left:auto; right:auto; top:auto; bottom:auto; border:none; min-height:50px;}

    .cm-menu .has-sub::before,
    .cm-menu .expander-wrap .has-sub > span::before {display:none;}

    .cm-menu .has-sub::after,
    .cm-menu .expander-wrap .has-sub > span::after {display:none;}

    .nav-bar .cm-menu {width:100%;}

    [data-type="mega"] .custom-sub {
        position:absolute;
        top:100%; left:0;
        width:100%;
    }

    .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:#333; background:#d4d4d4; }
.section-nav .opened .opened > .expander-wrap > a { background:#c4c4c4; }

/* 16px baseline (1100px +) */
@media (min-width:68.75em) {
    .nav-bar .cm-menu > li > a {font-size:16px;}
}