/*
 * Menu overlay template part (patterns/menu-overlay.php), shown by the
 * header's navigation block. Values from the old modal-menu*.tsx.
 *
 * The navigation block is set to "Always" show the overlay, as the old site
 * shows the Menu button at every width.
 */

/* The navigation block's own item list is replaced by the overlay part. */
.sp-menu .wp-block-navigation__responsive-container .wp-block-navigation__container {
	display: none;
}

.sp-menu .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed;
	inset: 0;
	z-index: 102;
	padding: 0;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--black);
	overflow: hidden;
	animation: sp-menu-open 0.375s var(--wp--custom--ease--in-out) both;
}
@keyframes sp-menu-open {
	from { clip-path: inset(0 0 100% 0); }
	to { clip-path: inset(0 0 0% 0); }
}
.sp-menu .is-menu-open .wp-block-navigation__responsive-close,
.sp-menu .is-menu-open .wp-block-navigation__responsive-dialog,
.sp-menu .is-menu-open .wp-block-navigation__responsive-container-content,
.sp-menu .is-menu-open .wp-block-navigation__overlay-container {
	width: 100%;
	max-width: none;
	height: 100%;
	margin: 0;
	padding: 0;
	display: block;
}
.sp-menu .is-menu-open .wp-block-navigation__overlay-container {
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-width: none;
}

/* The overlay's own bar sits exactly where the header bar is. */
.sp-overlay .sp-overlay__bar {
	position: sticky;
	top: 0;
	z-index: 2;
	align-items: center;
	padding-block: 0;
	background: var(--wp--preset--color--white);
}
@media (min-width: 768px) {
	.sp-overlay .sp-overlay__bar { padding-block: 16px; }
	.sp-overlay .sp-overlay__bar { background: transparent; }
}
.sp-overlay .sp-overlay__logo,
.sp-overlay .sp-overlay__logo a {
	display: block;
	height: 24px;
	margin: 0;
	line-height: 0;
}

/* Close: the Menu button in its open state. */
.sp-overlay .sp-overlay__close {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-width: 128px;
	margin-right: -16px;
	padding: 16px;
	background: #0a0a0a;
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--poppins);
	font-size: var(--wp--preset--font-size--small);
	line-height: 20px;
	font-weight: 400;
	border: 0;
	border-radius: 0;
	cursor: pointer;
}
.sp-overlay .sp-overlay__close::before {
	content: "";
	width: 24px;
	height: 20px;
	flex: none;
	background:
		linear-gradient(45deg, transparent calc(50% - 0.5px), currentColor calc(50% - 0.5px), currentColor calc(50% + 0.5px), transparent calc(50% + 0.5px)) center / 17px 17px no-repeat,
		linear-gradient(-45deg, transparent calc(50% - 0.5px), currentColor calc(50% - 0.5px), currentColor calc(50% + 0.5px), transparent calc(50% + 0.5px)) center / 17px 17px no-repeat;
}
.sp-overlay .sp-overlay__close svg { display: none; }
@media (min-width: 640px) {
	.sp-overlay .sp-overlay__close { min-width: 190px; }
}
@media (min-width: 768px) {
	.sp-overlay .sp-overlay__close { margin-right: 0; }
}

/* Layout: one column, two from lg. The bar overlaps the top of the grid. */
.sp-overlay .sp-overlay__grid {
	display: grid;
	grid-template-columns: 1fr;
	min-height: 100vh;
	margin-top: -52px;
}
@media (min-width: 768px) {
	.sp-overlay .sp-overlay__grid { margin-top: -84px; }
}
@media (min-width: 1024px) {
	.sp-overlay .sp-overlay__grid { grid-template-columns: 1fr 1fr; }
}

/* ---- Left: links ---- */
.sp-overlay .sp-overlay__nav {
	padding-top: 100px;
	padding-bottom: 48px;
}
@media (min-width: 1024px) {
	.sp-overlay .sp-overlay__nav { padding-right: 48px; }
}
@media (min-width: 1280px) {
	.sp-overlay .sp-overlay__nav { padding-right: 95px; padding-left: 68px; }
}
@media (min-width: 1536px) {
	.sp-overlay .sp-overlay__nav { padding-top: 160px; }
}
.sp-overlay .sp-overlay__home,
.sp-overlay .sp-overlay__links a {
	font-size: var(--wp--preset--font-size--menu);
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--black);
}
.sp-overlay .sp-overlay__home { padding-bottom: 24px; }
.sp-overlay .sp-overlay__home a {
	display: flex;
	align-items: center;
	gap: 8px;
}
.sp-overlay .sp-overlay__home img {
	display: block;
	width: 12px !important;
	height: auto;
}
.sp-overlay .sp-overlay__label {
	align-items: center;
	gap: 12px;
	padding-bottom: 24px;
}
.sp-overlay .sp-overlay__label::after {
	content: "";
	flex: 1;
	height: 1px;
	background: color-mix(in srgb, var(--wp--preset--color--black) 10%, transparent);
}
.sp-overlay .sp-overlay__label p {
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: 2px;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--wp--preset--color--black);
	opacity: 0.3;
	transition: opacity 0.15s;
}
.sp-overlay .sp-overlay__label p:has(a):hover { opacity: 1; }
.sp-overlay .sp-overlay__links {
	display: flex;
	flex-direction: column;
	list-style: none;
}
.sp-overlay .sp-overlay__links--capabilities { padding-bottom: 12px; }
.sp-overlay .sp-overlay__links a {
	display: block;
	padding-bottom: 12px;
	opacity: 0.3;
	transition: opacity 0.15s;
}
.sp-overlay .sp-overlay__links a:hover { opacity: 1; }
@media (min-width: 1536px) {
	.sp-overlay .sp-overlay__links { gap: 12px; }
}

/* ---- Right: get in touch ---- */
.sp-overlay .sp-overlay__contact {
	position: relative;
	padding-bottom: 48px;
}
@media (min-width: 1024px) {
	.sp-overlay .sp-overlay__contact {
		padding-top: 220px;
		padding-left: 48px;
	}
	.sp-overlay .sp-overlay__contact::before {
		content: "";
		position: absolute;
		inset: 0 auto 0 0;
		width: 1px;
		background: color-mix(in srgb, var(--wp--preset--color--black) 10%, transparent);
	}
}
@media (min-width: 1280px) {
	.sp-overlay .sp-overlay__contact { padding-left: 95px; }
}
.sp-overlay .sp-overlay__touch { margin-bottom: 40px; }
.sp-overlay .sp-overlay__bolt { margin: 0 0 4px; }
.sp-overlay .sp-overlay__title {
	margin-bottom: 24px;
	font-size: clamp(2rem, 3.5vw, 3rem);
	font-weight: 700;
	line-height: 1.5;
}
.sp-overlay .sp-overlay__text {
	margin-bottom: 32px;
	font-family: var(--wp--preset--font-family--poppins);
	font-size: var(--wp--preset--font-size--medium);
	opacity: 0.6;
}
.sp-socials {
	align-items: center;
	gap: 24px;
}
.sp-socials .wp-block-image { margin: 0; }
.sp-socials a { transition: opacity 0.15s; }
.sp-socials a:hover { opacity: 0.7; }
.sp-overlay .sp-socials { margin-top: 32px; }

/* Staggered entrance, as the old framer-motion variants. */
@media (prefers-reduced-motion: no-preference) {
	.is-menu-open .sp-overlay__nav > * {
		animation: sp-menu-up 0.375s ease-out both;
	}
	.is-menu-open .sp-overlay__nav > :nth-child(1) { animation-delay: 0.15s; }
	.is-menu-open .sp-overlay__nav > :nth-child(2),
	.is-menu-open .sp-overlay__nav > :nth-child(3) { animation-delay: 0.25s; }
	.is-menu-open .sp-overlay__nav > :nth-child(4),
	.is-menu-open .sp-overlay__nav > :nth-child(5) { animation-delay: 0.35s; }
	.is-menu-open .sp-overlay__contact > * {
		animation: sp-menu-left 0.375s ease-out both;
	}
	.is-menu-open .sp-overlay__contact > :nth-child(1) { animation-delay: 0.25s; }
	.is-menu-open .sp-overlay__contact > :nth-child(2) { animation-delay: 0.4s; }
}
@keyframes sp-menu-up {
	from { transform: translateY(30vh); opacity: 0; }
	to { transform: none; opacity: 1; }
}
@keyframes sp-menu-left {
	from { transform: translateX(30vw); opacity: 0; }
	to { transform: none; opacity: 1; }
}

/* Editor: show the overlay part as a normal block of content. */
.editor-styles-wrapper .sp-overlay .sp-overlay__grid { margin-top: 0; min-height: 0; }
