.r3423-nav-menu { }

	.r3423-nav-menu .nav-menu-handle {
		cursor: context-menu;
		display: none;
	}

	.r3423-nav-menu a, .r3423-nav-menu a:visited {
		display: inline-block;
		text-decoration: none;
	}

	.r3423-nav-menu ul.menu, .r3423-nav-menu ul.sub-menu {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.r3423-nav-menu ul.menu {
		display: block;
	}

		.r3423-nav-menu ul.menu li {
			position: relative;
		}
		
		.r3423-nav-menu ul.menu > li {
			display: inline-block;
			vertical-align: top;
			/*white-space: nowrap;*/
		}
		
			.r3423-nav-menu ul.menu > li > .menu-item-description {
				display: none; /* Should be configured in child theme */
			}

				.r3423-nav-menu ul.menu svg.submenu-indicator {
					cursor: context-menu;
					display: inline-block;
					height: 11px;
					margin-left: 8px;
					transition: transform 0.333s ease;
					width: 11px;
					vertical-align: middle;
				}
	
				.r3423-nav-menu ul.menu.depth_1 svg.submenu-indicator { display: none; }

			.r3423-nav-menu ul.sub-menu a {
				min-width: 15rem;
				width: auto;
			}

			.r3423-nav-menu ul.sub-menu li > svg.submenu-indicator {
				margin-left: -11px;
				transform: rotate(-90deg);
				vertical-align: baseline;
			}

			.r3423-nav-menu ul.sub-menu li.open > svg.submenu-indicator { transform: rotate(0); }

			.r3423-nav-menu ul.sub-menu li.menu-item-has-children > ul.sub-menu { display: none; }
			
			.r3423-nav-menu ul.sub-menu li.menu-item-has-children.open > ul.sub-menu {
				display: block;
				margin-left: var(--wp--style--block-gap);
			}

#top_bar *, #top_bar .r3423-nav-menu {
	font-size: var(--wp--custom--top-bar--font-size) !important;
	font-weight: var(--wp--custom--top-bar--font-weight) !important;
}

	#top_bar .r3423-nav-menu a, #top_bar .r3423-nav-menu a:visited {
		color: var(--wp--custom--top-bar--text);
		padding: 0.25em 1em;
	}

	#top_bar .r3423-nav-menu li:first-child a { padding-left: 0; }
	#top_bar .r3423-nav-menu li:last-child a { padding-right: 0; }

	#top_bar .r3423-nav-menu a:focus, #top_bar .r3423-nav-menu a:hover {
		color: var(--wp--custom--top-bar--text-hover);
	}

#header .r3423-nav-menu {
	background-color: var(--wp--custom--header--background-menu);
	font-size: var(--wp--custom--header--font-size);
	font-weight: var(--wp--custom--header--font-weight);
}

	#header .r3423-nav-menu a, #header .r3423-nav-menu a:visited {
		border: var(--wp--custom--header--menu-link-border);
		color: var(--wp--custom--header--text);
		padding: 0.5em 1em;
	}

	#header .r3423-nav-menu li.current-menu-item > a, #header .r3423-nav-menu li.current-menu-item > a:visited {
		border: var(--wp--custom--header--menu-link-current-border);
	}

	#header .r3423-nav-menu a:focus, #header .r3423-nav-menu a:hover {
		background-color: var(--wp--custom--header--background-hover);
		border: var(--wp--custom--header--menu-link-hover-border);
		color: var(--wp--custom--header--text-hover);
	}

	#header .r3423-nav-menu .cta a, #header .r3423-nav-menu .cta a:visited {
		background: var(--wp--custom--header--background-cta);
		color: var(--wp--custom--header--text-cta);
		padding: 0.5em 1em;
	}

	#header .r3423-nav-menu .cta a:focus, #header .r3423-nav-menu .cta a:hover {
		background-color: var(--wp--custom--header--background-cta-hover);
		color: var(--wp--custom--header--text-cta-hover);
	}

#footer .r3423-nav-menu {
	font-weight: var(--wp--custom--footer--font-weight);
}

	#footer .r3423-nav-menu a, #footer .r3423-nav-menu a:visited {
		color: var(--wp--custom--footer--text);
		padding: 0 2em 0.25em 0;
	}

	#footer .r3423-nav-menu a:focus, #footer .r3423-nav-menu a:hover {
		color: var(--wp--custom--footer--text-hover);
	}

	#footer .r3423-nav-menu ul.menu > li > a { font-weight: 700; }

#footer #footer_legal.r3423-nav-menu {
	font-size: var(--wp--preset--font-size--x-small);
}

	#footer #footer_legal.r3423-nav-menu ul.menu > li > a {
		font-weight: 400;
		padding: 0 0.5em;
	}

@media screen and (min-width: 783px) {
	/* Standard menu */
	
	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li > ul.sub-menu {
		display: none;
		min-width: 100%;
		position: absolute; top: 100%; right: auto; bottom: auto; left: 0;
	}

	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li:hover > a:not(:hover):not(:focus),
	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li.open > a:not(:hover):not(:focus)
	{
		background-color: var(--wp--custom--header--background-submenu);
		color: var(--wp--custom--header--text-submenu);
	}

	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li > ul.sub-menu {
		background-color: var(--wp--custom--header--background-submenu);
	}
	
	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li > ul.sub-menu a {
		background-color: var(--wp--custom--header--background-submenu);
		color: var(--wp--custom--header--text-submenu);
		display: block;
		padding: 0.5rem 1rem;
		white-space: nowrap;
	}

	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li > ul.sub-menu a:focus,
	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li > ul.sub-menu a:hover
	{
		background-color: var(--wp--custom--header--background-submenu);
	}

	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li:last-child > ul.sub-menu {
		min-width: 15rem;
		right: 0; left: auto !important;
	}

	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li:hover > ul.sub-menu,
	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li.open > ul.sub-menu
	{
		box-shadow: 0 1px 1px rgba(0,0,0,0.1);
		display: block;
	}
	
	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li:hover > .menu-item-description,
	body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li.open > .menu-item-description
	{
		display: block;
		position: absolute; top: 100%; right: calc(100% + 1.5rem);
		width: clamp(240px, 25vw, 640px);
	}
	
		body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li:hover > .menu-item-description img,
		body:not(.header-menu-desktop-hamburger) #header .r3423-nav-menu ul.menu > li.open > .menu-item-description img
		{
			display: block;
			height: auto;
			max-width: 100%;
			width: 100%;
		}

	/* Hamburger menu */
	
	body.header-menu-desktop-hamburger #header .nav-menu-handle {
		cursor: context-menu;
		display: block;
		height: 44px;
		position: fixed;
		top: var(--wp--custom--header--menu-handle-y-offset);
		right: var(--wp--custom--header--menu-handle-x-offset);
		transition: var(--wp--custom--header--scroll-transition);
		width: 44px;
		z-index: 2;
	}
	body.header-menu-desktop-hamburger.admin-bar #header .nav-menu-handle {
		top: calc(
			var(--wp--custom--header--menu-handle-y-offset) +
			var(--wp-admin--admin-bar--height)
		);
	}
	body.header-menu-desktop-hamburger.scrolled #header .nav-menu-handle {
		top: var(--wp--custom--header--menu-handle-scrolled-y-offset);
		right: var(--wp--custom--header--menu-handle-scrolled-x-offset);
	}
	body.header-menu-desktop-hamburger.scrolled.admin-bar #header .nav-menu-handle {
		top: calc(
			var(--wp--custom--header--menu-handle-scrolled-y-offset) +
			var(--wp-admin--admin-bar--height)
		);
	}

		body.header-menu-desktop-hamburger #header .nav-menu-handle svg.r3423-menu-handle {
			height: 36px;
			margin: 4px;
			overflow: visible;
			width: 36px;
		}
		body.header-menu-desktop-hamburger #header .nav-menu-handle svg.r3423-menu-handle:hover {
			filter: brightness(90%);
		}

			body.header-menu-desktop-hamburger #header .nav-menu-handle svg.r3423-menu-handle path {
				fill: var(--wp--custom--header--text);
				transition: all 0.2s ease;
			}
			body.header-menu-desktop-hamburger.nav-open #header .nav-menu-handle svg.r3423-menu-handle path.bar1 {
				transform: translateX(-22%) translateY(22%) rotate(45deg);
				transform-origin: 50% 50%;
			}
			body.header-menu-desktop-hamburger.nav-open #header .nav-menu-handle svg.r3423-menu-handle path.bar2 {
				opacity: 0;
			}
			body.header-menu-desktop-hamburger.nav-open #header .nav-menu-handle svg.r3423-menu-handle path.bar3 {
				transform: translateX(-22%) translateY(-22%) rotate(-45deg);
				transform-origin: 50% 50%;
			}

	body.header-menu-desktop-hamburger #header .r3423-nav-menu {
		box-shadow: 0px 0px 0px rgba(0,0,0,0);
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		padding-top: calc(var(--wp--custom--header--height) + var(--wp-admin--admin-bar--height));
		position: fixed; top: 0; right: auto; bottom: 0; left: 100%;
		transition: var(--wp--custom--header--scroll-transition);
		width: 30vw;
		z-index: 1;
	}

	body.header-menu-desktop-hamburger.nav-open #header .r3423-nav-menu {
		box-shadow: 0px 0px 40px -10px rgba(0,0,0,0.5), 0px 0px 1px rgba(0,0,0,0.75);
		left: calc(100% - 30vw); /* Using right causes glitch on window resize */
	}

		body.header-menu-desktop-hamburger #header ul.menu > li {
			display: block;
		}

			body.header-menu-desktop-hamburger #header .r3423-nav-menu ul.menu > li > ul.sub-menu {
				margin-left: var(--wp--style--block-gap);
			}

}

@media screen and (max-width: 1024px) and (min-width: 783px) {

	body.header-menu-desktop-hamburger #header .r3423-nav-menu {
		width: 45vw;
	}

	body.header-menu-desktop-hamburger.nav-open #header .r3423-nav-menu {
		left: calc(100% - 45vw); /* Using right causes glitch on window resize */
	}

}

@media screen and (max-width: 782px) {

	#header .nav-menu-handle {
		cursor: context-menu;
		display: block;
		height: 44px;
		position: fixed;
		top: var(--wp--custom--header--menu-handle-mobile-y-offset);
		right: var(--wp--custom--header--menu-handle-mobile-x-offset);
		width: 44px;
		z-index: 2;
	}
	body.admin-bar #header .nav-menu-handle {
		top: calc(
			var(--wp--custom--header--menu-handle-mobile-y-offset) +
			var(--wp-admin--admin-bar--height)
		);
	}

		#header .nav-menu-handle svg.r3423-menu-handle {
			height: 36px;
			margin: 4px;
			overflow: visible;
			width: 36px;
		}
		#header .nav-menu-handle svg.r3423-menu-handle:hover {
			filter: brightness(90%);
		}

			#header .nav-menu-handle svg.r3423-menu-handle path {
				fill: var(--wp--custom--header--text);
				transition: all 0.2s ease;
			}
			body.nav-open #header .nav-menu-handle svg.r3423-menu-handle path.bar1 {
				transform: translateX(-22%) translateY(22%) rotate(45deg);
				transform-origin: 50% 50%;
			}
			body.nav-open #header .nav-menu-handle svg.r3423-menu-handle path.bar2 {
				opacity: 0;
			}
			body.nav-open #header .nav-menu-handle svg.r3423-menu-handle path.bar3 {
				transform: translateX(-22%) translateY(-22%) rotate(-45deg);
				transform-origin: 50% 50%;
			}
			
			#header .r3423-nav-menu ul.menu { display: none; }

			body.nav-open #header .r3423-nav-menu ul.menu {
				display: block;
				padding-bottom: 100px; /* Room for #top_bar fixed to bottom */
			}

			#header .r3423-nav-menu ul.menu > li { display: block; }

			#header .r3423-nav-menu#primary_navigation ul.menu { margin-left: 44px; }

			#header .r3423-nav-menu ul.menu a {
				font-size: var(--wp--preset--font-size--large);
				line-height: var(--wp--custom--typography--line-height--large);
				margin: 0;
			}

			#header .r3423-nav-menu ul.menu li > svg.submenu-indicator {
				border: 12px solid transparent !important;
				height: 44px !important;
				position: absolute !important; top: 1px !important; left: -44px !important;
				transform: rotate(-90deg) !important;
				vertical-align: baseline !important;
				width: 44px !important;
			}

			#header .r3423-nav-menu ul.menu li.open > svg.submenu-indicator { transform: rotate(0) !important; }

			#header .r3423-nav-menu ul.sub-menu {
				margin-left: 2rem;
				position: relative;
			}

			#header .r3423-nav-menu ul.menu li.menu-item-has-children:not(.open) > ul.sub-menu { display: none; }
		
			#header .r3423-nav-menu ul.menu li.menu-item-has-children.open > ul.sub-menu {
				display: block;
				margin-left: var(--wp--style--block-gap);
			}

}
