/**
 * ad:emotion Divi Mega Menu - Frontend Stylesheet
 * Methodology: BEM
 * Variable System: CSS Custom Properties
 */

:root {
	/* Default Tokens */
	--adm-mm-bg-color-default: #ffffff;
	--adm-mm-text-color-default: #333333;
	--adm-mm-padding-default: 0px;
	--adm-mm-margin-default: 0px;
	--adm-mm-border-radius-default: 8px;
	--adm-mm-box-shadow-default: 0 10px 30px rgba(0, 0, 0, 0.08);
	--adm-mm-z-index-default: 999;
	--adm-mm-width-default: 100%;
	--adm-mm-transition-easing: cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* Base styles for Menu Item container */
.adm-mm-menu-item {
	position: static !important;
}

/* Ensure header elements allow mega menu to overflow without clipping */
.et_pb_section,
.et_pb_row,
.et_pb_column,
.et_pb_menu,
.et_pb_menu__menu,
.et_pb_menu__menu-container,
.et-menu-nav,
.et-menu,
#top-menu-nav,
#top-menu {
	overflow: visible !important;
}

/* Ensure the main navigation menu containers are relative for positioning context */
#top-menu-nav,
.et-menu,
.et_pb_menu__menu,
.et_pb_menu {
	position: relative !important;
}

/* Mega Menu container styles */
.adm-mm-container {
	position: absolute;
	z-index: var(--adm-mm-z-index, var(--adm-mm-z-index-default));
	background: var(--adm-mm-bg-color, var(--adm-mm-bg-color-default));
	color: var(--adm-mm-text-color, var(--adm-mm-text-color-default));
	padding: var(--adm-mm-padding, var(--adm-mm-padding-default));
	margin: var(--adm-mm-margin, var(--adm-mm-margin-default));
	border-radius: var(--adm-mm-border-radius, var(--adm-mm-border-radius-default));
	box-shadow: var(--adm-mm-box-shadow, var(--adm-mm-box-shadow-default));
	width: var(--adm-mm-width, var(--adm-mm-width-default));
	box-sizing: border-box;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	display: none;
	overflow: hidden;
}

/* Invisible hover bridge to maintain hover status across the offset gap */
.adm-mm-container::before {
	content: '';
	position: absolute;
	top: -20px;
	left: 0;
	right: 0;
	height: 20px;
	background: transparent;
}


/* Width Modifier Rules */
.adm-mm-container--container {
	/* Default to full width of the surrounding row; fallback to 90vw */
	width: var(--adm-mm-width, 100%);
	max-width: var(--adm-mm-max-width, 90vw);
}

.adm-mm-container--full-width {
	width: 100vw;
	left: 50%;
	transform: translateX(-50%);
	border-radius: 0;
}

.adm-mm-container--custom-width {
	width: var(--adm-mm-width);
	max-width: 95vw;
}

/* Directions Modifiers */
.adm-mm-container--dir-down {
	top: calc(100% + 20px);
}

.adm-mm-container--dir-up {
	bottom: 100%;
	top: auto;
}

/* Device Visibility modifiers */
.adm-mm-container--desktop-only {
	display: block;
}

.adm-mm-container--mobile-only {
	display: none;
}

/* Active State */
.adm-mm-menu-item.is-active > .adm-mm-container {
	display: block;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* Inner Layout reset */
.adm-mm-content-inner {
	width: 100%;
	box-sizing: border-box;
}

/* Ensure Divi module links are visually indicated as clickable */
.adm-mm-container .et_pb_module_link,
.adm-mm-container .et_clickable,
.adm-mm-container .et_clickable_parent,
.adm-mm-mobile-container .et_pb_module_link,
.adm-mm-mobile-container .et_clickable,
.adm-mm-mobile-container .et_clickable_parent {
	cursor: pointer;
}

/* Overlay Styling */
.adm-mm-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: rgba(0, 0, 0, 0.4);
	z-index: -1;
	opacity: 0;
	pointer-events: none;
	backdrop-filter: blur(4px);
}

.adm-mm-menu-item.is-active > .adm-mm-container > .adm-mm-overlay {
	opacity: 1;
	pointer-events: auto;
}

/* Mobile Offcanvas Drawer Style */
.adm-mm-mobile-container {
	position: fixed;
	top: 0;
	right: -100%;
	width: 320px;
	height: 100vh;
	background: #ffffff;
	box-shadow: -5px 0 25px rgba(0,0,0,0.15);
	z-index: 9999;
	transition: right 0.4s var(--adm-mm-transition-easing);
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}

.adm-mm-mobile-container.is-open {
	right: 0;
}

.adm-mm-mobile-header {
	padding: 15px;
	display: flex;
	justify-content: flex-end;
	border-bottom: 1px solid #eee;
}

.adm-mm-mobile-close {
	background: none;
	border: none;
	font-size: 28px;
	cursor: pointer;
	line-height: 1;
}

.adm-mm-mobile-content {
	flex: 1;
	overflow-y: auto;
	padding: 20px;
}

/* SR Only Accessibility helper */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

/* Responsive Overrides */
@media (max-width: 980px) {
	.adm-mm-container {
		display: none !important;
	}
	.adm-mm-container--mobile-only,
	.adm-mm-menu-item--mobile-only {
		display: block !important;
	}
	.adm-mm-menu-item--desktop-only {
		display: none !important;
	}
}

/* Dark Mode support */
@media (prefers-color-scheme: dark) {
	body.ademotion-dmm-active {
		--adm-mm-bg-color-default: #1e1e1e;
		--adm-mm-text-color-default: #e0e0e0;
	}
	.adm-mm-mobile-container {
		background: #1e1e1e;
		color: #e0e0e0;
	}
	.adm-mm-mobile-header {
		border-bottom-color: #333;
	}
	.adm-mm-mobile-close {
		color: #e0e0e0;
	}
}
