/*	=================================
		Original source: layout.css
		================================= */

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

	header.site-header {
		min-height: calc(
			var(--wp--custom--top-bar--height) +
			var(--wp--custom--header--height)
		);
	}

	body.locking-header.scrolled header.site-header {
		min-height: calc(
			var(--wp--custom--top-bar--height) +
			var(--wp--custom--header--height-scrolled)
		);
	}

		#top_bar {
			height: var(--wp--custom--top-bar--height);
			padding: var(--wp--custom--top-bar--padding);
		}

		body.locking-header.scrolled #top_bar {
			min-height: var(--wp--custom--top-bar--height-scrolled);
			padding: var(--wp--custom--top-bar--padding-scrolled);
		}

		#header {
			min-height: var(--wp--custom--header--height);
			padding: var(--wp--custom--header--padding);
			transition: var(--wp--custom--header--scroll-transition);
		}

		body.locking-header.scrolled #header {
			min-height: var(--wp--custom--header--height-scrolled);
			padding: var(--wp--custom--header--padding-scrolled);
		}

			#header .wp-block-site-logo {
				height: auto;
				transition: var(--wp--custom--header--scroll-transition);
				width: var(--wp--custom--header--logo-width);
			}

			#header.logo-alignment-desktop-center .wp-block-site-logo {
				position: relative;
				left: 50%;
				transform: translateX(-50%);
			}

			body.locking-header.scrolled #header .wp-block-site-logo {
				width: var(--wp--custom--header--logo-width-scrolled);
			}
		
				/*
				Stupid Firefox makes SVGs 0x0 if you don't explicitly specify a height...
				but we are NOT forcing a height here, because it causes other problems that are
				really hard to sort out. Fine, Firefox, you win. **No SVGs for logos!**
				*/
				#header .wp-block-site-logo img {
					max-height: 100%;
					max-width: 100%;
					transition: var(--wp--custom--header--scroll-transition);
					width: 100%;
				}

	body.transparent-header .entry-content.alignfull:first-child > .wp-block-cover.alignfull:first-child {
		margin-top: calc(0px - var(--wp--style--block-gap) - var(--wp--custom--header--height)) !important;
		padding-top: calc(var(--wp--custom--header--height)) !important;
	}

	#footer > .wp-block-group:not(:last-child) {
		margin-bottom: calc(var(--wp--style--block-gap) * 2);
	}

	#footer > .wp-block-group:last-child {
		margin-bottom: 0;
	}

}

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

	#header {
		min-height: var(--wp--custom--header--height-tablet);
		padding: var(--wp--custom--header--padding-tablet);
	}

		#header .wp-block-site-logo {
			height: auto;
			width: var(--wp--custom--header--logo-width-tablet);
		}

}

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

	body.nav-open {
		overflow-y: scroll;
	}

	#top_bar:not(.mobile-always-visible) {
		display: none;
	}
	
	/* Affix "top bar" to bottom of menu overlay */
	body.nav-open #top_bar:not(.mobile-always-visible) {
		display: block;
		height: auto;
		min-height: var(--wp--custom--top-bar--height-mobile);
		padding: var(--wp--custom--top-bar--padding-mobile);
		position: fixed; top: auto; right: 0; bottom: 0; left: 0;
		z-index: 2;
	}
	
	#header {
		height: var(--wp--custom--header--height-mobile);
		padding: var(--wp--custom--header--padding-mobile);
	}

	body.nav-open #header {
		height: auto !important;
		min-height: calc(100vh - var(--wp-admin--admin-bar--height)) !important;
	}
	
		body #header > .wp-block-group {
			align-items: start;
			flex-direction: column;
			width: 100%;
		}

		#header .wp-block-site-logo {
			height: auto;
			width: var(--wp--custom--header--logo-width-mobile);
		}
		
		#header.logo-alignment-mobile-center .wp-block-site-logo {
			position: relative;
			left: 50%;
			transform: translateX(-50%);
		}

				#header .wp-block-site-logo img {
					height: auto;
					max-height: 100%;
					max-width: 100%;
					width: 100%;
				}
	
	#header .r3423-nav-menu-sidebar { display: none; }
	body.nav-open #header .r3423-nav-menu-sidebar { display: block; }

	body.nav-open main, body.nav-open footer.site-footer {
		display: none;
	}

	#footer {
		padding: var(--wp--custom--footer--padding-mobile);
	}
	
		#footer > .wp-block-group {
			display: block;
			max-width: 100% !important;
			min-width: 100% !important;
		}
	
			#footer > .wp-block-group:first-child > * {
				margin-bottom: var(--wp--style--block-gap) !important;
				max-width: 100% !important;
				min-width: 100% !important;
			}
	
}


/*	=================================
		Original source: nav-menu.css
		================================= */

@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: block;
		min-width: 100%;
		opacity: 0;
		position: fixed; top: -9999px; right: auto; bottom: auto; left: -9999px;
		transition: opacity 0.25s ease;
		visibility: hidden;
		z-index: -9999;
	}
	
	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 {
		opacity: 1;
		position: absolute; top: 100%; right: auto; bottom: auto; left: 0;
		visibility: visible;
		z-index: 1;
	}

	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-hover);
		color: var(--wp--custom--header--text-submenu-hover);
	}

	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:not(.admin-bar) #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)
		);
	}
	/*
		Is it still moving on scroll when the admin bar is present? Don't lose your mind.
		https://stackoverflow.com/a/52979619
	*/

		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;
		min-height: 100vh !important;
		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);
			}

}


/*	=================================
		Original source: general.css
		================================= */

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

	main .phone, main .phones, main .phoneonly, main .phonesonly, main .phone-only, main .phones-only, .is-style-phone-only { display: none !important; }

}

@media screen and (max-width: 782px) {
	
	#wpadminbar { position: fixed !important; overflow: hidden !important; }

	main .nophone, main .nophones, main .no-phone, main .no-phones, .is-style-no-phone { display: none !important; }
	
	.hyphenate-on-mobile {
		-webkit-hyphens: auto;
		hyphens: auto;
	}

	body .is-layout-constrained > .pagination_header {
		margin: 0 var(--wp--style--block-gap) !important;
	}

}
