/* --------------------------------------------------------------------------
   Desktop – Shop dropdown
   -------------------------------------------------------------------------- */

.funngiz-nav-menu-overlay {
	position: fixed;
	inset: 0;
	z-index: 9998;
	background: rgba(16, 33, 50, 0.55);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s ease, visibility 0.25s ease;
}

.funngiz-nav-menu-overlay.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* Ensure submenu can appear above overlay */
body.funngiz-submenu-active .elementor-location-header {
	position: relative;
	z-index: 9999;
}

.elementor-widget-nav-menu .elementor-nav-menu--main {
	position: relative;
	z-index: 999;
}

.elementor-nav-menu .sub-arrow {
	font-size: 14px;
}

/* Active submenu: highlight parent, dim siblings */
body.funngiz-submenu-active .elementor-nav-menu--main > .elementor-nav-menu > .menu-item:not(.funngiz-submenu-open) > a {
	color: rgba(242, 226, 215, 0.35) !important;
	opacity: 0.45;
	pointer-events: none;
	transition: color 0.2s ease, opacity 0.2s ease;
}

body.funngiz-submenu-active .elementor-nav-menu--main > .elementor-nav-menu > .menu-item.funngiz-submenu-open {
	position: relative;
	z-index: 10001;
}

body.funngiz-submenu-active .elementor-nav-menu--main > .elementor-nav-menu > .menu-item.funngiz-submenu-open > a {
	color: #dba872 !important;
	opacity: 1;
}

.elementor-widget-nav-menu .elementor-nav-menu--main .menu-item-has-children {
	position: relative;
}

/* Force submenu visibility – Elementor sometimes hides nested dropdowns */
.elementor-widget-nav-menu .elementor-nav-menu--main .menu-item-has-children > .sub-menu,
.elementor-widget-nav-menu .elementor-nav-menu--main .menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown {
	display: block !important;
	position: absolute;
	top: calc(100% + 12px);
	inset-inline-end: auto;
	inset-inline-start: auto;
	min-width: 280px;
	margin: 0;
	padding: 20px 24px;
	list-style: none;
	background: #102132;
	border: 1px solid rgba(219, 168, 114, 0.35);
	border-radius: 12px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(8px);
	transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
	z-index: 10002;
}

/* Click mode: never open submenu on hover alone */
.elementor-widget-nav-menu .elementor-nav-menu--main .funngiz-submenu-trigger-click .menu-item-has-children:hover:not(.funngiz-submenu-open) > .sub-menu,
.elementor-widget-nav-menu .elementor-nav-menu--main [data-submenu-trigger="click"] .menu-item-has-children:hover:not(.funngiz-submenu-open) > .sub-menu {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transform: translateY(8px) !important;
}

/* Hover mode */
.elementor-widget-nav-menu .elementor-nav-menu--main .funngiz-submenu-trigger-hover .menu-item-has-children:hover > .sub-menu,
.elementor-widget-nav-menu .elementor-nav-menu--main [data-submenu-trigger="hover"] .menu-item-has-children:hover > .sub-menu,
/* Open state – hover + click (class is on li, trigger class is on ul) */
.elementor-widget-nav-menu .elementor-nav-menu--main .menu-item-has-children.funngiz-submenu-open > .sub-menu,
.elementor-widget-nav-menu .elementor-nav-menu--main .menu-item-has-children.funngiz-submenu-open > .sub-menu.elementor-nav-menu--dropdown,
.elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu.funngiz-submenu-panel--open {
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transform: translateY(0) !important;
	display: block !important;
	max-height: none !important;
	height: auto !important;
	overflow: visible !important;
}

.elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu .menu-item {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
    border: none !important;
}

.elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu .menu-item + .menu-item:not(.funngiz-menu-item--heading) {
	margin-top: 4px;
}

/* Section heading */
.elementor-widget-nav-menu .sub-menu .funngiz-menu-item--heading {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid rgba(242, 226, 215, 0.12);
}

.elementor-widget-nav-menu .sub-menu .funngiz-menu-item--heading:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.elementor-widget-nav-menu .sub-menu .funngiz-menu-item__heading {
	display: block;
	color: rgba(242, 226, 215, 0.5);
	text-align: right;
	font-family: "Rubik", sans-serif;
	font-size: 16px;
	font-style: normal;
	font-weight: 600;
	line-height: 20px;
	padding: 4px 0 8px;
	cursor: default;
	pointer-events: none;
}

/* Regular submenu links */
.elementor-widget-nav-menu .sub-menu .menu-item:not(.funngiz-menu-item--heading) > a {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	padding: 10px 0;
	color: #f2e2d7 !important;
	text-align: right;
	font-family: "Rubik", sans-serif;
	font-size: 20px;
	font-style: normal;
	font-weight: 300;
	line-height: 20px;
	text-decoration: none;
	transition: color 0.2s ease;
}

.elementor-widget-nav-menu .sub-menu .menu-item:not(.funngiz-menu-item--heading) > a:hover,
.elementor-widget-nav-menu .sub-menu .menu-item:not(.funngiz-menu-item--heading) > a:focus {
	color: #dba872 !important;
}

.elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu .menu-item:not(.funngiz-menu-item--heading) + .funngiz-menu-item--heading{
    border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
    padding-top: 16px !important;
    margin-top: 16px;
} 

.elementor-widget-nav-menu .sub-menu .funngiz-menu-item__icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	order: -1;
}

.elementor-widget-nav-menu .sub-menu .funngiz-menu-item__icon img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.elementor-widget-nav-menu .sub-menu .funngiz-menu-item__text {
	flex: 1;
	text-align: right;
}

/* Hide heading items' default anchor if WP still outputs one */
.elementor-widget-nav-menu .sub-menu .funngiz-menu-item--heading > a {
	display: none !important;
}

/* --------------------------------------------------------------------------
   Mobile – Slide-in side panel
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
	.elementor-widget-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		left: auto !important;
		width: min(88vw, 360px) !important;
		height: 100vh !important;
		height: 100dvh !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 72px 24px 32px !important;
		padding: 24px 24px 32px !important;
		background: #102132 !important;
		border-left: 1px solid rgba(219, 168, 114, 0.25);
		box-shadow: -8px 0 32px rgba(0, 0, 0, 0.4);
		overflow-y: auto;
		transform: translateX(100%) !important;
		transition: transform 0.3s ease, visibility 0.3s ease !important;
		z-index: 10000 !important;
	}

	.elementor-widget-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] {
		transform: translateX(0) !important;
	}

	.elementor-widget-nav-menu .elementor-menu-toggle.elementor-active {
		z-index: 10001;
        position: fixed;
        right: 290px;
        top: 24px;
        left: inherit;
	}

	/* Side panel submenu – always expanded (< DESKTOP_MIN) */
	.elementor-widget-nav-menu .elementor-nav-menu--dropdown .menu-item-has-children > a {
		position: relative;
	}

	.elementor-widget-nav-menu .elementor-nav-menu--dropdown .menu-item-has-children > a .sub-arrow {
		display: none;
	}

	.elementor-widget-nav-menu .elementor-nav-menu--dropdown .sub-menu {
		display: block !important;
		padding-inline-start: 0;
		margin-top: 8px;
		border: none !important;
		background: transparent !important;
	}
	.elementor-widget-nav-menu .sub-menu .funngiz-menu-item--heading{
		padding: 0 !important;
		margin: 0 !important;
		border: none !important;
		background: transparent !important;
	}

	.elementor-widget-nav-menu .elementor-nav-menu--dropdown .funngiz-menu-item__heading {
		color: rgba(242, 226, 215, 0.5);
		font-size: 14px;
		font-weight: 600;
		padding: 12px 0 6px;
	}
	.elementor-widget-nav-menu .elementor-nav-menu--dropdown .menu-item{
		border: none !important;
	}
	.elementor-widget-nav-menu .elementor-nav-menu--dropdown .menu-item:not(.funngiz-menu-item--heading) > a {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		gap: 10px;
		padding: 10px 0;
		font-size: 18px;
		font-weight: 300;
		color: #f2e2d7 !important;
	}
}

body.funngiz-mobile-menu-open {
	overflow: hidden;
}

html.funngiz-mobile-menu-open {
	overflow: hidden;
}

@media (max-width: 1024px) {
	/* Sticky transform breaks fixed menu/overlay stacking – disable only while open */
	body.funngiz-mobile-menu-open #mainHeader,
	body.funngiz-mobile-menu-open #mainHeader.elementor-sticky--active,
	body.funngiz-mobile-menu-open #mainHeader.elementor-sticky--effects {
		transform: none !important;
	}

	body.funngiz-mobile-menu-open .elementor-widget-woocommerce-menu-cart {
		position: relative;
		z-index: 1 !important;
	}

	body.funngiz-mobile-menu-open .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] {
		z-index: 10000 !important;
	}

	body.funngiz-mobile-menu-open .elementor-menu-toggle.elementor-active {
		z-index: 10001 !important;
	}

	body.funngiz-mobile-menu-open div#acwp-toolbar-btn-wrap,
	body.funngiz-mobile-menu-open div#acwp-toolbar-btn-wrap.show,
	body.funngiz-mobile-menu-open div#acwp-toolbar-btn-wrap.funngiz-acwp-hidden-by-menu {
		display: none !important;
		visibility: hidden !important;
		pointer-events: none !important;
		opacity: 0 !important;
		z-index: -1 !important;
	}
}
