/* Sezioni sotto la prima schermata. Caricato senza bloccare il rendering; le variabili sono in critical.css. */
/* Le regole tra "@sezione chiave" e il marcatore successivo appartengono a una sola sezione: se la sezione è disattivata non vengono caricate (inc/sezioni.php). "@sezione comune" chiude un blocco. */

/* Struttura comune delle sezioni */
.sezione { padding-block: var(--sezione); }
.sezione--alt { background: var(--c-fondo-alt); border-block: 1px solid var(--c-linea); }

.sezione__intestazione {
	max-width: 46rem;
	margin-bottom: var(--s-6);
}

.sezione__titolo { font-size: var(--t-h2); }

.sezione__sottotitolo {
	max-width: 36rem;
	margin-top: var(--s-4);
	font-size: var(--t-grande);
	line-height: 1.45;
}

.sezione__cta { margin-top: var(--s-7); }

@media (min-width: 64rem) {
	.sezione__intestazione { margin-bottom: var(--s-7); }
}

/* Prezzo in grande */
.prezzo-grande {
	color: var(--c-scuro);
	font-size: clamp(2.75rem, 2rem + 3vw, 4rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
}
.prezzo-grande .iva { margin-left: 0.5rem; font-size: 1rem; }
.prezzo-grande small:not(.iva) {
	display: block;
	margin-bottom: var(--s-1);
	color: var(--c-testo-2);
	font-size: var(--t-piccolo);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* @sezione problemi */
/* Problemi */
.problemi__griglia {
	display: grid;
	gap: var(--s-3);
}

.problema {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: var(--s-4);
	row-gap: var(--s-1);
	padding: var(--s-5);
	background: var(--c-fondo);
	border: 2px solid var(--c-linea);
	border-radius: var(--raggio-grande);
}

.problema__icona {
	grid-row: span 2;
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border: 2px solid var(--c-scuro);
	border-radius: 50%;
	background: var(--c-fondo);
	color: var(--c-scuro);
}
.problema__icona .icona { width: 1.5rem; height: 1.5rem; stroke-width: 2; }

.problema__titolo {
	align-self: end;
	font-size: 1.3125rem;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.problema__testo { line-height: 1.45; }

/* Hover solo con il mouse. Le card non sono cliccabili: niente cursore a manina né focus. */
@media (hover: hover) {
	.problema,
	.problema__icona {
		transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
	}

	.problema:hover {
		transform: translateY(-4px);
		border-color: var(--c-accento);
		box-shadow: 0 18px 36px -18px rgb(48 48 46 / 0.28);
	}

	.problema:hover .problema__icona {
		background: var(--c-accento);
		transform: translateY(-2px);
	}
}

@media (hover: hover) and (prefers-reduced-motion: reduce) {
	.problema,
	.problema__icona { transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease; }
	.problema:hover,
	.problema:hover .problema__icona { transform: none; }
}

/* Analisi gratuita del sito: CTA principale della sezione Problemi */
.analisi {
	display: grid;
	gap: var(--s-4);
	margin-top: var(--s-6);
	padding: var(--s-5);
	background: var(--c-fondo);
	border: 2px solid var(--c-scuro);
	border-radius: var(--raggio-grande);
	box-shadow: 6px 6px 0 var(--c-accento);
}
.analisi__testo { color: var(--c-scuro); font-size: var(--t-grande); line-height: 1.4; }

@media (min-width: 64rem) {
	.analisi { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--s-6); padding: var(--s-6); }
	.analisi .cta { justify-items: end; }
	.analisi .cta__rischio { text-align: right; }
}

.problemi__nuovo a { margin-left: var(--s-1); color: var(--c-scuro); font-weight: 700; white-space: nowrap; }

.problemi__nuovo {
	margin-top: var(--s-4);
	padding: var(--s-4) var(--s-5);
	background: var(--c-accento-chiaro);
	color: var(--c-scuro);
	border-radius: var(--raggio);
	font-size: var(--t-grande);
	line-height: 1.4;
}

@media (min-width: 40rem) {
	.problemi__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4); }
	.problema { grid-template-columns: 1fr; row-gap: var(--s-3); }
	.problema__icona { grid-row: auto; }
	.problema__titolo { align-self: start; }

	/* Icone, titoli e testi allineati tra le card della stessa riga. */
	@supports (grid-template-rows: subgrid) {
		.problemi__griglia { row-gap: var(--s-4); }
		.problema { grid-row: span 3; grid-template-rows: subgrid; }
	}
}

@media (min-width: 64rem) {
	.problemi__griglia { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.problema { padding: var(--s-6) var(--s-5); }
	.problemi__nuovo { margin-top: var(--s-6); }
}

/* @sezione soluzione */
/* Soluzione: cosa ottieni */
.soluzione__griglia {
	display: grid;
	row-gap: var(--s-6);
}

/* Su mobile prezzo e CTA vanno dopo l'elenco: l'intestazione "si apre" nella griglia. */
.soluzione__intestazione { display: contents; }
.soluzione__intestazione .sezione__titolo { order: 0; }
.soluzione__intestazione .sezione__sottotitolo { order: 1; margin-top: calc(var(--s-6) * -1 + var(--s-4)); }
.inclusi { order: 2; }
.soluzione__azione { order: 3; }

.soluzione__azione {
	display: grid;
	gap: var(--s-5);
	padding: var(--s-5) var(--s-4);
	background: var(--c-accento-chiaro);
	border-radius: var(--raggio-grande);
	text-align: center;
}

.inclusi { display: grid; }

.incluso {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: var(--s-4);
	row-gap: 0.125rem;
	padding-block: var(--s-4);
	border-top: 1px solid var(--c-linea);
}

.incluso__icona {
	grid-row: span 2;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	background: var(--c-accento);
	border-radius: 50%;
	color: var(--c-scuro);
}
.incluso__icona .icona { width: 1.125rem; height: 1.125rem; stroke-width: 3; }

.incluso__titolo { align-self: end; font-size: 1.25rem; line-height: 1.2; letter-spacing: -0.02em; }
.incluso__testo { color: var(--c-testo-2); line-height: 1.45; }

@media (min-width: 40rem) {
	.soluzione__azione { padding-inline: var(--s-5); text-align: left; justify-items: start; }
}

@media (min-width: 48rem) {
	.inclusi { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-6); }
	.incluso:last-child { grid-column: 1 / -1; }
}

@media (min-width: 64rem) {
	.soluzione__griglia {
		grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.3fr);
		column-gap: var(--s-8);
		align-items: start;
	}

	.soluzione__intestazione {
		display: block;
		position: sticky;
		top: 7rem;
	}
	.soluzione__intestazione .sezione__sottotitolo { margin-top: var(--s-4); }

	.soluzione__azione { margin-top: var(--s-6); padding: var(--s-6); }
}

/* @sezione pacchetti */
/* Pacchetti */
.pacchetti__griglia {
	display: grid;
	gap: var(--s-5);
	align-items: stretch;
}

.pacchetto {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: var(--s-6) var(--s-5) var(--s-5);
	background: var(--c-fondo);
	border: 2px solid var(--c-linea);
	border-radius: var(--raggio-grande);
}

.pacchetto__nome { font-size: 1.625rem; letter-spacing: -0.02em; }
.pacchetto__per { margin-top: var(--s-2); color: var(--c-testo-2); line-height: 1.4; }

.pacchetto__prezzo {
	margin-top: var(--s-5);
	color: var(--c-scuro);
	font-size: clamp(2.75rem, 2.2rem + 2vw, 3.5rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	white-space: nowrap;
}
.pacchetto__prezzo small { color: var(--c-testo-2); font-size: 1.125rem; font-weight: 400; letter-spacing: 0; }
.pacchetto__prezzo .iva { margin-left: 0.5rem; font-size: 1rem; font-weight: 700; }

.pacchetto__tempi {
	display: inline-block;
	align-self: flex-start;
	margin-top: var(--s-3);
	padding: 0.15rem 0.6rem;
	background: var(--c-fondo-alt);
	border-radius: 999px;
	font-size: var(--t-piccolo);
	font-weight: 700;
}

.pacchetto__voci { margin-block: var(--s-5) var(--s-6); padding-top: var(--s-5); border-top: 1px solid var(--c-linea); }

/* La CTA resta in fondo alla card, alla stessa altezza in tutte le card. */
.pacchetto__azione { margin-top: auto; }
.pacchetto .cta { justify-items: stretch; }
.pacchetto .pulsante--grande { width: 100%; padding-inline: 1rem; font-size: 1rem; text-wrap: balance; }
.pacchetto .cta__rischio { text-align: center; }

/* Card "Più richiesto": scura, per staccare dalle altre */
.pacchetto--evidenza {
	background: var(--c-scuro);
	border-color: var(--c-scuro);
	color: #fff;
	box-shadow: 8px 8px 0 var(--c-accento);
}
.pacchetto--evidenza .pacchetto__nome,
.pacchetto--evidenza .pacchetto__prezzo { color: #fff; }
.pacchetto--evidenza .pacchetto__per,
.pacchetto--evidenza .pacchetto__prezzo small,
.pacchetto--evidenza .cta__rischio { color: #d4d4cf; }
.pacchetto--evidenza .pacchetto__tempi { background: rgb(255 255 255 / 0.12); }
.pacchetto--evidenza .pacchetto__voci { border-top-color: rgb(255 255 255 / 0.2); }
.pacchetto--evidenza .pulsante { border-color: var(--c-cta); box-shadow: 0 4px 0 var(--c-accento); }
.pacchetto--evidenza .pulsante:hover,
.pacchetto--evidenza .pulsante:focus-visible { background: #fff; color: var(--c-scuro); box-shadow: 0 6px 0 var(--c-cta); }

.pacchetto__etichetta {
	position: absolute;
	top: 0;
	left: var(--s-5);
	transform: translateY(-50%);
	padding: 0.3rem 0.8rem;
	font-size: 0.8125rem;
}

/* @sezione servizi */
/* Servizi aggiuntivi: completano i pacchetti, con una grafica più leggera (bordo sottile, prezzi più piccoli). */
/* Sottotitolo su una riga da tablet in su (su mobile non ci sta e va a capo). */
@media (min-width: 48rem) {
	.servizi .sezione__sottotitolo { max-width: none; white-space: nowrap; }
}

.servizi__griglia { display: grid; gap: var(--s-4); }

.servizio {
	display: flex;
	flex-direction: column;
	padding: var(--s-5);
	background: var(--c-fondo-alt);
	border: 1px solid var(--c-linea);
	border-radius: var(--raggio-grande);
}
.servizio--principale { background: var(--c-fondo); border-color: var(--c-scuro); }

.servizio__icona {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: var(--s-3);
	border: 2px solid var(--c-scuro);
	border-radius: 50%;
	background: var(--c-fondo);
	color: var(--c-scuro);
}
.servizio__icona .icona { width: 1.25rem; height: 1.25rem; stroke-width: 2; }

.servizio__nome { font-size: 1.25rem; line-height: 1.2; letter-spacing: -0.02em; }
.servizio__testo { margin-top: var(--s-2); color: var(--c-testo-2); line-height: 1.45; }

.servizio__prezzo {
	color: var(--c-scuro);
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.03em;
	white-space: nowrap;
}
.servizio__prezzo small:not(.iva) { color: var(--c-testo-2); font-size: 1rem; font-weight: 400; letter-spacing: 0; }
.servizio__prezzo--solo { margin-top: auto; padding-top: var(--s-4); }

/* Due opzioni a piastrella (mensile / annuale): una sotto l'altra su mobile, affiancate da tablet. */
.servizio__opzioni { display: grid; gap: var(--s-3); margin-top: auto; padding-top: var(--s-5); }
.opzione {
	display: flex;
	flex-direction: column;
	gap: var(--s-1);
	padding: var(--s-3) var(--s-4);
	border: 1px solid var(--c-linea);
	border-radius: var(--raggio);
}
.opzione--anno { background: var(--c-accento-chiaro); border-color: var(--c-accento-chiaro); }
.opzione__nome { font-weight: 700; color: var(--c-scuro); }
.opzione__nome .etichetta { margin-left: var(--s-1); }

/* Altre voci: elenco compatto, una per riga su mobile e in linea da tablet */
.servizi__altre {
	margin-top: var(--s-4);
	padding: var(--s-2) var(--s-5);
	border: 1px dashed var(--c-linea);
	border-radius: var(--raggio);
	color: var(--c-testo-2);
	line-height: 1.4;
}
.servizi__altre li { padding-block: var(--s-2); }
.servizi__altre li + li { border-top: 1px solid var(--c-linea); }
.servizi__altre strong { color: var(--c-scuro); }

/* Hover come le card dei problemi, solo con il mouse */
@media (hover: hover) {
	.servizio,
	.servizio__icona { transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background-color 0.2s ease; }
	.servizio:hover {
		transform: translateY(-4px);
		border-color: var(--c-accento);
		box-shadow: 0 18px 36px -18px rgb(48 48 46 / 0.28);
	}
	.servizio:hover .servizio__icona { background: var(--c-accento); transform: translateY(-2px); }
}

@media (hover: hover) and (prefers-reduced-motion: reduce) {
	.servizio,
	.servizio__icona { transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease; }
	.servizio:hover,
	.servizio:hover .servizio__icona { transform: none; }
}

@media (min-width: 48rem) {
	.servizio__opzioni { grid-template-columns: 1fr 1fr; }
	.servizi__altre { display: flex; flex-wrap: wrap; justify-content: center; column-gap: var(--s-3); padding-block: var(--s-3); }
	.servizi__altre li { padding-block: 0; }
	.servizi__altre li + li { border-top: 0; }
	.servizi__altre li + li::before { content: "·"; margin-right: var(--s-3); color: var(--c-testo-2); }
}

@media (min-width: 64rem) {
	.servizi__griglia { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: var(--s-5); }
	.servizio { padding: var(--s-6); }
	.opzione { padding: var(--s-4); }
}

/* @sezione pacchetti */
/* Banda grande dello sconto */
.sconto--grande {
	flex-direction: column;
	align-items: flex-start;
	gap: var(--s-3);
	margin-top: var(--s-7);
	padding: var(--s-6) var(--s-5);
	border-radius: var(--raggio-grande);
}
.sconto--grande .sconto__percentuale { font-size: clamp(4rem, 3rem + 4vw, 6.5rem); }
.sconto--grande .sconto__testo { font-size: var(--t-grande); max-width: 34rem; }

.pacchetti__nota { margin-top: var(--s-4); color: var(--c-testo-2); font-size: var(--t-piccolo); }

@media (min-width: 64rem) {
	.pacchetti__griglia { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); padding-top: var(--s-3); }
	.pacchetto { padding: var(--s-7) var(--s-6) var(--s-6); }
	.pacchetto__etichetta { left: var(--s-6); }
	.pacchetto__per { min-height: 2.8em; } /* due righe: prezzi allineati tra le card */

	.sconto--grande {
		flex-direction: row;
		align-items: center;
		gap: var(--s-6);
		padding: var(--s-6) var(--s-7);
	}
}

/* @sezione progetti */
/* Progetti */
.progetti__griglia { display: grid; gap: var(--s-6); }

.progetto { display: grid; gap: var(--s-4); align-content: start; }

.progetto__immagine {
	overflow: hidden;
	aspect-ratio: 8 / 5;
	background: var(--c-fondo-alt);
	border: 2px solid var(--c-scuro);
	border-radius: var(--raggio-grande);
	box-shadow: 6px 6px 0 var(--c-accento);
}
.progetto__immagine img { width: 100%; height: 100%; object-fit: cover; }

/* Senza immagine (visibile solo da loggati): copertina tipografica */
.progetto__vuoto {
	display: grid;
	place-items: center;
	height: 100%;
	padding: var(--s-4);
	color: var(--c-linea);
	font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	text-align: center;
}

.progetto__tipo { margin-bottom: var(--s-2); }
.progetto__nome { font-size: 1.5rem; letter-spacing: -0.02em; }
.progetto__contesto { margin-top: var(--s-2); color: var(--c-testo-2); line-height: 1.45; }

@media (min-width: 40rem) {
	.progetti__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-5); row-gap: var(--s-7); }
}

@media (min-width: 64rem) {
	.progetti__griglia { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--s-6); }
}

@media (hover: hover) {
	.progetto__immagine { transition: transform 0.2s ease, box-shadow 0.2s ease; }
	.progetto:hover .progetto__immagine { transform: translateY(-4px); box-shadow: 8px 10px 0 var(--c-accento); }
}

@media (hover: hover) and (prefers-reduced-motion: reduce) {
	.progetto:hover .progetto__immagine { transform: none; }
}

/* @sezione referente */
/* Referente unico, numeri e metodo */
.referente__griglia { display: grid; gap: var(--s-6); }

.referente__foto { display: grid; justify-items: start; gap: var(--s-3); }

.referente__ritratto {
	width: 13.75rem;
	height: 13.75rem;
	object-fit: cover;
	border: 2px solid var(--c-scuro);
	border-radius: var(--raggio-grande);
	box-shadow: 8px 8px 0 var(--c-accento);
}
.referente__ritratto--vuoto {
	display: grid;
	place-items: center;
	background: var(--c-fondo);
	color: var(--c-linea);
	font-size: 4rem;
	font-weight: 700;
}

.referente__firma { line-height: 1.3; color: var(--c-testo-2); }
.referente__firma strong { display: block; color: var(--c-scuro); font-size: 1.25rem; }

.referente__punti { margin-top: var(--s-5); gap: var(--s-3); }

/* @sezione numeri */
/* Banda turchese dei numeri */
.numeri {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--s-5) var(--s-4);
	margin-top: var(--s-7);
	padding: var(--s-6) var(--s-5);
	background: var(--c-accento);
	border: 2px solid var(--c-scuro);
	border-radius: var(--raggio-grande);
}
.numero { display: grid; align-content: start; gap: var(--s-1); }
.numero__valore {
	color: var(--c-scuro);
	font-size: clamp(2.75rem, 2rem + 3.5vw, 4.5rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
}
.numero__etichetta { color: var(--c-scuro); font-weight: 700; line-height: 1.25; }
.numero .nl-segnaposto { margin-top: 0; justify-self: start; background: var(--c-fondo); }

/* @sezione metodo */
/* Metodo */
.metodo { margin-top: var(--s-8); }
.metodo__titolo { font-size: clamp(1.625rem, 1.3rem + 1.4vw, 2.25rem); }
.metodo__passi { display: grid; gap: var(--s-3); margin-top: var(--s-5); padding: 0; }

.passo {
	display: grid;
	grid-template-columns: auto 1fr;
	align-content: start;
	column-gap: var(--s-4);
	row-gap: var(--s-1);
	padding: var(--s-4) var(--s-5);
	background: var(--c-fondo);
	border: 2px solid var(--c-linea);
	border-radius: var(--raggio-grande);
}
.passo__numero {
	grid-row: span 2;
	color: var(--c-scuro);
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	text-shadow: 3px 3px 0 var(--c-accento);
}
.passo__titolo { font-size: 1.25rem; letter-spacing: -0.02em; line-height: 1.2; color: var(--c-scuro); }
.passo__testo { color: var(--c-testo-2); line-height: 1.45; }

@media (min-width: 48rem) {
	.numeri { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: var(--s-7) var(--s-6); }
}

@media (min-width: 64rem) {
	.referente__griglia { grid-template-columns: auto minmax(0, 1fr); gap: var(--s-8); align-items: center; }
	.referente__ritratto { width: 20rem; height: 20rem; }

	.metodo__passi { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-4); }
	.passo { grid-template-columns: 1fr; row-gap: var(--s-2); padding: var(--s-5); }
	.passo__numero { grid-row: auto; margin-bottom: var(--s-2); font-size: 3rem; }
}

/* @sezione testimonianze */
/* Testimonianze: scorrimento orizzontale su mobile, griglia su desktop */
.testimonianze__contenitore { padding-inline: 0; }

.testimonianze__elenco {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 85%;
	gap: var(--s-4);
	margin: 0;
	padding: var(--s-5) var(--margine) var(--s-5); /* spazio per l'etichetta "In attesa" e l'ombra */
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--margine);
	scrollbar-width: thin;
	scrollbar-color: var(--c-scuro) var(--c-linea);
}
.testimonianze__elenco:focus-visible { outline-offset: -3px; }
.testimonianze__voce { display: flex; scroll-snap-align: start; }

.testimonianza {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--s-4);
	width: 100%;
	margin: 0;
	padding: var(--s-6) var(--s-5) var(--s-5);
	background: var(--c-fondo);
	border: 2px solid var(--c-scuro);
	border-radius: var(--raggio-grande);
	box-shadow: 6px 6px 0 var(--c-accento);
}

/* Visibile solo da loggati: testimonianza non ancora pubblicata */
.testimonianza--attesa { border-style: dashed; box-shadow: none; }
.testimonianza__attesa {
	position: absolute;
	top: 0;
	left: var(--s-5);
	transform: translateY(-50%);
	padding: 0.2rem 0.65rem;
	background: var(--c-fondo);
	border: 2px dashed var(--c-cta);
	border-radius: 999px;
	color: var(--c-scuro);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.testimonianza__testo { margin: 0; }
.testimonianza__virgolette { width: 3.125rem; height: auto; fill: var(--c-accento); stroke: var(--c-scuro); stroke-width: 2; stroke-linejoin: round; }
.testimonianza__testo p { color: var(--c-scuro); font-size: 1.0625rem; line-height: 1.5; }

.testimonianza__autore {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	margin-top: auto;
	padding-top: var(--s-4);
	border-top: 1px solid var(--c-linea);
	line-height: 1.3;
}
.testimonianza__foto,
.testimonianza__iniziali {
	flex: none;
	width: 3.5rem;
	height: 3.5rem;
	border: 2px solid var(--c-scuro);
	border-radius: 50%;
}
.testimonianza__foto { object-fit: contain; background: var(--c-fondo); }
.testimonianza__iniziali { display: grid; place-items: center; font-weight: 700; font-size: 1.125rem; letter-spacing: 0.02em; }
.testimonianza__iniziali--0 { background: var(--c-accento); color: var(--c-scuro); }
.testimonianza__iniziali--1 { background: var(--c-scuro); color: var(--c-accento); }
.testimonianza__iniziali--2 { background: var(--c-accento-chiaro); color: var(--c-scuro); }

.testimonianza__chi strong { display: block; color: var(--c-scuro); font-size: 1.0625rem; }
.testimonianza__chi span { color: var(--c-testo-2); font-size: var(--t-piccolo); }

@media (min-width: 48rem) {
	.testimonianze__elenco { grid-auto-columns: calc((100% - 2 * var(--margine) - var(--s-4)) / 2); }
}

@media (min-width: 64rem) {
	/* Tre card visibili: il carosello scorre di una alla volta. */
	.testimonianze__contenitore { padding-inline: var(--margine); }
	.testimonianze__elenco {
		grid-auto-columns: calc((100% - 2 * var(--s-6) - 8px) / 3);
		gap: var(--s-6);
		padding-inline: 0 8px; /* spazio per l'ombra dell'ultima card visibile */
		scroll-padding-inline: 0;
	}
}

/* Comandi del carosello (attivati dal JavaScript) */
.testimonianze.is-carosello .testimonianze__elenco { scrollbar-width: none; }
.testimonianze.is-carosello .testimonianze__elenco::-webkit-scrollbar { display: none; }

.carosello__comandi {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--s-3);
	padding-inline: var(--margine);
}
.carosello__comandi[hidden] { display: none; }

.carosello__pulsante {
	display: grid;
	place-items: center;
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	background: var(--c-fondo);
	border: 2px solid var(--c-scuro);
	border-radius: 50%;
	color: var(--c-scuro);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.carosello__pulsante .icona { width: 1.25rem; height: 1.25rem; stroke-width: 2.25; }
.carosello__pulsante:hover { background: var(--c-scuro); color: var(--c-accento); }

.carosello__pausa { margin-left: var(--s-2); }
.carosello__pausa .carosello__icona-play,
.carosello__pausa.is-ferma .carosello__icona-pausa { display: none; }
.carosello__pausa.is-ferma .carosello__icona-play { display: grid; }
.carosello__icona-play .icona { fill: currentColor; }

.carosello__pallini { display: flex; gap: var(--s-1); }
.carosello__pallino {
	display: grid;
	place-items: center;
	width: 1.75rem;
	height: 2.75rem;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
}
.carosello__pallino::before {
	content: "";
	width: 0.75rem;
	height: 0.75rem;
	background: var(--c-linea);
	border: 2px solid var(--c-scuro);
	border-radius: 999px;
	transition: width 0.2s ease, background-color 0.2s ease;
}
.carosello__pallino[aria-current="true"]::before { width: 1.75rem; background: var(--c-scuro); }

@media (min-width: 64rem) {
	.carosello__comandi { justify-content: flex-start; margin-top: var(--s-4); padding-inline: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.carosello__pulsante, .carosello__pallino::before { transition: none; }
}

/* Testimonianze, versione B: citazione in evidenza su banda scura */
.testimonianze-evidenza { background: var(--c-scuro); color: #fff; }
.testimonianze-evidenza .sezione__titolo { color: #fff; }
.testimonianze-evidenza :focus-visible { outline-color: var(--c-accento); }
.testimonianze-evidenza .pulsante { border-color: var(--c-cta); box-shadow: 0 4px 0 var(--c-accento); }
.testimonianze-evidenza .pulsante:hover,
.testimonianze-evidenza .pulsante:focus-visible { background: #fff; color: var(--c-scuro); box-shadow: 0 6px 0 var(--c-cta); }
.testimonianze-evidenza .cta__rischio { color: #d4d4cf; }

.evidenza__griglia { display: grid; gap: var(--s-6); }

/* Su mobile: titolo, citazione, poi le persone e la pausa. */
.evidenza__lato { display: contents; }
.evidenza__lato .sezione__titolo { order: 0; }
.evidenza__citazioni { order: 1; display: grid; gap: var(--s-5); }
.evidenza__comandi { order: 2; display: flex; align-items: center; gap: var(--s-3); min-width: 0; }

.evidenza__citazione {
	position: relative;
	display: grid;
	gap: var(--s-5);
	margin: 0;
	padding: var(--s-6) var(--s-5) var(--s-5);
	background: rgb(255 255 255 / 0.04);
	border: 2px solid rgb(255 255 255 / 0.18);
	border-radius: var(--raggio-grande);
}
.evidenza__citazione:focus-visible { outline-offset: 4px; }
.evidenza__virgolette { width: 3.5rem; height: auto; fill: var(--c-accento); }
.evidenza__testo { margin: 0; }
.evidenza__testo p { color: #fff; font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.75rem); line-height: 1.4; letter-spacing: -0.01em; }

.evidenza__autore { display: flex; align-items: center; gap: var(--s-3); line-height: 1.3; }
.evidenza__autore strong { display: block; color: #fff; font-size: 1.125rem; }
.evidenza__autore span span { color: #d4d4cf; font-size: var(--t-piccolo); }

.evidenza__foto,
.evidenza__iniziali {
	flex: none;
	width: 3.5rem;
	height: 3.5rem;
	border: 2px solid #fff;
	border-radius: 50%;
}
.evidenza__foto { object-fit: contain; background: #fff; }
.evidenza__iniziali { display: grid; place-items: center; font-weight: 700; font-size: 1.125rem; }
.evidenza__iniziali--0 { background: var(--c-accento); color: var(--c-scuro); }
.evidenza__iniziali--1 { background: var(--c-scuro); color: var(--c-accento); }
.evidenza__iniziali--2 { background: var(--c-accento-chiaro); color: var(--c-scuro); }

/* Visibile solo da loggati: testimonianza non ancora pubblicata */
.evidenza__attesa {
	position: absolute;
	top: 0;
	left: var(--s-5);
	transform: translateY(-50%);
	padding: 0.2rem 0.65rem;
	background: var(--c-scuro);
	border: 2px dashed var(--c-cta);
	border-radius: 999px;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}
.evidenza__attesa-punto {
	position: absolute;
	top: 0.25rem;
	right: 0.25rem;
	width: 0.75rem;
	height: 0.75rem;
	background: var(--c-cta);
	border: 2px solid var(--c-scuro);
	border-radius: 50%;
}

/* Persone (schede): su mobile una riga di cerchi, su desktop un elenco con i nomi */
.evidenza__persone { display: flex; flex: 1; min-width: 0; gap: 0.625rem; overflow-x: auto; padding: 0.6rem; margin: -0.6rem; scrollbar-width: none; }
.evidenza__persone[hidden] { display: none; }
.evidenza__persona {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--s-3);
	flex: none;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 50%;
	color: #fff;
	font: inherit;
	text-align: left;
	cursor: pointer;
}
.evidenza__persona .evidenza__iniziali,
.evidenza__persona .evidenza__foto { width: 2.75rem; height: 2.75rem; font-size: 1rem; transition: box-shadow 0.2s ease, transform 0.2s ease; }
.evidenza__persona[aria-selected="true"] .evidenza__iniziali,
.evidenza__persona[aria-selected="true"] .evidenza__foto { box-shadow: 0 0 0 4px var(--c-scuro), 0 0 0 7px var(--c-accento); }
.evidenza__persona-testo {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.evidenza__persona-testo strong { display: block; }
.evidenza__persona-testo span { color: #d4d4cf; font-size: var(--t-piccolo); }

/* Barra che si riempie durante l'avanzamento automatico */
.evidenza__avanzamento {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.6rem;
	height: 3px;
	background: var(--c-accento);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
}
.testimonianze-evidenza.is-in-corsa .evidenza__persona[aria-selected="true"] .evidenza__avanzamento { animation: nl-avanza var(--durata, 8s) linear forwards; }
.testimonianze-evidenza.is-sospesa .evidenza__avanzamento { animation-play-state: paused !important; }
@keyframes nl-avanza { to { transform: scaleX(1); } }

/* Con il JavaScript attivo: una citazione alla volta, con dissolvenza */
.testimonianze-evidenza.is-schede .evidenza__citazione[hidden] { display: none; }
.testimonianze-evidenza.is-schede .evidenza__citazione { animation: nl-compari 0.4s ease both; }
@keyframes nl-compari { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.evidenza__pausa { flex: none; }
.evidenza__pausa[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
	.testimonianze-evidenza.is-schede .evidenza__citazione,
	.evidenza__persona .evidenza__iniziali,
	.evidenza__persona .evidenza__foto { animation: none; transition: none; }
}

@media (min-width: 64rem) {
	/* Titolo sopra entrambe le colonne: schede e citazione partono alla stessa altezza.
	   La citazione si allunga fino al fondo dell'elenco quando è più corta. */
	.evidenza__griglia {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr);
		grid-template-areas: "titolo titolo" "comandi citazioni";
		column-gap: var(--s-8);
		row-gap: var(--s-7);
		align-items: stretch;
	}
	.evidenza__lato .sezione__titolo { grid-area: titolo; }
	.evidenza__comandi { grid-area: comandi; align-self: start; }
	.evidenza__citazioni { grid-area: citazioni; }
	.testimonianze-evidenza.is-schede .evidenza__citazione { height: 100%; align-content: start; }
	.evidenza__autore { margin-top: auto; }

	.evidenza__comandi { flex-direction: column; align-items: stretch; gap: var(--s-5); }
	.evidenza__pausa { align-self: flex-start; }
	.evidenza__persone { flex-direction: column; gap: var(--s-2); overflow: visible; padding: 0; margin: 0; }
	.evidenza__persona {
		width: 100%;
		padding: var(--s-3) var(--s-4);
		border: 2px solid rgb(255 255 255 / 0.12);
		border-radius: var(--raggio);
		transition: border-color 0.2s ease, background-color 0.2s ease;
	}
	.evidenza__persona:hover { border-color: rgb(255 255 255 / 0.35); }
	.evidenza__persona[aria-selected="true"] { border-color: var(--c-accento); background: rgb(255 255 255 / 0.06); }
	.evidenza__persona[aria-selected="true"] .evidenza__iniziali,
	.evidenza__persona[aria-selected="true"] .evidenza__foto { box-shadow: none; }
	.evidenza__persona .evidenza__iniziali,
	.evidenza__persona .evidenza__foto { width: 2.75rem; height: 2.75rem; font-size: 1rem; }
	.evidenza__persona-testo { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; line-height: 1.3; }
	.evidenza__avanzamento { left: var(--s-4); right: var(--s-4); bottom: 0.35rem; }
	.evidenza__attesa-punto { top: 50%; right: var(--s-4); transform: translateY(-50%); }

	.evidenza__citazione { padding: var(--s-7) var(--s-7) var(--s-6); }
	.evidenza__attesa { left: var(--s-7); }
}

/* @sezione faq */
/* FAQ */
.faq__griglia { display: grid; gap: var(--s-6); }

/* Su mobile la CTA chiude la sezione, dopo le domande. */
.faq__intestazione { display: contents; }
.faq__intestazione .sezione__titolo { order: 0; }
.faq__intestazione .sezione__sottotitolo { order: 1; margin-top: calc(var(--s-6) * -1 + var(--s-4)); }
.faq__elenco { order: 2; }
.faq__azione { order: 3; }
.faq__azione { display: grid; gap: var(--s-3); }
.faq__altro { color: var(--c-scuro); font-weight: 700; font-size: 1.125rem; }

.faq__elenco { display: grid; gap: var(--s-3); }

.domanda {
	background: var(--c-fondo);
	border: 2px solid var(--c-linea);
	border-radius: var(--raggio-grande);
	transition: border-color 0.2s ease;
}
.domanda[open] { border-color: var(--c-scuro); box-shadow: 5px 5px 0 var(--c-accento); }

.domanda__titolo {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-4);
	min-height: 3.5rem;
	padding: var(--s-4) var(--s-5);
	color: var(--c-scuro);
	font-size: 1.1875rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.01em;
	list-style: none;
	cursor: pointer;
}
.domanda__titolo::-webkit-details-marker { display: none; }
.domanda__titolo:focus-visible { outline-offset: -3px; border-radius: var(--raggio-grande); }

/* Segno "+" che diventa "−" */
.domanda__segno {
	position: relative;
	flex: none;
	width: 2rem;
	height: 2rem;
	background: var(--c-accento);
	border-radius: 50%;
}
.domanda__segno::before,
.domanda__segno::after {
	content: "";
	position: absolute;
	inset: 50% auto auto 50%;
	width: 0.875rem;
	height: 2px;
	background: var(--c-scuro);
	transform: translate(-50%, -50%);
	transition: transform 0.2s ease;
}
.domanda__segno::after { transform: translate(-50%, -50%) rotate(90deg); }
.domanda[open] .domanda__segno::after { transform: translate(-50%, -50%) rotate(0deg); }

.domanda__risposta { display: grid; gap: var(--s-3); padding: 0 var(--s-5) var(--s-5); line-height: 1.5; }

@media (hover: hover) {
	.domanda:not([open]):hover { border-color: var(--c-scuro); }
}

@media (prefers-reduced-motion: reduce) {
	.domanda, .domanda__segno::before, .domanda__segno::after { transition: none; }
}

@media (min-width: 64rem) {
	.faq__griglia { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.35fr); gap: var(--s-8); align-items: start; }
	.faq__intestazione { display: block; position: sticky; top: 7rem; }
	.faq__intestazione .sezione__sottotitolo { margin-top: var(--s-4); }
	.faq__azione { margin-top: var(--s-6); }
}

/* @sezione comune */
/* Form di preventivo: banda scura, modulo bianco */
.preventivo { background: var(--c-scuro); color: #fff; }
.preventivo .sezione__titolo { color: #fff; }
.preventivo .sezione__sottotitolo { color: #d4d4cf; }
.preventivo a { color: var(--c-accento); font-weight: 700; }

.preventivo__griglia { display: grid; gap: var(--s-6); }
.preventivo__punti { margin-top: var(--s-5); }
.preventivo__punti strong { color: #fff; }
.preventivo__alternativa { margin-top: var(--s-6); padding-top: var(--s-5); border-top: 1px solid rgb(255 255 255 / 0.2); line-height: 1.5; }

.preventivo__modulo {
	padding: var(--s-5) var(--s-4);
	background: var(--c-fondo);
	color: var(--c-testo);
	border-radius: var(--raggio-grande);
	box-shadow: 8px 8px 0 var(--c-accento);
}
.preventivo__modulo .cta__rischio { margin-top: var(--s-3); }

.modulo { display: grid; gap: var(--s-4); }
.campo { display: grid; gap: var(--s-2); min-width: 0; margin: 0; padding: 0; border: 0; }
.campo > label,
.campo legend { padding: 0; color: var(--c-scuro); font-weight: 700; }
.campo label span { color: var(--c-testo-2); font-weight: 400; }

.modulo input[type="text"],
.modulo input[type="email"],
.modulo input[type="tel"],
.modulo textarea {
	width: 100%;
	min-height: 3.25rem;
	padding: 0.75rem 1rem;
	background: var(--c-fondo);
	color: var(--c-scuro);
	border: 2px solid #8a8a84;
	border-radius: var(--raggio);
	font: inherit;
	font-size: 1.0625rem; /* ≥16 px: niente zoom automatico su iOS */
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.modulo textarea { min-height: 6rem; resize: vertical; }
.modulo input:focus,
.modulo textarea:focus { outline: none; border-color: var(--c-scuro); box-shadow: 0 0 0 3px var(--c-accento); }

/* Tipo di sito: scelte a piastrella, facili da toccare */
.campo legend span { color: var(--c-testo-2); font-weight: 400; }

.campo--scelta .wpcf7-radio,
.campo--scelta .wpcf7-checkbox { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); margin-top: var(--s-2); }
.campo--scelta .wpcf7-list-item { margin: 0; }
.campo--scelta label {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	min-height: 3.25rem;
	padding: 0.5rem 0.75rem;
	border: 2px solid var(--c-linea);
	border-radius: var(--raggio);
	color: var(--c-scuro);
	font-weight: 700;
	font-size: 0.9375rem;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}
.campo--scelta .wpcf7-list-item-label { font-weight: 700; }
.campo--scelta input { flex: none; width: 1.125rem; height: 1.125rem; margin: 0; accent-color: var(--c-scuro); }
.campo--scelta label:has(input:checked) { border-color: var(--c-scuro); background: var(--c-accento-chiaro); }
.campo--scelta label:has(input:focus-visible) { box-shadow: 0 0 0 3px var(--c-accento); }

.campo__aiuto { margin: 0; color: var(--c-testo-2); font-size: var(--t-piccolo); line-height: 1.4; }

/* Evidenziato per qualche secondo quando si arriva dalla CTA "Analizza gratis il mio sito" */
.campo--sito { border-radius: var(--raggio); transition: background-color 0.4s ease, box-shadow 0.4s ease; }
.campo--sito.is-evidenziato { background: var(--c-accento-chiaro); box-shadow: 0 0 0 10px var(--c-accento-chiaro); }

.campo--consenso { font-size: var(--t-piccolo); line-height: 1.45; }
.campo--consenso .wpcf7-list-item { margin: 0; }
.campo--consenso label { display: flex; gap: var(--s-3); align-items: flex-start; cursor: pointer; }
.campo--consenso input { flex: none; width: 1.25rem; height: 1.25rem; margin: 0.05rem 0 0; accent-color: var(--c-scuro); }
.campo--consenso a { color: var(--c-accento-scuro); }

.campo--invio { position: relative; margin-top: var(--s-2); }
.campo--invio .pulsante { width: 100%; }
.modulo .wpcf7-spinner { position: absolute; right: 1rem; top: 1.1rem; margin: 0; }

/* Messaggi di Contact Form 7 */
.modulo .wpcf7-not-valid { border-color: #b3261e !important; }
.wpcf7-not-valid-tip { display: block; margin-top: var(--s-1); color: #b3261e; font-size: var(--t-piccolo); font-weight: 700; }
.wpcf7-response-output { margin: 0; padding: var(--s-3) var(--s-4); border-radius: var(--raggio); font-size: var(--t-piccolo); font-weight: 700; }
.wpcf7-response-output:empty { display: none; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { background: #fdecea; color: #8c1d18; }
.wpcf7 form.sent .wpcf7-response-output { background: var(--c-accento-chiaro); color: var(--c-scuro); }
.screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.wpcf7 .hidden-fields-container { display: none; }

@media (min-width: 40rem) {
	.preventivo__modulo { padding: var(--s-6); }
}

@media (min-width: 64rem) {
	.preventivo__griglia { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: var(--s-8); align-items: start; }
	.preventivo__testo { position: sticky; top: 7rem; }
	.preventivo__modulo .cta__rischio { text-align: center; }
}

/* Pagina /grazie/ */
.grazie__contenuto { display: grid; justify-items: start; gap: var(--s-5); max-width: 46rem; }
.grazie__icona {
	display: grid;
	place-items: center;
	width: 4rem;
	height: 4rem;
	background: var(--c-accento);
	border: 2px solid var(--c-scuro);
	border-radius: 50%;
	color: var(--c-scuro);
}
.grazie__icona .icona { width: 2rem; height: 2rem; stroke-width: 3; }
.grazie__titolo { font-size: var(--t-h2); }
.grazie__azioni { display: grid; gap: var(--s-3); margin-top: var(--s-3); }
.grazie__pulsanti { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-5); }
.grazie__link { color: var(--c-scuro); font-weight: 700; }
.grazie__torna a { color: var(--c-testo-2); }

/* Avviso di sezione spenta, visibile solo da loggati */
.sezione-spenta { padding-block: var(--s-5); }

/* @sezione territorio */
/* Territorio: cartina della Toscana */
.territorio__griglia { display: grid; gap: var(--s-6); }

/* Su mobile la CTA chiude la sezione, dopo la cartina. */
.territorio__testo { display: contents; }
.territorio__testo .sezione__titolo { order: 0; }
.territorio__testo .sezione__sottotitolo { order: 1; margin-top: calc(var(--s-6) * -1 + var(--s-4)); }
.territorio__punti { order: 2; }
.cartina { order: 3; }
.territorio__azione { order: 4; }

.cartina { margin: 0; }
.cartina__svg { width: 100%; height: auto; overflow: visible; }

.cartina__regione { fill: var(--c-accento-chiaro); stroke: var(--c-scuro); stroke-width: 2.5; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.cartina__province { fill: none; stroke: var(--c-fondo); stroke-width: 2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }

.citta circle { fill: var(--c-scuro); transform-box: fill-box; transform-origin: center; transition: transform 0.2s ease; }
.citta text {
	fill: var(--c-scuro);
	font-family: var(--font);
	font-size: 20px;
	font-weight: 700;
	paint-order: stroke;
	stroke: var(--c-accento-chiaro);
	stroke-width: 5px;
	stroke-linejoin: round;
}

.cartina__punto { fill: var(--c-accento); stroke: var(--c-scuro); stroke-width: 3; }
.cartina__onda { fill: var(--c-accento-scuro); transform-box: fill-box; transform-origin: center; opacity: 0; }
.cartina__sede rect { fill: var(--c-scuro); }
.cartina__sede text { fill: #fff; font-family: var(--font); font-size: 19px; font-weight: 700; }
.cartina__sede .cartina__sede-luogo { fill: var(--c-accento); font-size: 15px; }

@media (hover: hover) {
	.citta:hover circle { transform: scale(1.4); }
}

/* Onda leggera attorno alla sede: solo transform e opacity, ferma con movimento ridotto. */
@media (prefers-reduced-motion: no-preference) {
	.cartina__onda { animation: nl-onda 2.4s ease-out infinite; }
}
@keyframes nl-onda {
	from { transform: scale(1); opacity: 0.7; }
	to { transform: scale(3); opacity: 0; }
}

@media (min-width: 64rem) {
	.territorio__griglia { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--s-8); align-items: center; }
	.territorio__testo { display: block; }
	.territorio__testo .sezione__sottotitolo { margin-top: var(--s-4); }
	.territorio__punti { margin-top: var(--s-5); }
	.territorio__azione { margin-top: var(--s-6); }
}

/* @sezione contatto */
/* Ultima sezione "Non è ancora il momento?": tono calmo, nessun arancio, pulsanti leggeri */
.contatto { background: var(--c-fondo); }
.contatto__griglia { display: grid; gap: var(--s-6); }
.contatto__testo { max-width: 40rem; }

.contatto__intestazione { display: flex; align-items: center; gap: var(--s-3); }
.contatto__foto {
	flex: none;
	width: 4rem;
	height: 4rem;
	border: 2px solid var(--c-scuro);
	border-radius: 50%;
	object-fit: cover;
}
.contatto__etichetta {
	padding: 0.25rem 0.75rem;
	background: var(--c-fondo-alt);
	border: 1px solid var(--c-linea);
	border-radius: 999px;
	color: var(--c-testo);
	font-size: var(--t-piccolo);
	font-weight: 700;
}

.contatto__titolo { margin-top: var(--s-5); font-size: clamp(1.75rem, 1.35rem + 1.8vw, 2.5rem); line-height: 1.15; }
.contatto__descrizione { margin-top: var(--s-4); color: var(--c-testo); font-size: var(--t-grande); line-height: 1.5; }

.contatto__azioni { display: grid; gap: var(--s-3); margin-top: var(--s-6); }

.pulsante-calmo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--s-2);
	min-height: 3.25rem;
	padding: 0.75rem 1.25rem;
	background: var(--c-fondo);
	border: 2px solid var(--c-scuro);
	border-radius: var(--raggio);
	color: var(--c-scuro);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.pulsante-calmo .icona { width: 1.25rem; height: 1.25rem; }
.pulsante-calmo--pieno { background: var(--c-accento-chiaro); }
.pulsante-calmo:hover,
.pulsante-calmo:focus-visible { background: var(--c-scuro); color: #fff; }

.contatto__nota { margin-top: var(--s-4); color: var(--c-testo-2); font-size: var(--t-piccolo); line-height: 1.45; }

/* QR solo da computer: su mobile non serve */
.contatto__qr { display: none; }

@media (min-width: 40rem) {
	.contatto__azioni { display: flex; flex-wrap: wrap; }
}

@media (min-width: 64rem) {
	.contatto__griglia { grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-8); align-items: center; }
	.contatto__qr {
		display: grid;
		justify-items: center;
		gap: var(--s-3);
		width: 15rem;
		margin: 0;
		padding: var(--s-5);
		background: var(--c-fondo-alt);
		border: 1px solid var(--c-linea);
		border-radius: var(--raggio-grande);
		text-align: center;
	}
	.contatto__qr img { width: 11rem; height: 11rem; border-radius: var(--raggio); }
	.contatto__qr figcaption { color: var(--c-testo-2); font-size: var(--t-piccolo); line-height: 1.4; }
	.contatto__qr strong { display: block; color: var(--c-scuro); }
}

@media (prefers-reduced-motion: reduce) {
	.pulsante-calmo { transition: none; }
}
