/*------>>> TABLE OF CONTENTS <<<-------
    - Primary Navigation
    - Megamenu
    - Breadcrumbs
*/


/************************************
/*----------------------------------
/*  PRIMARY NAVIGATION
/*----------------------------------
/*************************************/

:root {
    --arrow-offset: 83px;
}
/*---> Navigation Utility Bar <---*/
.primary-nav {
	display:block;
    width:100vw;
	margin-left:auto;
    margin-right:auto;
	position:absolute;
    top:100%;
    left:0;
    right:0;
	z-index:1;
	background-color: var(--color-primary);
}
.flexnav,
.flexnav ul {
	list-style:none;
} 
.flexnav {
	width:100%;	
	max-height:0;
	overflow:hidden;
	/* position:absolute; */
	top:100%;	
	margin:0 auto;
	padding:0;
	transform-style:preserve-3d;
	transition:all .5s cubic-bezier(0.77, 0, 0.175, 1);
}  
.flexnav.opacity {
	opacity:1;
}
.flexnav.flexnav-show {
	opacity:1;
	padding:0;	
	max-height:2000px;
	transition:all .5s cubic-bezier(0.77, 0, 0.175, 1);
}
.flexnav.one-page {
	max-width:200px;
	position:fixed;
	top:50px;
	right:5%;
}
.flexnav li {
	overflow:hidden;
	position:relative;
	font-size:100%;
}
.flexnav li:not(.utility-list__item) {
	line-height: 0;
}
.flexnav li::before {
    display:none; /* Reset from base styles */
}
.flexnav > li a {
	background:var(--color-primary);
	display:block;
	position:relative;
	overflow:hidden;
	padding:.625rem 1.25rem;
	margin:0;
	font-size:1.125rem;
	font-weight:700;
	color:var(--color-white);
	text-align:left;
	line-height:1.2;
	border-top:1px solid var(--color-nav-accent02);
	z-index:2;
}
/* .flexnav > li > a {
    text-transform:uppercase;
} */
.flexnav .navOnlyLink {
    cursor:default;
} 
/*- nested UL -*/
.flexnav li ul {
	margin:0;
	width:100%;
	padding:0;
}
.flexnav li ul li {
	position:relative;
	overflow:hidden;
	font-size:100%;

    float:none;
}
.flexnav li ul.flexnav-show li {
	overflow:visible;
}
.flexnav li ul li a {
	padding-left:2.5rem;
    font-weight:400;
	font-size: .938rem;
	border:0;
    /* background-color:var(--color-nav-accent02); */
    background-color: var(--color-white);
    color: var(--color-primary);
}
/*- Third Level -*/
.flexnav li ul li ul li a {
	padding-left:3.5rem;
    font-weight:400;
    background-color:var(--color-nav-accent01);
    /* color: var(--color-primary); */
}
/*- Fourth Level -*/
.flexnav li ul li ul li ul a {
	padding-left:4.5rem;
    background-color:var(--color-nav-accent03);
    /* color: var(--color-primary); */
}
/*- drop down arrows -*/
.flexnav .touch-button {
	display: flex;
    width: 50px;
    height: 42px;
	position:absolute;
	top:0;
	right:0;
	background:transparent;
	z-index:999;
    align-items: center;
    justify-content: center;
}
.flexnav .touch-button .touch-button-svg {
	fill:var(--color-base);
	width:25px;
	height:25px;
	position:absolute;
    inset:0;
    margin:auto;
	transition:all 0.2s ease-in-out;
}
.flexnav .touch-button.active .touch-button-svg {
	transform:rotate(180deg);
}
.flexnav .touch-button:hover {
	cursor:pointer;
}
.flexnav .touch-button .navicon {
	/* display:none; */
    font-style: normal;
    color: var(--color-white);
    font-size: 22px;
    position: relative;
    top: -3px;
    font-style: normal;
    transform: rotateX(180deg);
    transition: all .3s ease-in-out;
}
.flexnav ul .touch-button .navicon {
    color: var(--color-primary);
}
.flexnav .touch-button.active .navicon {    
	top: 3px;
    transform: rotateX(0);
}
/*- menu button -*/
.menu-button {
	display:block;
	margin:0;
	position:relative;
	font-size:1rem;
	color:var(--color-base);
	line-height:1;
	cursor:pointer;
	z-index:10000;
}
.menu-button .touch-button {
	display:block;
    margin:0;
	width:20px;
	height:100%;
	position:absolute;
    left:0;
	top:0;
}
.menu-button .touch-button .navicon {
	display:block;
	height:2px;
	width:100%;
	position:absolute;
    inset:0;
    margin:auto;
	background:var(--color-base);
	transition:background 0.2s;
	border-radius:3px;
}
.menu-button .touch-button .navicon::before {
	display:block;
	width:100%;
	height:2px;
	position:absolute;
	top:-7px;
	left:0;
	content:"";
	background-color:var(--color-base);
	transition-property:top, transform;
	transition-duration:.3s, .3s;
	transition-delay:.3, 0s;
	border-radius:3px;
}
.menu-button .touch-button .navicon::after {
	display:block;
	width:100%;
	height:2px;
	position:absolute;
	left:0;
	bottom:-7px;
	content:"";
	background-color:var(--color-base);
	-webkit-transition-property:bottom, -webkit-transform;
	transition-property:bottom, transform;
	-webkit-transition-duration:.3s, .3s;
	transition-duration:.3s, .3s;
	-webkit-transition-delay:.3s, 0s;
	transition-delay:.3s, 0s;
	border-radius:3px;
}
.menu-button .touch-button.active .navicon {
	background:transparent;
}
.menu-button .touch-button.active .navicon::before,
.menu-button .touch-button.active .navicon::after {
	-webkit-transition-duration:.3s, .3s;
	transition-duration:.3s, .3s;
	-webkit-transition-delay:.3s, 0s;
	transition-delay:0s, 0.3s;
}
.menu-button .touch-button.active .navicon::before {
	top:0;
	-webkit-transform:rotate(45deg);
	-ms-transform:rotate(45deg);
	transform:rotate(45deg);
}
.menu-button .touch-button.active .navicon::after {
	bottom:0;
	-webkit-transform:rotate(-45deg);
	-ms-transform:rotate(-45deg);
	transform:rotate(-45deg);
}
@media all and (min-width:1024px) {
	.primary-nav {
        width:100%;
        margin-left:0;
        margin-right:0;
        position:static;
        top:initial;
        left:initial;
        right:initial;
	}
	.flexnav {
		position:relative;
		top:auto;
		max-width:none;
		height:100%;
		max-height:100%;
		margin:0 auto 0 auto !important;
		overflow:visible;
		background:transparent;
		display:-webkit-box;
		display:-moz-box;
		display:-ms-flexbox;
		display:-webkit-flex;
		display:flex;
		-webkit-box-pack:justify;
		-moz-box-pack:justify;
		-ms-flex-pack:justify;
		-webkit-justify-content:space-around;
		justify-content:space-around;
		-ms-flex-line-pack:center;
		-webkit-align-content:center;
		align-content:center;
		box-shadow:none;
		border-radius:0;
		transition:all 0.3s ease;
		-webkit-transition:all 0.3s ease;
		transition:all 0.3s ease;
	}
	body.one-page {
		padding-top:70px;
	}
	.flexnav.opacity {
		opacity:1;
	}
	.flexnav.one-page {
		max-width:1080px;
		top:0;
		right:auto;
	}
	.flexnav li {
		display:block;
		position:relative;
		list-style:none;
		float:left;
		overflow:visible;
		flex-grow:1;
		height:100%;
	}
	.flexnav > li > a {
		padding:1rem 0;
		display:-webkit-flex;
		display:flex;
		-webkit-align-items:center;
		align-items:center;
		-webkit-justify-content:center;
		justify-content:center;
		background:transparent;
		/*text-align:center;*/
		-webkit-transition:all 0.3s ease;
		transition:all 0.3s ease;
		border:0 !important;
	}
	.flexnav li a:active {
		color:var(--color-secondary-dark);
	}
	.flexnav li a:is(:active, :focus, :focus-visible) {
		text-decoration:none;
	}
	.flexnav li a:is(:focus, :focus-visible) {
		outline:0;
		border:0;
	}
	/*- nested UL -*/
	.flexnav li ul {
		display:none;
        -webkit-box-shadow:0px 25px 50px 0px rgba(var(--color-black-rgb),0.15);
        -moz-box-shadow:0px 25px 50px 0px rgba(var(--color-black-rgb),0.15);
        box-shadow:0px 25px 50px 0px rgba(var(--color-black-rgb),0.15);
	}
	.flexnav li > ul {
		width:200px;
		position:absolute;
		top:100%;
		right:-100%;
		left:-100%;
		margin:0 auto;
		background:var(--color-white);
		padding:0.5rem 0;
	}
    .flexnav > li > ul::before {
		position:absolute;
		content:'';
		display:block;
		width:0;
		height:0;
		top:-10px;
		left:50%;
        -webkit-transform:translateX(-50%);
        transform:translateX(-50%);
		border:inset 0.75rem;
		border-color:transparent transparent #fff;
		border-bottom-style:solid;
		border-top-width:0;
	}
	.flexnav li > ul li {
		width:100%;
		height:auto;
	}
	.flexnav li > ul li a {
		padding:0.25rem 0.875rem !important;
		background:transparent;
		font-size: 1rem;
		/*text-align:center;*/
	}
	.flexnav li ul li > a:hover
	/*.flexnav li ul li > a.active*/ {
		color:var(--color-secondary);
	}
	/*- Third Level -*/
	.flexnav li > ul li ul {
		top:-0.5rem; /* adjust for padding on ul */
		right:auto;
		left:100%;
		background:var(--color-nav-accent01);
	}
	/*- Fourth Level -*/
	.flexnav li > ul li > ul li > ul {
		background:var(--color-nav-accent02);
	}
	/*- drop down arrows -*/
	.flexnav .touch-button {
		display:none;
	}
	.touch .flexnav .touch-button {
		display:block; 
	}
	.flexnav .touch-button {
		width:25px;
		height:14px;
		margin:0 auto;
		top:auto;
		left:0;
		right:0;
		bottom:0.188rem;
	}
	.item-with-ul .item-with-ul .touch-button { /* Second Level Touch Button */
		margin:0;
		top:50%;
		left:auto;
		right:0;
		bottom:auto;
		top:50%;
		-webkit-transform:translateY(-50%);
		transform:translateY(-50%);
	}
	.item-with-ul .item-with-ul .touch-button .touch-button-svg {
		transform:rotate(-90deg);
	}
	.item-with-ul .item-with-ul .touch-button.active .touch-button-svg {
		transform:rotate(90deg);
	}
	/*- menu button -*/
	.menu-button {
		display:none;
	}
}
/*---> Navigation Utility Bar Compact <---*/
.menu-button {
	width:100%;
	height:100%;
    background:var(--color-nav-accent01);
}
.menu-button .touch-button {
    margin:0 auto;
	right:0;
}
@media all and (min-width:1024px) {
	.primary-nav {
		height:42px;
	}
	.flexnav > li > a {
		/* padding:0 0 0.875rem 0; */
		height:100%;
	}
	.flexnav li a {
		background:transparent !important;
	}
}
/*---> Navigation Ghost <---*/
.menu-button {
	background:transparent;
}
.menu-button .touch-button .navicon, .menu-button .touch-button .navicon::before, .menu-button .touch-button .navicon:after {
	background:var(--color-primary);
}
@media all and (min-width:1024px) {
	.flexnav > li > a {
		color:var(--color-white);
	}
	.flexnav > li .touch-button .touch-button-svg {
		fill:var(--color-white);
	}
	.flexnav li ul li .touch-button .touch-button-svg {
		fill:var(--color-base);
	}
}


/************************************
/*----------------------------------
/*  MEGAMENU
/*----------------------------------
/*************************************/

@media all and (min-width:64rem) {
    .flexnav li.has-megamenu {
        position:static;
    }
	.megamenu {
		background:#fff;
		position:absolute;
        right:0;
        width:calc(100vw - 1.25rem);
        /* max-width:calc(var(--row-max-width) - 1.25rem); */
        max-width: var(--row-max-width);
		max-height:0;
		overflow:hidden;
		transition: all 0.3s ease;
		-webkit-transition: all 0.3s ease;
		transition: all 0.3s ease;
        -webkit-box-shadow:0px 25px 50px 0px rgba(var(--color-black-rgb),0.15);
        -moz-box-shadow:0px 25px 50px 0px rgba(var(--color-black-rgb),0.15);
        box-shadow:0px 25px 50px 0px rgba(var(--color-black-rgb),0.15);
		z-index:2;
	}
	.megamenu::before {
		position:absolute;
		content:'';
		display:block;
		width:0;
		height:0;
		top:-10px;
		left:50%;
		border: inset 0.75rem;
		border-color: transparent transparent #fff;
		border-bottom-style: solid;
		border-top-width: 0;
	}
	.megamenu.flexnav-show {
		overflow:visible;
		max-height:20000px;
	}
	.megamenu__row {
        padding-left:0.625rem;
        padding-right:0.625rem;
	}
	.megamenu__row > .megamenu__columns,
	.megamenu__row.collapse > .megamenu__columns {
		position:relative;
        padding-left:1.25rem;
        padding-right:1.25rem;
	}
    .megamenu__row .megamenu__columns > ul,
    .megamenu__row .megamenu__columns ul > li > ul {
		box-shadow:none;
    }
	.megamenu.flexnav-show .megamenu__row .megamenu__columns > ul {
		display:flex;
		flex-wrap: wrap;
	}
	.megamenu__row .megamenu__columns ul > li > ul {
		display:block;
		width:100%;
		position:relative;
		top:auto;
		right:auto;
		left:auto;
		background:transparent;
        padding:0;
        margin:0 0 1rem;
	}
	.megamenu__row .megamenu__columns ul > li > ul.megamenu__split-list {
		display: flex;
		flex-wrap: wrap;
	}
	.megamenu__split-list li {
		flex: 1 1 50%;
	}
	.megamenu li > ul li {
		padding:0 !important;
	}
	.width50 {
		/* width: 50%;		 */
		flex: 1 1 50%;
	}
	.width100 {
		/* width: 100%;  */
		flex: 1 1 100%;
	}
	.megamenu__row .megamenu__columns ul li a {
		padding:0.25rem 0 !important;
	}
	.megamenu__row .megamenu__columns ul li a.top-level-link.top-level-link {
        padding-top:0.938rem !important;
        padding-bottom:0.938rem !important;
		margin-right: 1.25rem;
    }
	.megamenu ul li a.top-level-link {
		font-weight:700;
        border-bottom:2px solid var(--color-gray-accent);
        font-size:1.125rem;
        margin-top:1rem;
        margin-bottom:1rem;
	}
	.megamenu ul li a.top-level-link:not(:hover) {
		color:var(--color-primary);
	}
    .megamenu ul > li > ul > li:has(ul) > a,
    .megamenu ul > li > ul > li > a:not(:only-child) {
        font-weight:700;       
    }
    .megamenu ul > li > ul > li:has(ul) > a:not(:hover),
    .megamenu ul > li > ul > li > a:not(:only-child):not(:hover) {
        color:var(--color-primary);
    }
    .megamenu--01::before {
		left:var(--arrow-offset);
    }
    .megamenu--02::before {
		left:calc(var(--arrow-offset) + 15%);
    }
    .megamenu--03::before {
		left:calc(var(--arrow-offset) + 28.5%);
    }
    .megamenu--04::before {
		left:calc(var(--arrow-offset) + 40.5%);
    }
}
