/* --------------------------------------------------------------------------
   Optional mega menu
   -------------------------------------------------------------------------- */
.primary-menu--mega > .jgf-mega-menu-item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
}

.primary-menu--mega > .jgf-mega-menu-item > a {
	grid-column: 1;
}

.jgf-mega-menu__toggle {
	grid-column: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	min-inline-size: 2.75rem;
	min-block-size: 2.75rem;
	padding: .5rem;
	border: 1px solid transparent;
	border-radius: var(--jgf-header-nav-radius, 0);
	background: transparent;
	color: var(--jgf-header-nav-link, var(--jgf-color-header-text));
	cursor: pointer;
}

.jgf-mega-menu__toggle:hover {
	background: var(--jgf-header-nav-hover-bg, transparent);
	color: var(--jgf-header-nav-hover-text, #fff);
}

.jgf-mega-menu__toggle:focus-visible {
	background: var(--jgf-header-nav-focus-bg, transparent);
	color: var(--jgf-header-nav-focus-text, #fff);
	outline: 3px solid var(--jgf-header-nav-focus-ring, var(--jgf-color-focus));
	outline-offset: 2px;
}

.jgf-mega-menu__chevron {
	display: block;
	inline-size: .65rem;
	block-size: .65rem;
	border-inline-end: 2px solid currentColor;
	border-block-end: 2px solid currentColor;
	transform: translateY(-.15rem) rotate(45deg);
	transition: transform 160ms ease;
}

.jgf-mega-menu__toggle[aria-expanded="true"] .jgf-mega-menu__chevron {
	transform: translateY(.15rem) rotate(225deg);
}

.jgf-mega-menu__panel {
	grid-column: 1 / -1;
	display: none;
	inline-size: 100%;
	max-inline-size: 100%;
	padding: 1rem;
	border: 1px solid color-mix(in srgb, var(--jgf-color-text) 18%, transparent);
	background: var(--jgf-color-surface, #fff);
	color: var(--jgf-color-text, #1f2933);
	box-shadow: 0 .75rem 1.75rem rgba(0, 0, 0, .2);
}

.jgf-mega-menu-item.is-mega-open > .jgf-mega-menu__panel,
.no-js .jgf-mega-menu-item:hover > .jgf-mega-menu__panel,
.no-js .jgf-mega-menu-item:focus-within > .jgf-mega-menu__panel {
	display: block;
}

.jgf-mega-menu__panel-inner {
	inline-size: min(100%, 90rem);
	margin-inline: auto;
}

.jgf-mega-menu__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
}

.jgf-mega-menu__column {
	min-inline-size: 0;
}

.jgf-mega-menu__block + .jgf-mega-menu__block {
	margin-block-start: 1rem;
}

.jgf-mega-menu__heading {
	margin: 0 0 .55rem;
	color: var(--jgf-color-heading, var(--jgf-color-h2));
	font-family: var(--wp--preset--font-family--qf-primary-heading, Mundial, Arial, sans-serif);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.3;
}

.primary-menu--mega .jgf-mega-menu__panel a {
	padding: .45rem .5rem;
	border-radius: .35rem;
	background: transparent;
	color: var(--jgf-color-link, #2b54a1);
	font-family: var(--wp--preset--font-family--qf-secondary-heading, Mulish, Arial, sans-serif);
	font-size: .95rem;
	font-weight: 650;
	line-height: 1.35;
	text-transform: none;
	white-space: normal;
}

.primary-menu--mega .jgf-mega-menu__panel a:hover {
	background: color-mix(in srgb, var(--jgf-color-link) 10%, transparent);
	color: var(--jgf-color-link-hover, #256d3d);
}

.primary-menu--mega .jgf-mega-menu__panel a:focus-visible {
	background: color-mix(in srgb, var(--jgf-color-link) 10%, transparent);
	color: var(--jgf-color-link-hover, #256d3d);
	outline: 3px solid var(--jgf-color-focus);
	outline-offset: 2px;
}

.jgf-mega-menu__list,
.jgf-mega-menu__sublist,
.primary-menu--mega .jgf-mega-menu__panel .sub-menu {
	position: static;
	display: grid;
	min-inline-size: 0;
	max-inline-size: none;
	gap: .15rem;
	margin: 0;
	padding: 0;
	background: transparent;
	box-shadow: none;
	list-style: none;
}

.jgf-mega-menu__sublist,
.primary-menu--mega .jgf-mega-menu__panel .sub-menu {
	margin-block-start: .15rem;
	padding-inline-start: .85rem;
}

.jgf-mega-menu__feature-link {
	display: grid !important;
	gap: .2rem;
}

.jgf-mega-menu__feature-link-label {
	font-weight: 800;
}

.jgf-mega-menu__feature-link-description {
	color: var(--jgf-color-muted);
	font-family: var(--wp--preset--font-family--qf-body, "Times New Roman", Times, serif);
	font-size: .9rem;
	font-weight: 400;
}

.jgf-mega-menu__image-block,
.jgf-mega-menu__image-block a {
	display: block;
}

.jgf-mega-menu__image {
	display: block;
	block-size: auto;
	max-inline-size: 100%;
	border-radius: .65rem;
	object-fit: cover;
}

.jgf-mega-menu__image--small { inline-size: min(100%, 10rem); }
.jgf-mega-menu__image--medium { inline-size: min(100%, 16rem); }
.jgf-mega-menu__image--large { inline-size: min(100%, 24rem); }
.jgf-mega-menu__image--full { inline-size: 100%; }

@media (min-width: 64rem) {
	.site-header__nav-inner,
	.site-header__integrated-navigation {
		position: relative;
	}

	.primary-menu--mega > .jgf-mega-menu-item {
		position: static;
		display: flex;
		align-items: stretch;
	}

	.primary-menu--mega > .jgf-mega-menu-item > a {
		display: inline-flex;
		align-items: center;
	}

	.jgf-mega-menu__toggle {
		min-inline-size: 2rem;
		min-block-size: 0;
		padding: .35rem .45rem;
	}

	.jgf-mega-menu__panel {
		position: absolute;
		top: 100%;
		inset-inline-start: 0;
		z-index: var(--jgf-layer-dropdown);
		max-block-size: min(72vh, 48rem);
		overflow: auto;
		border-radius: 0 0 .75rem .75rem;
	}

	.jgf-mega-menu__panel--viewport {
		inset-inline-start: 50%;
		inline-size: 100vw;
		max-inline-size: 100vw;
		transform: translateX(-50%);
	}

	.jgf-mega-menu__grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.jgf-mega-menu__column--span-3 { grid-column: span 3; }
	.jgf-mega-menu__column--span-4 { grid-column: span 4; }
	.jgf-mega-menu__column--span-6 { grid-column: span 6; }
	.jgf-mega-menu__column--span-8 { grid-column: span 8; }
	.jgf-mega-menu__column--span-9 { grid-column: span 9; }
	.jgf-mega-menu__column--span-12 { grid-column: span 12; }
}

/* Enlarged text uses the compact in-flow navigation even at desktop widths. */
@media (min-width: 64rem) {
	html[data-jgf-text-size="larger"] .primary-menu--mega > .jgf-mega-menu-item,
	html[data-jgf-text-size="extra-large"] .primary-menu--mega > .jgf-mega-menu-item,
	html[data-jgf-text-size="maximum"] .primary-menu--mega > .jgf-mega-menu-item,
	html[data-jgf-text-spacing="increased"] .primary-menu--mega > .jgf-mega-menu-item {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
	}

	html[data-jgf-text-size="larger"] .jgf-mega-menu__panel,
	html[data-jgf-text-size="extra-large"] .jgf-mega-menu__panel,
	html[data-jgf-text-size="maximum"] .jgf-mega-menu__panel,
	html[data-jgf-text-spacing="increased"] .jgf-mega-menu__panel {
		position: static;
		inline-size: 100%;
		max-inline-size: 100%;
		max-block-size: none;
		transform: none;
	}

	html[data-jgf-text-size="larger"] .jgf-mega-menu__grid,
	html[data-jgf-text-size="extra-large"] .jgf-mega-menu__grid,
	html[data-jgf-text-size="maximum"] .jgf-mega-menu__grid,
	html[data-jgf-text-spacing="increased"] .jgf-mega-menu__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	html[data-jgf-text-size="larger"] .jgf-mega-menu__column,
	html[data-jgf-text-size="extra-large"] .jgf-mega-menu__column,
	html[data-jgf-text-size="maximum"] .jgf-mega-menu__column,
	html[data-jgf-text-spacing="increased"] .jgf-mega-menu__column {
		grid-column: 1 / -1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.jgf-mega-menu__chevron {
		transition: none;
	}
}
