@import "style.css";

:root {/*controllare che fanno*/
	--mm-ease: cubic-bezier(0.22, 1, 0.36, 1);

	--mm-z-header: 1000;
	--mm-z-panel: 999;
	--mm-z-overlay: 998;
	--mm-z-mobile: 1001;
}


/* =========================================================
   HEADER
   ========================================================= */


.mm-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background: var(--colori-pieni-bianco-default, #F0EEEA);
	border-bottom: 1px solid var(--colori-opacizzati-blu-10, rgba(22, 38, 64, 0.1));
	z-index: var(--mm-z-header);
	transform: translateY(0);
	/* background-color: fade morbido nel passaggio bianco pieno <-> trasparente
	   (.mm-header--on-hero qui sotto), invece dello scatto istantaneo di prima. */
	transition: transform 0.35s var(--mm-ease), border-color 0.2s ease, background-color 0.3s ease;
	will-change: transform;
	font-family: var(--font-body);
}

.mm-header__inner {
	margin: 0 auto;
	padding: var(--spacing-24, 24px) var(--mm-container-pad);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--spacing-32, 32px);
}

/* LOGO */
:root {
	--mm-logo-h: 20px;
}
@media (min-width: 2560px) {
	:root { --mm-logo-h: 28px; }
}
.mm-logo {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	text-decoration: none;
	color: inherit;
}
.mm-logo__img,
.mm-logo .custom-logo {
	display: block;
	height: var(--mm-logo-h);
	max-height: none;
	width: auto;
	max-width: 200px;
	object-fit: contain;
}
.mm-logo .custom-logo-link { display: inline-flex; }

/* NAV DESKTOP */
.mm-nav {
	display: flex;
	align-items: center;
	gap: var(--spacing-24, 24px);
}
@media (max-width: 1080px) {
	.mm-nav { display: none; }
}

.mm-nav__item { position: relative; }

.mm-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: var(--spacing-8, 8px);
	white-space: nowrap;
	flex-shrink: 0;
	font-family: var(--font-body);
	font-size: var(--body-sm-size);
	font-weight: var(--weight-regular);
	line-height: var(--body-sm-line);
	color: var(--colori-pieni-blu-300, #616b7d);
	background: none;
	border: none;
	transition: color 0.2s ease;
	text-decoration: none;
	cursor: pointer;
	border-bottom: 1px solid transparent;
}
.mm-nav__link:hover,
.mm-nav__link:focus-visible,
.mm-nav__link[aria-expanded="true"],
.mm-nav__link.is-active {
	color: var(--colori-pieni-blu-default, #162640);
	outline: none;
}
.mm-nav__link:focus-visible { outline: 2px solid var(--colori-pieni-blu-default); outline-offset: 2px; border-radius: var(--mm-radius-sm, 4px); }

/* Sottolineatura "disegnata" all'hover — stessa tecnica delle card del
   blog (vedi .mm-blog__card-title-text in blog.css): currentColor cosi'
   si adatta da sola sia al blu normale sia al bianco sopra la hero
   (.mm-header--on-hero qui sotto), senza bisogno di due varianti. */
.mm-nav__link-text {
	display: inline;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0% 1.5px;
	transition: background-size 0.6s var(--mm-ease);
}
/* .is-active (pagina corrente) resta escluso di proposito: li' deve
   restare acceso solo il cambio colore (vedi regola sopra), non la
   sottolineatura — quella e' riservata all'hover/focus vero e proprio. */
.mm-nav__link:hover .mm-nav__link-text,
.mm-nav__link:focus-visible .mm-nav__link-text,
.mm-nav__link[aria-expanded="true"] .mm-nav__link-text {
	background-size: 100% 1.5px;
}
.mm-nav__link .chev {
	width: 10px; height: 10px;
	transition: transform 0.3s var(--mm-ease);
}
.mm-nav__link[aria-expanded="true"] .chev { transform: rotate(180deg); }

/* CTA — dimensioni/colori/hover arrivano da .btn / .btn--gradiente in components.css
   (caricato dopo, stessa specificità: vince lui). Qui restano solo le proprietà
   che .btn NON imposta già. */
.mm-cta,
.mm-ctaMobile {
	flex-shrink: 0;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Hamburger mobile */
.mm-burger {
	display: none !important;
	background: none;
	border: none;
	padding: var(--spacing-4, 4px);
	color: var(--colori-pieni-blu-default, #162640);
	cursor: pointer;
}
.mm-burger__icon { width: 24px; height: 24px; display: block; }
.mm-header--on-hero .mm-burger { color: var(--colori-pieni-bianco-default, #F0EEEA); }
@media (max-width: 1080px) {
	.mm-burger    { display: inline-flex !important; align-items: center;
	z-index: 1002;}
	.mm-cta       { display: none !important; }
	.mm-ctaMobile { display: flex !important; }
}

/* =========================================================
   HEADER — variante "sopra la hero"
   Figma: Design System, node 851-705 (desktop), 851-1559 (tablet)
   Attivata via JS (mm-header.js) quando lo scroll è ancora
   dentro l'altezza della sezione hero della pagina corrente.
   Logo/burger valgono a tutte le larghezze; nav/cta solo desktop
   (su tablet/mobile sono comunque nascosti dietro l'hamburger).
   ========================================================= */
.mm-header--on-hero {
	background: transparent;
	border-bottom-color: transparent;
}
.mm-header--on-hero .mm-logo__img,
.mm-header--on-hero .custom-logo {
	filter: brightness(0) invert(1);
}

@media (min-width: 1081px) {
	.mm-header--on-hero .mm-nav__link {
		color: var(--colori-pieni-blu-50, #BEC2CA);
	}
	.mm-header--on-hero .mm-nav__link:hover,
	.mm-header--on-hero .mm-nav__link:focus-visible,
	.mm-header--on-hero .mm-nav__link[aria-expanded="true"],
	.mm-header--on-hero .mm-nav__link.is-active {
		color: var(--colori-pieni-bianco-default, #F0EEEA);
	}
	.mm-header--on-hero .mm-nav__link .chev { color: currentColor; }

	/* CTA "Contattaci": nasce come .btn--outline-blu (adatta all'header a
	   sfondo bianco) — sopra la hero, a sfondo trasparente, diventa
	   outline bianca riusando gli stessi valori di .btn--outline-bianco. */
	.mm-header--on-hero .mm-cta {
		background-color: transparent;
		border-color:      var(--colori-pieni-bianco-200, #FBF9F7);
		color:             var(--colori-pieni-bianco-default, #F0EEEA);
	}

	.mm-header--on-hero .mm-cta:hover {
		background-color: transparent;
		border-color:      var(--colori-pieni-bianco-default, #F0EEEA);
		color:             var(--colori-pieni-bianco-default, #F0EEEA);
	}

	.mm-header--on-hero .mm-cta:active,
	.mm-header--on-hero .mm-cta:focus-visible {
		background-color: var(--colori-pieni-bianco-default, #F0EEEA);
		border-color:      var(--colori-pieni-bianco-default, #F0EEEA);
		color:             var(--colori-pieni-blu-default, #162640);
	}

}

/* =========================================================
   DROPDOWN PANEL
   Figma: Design System, node 851-734 "Dropdown"
   ========================================================= */
.mm-panel {
	position: fixed;
	top: var(--mm-header-actual-h, 84px);
	left: 0;
	right: 0;
	bottom: 0;
	overflow-y: auto;
	background: var(--colori-pieni-bianco-default, #F0EEEA);
	z-index: var(--mm-z-panel);
	visibility: hidden;
	pointer-events: none;
	clip-path: inset(0 0 100% 0);
	font-family: var(--font-body);
}
.mm-panel.is-open { visibility: visible; pointer-events: auto; }

.mm-panel__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: safe center;
	min-height: 100%;

	/* Sotto i 1657px la colonna sinistra (titolo) inizia a stare stretta:
	   riduciamo gradualmente il padding laterale fino a un minimo di 150px
	   a 1081px (limite inferiore desktop), invece di restare fisso a 224px. */
	padding-inline: var(--spacing-224, 224px);
}
@media (min-width: 2560px) {
	.mm-panel__inner { padding-inline: var(--spacing-320, 320px) !important; 
	.mm-panel__row-links{
		width: 400px;
	}}
}

/* Riga "Business Unit": titolo BU a sinistra, elenco soluzioni a destra */
.mm-panel__row {
	display: flex;
	align-items: center;
	/* Stesso range del padding di .mm-panel__inner (1081-1657px): si riduce
	   insieme al padding laterale, altrimenti a schermi stretti il titolo
	   finisce per sovrapporsi alla colonna di destra. */
	gap: clamp(var(--spacing-40, 40px), calc(var(--spacing-40, 40px) + (100vw - 1081px) * 0.4114), 300px);
	width: 100%;
	padding-block: var(--spacing-20, 20px);
	border-top: 1px solid var(--colori-opacizzati-blu-10, rgba(22, 38, 64, 0.1));
	box-sizing: border-box;
	justify-content: space-between;
}
.mm-panel__row:first-child { border-top: none; }

.mm-panel__row-title {
	/* Larghezza fissa (non cresce): cosi' la colonna di destra (link) si
	   attacca subito dopo il titolo, a sinistra, invece di essere spinta
	   verso il bordo destro del pannello come succedeva con flex-grow:1. */
	flex: 0 0 400px;
	margin: 0;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	font-family: var(--font-heading);
	font-weight: var(--weight-regular);
	font-size: var(--h4-size);
	line-height: var(--h4-line);
	color: var(--colori-pieni-blu-default, #162640);
}

.mm-panel__row-links {
	min-width: 0;
	width: 260px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-8, 8px);
	list-style: none;
	margin: 0;
	padding: 0;
}
.mm-panel__row-links a {
	font-family: var(--font-body);
	font-weight: var(--weight-regular);
	font-size: var(--body-sm-size);
	line-height: var(--body-sm-line);
	color: var(--colori-opacizzati-blu-50, rgba(22, 38, 64, 0.5));
	text-decoration: none;
	transition: color 0.2s ease;
}
.mm-panel__row-links a:hover { color: var(--colori-pieni-blu-default, #162640); }

/* Sottolineatura "disegnata" all'hover — SOLO nel pannello Soluzioni
   (#panel-soluzioni, vedi header-madmedia.php: id generato dallo slug del
   titolo della voce di menu), non nel pannello MadSuite ne' negli altri,
   su richiesta esplicita. Stessa tecnica delle card del blog. */
#panel-soluzioni .mm-panel__row-links a {
	display: inline;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0% 1.5px;
	transition: background-size 0.6s var(--mm-ease), color 0.2s ease;
	color: var(--colori-pieni-blu-300);
}
#panel-soluzioni .mm-panel__row-links a:hover {
	background-size: 100% 1.5px;
	color: var(--colori-pieni-blu-default, #162640);
}

/* Riga con descrizione + bottone (es. voci MadSuite senza sottopagine, es. MadApproval/MadReport) */
.mm-panel__row-content {
	flex: 0 0 480px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-12, 12px);
}
.mm-panel__row-btn { width: 100%; }
.mm-panel__row-desc {
	margin: 0;
	font-family: var(--font-body);
	font-weight: var(--weight-regular);
	font-size: var(--body-sm-size);
	line-height: var(--body-sm-line);
	color: var(--colori-opacizzati-blu-50, rgba(22, 38, 64, 0.5));
}

/* Overlay */
.mm-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(22, 38, 65, 0.2);
	z-index: var(--mm-z-overlay);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.3s ease;
}
.mm-overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto; }

/* =========================================================
   MOBILE MENU
   ========================================================= */
@media (max-width: 1080px) {
	.mm-header__inner { padding: var(--spacing-24, 24px) var(--spacing-40, 40px); }
}
@media (max-width: 767px) {
	.mm-header__inner { padding: var(--spacing-20, 20px); }
}

.mm-mobile {
	position: fixed;
	inset: 0;
	background: var(--colori-pieni-bianco-default, #F0EEEA);
	color: var(--colori-pieni-blu-default, #162640);
	z-index: var(--mm-z-mobile);
	display: flex;
	flex-direction: column;
	visibility: hidden;
	pointer-events: none;
	clip-path: inset(0 0 100% 0);
	font-family: var(--font-body);
}
.mm-mobile.is-open { visibility: visible; pointer-events: auto; }

/* Top bar del menu aperto — Figma: Design System, node 851-1574 (tablet), 865-1798 (mobile) */
.mm-mobile__header {
	padding: var(--spacing-40, 40px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: var(--colori-pieni-bianco-default, #F0EEEA);
	border-bottom: 1px solid var(--colori-opacizzati-blu-10, rgba(22, 38, 64, 0.1));
	flex-shrink: 0;
}

@media (max-width: 1080px) {
	.mm-mobile__header { padding: var(--spacing-24, 24px) var(--spacing-40, 40px); }
}

@media (max-width: 767px) {
	.mm-mobile__header { padding: var(--spacing-20, 20px); }
}

.mm-mobile__logo {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	text-decoration: none;
}
.mm-mobile__logo-img,
.mm-mobile__logo .custom-logo {
	display: block;
	height: 20px;
	max-height: none;
	width: auto;
	max-width: 200px;
	object-fit: contain;
}
.mm-mobile__logo .custom-logo-link { display: inline-flex; }
.mm-mobile__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	background: none;
	border: none;
	color: var(--colori-pieni-blu-default, #162640);
	cursor: pointer;
	padding: 0;
}
.mm-mobile__close svg { width: 24px; height: 24px; }

/* Corpo del menu — sotto-livelli (lista, sottomenu) ancora da ricostruire */
.mm-mobile__body {
	flex: 1;
	position: relative;
	overflow: hidden;
	background: var(--colori-pieni-bianco-default, #F0EEEA);
}
.mm-mobile__levels {
	position: absolute;
	inset: 0;
	display: flex;
	width: 200%;
}
.mm-mobile__level {
	width: 50%;
	height: 100%;
	overflow-y: auto;
	padding: var(--spacing-40, 40px) 160px;
	display: flex;
	flex-direction: column;
	justify-content: safe center;
	align-items: center;
	gap: var(--spacing-80);
	flex: 1 0 0;
	align-self: stretch;
}
@media (max-width: 767px) {

	/* Figma: Design System, node 865-1798 (livello 1), 865-1823 (livello 2) */
	.mm-mobile__level { padding-inline: var(--spacing-80, 80px); 
	padding: var(--spacing-80, 80px) var(--spacing-20, 20px);}
}
#mm-mobile-L2 {
	padding-top: var(--spacing-80, 80px);
	padding-bottom: var(--spacing-80, 80px);
}

/* Lista voci livello 1 — Figma: Design System, node 851-1578 "Navigazione" */
.mm-mobile__list {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: var(--spacing-32, 32px);
}
.mm-mobile__list > li > .mm-mobile__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--spacing-16, 16px);
	width: 100%;
	padding-bottom: var(--spacing-16, 16px);
	background: none;
	border: none;
	border-bottom: 1px solid var(--colori-opacizzati-blu-10, rgba(22, 38, 64, 0.1));
	color: var(--colori-pieni-blu-default, #162640);
	font-family: var(--font-body);
	font-size: var(--body-lg-size);
	font-weight: var(--weight-regular);
	line-height: var(--body-lg-line);
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}
.mm-mobile__link svg { width: 8px; height: 14px; flex-shrink: 0; color: currentColor; }

.div-bottone { width: 100%; }
.div-bottone .btn { width: 100%; }

/* Bottone "Indietro" livello 2 — Figma: Design System, node 851-1600
   Riusa la stessa freccia del livello 1, specchiata (il verso "avanti" del
   livello 1 diventa "indietro" ruotandola di 180°). */
.mm-mobile__back {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-8, 8px);
	background: none;
	border: none;
	width: 100%;
	padding: 0;
	color: var(--colori-pieni-blu-300, #616B7D);
	font-family: var(--font-body);
	font-size: var(--body-lg-size);
	font-weight: var(--weight-regular);
	line-height: var(--body-lg-line);
	cursor: pointer;
}
.mm-mobile__back svg { width: 8px; height: 14px; flex-shrink: 0; color: currentColor; transform: rotate(180deg); }

/* Livello 2 — Figma: Design System, node 851-1600 "Menu" */
#mm-mobile-L2-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--spacing-80, 80px);
	width: 100%;
}
.mm-mobile__l2-group {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-32, 32px);
	width: 100%;
}
.mm-mobile__l2-group-title {
	margin: 0;
	width: 100%;
	font-family: var(--font-heading);
	font-weight: var(--weight-regular);
	font-size: var(--h3-size);
	line-height: var(--h3-line);
	color: var(--colori-pieni-blu-default, #162640);
}
.mm-mobile__l2-links {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-32, 32px);
	width: 100%;
}
.mm-mobile__l2-link {
	width: 100%;
	padding-bottom: var(--spacing-16, 16px);
	border-bottom: 1px solid var(--colori-opacizzati-blu-10, rgba(22, 38, 64, 0.1));
}
.mm-mobile__l2-link a {
	display: block;
	color: var(--colori-pieni-blu-400, #3b495f);
	font-family: var(--font-body);
	font-size: var(--body-lg-size);
	font-weight: var(--weight-regular);
	line-height: var(--body-lg-line);
	text-decoration: none;
}

/* Voce livello 2 senza sottopagine (es. MadApproval/MadReport):
   descrizione + bottone al posto della lista link — Figma: node 851-1648 */
.mm-mobile__l2-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-32, 32px);
	width: 100%;
}
.mm-mobile__l2-desc {
	margin: 0;
	width: 100%;
	color: var(--colori-pieni-blu-default, #162640);
	font-family: var(--font-body);
	font-weight: var(--weight-regular);
	font-size: var(--body-lg-size);
	line-height: var(--body-lg-line);
}
.mm-mobile__l2-btn { width: 100%; }

/* =========================================================
   Accessibility / reduced motion
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
	.mm-header,
	.mm-panel,
	.mm-overlay {
		transition-duration: 0.01ms !important;
	}
}


@media(min-width: 1820px){

.mm-panel__row-title {
	flex: 0 0 600px;
}
}


@media(min-width: 2560px){
	.mm-header__inner{
		padding: var(--spacing-40, 40px) var(--spacing-80, 80px);
	}
	.mm-panel__row-title {
	flex: 0 0 900px !important;
}
}