/**
 * DKD Mega Menu widget styles.
 */

.elementor-widget-dkd-mega-menu {
	--dkd-mega-panel-min-height: 0px;
	--dkd-mega-panel-offset: 0px;
	--dkd-mega-drawer-top: 80px;
	--dkd-mega-drawer-width: 500px;
	--dkd-mega-drawer-open-right: -200px;
	--dkd-mega-drawer-closed-right: -120vw;
}

.dkd-mega-menu {
	position: relative;
	width: 100%;
}

.dkd-mega-menu__desktop-wrap {
	position: relative;
	width: 100%;
}

.dkd-mega-menu__panels {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	z-index: 999;
	pointer-events: none;
}

.dkd-mega-menu.is-panel-open .dkd-mega-menu__panels::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: var(--dkd-mega-panel-offset, 0px);
}

.dkd-mega-menu.is-panel-open .dkd-mega-menu__panels {
	pointer-events: auto;
}

.dkd-mega-menu__panel {
	position: absolute;
	top: var(--dkd-mega-panel-offset, 0px);
	left: 0;
	width: 100%;
}

/* Desktop: stacked crossfade between panels */
.dkd-mega-menu:not(.dkd-mega-menu--mobile-mode) .dkd-mega-menu__panel {
	display: block;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: none;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.dkd-mega-menu:not(.dkd-mega-menu--mobile-mode) .dkd-mega-menu__panel.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.dkd-mega-menu__panel-inner {
	width: 100%;
	min-height: var(--dkd-mega-panel-min-height, 0);
	overflow: hidden;
}

.dkd-mega-menu__panel-content {
	width: 100%;
}

.dkd-mega-menu__panel-content > .e-con {
	max-width: 100%;
}

/* Animations — initial open only (inner layer; outer panel is opacity-only) */
.dkd-mega-menu--animation-slide-down:not(.dkd-mega-menu--mobile-mode) .dkd-mega-menu__panel.is-active .dkd-mega-menu__panel-inner[data-animate="in"] {
	animation: dkd-mega-panel-slide-down 0.25s ease;
}

.dkd-mega-menu--animation-fade:not(.dkd-mega-menu--mobile-mode) .dkd-mega-menu__panel.is-active .dkd-mega-menu__panel-inner[data-animate="in"] {
	animation: dkd-mega-panel-fade 0.25s ease;
}

@keyframes dkd-mega-panel-slide-down {
	from {
		opacity: 0;
		transform: translateY(-8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes dkd-mega-panel-fade {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* Items with mega panels — desktop */
.dkd-mega-menu__item--has-panel > .elementor-item {
	cursor: default;
}

/* Mobile: accordion mode (same menu, no separate mobile menu) */
.dkd-mega-menu--mobile-mode .dkd-mega-menu__panels {
	position: static;
	pointer-events: auto;
}

.dkd-mega-menu--mobile-mode .dkd-mega-menu__panel {
	display: none;
	position: static;
	top: auto;
	opacity: 1;
	visibility: visible;
	transition: none;
}

.dkd-mega-menu--mobile-mode .dkd-mega-menu__panel.is-active {
	display: block;
	margin-top: var(--dkd-mega-panel-offset, 0px);
}

/* Separate mobile menu — hide mega panels at mobile breakpoint only */
.dkd-mega-menu--has-mobile-menu.dkd-mega-menu--mobile-mode .dkd-mega-menu__panels {
	display: none;
}

/* Dropdown items with mega panel indicator */
.dkd-mega-menu__dropdown-nav .dkd-mega-menu__item--has-panel.is-active > .elementor-item {
	font-weight: 600;
}

/* Editor — match frontend desktop overlay (no document-flow panel height) */
.elementor-editor-active .dkd-mega-menu__panels {
	position: absolute;
	top: 100%;
	left: 0;
	min-height: 0;
	z-index: 9999;
}

.elementor-editor-active .dkd-mega-menu:not(.is-panel-open) .dkd-mega-menu__panels {
	pointer-events: none;
}

.elementor-editor-active .dkd-mega-menu__panel {
	position: absolute;
	top: var(--dkd-mega-panel-offset, 0px);
	left: 0;
	display: block;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	margin-top: 0;
}

.elementor-editor-active .dkd-mega-menu__panel.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.elementor-editor-active .dkd-mega-menu--mobile-mode .dkd-mega-menu__panels {
	position: absolute;
	top: 100%;
	left: 0;
	pointer-events: none;
}

.elementor-editor-active .dkd-mega-menu--mobile-mode .dkd-mega-menu__panel {
	position: absolute;
	top: var(--dkd-mega-panel-offset, 0px);
	display: block;
	opacity: 0;
	visibility: hidden;
}

.elementor-editor-active .dkd-mega-menu--mobile-mode .dkd-mega-menu__panel.is-active {
	opacity: 1;
	visibility: visible;
	margin-top: 0;
}

.dkd-mega-menu__panels.is-stretched {
	width: 100vw;
}

/* Theme Builder Site Part — prevent panel clipping */
.elementor-location-dkd_mega_menu {
	position: relative;
	z-index: 200;
	overflow: visible;
}

.elementor-location-dkd_mega_menu .e-con,
.elementor-location-dkd_mega_menu .elementor-widget-wrap {
	overflow: visible;
}

/* Desktop — hidden dropdown must not block nav hover or mega panels */
.dkd-mega-menu--slide-drawer:not(.dkd-mega-menu--mobile-mode) .dkd-mega-menu__dropdown-nav {
	position: absolute;
	width: 0;
	height: 0;
	pointer-events: none;
	visibility: hidden;
	max-height: 0 !important;
	overflow: hidden;
}

/* Mobile slide drawer — legacy #dkd-header-menu style (500px, right slide) */
.dkd-mega-menu--slide-drawer.dkd-mega-menu--mobile-mode {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
}

.dkd-mega-menu--slide-drawer.dkd-mega-menu--mobile-mode .elementor-menu-toggle {
	position: relative;
	z-index: 10000;
}

.dkd-mega-menu--slide-drawer.dkd-mega-menu--mobile-mode .dkd-mega-menu__dropdown-nav {
	position: fixed;
	top: var(--dkd-mega-drawer-top, 80px);
	right: var(--dkd-mega-drawer-closed-right, -120vw);
	left: auto;
	width: var(--dkd-mega-drawer-width, 500px);
	min-height: calc(100vh - 120px);
	height: calc(100vh - 120px);
	max-height: none !important;
	margin-top: 10px;
	padding-bottom: 100px;
	z-index: 9999;
	overflow-y: scroll;
	transform: none;
	transition: right 0.4s ease;
	-webkit-overflow-scrolling: touch;
	pointer-events: none;
}

.dkd-mega-menu--slide-drawer.dkd-mega-menu--mobile-mode .dkd-mega-menu__dropdown-nav ul {
	overflow-y: scroll;
}

.dkd-mega-menu--slide-drawer.dkd-mega-menu--mobile-mode .dkd-mega-menu__dropdown-nav li a {
	padding-left: 20px;
}

.dkd-mega-menu--slide-drawer.dkd-mega-menu--mobile-mode .elementor-menu-toggle.elementor-active + .dkd-mega-menu__dropdown-nav {
	right: var(--dkd-mega-drawer-open-right, -200px);
	pointer-events: auto;
}

@media (max-width: 575px) {
	.dkd-mega-menu--slide-drawer.dkd-mega-menu--mobile-mode .elementor-menu-toggle:not(.elementor-active) + .dkd-mega-menu__dropdown-nav {
		right: -180vw;
	}
}

/* Editor — hide mobile drawer; keep hamburger visible for styling */
.elementor-editor-active .dkd-mega-menu--slide-drawer .dkd-mega-menu__dropdown-nav {
	position: absolute;
	width: 0;
	height: 0;
	max-height: 0 !important;
	overflow: hidden;
	visibility: hidden;
	pointer-events: none;
}

.dkd-mega-menu__panel-placeholder {
	padding: 1.5rem 2rem;
	text-align: center;
	border: 1px dashed var(--e-a-border-color-bold, #d5d8dc);
	border-radius: 4px;
	background: var(--e-a-bg-default, #fff);
}

.dkd-mega-menu__panel-placeholder-title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	font-weight: 600;
}

.dkd-mega-menu__panel-placeholder-note {
	margin: 0 0 1rem;
	font-size: 0.8125rem;
	color: var(--e-a-color-txt-muted, #6d7882);
}

.dkd-mega-menu__panel-placeholder-link {
	display: inline-block;
	padding: 0.5rem 1rem;
	font-size: 0.8125rem;
	font-weight: 500;
	text-decoration: none;
	color: var(--e-a-color-primary-bold, #93003c);
	border: 1px solid currentColor;
	border-radius: 3px;
}

.dkd-mega-menu__panel-placeholder-link:hover {
	color: var(--e-a-color-primary, #c00bb9);
}
