/* ==========================================================================
   Products mega menu — 1:1 port of megamenu/_megamenuconcept.html.
   Only deviations: no right-hand rail (client removed it), and the row-hover
   rim uses the brand blue instead of cyan. Desktop only (>=1025px).
   ========================================================================== */

.vgl-mm {
	--purple: #6D35BB;
	--violet: #AD78FF;
	--blue: #0048FF;
	--f-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--f-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 9999;
	display: none;
	padding: 0 clamp(12px, 4vw, 40px);
	pointer-events: none;
	font-family: var(--f-sans);
}
.vgl-mm-host { position: relative; }

@media (min-width: 1025px) {
	.vgl-mm { display: block; }
	.elementor-location-header .menu-item-1014 > .sub-menu,
	.elementor-location-header .vgl-mm-trigger > .sub-menu { display: none !important; }
}

/* --- stage: holds the colour orbs the frost refracts --- */
.vgl-mm__glass {
	position: relative;
	z-index: 1;
	max-width: 760px;
	margin: 0 auto;
	overflow: hidden;
	border-radius: 0 0 24px 24px;

	opacity: 0;
	transform: translateY(-9px);
	transition: opacity 0.2s ease, transform 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}
.vgl-mm.is-open { pointer-events: auto; }
.vgl-mm.is-open .vgl-mm__glass { opacity: 1; transform: translateY(0); }

.vgl-mm__orbs {
	position: absolute;
	inset: -60px;
	pointer-events: none;
	filter: blur(60px);
	background:
		radial-gradient(300px 300px at 6% 12%, #7A3BE0 0%, transparent 70%),
		radial-gradient(260px 260px at 72% -10%, #2E7BFF 0%, transparent 70%),
		radial-gradient(480px 400px at 112% 126%, #000B60 0%, #000B60 20%, transparent 78%),
		#0B0922;
}

/* --- frosted panel (concept .panel) --- */
.vgl-mm__inner {
	position: relative;
	z-index: 2;
	overflow: hidden;
	padding: 24px 26px 20px;
	color: #ECE8FF;
	background: linear-gradient(157deg, rgba(42, 33, 96, 0.40) 0%, rgba(13, 11, 36, 0.52) 55%, rgba(0, 11, 96, 0.44) 100%);
	-webkit-backdrop-filter: blur(38px) saturate(200%);
	backdrop-filter: blur(38px) saturate(200%);
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-top: none;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.55),
		inset 1px 0 0 rgba(255, 255, 255, 0.10),
		inset -1px 0 0 rgba(126, 232, 255, 0.08),
		inset 0 -26px 44px -34px rgba(0, 0, 0, 0.55);
}
.vgl-mm__inner::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 90px;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0) 100%);
}

/* --- grid (concept .grid, minus the rail column) --- */
.vgl-mm__grid {
	position: relative;
	z-index: 4;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 16px 26px;
}
.vgl-mm__col:nth-of-type(1) { grid-column: 1; }
.vgl-mm__col:nth-of-type(2) { grid-column: 2; grid-row: 1; }

.vgl-mm__eyebrow {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 2px 0 12px;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(173, 120, 255, 0.24);
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #D9CBFF;
}
.vgl-mm__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--violet);
	box-shadow: 0 0 12px var(--violet);
}

.vgl-mm__rows { display: grid; gap: 4px; }

/* --- each row is a glass tile with a light-catching rim (concept .row) --- */
.vgl-mm__row,
.vgl-mm__row:link,
.vgl-mm__row:visited,
.vgl-mm__row:hover,
.vgl-mm__row:focus,
.vgl-mm__row:active {
	color: #ECE8FF;
}
.vgl-mm__row {
	position: relative;
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 10px 12px;
	border-radius: 13px;
	text-decoration: none;
	isolation: isolate;
	/* base transition = the slow, soft settle-back when the mouse leaves (~1s);
	   :hover overrides it with a quick curve so the light comes on promptly */
	transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1), background 0.9s ease;
}
.vgl-mm__row::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1px;
	pointer-events: none;
	/* one gradient, always the hover one — only opacity animates, so it is buttery */
	background: linear-gradient(130deg, rgba(255, 255, 255, 0.95) 0%, var(--violet) 42%, rgba(0, 72, 255, 0.62) 74%, rgba(255, 255, 255, 0) 100%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: 0.14;
	transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.vgl-mm__ic {
	position: relative;
	z-index: 1;
	flex: none;
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	border-radius: 11px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: var(--violet);
	transition: background 1s cubic-bezier(0.16, 1, 0.3, 1), color 0.9s ease,
		box-shadow 1s ease, transform 1s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.9s ease;
}
.vgl-mm__ic svg { width: 18px; height: 18px; }
.vgl-mm__tx {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	line-height: 1.25;
	min-width: 0;
}
.vgl-mm__row .vgl-mm__tx b {
	font-weight: 500;
	font-size: 14px;
	color: #F4F1FF;
	transition: color 0.9s ease;
}
.vgl-mm__row .vgl-mm__tx span {
	font-size: 11px;
	color: #A99DDA;
	font-family: var(--f-mono);
	letter-spacing: 0.02em;
}

.vgl-mm__row:hover,
.vgl-mm__row:focus-visible {
	background: rgba(173, 120, 255, 0.10);
	transform: translateX(2px);
	outline: none;
	transition: transform 0.18s ease, background 0.18s ease;
}
.vgl-mm__row:hover::before,
.vgl-mm__row:focus-visible::before {
	opacity: 1;
	transition: opacity 0.2s ease;
}
.vgl-mm__row:hover .vgl-mm__tx b,
.vgl-mm__row:focus-visible .vgl-mm__tx b { color: #fff; transition: color 0.18s ease; }
.vgl-mm__row:hover .vgl-mm__ic,
.vgl-mm__row:focus-visible .vgl-mm__ic {
	background: linear-gradient(180deg, var(--violet), var(--purple));
	border-color: transparent;
	color: #fff;
	box-shadow: 0 10px 22px -6px rgba(109, 53, 187, 0.7);
	transform: translateY(-1px) scale(1.05);
	transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease,
		transform 0.2s ease, border-color 0.2s ease;
}
.vgl-mm__row:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }

/* --- All-products footer (concept .allrow) --- */
.vgl-mm__all {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 4px;
	padding-top: 12px;
	border-top: 1px solid rgba(173, 120, 255, 0.24);
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #A99DDA;
}
.vgl-mm__all a {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--violet);
	text-decoration: none;
	transition: color 0.18s ease;
}
.vgl-mm__all a:hover { color: #fff; }
.vgl-mm__all a svg { width: 14px; height: 14px; transition: transform 0.18s ease; }
.vgl-mm__all a:hover svg { transform: translateX(3px); }

@media (prefers-reduced-motion: reduce) {
	.vgl-mm *,
	.vgl-mm *::before,
	.vgl-mm__glass { transition: none !important; }
	.vgl-mm.is-open .vgl-mm__glass { transform: none; }
}
