/*
 * Menu mobile V430.
 * Tutto è sotto .v430-mnav, classe aggiunta da mobile-menu.js:
 * se lo script non parte, resta il pannello Woodmart di sempre.
 */

/* Instrument Sans con asse della larghezza (solo peso 600): lo usano solo le voci del menu.
   Precaricato nell'<head> da inc/mobile-menu.php, font-display block: niente cambio di font a vista. */
@font-face {
	font-family: "V430 Menu Sans";
	src: url("../fonts/instrument-sans-600-wdth-latin.woff2") format("woff2");
	font-weight: 600;
	font-stretch: 75% 100%;
	font-style: normal;
	font-display: block;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.mobile-nav.v430-mnav {
	--v430-ease-out: cubic-bezier(.19, 1, .22, 1); /* la stessa curva del pannello Woodmart */
	--v430-ease-in: cubic-bezier(.7, 0, .84, 0);
	--v430-ox: 25px; /* centro dell'hamburger nell'header mobile */
	--v430-oy: 33px;
	--v430-pink: var(--v430-primary-color, #fe1784);
	--v430-t1: #fff;
	--v430-t2: #d0d0d0;
	--v430-t3: #a2a2a2;
	--wd-side-hidden-w: 100%;

	left: 0;
	right: 0;
	width: 100%;
	max-width: none;
	display: flex;
	flex-direction: column;
	padding: 0 24px 28px;
	isolation: isolate;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	background:
		radial-gradient(120% 60% at 0% 100%, rgba(254, 24, 132, .22), rgba(254, 24, 132, 0) 60%),
		linear-gradient(180deg, rgba(24, 24, 24, .35), rgba(24, 24, 24, 0) 30%),
		rgba(20, 20, 20, .5);
	scrollbar-width: none;
	-webkit-backdrop-filter: blur(28px) saturate(160%);
	backdrop-filter: blur(28px) saturate(160%);
	box-shadow: none;
	transform: none;
	clip-path: circle(0px at var(--v430-ox) var(--v430-oy));
	visibility: hidden;
	transition: clip-path .55s var(--v430-ease-in), visibility 0s linear .55s;
}

.mobile-nav.v430-mnav:not(.wd-opened) {
	pointer-events: none; /* mentre si richiude non deve coprire l'hamburger */
}

.mobile-nav.v430-mnav::-webkit-scrollbar {
	display: none;
}

.mobile-nav.v430-mnav.wd-opened {
	clip-path: circle(160% at var(--v430-ox) var(--v430-oy));
	visibility: visible;
	transition: clip-path .9s var(--v430-ease-out), visibility 0s;
}

/* il pannello copre tutto: lo scuro di Woodmart dietro non serve più */
.wd-close-side.wd-close-side-opened {
	background-color: transparent;
}

/* ---------- ombra rosa che si muove ---------- */
.mobile-nav.v430-mnav > .v430-mnav-glow {
	position: absolute;
	pointer-events: none;
	z-index: 0;
	left: -80px;
	top: 0;
	width: 360px;
	height: 180px;
	opacity: 0;
	transform: translateY(calc(var(--v430-gy, 300px) - 90px));
	transition: transform .7s var(--v430-ease-out), opacity .5s;
}

.mobile-nav.v430-mnav.wd-opened > .v430-mnav-glow {
	opacity: 1;
	transition: transform .7s var(--v430-ease-out), opacity .8s .3s;
}

.mobile-nav.v430-mnav > .v430-mnav-glow i {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(254, 24, 132, .55), rgba(254, 24, 132, 0));
	filter: blur(24px);
	animation: v430-mnav-drift 7s ease-in-out infinite alternate;
}

@keyframes v430-mnav-drift {
	0% { transform: translateX(0) scale(1); }
	50% { transform: translateX(40px) scale(1.12); }
	100% { transform: translateX(10px) scale(.94); }
}

.mobile-nav.v430-mnav > :not(.v430-mnav-glow) {
	position: relative;
	z-index: 1;
}

/* ---------- testata: X al posto dell'hamburger, logo al centro ---------- */
.mobile-nav.v430-mnav .wd-heading {
	flex: none;
	display: block;
	height: 66px;
	margin: 0 -24px;
	padding: 0;
	border: 0;
	background: none;
}

.mobile-nav.v430-mnav .wd-heading .close-side-widget {
	position: absolute;
	left: calc(var(--v430-ox) - 22px);
	top: calc(var(--v430-oy) - 22px);
	margin: 0;
}

.mobile-nav.v430-mnav .close-side-widget > a {
	position: relative;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: var(--v430-t1);
}

.mobile-nav.v430-mnav .close-side-widget .wd-action-icon {
	display: none;
}

.mobile-nav.v430-mnav .close-side-widget .wd-action-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.mobile-nav.v430-mnav .close-side-widget > a::before,
.mobile-nav.v430-mnav .close-side-widget > a::after {
	content: "";
	position: absolute;
	top: 21px;
	left: 11px;
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transform: rotate(0deg) scaleX(.3);
	transition: transform .6s var(--v430-ease-out) .1s;
}

.mobile-nav.v430-mnav.wd-opened .close-side-widget > a::before {
	transform: rotate(45deg);
}

.mobile-nav.v430-mnav.wd-opened .close-side-widget > a::after {
	transform: rotate(-45deg);
}

.mobile-nav.v430-mnav .v430-mnav-logo {
	position: absolute;
	top: 8px; /* valori di riserva: all'apertura lo script copia posizione e misura del logo dell'header */
	left: 50%;
	width: 120px;
	height: auto;
	max-width: none;
	transform: translateX(-50%);
}

/* ---------- voci ---------- */
.mobile-nav.v430-mnav .wd-nav-mobile {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	justify-content: center;
	margin: 0;
	padding: 12px 0;
	border: 0;
}

/* Woodmart dà alle voci flex: 1 1 100%, che in colonna le allunga a tutta altezza */
.mobile-nav.v430-mnav .wd-nav-mobile > li {
	flex: none;
	border: 0;
	opacity: 0;
	transform: translateY(26px);
	filter: blur(6px);
	transition: opacity .2s, transform .25s, filter .2s;
}

.mobile-nav.v430-mnav.wd-opened .wd-nav-mobile > li {
	opacity: 1;
	transform: none;
	filter: none;
	transition:
		opacity .6s var(--v430-ease-out) calc(.16s + var(--v430-i, 0) * .045s),
		transform .9s var(--v430-ease-out) calc(.16s + var(--v430-i, 0) * .045s),
		filter .6s var(--v430-ease-out) calc(.16s + var(--v430-i, 0) * .045s);
}

.mobile-nav.v430-mnav .wd-nav-mobile > li > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 48px;
	padding: 6px 0;
	border: 0;
	background: none;
	font-family: "V430 Menu Sans", "Instrument Sans", Arial, Helvetica, sans-serif;
	font-weight: 600;
	font-stretch: 78%;
	font-size: clamp(24px, 7.4vw, 34px);
	line-height: 1.05;
	letter-spacing: -.005em;
	text-transform: uppercase;
	color: var(--v430-t1);
	transition: color .35s, letter-spacing .5s var(--v430-ease-out);
}

.mobile-nav.v430-mnav .wd-nav-mobile > li > a .nav-link-text {
	font: inherit;
	letter-spacing: inherit;
	color: inherit;
}

.mobile-nav.v430-mnav .wd-nav-mobile > li > a::after {
	content: "\2192";
	font-family: "Poppins", Arial, Helvetica, sans-serif;
	font-size: 20px;
	font-weight: 400;
	font-stretch: 100%;
	opacity: 0;
	transform: translateX(-10px);
	transition: opacity .35s, transform .5s var(--v430-ease-out);
}

.mobile-nav.v430-mnav .wd-nav-mobile > li.current-menu-item > a {
	color: var(--v430-pink);
}

.mobile-nav.v430-mnav .wd-nav-mobile > li.current-menu-item > a::after,
.mobile-nav.v430-mnav .wd-nav-mobile > li > a:focus-visible::after {
	opacity: 1;
	transform: none;
}

.mobile-nav.v430-mnav .wd-nav-mobile > li > a:focus-visible,
.mobile-nav.v430-mnav .close-side-widget > a:focus-visible,
.mobile-nav.v430-mnav .v430-mnav-foot a:focus-visible {
	outline: 2px solid var(--v430-pink);
	outline-offset: 3px;
}

@media (hover: hover) {
	.mobile-nav.v430-mnav .wd-nav-mobile:hover > li > a:not(:hover) {
		color: var(--v430-t3);
	}

	.mobile-nav.v430-mnav .wd-nav-mobile > li > a:hover {
		letter-spacing: .015em;
		color: var(--v430-t1);
	}

	.mobile-nav.v430-mnav .wd-nav-mobile > li > a:hover::after {
		opacity: 1;
		transform: none;
	}
}

/* ---------- blocco in fondo ---------- */
.mobile-nav.v430-mnav .v430-mnav-foot {
	flex: none;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-top: 20px;
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .2s, transform .25s;
}

.mobile-nav.v430-mnav.wd-opened .v430-mnav-foot {
	opacity: 1;
	transform: none;
	transition: opacity .7s var(--v430-ease-out) .62s, transform .9s var(--v430-ease-out) .62s;
}

.mobile-nav.v430-mnav .v430-mnav-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 5px 20px;
	border-radius: 35px;
	background: var(--v430-pink);
	color: #fff;
	/* come le altre CTA del sito: Instrument Sans 13px, peso 600, maiuscolo */
	font: 600 13px/1.2 "Instrument Sans", Arial, Helvetica, sans-serif;
	letter-spacing: normal;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .3s;
}

.mobile-nav.v430-mnav .v430-mnav-cta:hover {
	background: #ff0077;
	color: #fff;
}

.mobile-nav.v430-mnav .v430-mnav-contacts,
.mobile-nav.v430-mnav .v430-mnav-socials {
	display: flex;
	flex-wrap: wrap;
}

.mobile-nav.v430-mnav .v430-mnav-contacts {
	justify-content: space-between;
	gap: 12px;
}

.mobile-nav.v430-mnav .v430-mnav-socials {
	gap: 4px;
	margin-left: -10px; /* l'area da toccare è 44px, l'icona 22px: allinea l'icona al margine */
}

.mobile-nav.v430-mnav .v430-mnav-contacts a,
.mobile-nav.v430-mnav .v430-mnav-socials a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	text-decoration: none;
}

.mobile-nav.v430-mnav .v430-mnav-contacts a {
	color: var(--v430-t2);
	font-size: 15px;
}

.mobile-nav.v430-mnav .v430-mnav-socials a {
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--v430-t2);
	transition: color .3s;
}

.mobile-nav.v430-mnav .v430-mnav-socials svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.mobile-nav.v430-mnav .v430-mnav-socials .v430-dot {
	fill: currentColor;
	stroke: none;
}

.mobile-nav.v430-mnav .v430-mnav-contacts a:hover,
.mobile-nav.v430-mnav .v430-mnav-socials a:hover {
	color: var(--v430-pink);
}

/* schermi bassi (iPhone con le barre di Safari, SE e simili): tutto in una schermata, voci ancora a 44px */
@media (max-height: 820px) {
	.mobile-nav.v430-mnav .wd-nav-mobile {
		padding: 4px 0;
	}

	.mobile-nav.v430-mnav .wd-nav-mobile > li > a {
		min-height: 44px;
		padding: 4px 0;
		font-size: clamp(22px, 6.8vw, 30px);
	}

	.mobile-nav.v430-mnav .v430-mnav-foot {
		gap: 12px;
		padding-top: 12px;
	}

}

/* tablet: la colonna non si allarga oltre il leggibile */
@media (min-width: 600px) {
	.mobile-nav.v430-mnav .wd-nav-mobile,
	.mobile-nav.v430-mnav .v430-mnav-foot {
		width: 100%;
		max-width: 520px;
		margin-left: auto;
		margin-right: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mobile-nav.v430-mnav,
	.mobile-nav.v430-mnav.wd-opened {
		clip-path: none;
		opacity: 0;
		transition: opacity .2s, visibility 0s linear .2s;
	}

	.mobile-nav.v430-mnav.wd-opened {
		opacity: 1;
		transition: opacity .2s;
	}

	.mobile-nav.v430-mnav .wd-nav-mobile > li,
	.mobile-nav.v430-mnav .v430-mnav-foot,
	.mobile-nav.v430-mnav.wd-opened .wd-nav-mobile > li,
	.mobile-nav.v430-mnav.wd-opened .v430-mnav-foot {
		transform: none;
		filter: none;
		transition: opacity .2s;
	}

	.mobile-nav.v430-mnav > .v430-mnav-glow {
		transition: none;
	}

	.mobile-nav.v430-mnav > .v430-mnav-glow i {
		animation: none;
	}
}
