/*
 * Responsive icon mega menu. Menu content remains controlled by Appearance > Menus.
 */

.primary-menu > li > a,
.primary-navigation > ul > li > a,
.primary-menu .sub-menu a {
	gap: 0.45rem;
}

.msf-menu-link__icon {
	display: inline-grid;
	width: 25px;
	height: 25px;
	flex: 0 0 auto;
	place-items: center;
	border-radius: 8px;
	background: rgba(137, 184, 43, 0.11);
	color: var(--msf-green-dark);
}

.msf-menu-link__icon .msf-menu-icon {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.msf-menu-link__copy {
	display: grid;
	min-width: 0;
	gap: 0.18rem;
}

.msf-menu-link__label {
	min-width: 0;
}

.msf-menu-link__description {
	display: block;
	color: var(--msf-muted);
	font-size: 0.67rem;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
}

.msf-menu-link__chevron {
	margin-left: 0.15rem;
	font-size: 0.9rem;
	line-height: 1;
}

@media (min-width: 1025px) {
	.primary-navigation {
		position: static;
		align-self: stretch;
	}

	.primary-menu,
	.primary-navigation > ul {
		gap: clamp(0.18rem, 0.75vw, 0.7rem);
	}

	.primary-menu > li > a,
	.primary-navigation > ul > li > a {
		display: grid;
		height: 78px;
		grid-template-columns: 30px minmax(0, auto) auto;
		gap: 0.45rem;
		align-items: center;
		padding: 0 0.42rem;
		border-radius: 0;
	}

	.primary-menu > li > a .msf-menu-link__icon,
	.primary-navigation > ul > li > a .msf-menu-link__icon {
		width: 30px;
		height: 30px;
		border: 1px solid rgba(137, 184, 43, 0.14);
		border-radius: 9px;
		background: var(--msf-green-soft);
		color: var(--msf-green-dark);
		transition: transform var(--msf-transition), background-color var(--msf-transition), color var(--msf-transition), box-shadow var(--msf-transition);
	}

	.primary-menu > li:nth-child(3n + 2) > a .msf-menu-link__icon {
		background: #fff0d6;
		color: var(--msf-gold-dark);
	}

	.primary-menu > li:nth-child(3n) > a .msf-menu-link__icon {
		background: #e5eef3;
		color: var(--msf-navy-soft);
	}

	.primary-menu > li > a .msf-menu-link__icon .msf-menu-icon {
		width: 15px;
		height: 15px;
	}

	.primary-menu > li > a:hover .msf-menu-link__icon,
	.primary-menu > li > a:focus-visible .msf-menu-link__icon,
	.primary-menu > li.current-menu-item > a .msf-menu-link__icon,
	.primary-menu > li.current-menu-ancestor > a .msf-menu-link__icon {
		background: var(--msf-green);
		color: var(--msf-navy);
		box-shadow: 0 8px 18px rgba(137, 184, 43, 0.22);
		transform: translateY(-2px);
	}

	.primary-menu > li > a .msf-menu-link__label {
		white-space: nowrap;
	}

	.primary-menu > li > a .msf-menu-link__chevron {
		color: var(--msf-gold-dark);
		font-size: 0.85rem;
		transition: transform var(--msf-transition);
	}

	.primary-menu > li:hover > a .msf-menu-link__chevron,
	.primary-menu > li:focus-within > a .msf-menu-link__chevron {
		transform: rotate(180deg);
	}

	.primary-menu > li.menu-item-has-children > .sub-menu {
		display: grid;
		width: min(920px, calc(100vw - 56px));
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.7rem;
		padding: 1rem;
		border: 1px solid rgba(14, 35, 56, 0.08);
		border-radius: 22px;
		background:
			radial-gradient(circle at 95% 5%, rgba(137, 184, 43, 0.13), transparent 28%),
			linear-gradient(180deg, #ffffff 0%, #f7fafb 100%);
		box-shadow: 0 28px 70px rgba(14, 35, 56, 0.18);
	}

	.primary-menu > li.menu-item-has-children > .sub-menu::before {
		position: absolute;
		top: -8px;
		left: 30px;
		width: 16px;
		height: 16px;
		border-top: 1px solid rgba(14, 35, 56, 0.08);
		border-left: 1px solid rgba(14, 35, 56, 0.08);
		background: #ffffff;
		content: "";
		transform: rotate(45deg);
	}

	.primary-menu > li.menu-item-has-children:last-child > .sub-menu,
	.primary-menu > li:nth-last-child(2).menu-item-has-children > .sub-menu {
		right: 0;
		left: auto;
	}

	.primary-menu > li.menu-item-has-children:last-child > .sub-menu::before,
	.primary-menu > li:nth-last-child(2).menu-item-has-children > .sub-menu::before {
		right: 30px;
		left: auto;
	}

	.primary-menu .sub-menu li {
		min-width: 0;
	}

	.primary-menu .sub-menu a {
		display: grid;
		min-height: 78px;
		grid-template-columns: 46px minmax(0, 1fr) auto;
		gap: 0.75rem;
		align-items: center;
		padding: 0.8rem;
		border: 1px solid rgba(14, 35, 56, 0.07);
		border-radius: 15px;
		background: rgba(255, 255, 255, 0.9);
		color: var(--msf-navy);
		box-shadow: 0 8px 22px rgba(14, 35, 56, 0.045);
		transition: transform var(--msf-transition), border-color var(--msf-transition), background-color var(--msf-transition), box-shadow var(--msf-transition);
	}

	.primary-menu .sub-menu a:hover,
	.primary-menu .sub-menu a:focus-visible {
		border-color: rgba(137, 184, 43, 0.34);
		background: linear-gradient(135deg, #f8fbf2, #ffffff);
		box-shadow: 0 14px 30px rgba(14, 35, 56, 0.09);
		transform: translateY(-2px);
	}

	.primary-menu .sub-menu .msf-menu-link__icon {
		width: 46px;
		height: 46px;
		border-radius: 13px;
		background: var(--msf-green-soft);
		color: var(--msf-green-dark);
	}

	.primary-menu .sub-menu li:nth-child(3n + 2) .msf-menu-link__icon {
		background: #fff0d6;
		color: var(--msf-gold-dark);
	}

	.primary-menu .sub-menu li:nth-child(3n) .msf-menu-link__icon {
		background: #e5eef3;
		color: var(--msf-navy-soft);
	}

	.primary-menu .sub-menu .msf-menu-link__icon .msf-menu-icon {
		width: 21px;
		height: 21px;
	}

	.primary-menu .sub-menu .msf-menu-link__label {
		font-size: 0.82rem;
		font-weight: 700;
		line-height: 1.25;
		text-transform: none;
	}

	.primary-menu .sub-menu .msf-menu-link__description {
		margin-top: 0.1rem;
		color: var(--msf-muted);
		font-size: 0.65rem;
		font-weight: 500;
		line-height: 1.35;
	}

	.primary-menu .sub-menu .msf-menu-link__chevron {
		display: none;
	}
}

@media (max-width: 1024px) {
	.site-header {
		z-index: 4100;
	}

	.site-navigation-bar {
		position: relative;
		z-index: 4102;
	}

	.site-menu-toggle {
		position: relative;
		z-index: 4104;
		width: 50px;
		height: 50px;
		border-width: 1px;
		box-shadow: 0 8px 22px rgba(14, 35, 56, 0.08);
	}

	.site-menu-toggle[aria-expanded="true"] {
		border-color: var(--msf-green);
		background: var(--msf-navy);
		color: var(--msf-white);
	}

	.primary-navigation {
		top: var(--msf-mobile-menu-top, 0px) !important;
		z-index: 4101;
		height: calc(100dvh - var(--msf-mobile-menu-top, 0px));
		max-height: none;
		padding: 1rem 14px max(2rem, env(safe-area-inset-bottom));
		background:
			radial-gradient(circle at 92% 8%, rgba(137, 184, 43, 0.18), transparent 26%),
			linear-gradient(180deg, #f7fbfc 0%, #eef5f7 100%);
		overscroll-behavior: contain;
	}

	.primary-navigation::before {
		display: block;
		max-width: 900px;
		margin: 0 auto 0.9rem;
		color: var(--msf-green-dark);
		content: "EXPLORE G-MSF";
		font-size: 0.67rem;
		font-weight: 700;
		letter-spacing: 0.16em;
	}

	.primary-menu,
	.primary-navigation > ul {
		display: grid !important;
		width: 100%;
		max-width: 900px;
		height: auto !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.72rem;
		align-items: stretch;
		margin: 0 auto;
	}

	.primary-menu > li,
	.primary-navigation > ul > li {
		min-width: 0;
		border: 0 !important;
		border-radius: 17px;
		background: var(--msf-white);
		box-shadow: 0 8px 26px rgba(14, 35, 56, 0.075);
		overflow: hidden;
	}

	.primary-menu > li > a,
	.primary-navigation > ul > li > a {
		display: grid !important;
		min-height: 86px;
		height: auto !important;
		grid-template-columns: 44px minmax(0, 1fr) auto;
		gap: 0.72rem;
		align-items: center;
		padding: 0.85rem !important;
		color: var(--msf-navy);
		font-size: 0.83rem !important;
		line-height: 1.25;
		letter-spacing: 0.025em;
		text-transform: none;
	}

	.primary-menu > li > a:hover,
	.primary-menu > li > a:focus-visible,
	.primary-menu > li.current-menu-item > a,
	.primary-menu > li.current-menu-ancestor > a {
		background: linear-gradient(135deg, #f6faef, #ffffff);
		color: var(--msf-navy);
	}

	.primary-menu > li > a .msf-menu-link__icon,
	.primary-navigation > ul > li > a .msf-menu-link__icon {
		width: 44px;
		height: 44px;
		border-radius: 13px;
		background: var(--msf-green-soft);
		color: var(--msf-green-dark);
	}

	.primary-menu > li:nth-child(3n + 2) > a .msf-menu-link__icon {
		background: #fff0d6;
		color: var(--msf-gold-dark);
	}

	.primary-menu > li:nth-child(3n) > a .msf-menu-link__icon {
		background: #e5eef3;
		color: var(--msf-navy-soft);
	}

	.primary-menu > li > a .msf-menu-link__icon .msf-menu-icon {
		width: 22px;
		height: 22px;
	}

	.msf-menu-link__label {
		font-weight: 700;
	}

	.msf-menu-link__description {
		font-size: 0.63rem;
	}

	.msf-menu-link__chevron {
		width: 24px;
		color: var(--msf-gold-dark);
		font-size: 1rem;
		text-align: center;
		transition: transform var(--msf-transition);
	}

	.menu-item-has-children.is-submenu-open > a .msf-menu-link__chevron {
		transform: rotate(180deg);
	}

	.primary-menu .sub-menu {
		display: grid;
		position: static !important;
		width: auto;
		min-width: 0 !important;
		max-height: 0;
		gap: 0.35rem;
		padding: 0 0.65rem !important;
		margin: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		overflow: hidden;
		transform: none !important;
		transition: max-height 260ms ease, padding 260ms ease !important;
	}

	.primary-menu .menu-item-has-children.is-submenu-open > .sub-menu {
		max-height: 700px;
		padding: 0 0.65rem 0.75rem !important;
	}

	.primary-menu .sub-menu li {
		border: 0;
	}

	.primary-menu .sub-menu a {
		display: grid;
		min-height: 50px;
		grid-template-columns: 32px minmax(0, 1fr);
		gap: 0.6rem;
		align-items: center;
		padding: 0.55rem 0.65rem !important;
		border-radius: 10px;
		background: #f5f8f9;
		color: var(--msf-navy);
		font-size: 0.75rem;
	}

	.primary-menu .sub-menu .msf-menu-link__icon {
		width: 32px;
		height: 32px;
		border-radius: 9px;
	}

	.primary-menu .sub-menu .msf-menu-link__icon .msf-menu-icon {
		width: 16px;
		height: 16px;
	}

	.primary-menu .sub-menu .msf-menu-link__chevron {
		display: none;
	}
}

@media (max-width: 560px) {
	.primary-navigation {
		padding-inline: 10px;
	}

	.primary-navigation::before {
		margin-left: 4px;
	}

	.primary-menu,
	.primary-navigation > ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.55rem;
	}

	.primary-menu > li > a,
	.primary-navigation > ul > li > a {
		min-height: 78px;
		grid-template-columns: 38px minmax(0, 1fr) auto;
		gap: 0.58rem;
		padding: 0.7rem !important;
		font-size: 0.76rem !important;
	}

	.primary-menu > li > a .msf-menu-link__icon,
	.primary-navigation > ul > li > a .msf-menu-link__icon {
		width: 38px;
		height: 38px;
		border-radius: 11px;
	}

	.primary-menu > li > a .msf-menu-link__icon .msf-menu-icon {
		width: 19px;
		height: 19px;
	}
}

@media (max-width: 390px) {
	.primary-menu,
	.primary-navigation > ul {
		grid-template-columns: 1fr;
	}

	.primary-menu > li > a,
	.primary-navigation > ul > li > a {
		min-height: 68px;
	}
}
