/* Header - Sub-menu */
#ns_header {
	overflow: visible;
}

#ns_header ul.menu > li,
#ns_header ul.menu > li > a {
	position: relative;
}

#ns_header #ns_header-main-menu ul.menu > li:after {
	content: "";
	position: absolute;
	z-index: 2;
	bottom: -16px;
	left: 0px;
	right: 0px;
	height: 3px;
	background: var(--hipnos-color-secondary-1);

	opacity: 0;

	-webkit-transition: opacity var(--hipnos-transition-ease);
	-o-transition: opacity var(--hipnos-transition-ease);
	-moz-transition: opacity var(--hipnos-transition-ease);
	transition: opacity var(--hipnos-transition-ease);
}

#ns_header #ns_header-main-menu ul.menu > li.current-menu-item:after {
	opacity: 1;
}

#ns_header #ns_header-main-menu ul.menu > li:first-child:after {
	left: -16px;
}

#ns_header #ns_header-main-menu ul.menu > li:last-child:after {
	right: -16px;
}

@media (hover: hover) and (pointer: fine) {
	#ns_header #ns_header-main-menu ul.menu > li:hover:after {
		opacity: 1;
	}
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper {
	position: absolute;
	padding: 40px 32px 24px 32px;

	top: 100%;
	left: -16px;
	min-width: 180px;

	display: flex;
	flex-direction: row;

	border-radius: 0px 0px var(--hipnos-border-radius) var(--hipnos-border-radius);

	overflow: hidden;

	pointer-events: none;
	visibility: hidden;
	opacity: 0;

	-webkit-transition: opacity var(--hipnos-transition-ease);
	-o-transition: opacity var(--hipnos-transition-ease);
	-moz-transition: opacity var(--hipnos-transition-ease);
	transition: opacity var(--hipnos-transition-ease);
}

#ns_header ul.menu > li:first-child > .ns_sub-menu-wrapper {
	left: -32px;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > ul.sub-menu {
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-align: left;
	list-style: none;
}

#ns_header ul.menu > li:hover > .ns_sub-menu-wrapper {
	opacity: 1;
	visibility: visible;
	pointer-events: all;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper:after {
	content: "";
	position: absolute;
	z-index: -1;
	top: 16px;
	left: 0;
	right: 0;
	bottom: 0;

	border: 2px solid var(--hipnos-color-secondary-3);
	border-radius: 0px 0px var(--hipnos-border-radius) var(--hipnos-border-radius);

	background: var(--hipnos-color-neutral-5);
	background: rgba(255, 255, 255, 0.8);
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	backdrop-filter: saturate(180%) blur(20px);
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > ul.sub-menu > li > a {
	position: relative;

	display: flex;
	align-items: center;
	gap: 4px;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > ul.sub-menu > li > a.ns_menu-item-with-image {
	padding-left: 68px;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > ul.sub-menu > li > a.ns_menu-item-with-image > img,
#ns_header ul.menu > li > .ns_sub-menu-wrapper > ul.sub-menu > li > a.ns_menu-item-with-image > picture {
	position: absolute;
	width: 60px;
	height: auto;

	top: 50%;
	left: 0px;
	transform: translateY(-50%);
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > ul.sub-menu > li > a > .ns_product-sale {
	display: flex;
	margin-top: -2px;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > ul.sub-menu > li > a > .ns_product-sale > .ns_tag {
	margin: 0px;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > ul.sub-menu > li.ns_sub-menu-separator:before {
	content: '';
	position: relative;
	display: block;
	width: 100%;
	height: 2px;
	background: var(--hipnos-color-secondary-3);
	margin-top: 12px;
	margin-bottom: 12px;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > .ns_sub-menu-link-image {
	display: flex;
	align-items: flex-start;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > .ns_sub-menu-link-image:before {
	content: '';
	position: relative;
	display: block;
	width: 2px;
	height: 100%;
	background: var(--hipnos-color-secondary-3);
	margin-left: 24px;
	margin-right: 24px;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > .ns_sub-menu-link-image a {
	display: block;
}

#ns_header ul.menu > li > .ns_sub-menu-wrapper > .ns_sub-menu-link-image img {
	width: 240px;
	border-radius: var(--hipnos-border-radius);
}

#ns_header ul.menu li.ns_menu-mobile {
	display: none !important;
}

@media only screen and (min-width: 1023px) {
	#ns_header ul.menu li.ns_menu-desktop {
		display: block !important;
	}
}

@media only screen and (max-width: 767px) {
	.ns_sidebar-menu-list-inner .ns_menu-vertical ul.menu li.ns_menu-desktop {
		display: none !important;
	}

	.ns_sidebar-menu-list-inner .ns_menu-vertical ul.menu li.ns_menu-mobile {
		display: block !important;
	}

	.ns_sidebar-menu-list-inner .ns_menu-vertical ul.menu li.ns_menu-mobile.ns_menu-separator {
		padding-top: 24px !important;
		border-top: 2px solid var(--hipnos-color-neutral-4) !important;
	}
}