.wp-block-navigation,
.wp-block-navigation__responsive-container,
.wp-block-navigation__responsive-container-content,
.wp-block-navigation__container {
	overflow: visible !important;
}

.wp-block-navigation {
	position: relative;
	z-index: 100;
}

/* Disable default WP mobile overlay/hamburger */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	display: none !important;
}

.wp-block-navigation__responsive-container {
	display: contents !important;
	position: static !important;
	inset: auto !important;
	width: auto !important;
	height: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	color: inherit !important;
}

.wp-block-navigation__responsive-container-content {
	display: contents !important;
	position: static !important;
	padding: 0 !important;
	margin: 0 !important;
}

.wp-block-navigation__container {
	display: flex !important;
	align-items: center;
	position: relative;
}

/* Hide primary nav on mobile, because we clone it into the mega menu panel */
@media (max-width: 1024px) {
	.is-style-egm-primary-navigation {
		display: none !important;
	}
}

/* Mega toggle */
.egm-mega-menu-item {
	position: static !important;
}

.egm-mega-menu-item .wp-block-navigation__submenu-icon {
	display: none !important;
}

.egm-mega-menu-toggle {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: var(--contrast);
	color: #fff;
	font-size: var(--size-lg);
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
}

.egm-mega-menu-toggle:hover,
.egm-mega-menu-toggle:focus-visible {
	background: #000;
	color: #fff;
}

.egm-mega-menu-toggle__icon {
	display: block;
	transform: translateY(-1px);
}

.egm-mega-menu-item.is-open .egm-mega-menu-toggle__icon.icon-menu:before {
	content:'\ea11';
}

/* Panel */
.egm-mega-menu-panel {
	position: fixed;
	top: var(--egm-mega-menu-top, 120px);
	left: var(--egm-mega-menu-left, 1rem);
	z-index: 9999;
	/* width: var(--egm-mega-menu-width, min(963px, calc(100vw - 2rem))); */
	width: 963px;
	max-width: calc(100vw - 2rem);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity 160ms ease,
		visibility 160ms ease;
}

.egm-mega-menu-item.is-open > .egm-mega-menu-panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.egm-mega-menu-panel__inner {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-lg);
	padding: var(--space-lg);
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(3px);
}

/* Mobile cloned primary links */
.egm-mega-menu-mobile-links {
	display: none;
}

/* Columns */
.egm-mega-menu-column__title {
	display: flex;
	align-items: center;
	line-height: 46px;
	margin: 0 0 var(--space-sm);
	padding: 0 var(--space-md);
	background: #000;
	color: #fff;
	text-transform: lowercase;
	font-size: 17px;
	text-decoration: none;
	box-sizing: border-box;
}

.egm-mega-menu-column--2 .egm-mega-menu-column__title {
	background: var(--secondary);
}

.egm-mega-menu-column--3 .egm-mega-menu-column__title {
	background: var(--tertiary);
}

.egm-mega-menu-column--4 .egm-mega-menu-column__title {
	background: var(--quaternary);
}

.egm-mega-menu-column__title:hover,
.egm-mega-menu-column__title:focus-visible,
.egm-mega-menu-column__link:hover,
.egm-mega-menu-column__link:focus-visible {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.egm-mega-menu-column__title--mobile {
	display: none;
}

.egm-mega-menu-column__list {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

.egm-mega-menu-column__item {
	margin: 0;
	padding: 0;
}

.egm-mega-menu-column__link {
	display: inline-flex;
	color: var(--contrast);
	line-height: 38px;
    font-size: 17px;
	letter-spacing: 0;
	text-decoration: none;
}

/* Mobile */
@media (max-width: 1024px) {
	.egm-mega-menu-item {
		display: flex !important;
		margin-left: auto !important;
		width: auto;
	}

	.egm-mega-menu-toggle {
		width: 37px;
		height: 37px;
	}

	.egm-mega-menu-panel {
		position: fixed !important;
		top: var(--egm-mega-menu-top, 120px);
		left: 1rem !important;
		width: calc(100vw - 2rem) !important;
		max-width: calc(100vw - 2rem);
		max-height: calc(100vh - var(--egm-mega-menu-top, 120px) - 1rem);
		overflow-y: auto;
		margin: 0;
		transform: none !important;
	}

	.egm-mega-menu-panel__inner {
		display: flex;
		flex-direction: column;
		gap: var(--space-md);
		width: 100%;
		padding: var(--space-md);
		background: rgba(255, 255, 255, 0.9);
		backdrop-filter: blur(3px);
		-webkit-backdrop-filter: blur(3px);
		box-sizing: border-box;
	}

	.egm-mega-menu-mobile-links {
		display: flex;
		flex-direction: column;
		gap: var(--space-md);
	}

	.egm-mega-menu-mobile-link {
		display: inline-flex;
		width: fit-content;
		padding: 0 !important;
		color: var(--contrast) !important;
		font-size: var(--size-sm);
		text-decoration: none !important;
	}

	.egm-mega-menu-column {
		width: 100%;
	}

	.egm-mega-menu-column__title--desktop {
		display: none !important;
	}

	.egm-mega-menu-column__title--mobile {
		appearance: none;
		display: flex !important;
		align-items: center;
		width: 100%;
		min-height: 42px;
		margin: 0;
		padding: var(--space-sm) var(--space-md);
		border: 0;
		border-radius: 0;
		color: #fff;
		text-decoration: none !important;
		font-size: var(--size-md);
		text-align: left;
		cursor: pointer;
	}

	.egm-mega-menu-column__title--mobile + .egm-mega-menu-column__list {
		padding-top: var(--space-sm);
	}

	.egm-mega-menu-column__chevron {
		display: inline-flex;
		margin-right: 8px;
		font-size: var(--size-sm);
		line-height: 1;
		transition: transform 160ms ease;
	}

	.egm-mega-menu-column.is-open .egm-mega-menu-column__chevron {
		transform: rotate(90deg);
	}

	.egm-mega-menu-column__list {
		display: none;
		flex-direction: column;
		margin: 0;
	}

	.egm-mega-menu-column.is-open .egm-mega-menu-column__list {
		display: flex;
	}
}

.egm-mega-menu-column__link.is-active {
	text-decoration-line: underline;
	text-decoration-color: #ccc;
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}
