/*
 * Macchi — footer: logo, recapiti, liste, lingua e riga legale
 * Life Color — 12/10/2026 — cmd 007
 * Life Color — 12/10/2026 — cmd 008 — freccia delle voci "di più" in SVG.
 * Note: misure dal Figma (componente FOOTER 268:1196), vedi 01-documenti/specifiche/footer-chiosa.md.
 * Scelte AA del 12/10/2026: voci "di più" (classe ms-footer-more) bianche con freccia teal
 * decorativa; hover dei link bianco sottolineato; lingua non attiva bianca Light; focus bianco
 * (il teal sul grigio medio è 2,1:1). Lo stile di base di .ms-lang è in header.css.
 */

/* Container del template Footer di Elementor: niente padding, il footer gestisce i suoi margini. */
.e-con.ms-footer-wrap {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
}

.ms-footer {
	--ms-footer-side: max(80px, calc((100% - 1164px) / 2));
	--ms-footer-gap: 75px;
	box-sizing: border-box;
	width: 100%;
	padding: 82px var(--ms-footer-side) 0;
	background-color: var(--ms-gray-mid);
	color: var(--ms-white);
	font-family: var(--ms-font);
}

.ms-footer p,
.ms-footer ul,
.ms-footer address {
	margin: 0;
}

.ms-footer a,
.ms-footer a:visited {
	color: inherit;
}

.ms-footer a:focus-visible {
	outline: 2px solid var(--ms-white);
	outline-offset: 3px;
}

/* -------------------------------------------------------------------------------- Riga principale */

.ms-footer__main {
	display: flex;
	align-items: center;
	gap: var(--ms-footer-gap);
	padding-bottom: 72px;
}

.ms-footer__brand {
	display: flex;
	flex: 0 1 191px;
	flex-direction: column;
	gap: 51px;
	min-width: 0;
}

.ms-footer__logo {
	display: inline-block;
	align-self: flex-start;
	line-height: 0;
}

.ms-footer__logo img {
	display: block;
	width: 191px;
	max-width: 100%;
	height: auto;
}

.ms-footer__claim,
.ms-footer__address {
	font-size: 12px;
	font-style: normal;
	font-weight: 600;
	line-height: 17px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ms-footer__address a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ms-footer__address a:hover {
	text-decoration-thickness: 2px;
}

/* ------------------------------------------------------------------------------------ Liste */

.ms-footer__col {
	flex: 0 1 191px;
	min-width: 0;
}

.ms-footer__col--wide {
	flex-basis: 197px;
}

/* Life Color — 12/10/2026 — cmd 007 rettifica A — titoli allineati in alto, 30 px sotto il logo
   (Figma); la lingua resta centrata in verticale. */
.ms-footer__col {
	align-self: flex-start;
	margin-top: 30px;
}

.ms-footer__title {
	margin: 0 0 77px;
	font-size: 18px;
	font-weight: 400;
	line-height: 22px;
	text-transform: uppercase;
}

.ms-footer__list {
	padding: 0;
	list-style: none;
}

.ms-footer__list li {
	margin: 0;
}

.ms-footer__list a,
.ms-footer__list a:visited {
	display: inline-block;
	padding: 6px 0;
	color: var(--ms-surface);
	font-size: 12px;
	font-weight: 600;
	line-height: 14px;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.ms-footer__list a:hover,
.ms-footer__list a[aria-current="page"] {
	color: var(--ms-white);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Voci "di più" (classe CSS della voce di menu): bianche, con freccia teal decorativa. */
.ms-footer__list .ms-footer-more a,
.ms-footer__list .ms-footer-more a:visited {
	color: var(--ms-white);
}

/* Life Color — 12/10/2026 — cmd 008 — freccia come icona SVG usata da maschera: il carattere "→"
   non è nel sottoinsieme latin di Inter e il browser lo disegnava minuscolo con un altro font. */
.ms-footer__list .ms-footer-more a::after {
	content: "";
	display: inline-block;
	width: 12px;
	height: 10px;
	margin-left: 0.5em;
	background-color: var(--ms-teal);
	-webkit-mask: url("../img/icon-arrow-right.svg") center / contain no-repeat;
	mask: url("../img/icon-arrow-right.svg") center / contain no-repeat;
}

/* ------------------------------------------------------------------------------------ Lingua */

.ms-footer__lang {
	margin-left: auto;
}

.ms-footer .ms-lang {
	margin: 0;
	font-size: 20px;
	line-height: 26px;
	letter-spacing: 0.13em;
}

.ms-footer .ms-lang a,
.ms-footer .ms-lang a:visited {
	display: inline-block;
	padding: 9px 0;
	color: var(--ms-white);
	font-weight: 300;
}

.ms-footer .ms-lang .is-current a {
	font-weight: 600;
}

.ms-footer .ms-lang li + li::before {
	font-weight: 600;
}

.ms-footer .ms-lang a:hover {
	color: var(--ms-white);
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* -------------------------------------------------------------------------------- Riga legale */

.ms-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 32px;
	padding: 20px 0 24px;
	border-top: 1px solid var(--ms-gray-light);
	color: var(--ms-surface);
	font-size: 12px;
	line-height: 17px;
	letter-spacing: 0.04em;
}

.ms-footer__legal-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0 24px;
	padding: 0;
	list-style: none;
}

.ms-footer__legal-list li {
	margin: 0;
}

.ms-footer__legal-list a,
.ms-footer__legal-list a:visited {
	display: inline-block;
	padding: 6px 0;
	color: var(--ms-surface);
	text-decoration: none;
}

.ms-footer__legal-list a:hover {
	color: var(--ms-white);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ------------------------------------------------------------------------------ Responsive */

/* Laptop: le colonne si stringono. */
@media (max-width: 1366px) {
	.ms-footer {
		--ms-footer-gap: clamp(32px, 5.2vw, 75px);
	}
}

/* Tablet: logo e recapiti su una riga larga, lingua in alto a destra, tre liste in colonna. */
@media (max-width: 1024px) {
	.ms-footer {
		padding: 64px 32px 0;
	}

	.ms-footer__main {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: start;
		gap: 48px 32px;
		padding-bottom: 56px;
	}

	.ms-footer__brand {
		grid-column: 1 / 3;
		gap: 32px;
	}

	.ms-footer__lang {
		grid-row: 1;
		grid-column: 3;
		justify-self: end;
		margin-left: 0;
	}

	.ms-footer__title {
		margin-bottom: 16px;
	}

	.ms-footer__col {
		margin-top: 0;
	}

	/* Aree cliccabili di almeno 44 px (CLAUDE.md §5). */
	.ms-footer__list a,
	.ms-footer__list a:visited,
	.ms-footer__legal-list a,
	.ms-footer__legal-list a:visited {
		padding: 15px 0;
	}
}

/* Mobile: liste su due colonne, lingua dopo le liste. */
@media (max-width: 767px) {
	.ms-footer {
		padding: 56px 24px 0;
	}

	.ms-footer__main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 40px 24px;
		padding-bottom: 40px;
	}

	.ms-footer__brand {
		grid-column: 1 / -1;
	}

	.ms-footer__lang {
		grid-row: auto;
		grid-column: 1 / -1;
		justify-self: start;
	}

	.ms-footer__legal {
		flex-direction: column;
		align-items: flex-start;
	}
}
