/*
 * MarLec Desktop Navigation
 * Desktop begins at 1025px to match MarLec's Divi breakpoints.
 */

.ml-desktop-nav,
.ml-desktop-nav * {
	box-sizing: border-box;
}

.ml-desktop-nav {
	display: none;
	position: relative;
	z-index: 1000;
	width: 100%;
	min-height: 70px;
	margin: 0;
	background: transparent;
	font-family: var(--ml-font, Rajdhani, sans-serif);
	overflow: visible;
}

/* Divi containers occasionally clip positioned submenus. JS adds this only
 * to the shortcode's containing header elements. */
.ml-desktop-nav-host {
	overflow: visible !important;
}

.ml-desktop-nav ul,
.ml-desktop-nav li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ml-desktop-nav li::before,
.ml-desktop-nav li::after {
	display: none;
	content: none;
}

.ml-desktop-nav .ml-desktop-nav__menu {
	display: flex;
	align-items: stretch;
	justify-content: center;
	gap: clamp(24px, 2.6vw, 34px);
	width: 100%;
	min-height: 70px;
	margin: 0;
	padding: 0 22px;
	background: transparent;
}

.ml-desktop-nav .ml-desktop-nav__menu > .menu-item {
	display: flex;
	position: relative;
	align-items: stretch;
	min-width: 0;
	background: transparent;
}

.ml-desktop-nav .ml-desktop-nav__menu > .menu-item-has-children {
	perspective: 900px;
}

.ml-desktop-nav .ml-desktop-nav__menu > .menu-item > a {
	display: flex;
	position: relative;
	align-items: center;
	min-height: 70px;
	padding: 1px 0 0;
	background: transparent;
	color: var(--ml-text, #545454);
	font-family: inherit;
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	transition: color 190ms ease;
}

html body .ml-desktop-nav[data-ml-desktop-nav] ul.ml-desktop-nav__menu > li.menu-item > a,
html body .ml-desktop-nav[data-ml-desktop-nav] ul.ml-desktop-nav__menu ul.sub-menu > li.menu-item > a {
	color: #545454 !important;
}

html body .ml-desktop-nav[data-ml-desktop-nav] ul.ml-desktop-nav__menu > li.menu-item:hover > a,
html body .ml-desktop-nav[data-ml-desktop-nav] ul.ml-desktop-nav__menu > li.menu-item.is-open > a,
html body .ml-desktop-nav[data-ml-desktop-nav] ul.ml-desktop-nav__menu > li.menu-item > a:focus-visible {
	color: #7a7a7a !important;
}

.ml-desktop-nav .ml-desktop-nav__menu > .menu-item > a::after {
	position: absolute;
	bottom: 18px;
	left: 50%;
	width: 34px;
	height: 3px;
	border-radius: 999px;
	background: var(--ml-primary, var(--ml-green, #86b882));
	content: "";
	opacity: 0;
	pointer-events: none;
	transform: translate3d(-50%, 2px, 0);
	transition: opacity 190ms ease, transform 190ms ease;
}

.ml-desktop-nav .ml-desktop-nav__menu > .current-menu-item > a::after,
.ml-desktop-nav .ml-desktop-nav__menu > .current-menu-ancestor > a::after,
.ml-desktop-nav .ml-desktop-nav__menu > .current_page_item > a::after,
.ml-desktop-nav .ml-desktop-nav__menu > .current_page_ancestor > a::after {
	opacity: 0.58;
	transform: translate3d(-50%, 0, 0);
}

.ml-desktop-nav a:focus-visible {
	border-radius: 3px;
	outline: 2px solid var(--ml-primary, var(--ml-green, #86b882));
	outline-offset: 3px;
}

.ml-desktop-nav .sub-menu {
	display: block;
	position: absolute;
	top: calc(100% - 6px);
	right: 0;
	left: auto;
	z-index: 1001;
	width: 260px;
	max-width: calc(100vw - 30px);
	margin: 0;
	padding: 7px 0;
	border: 0;
	border-top: 3px solid var(--ml-primary, var(--ml-green, #86b882));
	border-radius: 0 0 10px 10px;
	background: #fff;
	box-shadow: 0 13px 28px rgba(28, 37, 30, 0.16), 0 3px 8px rgba(28, 37, 30, 0.08);
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	backface-visibility: hidden;
	transform: translate3d(0, -8px, 0) rotateX(-10deg) scale(0.985);
	transform-origin: 100% 0;
	transform-style: preserve-3d;
	visibility: hidden;
	will-change: opacity, transform;
	transition:
		opacity 500ms cubic-bezier(0.4, 0, 0.2, 1),
		transform 560ms cubic-bezier(0.4, 0, 0.2, 1),
		visibility 0s linear 560ms;
}

.ml-desktop-nav .menu-item.is-open > .sub-menu,
.ml-desktop-nav:not(.is-ready) .menu-item-has-children:hover > .sub-menu,
.ml-desktop-nav:not(.is-ready) .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	pointer-events: auto;
	transform: translate3d(0, 0, 0) rotateX(0deg) scale(1);
	visibility: visible;
	transition:
		opacity 400ms cubic-bezier(0.2, 0.8, 0.2, 1),
		transform 460ms cubic-bezier(0.2, 0.8, 0.2, 1),
		visibility 0s linear 0s;
}

.ml-desktop-nav .sub-menu .menu-item {
	display: block;
	width: 100%;
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.ml-desktop-nav.is-ready .sub-menu > .menu-item {
	opacity: 0;
	transform: translate3d(-8px, 0, 0);
	transition:
		opacity 400ms ease,
		transform 480ms cubic-bezier(0.4, 0, 0.2, 1);
	will-change: opacity, transform;
}

.ml-desktop-nav.is-ready .menu-item.is-open > .sub-menu > .menu-item {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	transition-duration: 360ms, 440ms;
	transition-timing-function: ease, cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ml-desktop-nav.is-ready .menu-item.is-open > .sub-menu > .menu-item:nth-child(1) {
	transition-delay: 100ms;
}

.ml-desktop-nav.is-ready .menu-item.is-open > .sub-menu > .menu-item:nth-child(2) {
	transition-delay: 150ms;
}

.ml-desktop-nav.is-ready .menu-item.is-open > .sub-menu > .menu-item:nth-child(3) {
	transition-delay: 200ms;
}

.ml-desktop-nav.is-ready .menu-item.is-open > .sub-menu > .menu-item:nth-child(4) {
	transition-delay: 250ms;
}

.ml-desktop-nav.is-ready .menu-item.is-open > .sub-menu > .menu-item:nth-child(n + 5) {
	transition-delay: 300ms;
}

.ml-desktop-nav .sub-menu a {
	display: block;
	position: relative;
	width: 100%;
	padding: 11px 30px 10px;
	border: 0;
	background: transparent;
	color: var(--ml-text, #545454);
	font-family: inherit;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.25;
	text-align: left;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	transition: background-color 190ms ease, box-shadow 190ms ease, color 190ms ease;
}

html body .ml-desktop-nav[data-ml-desktop-nav] ul.ml-desktop-nav__menu ul.sub-menu > li.current-menu-item > a,
html body .ml-desktop-nav[data-ml-desktop-nav] ul.ml-desktop-nav__menu ul.sub-menu > li.current_page_item > a {
	background: transparent;
	box-shadow: none;
	color: #545454 !important;
}

.ml-desktop-nav .sub-menu .current-menu-item > a::before,
.ml-desktop-nav .sub-menu .current_page_item > a::before {
	display: block;
	position: absolute;
	top: 8px;
	bottom: 8px;
	left: 10px;
	width: 3px;
	border-radius: 999px;
	background: var(--ml-primary, var(--ml-green, #86b882));
	content: "";
	opacity: 0.72;
	pointer-events: none;
	transform: scaleY(1);
	transition: opacity 180ms ease, transform 180ms ease;
}

html body .ml-desktop-nav[data-ml-desktop-nav] ul.ml-desktop-nav__menu ul.sub-menu > li.menu-item > a:hover,
html body .ml-desktop-nav[data-ml-desktop-nav] ul.ml-desktop-nav__menu ul.sub-menu > li.menu-item > a:focus-visible {
	background: var(--ml-primary-light, var(--ml-light-green, #e7f1e6));
	box-shadow: inset 4px 0 0 var(--ml-primary, var(--ml-green, #86b882));
	color: var(--ml-primary-hover, var(--ml-green-hover, #689c64)) !important;
}

.ml-desktop-nav .sub-menu .current-menu-item > a:hover::before,
.ml-desktop-nav .sub-menu .current-menu-item > a:focus-visible::before,
.ml-desktop-nav .sub-menu .current_page_item > a:hover::before,
.ml-desktop-nav .sub-menu .current_page_item > a:focus-visible::before {
	opacity: 0;
	transform: scaleY(0.65);
}

/* Mobile overlay -------------------------------------------------------- */

.marlec-mobile-menu-trigger {
	cursor: pointer;
	touch-action: manipulation;
}

body.ml-mobile-menu-open {
	overflow: hidden;
}

.ml-mobile-menu {
	display: none;
}

@media (max-width: 1024px) {
	.ml-mobile-menu,
	.ml-mobile-menu * {
		box-sizing: border-box;
	}

	.ml-mobile-menu {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 2147483000;
		font-family: var(--ml-font, Rajdhani, sans-serif);
		opacity: 0;
		pointer-events: none;
		visibility: hidden;
		transition: opacity 520ms ease, visibility 0s linear 680ms;
	}

	.ml-mobile-menu.is-open {
		opacity: 1;
		pointer-events: auto;
		visibility: visible;
		transition: opacity 480ms ease, visibility 0s linear 0s;
	}

	.ml-mobile-menu__backdrop {
		position: absolute;
		inset: 0;
		background: rgba(20, 20, 20, 0.52);
		opacity: 0;
		transition: opacity 580ms ease;
	}

	.ml-mobile-menu.is-open .ml-mobile-menu__backdrop {
		opacity: 1;
	}

	.ml-mobile-menu__dialog {
		display: flex;
		position: absolute;
		inset: 10px 1%;
		flex-direction: column;
		margin: 0;
		border: 0;
		border-radius: 15px;
		background: #fff;
		box-shadow: 0 24px 70px rgba(0, 0, 0, 0.24);
		opacity: 0;
		overflow: hidden;
		clip-path: inset(0 0 88% 0 round 15px);
		transform: translate3d(0, -10px, 0) scale(0.985);
		transform-origin: 50% 0;
		transition:
			clip-path 680ms cubic-bezier(0.76, 0, 0.24, 1),
			opacity 380ms ease 140ms,
			transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
		will-change: clip-path, opacity, transform;
	}

	.ml-mobile-menu.is-open .ml-mobile-menu__dialog {
		clip-path: inset(0 0 0 0 round 15px);
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(1);
		transition:
			clip-path 720ms cubic-bezier(0.16, 1, 0.3, 1),
			opacity 360ms ease,
			transform 720ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.ml-mobile-menu__top {
		display: flex;
		position: relative;
		z-index: 2;
		align-items: center;
		justify-content: space-between;
		flex: 0 0 auto;
		min-height: 58px;
		padding: 7px clamp(18px, 4vw, 26px) 6px;
		border-radius: 15px 15px 0 0;
		background: #f1f1f1;
		box-shadow: 0 8px 17px rgba(38, 38, 38, 0.07), inset 0 -1px 0 #dedede;
	}

	.ml-mobile-menu__top::after {
		position: absolute;
		bottom: 0;
		left: 50%;
		width: 90px;
		height: 2px;
		border-radius: 999px;
		background: #a8cda5;
		background: color-mix(in srgb, var(--ml-primary, var(--ml-green, #86b882)) 70%, #fff 30%);
		content: "";
		pointer-events: none;
		transform: translateX(-50%);
	}

	.ml-mobile-menu__close,
	.ml-mobile-menu__action {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		width: 38px;
		height: 38px;
		margin: 0;
		padding: 2px;
		border: 0;
		border-radius: 50%;
		background: transparent !important;
		box-shadow: none !important;
		color: #454545 !important;
		line-height: 1;
		text-decoration: none;
		cursor: pointer;
		-webkit-appearance: none;
		appearance: none;
		filter: none !important;
		transform: none !important;
		transition: none;
	}

	.ml-mobile-menu__close:hover,
	.ml-mobile-menu__action:hover {
		background: transparent !important;
		box-shadow: none !important;
		color: #454545 !important;
		filter: none !important;
		transform: none !important;
	}

	.ml-mobile-menu__close:focus-visible,
	.ml-mobile-menu__action:focus-visible {
		background: transparent !important;
		box-shadow: none !important;
		color: #454545 !important;
		outline: 2px solid #888;
		outline-offset: 2px;
		transform: none !important;
	}

	.ml-mobile-menu__close svg {
		display: block;
		width: 28px;
		height: 28px;
		fill: none;
		stroke: currentColor !important;
		stroke-linecap: round;
		stroke-linejoin: round;
		filter: none !important;
		stroke-width: 1.25;
	}

	.ml-mobile-menu__close svg > * {
		fill: none !important;
		stroke: currentColor !important;
	}

	.ml-mobile-menu__close svg path {
		stroke-width: 1.6;
	}

	/* Favorites sits immediately left of Contact in the mobile/tablet utility row.
	 * Its markup comes from MarLec Favorites so the live guest/account count stays synced. */
	.ml-mobile-menu__favorites {
		position: relative;
		/* Match the same 38px utility-icon frame used by Contact and Account. */
		padding: 2px !important;
	}

	.ml-mobile-menu__favorites .mlf-heart {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
		color: #454545 !important;
	}

	.ml-mobile-menu__favorites .mlf-heart svg {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		max-height: none !important;
		fill: currentColor !important;
		stroke: none !important;
	}

	.ml-mobile-menu__favorites .mlf-header-count {
		top: auto !important;
		right: -3px;
		bottom: -2px;
		min-width: 17px;
		height: 17px;
		padding: 0 4px;
		border: 1px solid #f1f1f1;
		border-radius: 999px;
		font-size: 11px;
		line-height: 1;
	}

	body.ml-shop-theme-mens .ml-mobile-menu__favorites .mlf-header-count {
		background: var(--ml-blue, #597b99) !important;
	}


	.ml-mobile-menu__action .ml-mobile-menu__icon-image {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		max-height: none !important;
		margin: 0 !important;
		object-fit: contain;
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		pointer-events: none;
	}

	.ml-mobile-menu__actions {
		display: flex;
		align-items: center;
		gap: clamp(6px, 2vw, 12px);
	}

	.ml-mobile-menu__nav {
		flex: 1 1 auto;
		min-height: 0;
		padding: 14px clamp(54px, 10.5vw, 78px) 32px;
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}

	.ml-mobile-menu ul,
	.ml-mobile-menu li {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.ml-mobile-menu li::before,
	.ml-mobile-menu li::after {
		display: none;
		content: none;
	}

	.ml-mobile-menu__menu,
	.ml-mobile-menu .sub-menu {
		display: block;
		position: static;
		width: 100%;
		border: 0;
		background: transparent;
		box-shadow: none;
		opacity: 1;
		transform: none;
		visibility: visible;
	}

	.ml-mobile-menu__menu > .menu-item {
		position: relative;
		margin-bottom: 8px;
		opacity: 0;
		transform: translate3d(-16px, 7px, 0);
		transition: opacity 310ms ease, transform 420ms cubic-bezier(0.2, 0.8, 0.2, 1);
	}

	.ml-mobile-menu.is-open .ml-mobile-menu__menu > .menu-item {
		opacity: 1;
		transform: translate3d(0, 0, 0);
		transition-duration: 470ms, 620ms;
	}

	.ml-mobile-menu.is-open .ml-mobile-menu__menu > .menu-item:nth-child(1) {
		transition-delay: 230ms;
	}

	.ml-mobile-menu.is-open .ml-mobile-menu__menu > .menu-item:nth-child(2) {
		transition-delay: 285ms;
	}

	.ml-mobile-menu.is-open .ml-mobile-menu__menu > .menu-item:nth-child(3) {
		transition-delay: 340ms;
	}

	.ml-mobile-menu.is-open .ml-mobile-menu__menu > .menu-item:nth-child(4) {
		transition-delay: 395ms;
	}

	.ml-mobile-menu.is-open .ml-mobile-menu__menu > .menu-item:nth-child(5) {
		transition-delay: 450ms;
	}

	.ml-mobile-menu.is-open .ml-mobile-menu__menu > .menu-item:nth-child(n + 6) {
		transition-delay: 505ms;
	}

	.ml-mobile-menu a {
		-webkit-tap-highlight-color: transparent;
	}

	.ml-mobile-menu__menu a {
		display: block;
		position: relative;
		width: fit-content;
		max-width: 100%;
		padding: 5px 0 4px;
		background: transparent;
		color: var(--ml-text, #545454);
		font-family: inherit;
		font-size: clamp(22px, 4vw, 24px);
		font-weight: 400;
		line-height: 1.22;
		letter-spacing: 0.01em;
		text-decoration: none;
		text-transform: uppercase;
		transition: color 200ms ease, transform 200ms ease;
	}

	.ml-mobile-menu__menu > .menu-item > a:hover,
	.ml-mobile-menu__menu > .menu-item > a:focus-visible,
	.ml-mobile-menu .sub-menu a:hover,
	.ml-mobile-menu .sub-menu a:focus-visible {
		background: transparent;
		box-shadow: none;
		color: var(--ml-primary-hover, var(--ml-green-hover, #689c64));
		outline: 0;
		transform: translateX(3px);
	}

	.ml-mobile-menu__menu a:focus-visible {
		border-radius: 2px;
		box-shadow: 0 2px 0 var(--ml-primary, var(--ml-green, #86b882));
	}

	.ml-mobile-menu .sub-menu {
		padding: 2px 0 0 clamp(35px, 8vw, 54px);
	}

	.ml-mobile-menu .sub-menu .menu-item {
		position: relative;
	}

	.ml-mobile-menu .sub-menu a {
		padding-top: 5px;
		padding-bottom: 5px;
	}

	.ml-mobile-menu__socials {
		display: flex;
		position: relative;
		z-index: 2;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		min-height: 66px;
		padding: 12px 24px 10px;
		border-radius: 0 0 15px 15px;
		background: #f1f1f1;
		box-shadow: 0 -8px 17px rgba(38, 38, 38, 0.065), inset 0 1px 0 #dedede;
	}

	.ml-mobile-menu__socials::before {
		position: absolute;
		top: 0;
		left: 50%;
		width: 90px;
		height: 2px;
		border-radius: 999px;
		background: #a8cda5;
		background: color-mix(in srgb, var(--ml-primary, var(--ml-green, #86b882)) 70%, #fff 30%);
		content: "";
		pointer-events: none;
		transform: translateX(-50%);
	}

	.ml-mobile-menu__social-actions {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: clamp(24px, 8vw, 42px);
	}

	.ml-mobile-menu__social {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		width: 34px;
		height: 34px;
		margin: 0;
		padding: 3px;
		border: 0;
		border-radius: 0;
		background: transparent !important;
		box-shadow: none !important;
		color: #454545 !important;
		line-height: 1;
		text-decoration: none;
		-webkit-tap-highlight-color: transparent;
		filter: none !important;
		transform: none !important;
		transition: none;
	}

	.ml-mobile-menu__social:hover,
	.ml-mobile-menu__social:focus {
		background: transparent !important;
		box-shadow: none !important;
		color: #454545 !important;
		filter: none !important;
		transform: none !important;
	}

	.ml-mobile-menu__social:focus-visible {
		outline: 2px solid #888;
		outline-offset: 2px;
	}

	.ml-mobile-menu__social .ml-mobile-menu__icon-image {
		display: block !important;
		width: 28px !important;
		height: 28px !important;
		max-width: none !important;
		max-height: none !important;
		margin: 0 !important;
		object-fit: contain;
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		pointer-events: none;
	}

	.ml-mobile-menu li.current-menu-item:not(.current-menu-parent):not(.current-menu-ancestor):not(.current_page_parent):not(.current_page_ancestor) > a::after,
	.ml-mobile-menu li.current_page_item:not(.current-menu-parent):not(.current-menu-ancestor):not(.current_page_parent):not(.current_page_ancestor) > a::after {
		position: absolute;
		bottom: 0;
		left: 50%;
		width: 26px;
		height: 2px;
		border-radius: 999px;
		background: #a8cda5;
		background: color-mix(in srgb, var(--ml-primary, var(--ml-green, #86b882)) 70%, #fff 30%);
		content: "";
		opacity: 0.9;
		pointer-events: none;
		transform: translateX(-50%);
	}

	.ml-mobile-menu .sub-menu .current-menu-item > a::before,
	.ml-mobile-menu .sub-menu .current_page_item > a::before {
		display: none;
		content: none;
	}
}

@media (max-width: 767px) {
	.ml-mobile-menu__menu a,
	.ml-mobile-menu .sub-menu a {
		font-size: 22px;
	}
}

@media (min-width: 1025px) {
	.ml-desktop-nav {
		display: flex;
		align-items: center;
		justify-content: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ml-desktop-nav *,
	.ml-desktop-nav *::before,
	.ml-desktop-nav *::after,
	.ml-mobile-menu,
	.ml-mobile-menu *,
	.ml-mobile-menu *::before,
	.ml-mobile-menu *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0ms !important;
	}
}
