/**
 * Standalone Services mega menu.
 * No Astra submenu selectors are used here.
 */
.cd-mega-menu {
	position: absolute;
	z-index: 1001; 
	top: calc(100% + var(--cd-space-12));

	left: 50%;
	width: min(1400px, calc(100vw - var(--cd-space-32)));
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate(-50%, calc(var(--cd-space-8) * -1));
	transition: opacity 200ms ease, transform 200ms ease, visibility 0s linear 200ms;
}

.cd-mega-menu.is-open, .cd-mega-menu.cd-mega-menu--active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(-50%, 0);
	transition-delay: 0s;
}

.cd-mega-menu__container {
	padding: var(--cd-space-40);
	overflow: hidden;
	border-radius: var(--cd-radius-lg);
	background: var(--cd-surface);
	box-shadow: var(--cd-shadow-md);
	color: var(--cd-heading);
}

.cd-mega-menu__main { display: grid; grid-template-columns: minmax(250px, .85fr) minmax(330px, 1fr) minmax(280px, .9fr); gap: var(--cd-space-32); }
.cd-mega-menu__categories, .cd-mega-menu__services { padding-right: var(--cd-space-32); border-right: 1px solid var(--cd-border); }
.cd-mega-menu__eyebrow, .cd-mega-menu__panel-title { margin: 0 0 var(--cd-space-16); color: var(--cd-primary); font-size: 12px; font-weight: var(--cd-fw-bold); letter-spacing: .08em; text-transform: uppercase; }
.cd-mega-menu__category-list, .cd-mega-menu__service-list { display: grid; gap: var(--cd-space-4); }

.cd-mega-menu__category {
	display: grid;
	grid-template-columns: 38px 1fr 20px;
	gap: var(--cd-space-12);
	align-items: center;
	width: 100%;
	padding: var(--cd-space-12);
	border: 0;
	border-radius: var(--cd-radius-md);
	background: transparent;
	color: inherit;
	text-align: left;
	cursor: pointer;
	transition: background-color 200ms ease, color 200ms ease, transform 200ms ease;
}

.cd-mega-menu__category:hover, .cd-mega-menu__category:focus-visible, .cd-mega-menu__category.is-active { background: var(--cd-primary); color: var(--cd-white); outline: 0; transform: translateY(calc(var(--cd-space-4) * -1)); }
.cd-mega-menu__category-icon, .cd-mega-menu__service-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--cd-radius-sm); background: color-mix(in srgb, var(--cd-primary) 10%, var(--cd-white)); color: var(--cd-primary); }
.cd-mega-menu__category-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.cd-mega-menu__category:hover .cd-mega-menu__category-icon, .cd-mega-menu__category.is-active .cd-mega-menu__category-icon { background: color-mix(in srgb, var(--cd-white) 18%, transparent); color: var(--cd-white); }
.cd-mega-menu__category-title, .cd-mega-menu__service strong { display: block; font-size: 15px; font-weight: var(--cd-fw-bold); line-height: 1.25; }
.cd-mega-menu__category-description, .cd-mega-menu__service small { display: block; margin-top: var(--cd-space-4); color: var(--cd-body); font-size: 12px; line-height: 1.35; }
.cd-mega-menu__category:hover .cd-mega-menu__category-description, .cd-mega-menu__category.is-active .cd-mega-menu__category-description { color: color-mix(in srgb, var(--cd-white) 80%, transparent); }
.cd-mega-menu__arrow { font-size: 20px; line-height: 1; transition: transform 200ms ease; }
.cd-mega-menu__category:hover .cd-mega-menu__arrow, .cd-mega-menu__category:focus-visible .cd-mega-menu__arrow, .cd-mega-menu__service:hover .cd-mega-menu__arrow, .cd-mega-menu__cta:hover span { transform: translateX(8px); }

.cd-mega-menu__panel, .cd-mega-menu__preview-panel { animation: cd-mega-menu-fade 200ms ease; }
.cd-mega-menu__service { display: grid; grid-template-columns: 34px 1fr 20px; gap: var(--cd-space-12); align-items: center; padding: var(--cd-space-12); border-radius: var(--cd-radius-md); color: inherit; text-decoration: none; transition: background-color 200ms ease, transform 200ms ease; }
.cd-mega-menu__service:hover, .cd-mega-menu__service:focus-visible, .cd-mega-menu__service.is-active { background: color-mix(in srgb, var(--cd-primary) 5%, var(--cd-white)); outline: 0; transform: translateY(calc(var(--cd-space-4) * -1)); }
.cd-mega-menu__service-icon { width: 30px; height: 30px; font-size: 13px; font-weight: 700; }

.cd-mega-menu__preview-panel { overflow: hidden; border-radius: var(--cd-radius-md); color: var(--cd-white); border: 1px solid var(--cd-border); }
.cd-mega-menu__preview-panel img { display: block; width: 100%; height: 150px; object-fit: cover; opacity: .82; transition: opacity 200ms ease; }
.cd-mega-menu__preview-panel:hover img { opacity: 1; }
.cd-mega-menu__preview-content { padding: var(--cd-space-20);  background: var(--cd-heading); }
.cd-mega-menu__preview-content h2 { margin: 0; color: var(--cd-white); font-size: 19px; line-height: 1.15; }
.cd-mega-menu__preview-content p { margin: var(--cd-space-12) 0 var(--cd-space-16); color: color-mix(in srgb, var(--cd-white) 75%, transparent); font-size: 13px; line-height: 1.5; }
.cd-mega-menu__cta { display: inline-flex; align-items: center; gap: var(--cd-space-8); padding: var(--cd-space-8) var(--cd-space-12); border-radius: var(--cd-radius-sm); background: var(--cd-white); color: var(--cd-primary); font-size: 12px; font-weight: var(--cd-fw-bold); text-decoration: none; }
.cd-mega-menu__cta span { transition: transform 200ms ease; }

.cd-mega-menu__subservices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cd-space-8); padding: var(--cd-space-16) var(--cd-space-20); animation: cd-mega-menu-fade 200ms ease; }
.cd-mega-menu__subservices[hidden] { display: none; }
.cd-mega-menu__subservice { display: inline-flex; align-items: center; gap: var(--cd-space-8); min-width: 0; color: var(--cd-primary); font-size: 12px; font-weight: var(--cd-fw-medium); line-height: 1.20; text-decoration: none; transition: transform 200ms ease, color 200ms ease; }
.cd-mega-menu__subservice:hover, .cd-mega-menu__subservice:focus-visible { color: var(--cd-heading); outline: 0; transform: translateX(var(--cd-space-4)); }
.cd-mega-menu__subservice span { font-size: 14px; }

.cd-mega-menu__features { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--cd-space-12); margin-top: var(--cd-space-32); padding-top: var(--cd-space-24); border-top: 1px solid var(--cd-border); }
.cd-mega-menu__features span { padding: var(--cd-space-12); border-radius: var(--cd-radius-sm); font-size: 13px; font-weight: var(--cd-fw-bold); transition: background-color 200ms ease, transform 200ms ease; }
.cd-mega-menu__features span:hover { background: color-mix(in srgb, var(--cd-primary) 5%, var(--cd-white)); transform: translateY(calc(var(--cd-space-4) * -1)); }
.cd-mega-menu__features b { margin-right: var(--cd-space-8); color: var(--cd-primary); }

@keyframes cd-mega-menu-fade { from { opacity: 0; } to { opacity: 1; } }

@media (min-width: 993px) {
	/* Desktop navigation is handled exclusively by the custom mega menu. */
	.cd-header__nav > .cd-menu .sub-menu { display: none !important; }
}

@media (max-width: 1100px) {
	.cd-mega-menu__container { padding: var(--cd-space-24); }
	.cd-mega-menu__main { grid-template-columns: minmax(210px, .8fr) minmax(280px, 1fr) minmax(230px, .9fr); gap: var(--cd-space-24); }
	.cd-mega-menu__categories, .cd-mega-menu__services { padding-right: var(--cd-space-24); }
}

@media (max-width: 992px) {
	/* Mobile uses the native WordPress parent/child menu, not the desktop panel. */
	.cd-header__nav .cd-mega-menu { display: none !important; }
	.cd-header__nav .cd-menu .sub-menu { display: none !important; margin: var(--cd-space-8) 0 0 var(--cd-space-16); padding-left: var(--cd-space-16); border-left: 1px solid var(--cd-border); }
	.cd-header__nav .cd-menu .menu-item-has-children.is-submenu-open > .sub-menu { display: block !important; }
	.cd-header__nav .cd-menu .sub-menu .menu-link { padding: var(--cd-space-8) 0; }
	.cd-header__nav .cd-menu .menu-item-has-children > .menu-link { display: flex; align-items: center; justify-content: space-between; }
}

@media (prefers-reduced-motion: reduce) {
	.cd-mega-menu, .cd-mega-menu * { transition-duration: 1ms !important; animation-duration: 1ms !important; }
}
