/**
 * Services mega menu — desktop panel, mobile accordion.
 *
 * Tokens: FEATURES/1-Home-New-Menu/design.md (Figma export)
 *
 * @package PathSoft
 */

.services-mega-menu-panel {
	--smm-color-title: #2d3a4d;
	--smm-color-desc: #5c6676;
	--smm-color-accent: #106eea;
	--smm-font-size-item: 1rem;
	--smm-line-height-item: 1.2;
	--smm-font-size-section: 0.875rem;
	--smm-line-height-section: 1.7142857143;
	--smm-font-size-group: 0.625rem;
	--smm-letter-spacing-title: 0.01em;
	--smm-letter-spacing-section: 0.02em;
	--smm-gap-title-desc: 0.25rem;
	--smm-gap-items: 0.5rem;
	--smm-item-padding-y: 0.5rem;
	--smm-item-padding-x: 0.75rem;
	--smm-item-radius: 2px;
	--smm-item-hover-bg: rgba(242, 244, 246, 0.8);
	--smm-icon-box-size: 2.5rem;
	--smm-icon-box-radius: 10px;
	--smm-icon-bg: #f7f8fa;
	--smm-icon-border-color: #c2cad9;
	--smm-section-divider: #e6ebf3;
	--smm-section-header-gap: 0.75rem;
}

@media (min-width: 1200px) {
	.main-mnu-list > li.services-mega-menu-item {
		position: static;
	}

	.main-mnu-list > li.services-mega-menu-item.is-open > a {
		color: var(--accent-color);
	}

	.main-mnu-list > li.services-mega-menu-item.is-open > a > span:first-child {
		box-shadow: inset 0 -2px 0 0 var(--accent-color);
	}

	.services-mega-menu-panel {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 12;
		opacity: 0;
		visibility: hidden;
		transform: translateY(0.75rem);
		transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
		pointer-events: none;
	}

	.services-mega-menu-item.is-open .services-mega-menu-panel {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
	}
}

.main-mnu-list > li.services-mega-menu-item .services-mega-menu-panel a {
	align-items: stretch;
	font-size: inherit;
	line-height: inherit;
}

.services-mega-menu-panel__inner {
	position: relative;
	background-color: var(--background-color);
	box-shadow: var(--header-box-shadow);
	overflow: hidden;
}

.services-mega-menu-panel__bg {
	position: absolute;
	top: auto;
	right: auto;
	left: var(--smm-bg-left, 0);
	bottom: var(--smm-bg-bottom, 0);
	z-index: 0;
	width: min(55vw, 420px);
	height: min(42vh, 260px);
	transform: translateX(var(--smm-bg-translate-x, 0));
	background-image: var(--smm-bg-image);
	background-repeat: var(--smm-bg-repeat, no-repeat);
	background-position: left bottom;
	background-size: var(--smm-bg-size, auto 120px);
	background-origin: border-box;
	opacity: var(--smm-bg-opacity, 0.28);
	pointer-events: none;
}

.services-mega-menu-panel__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2.5rem;
	padding: 2.25rem 0 2.75rem;
}

@media (min-width: 1200px) {
	.services-mega-menu-panel__grid {
		grid-template-rows: repeat(var(--smm-card-rows, 1), auto);
		align-items: start;
	}

	.services-mega-menu-panel__column--list {
		grid-column: 1;
		grid-row: 1 / span var(--smm-card-rows, 1);
		align-self: stretch;
	}

	.services-mega-menu-panel__column--cards {
		display: contents;
	}

	.services-mega-menu-panel__column--cards .services-mega-menu-panel__section {
		grid-column: var(--smm-col-index);
		grid-row: var(--smm-row-index);
		display: flex;
		flex-direction: column;
		align-self: start;
		margin-top: 0;
	}

	.services-mega-menu-panel__column--cards .services-mega-menu-panel__section + .services-mega-menu-panel__section {
		margin-top: 0;
	}
}

.services-mega-menu-panel__section + .services-mega-menu-panel__section {
	margin-top: 2rem;
	padding-top: 0;
	border-top: none;
}

.services-mega-menu-panel__column--list .services-mega-menu-panel__section + .services-mega-menu-panel__section {
	border-top: none;
	margin-top: 0;
	padding-top: 0;
}

.services-mega-menu-panel__section-header {
	display: flex;
	align-items: center;
	gap: var(--smm-section-header-gap);
	margin-bottom: 0.75rem;
	padding-bottom: 0.625rem;
	border-bottom: 1px solid var(--smm-section-divider);
}

.services-mega-menu-panel__section-title {
	margin: 0;
	font-family: var(--heading-font-family);
	font-size: var(--smm-font-size-section);
	font-weight: 700;
	line-height: var(--smm-line-height-section);
	letter-spacing: var(--smm-letter-spacing-section);
	text-transform: uppercase;
	color: var(--smm-color-accent);
}

.services-mega-menu__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: var(--smm-icon-box-size);
	height: var(--smm-icon-box-size);
	border: 1px solid var(--smm-icon-border-color);
	border-radius: var(--smm-icon-box-radius);
	background-color: var(--smm-icon-bg);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	flex-shrink: 0;
	overflow: hidden;
}

.services-mega-menu__icon img {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	object-fit: contain;
}

.services-mega-menu__icon .material-icons {
	color: var(--smm-color-accent);
	line-height: 1;
}

.services-mega-menu__icon--svg svg {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	fill: var(--smm-color-accent);
}

.services-mega-menu-panel__group + .services-mega-menu-panel__group {
	margin-top: 1rem;
}

.services-mega-menu-panel__group-label {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	margin-bottom: 0.375rem;
	font-family: var(--heading-font-family);
	font-size: var(--smm-font-size-group);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--smm-color-desc);
}

.services-mega-menu-panel__group-label::after {
	content: "";
	flex: 1;
	height: 1px;
	background-color: var(--smm-section-divider);
}

.services-mega-menu-panel__link-list,
.services-mega-menu-panel__card-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.services-mega-menu-panel__link-list {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.services-mega-menu-panel__link {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.375rem;
	padding: 0.25rem var(--smm-item-padding-x);
	margin: 0 calc(var(--smm-item-padding-x) * -1);
	border-radius: var(--smm-item-radius);
	font-family: var(--font-family);
	font-size: var(--smm-font-size-item);
	font-weight: 700;
	line-height: var(--smm-line-height-item);
	letter-spacing: var(--smm-letter-spacing-title);
	color: var(--smm-color-title);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.services-mega-menu-panel__link:hover,
.services-mega-menu-panel__link:focus-visible {
	background-color: var(--smm-item-hover-bg);
	color: var(--smm-color-accent);
	outline: none;
}

.services-mega-menu__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 1.125rem;
	padding: 0.125rem 0.4375rem;
	border-radius: var(--smm-item-radius);
	font-family: var(--heading-font-family);
	font-size: var(--smm-font-size-group);
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.services-mega-menu__badge--hot {
	background-color: #fff4da;
	color: #8b6824;
}

.services-mega-menu__badge--new {
	background-color: #daf3e8;
	color: #1f6e4a;
}

.services-mega-menu__badge--primary {
	background-color: var(--smm-color-accent);
	color: #fff;
}

.services-mega-menu-panel__card-list {
	display: flex;
	flex-direction: column;
	gap: var(--smm-gap-items);
}

.services-mega-menu-panel__card {
	display: block;
	padding: var(--smm-item-padding-y) var(--smm-item-padding-x);
	margin: 0 calc(var(--smm-item-padding-x) * -1);
	border-radius: var(--smm-item-radius);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.services-mega-menu-panel__card:hover,
.services-mega-menu-panel__card:focus-visible {
	background-color: var(--smm-item-hover-bg);
	outline: none;
}

.services-mega-menu-panel__card-body {
	display: flex;
	flex-direction: column;
	gap: var(--smm-gap-title-desc);
}

.services-mega-menu-panel__card-title {
	display: block;
	font-family: var(--font-family);
	font-size: var(--smm-font-size-item);
	font-weight: 700;
	line-height: var(--smm-line-height-item);
	letter-spacing: var(--smm-letter-spacing-title);
	color: var(--smm-color-title);
	transition: color 0.2s ease;
}

.services-mega-menu-panel__card-desc {
	display: block;
	font-family: var(--font-family);
	font-size: var(--smm-font-size-item);
	font-weight: 400;
	line-height: var(--smm-line-height-item);
	color: var(--smm-color-desc);
}

.services-mega-menu-panel__card:hover .services-mega-menu-panel__card-title,
.services-mega-menu-panel__card:focus-visible .services-mega-menu-panel__card-title {
	color: var(--smm-color-accent);
}

@media (max-width: 1199.98px) {
	.services-mega-menu-panel {
		display: none !important;
	}

	.services-mega-menu-mobile {
		display: none;
		padding: 0.75rem 0 0.5rem 1rem;
	}

	.services-mega-menu-mobile__section + .services-mega-menu-mobile__section {
		margin-top: 1rem;
		padding-top: 1rem;
		border-top: 1px solid var(--smm-section-divider);
	}

	.services-mega-menu-mobile__section-header {
		display: flex;
		align-items: center;
		gap: var(--smm-section-header-gap);
		margin-bottom: 0.5rem;
		font-family: var(--heading-font-family);
		font-size: var(--smm-font-size-section);
		font-weight: 700;
		line-height: var(--smm-line-height-section);
		text-transform: uppercase;
		color: var(--smm-color-accent);
	}

	.services-mega-menu-mobile__group-label {
		margin: 0.75rem 0 0.375rem;
		font-family: var(--heading-font-family);
		font-size: var(--smm-font-size-group);
		font-weight: 600;
		line-height: 1.2;
		letter-spacing: 0.02em;
		text-transform: uppercase;
		color: var(--smm-color-desc);
	}

	.services-mega-menu-mobile__links,
	.services-mega-menu-mobile__cards {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.services-mega-menu-mobile__cards {
		display: flex;
		flex-direction: column;
		gap: var(--smm-gap-items);
	}

	.services-mega-menu-mobile__links a,
	.services-mega-menu-mobile__cards a {
		display: block;
		padding: var(--smm-item-padding-y) var(--smm-item-padding-x);
		margin: 0 calc(var(--smm-item-padding-x) * -1);
		border-radius: var(--smm-item-radius);
		font-family: var(--font-family);
		color: var(--smm-color-title);
		text-decoration: none;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	.services-mega-menu-mobile__links a:hover,
	.services-mega-menu-mobile__links a:focus-visible,
	.services-mega-menu-mobile__cards a:hover,
	.services-mega-menu-mobile__cards a:focus-visible {
		background-color: var(--smm-item-hover-bg);
		color: var(--smm-color-accent);
	}

	.services-mega-menu-mobile__card-body {
		display: flex;
		flex-direction: column;
		gap: var(--smm-gap-title-desc);
	}

	.services-mega-menu-mobile__card-title {
		display: block;
		font-size: var(--smm-font-size-item);
		font-weight: 700;
		line-height: var(--smm-line-height-item);
		letter-spacing: var(--smm-letter-spacing-title);
		color: var(--smm-color-title);
	}

	.services-mega-menu-mobile__card-desc {
		display: block;
		font-size: var(--smm-font-size-item);
		font-weight: 400;
		line-height: var(--smm-line-height-item);
		color: var(--smm-color-desc);
	}
}

@media (max-width: 1399.98px) {
	.services-mega-menu-panel__grid {
		gap: 1.5rem;
	}
}

@media (max-width: 1199.98px) {
	.services-mega-menu-panel__grid {
		grid-template-columns: 1fr;
	}
}
