/* Block: above-hero */
.blatte-hero {
	--blatte-dark: #1d2327;
	--blatte-green: #2e4438;
	--blatte-teal: #0f6f68;
	--blatte-teal-light: #2db0a6;
	--blatte-orange: #e06b44;
	--blatte-white: #ffffff;

	display: block;

	width: 100%;

	padding-block: 50px;

	color: var(--blatte-white);

	background:
		radial-gradient(
			circle at 88% 8%,
			rgb(224 107 68 / 18%),
			transparent 28rem
		),
		radial-gradient(
			circle at 8% 92%,
			rgb(45 176 166 / 12%),
			transparent 26rem
		),
		linear-gradient(
			135deg,
			var(--blatte-dark) 0%,
			var(--blatte-green) 100%
		);

	font-family:
		"Phudu",
		sans-serif;
}


.blatte-hero *,
.blatte-hero *::before,
.blatte-hero *::after {
	box-sizing: border-box;
}


/* ==================================================
   LAYOUT INTERNO
   ================================================== */

.blatte-hero__layout {
	display: flex !important;

	flex-direction: column;

	align-items: stretch;
	justify-content: flex-start;

	gap: clamp(1.5rem, 3vw, 2.75rem);

	width: min(1400px, calc(100% - 2rem));
	max-width: 1400px;

	min-width: 0;

	margin-inline: auto;
}


/* ==================================================
   COLONNA SINISTRA
   ================================================== */

.blatte-hero__main {
	display: flex !important;

	flex-direction: column;

	align-items: flex-start;
	justify-content: flex-start;

	width: 100%;
	min-width: 0;
}


/* ==================================================
   EYEBROW
   ================================================== */

.blatte-hero__eyebrow {
	display: inline-flex;

	align-items: center;

	gap: 0.5rem;

	max-width: 100%;

	margin: 0 0 0.7rem;

	padding: 0.42rem 0.72rem;

	color: var(--blatte-white) !important;

	background:
		rgb(45 176 166 / 11%);

	border:
		1px solid rgb(45 176 166 / 32%);

	border-radius: 999px;

	font-size: 0.72rem;

	font-weight: 700;

	line-height: 1.3;

	letter-spacing: 0.04em;

	text-transform: uppercase;
}


.blatte-hero__eyebrow-dot {
	display: inline-block;

	width: 0.48rem;
	height: 0.48rem;

	flex: 0 0 0.48rem;

	background:
		var(--blatte-orange);

	border-radius: 50%;
}


/* ==================================================
   STELLE
   ================================================== */

.blatte-hero__stars {
	display: flex;

	flex-wrap: wrap;
	align-items: center;

	gap: 0.45rem;

	width: 100%;

	margin: 0 0 0.85rem;
}


.blatte-hero__stars-icons {
	display: inline-flex;

	align-items: center;

	gap: 0.08rem;

	color:
		var(--blatte-orange);

	font-size: 1rem;

	line-height: 1;
}


.blatte-hero__stars-copy {
	color:
		rgb(255 255 255 / 72%);

	font-size: 0.76rem;

	font-weight: 600;

	line-height: 1.4;
}


/* ==================================================
   H1
   ================================================== */

.blatte-hero__title {
	width: 100%;
	max-width: 46rem;

	margin: 0;

	color:
		var(--blatte-white) !important;

	font-family:
		"Phudu",
		sans-serif !important;

	font-size:
		clamp(
			2.15rem,
			3.1vw,
			3.2rem
		);

	font-weight:
		800 !important;

	line-height: 1.04;

	letter-spacing: -0.03em;

	text-wrap: balance;
}


.blatte-hero__title > span {
	color:
		var(--blatte-orange) !important;
}


/* ==================================================
   INTRO
   ================================================== */

.blatte-hero__subtitle {
	width: 100%;
	max-width: 47rem;

	margin: 1rem 0 0;

	color:
		rgb(255 255 255 / 82%) !important;

	font-size:
		clamp(
			0.96rem,
			1.15vw,
			1.08rem
		);

	font-weight: 400;

	line-height: 1.6;

	text-wrap: pretty;
}


/* ==================================================
   SPECIE
   ================================================== */

.blatte-hero__species {
	width: 100%;

	margin: 0.7rem 0 0;

	color:
		rgb(255 255 255 / 64%) !important;

	font-size: 0.82rem;

	line-height: 1.5;
}


.blatte-hero__species em {
	color:
		var(--blatte-teal-light) !important;

	font-style: normal;

	font-weight: 600;
}


/* ==================================================
   INDICE RAPIDO
   ================================================== */

.blatte-hero__toc {
	display: flex;

	align-items: center;

	gap: 0.6rem;

	width: 100%;

	margin-top: 1rem;

	padding-top: 0.85rem;

	border-top:
		1px solid rgb(255 255 255 / 11%);
}


.blatte-hero__toc-label {
	flex: 0 0 auto;

	color:
		rgb(255 255 255 / 55%);

	font-size: 0.66rem;

	font-weight: 700;

	line-height: 1.3;

	letter-spacing: 0.05em;

	text-transform: uppercase;
}


.blatte-hero__toc ul {
	display: flex;

	flex-wrap: wrap;

	align-items: center;

	gap: 0.35rem;

	min-width: 0;

	margin: 0;
	padding: 0;

	list-style: none;
}


.blatte-hero__toc li {
	margin: 0;
	padding: 0;
}


.blatte-hero__toc a {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	min-height: 1.95rem;

	padding: 0.32rem 0.58rem;

	color:
		rgb(255 255 255 / 78%) !important;

	background:
		rgb(255 255 255 / 6%);

	border:
		1px solid rgb(255 255 255 / 12%);

	border-radius: 999px;

	font-family:
		"Phudu",
		sans-serif;

	font-size: 0.68rem;

	font-weight: 600;

	line-height: 1.3;

	white-space: nowrap;

	text-decoration: none !important;

	transition:
		color 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease;
}


.blatte-hero__toc a:hover {
	color:
		var(--blatte-dark) !important;

	background:
		var(--blatte-teal-light);

	border-color:
		var(--blatte-teal-light);
}


.blatte-hero__toc a:focus-visible {
	outline:
		3px solid var(--blatte-teal-light);

	outline-offset: 3px;
}


/* ==================================================
   HERO – BENEFIT
   Componente isolato da UL / LI del tema
   ================================================== */

.blatte-hero__benefit-grid {
	display: grid !important;

	grid-template-columns:
		minmax(0, 1fr);

	align-items: stretch;

	gap: 0.75rem;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;

	margin: 1.3rem 0 0 !important;
	padding: 0 !important;
}


/* ==================================================
   SINGOLA CARD
   ================================================== */

.blatte-hero__benefit-card {
	display: flex !important;

	flex-direction: row;

	align-items: center;
	justify-content: flex-start;

	gap: 0.75rem;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;

	height: 100%;
	min-height: 5.8rem;

	margin: 0 !important;
	padding: 0.9rem !important;

	background:
		rgb(45 176 166 / 9%);

	border:
		1px solid rgb(45 176 166 / 24%);

	border-radius: 0.7rem;

	overflow: hidden;
}


/* ==================================================
   ICONA BENEFIT
   ================================================== */

.blatte-hero__benefit-icon {
	display: inline-flex !important;

	align-items: center;
	justify-content: center;

	width: 2.55rem !important;
	height: 2.55rem !important;

	min-width: 2.55rem;
	min-height: 2.55rem;

	flex: 0 0 2.55rem;

	margin: 0 !important;
	padding: 0 !important;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);

	border-radius: 0.55rem;
}


.blatte-hero__benefit-icon svg {
	display: block !important;

	width: 1.25rem !important;
	height: 1.25rem !important;

	margin: 0 !important;
	padding: 0 !important;

	fill: none !important;

	stroke:
		currentColor !important;

	stroke-width: 1.8;

	stroke-linecap: round;
	stroke-linejoin: round;
}


/* ==================================================
   COPY BENEFIT
   ================================================== */

.blatte-hero__benefit-content {
	display: flex !important;

	flex: 1 1 auto;

	flex-direction: column;

	align-items: flex-start;
	justify-content: center;

	gap: 0.18rem;

	width: 100% !important;
	min-width: 0 !important;

	margin: 0 !important;
	padding: 0 !important;
}


.blatte-hero__benefit-title {
	display: block;

	width: 100%;

	margin: 0 !important;
	padding: 0 !important;

	color:
		var(--blatte-white) !important;

	font-family:
		"Phudu",
		sans-serif;

	font-size: 0.9rem;

	font-weight: 700;

	line-height: 1.3;

	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}


.blatte-hero__benefit-text {
	display: block;

	width: 100%;

	margin: 0 !important;
	padding: 0 !important;

	color:
		rgb(255 255 255 / 68%) !important;

	font-size: 0.74rem;

	font-weight: 400;

	line-height: 1.42;

	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}


/* ==================================================
   DESKTOP
   3 CARD ALLINEATE
   ================================================== */

@media (min-width: 1024px) {

	.blatte-hero__benefit-grid {
		grid-template-columns:
			repeat(
				3,
				minmax(0, 1fr)
			) !important;

		gap: 0.8rem;
	}


	.blatte-hero__benefit-card {
		min-height: 6.2rem;

		padding: 0.95rem !important;
	}

}


/* ==================================================
   TABLET
   ================================================== */

@media (min-width: 700px) and (max-width: 1023px) {

	.blatte-hero__benefit-grid {
		grid-template-columns:
			repeat(
				3,
				minmax(0, 1fr)
			) !important;
	}

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 699px) {

	.blatte-hero__benefit-grid {
		grid-template-columns:
			minmax(0, 1fr) !important;

		gap: 0.6rem;

		margin-top:
			1.1rem !important;
	}


	.blatte-hero__benefit-card {
		min-height: auto;

		padding: 0.85rem !important;
	}


	.blatte-hero__benefit-title {
		font-size: 0.88rem;
	}


	.blatte-hero__benefit-text {
		font-size: 0.74rem;
	}

}


/* ==================================================
   CTA
   ================================================== */

.blatte-hero__actions {
	display: flex !important;

	flex-direction: column;

	align-items: stretch;

	gap: 0.6rem;

	width: 100%;

	margin-top: 1.2rem;
}


.blatte-hero__cta {
	display: flex;

	flex: 1 1 0;

	align-items: center;
	justify-content: center;

	gap: 0.55rem;

	width: 100%;

	min-height: 3.1rem;

	padding: 0.72rem 1rem;

	border:
		2px solid transparent;

	border-radius: 0.5rem;

	font-family:
		"Phudu",
		sans-serif;

	font-size: 0.84rem;

	font-weight: 700;

	line-height: 1.25;

	text-align: center;

	text-decoration: none !important;

	transition:
		transform 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease;
}


.blatte-hero__cta svg {
	width: 1.1rem;
	height: 1.1rem;

	flex: 0 0 auto;

	fill: none;

	stroke:
		currentColor;

	stroke-width: 1.9;

	stroke-linecap: round;
	stroke-linejoin: round;
}


.blatte-hero__cta--primary {
	color:
		var(--blatte-dark) !important;

	background:
		var(--blatte-orange);

	border-color:
		var(--blatte-orange);
}


.blatte-hero__cta--primary:hover {
	color:
		var(--blatte-dark) !important;

	background:
		var(--blatte-teal-light);

	border-color:
		var(--blatte-teal-light);

	transform:
		translateY(-2px);
}


.blatte-hero__cta--secondary {
	color:
		var(--blatte-white) !important;

	background:
		transparent;

	border-color:
		var(--blatte-teal);
}


.blatte-hero__cta--secondary:hover {
	color:
		var(--blatte-dark) !important;

	background:
		var(--blatte-teal-light);

	border-color:
		var(--blatte-teal-light);

	transform:
		translateY(-2px);
}


.blatte-hero__cta:focus-visible {
	outline:
		3px solid var(--blatte-teal-light);

	outline-offset: 4px;
}


/* ==================================================
   MICROCOPY
   ================================================== */

.blatte-hero__microcopy {
	display: flex;

	flex-wrap: wrap;
	align-items: center;

	gap: 0.25rem 0.45rem;

	width: 100%;

	margin: 0.7rem 0 0;

	color:
		rgb(255 255 255 / 60%) !important;

	font-size: 0.66rem;

	font-weight: 500;

	line-height: 1.45;
}


.blatte-hero__microcopy span {
	color:
		var(--blatte-orange) !important;
}


.blatte-hero__conditions {
	width: 100%;
	max-width: 42rem;

	margin: 0.45rem 0 0;

	color:
		rgb(255 255 255 / 46%) !important;

	font-size: 0.6rem;

	line-height: 1.45;
}


/* ==================================================
   FORM CARD
   ================================================== */

.blatte-hero__form-card {
	display: flex !important;

	flex-direction: column;

	align-items: stretch;
	justify-content: flex-start;

	width: 100%;
	min-width: 0;

	scroll-margin-top: 2rem;

	padding:
		clamp(
			1.1rem,
			2vw,
			1.5rem
		);

	color:
		var(--blatte-dark);

	background:
		var(--blatte-white);

	border:
		1px solid rgb(46 68 56 / 12%);

	border-top:
		5px solid var(--blatte-teal);

	border-radius: 0.85rem;

	box-shadow:
		0 1rem 2.7rem
		rgb(29 35 39 / 24%);
}


/* ==================================================
   FORM HEADER
   ================================================== */

.blatte-hero__form-head {
	width: 100%;

	margin-bottom: 1rem;
}


.blatte-hero__form-eyebrow {
	margin: 0 0 0.3rem;

	color:
		var(--blatte-teal) !important;

	font-size: 0.68rem;

	font-weight: 700;

	line-height: 1.3;

	letter-spacing: 0.045em;

	text-transform: uppercase;
}


.blatte-hero__form-head h2 {
	margin: 0;

	color:
		var(--blatte-green) !important;

	font-family:
		"Phudu",
		sans-serif !important;

	font-size:
		clamp(
			1.3rem,
			1.8vw,
			1.7rem
		);

	font-weight:
		800 !important;

	line-height: 1.1;

	letter-spacing: -0.018em;
}


.blatte-hero__form-head > p:last-child {
	margin: 0.5rem 0 0;

	color:
		var(--blatte-green) !important;

	font-size: 0.8rem;

	line-height: 1.5;

	opacity: 0.78;
}


/* ==================================================
   FORM SHORTCODE
   ================================================== */

.blatte-hero__form-shortcode,
.blatte-hero__form-shortcode form {
	display: block;

	width: 100%;
	max-width: 100%;

	min-width: 0;

	margin: 0;
}


.blatte-hero__form-shortcode label {
	color:
		var(--blatte-green) !important;

	font-size: 0.76rem;

	font-weight: 600;
}


.blatte-hero__form-shortcode input[type="text"],
.blatte-hero__form-shortcode input[type="email"],
.blatte-hero__form-shortcode input[type="tel"],
.blatte-hero__form-shortcode input[type="number"],
.blatte-hero__form-shortcode input[type="date"],
.blatte-hero__form-shortcode input[type="url"],
.blatte-hero__form-shortcode select,
.blatte-hero__form-shortcode textarea {
	display: block;

	width: 100%;
	max-width: 100%;

	min-height: 2.8rem;

	padding: 0.62rem 0.72rem;

	color:
		var(--blatte-dark) !important;

	background:
		var(--blatte-white) !important;

	border:
		1px solid rgb(46 68 56 / 24%) !important;

	border-radius: 0.42rem;

	font: inherit;

	font-size: 0.92rem;

	outline: none;

	box-shadow: none;
}


.blatte-hero__form-shortcode textarea {
	min-height: 5.5rem;

	resize: vertical;
}


.blatte-hero__form-shortcode input::placeholder,
.blatte-hero__form-shortcode textarea::placeholder {
	color:
		var(--blatte-green);

	opacity: 0.5;
}


.blatte-hero__form-shortcode input:focus,
.blatte-hero__form-shortcode select:focus,
.blatte-hero__form-shortcode textarea:focus {
	border-color:
		var(--blatte-teal) !important;

	box-shadow:
		0 0 0 3px
		rgb(21 148 139 / 12%);
}


.blatte-hero__form-shortcode input[type="checkbox"],
.blatte-hero__form-shortcode input[type="radio"] {
	accent-color:
		var(--blatte-teal);
}


.blatte-hero__form-shortcode button[type="submit"],
.blatte-hero__form-shortcode input[type="submit"] {
	display: block;

	width: 100%;
	max-width: 100%;

	min-height: 3rem;

	padding: 0.7rem 0.9rem;

	color:
		var(--blatte-dark) !important;

	background:
		var(--blatte-teal-light) !important;

	border:
		0 !important;

	border-radius: 0.45rem;

	font: inherit;

	font-size: 0.88rem;

	font-weight: 800;

	cursor: pointer;

	transition:
		background-color 180ms ease,
		transform 180ms ease;
}


.blatte-hero__form-shortcode button[type="submit"]:hover,
.blatte-hero__form-shortcode input[type="submit"]:hover {
	background:
		var(--blatte-orange) !important;

	transform:
		translateY(-1px);
}


.blatte-hero__form-reassurance {
	display: flex;

	align-items: flex-start;

	gap: 0.35rem;

	width: 100%;

	margin: 0.65rem 0 0;

	color:
		var(--blatte-green) !important;

	font-size: 0.66rem;

	line-height: 1.4;

	opacity: 0.72;
}


.blatte-hero__form-reassurance span {
	color:
		var(--blatte-teal) !important;

	font-weight: 800;
}


/* ==================================================
   TABLET
   ================================================== */

@media (min-width: 700px) {

	.blatte-hero__actions {
		flex-direction: row;
	}

}


/* ==================================================
   DESKTOP
   ================================================== */

@media (min-width: 1024px) {

	.blatte-hero__layout {
		flex-direction: row;

		align-items: flex-start;
		justify-content: space-between;

		gap:
			clamp(
				2rem,
				3vw,
				3rem
			);
	}


	.blatte-hero__main {
		flex: 1 1 0;

		width: auto;
		min-width: 0;
	}


	.blatte-hero__form-card {
		flex: 0 1 24rem;

		width: min(38%, 24rem);
		min-width: 20rem;

		align-self: flex-start;
	}


	.blatte-hero__benefit-card {
		min-height: 6rem;
	}

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 699px) {

	.blatte-hero {
		padding-block: 40px;
	}


	.blatte-hero__layout {
		width:
			calc(100% - 1.25rem);

		gap: 1.4rem;
	}


	.blatte-hero__title {
		max-width: 100%;

		font-size:
			clamp(
				1.85rem,
				8vw,
				2.4rem
			);

		line-height: 1.06;
	}


	.blatte-hero__eyebrow {
		border-radius: 0.55rem;
	}


	.blatte-hero__toc {
		display: block;

		margin-top: 0.9rem;

		padding-top: 0.75rem;
	}


	.blatte-hero__toc-label {
		display: block;

		margin-bottom: 0.4rem;
	}


	.blatte-hero__toc ul {
		flex-wrap: nowrap;

		width: 100%;

		overflow-x: auto;

		padding-bottom: 0.3rem;

		scrollbar-width: thin;

		-webkit-overflow-scrolling:
			touch;
	}


	.blatte-hero__toc li {
		flex: 0 0 auto;
	}


	.blatte-hero__benefit-grid {
		grid-template-columns:
			minmax(0, 1fr) !important;

		gap: 0.6rem;

		margin-top: 1.1rem;
	}


	.blatte-hero__benefit-card {
		width: 100% !important;

		padding: 0.85rem;
	}


	.blatte-hero__actions {
		flex-direction: column;
	}


	.blatte-hero__cta {
		width: 100%;
	}


	.blatte-hero__form-card {
		padding: 1rem;
	}

}


/* ==================================================
   SMARTPHONE PICCOLI
   ================================================== */

@media (max-width: 380px) {

	.blatte-hero__title {
		font-size: 1.8rem;
	}


	.blatte-hero__stars {
		align-items: flex-start;
	}


	.blatte-hero__stars-copy {
		flex-basis: 100%;
	}


	.blatte-hero__cta {
		padding-inline: 0.8rem;

		font-size: 0.8rem;
	}

}


/* ==================================================
   ACCESSIBILITÀ
   ================================================== */

@media (prefers-reduced-motion: reduce) {

	.blatte-hero__cta,
	.blatte-hero__toc a,
	.blatte-hero__form-shortcode button,
	.blatte-hero__form-shortcode input[type="submit"] {
		transition: none;
	}


	.blatte-hero__cta:hover,
	.blatte-hero__form-shortcode button:hover,
	.blatte-hero__form-shortcode input[type="submit"]:hover {
		transform: none;
	}

}

/* --------------------------------------------------
   CARD DEI VANTAGGI IN LINEA

   wpautop inserisce un <p> vuoto prima di ogni card:
   la griglia si ritrova 6 figli invece di 3 e le card
   finiscono a scacchiera. I <p> diretti qui non sono
   mai contenuto: le card sono <article>.
   -------------------------------------------------- */

.blatte-hero__benefit-grid > p {
	display: none;
}

.blatte-hero__benefit-grid {
	align-items: stretch;
}


/* --------------------------------------------------
   FORM DELL'HERO

   24px di padding su una colonna da 384px lasciavano
   336px ai campi: la form risultava stretta. Con 16px
   se ne guadagnano 16.
   -------------------------------------------------- */

.blatte-hero__form-card {
	padding: 16px;
}

/* --------------------------------------------------
   TESTO DI LETTURA A 18px

   Gli heading non vengono toccati. I <small> restano
   subordinati ma salgono a 16px: sotto i 12px erano
   etichette illeggibili, non gerarchia.
   -------------------------------------------------- */

.blatte-hero p,
.blatte-hero li,
.blatte-hero td,
.blatte-hero dd,
.blatte-hero dt {
	font-size: 18px;
}

.blatte-hero small {
	font-size: 16px;
}

/* --------------------------------------------------
   INTESTAZIONE E CODA DELLA CARD PIU' COMPATTE
   -------------------------------------------------- */

.blatte-hero__form-head {
	margin-bottom: 0.5rem;
}

.blatte-hero__form-head h2,
.blatte-hero__form-title {
	margin: 0.15rem 0 0.3rem;

	line-height: 1.2;
}

.blatte-hero__form-reassurance {
	margin-top: 0.5rem;
}

/* ======================================================================
   CTA WHATSAPP NELL'HERO

   Va su una riga propria, non in fila con le altre due: a 1024px i due
   pulsanti esistenti sono gia' larghi 251px con il testo su due righe,
   un terzo in riga li porterebbe a ~165px e a tre righe di testo.
   flex-wrap + flex-basis 100% lo mandano sotto senza toccarli.

   Il colore e' lo stesso #15948b della barra mobile: WhatsApp sul sito
   ha gia' questa identita', non se ne introduce una seconda. Il colore
   va !important come per --primary e --secondary, altrimenti vince
   `.elementor-kit-29 a`, che con (0,1,1) batte la classe singola.
   ====================================================================== */

.blatte-hero__actions {
	flex-wrap: wrap;
}

.blatte-hero__cta--whatsapp {
	flex: 1 1 100%;

	color: #FFFFFF !important;
	background: #15948b;
	border-color: #15948b;
}

.blatte-hero__cta--whatsapp:hover {
	background: #0f6f68;
	border-color: #0f6f68;
}

/* ----------------------------------------------------------------------
   GRONDA MOBILE DELL'HERO ALLINEATA ALLE ALTRE SEZIONI

   `.blatte-hero__layout` lasciava 9px per lato contro i 15 di costi,
   chi-siamo e ora problema/zone/contatto. Stessa convenzione.
   ---------------------------------------------------------------------- */

@media (max-width: 1023px) {

	.blatte-hero__layout {
		width: min(1400px, calc(100% - 2rem));

		margin-inline: auto;
	}

}

/* ----------------------------------------------------------------------
   FRASE DELLE SPECIE SU UNA RIGA SOLA

   Con la quarta specie e la coda "e altre specie di blatte" la frase
   misura 1066px su riga unica, mentre il contenitore e' 879 a 1520px e
   749 a 1280px: a 18px andava a capo su due righe.

   Il corpo scala con la larghezza della finestra invece di essere fisso.
   Il contenitore vale circa il 58% della finestra, quindi il corpo che
   serve e' ~0,976vw: qui si usa 0,96vw, appena sotto, per avere margine.
   Il tetto resta 18px, cosi' su schermi molto larghi non cresce oltre il
   resto del testo.

   NIENTE `white-space: nowrap`: se il calcolo sbagliasse di poco, la
   frase sborderebbe dal contenitore invece di andare a capo. Meglio due
   righe che testo tagliato fuori.

   Sotto i 1200px la riga unica richiederebbe meno di 11px: li' la frase
   va a capo, ed e' la scelta giusta.
   ---------------------------------------------------------------------- */

@media ( min-width: 1200px ) {

	/* due classi + elemento: (0,2,1). La regola del corpo hero
	   `.blatte-hero p, ...` vale (0,1,1) e altrimenti vince lei. */
	.blatte-hero p.blatte-hero__species {
		font-size: min(18px, 0.96vw);
	}

}

/* Block: problema-soluzione */
.blatte-problema {
	--blatte-dark: #1d2327;
	--blatte-green: #2e4438;
	--blatte-teal: #0f6f68;
	--blatte-teal-light: #2db0a6;
	--blatte-orange: #e06b44;
	--blatte-white: #ffffff;

	display: block !important;

	width: 100%;
	padding-block: 50px;

	color: var(--blatte-green);
	background: var(--blatte-white);

	font-family: "Phudu", sans-serif;
}


.blatte-problema *,
.blatte-problema *::before,
.blatte-problema *::after {
	box-sizing: border-box;
}


/* ==================================================
   ASSE CENTRALE DELLA SEZIONE

   Header, card e highlight condividono
   esattamente la stessa larghezza.
   ================================================== */

.blatte-problema__header,
.blatte-problema__grid,
.blatte-problema__highlight {
	width: 100%;
	max-width: 1400px;

	margin-left: auto;
	margin-right: auto;
}


/* ==================================================
   HEADER
   ================================================== */

.blatte-problema__header {
	display: flex;

	flex-direction: column;
	align-items: flex-start;

	margin-bottom:
		clamp(
			1.6rem,
			3vw,
			2.3rem
		);
}


/* ==================================================
   EYEBROW
   ================================================== */

.blatte-problema__eyebrow {
	display: inline-flex;

	align-items: center;

	gap: 0.5rem;

	max-width: 100%;

	margin:
		0 0 0.75rem;

	padding:
		0.42rem 0.72rem;

	color:
		var(--blatte-green);

	background:
		rgb(45 176 166 / 10%);

	border:
		1px solid rgb(21 148 139 / 24%);

	border-radius:
		999px;

	font-size:
		0.68rem;

	font-weight:
		700;

	line-height:
		1.3;

	letter-spacing:
		0.045em;

	text-transform:
		uppercase;
}


.blatte-problema__eyebrow-dot {
	display: inline-block;

	width: 0.48rem;
	height: 0.48rem;

	flex:
		0 0 0.48rem;

	background:
		var(--blatte-orange);

	border-radius:
		50%;
}


/* ==================================================
   H2
   ================================================== */

.blatte-problema__title {
	width: 100%;
	max-width: 58rem;

	margin: 0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			2rem,
			3.2vw,
			3rem
		);

	font-weight:
		800;

	line-height:
		1.05;

	letter-spacing:
		-0.03em;

	text-wrap:
		balance;
}


/* ==================================================
   INTRO
   ================================================== */

.blatte-problema__intro {
	width: 100%;
	max-width: 55rem;

	margin:
		0.9rem 0 0;

	color:
		var(--blatte-green);

	font-size:
		clamp(
			0.94rem,
			1.25vw,
			1.04rem
		);

	font-weight:
		400;

	line-height:
		1.65;

	opacity:
		0.83;

	text-wrap:
		pretty;
}


/* ==================================================
   LAYOUT CARD

   Mobile = colonna
   Desktop = due colonne reali
   ================================================== */

.blatte-problema__grid {
	display: flex !important;

	flex-direction: column;

	align-items: stretch;
	justify-content: flex-start;

	gap:
		clamp(
			1rem,
			2vw,
			1.4rem
		);
}


/* ==================================================
   CARD
   ================================================== */

.blatte-problema__card {
	position: relative;

	display: flex;

	flex-direction: column;

	align-items: stretch;
	justify-content: flex-start;

	width: 100%;
	min-width: 0;

	overflow: hidden;

	padding:
		clamp(
			1rem,
			1.5vw,
			1.25rem
		);

	background:
		var(--blatte-white);

	border:
		1px solid rgb(46 68 56 / 14%);

	border-radius:
		0.85rem;

	box-shadow:
		0 0.5rem 1.4rem
		rgb(29 35 39 / 6%);

	transition:
		border-color 180ms ease,
		box-shadow 180ms ease,
		transform 180ms ease;
}


.blatte-problema__card::before {
	content: "";

	position: absolute;

	top: 0;
	right: 0;
	left: 0;

	height: 4px;
}


.blatte-problema__card:hover {
	box-shadow:
		0 0.8rem 1.9rem
		rgb(29 35 39 / 9%);

	transform:
		translateY(-2px);
}


/* ==================================================
   CARD PROBLEMA
   ================================================== */

.blatte-problema__card--risk {
	background:
		linear-gradient(
			145deg,
			var(--blatte-white),
			rgb(224 107 68 / 4%)
		);

	border-color:
		rgb(224 107 68 / 21%);
}


.blatte-problema__card--risk::before {
	background:
		var(--blatte-orange);
}


/* ==================================================
   CARD SOLUZIONE
   ================================================== */

.blatte-problema__card--solution {
	background:
		linear-gradient(
			145deg,
			var(--blatte-white),
			rgb(45 176 166 / 5%)
		);

	border-color:
		rgb(21 148 139 / 21%);
}


.blatte-problema__card--solution::before {
	background:
		var(--blatte-teal);
}


/* ==================================================
   CARD HEADING
   ================================================== */

.blatte-problema__card-heading {
	display: flex;

	align-items: flex-start;

	gap: 0.7rem;

	width: 100%;

	margin-bottom:
		0.7rem;
}


.blatte-problema__card-heading > div {
	flex:
		1 1 auto;

	min-width: 0;
}


/* ==================================================
   ICONA PRINCIPALE
   ================================================== */

.blatte-problema__icon {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 2.65rem;
	height: 2.65rem;

	flex:
		0 0 2.65rem;

	color:
		var(--blatte-white);

	border-radius:
		0.55rem;
}


.blatte-problema__card--risk
.blatte-problema__icon {
	background:
		var(--blatte-orange);
}


.blatte-problema__card--solution
.blatte-problema__icon {
	background:
		var(--blatte-teal);
}


.blatte-problema__icon svg,
.blatte-problema__list-icon svg,
.blatte-problema__highlight-icon svg {
	width: 1.25rem;
	height: 1.25rem;

	fill: none;

	stroke:
		currentColor;

	stroke-width:
		1.8;

	stroke-linecap:
		round;

	stroke-linejoin:
		round;
}


/* ==================================================
   LABEL
   ================================================== */

.blatte-problema__label {
	margin:
		0 0 0.2rem;

	color:
		var(--blatte-orange);

	font-size:
		0.64rem;

	font-weight:
		700;

	line-height:
		1.3;

	letter-spacing:
		0.05em;

	text-transform:
		uppercase;
}


.blatte-problema__card--solution
.blatte-problema__label {
	color:
		var(--blatte-teal);
}


/* ==================================================
   H3
   ================================================== */

.blatte-problema__card h3 {
	width: 100%;

	margin: 0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			1.12rem,
			1.65vw,
			1.45rem
		);

	font-weight:
		750;

	line-height:
		1.18;

	letter-spacing:
		-0.016em;

	text-wrap:
		balance;
}


/* ==================================================
   INTRO CARD
   ================================================== */

.blatte-problema__card > p {
	width: 100%;

	margin: 0;

	color:
		var(--blatte-green);

	font-size:
		0.84rem;

	line-height:
		1.62;

	opacity:
		0.82;
}


/* ==================================================
   LISTA
   ================================================== */

.blatte-problema__list {
	display: flex;

	flex-direction: column;

	width: 100%;

	gap: 0;

	margin:
		0.8rem 0 0;

	padding: 0;

	list-style: none;
}


.blatte-problema__list li {
	display: flex;

	align-items: flex-start;

	gap: 0.65rem;

	width: 100%;

	padding:
		0.58rem 0;

	border-top:
		1px solid rgb(46 68 56 / 11%);
}


.blatte-problema__list li:last-child {
	padding-bottom: 0;
}


/* ==================================================
   ICONE LISTA
   ================================================== */

.blatte-problema__list-icon {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 2rem;
	height: 2rem;

	flex:
		0 0 2rem;

	margin-top:
		0.05rem;

	border-radius:
		0.48rem;
}


.blatte-problema__card--risk
.blatte-problema__list-icon {
	color:
		var(--blatte-orange);

	background:
		rgb(224 107 68 / 10%);
}


.blatte-problema__card--solution
.blatte-problema__list-icon {
	color:
		var(--blatte-teal);

	background:
		rgb(45 176 166 / 10%);
}


.blatte-problema__list-icon svg {
	width: 0.95rem;
	height: 0.95rem;
}


/* ==================================================
   CONTENUTO LISTA
   ================================================== */

.blatte-problema__list li > div {
	flex:
		1 1 auto;

	min-width: 0;
}


.blatte-problema__list strong {
	display: block;

	margin-bottom:
		0.12rem;

	color:
		var(--blatte-dark);

	font-size:
		0.82rem;

	font-weight:
		700;

	line-height:
		1.38;
}


.blatte-problema__list p {
	margin: 0;

	color:
		var(--blatte-green);

	font-size:
		0.76rem;

	line-height:
		1.55;

	opacity:
		0.78;
}


.blatte-problema__list em {
	color:
		var(--blatte-teal);

	font-style:
		normal;

	font-weight:
		600;
}


/* ==================================================
   HIGHLIGHT FINALE
   ================================================== */

.blatte-problema__highlight {
	display: flex;

	align-items: center;

	gap: 0.8rem;

	margin-top:
		clamp(
			1rem,
			2vw,
			1.35rem
		);

	padding:
		clamp(
			1rem,
			2vw,
			1.3rem
		);

	color:
		var(--blatte-white);

	background:
		linear-gradient(
			135deg,
			var(--blatte-dark),
			var(--blatte-green)
		);

	border:
		1px solid rgb(45 176 166 / 18%);

	border-radius:
		0.85rem;

	box-shadow:
		0 0.7rem 1.8rem
		rgb(29 35 39 / 13%);
}


.blatte-problema__highlight-icon {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 2.5rem;
	height: 2.5rem;

	flex:
		0 0 2.5rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);

	border-radius:
		50%;
}


.blatte-problema__highlight p {
	display: flex;

	flex:
		1 1 auto;

	flex-direction: column;

	gap: 0.2rem;

	min-width: 0;

	margin: 0;
}


.blatte-problema__highlight strong {
	color:
		var(--blatte-white);

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			0.95rem,
			1.4vw,
			1.05rem
		);

	font-weight:
		700;

	line-height:
		1.38;
}


.blatte-problema__highlight span {
	color:
		rgb(255 255 255 / 70%);

	font-size:
		0.78rem;

	line-height:
		1.52;
}


/* ==================================================
   DESKTOP
   DUE COLONNE REALI
   ================================================== */

@media (min-width: 1024px) {

	.blatte-problema__grid {
		flex-direction: row;

		align-items: stretch;
		justify-content: space-between;

		gap:
			clamp(
				1rem,
				1.5vw,
				1.35rem
			);
	}


	.blatte-problema__card--risk,
	.blatte-problema__card--solution {
		flex: 1 1 0;

		width: 0;
		min-width: 0;

		align-self: stretch;
	}

}


/* ==================================================
   DESKTOP MOLTO AMPIO
   ================================================== */

@media (min-width: 1280px) {

	.blatte-problema__header,
	.blatte-problema__grid,
	.blatte-problema__highlight {
		max-width:
			1400px;
	}


}


/* ==================================================
   TABLET
   ================================================== */

@media (
	min-width: 700px
) and (
	max-width: 1023px
) {

	.blatte-problema__grid {
		flex-direction:
			column;
	}


	.blatte-problema__card {
		width:
			100%;
	}


	.blatte-problema__title {
		max-width:
			52rem;
	}

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 699px) {

	.blatte-problema {
		padding-block: 40px;
	}


	.blatte-problema__header {
		margin-bottom:
			1.35rem;
	}


	.blatte-problema__title {
		max-width:
			100%;

		font-size:
			clamp(
				1.7rem,
				8vw,
				2.3rem
			);

		line-height:
			1.07;
	}


	.blatte-problema__intro {
		max-width:
			100%;

		margin-top:
			0.75rem;

		font-size:
			0.92rem;
	}


	.blatte-problema__eyebrow {
		border-radius:
			0.55rem;
	}


	.blatte-problema__grid {
		flex-direction:
			column;

		gap:
			0.9rem;
	}


	.blatte-problema__card {
		width:
			100%;

		padding:
			1rem;
	}


	.blatte-problema__card-heading {
		gap:
			0.65rem;

		margin-bottom:
			0.8rem;
	}


	.blatte-problema__icon {
		width:
			2.45rem;

		height:
			2.45rem;

		flex-basis:
			2.45rem;
	}


	.blatte-problema__card h3 {
		font-size:
			1.12rem;
	}


	.blatte-problema__card > p {
		font-size:
			0.82rem;
	}


	.blatte-problema__list {
		margin-top:
			0.85rem;
	}


	.blatte-problema__list li {
		gap:
			0.6rem;

		padding:
			0.68rem 0;
	}


	.blatte-problema__list-icon {
		width:
			1.9rem;

		height:
			1.9rem;

		flex-basis:
			1.9rem;
	}


	.blatte-problema__highlight {
		align-items:
			flex-start;

		gap:
			0.65rem;

		padding:
			0.95rem;
	}

}


/* ==================================================
   SMARTPHONE MOLTO PICCOLI
   ================================================== */

@media (max-width: 380px) {

	.blatte-problema__card-heading {
		flex-direction:
			column;
	}


	.blatte-problema__highlight {
		flex-direction:
			column;
	}

}


/* ==================================================
   ACCESSIBILITÀ
   ================================================== */

@media (prefers-reduced-motion: reduce) {

	.blatte-problema__card {
		transition:
			none;
	}


	.blatte-problema__card:hover {
		transform:
			none;
	}

}

/* --------------------------------------------------
   TESTO DI LETTURA A 18px

   Gli heading non vengono toccati. I <small> restano
   subordinati ma salgono a 16px: sotto i 12px erano
   etichette illeggibili, non gerarchia.
   -------------------------------------------------- */

.blatte-problema p,
.blatte-problema li,
.blatte-problema td,
.blatte-problema dd,
.blatte-problema dt {
	font-size: 18px;
}

.blatte-problema small {
	font-size: 16px;
}

/* --------------------------------------------------
   RIQUADRO-NOTA: RESPIRO E ACCENTO ARANCIONE

   Era identico a quello del blocco costi — stesso
   gradiente scuro, stesso peso — e due riquadri uguali
   a poca distanza si neutralizzano a vicenda.

   La forma resta quella comune (raggio 14.4px), cambia
   l'ACCENTO: qui arancione, perche' il messaggio e' un
   avvertimento. Padding da 20.8 a 32px e titolo da
   16.8 a 20px, cosi' il riquadro pesa quanto il ruolo
   che ha. Arancione su fondo scuro: 4.81.
   -------------------------------------------------- */

.blatte-problema__highlight {
	padding: 32px;

	border-radius: 14.4px;

	border-left: 5px solid var(--blatte-orange);

	background:
		radial-gradient(
			circle at 0 0,
			rgb(224 107 68 / 26%),
			transparent 420px
		),
		linear-gradient(
			135deg,
			var(--blatte-dark) 0%,
			var(--blatte-green) 100%
		);
}

.blatte-problema__highlight strong {
	display: block;

	margin-bottom: 0.45rem;

	color: var(--blatte-orange);

	font-size: 20px;

	letter-spacing: 0.01em;
}

.blatte-problema__highlight p,
.blatte-problema__highlight span {
	font-size: 18px;

	line-height: 1.55;
}

/* ======================================================================
   MARGINI LATERALI SU MOBILE

   A 390px il titolo e l'intro toccavano il bordo sinistro a 0px: l'asse
   di questa sezione e' `width: 100%` con `margin: auto`, quindi su
   schermi stretti non lascia alcuna gronda. Le sezioni gia' a posto
   (costi, chi-siamo) usano `min(1400px, calc(100% - 2rem))`, che a
   390px da' 16px per lato: qui si applica la stessa convenzione.

   Limitato a <=1023px perche' il desktop e' gia' verificato a 1400px e
   non va toccato.
   ====================================================================== */

@media (max-width: 1023px) {

	.blatte-problema__header,
	.blatte-problema__grid,
	.blatte-problema__highlight {
		width: min(1400px, calc(100% - 2rem));

		margin-inline: auto;
	}

}

/* Block: costi */
.blatte-costi,
.blatte-costi__inner,
.blatte-costi__header,
.blatte-costi__heading-grid,
.blatte-costi__heading-grid > *,
.blatte-costi__hook,
.blatte-costi__hook > *,
.blatte-costi__toolbar,
.blatte-costi__toolbar > *,
.blatte-costi__search,
.blatte-costi__search-field,
.blatte-costi__filters,
.blatte-costi__table-shell,
.blatte-costi__table-scroll,
.blatte-costi__footer,
.blatte-costi__footer > * {
	min-width: 0;
	max-width: 100%;
}


/* ==================================================
   HEADER

   Il box scuro non viene più compresso in una
   colonna laterale troppo stretta.
   ================================================== */

.blatte-costi__heading-grid {
	display: grid !important;

	grid-template-columns:
		minmax(0, 1fr) !important;

	align-items: stretch !important;

	gap: 1rem !important;

	width: 100%;
}


.blatte-costi__heading-grid > div:first-child {
	width: 100%;
	min-width: 0;
}


.blatte-costi__title,
.blatte-costi__intro {
	width: 100%;
	max-width: 62rem;
}


.blatte-costi__hook {
	display: grid !important;

	grid-template-columns:
		2.7rem minmax(0, 1fr);

	align-items: center !important;

	gap: 0.8rem !important;

	width: 100% !important;
	max-width: 100% !important;

	min-width: 0 !important;

	margin: 0 !important;

	padding: 0.9rem 1rem !important;

	overflow: hidden;
}


.blatte-costi__hook-icon {
	width: 2.7rem !important;
	height: 2.7rem !important;

	min-width: 2.7rem;

	flex: none !important;

	margin: 0 !important;
}


.blatte-costi__hook p {
	display: block !important;

	width: 100%;
	min-width: 0;

	margin: 0 !important;
	padding: 0 !important;
}


.blatte-costi__hook strong,
.blatte-costi__hook p > span {
	width: 100%;
	max-width: 100%;

	margin-right: 0 !important;

	white-space: normal !important;

	word-break: normal !important;
	overflow-wrap: break-word !important;
}


.blatte-costi__hook strong {
	color: var(--blatte-white) !important;

	font-size: 0.95rem !important;

	line-height: 1.35 !important;
}


.blatte-costi__hook p > span {
	color: rgb(255 255 255 / 72%) !important;

	font-size: 0.8rem !important;

	line-height: 1.5 !important;
}


/* ==================================================
   TOOLBAR

   Ricerca a sinistra + filtri a destra.
   Nessun elemento può collassare a pochi pixel.
   ================================================== */

.blatte-costi__toolbar {
	display: grid !important;

	grid-template-columns:
		minmax(0, 1fr) auto;

	align-items: end !important;

	gap: 1rem !important;

	width: 100%;

	margin-bottom: 0.9rem;
}


.blatte-costi__search {
	width: 100% !important;
	max-width: none !important;

	min-width: 0 !important;

	margin: 0 !important;
}


.blatte-costi__search-field {
	width: 100% !important;

	min-width: 0 !important;
}


.blatte-costi__search-input {
	display: block;

	width: 100% !important;
	max-width: 100% !important;

	min-width: 0 !important;
}


.blatte-costi__filters {
	display: flex !important;

	flex-wrap: wrap;

	align-items: center;
	justify-content: flex-end;

	gap: 0.45rem;

	width: auto;
	min-width: 0;
}


.blatte-costi__filter {
	flex: 0 0 auto;

	white-space: nowrap;
}


/* ==================================================
   TABELLA
   ================================================== */

.blatte-costi__table-shell {
	width: 100%;

	overflow: hidden;
}


.blatte-costi__table-scroll {
	width: 100%;

	overflow-x: auto;
	overflow-y: hidden;
}


.blatte-costi__table {
	width: 100% !important;

	min-width: 68rem;

	table-layout: fixed !important;
}


.blatte-costi__table th,
.blatte-costi__table td {
	min-width: 0;

	overflow-wrap: break-word;
	word-break: normal;

	white-space: normal;
}


/*
 * Distribuzione più adatta anche a prezzi composti
 * come "€350 + IVA il primo passaggio..."
 */

.blatte-costi__table th:nth-child(1),
.blatte-costi__table td:nth-child(1) {
	width: 25% !important;
}


.blatte-costi__table th:nth-child(2),
.blatte-costi__table td:nth-child(2) {
	width: 24% !important;
}


.blatte-costi__table th:nth-child(3),
.blatte-costi__table td:nth-child(3) {
	width: 25% !important;
}


.blatte-costi__table th:nth-child(4),
.blatte-costi__table td:nth-child(4) {
	width: 26% !important;
}


/* ==================================================
   PREZZO

   Prima era white-space: nowrap:
   i prezzi lunghi invadevano la colonna successiva.
   ================================================== */

.blatte-costi__price {
	display: inline-block !important;

	width: auto;
	max-width: 100% !important;

	min-width: 0 !important;

	padding: 0.42rem 0.6rem !important;

	white-space: normal !important;

	word-break: normal !important;
	overflow-wrap: break-word !important;

	line-height: 1.3 !important;

	text-align: left;
}


/* ==================================================
   FOOTER
   ================================================== */

.blatte-costi__footer {
	width: 100%;
}


.blatte-costi__note {
	min-width: 0;
}


.blatte-costi__note strong,
.blatte-costi__note span {
	overflow-wrap: break-word;
	word-break: normal;
}


/* ==================================================
   DESKTOP
   ================================================== */

@media (min-width: 1024px) {

	/*
	 * Manteniamo intenzionalmente l'header su una colonna:
	 * il box-hook è una fascia orizzontale e non può più
	 * uscire dalla propria area.
	 */

	.blatte-costi__heading-grid {
		grid-template-columns:
			minmax(0, 1fr) !important;
	}


	.blatte-costi__toolbar {
		grid-template-columns:
			minmax(20rem, 1fr)
			auto !important;
	}


	.blatte-costi__footer {
		display: grid !important;

		grid-template-columns:
			minmax(0, 1fr)
			auto;

		align-items: center;

		gap: 1rem;
	}


	.blatte-costi__cta {
		width: auto !important;

		max-width: 22rem;

		white-space: normal;
	}

}


/* ==================================================
   TABLET

   Barra filtri sotto il campo di ricerca.
   ================================================== */

@media (max-width: 900px) {

	.blatte-costi__toolbar {
		grid-template-columns:
			minmax(0, 1fr) !important;
	}


	.blatte-costi__filters {
		justify-content: flex-start;

		width: 100%;
	}

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 699px) {

	.blatte-costi__hook {
		grid-template-columns:
			2.5rem minmax(0, 1fr);

		padding:
			0.85rem !important;
	}


	.blatte-costi__hook-icon {
		width: 2.5rem !important;
		height: 2.5rem !important;

		min-width: 2.5rem;
	}


	.blatte-costi__filters {
		flex-wrap: nowrap;

		justify-content: flex-start;

		width: 100%;

		overflow-x: auto;

		padding-bottom: 0.25rem;

		-webkit-overflow-scrolling: touch;
	}


	/*
	 * La tabella mobile mantiene il layout a card
	 * già previsto dal CSS originale.
	 */

	.blatte-costi__table {
		min-width: 0 !important;
	}


	.blatte-costi__table td {
		width: 100% !important;
	}


	.blatte-costi__price {
		justify-self: start;

		width: fit-content;
		max-width: 100%;
	}


	.blatte-costi__footer {
		display: flex !important;

		flex-direction: column;

		align-items: stretch;
	}


	.blatte-costi__cta {
		width: 100% !important;
		max-width: none;
	}

}


/* ==================================================
   BLOCCO COSTI — regole mancanti

   Il foglio conteneva gia' tabella, filtri e ricerca,
   ma non il contenitore ne' la palette.

   Le variabili --blatte-* NON stanno su :root: ogni
   blocco le ridichiara sulla propria radice (hero,
   contatto, faq-toggle, problema, scelta, zone).
   .blatte-costi non lo faceva, quindi ogni
   var(--blatte-*) al suo interno restava senza valore
   e la CTA finale usciva trasparente.
   ================================================== */

.blatte-costi {
	--blatte-dark: #1d2327;
	--blatte-green: #2e4438;
	--blatte-teal: #0f6f68;
	--blatte-teal-light: #2db0a6;
	--blatte-orange: #e06b44;
	--blatte-white: #ffffff;

	display: block;

	width: 100%;

	padding-block: 50px;

	color: var(--blatte-green);

	font-family:
		"Phudu",
		sans-serif;
}

/* Asse centrale: stessa misura degli altri blocchi
   (.blatte-problema__header, .blatte-scelta__grid...). */
.blatte-costi__inner {
	width: 100%;
	max-width: 1400px;

	margin-left: auto;
	margin-right: auto;

	padding-left: 1rem;
	padding-right: 1rem;
}

.blatte-costi__header {
	width: 100%;

	margin-bottom: 1.4rem;
}

/* Occhiello a pastiglia: forma identica a
   .blatte-zone__eyebrow / __scelta / __problema. */
.blatte-costi__eyebrow {
	display: inline-flex;

	align-items: center;

	gap: 0.5rem;

	max-width: 100%;

	margin:
		0 0 0.75rem;

	padding:
		0.42rem 0.72rem;

	color: var(--blatte-green);

	background:
		rgb(45 176 166 / 10%);

	border:
		1px solid rgb(21 148 139 / 24%);

	border-radius:
		999px;

	font-size:
		0.68rem;

	font-weight:
		700;

	line-height:
		1.3;

	letter-spacing:
		0.045em;

	text-transform:
		uppercase;
}

/* Nel markup il titoletto e il testo che lo segue stanno
   dentro lo STESSO <p>: senza questo si leggevano
   attaccati ("...parte dal caso realeNumero di punti"). */
.blatte-costi__hook p strong,
.blatte-costi__table-meta p strong {
	display: block;

	margin-bottom: 0.15rem;
}

.blatte-costi__table-meta {
	display: flex;

	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;

	gap: 0.5rem;

	width: 100%;

	margin-bottom: 0.7rem;

	font-size: 0.8rem;
}

.blatte-costi__table-meta p {
	margin: 0;
}

.blatte-costi__result-count {
	color: var(--blatte-teal);

	font-weight: 700;

	white-space: nowrap;
}

/* Stesso difetto nelle celle: il qualificatore breve va
   sotto la casistica, non in coda alla stessa riga. */
.blatte-costi__table td small {
	display: block;

	margin-top: 0.2rem;

	font-size: 0.78em;
	font-weight: 400;

	opacity: 0.78;
}

/* Il campo fa da riferimento al pulsante di cancellazione,
   che il JS scopre togliendo l'attributo hidden. */
.blatte-costi__search-field {
	position: relative;
}

.blatte-costi__search-field .blatte-costi__search-input {
	padding-right: 2.2rem;
}

.blatte-costi__search-clear {
	position: absolute;
	top: 50%;
	right: 0.5rem;

	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 1.5rem;
	height: 1.5rem;

	padding: 0;

	color: var(--blatte-green);

	background:
		rgb(45 176 166 / 12%);

	border: 0;

	border-radius: 999px;

	font-size: 1rem;
	line-height: 1;

	cursor: pointer;

	transform:
		translateY(-50%);
}

/* Senza questa il display:inline-flex qui sopra batte la
   regola del browser e il pulsante resterebbe visibile
   anche da fermo. */
.blatte-costi__search-clear[hidden] {
	display: none;
}

.blatte-costi__empty {
	padding: 1.2rem 1rem;

	color: var(--blatte-green);

	text-align: center;
}

/* --------------------------------------------------
   CTA del blocco costi

   Nel foglio la CTA aveva SOLO regole di dimensione, e
   per giunta dentro due @media: nessuna regola di
   aspetto: a schermo restava un link di testo.
   Qui c'e' l'aspetto e basta — width e max-width
   restano governati dai due @media, per non entrare in
   conflitto con loro.
   -------------------------------------------------- */

.blatte-costi__cta {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	gap: 0.5rem;

	margin-top: 1rem;

	padding:
		0.65rem 0.95rem;

	color: var(--blatte-white);

	background:
		var(--blatte-teal-light);

	border:
		2px solid var(--blatte-teal-light);

	border-radius:
		0.48rem;

	font-size:
		0.74rem;

	font-weight:
		700;

	letter-spacing:
		0.03em;

	text-decoration:
		none;

	transition:
		background 0.2s ease,
		color 0.2s ease;
}

.blatte-costi__cta:hover,
.blatte-costi__cta:focus-visible {
	color: var(--blatte-teal-light);

	background: transparent;
}

/* --------------------------------------------------
   CORREZIONI CONTRASTO

   1) Il riquadro-nota ha <strong> e <span> BIANCHI ma
      nessuno sfondo: bianco su bianco, illeggibile.
      Il difetto era latente: finche' la palette non era
      dichiarata sulla radice, var(--blatte-white) non
      risolveva e il testo ereditava il verde scuro, per
      cui si leggeva lo stesso. Dichiarata la palette, il
      bianco ha iniziato a risolvere davvero. Si ripristina
      il fondo scuro che quel testo presuppone.

   2) Il kit di Elementor porta `.elementor-kit-29 a`
      (specificita' 0,1,1) che batte `.blatte-costi__cta`
      (0,1,0) e ricolora il bottone di verde su verde.
      Si sale a 0,2,1 invece di usare !important, cosi'
      la regola resta sovrascrivibile.
   -------------------------------------------------- */

.blatte-costi__hook {
	color: var(--blatte-white);

	background:
		linear-gradient(
			135deg,
			var(--blatte-dark) 0%,
			var(--blatte-green) 100%
		);

	border-radius: 0.6rem;
}

.blatte-costi__hook p,
.blatte-costi__hook strong,
.blatte-costi__hook span {
	color: var(--blatte-white);
}

.blatte-costi a.blatte-costi__cta,
.blatte-costi a.blatte-costi__cta span {
	color: var(--blatte-white);
}

.blatte-costi a.blatte-costi__cta:hover,
.blatte-costi a.blatte-costi__cta:focus-visible,
.blatte-costi a.blatte-costi__cta:hover span,
.blatte-costi a.blatte-costi__cta:focus-visible span {
	color: var(--blatte-teal-light);
}

/* --------------------------------------------------
   LAYOUT DEL RIQUADRO-NOTA

   wpautop sbilancia i tag di questo blocco: nel sorgente
   il riquadro ha due figli (icona + paragrafo), nel
   rendering compaiono </p> spuri che il browser trasforma
   in paragrafi VUOTI. Con quattro figli in una griglia a
   due colonne, il paragrafo col testo scivola nella
   colonna dell'icona (43px) e va a capo a ogni parola.

   Invece di inseguire l'autop si rende la regola
   indifferente al numero di figli: i paragrafi vuoti
   spariscono e il testo sta comunque in colonna 2.
   -------------------------------------------------- */

.blatte-costi__hook > p:empty {
	display: none;
}

.blatte-costi__hook > p {
	grid-column: 2;

	margin: 0;
}

/* --------------------------------------------------
   ICONE A CONTORNO

   Questi tre svg hanno path da contornare (h/v/Z) ma
   nessuna regola: il browser applica il default
   fill:black, stroke:none e li disegna come sagome nere
   piene. Sul riquadro scuro l'icona diventava un
   quadrato nero. Le icone degli altri blocchi usano
   gia' fill:none + stroke, qui si allinea.
   -------------------------------------------------- */

.blatte-costi__hook-icon svg,
.blatte-costi__search-field > svg,
.blatte-costi__cta svg {
	fill: none;

	stroke: currentColor;

	stroke-width: 1.7;

	stroke-linecap: round;
	stroke-linejoin: round;
}

/* --------------------------------------------------
   FILTRI ALLINEATI ALLA PALETTE

   Erano testo BIANCO su grigio #e6e6e6 (contrasto 1.5,
   di fatto illeggibili) con raggio 2px, mentre il resto
   della landing usa 14px e la coppia teal/verde.
   -------------------------------------------------- */

.blatte-costi__filter {
	padding: 0.55rem 1rem;

	color: var(--blatte-green);

	background: var(--blatte-white);

	border: 1px solid rgb(21 148 139 / 35%);

	border-radius: 999px;

	font-size: 16px;
	font-weight: 600;

	cursor: pointer;

	transition:
		background 0.2s ease,
		color 0.2s ease;
}

.blatte-costi__filter:hover,
.blatte-costi__filter:focus-visible {
	color: var(--blatte-white);

	background: var(--blatte-teal);

	border-color: var(--blatte-teal);
}

.blatte-costi__filter.is-active {
	color: var(--blatte-white);

	background: var(--blatte-teal-light);

	border-color: var(--blatte-teal-light);
}


/* --------------------------------------------------
   RIQUADRO-NOTA UNIFORMATO ALLA GARANZIA

   Stesso trattamento del riquadro preso a riferimento:
   velo radiale arancione sopra il gradiente scuro,
   raggio 14.4px e respiro interno maggiore.
   -------------------------------------------------- */

.blatte-costi__hook {
	padding: 28.8px !important;

	background:
		radial-gradient(
			circle at 100% 0,
			rgb(224 107 68 / 20%),
			transparent 384px
		),
		linear-gradient(
			135deg,
			var(--blatte-dark) 0%,
			var(--blatte-green) 100%
		);

	border-radius: 14.4px;
}

/* --------------------------------------------------
   TESTO DI LETTURA A 18px
   Heading non toccati; <small> subordinati ma a 16px.
   -------------------------------------------------- */

.blatte-costi p,
.blatte-costi li,
.blatte-costi td,
.blatte-costi dd,
.blatte-costi dt {
	font-size: 18px;
}

.blatte-costi small {
	font-size: 16px;
}

/* --------------------------------------------------
   STATO ATTIVO DEI FILTRI: CONTRASTO

   Il verde-acqua chiaro con testo bianco dava 2.67, e
   anche il teal del brand si ferma a 3.53: entrambi
   sotto la soglia 4.5. #0f6f68 e' lo stesso verde
   scurito gia' usato per i link dei consensi e porta
   il rapporto a 5.70.
   -------------------------------------------------- */

.blatte-costi__filter.is-active,
.blatte-costi__filter:hover,
.blatte-costi__filter:focus-visible {
	color: var(--blatte-white);

	background: #0f6f68;

	border-color: #0f6f68;
}

/* --------------------------------------------------
   RIQUADRO-NOTA: RESPIRO E ACCENTO VERDE-ACQUA

   Stessa forma del gemello nel blocco problema, ACCENTO
   diverso: qui il messaggio non avverte, rassicura sul
   metodo, quindi resta nella famiglia teal.
   Verde-acqua su fondo scuro: 5.96.
   -------------------------------------------------- */

.blatte-costi__hook {
	padding: 32px !important;

	border-left: 5px solid var(--blatte-teal-light);

	background:
		radial-gradient(
			circle at 0 0,
			rgb(45 176 166 / 24%),
			transparent 420px
		),
		linear-gradient(
			135deg,
			var(--blatte-dark) 0%,
			var(--blatte-green) 100%
		);
}

.blatte-costi__hook strong {
	display: block;

	margin-bottom: 0.45rem;

	color: var(--blatte-teal-light);

	font-size: 20px;

	letter-spacing: 0.01em;
}

.blatte-costi__hook span,
.blatte-costi__hook p {
	font-size: 18px;

	line-height: 1.55;
}

/* --------------------------------------------------
   TITOLO DEL RIQUADRO: SOVRASCRITTURA MOTIVATA

   Il CSS originale del blocco dichiara
   `.blatte-costi__hook strong { font-size:.95rem
   !important; color: var(--blatte-white) !important }`.
   Con un !important gia' in campo, la specificita' non
   basta: l'unico modo di correggerlo e' pareggiarlo.
   Limitato alle due proprieta' in conflitto.
   -------------------------------------------------- */

.blatte-costi__hook strong {
	color: var(--blatte-teal-light) !important;

	font-size: 20px !important;
}

.blatte-costi__hook span,
.blatte-costi__hook p {
	font-size: 18px !important;
}

/* --------------------------------------------------
   CENTRATURA DEL RIQUADRO

   In pagina l'icona non esiste: wpautop la riduce a un
   <p>&nbsp;</p> che occupa la prima cella della griglia
   e spinge il testo a destra di ~93px, lasciando un
   vuoto enorme sul lato opposto.

   :empty non lo intercetta (lo spazio unificatore non
   e' "vuoto"), ma quel paragrafo e' sempre il primo
   figlio. La regola si disattiva da sola se un giorno
   l'icona tornasse a renderizzare: in quel caso il
   primo figlio sarebbe lo <span>, non un <p>.
   -------------------------------------------------- */

.blatte-costi__hook > p:first-child {
	display: none;
}

.blatte-costi__hook {
	grid-template-columns:
		minmax(0, 1fr);

	justify-items: center;

	text-align: center;
}

.blatte-costi__hook > p {
	grid-column: 1;

	max-width: 64rem;
}

/* --------------------------------------------------
   NASCONDERE IL PARAGRAFO FANTASMA: !important MOTIVATO

   Il CSS originale del blocco dichiara
   `.blatte-costi__hook p { display: block !important }`.
   La mia regola ha specificita' superiore (0,2,1 contro
   0,1,1) ma contro un !important non basta: va pareggiato.
   Limitato alla sola proprieta' in conflitto.
   -------------------------------------------------- */

.blatte-costi__hook > p:first-child {
	display: none !important;
}

/* ======================================================================
   TABELLA COSTI: IMPILAMENTO SU MOBILE

   Stato di partenza, il peggiore dei due mondi: la tabella nasce
   scorrevole (`min-width: 68rem` dentro `.blatte-costi__table-scroll`,
   che ha `overflow-x: auto`), ma sotto i 699px c'era
   `min-width: 0 !important` — che toglie lo scorrimento — senza pero'
   completare l'impilamento. Le 4 colonne restavano dentro 390px e le
   intestazioni si spezzavano lettera per lettera ("CASISTI CA").

   Il markup e' gia' pronto: ogni <td> porta `data-label` con il nome
   della colonna. Serviva solo il CSS.

   Nota sulla specificita': la regola mobile esistente
   `.blatte-costi__table td { width: 100% !important }` non aveva alcun
   effetto perche' `.blatte-costi__table td:nth-child(1) { width: 25%
   !important }` vale (0,2,1) contro (0,1,1). Qui le larghezze si
   riscrivono con gli stessi selettori nth-child.
   ====================================================================== */

@media (max-width: 699px) {

	.blatte-costi__table {
		display: block;

		table-layout: auto !important;
	}

	/* l'intestazione non serve piu': il nome della colonna torna
	   sopra ogni valore tramite data-label */

	.blatte-costi__table thead {
		display: none;
	}

	.blatte-costi__table tbody,
	.blatte-costi__table tr,
	.blatte-costi__table td {
		display: block;

		width: 100% !important;
	}

	.blatte-costi__table td:nth-child(1),
	.blatte-costi__table td:nth-child(2),
	.blatte-costi__table td:nth-child(3),
	.blatte-costi__table td:nth-child(4) {
		width: 100% !important;
	}

	/* ogni riga diventa una scheda */

	.blatte-costi__table tr {
		margin-bottom: 0.75rem;
		padding: 0.85rem 0.95rem;

		border: 1px solid rgba(15, 111, 104, 0.22);
		border-radius: 0.6rem;
		background: rgba(255, 255, 255, 0.55);
	}

	.blatte-costi__table td {
		padding: 0.5rem 0;

		border: 0;

		text-align: left;
	}

	.blatte-costi__table td:not(:last-child) {
		border-bottom: 1px solid rgba(15, 111, 104, 0.12);
	}

	.blatte-costi__table td::before {
		content: attr(data-label);

		display: block;
		margin-bottom: 0.18rem;

		color: #0f6f68;

		font-size: 0.72rem;
		font-weight: 700;
		letter-spacing: 0.05em;
		text-transform: uppercase;
	}

	/* la prima cella e' il titolo della scheda: niente etichetta */

	.blatte-costi__table td:first-child::before {
		display: none;
	}

	.blatte-costi__table td:first-child strong {
		font-size: 1.05rem;
	}

}

/* ----------------------------------------------------------------------
   ICONE DEL BLOCCO COSTI FUORI MISURA

   La lente del campo di ricerca veniva renderizzata a 990x990 px e la
   freccia della CTA a 90x90: quegli <svg> non hanno attributi width e
   height, e nessuna regola li dimensionava. Senza una misura esplicita
   l'SVG prende lo spazio che trova.
   ---------------------------------------------------------------------- */

.blatte-costi__search-field svg,
.blatte-costi__cta svg {
	width: 1.15rem;
	height: 1.15rem;

	flex: 0 0 auto;
}

/* ----------------------------------------------------------------------
   LENTE DENTRO IL CAMPO, NON SOPRA

   Il contenitore e' gia' `position: relative`: la lente era prevista
   dentro il campo, ma essendo rimasta `static` si posizionava sopra
   l'input, su una riga a se'. La si ancora a sinistra, centrata in
   verticale, e si sposta il testo dell'input per non farlo passare
   sotto l'icona.

   `pointer-events: none` perche' l'icona non deve rubare il clic al
   campo: chi la tocca si aspetta di scrivere.
   ---------------------------------------------------------------------- */

.blatte-costi__search-field svg {
	position: absolute;
	top: 50%;
	left: 0.9rem;

	transform: translateY(-50%);

	opacity: 0.55;

	pointer-events: none;
}

.blatte-costi__search-field input {
	padding-left: 2.7rem;
}

/* Block: chi-siamo */
.blatte-scelta {
	--blatte-dark: #1d2327;
	--blatte-green: #2e4438;
	--blatte-teal: #0f6f68;
	--blatte-teal-light: #2db0a6;
	--blatte-orange: #e06b44;
	--blatte-white: #ffffff;

	display: flex !important;
	flex-direction: column;
	align-items: center;

	width: 100%;
	padding-block: 50px;

	color: var(--blatte-green);

	background:
		linear-gradient(
			180deg,
			rgb(45 176 166 / 5%),
			var(--blatte-white) 55%
		);

	font-family: "Phudu", sans-serif;
}


.blatte-scelta *,
.blatte-scelta *::before,
.blatte-scelta *::after {
	box-sizing: border-box;
}


/* ==================================================
   ASSE CENTRALE DELLA SEZIONE
   ================================================== */

.blatte-scelta__grid,
.blatte-scelta__garanzia,
.blatte-scelta__listing {
	width: min(1400px, calc(100% - 2rem));
	max-width: 1400px;

	margin-left: auto;
	margin-right: auto;
}


/* ==================================================
   LAYOUT PRINCIPALE
   ================================================== */

.blatte-scelta__grid {
	display: grid !important;

	grid-template-columns:
		minmax(0, 1fr);

	grid-template-areas:
		"copy"
		"features";

	align-items: start;
	justify-items: stretch;

	gap:
		clamp(
			1.5rem,
			3vw,
			2.5rem
		);

	width: min(1400px, calc(100% - 2rem));
	max-width: 1400px;

	margin-inline: auto;
}


/* ==================================================
   COLONNA COPY
   ================================================== */

.blatte-scelta__content {
	grid-area: copy;

	display: flex !important;

	flex-direction: column;
	align-items: flex-start;

	justify-self: stretch;

	width: 100% !important;
	min-width: 0;

	max-width: none;
}


.blatte-scelta__content > * {
	flex: 0 0 auto;
}


/* ==================================================
   EYEBROW
   ================================================== */

.blatte-scelta__eyebrow {
	display: inline-flex;

	align-items: center;

	gap: 0.5rem;

	max-width: 100%;

	margin:
		0 0 0.75rem;

	padding:
		0.42rem 0.72rem;

	color:
		var(--blatte-green);

	background:
		rgb(45 176 166 / 10%);

	border:
		1px solid rgb(21 148 139 / 24%);

	border-radius:
		999px;

	font-size:
		0.68rem;

	font-weight:
		700;

	line-height:
		1.3;

	letter-spacing:
		0.045em;

	text-transform:
		uppercase;
}


.blatte-scelta__eyebrow-dot {
	width: 0.48rem;
	height: 0.48rem;

	flex:
		0 0 0.48rem;

	background:
		var(--blatte-orange);

	border-radius:
		50%;
}


/* ==================================================
   TITOLO
   ================================================== */

.blatte-scelta__title {
	width: 100%;
	max-width: 48rem;

	margin: 0;

	color:
		var(--blatte-dark) !important;

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			2rem,
			3.2vw,
			3rem
		);

	font-weight:
		800;

	line-height:
		1.05;

	letter-spacing:
		-0.03em;

	text-wrap:
		balance;
}


/* ==================================================
   COPY
   ================================================== */

.blatte-scelta__content >
p:not(.blatte-scelta__eyebrow) {
	width: 100%;
	max-width: 47rem;

	margin:
		0.8rem 0 0;

	color:
		var(--blatte-green);

	font-size:
		0.86rem;

	line-height:
		1.62;

	opacity:
		0.82;

	text-wrap:
		pretty;
}


.blatte-scelta__content >
.blatte-scelta__lead {
	margin-top:
		1rem;

	font-size:
		clamp(
			0.94rem,
			1.25vw,
			1.04rem
		);

	line-height:
		1.62;

	opacity:
		1;
}


.blatte-scelta__lead strong {
	color:
		var(--blatte-teal);

	font-weight:
		700;
}


.blatte-scelta__content em {
	color:
		var(--blatte-teal);

	font-style:
		normal;

	font-weight:
		600;
}


/* ==================================================
   BOX SPECIALIZZAZIONE
   ================================================== */

.blatte-scelta__specializzazione {
	display: flex;

	align-items: flex-start;

	gap: 0.7rem;

	width: 100%;
	max-width: 47rem;

	margin-top:
		1.1rem;

	padding:
		0.85rem;

	background:
		var(--blatte-white);

	border:
		1px solid rgb(21 148 139 / 19%);

	border-left:
		4px solid var(--blatte-teal);

	border-radius:
		0.65rem;

	box-shadow:
		0 0.45rem 1.3rem
		rgb(29 35 39 / 5%);
}


.blatte-scelta__specializzazione-icon {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 2.4rem;
	height: 2.4rem;

	flex:
		0 0 2.4rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);

	border-radius:
		50%;
}


.blatte-scelta__specializzazione-icon svg,
.blatte-scelta__feature-icon svg,
.blatte-scelta__garanzia-badge svg {
	width: 1.25rem;
	height: 1.25rem;

	fill: none;

	stroke:
		currentColor;

	stroke-width:
		1.8;

	stroke-linecap:
		round;

	stroke-linejoin:
		round;
}


.blatte-scelta__specializzazione p {
	display: flex;

	flex-direction: column;

	gap: 0.15rem;

	flex:
		1 1 auto;

	min-width: 0;

	margin: 0;
}


.blatte-scelta__specializzazione strong {
	color:
		var(--blatte-dark);

	font-size:
		0.84rem;

	font-weight:
		700;

	line-height:
		1.4;
}


.blatte-scelta__specializzazione p > span {
	color:
		var(--blatte-green);

	font-size:
		0.75rem;

	line-height:
		1.48;

	opacity:
		0.78;
}


/* ==================================================
   FEATURES
   ================================================== */

.blatte-scelta__features {
	grid-area: features;

	display: grid !important;

	grid-template-columns:
		minmax(0, 1fr);

	align-items: stretch;
	align-content: start;

	justify-self: stretch;

	gap: 0.85rem;

	width: 100% !important;
	min-width: 0;
}


/* ==================================================
   FEATURE CARD
   ================================================== */

.blatte-scelta__feature {
	display: flex;

	align-items: flex-start;

	gap: 0.75rem;

	width: 100%;
	min-width: 0;

	padding:
		1rem;

	background:
		var(--blatte-white);

	border:
		1px solid rgb(46 68 56 / 13%);

	border-radius:
		0.75rem;

	box-shadow:
		0 0.4rem 1.25rem
		rgb(29 35 39 / 5%);

	transition:
		border-color 180ms ease,
		box-shadow 180ms ease,
		transform 180ms ease;
}


.blatte-scelta__feature:hover {
	border-color:
		rgb(21 148 139 / 34%);

	box-shadow:
		0 0.7rem 1.7rem
		rgb(29 35 39 / 8%);

	transform:
		translateY(-2px);
}


/* ==================================================
   FEATURE ICON
   ================================================== */

.blatte-scelta__feature-icon {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 2.5rem;
	height: 2.5rem;

	flex:
		0 0 2.5rem;

	color:
		var(--blatte-white);

	background:
		var(--blatte-green);

	border-radius:
		0.5rem;

	transition:
		background-color 180ms ease,
		transform 180ms ease;
}


.blatte-scelta__feature:hover
.blatte-scelta__feature-icon {
	background:
		var(--blatte-teal);

	transform:
		scale(1.03);
}


.blatte-scelta__feature > div {
	flex:
		1 1 auto;

	min-width: 0;
}


/* ==================================================
   FEATURE TITLE
   ================================================== */

.blatte-scelta__feature h3 {
	margin: 0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		0.9rem;

	font-weight:
		700;

	line-height:
		1.35;
}


/* ==================================================
   FEATURE COPY
   ================================================== */

.blatte-scelta__feature p {
	margin:
		0.3rem 0 0;

	color:
		var(--blatte-green);

	font-size:
		0.75rem;

	line-height:
		1.52;

	opacity:
		0.79;
}


/* ==================================================
   GARANZIA
   ================================================== */

.blatte-scelta__garanzia {
	position: relative;

	display: grid !important;

	grid-template-columns:
		3.65rem minmax(0, 1fr);

	grid-template-areas:
		"badge content"
		"note note";

	align-items: start;

	column-gap: 1rem;
	row-gap: 0.9rem;

	margin-top:
		clamp(
			1.4rem,
			2.5vw,
			2rem
		);

	padding:
		clamp(
			1.35rem,
			2.4vw,
			1.8rem
		);

	overflow: hidden;

	color:
		var(--blatte-white);

	background:
		radial-gradient(
			circle at 100% 0,
			rgb(224 107 68 / 20%),
			transparent 24rem
		),
		linear-gradient(
			135deg,
			var(--blatte-dark) 0%,
			#263b33 100%
		);

	border:
		1px solid rgb(45 176 166 / 28%);

	border-top:
		4px solid var(--blatte-teal-light);

	border-radius:
		0.9rem;

	box-shadow:
		0 0.9rem 2.2rem
		rgb(29 35 39 / 16%);
}


.blatte-scelta__garanzia::after {
	content: "";

	position: absolute;

	right: -4.5rem;
	bottom: -6rem;

	width: 15rem;
	height: 15rem;

	border:
		1px solid rgb(45 176 166 / 16%);

	border-radius: 50%;

	pointer-events: none;
}


/* ==================================================
   GARANZIA BADGE
   ================================================== */

.blatte-scelta__garanzia-badge {
	position: relative;

	z-index: 2;

	grid-area: badge;

	display: flex !important;

	align-items: center;
	justify-content: center;

	width: 3.65rem !important;
	height: 3.65rem !important;

	min-width: 3.65rem;
	min-height: 3.65rem;

	margin: 0 !important;
	padding: 0 !important;

	color:
		var(--blatte-dark) !important;

	background:
		var(--blatte-teal-light);

	border:
		2px solid rgb(255 255 255 / 26%);

	border-radius: 50%;

	box-shadow:
		0 0.4rem 1rem
		rgb(29 35 39 / 20%);
}


.blatte-scelta__garanzia-badge svg {
	display: block !important;

	width: 1.85rem !important;
	height: 1.85rem !important;

	min-width: 1.85rem;
	min-height: 1.85rem;

	margin: 0 !important;
	padding: 0 !important;

	overflow: visible;

	fill: none !important;

	stroke:
		var(--blatte-dark) !important;

	stroke-width: 2 !important;

	stroke-linecap: round !important;
	stroke-linejoin: round !important;

	opacity: 1 !important;
	visibility: visible !important;
}


.blatte-scelta__garanzia-badge svg path {
	display: block;

	fill: none !important;

	stroke:
		var(--blatte-dark) !important;

	stroke-width: 2 !important;

	opacity: 1 !important;
	visibility: visible !important;
}


/* ==================================================
   GARANZIA CONTENT
   ================================================== */

.blatte-scelta__garanzia-content {
	position: relative;

	z-index: 2;

	grid-area: content;

	min-width: 0;
}


.blatte-scelta__garanzia-label {
	margin:
		0 0 0.3rem;

	color:
		var(--blatte-orange) !important;

	font-size:
		0.76rem;

	font-weight:
		800;

	line-height:
		1.3;

	letter-spacing:
		0.055em;

	text-transform:
		uppercase;
}


.blatte-scelta__garanzia h3 {
	max-width: 62rem;

	margin: 0;

	color:
		var(--blatte-white) !important;

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			1.4rem,
			2vw,
			1.85rem
		);

	font-weight:
		800;

	line-height:
		1.15;

	letter-spacing:
		-0.02em;

	text-wrap:
		balance;
}


.blatte-scelta__garanzia-content >
p:not(.blatte-scelta__garanzia-label) {
	max-width: 68rem;

	margin:
		0.7rem 0 0;

	color:
		rgb(255 255 255 / 84%) !important;

	font-size:
		clamp(
			0.88rem,
			1vw,
			0.96rem
		);

	font-weight: 400;

	line-height:
		1.62;
}


/* ==================================================
   GARANZIA LISTA
   ================================================== */

.blatte-scelta__garanzia ul {
	display: grid !important;

	grid-template-columns:
		minmax(0, 1fr);

	gap: 0.55rem;

	width: 100%;

	margin:
		1rem 0 0;

	padding: 0;

	list-style: none;
}


.blatte-scelta__garanzia li {
	position: relative;

	min-width: 0;

	padding:
		0.62rem 0.7rem 0.62rem 2.45rem;

	color:
		var(--blatte-white) !important;

	background:
		rgb(255 255 255 / 5%);

	border:
		1px solid rgb(255 255 255 / 9%);

	border-radius:
		0.55rem;

	font-size:
		0.82rem;

	font-weight:
		650;

	line-height:
		1.42;
}


.blatte-scelta__garanzia li::before {
	content:
		"✓";

	position: absolute;

	top: 50%;
	left: 0.7rem;

	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 1.3rem;
	height: 1.3rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);

	border-radius: 50%;

	font-size: 0.72rem;

	font-weight:
		900;

	line-height: 1;

	transform:
		translateY(-50%);
}


/* ==================================================
   NOTA GARANZIA
   ================================================== */

.blatte-scelta__garanzia-note {
	position: relative;

	z-index: 2;

	grid-area: note;

	width: 100%;

	margin: 0;

	padding-top:
		0.8rem;

	color:
		rgb(255 255 255 / 62%) !important;

	border-top:
		1px solid rgb(255 255 255 / 14%);

	font-size:
		0.68rem;

	line-height:
		1.5;
}


/* ==================================================
   DESKTOP
   DUE MACRO COLONNE
   ================================================== */

@media (min-width: 1024px) {

	.blatte-scelta__grid {
		grid-template-columns:
			minmax(0, 0.92fr)
			minmax(0, 1.08fr);

		grid-template-areas:
			"copy features";

		align-items: start;
		justify-items: stretch;

		gap:
			clamp(
				2rem,
				3vw,
				3.25rem
			);
	}


	.blatte-scelta__content,
	.blatte-scelta__features {
		width: 100% !important;
		min-width: 0;

		margin: 0 !important;
	}


	/*
	 * 4 punti di forza distribuiti 2 × 2.
	 * In questo modo la parte destra non diventa
	 * una colonna lunga e stretta.
	 */
	.blatte-scelta__features {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);

		grid-auto-rows:
			1fr;

		align-content: start;

		gap: 0.9rem;
	}


	.blatte-scelta__feature {
		width: 100% !important;
		min-width: 0;

		height: 100%;

		margin: 0 !important;
	}


	.blatte-scelta__garanzia ul {
		grid-template-columns:
			repeat(
				3,
				minmax(0, 1fr)
			);
	}

}


/* ==================================================
   DESKTOP AMPIO
   ================================================== */

@media (min-width: 1280px) {

	.blatte-scelta__grid,
	.blatte-scelta__garanzia,
	.blatte-scelta__listing {
		max-width: 1400px;
	}

}


/* ==================================================
   TABLET
   ================================================== */

@media (
	min-width: 700px
) and (
	max-width: 1023px
) {

	.blatte-scelta__grid {
		grid-template-columns:
			minmax(0, 1fr);

		grid-template-areas:
			"copy"
			"features";
	}


	.blatte-scelta__content,
	.blatte-scelta__features {
		width: 100% !important;
		max-width: none;
	}


	.blatte-scelta__features {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			);

		gap: 0.8rem;
	}


	.blatte-scelta__feature {
		width: 100% !important;
		min-width: 0;
		height: 100%;
	}


	.blatte-scelta__garanzia ul {
		grid-template-columns:
			minmax(0, 1fr);
	}

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 699px) {

	.blatte-scelta__grid {
		grid-template-columns:
			minmax(0, 1fr);

		grid-template-areas:
			"copy"
			"features";

		gap:
			1.3rem;
	}


	.blatte-scelta__content,
	.blatte-scelta__features {
		width:
			100%;

		max-width:
			none;
	}


	.blatte-scelta__title {
		max-width:
			100%;

		font-size:
			clamp(
				1.7rem,
				8vw,
				2.3rem
			);

		line-height:
			1.07;
	}


	.blatte-scelta__content >
	p:not(.blatte-scelta__eyebrow) {
		max-width:
			100%;

		margin-top:
			0.75rem;

		font-size:
			0.84rem;
	}


	.blatte-scelta__content >
	.blatte-scelta__lead {
		margin-top:
			0.9rem;

		font-size:
			0.94rem;
	}


	.blatte-scelta__eyebrow {
		border-radius:
			0.55rem;
	}


	.blatte-scelta__specializzazione {
		max-width:
			100%;

		margin-top:
			0.95rem;

		padding:
			0.8rem;
	}


	.blatte-scelta__features {
		grid-template-columns:
			minmax(0, 1fr);

		gap:
			0.65rem;
	}


	.blatte-scelta__feature {
		width:
			100%;

		padding:
			0.9rem;
	}


	.blatte-scelta__garanzia {
		grid-template-columns:
			minmax(0, 1fr);

		grid-template-areas:
			"badge"
			"content"
			"note";

		gap: 0.75rem;

		margin-top:
			1.1rem;

		padding:
			1rem;
	}


	.blatte-scelta__garanzia-badge {
		width: 3.25rem !important;
		height: 3.25rem !important;

		min-width: 3.25rem;
		min-height: 3.25rem;
	}


	.blatte-scelta__garanzia h3 {
		font-size:
			clamp(
				1.25rem,
				6vw,
				1.55rem
			);
	}


	.blatte-scelta__garanzia-content >
	p:not(.blatte-scelta__garanzia-label) {
		font-size:
			0.86rem;
	}


	.blatte-scelta__garanzia-note {
		width: 100%;
	}

}


/* ==================================================
   SMARTPHONE MOLTO PICCOLI
   ================================================== */

@media (max-width: 380px) {

	.blatte-scelta__specializzazione,
	.blatte-scelta__feature {
		flex-direction:
			column;
	}

}




/* ==================================================
   LISTING IMPRESE
   ================================================== */

.blatte-scelta__listing {
	width:
		min(
			1400px,
			calc(100% - 2rem)
		);

	max-width: 1400px;

	margin:
		clamp(
			1.4rem,
			2.5vw,
			2rem
		)
		auto 0;

	padding: 0;

	min-width: 0;
}


.blatte-scelta__listing > * {
	max-width: 100%;
}


@media (max-width: 699px) {

	.blatte-scelta__listing {
		width:
			calc(100% - 1.25rem);

		margin-top:
			1.1rem;
	}

}


/* ==================================================
   ACCESSIBILITÀ
   ================================================== */

@media (prefers-reduced-motion: reduce) {

	.blatte-scelta__feature,
	.blatte-scelta__feature-icon {
		transition:
			none;
	}


	.blatte-scelta__feature:hover,
	.blatte-scelta__feature:hover
	.blatte-scelta__feature-icon {
		transform:
			none;
	}

}

/* --------------------------------------------------
   BADGE DELLA GARANZIA

   Era un cerchio verde-acqua VUOTO. Ci va il marchio
   del sito, che pero' e' dello stesso verde-acqua:
   sul fondo teal sarebbe invisibile, quindi il cerchio
   diventa bianco.
   -------------------------------------------------- */

.blatte-scelta__garanzia-badge {
	background-color: var(--blatte-white);

	background-image:
		url("/wp-content/uploads/2026/04/blatte-favicon-300x300.png");

	background-repeat: no-repeat;
	background-position: center;
	background-size: 62%;

	border: 2px solid rgb(45 176 166 / 35%);
}

/* --------------------------------------------------
   TESTO DI LETTURA A 18px

   Gli heading non vengono toccati. I <small> restano
   subordinati ma salgono a 16px: sotto i 12px erano
   etichette illeggibili, non gerarchia.
   -------------------------------------------------- */

.blatte-scelta p,
.blatte-scelta li,
.blatte-scelta td,
.blatte-scelta dd,
.blatte-scelta dt {
	font-size: 18px;
}

.blatte-scelta small {
	font-size: 16px;
}

/* --------------------------------------------------
   CARD DEI PUNTI DI FORZA: DA IMPILATE A GRIGLIA DI 4

   Non erano impilate per scelta: .blatte-scelta__features
   e' una griglia a 2 colonne dentro una colonna da 653px,
   e i <p> vuoti inseriti da wpautop (alti 292px) occupano
   una cella su due, lasciando una card per riga.

   Rimossi i fantasmi, il contenitore esce dalla colonna
   stretta e occupa l'intera larghezza della sezione su
   una riga sua, con 4 colonne reali.
   -------------------------------------------------- */

.blatte-scelta__features > p {
	display: none;
}

.blatte-scelta__grid {
	grid-template-columns: minmax(0, 1fr);
}

/* Il testo non deve allungarsi su 1248px: resta su una
   misura leggibile anche ora che ha la riga tutta per se'. */
.blatte-scelta__content {
	max-width: 58rem;
}

.blatte-scelta__features {
	grid-column: 1 / -1;

	grid-template-columns:
		repeat(4, minmax(0, 1fr));

	align-items: stretch;

	gap: 1.15rem;

	margin-top: 1.5rem;
}

.blatte-scelta__feature {
	height: 100%;

	padding: 20px;
}

/* Il titolo della card stava a 14.4px: in colonna stretta
   spariva sotto il testo da 18px. */
.blatte-scelta__feature strong,
.blatte-scelta__feature h3,
.blatte-scelta__feature h4 {
	display: block;

	margin-bottom: 0.5rem;

	font-size: 17px;

	line-height: 1.35;
}

.blatte-scelta__feature p {
	font-size: 17px;

	line-height: 1.5;
}


/* Tablet: quattro colonne da ~290px non ci stanno. */
@media (max-width: 1023px) {

	.blatte-scelta__features {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

}


@media (max-width: 599px) {

	.blatte-scelta__features {
		grid-template-columns: minmax(0, 1fr);
	}

}

/* --------------------------------------------------
   CORREZIONE: LE AREE, NON SOLO LE COLONNE

   La griglia usa aree con nome ("copy" / "features").
   La regola base e' gia' a una colonna impilata; e'
   il media query >=1024px a rimetterle affiancate.
   Ridefinire solo grid-template-columns fuori da quel
   media query lasciava in piedi le aree affiancate:
   risultato, seconda colonna a 0px e i due blocchi
   sovrapposti sulla stessa riga.

   Si interviene nello STESSO contesto, ridefinendo
   anche le aree.
   -------------------------------------------------- */

@media (min-width: 1024px) {

	.blatte-scelta__grid {
		grid-template-columns:
			minmax(0, 1fr);

		grid-template-areas:
			"copy"
			"features";
	}

	.blatte-scelta__features {
		grid-area: features;

		grid-template-columns:
			repeat(4, minmax(0, 1fr));
	}

}

/* --------------------------------------------------
   RIQUADRO "RICONOSCERE LA SPECIE"

   Occupa la colonna rimasta libera accanto al testo.
   La griglia torna a due colonne SOLO da 1024px in su,
   ridefinendo anche le aree: cambiare le sole colonne
   lascerebbe le aree vecchie e sovrapporrebbe i blocchi.
   -------------------------------------------------- */

@media (min-width: 1024px) {

	.blatte-scelta__grid {
		grid-template-columns:
			minmax(0, 1fr)
			clamp(20rem, 26%, 24rem);

		grid-template-areas:
			"copy specie"
			"features features";

		column-gap: 2rem;
	}

	.blatte-scelta__specie {
		grid-area: specie;

		align-self: start;
	}

}

.blatte-scelta__specie {
	padding: 22px;

	color: var(--blatte-white);

	background:
		radial-gradient(
			circle at 100% 0,
			rgb(45 176 166 / 22%),
			transparent 300px
		),
		linear-gradient(
			160deg,
			var(--blatte-dark) 0%,
			var(--blatte-green) 100%
		);

	border-radius: 14.4px;
}

.blatte-scelta__specie-label {
	margin: 0 0 0.25rem;

	color: var(--blatte-teal-light);

	font-size: 13px;
	font-weight: 700;

	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.blatte-scelta__specie-title {
	margin: 0 0 0.9rem;

	color: var(--blatte-white);

	font-size: 19px;
	line-height: 1.25;
}

.blatte-scelta__specie-list {
	margin: 0;
	padding: 0;

	list-style: none;
}

.blatte-scelta__specie-list li {
	padding: 0.7rem 0;

	border-top: 1px solid rgb(255 255 255 / 14%);
}

.blatte-scelta__specie-list li:first-child {
	border-top: 0;
}

.blatte-scelta__specie-list strong {
	display: block;

	margin-bottom: 0.15rem;

	color: var(--blatte-teal-light);

	font-size: 16px;
	font-style: italic;
}

.blatte-scelta__specie-list span {
	display: block;

	color: rgb(255 255 255 / 88%);

	font-size: 15px;
	line-height: 1.45;
}

.blatte-scelta__specie-nota {
	margin: 0.9rem 0 0;

	padding-top: 0.8rem;

	border-top: 1px solid rgb(255 255 255 / 14%);

	color: rgb(255 255 255 / 78%);

	font-size: 14px;
	line-height: 1.45;
}

/* --------------------------------------------------
   TITOLO DEL RIQUADRO SPECIE

   Stesso caso gia' visto sugli altri riquadri scuri:
   `.elementor-kit-29 h3` (0,1,1) batte la regola di
   sola classe (0,1,0) e riporta il verde scuro degli
   heading, illeggibile sul fondo scuro. Si sale a
   (0,2,1) invece di usare !important.
   -------------------------------------------------- */

.blatte-scelta .blatte-scelta__specie h3,
.blatte-scelta .blatte-scelta__specie .blatte-scelta__specie-title {
	color: var(--blatte-white);
}

/* --------------------------------------------------
   GALLERY DELLE SPECIE DENTRO IL RIQUADRO

   Quattro immagini 256x300 in una colonna da ~340px:
   griglia 2x2 con ritaglio quadrato, cosi' le
   proporzioni restano uniformi anche se un'immagine
   avesse un rapporto diverso.
   -------------------------------------------------- */

.blatte-scelta__specie-gallery {
	margin: 1rem 0 0;

	padding-top: 0.9rem;

	border-top: 1px solid rgb(255 255 255 / 14%);
}

.blatte-scelta__specie-gallery .apg-gallery {
	display: grid;

	grid-template-columns:
		repeat(2, minmax(0, 1fr));

	gap: 0.55rem;
}

.blatte-scelta__specie-gallery .apg-gallery__item {
	margin: 0;

	overflow: hidden;

	background: rgb(255 255 255 / 6%);

	border-radius: 10px;
}

.blatte-scelta__specie-gallery .apg-gallery__item img {
	display: block;

	width: 100%;
	height: 100%;

	aspect-ratio: 1 / 1;

	object-fit: cover;
}


/* Sotto i 1024px il riquadro va a tutta larghezza: le
   quattro immagini stanno su una riga sola. */
@media (max-width: 1023px) {

	.blatte-scelta__specie-gallery .apg-gallery {
		grid-template-columns:
			repeat(4, minmax(0, 1fr));
	}

}


@media (max-width: 599px) {

	.blatte-scelta__specie-gallery .apg-gallery {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

}

/* ======================================================================
   BILANCIAMENTO DELLE COLONNE E TESTO PIU' GRANDE

   La colonna di testo si fermava a 482px contro i 992 del riquadro
   specie: 510px di vuoto. La causa principale era la gallery, alta 367px
   perche' disposta 2x2 in una colonna da 364px.

   Invece di rimpicciolire le immagini si ALLARGA la colonna destra: la
   gallery ci sta su una riga sola e le descrizioni vanno a capo meno,
   quindi il riquadro si accorcia. In parallelo il testo di sinistra
   cresce, e le due colonne si avvicinano da entrambi i lati.
   ====================================================================== */

@media (min-width: 1024px) {

	.blatte-scelta__grid {
		grid-template-columns:
			minmax(0, 1fr)
			clamp(22rem, 30%, 28rem);
	}

	.blatte-scelta__specie-gallery .apg-gallery {
		grid-template-columns:
			repeat(4, minmax(0, 1fr));
	}

}


/* --------------------------------------------------
   TESTO PIU' GRANDE

   Il lead stava a 13.76px, meno dei paragrafi che lo
   seguono: gerarchia invertita. Ora apre davvero.
   -------------------------------------------------- */

.blatte-scelta__lead {
	font-size: 20px;

	line-height: 1.5;
}

.blatte-scelta__content p {
	font-size: 19px;

	line-height: 1.55;
}

.blatte-scelta__specie-list strong {
	font-size: 17px;
}

.blatte-scelta__specie-list span {
	font-size: 16px;

	line-height: 1.5;
}

.blatte-scelta__specie-title {
	font-size: 21px;
}

.blatte-scelta__specie-nota {
	font-size: 15px;
}

/* --------------------------------------------------
   IL LEAD RESTAVA A 13.76px

   Non bastava `.blatte-scelta__lead`: la regola di
   base e' `.blatte-scelta__content > p:not(.blatte-scelta__eyebrow)`,
   che con il :not() vale (0,2,1) e vince su (0,1,0).
   Qui si aggancia la classe al figlio diretto: (0,3,1).
   -------------------------------------------------- */

.blatte-scelta__content > p.blatte-scelta__lead {
	font-size: 20px;

	line-height: 1.5;
}



/* --------------------------------------------------
   CORREZIONE DEL SELETTORE DELL'ANCORAGGIO

   La regola precedente puntava a `.blatte-scelta__nota`,
   che in questo blocco non esiste: il riquadro in fondo
   alla colonna di testo ha classe
   `.blatte-scelta__specializzazione`. Risultato: la
   colonna si estendeva (stretch attivo) ma il box
   restava in alto e il vuoto si spostava sotto di lui.
   -------------------------------------------------- */

@media (min-width: 1024px) {

	/* Il dislivello e' ~230px: scaricarlo tutto in un
	   unico salto sopra il riquadro lascerebbe un buco.
	   Una parte viene assorbita allargando il respiro
	   fra i paragrafi, il resto va sopra il box. */

	.blatte-scelta__content > p:not(.blatte-scelta__eyebrow):not(.blatte-scelta__lead) {
		margin-bottom: 1.35rem;
	}

	.blatte-scelta__content > .blatte-scelta__lead {
		margin-bottom: 1.6rem;
	}

}

/* --------------------------------------------------
   RIDUZIONE DEL VUOTO RESIDUO

   Ancorare il riquadro in fondo ha allineato le due
   colonne ma ha lasciato ~227px di salto sopra di lui.
   Si chiude da entrambi i lati.

   A destra: attorno alle 4 foto ci sono ~80px di
   spaziature per soli 87px di immagini. I 32px di
   margine sotto la griglia sono il default di
   WordPress per le gallery, qui inutile perche' sotto
   c'e' gia' il padding della nota.
   -------------------------------------------------- */

.blatte-scelta__specie-gallery .apg-gallery {
	margin-bottom: 0;
}

.blatte-scelta__specie-gallery {
	padding-top: 0.6rem;
}


/* A sinistra: il testo cresce ancora — e' quanto
   serviva comunque per la leggibilita' — e l'aria in
   piu' fra le righe assorbe una parte del salto. */

.blatte-scelta__content > p.blatte-scelta__lead {
	font-size: 22px;

	line-height: 1.6;
}

.blatte-scelta__content > p:not(.blatte-scelta__eyebrow):not(.blatte-scelta__lead) {
	font-size: 20px;

	line-height: 1.75;
}

/* NOTA: l'ancoraggio del riquadro in fondo alla colonna (align-items:stretch
   + margin-top:auto) e' stato RIMOSSO di proposito. Allineava i due lati, ma il
   testo e' spintax: sulle varianti piu' corte lo scarto diventava un buco di
   ~195px a meta' colonna. Con i corpi testo attuali e il riquadro sfoltito le
   altezze naturali distano ~12px, quindi non serve forzare nulla. */

/* ----------------------------------------------------------------------
   QUARTA SPECIE: CORPO RIDOTTO PER NON SBILANCIARE LE COLONNE

   Con Supella longipalpa le voci passano da tre a quattro e il riquadro
   cresce di circa una voce intera. Le due colonne erano state pareggiate
   con cura (delta 5px a 1520): senza ritocco il riquadro tornerebbe a
   sporgere sotto la colonna di testo.

   Si scende di un punto su nomi e descrizioni e si stringe un poco
   l'interlinea: quanto basta a riassorbire la voce in piu' senza rendere
   il testo piccolo.
   ---------------------------------------------------------------------- */

.blatte-scelta__specie-list strong {
	font-size: 16px;
}

.blatte-scelta__specie-list span {
	font-size: 15px;

	line-height: 1.45;
}

.blatte-scelta__specie-list li {
	padding-block: 0.5rem;
}

/* ----------------------------------------------------------------------
   BADGE GARANZIA: SOLO LA FAVICON, NIENTE SIMBOLO SOPRA

   L'elemento porta la favicon del sito come sfondo e contiene ANCHE un
   <svg>, che le finisce sopra. Si nasconde il simbolo e resta la favicon.
   Il markup non si tocca: l'<svg> resta nel blocco, cosi' se un domani si
   togliesse lo sfondo l'icona tornerebbe da sola.
   ---------------------------------------------------------------------- */

.blatte-scelta__garanzia-badge > svg {
	display: none !important;
}

/* Block: dove-operiamo */
.blatte-zone {
	--blatte-dark: #1d2327;
	--blatte-green: #2e4438;
	--blatte-teal: #0f6f68;
	--blatte-teal-light: #2db0a6;
	--blatte-orange: #e06b44;
	--blatte-white: #ffffff;

	display: flex !important;
	flex-direction: column;
	align-items: center;

	color: var(--blatte-green);
	background: var(--blatte-white);

	font-family: "Phudu", sans-serif;
}


.blatte-zone *,
.blatte-zone *::before,
.blatte-zone *::after {
	box-sizing: border-box;
}


/* ==================================================
   ASSE CENTRALE

   Tutti i macro-elementi condividono
   esattamente la stessa larghezza.
   ================================================== */

.blatte-zone__header,
.blatte-zone__coverage,
.blatte-zone__targets-head,
.blatte-zone__targets,
.blatte-zone__bridge,
.blatte-zone__comuni {
	width: min(1400px, calc(100% - 2rem));
	max-width: 1400px;

	margin-left: auto;
	margin-right: auto;
}


/* ==================================================
   HEADER
   ================================================== */

.blatte-zone__header {
	display: flex;

	flex-direction: column;
	align-items: flex-start;

	margin-bottom:
		clamp(
			1.5rem,
			3vw,
			2.2rem
		);
}


.blatte-zone__eyebrow {
	display: inline-flex;

	align-items: center;

	gap: 0.5rem;

	max-width: 100%;

	margin:
		0 0 0.75rem;

	padding:
		0.42rem 0.72rem;

	color: var(--blatte-green);

	background:
		rgb(45 176 166 / 10%);

	border:
		1px solid rgb(21 148 139 / 24%);

	border-radius:
		999px;

	font-size:
		0.68rem;

	font-weight:
		700;

	line-height:
		1.3;

	letter-spacing:
		0.045em;

	text-transform:
		uppercase;
}


.blatte-zone__eyebrow-dot {
	width: 0.48rem;
	height: 0.48rem;

	flex:
		0 0 0.48rem;

	background:
		var(--blatte-orange);

	border-radius:
		50%;
}


/* ==================================================
   H2
   ================================================== */

.blatte-zone__title {
	width: 100%;
	max-width: 57rem;

	margin: 0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			2rem,
			3.2vw,
			3rem
		);

	font-weight:
		800;

	line-height:
		1.05;

	letter-spacing:
		-0.03em;

	text-wrap:
		balance;
}


/* ==================================================
   INTRO
   ================================================== */

.blatte-zone__intro {
	width: 100%;
	max-width: 55rem;

	margin:
		0.9rem 0 0;

	color:
		var(--blatte-green);

	font-size:
		clamp(
			0.94rem,
			1.25vw,
			1.04rem
		);

	line-height:
		1.65;

	opacity:
		0.83;

	text-wrap:
		pretty;
}


/* ==================================================
   COPERTURA
   Mobile: colonna
   Desktop: mappa + informazioni
   ================================================== */

.blatte-zone__coverage {
	display: flex !important;

	flex-direction: column;

	align-items: stretch;
	justify-content: flex-start;

	gap:
		clamp(
			1rem,
			2vw,
			1.4rem
		);
}


/* ==================================================
   MAP CARD
   ================================================== */

.blatte-zone__map-card {
	display: flex;

	flex-direction: column;

	width: 100%;
	min-width: 0;

	padding:
		0.7rem;

	background:
		var(--blatte-white);

	border:
		1px solid rgb(46 68 56 / 14%);

	border-radius:
		0.85rem;

	box-shadow:
		0 0.5rem 1.5rem
		rgb(29 35 39 / 6%);
}


/* ==================================================
   MAP HEADER
   ================================================== */

.blatte-zone__map-head {
	display: flex;

	align-items: flex-start;
	justify-content: space-between;

	gap:
		0.75rem;

	width:
		100%;

	padding:
		0.3rem
		0.3rem
		0.7rem;
}


.blatte-zone__map-head > div {
	flex:
		1 1 auto;

	min-width:
		0;
}


.blatte-zone__map-label,
.blatte-zone__coverage-label,
.blatte-zone__targets-label {
	margin:
		0 0 0.2rem;

	color:
		var(--blatte-teal);

	font-size: 0.72rem;

	font-weight:
		700;

	line-height:
		1.3;

	letter-spacing:
		0.05em;

	text-transform:
		uppercase;
}


.blatte-zone__map-head h3 {
	margin: 0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size: clamp(1.18rem, 1.7vw, 1.5rem);

	font-weight:
		750;

	line-height:
		1.2;
}


/* ==================================================
   BADGE ZONA
   ================================================== */

.blatte-zone__map-live {
	display: inline-flex;

	align-items: center;

	gap:
		0.35rem;

	flex:
		0 0 auto;

	max-width:
		40%;

	padding:
		0.3rem
		0.5rem;

	color:
		var(--blatte-green);

	background:
		rgb(45 176 166 / 9%);

	border:
		1px solid rgb(21 148 139 / 18%);

	border-radius:
		999px;

	font-size:
		0.62rem;

	font-weight:
		700;

	white-space:
		nowrap;

	overflow:
		hidden;

	text-overflow:
		ellipsis;
}


.blatte-zone__map-live > span {
	width:
		0.45rem;

	height:
		0.45rem;

	flex:
		0 0 0.45rem;

	background:
		var(--blatte-orange);

	border-radius:
		50%;

	animation:
		blatte-zone-live
		1.8s ease-out infinite;
}


/* ==================================================
   MAP SHELL
   ================================================== */

.blatte-zone__map-shell {
	width: 100%;

	overflow: hidden;

	background:
		rgb(45 176 166 / 5%);

	border:
		1px solid rgb(21 148 139 / 10%);

	border-radius:
		0.65rem;
}


/* ==================================================
   MAPPA OPENSTREETMAP IFRAME
   ================================================== */

.info-zona-map {
	display: flex;

	flex-direction: column;

	width: 100%;
	min-width: 0;

	margin: 0;
	padding: 0;
}


.map-embed {
	position: relative;

	width: 100%;

	aspect-ratio:
		16 / 9;

	min-height: 20rem;

	overflow: hidden;

	background:
		rgb(45 176 166 / 8%);

	border-radius:
		0.62rem 0.62rem 0 0;
}


.map-embed iframe {
	display: block;

	width: 100%;
	height: 100%;

	min-height: 20rem;

	margin: 0;
	padding: 0;

	border: 0;

	background:
		rgb(45 176 166 / 8%);
}


/* ==================================================
   FOOT MAPPA
   ================================================== */

.blatte-zone__map-foot {
	display: flex;

	align-items: center;
	justify-content: space-between;

	gap: 0.75rem;

	width: 100%;

	padding:
		0.65rem 0.7rem;

	background:
		var(--blatte-white);

	border-top:
		1px solid rgb(46 68 56 / 10%);
}


/* ==================================================
   LINK MAPPA COMPLETA
   ================================================== */

.map-link {
	flex: 0 0 auto;

	margin: 0;
	padding: 0;
}


.map-link a {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	gap: 0.4rem;

	min-height: 2.35rem;

	padding:
		0.48rem 0.65rem;

	color:
		var(--blatte-white) !important;

	background:
		var(--blatte-teal);

	border:
		1px solid var(--blatte-teal);

	border-radius:
		0.45rem;

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		0.68rem;

	font-weight:
		700;

	line-height:
		1.3;

	text-decoration:
		none !important;

	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease;
}


.map-link a svg {
	width: 0.95rem;
	height: 0.95rem;

	flex: 0 0 auto;

	fill: none;

	stroke: currentColor;

	stroke-width: 1.8;

	stroke-linecap: round;
	stroke-linejoin: round;
}


.map-link a:hover {
	background:
		var(--blatte-orange);

	border-color:
		var(--blatte-orange);

	transform:
		translateY(-1px);
}


.map-link a:focus-visible {
	outline:
		3px solid var(--blatte-teal-light);

	outline-offset:
		3px;
}


/* ==================================================
   NOTA AREA
   ================================================== */

.blatte-zone__map-note {
	display: flex;

	flex: 1 1 auto;

	align-items: flex-start;

	gap: 0.45rem;

	min-width: 0;

	margin: 0;
	padding: 0;

	color:
		var(--blatte-green);

	font-size:
		0.62rem;

	line-height:
		1.4;

	opacity:
		0.76;
}


.blatte-zone__map-note > span:last-child {
	display: block;

	min-width: 0;
}


.blatte-zone__map-note strong {
	display: block;

	margin-bottom:
		0.08rem;

	color:
		var(--blatte-dark);

	font-size:
		0.65rem;

	font-weight:
		700;

	opacity:
		1;
}


.blatte-zone__map-risk-dot {
	width: 0.52rem;
	height: 0.52rem;

	flex:
		0 0 0.52rem;

	margin-top:
		0.18rem;

	background:
		var(--blatte-orange);

	border-radius:
		50%;

	animation:
		blatte-zone-risk-pulse
		1.8s infinite;
}


/* ==================================================
   COVERAGE INFO
   ================================================== */

.blatte-zone__coverage-info {
	display:
		flex;

	flex-direction:
		column;

	align-items:
		stretch;

	width:
		100%;

	min-width:
		0;

	padding:
		clamp(
			1rem,
			2vw,
			1.4rem
		);

	background:
		linear-gradient(
			145deg,
			var(--blatte-white),
			rgb(45 176 166 / 5%)
		);

	border:
		1px solid rgb(21 148 139 / 17%);

	border-radius:
		0.85rem;

	box-shadow:
		0 0.5rem 1.5rem
		rgb(29 35 39 / 5%);
}


.blatte-zone__coverage-info > h3 {
	margin:
		0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size: 0.9rem;

	font-weight:
		750;

	line-height:
		1.15;

	letter-spacing:
		-0.018em;

	text-wrap:
		balance;
}


.blatte-zone__coverage-info >
p:not(.blatte-zone__coverage-label) {
	margin:
		0.55rem 0 0;

	color:
		var(--blatte-green);

	font-size:
		0.8rem;

	line-height:
		1.58;

	opacity:
		0.8;
}


/* ==================================================
   COVERAGE LIST
   ================================================== */

.blatte-zone__coverage-list {
	display:
		flex;

	flex-direction:
		column;

	gap:
		0;

	width:
		100%;

	margin:
		0.9rem 0 0;

	padding:
		0;

	list-style:
		none;
}


.blatte-zone__coverage-list li {
	display:
		flex;

	align-items:
		flex-start;

	gap:
		0.6rem;

	width:
		100%;

	padding:
		0.65rem 0;

	border-top:
		1px solid rgb(46 68 56 / 10%);
}


.blatte-zone__coverage-list li > span {
	display:
		inline-flex;

	align-items:
		center;

	justify-content:
		center;

	width:
		1.5rem;

	height:
		1.5rem;

	flex:
		0 0 1.5rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);

	border-radius:
		50%;

	font-size:
		0.62rem;

	font-weight:
		800;
}


.blatte-zone__coverage-list div {
	flex:
		1 1 auto;

	min-width:
		0;
}


.blatte-zone__coverage-list strong {
	display:
		block;

	color:
		var(--blatte-dark);

	font-size: 0.88rem;

	font-weight:
		700;

	line-height:
		1.35;
}


.blatte-zone__coverage-list small {
	display:
		block;

	margin-top:
		0.08rem;

	color:
		var(--blatte-green);

	font-size: 0.74rem;

	line-height:
		1.4;

	opacity:
		0.72;
}


/* ==================================================
   COVERAGE CTA
   ================================================== */

.blatte-zone__coverage-link {
	display:
		inline-flex;

	align-items:
		center;

	justify-content:
		center;

	align-self:
		flex-start;

	gap:
		0.45rem;

	margin-top:
		0.8rem;

	padding:
		0.6rem 0.8rem;

	color:
		var(--blatte-white) !important;

	background:
		var(--blatte-teal);

	border:
		2px solid var(--blatte-teal);

	border-radius:
		0.48rem;

	font-family:
		"Phudu",
		sans-serif;

	font-size: 0.78rem;

	font-weight:
		700;

	text-decoration:
		none !important;

	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease;
}


.blatte-zone__coverage-link svg {
	width:
		1rem;

	height:
		1rem;

	fill:
		none;

	stroke:
		currentColor;

	stroke-width:
		1.8;

	stroke-linecap:
		round;

	stroke-linejoin:
		round;
}


.blatte-zone__coverage-link:hover {
	background:
		var(--blatte-orange);

	border-color:
		var(--blatte-orange);

	transform:
		translateY(-1px);
}


/* ==================================================
   HEADER AMBIENTI
   ================================================== */

.blatte-zone__targets-head {
	display:
		flex;

	flex-direction:
		column;

	align-items:
		flex-start;

	margin-top:
		clamp(
			1.5rem,
			3vw,
			2.2rem
		);

	margin-bottom:
		0.9rem;
}


.blatte-zone__targets-head h3 {
	width:
		100%;

	max-width:
		55rem;

	margin:
		0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size: clamp(1.45rem, 2vw, 1.9rem);

	font-weight:
		750;

	line-height:
		1.15;

	letter-spacing:
		-0.018em;
}


.blatte-zone__targets-head > p:last-child {
	max-width:
		55rem;

	margin:
		0.45rem 0 0;

	color:
		var(--blatte-green);

	font-size: 0.9rem;

	line-height:
		1.55;

	opacity:
		0.78;
}


/* ==================================================
   TARGETS
   Mobile: 1 colonna
   Tablet: 2 colonne
   Desktop: 4 colonne
   ================================================== */

.blatte-zone__targets {
	display: grid !important;

	grid-template-columns:
		minmax(0, 1fr);

	grid-auto-flow: row;

	align-items: stretch;

	gap: 1rem;

	width: min(1400px, calc(100% - 2rem));
	max-width: 1400px;
}


/* ==================================================
   CARD AMBIENTE
   ================================================== */

.blatte-zone__targets > .blatte-zone__card {
	display: flex !important;

	flex-direction: column;

	align-items: stretch;
	justify-content: flex-start;

	grid-column: auto !important;
	grid-row: auto !important;

	gap: 0.8rem;

	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	height: 100%;

	margin: 0 !important;
	padding: 1.1rem;

	background:
		linear-gradient(
			145deg,
			var(--blatte-white),
			rgb(45 176 166 / 4%)
		);

	border:
		1px solid rgb(46 68 56 / 13%);

	border-radius:
		0.72rem;

	box-shadow:
		0 0.4rem 1.2rem
		rgb(29 35 39 / 5%);

	transition:
		border-color 180ms ease,
		box-shadow 180ms ease,
		transform 180ms ease;
}


.blatte-zone__targets > .blatte-zone__card:hover {
	border-color:
		rgb(21 148 139 / 34%);

	box-shadow:
		0 0.7rem 1.6rem
		rgb(29 35 39 / 8%);

	transform:
		translateY(-2px);
}


/* ==================================================
   CARD HEAD
   Icona + titolo
   ================================================== */

.blatte-zone__card-head {
	display: flex !important;

	align-items: center;
	justify-content: flex-start;

	gap: 0.75rem;

	width: 100%;
	min-width: 0;

	margin: 0;
	padding: 0;
}


.blatte-zone__card-head h3 {
	flex: 1 1 auto;

	min-width: 0;
}


.blatte-zone__icon {
	display: inline-flex !important;

	align-items: center;
	justify-content: center;

	width: 2.8rem !important;
	height: 2.8rem !important;

	min-width: 2.8rem;
	min-height: 2.8rem;

	flex: 0 0 2.8rem;

	margin: 0 !important;
	padding: 0 !important;

	color:
		var(--blatte-white) !important;

	background:
		var(--blatte-teal);

	border:
		1px solid var(--blatte-teal);

	border-radius:
		0.6rem;

	opacity: 1 !important;
	visibility: visible !important;
}


.blatte-zone__icon svg,
.blatte-zone__bridge-icon svg,
.blatte-zone__bridge-link svg {
	width:
		1.2rem;

	height:
		1.2rem;

	fill:
		none;

	stroke:
		currentColor;

	stroke-width:
		1.8;

	stroke-linecap:
		round;

	stroke-linejoin:
		round;
}


.blatte-zone__card-content {
	display: flex;

	flex: 1 1 auto;

	flex-direction: column;

	width: 100%;
	min-width: 0;
}


.blatte-zone__card h3 {
	margin:
		0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size: 1rem;

	font-weight:
		700;

	line-height:
		1.35;
}


.blatte-zone__card p {
	margin:
		0.28rem 0 0;

	color:
		var(--blatte-green);

	font-size: 0.82rem;

	line-height:
		1.52;

	opacity:
		0.79;
}


.blatte-zone__card ul {
	display: flex;

	flex-wrap: wrap;

	gap: 0.28rem;

	margin:
		auto 0 0;

	padding:
		0.7rem 0 0;

	list-style:
		none;
}


.blatte-zone__card li {
	display:
		inline-flex;

	align-items:
		center;

	padding:
		0.25rem 0.45rem;

	color:
		var(--blatte-green);

	background:
		var(--blatte-white);

	border:
		1px solid rgb(46 68 56 / 12%);

	border-radius:
		999px;

	font-size: 0.68rem;

	font-weight:
		600;

	line-height:
		1.3;
}




/* ==================================================
   VISIBILITÀ ICONE AMBIENTI
   ================================================== */

.blatte-zone__icon svg {
	display: block !important;

	width: 1.45rem !important;
	height: 1.45rem !important;

	min-width: 1.45rem;
	min-height: 1.45rem;

	margin: 0 !important;
	padding: 0 !important;

	fill: none !important;

	stroke: currentColor !important;
	stroke-width: 1.9 !important;
	stroke-linecap: round !important;
	stroke-linejoin: round !important;

	opacity: 1 !important;
	visibility: visible !important;
}


.blatte-zone__icon svg path,
.blatte-zone__icon svg circle,
.blatte-zone__icon svg rect,
.blatte-zone__icon svg line {
	fill: none !important;

	stroke: currentColor !important;

	opacity: 1 !important;
	visibility: visible !important;
}

/* ==================================================
   BRIDGE
   ================================================== */

.blatte-zone__bridge {
	display:
		flex;

	align-items:
		center;

	gap:
		0.8rem;

	margin-top:
		clamp(
			1.2rem,
			2.5vw,
			1.7rem
		);

	padding:
		clamp(
			1rem,
			2vw,
			1.35rem
		);

	color:
		var(--blatte-white);

	background:
		radial-gradient(
			circle at 100% 0,
			rgb(224 107 68 / 22%),
			transparent 22rem
		),
		linear-gradient(
			135deg,
			var(--blatte-dark),
			var(--blatte-green)
		);

	border:
		1px solid rgb(45 176 166 / 22%);

	border-radius:
		0.82rem;

	box-shadow:
		0 0.7rem 1.7rem
		rgb(29 35 39 / 13%);
}


.blatte-zone__bridge-icon {
	display:
		inline-flex;

	align-items:
		center;

	justify-content:
		center;

	width:
		2.8rem;

	height:
		2.8rem;

	flex:
		0 0 2.8rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);

	border-radius:
		50%;
}


.blatte-zone__bridge-content {
	flex:
		1 1 auto;

	min-width:
		0;
}


.blatte-zone__bridge-label {
	margin:
		0 0 0.18rem !important;

	color:
		var(--blatte-orange) !important;

	font-size:
		0.62rem !important;

	font-weight:
		700;

	letter-spacing:
		0.055em;

	text-transform:
		uppercase;

	opacity:
		1 !important;
}


.blatte-zone__bridge h3 {
	margin:
		0;

	color:
		var(--blatte-white);

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			1.05rem,
			1.6vw,
			1.45rem
		);

	font-weight:
		750;

	line-height:
		1.2;
}


.blatte-zone__bridge-content >
p:not(.blatte-zone__bridge-label) {
	max-width:
		52rem;

	margin:
		0.4rem 0 0;

	color:
		rgb(255 255 255 / 70%);

	font-size:
		0.74rem;

	line-height:
		1.52;
}


.blatte-zone__bridge-link {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	gap: 0.45rem;

	margin-top: 0.65rem;

	padding: 0.62rem 0.8rem;

	color:
		var(--blatte-white) !important;

	background:
		transparent;

	border:
		2px solid var(--blatte-white);

	border-radius:
		0.46rem;

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		0.72rem;

	font-weight:
		700;

	text-decoration:
		none !important;

	transition:
		color 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease;
}


.blatte-zone__bridge-link:hover {
	color:
		var(--blatte-dark) !important;

	background:
		var(--blatte-white);

	border-color:
		var(--blatte-white);

	transform:
		translateY(-1px);
}


/* ==================================================
   COMUNI
   ================================================== */

.blatte-zone__comuni {
	scroll-margin-top:
		2rem;

	margin-top:
		clamp(
			1rem,
			2.5vw,
			1.5rem
		);
}


/* ==================================================
   DESKTOP
   ================================================== */

@media (min-width: 1024px) {

	/* ----------------------------------------------
	   MAPPA + INFO
	   ---------------------------------------------- */

	.blatte-zone__coverage {
		flex-direction:
			row;

		align-items:
			stretch;

		justify-content:
			space-between;

		gap:
			clamp(
				1.2rem,
				2vw,
				1.6rem
			);
	}


	.blatte-zone__map-card {
		flex:
			1 1 62%;

		width:
			auto;

		min-width:
			0;
	}


	.blatte-zone__coverage-info {
		flex:
			1 1 38%;

		width:
			auto;

		min-width:
			0;
	}


	/* ----------------------------------------------
	   AMBIENTI: 4 COLONNE
	   ---------------------------------------------- */

	.blatte-zone__targets {
		grid-template-columns:
			repeat(
				4,
				minmax(0, 1fr)
			) !important;

		grid-auto-flow: row;

		gap: 1rem;
	}


	.blatte-zone__targets > .blatte-zone__card {
		grid-column: auto !important;
		grid-row: auto !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		height: 100%;
	}


}


/* ==================================================
   DESKTOP AMPIO
   ================================================== */

@media (min-width: 1280px) {

	.blatte-zone__map-card {
		flex-basis:
			64%;
	}


	.blatte-zone__coverage-info {
		flex-basis:
			36%;
	}

}


/* ==================================================
   TABLET
   ================================================== */

@media (
	min-width: 700px
) and (
	max-width: 1023px
) {

	.blatte-zone__coverage {
		flex-direction:
			column;
	}


	.blatte-zone__map-card,
	.blatte-zone__coverage-info {
		width:
			100%;
	}


	.blatte-zone__targets {
		grid-template-columns:
			repeat(
				2,
				minmax(0, 1fr)
			) !important;

		gap: 0.75rem;
	}


	.blatte-zone__targets > .blatte-zone__card {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}


}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 699px) {

	.blatte-zone__header,
	.blatte-zone__coverage,
	.blatte-zone__targets-head,
	.blatte-zone__targets,
	.blatte-zone__bridge,
	.blatte-zone__comuni {
		width:
			calc(100% - 1.25rem);
	}




	.blatte-zone__header {
		margin-bottom:
			1.3rem;
	}


	.blatte-zone__title {
		max-width:
			100%;

		font-size:
			clamp(
				1.7rem,
				8vw,
				2.3rem
			);

		line-height:
			1.07;
	}


	.blatte-zone__intro {
		max-width:
			100%;

		margin-top:
			0.75rem;

		font-size:
			0.92rem;
	}


	.blatte-zone__eyebrow {
		border-radius:
			0.55rem;
	}


	/* ----------------------------------------------
	   MAPPA
	   ---------------------------------------------- */

	.blatte-zone__map-head {
		gap:
			0.5rem;
	}


	.blatte-zone__map-live {
		max-width:
			42%;

		font-size:
			0.57rem;
	}


	.map-embed {
		aspect-ratio:
			4 / 3;

		min-height:
			17rem;
	}


	.map-embed iframe {
		min-height:
			17rem;
	}


	.blatte-zone__map-foot {
		flex-direction:
			column;

		align-items:
			stretch;

		gap:
			0.6rem;

		padding:
			0.6rem;
	}


	.map-link {
		width:
			100%;
	}


	.map-link a {
		width:
			100%;
	}


	.blatte-zone__map-note {
		width:
			100%;
	}


	.blatte-zone__coverage-info {
		padding:
			0.95rem;
	}


	.blatte-zone__coverage-link {
		align-self:
			stretch;

		width:
			100%;
	}


	/* ----------------------------------------------
	   AMBIENTI
	   ---------------------------------------------- */

	.blatte-zone__targets-head {
		margin-top:
			1.3rem;
	}


	.blatte-zone__targets {
		grid-template-columns:
			minmax(0, 1fr) !important;

		gap: 0.65rem;
	}


	.blatte-zone__targets > .blatte-zone__card {
		width: 100% !important;
		max-width: 100% !important;

		padding: 1rem;
	}


	.blatte-zone__card ul {
		display: flex;

		flex-direction: row;
		flex-wrap: wrap;

		align-items: flex-start;
	}


	.blatte-zone__card li {
		width: auto;

		border-radius: 999px;
	}


	/* ----------------------------------------------
	   BRIDGE
	   ---------------------------------------------- */

	.blatte-zone__bridge {
		align-items:
			flex-start;

		padding:
			0.95rem;
	}


	.blatte-zone__bridge-link {
		width:
			100%;
	}

}


/* ==================================================
   MOBILE MOLTO PICCOLO
   ================================================== */

@media (max-width: 380px) {

	.blatte-zone__map-head {
		flex-direction:
			column;
	}


	.blatte-zone__map-live {
		max-width:
			100%;
	}


	.blatte-zone__bridge {
		flex-direction:
			column;
	}

}


/* ==================================================
   ANIMAZIONI
   ================================================== */


@keyframes blatte-zone-risk-pulse {

	0% {
		box-shadow:
			0 0 0 0
			rgb(224 107 68 / 40%);
	}

	70% {
		box-shadow:
			0 0 0 0.45rem
			rgb(224 107 68 / 0%);
	}

	100% {
		box-shadow:
			0 0 0 0
			rgb(224 107 68 / 0%);
	}

}


@keyframes blatte-zone-live {

	0% {
		box-shadow:
			0 0 0 0
			rgb(224 107 68 / 35%);
	}

	70% {
		box-shadow:
			0 0 0 0.35rem
			rgb(224 107 68 / 0%);
	}

	100% {
		box-shadow:
			0 0 0 0
			rgb(224 107 68 / 0%);
	}

}


/* ==================================================
   ACCESSIBILITÀ
   ================================================== */

@media (prefers-reduced-motion: reduce) {

	.blatte-zone__map-risk-dot,
	.blatte-zone__map-live > span {
		animation:
			none;
	}


	.blatte-zone__card,
	.blatte-zone__coverage-link {
		transition:
			none;
	}


	.blatte-zone__card:hover,
	.blatte-zone__coverage-link:hover {
		transform:
			none;
	}

}

/* --------------------------------------------------
   Voce di copertura condizionale

   [RELATION type='quartieri'] restituisce stringa VUOTA
   quando il comune non ne ha (il 27% degli 8.075 in
   mappa). Senza questa regola resterebbe un'etichetta
   con sotto il nulla. Lo span non deve contenere spazi
   nel markup, altrimenti :empty non scatta.
   -------------------------------------------------- */

.blatte-zone__coverage-opt:has(.apg-cond:empty) {
	display: none;
}

/* --------------------------------------------------
   CORREZIONE CONTRASTO

   Il titolo del riquadro scuro non ha classe, quindi
   riceve il colore dagli heading del kit Elementor
   (verde scuro) e finisce illeggibile sul fondo nero.
   Si sale a specificita' 0,2,1 per batterlo senza
   ricorrere a !important.
   -------------------------------------------------- */

.blatte-zone .blatte-zone__bridge h2,
.blatte-zone .blatte-zone__bridge h3,
.blatte-zone .blatte-zone__bridge h4 {
	color: var(--blatte-white);
}

/* --------------------------------------------------
   CARD DEGLI AMBIENTI CENTRATE

   Stessa causa delle card dell'hero: wpautop antepone
   un <p> vuoto a ogni card, la griglia passa da 4 a 8
   figli e le card scivolano nelle colonne di destra,
   lasciando vuota la meta' sinistra.
   -------------------------------------------------- */

.blatte-zone__targets > p {
	display: none;
}

.blatte-zone__targets {
	justify-content: center;
}


/* --------------------------------------------------
   RIQUADRO PROVINCIALE UNIFORMATO ALLA GARANZIA
   -------------------------------------------------- */

.blatte-zone__bridge {
	padding: 28.8px;

	border-radius: 14.4px;
}

/* --------------------------------------------------
   TESTO DI LETTURA A 18px
   Heading non toccati; <small> subordinati ma a 16px.
   -------------------------------------------------- */

.blatte-zone p,
.blatte-zone li,
.blatte-zone td,
.blatte-zone dd,
.blatte-zone dt {
	font-size: 18px;
}

.blatte-zone small {
	font-size: 16px;
}

/* ======================================================================
   HOOK FINALE SPOSTATO QUI DAL BLOCCO pre-footer

   Il markup di `.blatte-contatto__final-hook` viveva nella sezione
   `.blatte-contatto`; ora sta in `.blatte-zone`, al posto del vecchio
   ponte comuni. Le sue regole restano nel css_block di pre-footer (che
   continua a confluire nello stesso foglio), ma DUE di esse erano
   annidate sotto `.blatte-contatto` e qui non matchano piu'.

   Senza queste tre righe il titolo esce a rgb(46,68,56) su fondo scuro
   (contrasto 1.58) perche' vince `.elementor-kit-29 h2`, e il testo del
   pulsante diventa verde acqua su verde acqua per `.elementor-kit-29 a`.
   Servono due classi per superarli: quelle del tema valgono (0,1,1).
   ====================================================================== */

.blatte-zone .blatte-contatto__final-hook h2 {
	color: var(--blatte-white);
}

.blatte-zone a.blatte-contatto__final-hook-cta {
	color: var(--blatte-white);

	display: inline-flex;
}

.blatte-zone a.blatte-contatto__final-hook-cta span {
	color: var(--blatte-white);
}

/* ----------------------------------------------------------------------
   CTA WHATSAPP NELL'HOOK FINALE

   Colore e display bianchi arrivano gia' dalle regole
   `.blatte-zone a.blatte-contatto__final-hook-cta[ span]` aggiunte con
   lo spostamento del blocco: qui servono solo fondo e bordo.

   Il margine: la regola base mette 4.1rem a sinistra del pulsante, che
   con due pulsanti affiancati diventerebbe uno stacco enorme fra i due.
   Sul secondo si riduce a una spaziatura normale.
   ---------------------------------------------------------------------- */

.blatte-zone .blatte-contatto__final-hook-cta--whatsapp {
	margin-left: 0.6rem;

	background: #15948b;
	border-color: #15948b;
}

.blatte-zone .blatte-contatto__final-hook-cta--whatsapp:hover {
	background: #0f6f68;
	border-color: #0f6f68;
}

/* ======================================================================
   GRONDA MOBILE ALLINEATA ALLE ALTRE SEZIONI

   Qui la gronda c'era ma era meta' delle altre: sotto i 699px l'asse
   passa a `calc(100% - 1.25rem)` = 10px per lato, contro i 16px di
   costi e chi-siamo. Si uniforma a 2rem.
   ====================================================================== */

@media (max-width: 699px) {

	.blatte-zone__header,
	.blatte-zone__coverage,
	.blatte-zone__targets-head,
	.blatte-zone__targets,
	.blatte-zone__comuni {
		width: calc(100% - 2rem);
	}

}

/* ======================================================================
   I DUE PULSANTI DELL'HOOK: IN LINEA E DISTINGUIBILI

   Andavano a capo l'uno sotto l'altro (misurati a 1520px: y 7855 e 7903)
   e avevano due verdi quasi uguali - rgb(45,176,166) e rgb(21,148,139) -
   quindi si annullavano a vicenda invece di offrire due strade diverse.

   Ora stanno in riga e sono differenziati per FUNZIONE, non per tonalita':
   l'azione principale prende l'arancione del marchio con testo scuro
   (stessa combinazione della CTA primaria dell'hero, contrasto alto),
   WhatsApp resta sul verde del suo canale, coerente con la barra fissa.
   ====================================================================== */

@media (min-width: 1024px) {

	.blatte-zone .blatte-contatto__final-hook {
		flex-wrap: nowrap;
	}

	.blatte-zone .blatte-contatto__final-hook-cta {
		flex: 0 0 auto;

		max-width: none;

		white-space: nowrap;
	}

}

/* azione principale: arancione di marchio, testo scuro */

.blatte-zone a.blatte-contatto__final-hook-cta:not(.blatte-contatto__final-hook-cta--whatsapp),
.blatte-zone a.blatte-contatto__final-hook-cta:not(.blatte-contatto__final-hook-cta--whatsapp) span {
	color: var(--blatte-dark, #1d2327) !important;
}

.blatte-zone a.blatte-contatto__final-hook-cta:not(.blatte-contatto__final-hook-cta--whatsapp) {
	background: var(--blatte-orange, #e06b44);
	border-color: var(--blatte-orange, #e06b44);
}

.blatte-zone a.blatte-contatto__final-hook-cta:not(.blatte-contatto__final-hook-cta--whatsapp) svg {
	stroke: var(--blatte-dark, #1d2327);
}

/* ----------------------------------------------------------------------
   I PULSANTI STANNO DENTRO UN <p> DI wpautop

   `flex-wrap: nowrap` sul pannello non bastava: i due <a> non sono figli
   diretti del pannello. wpautop li ha avvolti in un <p> senza classe, che
   e' il terzo elemento flex ed e' largo 451px - mentre i due pulsanti,
   con `width: 100%` e `max-width: 17rem`, ne chiedono ~450 piu' lo spazio
   fra loro. Da qui l'andata a capo.

   Si aggancia quel <p> come figlio diretto e lo si rende una riga flex,
   dando ai pulsanti larghezza sul contenuto invece che al 100%.
   ---------------------------------------------------------------------- */

@media (min-width: 1024px) {

	.blatte-zone .blatte-contatto__final-hook > p {
		display: flex;
		flex: 0 0 auto;
		flex-wrap: nowrap;
		align-items: center;
		gap: 0.6rem;

		margin: 0;
	}

	.blatte-zone .blatte-contatto__final-hook > p > a.blatte-contatto__final-hook-cta {
		width: auto;
		max-width: none;

		margin-left: 0;
	}

}

/* ----------------------------------------------------------------------
   ICONA DELL'HOOK: STESSO CASO DEL BADGE GARANZIA
   ---------------------------------------------------------------------- */

.blatte-contatto__final-hook-icon > svg {
	display: none;
}


/* ----------------------------------------------------------------------
   ETICHETTA "MAPPA INTERATTIVA" TAGLIATA A META'

   Il badge aveva `max-width: 40%` (44px reali) con `white-space: nowrap`
   e `overflow: hidden`, mentre il testo ne chiede 108: si leggeva
   "Mapp...". Il tetto va tolto e l'elemento non deve restringersi.
   ---------------------------------------------------------------------- */

.blatte-zone__map-live {
	flex: 0 0 auto;

	max-width: none;
}

/* Block: faq */
/* ==================================================
   BLATTE.IT
   FAQ

   Elementor gestisce:
   - larghezza esterna
   - padding esterno
   - margini esterni

   Il componente gestisce esclusivamente
   il layout interno.
   ================================================== */

.blatte-faq-toggle {
	--blatte-dark: #1d2327;
	--blatte-green: #2e4438;
	--blatte-teal: #0f6f68;
	--blatte-teal-light: #2db0a6;
	--blatte-orange: #e06b44;
	--blatte-white: #ffffff;

	display: flex !important;

	flex-direction: column;
	align-items: center;

	color: var(--blatte-green);

	font-family:
		"Phudu",
		sans-serif;
}


.blatte-faq-toggle *,
.blatte-faq-toggle *::before,
.blatte-faq-toggle *::after {
	box-sizing: border-box;
}


/* ==================================================
   ASSE CENTRALE
   ================================================== */

.blatte-faq-toggle__master {
	width: 100%;
	max-width: 1400px;

	margin:
		0 auto;

	overflow: hidden;

	background:
		var(--blatte-white);

	border:
		1px solid rgb(46 68 56 / 14%);

	border-radius:
		0.85rem;

	box-shadow:
		0 0.65rem 1.8rem
		rgb(29 35 39 / 7%);

	transition:
		border-color 180ms ease,
		box-shadow 180ms ease;
}


.blatte-faq-toggle__master[open] {
	border-color:
		rgb(21 148 139 / 34%);

	box-shadow:
		0 0.85rem 2.2rem
		rgb(29 35 39 / 9%);
}


/* ==================================================
   RIMOZIONE MARKER NATIVO
   ================================================== */

.blatte-faq-toggle summary {
	list-style: none;

	-webkit-tap-highlight-color:
		transparent;
}


.blatte-faq-toggle summary::-webkit-details-marker {
	display: none;
}


.blatte-faq-toggle summary::marker {
	content: "";
}


/* ==================================================
   HEADER MASTER

   Titolo + sottotitolo sono ora DIRETTAMENTE
   nella barra esterna scura.
   ================================================== */

.blatte-faq-toggle__master-summary {
	display: flex !important;

	align-items: center;

	gap: 0.8rem;

	width: 100%;

	min-height:
		5rem;

	padding:
		1rem 1.2rem;

	color:
		var(--blatte-white);

	background:
		radial-gradient(
			circle at 100% 0,
			rgb(224 107 68 / 20%),
			transparent 20rem
		),
		linear-gradient(
			135deg,
			var(--blatte-dark),
			var(--blatte-green)
		);

	cursor:
		pointer;
}


/* ==================================================
   COPY MASTER
   ================================================== */

.blatte-faq-toggle__master-copy {
	display: flex;

	flex:
		1 1 auto;

	flex-direction: column;

	align-items: flex-start;

	gap: 0.18rem;

	min-width: 0;
}


/* Titolo FAQ */

.blatte-faq-toggle__master-title {
	display: block;

	margin: 0;

	color:
		var(--blatte-white) !important;

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			1.5rem,
			2.5vw,
			2rem
		);

	font-weight:
		800;

	line-height:
		1.05;

	letter-spacing:
		-0.025em;
}


/* Sottotitolo */

.blatte-faq-toggle__master-subtitle {
	display: block;

	max-width:
		48rem;

	color:
		rgb(255 255 255 / 70%) !important;

	font-size:
		0.74rem;

	font-weight:
		500;

	line-height:
		1.4;
}


/* ==================================================
   CONTATORE
   ================================================== */

.blatte-faq-toggle__count {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	flex:
		0 0 auto;

	min-width:
		2.6rem;

	height:
		1.8rem;

	padding:
		0 0.55rem;

	color:
		var(--blatte-white);

	background:
		var(--blatte-orange);

	border-radius:
		999px;

	font-size:
		0.66rem;

	font-weight:
		800;

	line-height:
		1;
}


/* ==================================================
   ICONE + / -
   ================================================== */

.blatte-faq-toggle__master-icon,
.blatte-faq-toggle__item-icon {
	position: relative;

	display: inline-flex;

	align-items: center;
	justify-content: center;

	flex:
		0 0 auto;

	border-radius:
		50%;
}


.blatte-faq-toggle__master-icon {
	width:
		2.15rem;

	height:
		2.15rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);
}


.blatte-faq-toggle__master-icon::before,
.blatte-faq-toggle__master-icon::after,
.blatte-faq-toggle__item-icon::before,
.blatte-faq-toggle__item-icon::after {
	content: "";

	position: absolute;

	top: 50%;
	left: 50%;

	border-radius:
		999px;

	transform:
		translate(-50%, -50%);

	transition:
		transform 180ms ease;
}


/* Linee + */

.blatte-faq-toggle__master-icon::before,
.blatte-faq-toggle__master-icon::after {
	width:
		0.8rem;

	height:
		2px;

	background:
		currentColor;
}


.blatte-faq-toggle__master-icon::after,
.blatte-faq-toggle__item-icon::after {
	transform:
		translate(-50%, -50%)
		rotate(90deg);
}


/* Diventa - quando aperto */

.blatte-faq-toggle__master[open] >
summary
.blatte-faq-toggle__master-icon::after,
.blatte-faq-toggle__item[open] >
summary
.blatte-faq-toggle__item-icon::after {
	transform:
		translate(-50%, -50%)
		rotate(0deg);
}


/* ==================================================
   CONTENUTO MASTER
   ================================================== */

.blatte-faq-toggle__content {
	width: 100%;

	padding:
		clamp(
			0.8rem,
			2vw,
			1.2rem
		);

	background:
		linear-gradient(
			180deg,
			rgb(45 176 166 / 5%),
			var(--blatte-white) 10rem
		);

	border-top:
		1px solid rgb(46 68 56 / 11%);
}


/* ==================================================
   INTRO
   ================================================== */

.blatte-faq-toggle__intro {
	width: 100%;

	margin:
		0 0 0.8rem;

	padding:
		0.7rem 0.85rem;

	color:
		var(--blatte-green);

	background:
		var(--blatte-white);

	border:
		1px solid rgb(21 148 139 / 17%);

	border-left:
		4px solid var(--blatte-teal);

	border-radius:
		0.55rem;

	font-size:
		0.72rem;

	line-height:
		1.5;

	opacity:
		0.84;
}


/* ==================================================
   LISTA FAQ
   ================================================== */

.blatte-faq-toggle__list {
	display: flex !important;

	flex-direction: column;

	align-items: stretch;

	gap:
		0.42rem;

	width: 100%;

	margin: 0;
	padding: 0;
}


/* ==================================================
   SINGOLA FAQ
   ================================================== */

.blatte-faq-toggle__item {
	display: block;

	width: 100%;

	margin: 0;

	overflow: hidden;

	background:
		var(--blatte-white);

	border:
		1px solid rgb(46 68 56 / 12%);

	border-radius:
		0.55rem;

	box-shadow:
		none;

	transition:
		border-color 180ms ease,
		box-shadow 180ms ease;
}


.blatte-faq-toggle__item:hover {
	border-color:
		rgb(21 148 139 / 30%);
}


.blatte-faq-toggle__item[open] {
	border-color:
		rgb(21 148 139 / 40%);

	box-shadow:
		0 0.35rem 1rem
		rgb(29 35 39 / 6%);
}


/* ==================================================
   SUMMARY SINGOLA FAQ
   ================================================== */

.blatte-faq-toggle__item > summary {
	display: flex !important;

	align-items: center;
	justify-content: space-between;

	gap:
		0.7rem;

	width: 100%;

	min-height:
		3.2rem;

	padding:
		0.65rem 0.8rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-white);

	cursor:
		pointer;

	transition:
		color 180ms ease,
		background-color 180ms ease;
}


.blatte-faq-toggle__item > summary:hover {
	color:
		var(--blatte-teal);

	background:
		rgb(45 176 166 / 4%);
}


.blatte-faq-toggle__item[open] >
summary {
	color:
		var(--blatte-teal);

	background:
		rgb(45 176 166 / 6%);
}


/* ==================================================
   DOMANDA

   Questa sostituisce completamente il vecchio H3.
   ================================================== */

.blatte-faq-toggle__question {
	display: block;

	flex:
		1 1 auto;

	min-width: 0;

	margin: 0;

	color:
		inherit;

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			0.84rem,
			1.2vw,
			0.94rem
		);

	font-weight:
		650;

	line-height:
		1.38;

	letter-spacing:
		-0.008em;
}


/* ==================================================
   ICONA SINGOLA FAQ
   ================================================== */

.blatte-faq-toggle__item-icon {
	width:
		1.6rem;

	height:
		1.6rem;

	flex:
		0 0 1.6rem;

	color:
		var(--blatte-white);

	background:
		var(--blatte-green);

	transition:
		color 180ms ease,
		background-color 180ms ease;
}


.blatte-faq-toggle__item-icon::before,
.blatte-faq-toggle__item-icon::after {
	width:
		0.62rem;

	height:
		2px;

	background:
		currentColor;
}


.blatte-faq-toggle__item[open] >
summary
.blatte-faq-toggle__item-icon {
	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);
}


/* ==================================================
   RISPOSTA
   ================================================== */

.blatte-faq-toggle__answer {
	width: 100%;

	padding:
		0 0.8rem 0.75rem;

	color:
		var(--blatte-green);

	background:
		var(--blatte-white);
}


.blatte-faq-toggle__answer-inner {
	padding-top:
		0.65rem;

	border-top:
		1px solid rgb(46 68 56 / 10%);
}


.blatte-faq-toggle__answer p {
	margin: 0;

	color:
		var(--blatte-green);

	font-size:
		0.77rem;

	font-weight:
		400;

	line-height:
		1.62;

	opacity:
		0.84;
}


.blatte-faq-toggle__answer p + p {
	margin-top:
		0.45rem;
}


/* ==================================================
   FOCUS
   ================================================== */

.blatte-faq-toggle summary:focus-visible {
	outline:
		3px solid var(--blatte-teal-light);

	outline-offset:
		-3px;
}


/* ==================================================
   DESKTOP
   ================================================== */

@media (min-width: 1024px) {

	.blatte-faq-toggle__master-summary {
		padding:
			1.05rem 1.25rem;
	}


	.blatte-faq-toggle__content {
		padding:
			1.1rem;
	}


	.blatte-faq-toggle__item > summary {
		padding:
			0.7rem 0.85rem;
	}


	.blatte-faq-toggle__answer {
		padding:
			0 0.85rem 0.8rem;
	}

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 699px) {

	.blatte-faq-toggle__master-summary {
		align-items:
			flex-start;

		gap:
			0.55rem;

		min-height:
			auto;

		padding:
			0.85rem;
	}


	.blatte-faq-toggle__master-copy {
		gap:
			0.15rem;
	}


	.blatte-faq-toggle__master-title {
		font-size:
			1.35rem;
	}


	/*
	 * Il sottotitolo NON viene più nascosto.
	 * Rimane nella barra principale anche mobile.
	 */

	.blatte-faq-toggle__master-subtitle {
		font-size:
			0.65rem;

		line-height:
			1.35;
	}


	.blatte-faq-toggle__count {
		min-width:
			2.1rem;

		height:
			1.55rem;

		padding-inline:
			0.4rem;

		font-size:
			0.6rem;
	}


	.blatte-faq-toggle__master-icon {
		width:
			1.85rem;

		height:
			1.85rem;

		flex-basis:
			1.85rem;
	}


	.blatte-faq-toggle__content {
		padding:
			0.55rem;
	}


	.blatte-faq-toggle__intro {
		margin-bottom:
			0.55rem;

		padding:
			0.6rem;

		font-size:
			0.68rem;
	}


	.blatte-faq-toggle__list {
		gap:
			0.35rem;
	}


	.blatte-faq-toggle__item > summary {
		align-items:
			flex-start;

		gap:
			0.5rem;

		min-height:
			3rem;

		padding:
			0.62rem;
	}


	.blatte-faq-toggle__question {
		font-size:
			0.82rem;

		line-height:
			1.38;
	}


	.blatte-faq-toggle__item-icon {
		width:
			1.5rem;

		height:
			1.5rem;

		flex-basis:
			1.5rem;

		margin-top:
			0.02rem;
	}


	.blatte-faq-toggle__answer {
		padding:
			0 0.62rem 0.65rem;
	}


	.blatte-faq-toggle__answer-inner {
		padding-top:
			0.58rem;
	}


	.blatte-faq-toggle__answer p {
		font-size:
			0.74rem;

		line-height:
			1.58;
	}

}


/* ==================================================
   MOBILE MOLTO PICCOLO
   ================================================== */

@media (max-width: 380px) {

	.blatte-faq-toggle__count {
		display:
			none;
	}


	.blatte-faq-toggle__master-summary {
		gap:
			0.45rem;
	}

}


/* ==================================================
   ACCESSIBILITÀ
   ================================================== */

@media (prefers-reduced-motion: reduce) {

	.blatte-faq-toggle__master,
	.blatte-faq-toggle__item,
	.blatte-faq-toggle__master-icon::before,
	.blatte-faq-toggle__master-icon::after,
	.blatte-faq-toggle__item-icon,
	.blatte-faq-toggle__item-icon::before,
	.blatte-faq-toggle__item-icon::after {
		transition:
			none;
	}

}

/* --------------------------------------------------
   TESTO DI LETTURA A 18px
   Heading non toccati; <small> subordinati ma a 16px.
   -------------------------------------------------- */

.blatte-faq-toggle p,
.blatte-faq-toggle li,
.blatte-faq-toggle td,
.blatte-faq-toggle dd,
.blatte-faq-toggle dt {
	font-size: 18px;
}

.blatte-faq-toggle small {
	font-size: 16px;
}

/* ----------------------------------------------------------------------
   RESPIRO SOTTO IL BLOCCO FAQ

   La barra FAQ finiva incollata alla sezione contatti: distanza misurata
   fra le due, zero pixel. Si stacca sotto, con un valore proporzionato
   allo stacco che le altre sezioni hanno gia' fra loro.
   ---------------------------------------------------------------------- */

.blatte-faq-toggle {
	margin-bottom: 3.5rem;
}

@media (max-width: 699px) {

	.blatte-faq-toggle {
		margin-bottom: 2.2rem;
	}

}

/* Block: pre-footer */
.blatte-contatto {
	--blatte-dark: #1d2327;
	--blatte-green: #2e4438;
	--blatte-teal: #0f6f68;
	--blatte-teal-light: #2db0a6;
	--blatte-orange: #e06b44;
	--blatte-white: #ffffff;

	display: flex !important;

	flex-direction: column;
	align-items: center;

	color: var(--blatte-green);

	background:
		linear-gradient(
			180deg,
			rgb(45 176 166 / 4%),
			var(--blatte-white) 45%,
			rgb(46 68 56 / 3%)
		);

	font-family:
		"Phudu",
		sans-serif;
}


.blatte-contatto *,
.blatte-contatto *::before,
.blatte-contatto *::after,
.blatte-mobile-bar *,
.blatte-mobile-bar *::before,
.blatte-mobile-bar *::after {
	box-sizing: border-box;
}


/* ==================================================
   ASSE CENTRALE

   Copy + form e hook finale condividono
   esattamente la stessa larghezza.
   ================================================== */

.blatte-contatto__layout,
.blatte-contatto__final-hook {
	width: 100%;
	max-width: 1400px;

	margin-left: auto;
	margin-right: auto;
}


/* ==================================================
   LAYOUT PRINCIPALE

   Mobile/tablet:
   una colonna.

   Desktop:
   copy + form.
   ================================================== */

.blatte-contatto__layout {
	display: flex !important;

	flex-direction: column;

	align-items: stretch;
	justify-content: flex-start;

	gap:
		clamp(
			1.5rem,
			3vw,
			2.5rem
		);
}


/* ==================================================
   COLONNA COPY
   ================================================== */

.blatte-contatto__copy {
	display: flex !important;

	flex-direction: column;

	align-items: flex-start;
	justify-content: flex-start;

	width: 100%;
	min-width: 0;
}


.blatte-contatto__copy > * {
	flex: 0 0 auto;
}


/* ==================================================
   EYEBROW
   ================================================== */

.blatte-contatto__eyebrow {
	display: inline-flex;

	align-items: center;

	gap: 0.5rem;

	max-width: 100%;

	margin:
		0 0 0.75rem;

	padding:
		0.42rem 0.72rem;

	color:
		var(--blatte-green);

	background:
		rgb(45 176 166 / 10%);

	border:
		1px solid rgb(21 148 139 / 24%);

	border-radius:
		999px;

	font-size:
		0.68rem;

	font-weight:
		700;

	line-height:
		1.3;

	letter-spacing:
		0.045em;

	text-transform:
		uppercase;
}


.blatte-contatto__eyebrow-dot {
	width: 0.48rem;
	height: 0.48rem;

	flex:
		0 0 0.48rem;

	background:
		var(--blatte-orange);

	border-radius:
		50%;
}


/* ==================================================
   H2
   ================================================== */

.blatte-contatto__heading {
	width: 100%;
	max-width: 46rem;

	margin: 0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			2rem,
			3.2vw,
			3rem
		);

	font-weight:
		800;

	line-height:
		1.05;

	letter-spacing:
		-0.03em;

	text-wrap:
		balance;
}


/* ==================================================
   INTRO
   ================================================== */

.blatte-contatto__intro {
	width: 100%;
	max-width: 46rem;

	margin:
		0.9rem 0 0;

	color:
		var(--blatte-green);

	font-size:
		clamp(
			0.94rem,
			1.25vw,
			1.04rem
		);

	line-height:
		1.65;

	opacity:
		0.83;

	text-wrap:
		pretty;
}


/* ==================================================
   VANTAGGI
   ================================================== */

.blatte-contatto__vantaggi {
	display: flex !important;

	flex-direction: column;

	gap: 0;

	width: 100%;
	max-width: 46rem;

	margin:
		1rem 0 0;

	padding: 0;

	list-style: none;
}


.blatte-contatto__vantaggi li {
	display: flex;

	align-items: flex-start;

	gap: 0.65rem;

	width: 100%;

	padding:
		0.7rem 0;

	border-top:
		1px solid rgb(46 68 56 / 10%);
}


.blatte-contatto__vantaggi li:last-child {
	padding-bottom: 0;
}


.blatte-contatto__vantaggio-icon {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 1.55rem;
	height: 1.55rem;

	flex:
		0 0 1.55rem;

	margin-top:
		0.04rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);

	border-radius:
		50%;

	font-size:
		0.66rem;

	font-weight:
		800;
}


.blatte-contatto__vantaggi li > div {
	flex:
		1 1 auto;

	min-width: 0;
}


.blatte-contatto__vantaggi strong {
	display: block;

	color:
		var(--blatte-dark);

	font-size:
		0.82rem;

	font-weight:
		700;

	line-height:
		1.38;
}


.blatte-contatto__vantaggi small {
	display: block;

	margin-top:
		0.1rem;

	color:
		var(--blatte-green);

	font-size:
		0.72rem;

	line-height:
		1.45;

	opacity:
		0.75;
}


/* ==================================================
   TRUST BOX
   ================================================== */

.blatte-contatto__trust {
	display: flex;

	align-items: flex-start;

	gap: 0.7rem;

	width: 100%;
	max-width: 46rem;

	margin-top:
		1rem;

	padding:
		0.85rem;

	background:
		var(--blatte-white);

	border:
		1px solid rgb(21 148 139 / 18%);

	border-left:
		4px solid var(--blatte-teal);

	border-radius:
		0.65rem;

	box-shadow:
		0 0.4rem 1.2rem
		rgb(29 35 39 / 5%);
}


.blatte-contatto__trust-icon {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 2.35rem;
	height: 2.35rem;

	flex:
		0 0 2.35rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);

	border-radius:
		50%;
}


.blatte-contatto__trust-icon svg {
	width: 1.2rem;
	height: 1.2rem;

	fill: none;

	stroke:
		currentColor;

	stroke-width:
		1.8;

	stroke-linecap:
		round;

	stroke-linejoin:
		round;
}


.blatte-contatto__trust p {
	display: flex;

	flex:
		1 1 auto;

	flex-direction: column;

	gap: 0.15rem;

	min-width: 0;

	margin: 0;
}


.blatte-contatto__trust strong {
	color:
		var(--blatte-dark);

	font-size:
		0.82rem;

	font-weight:
		700;

	line-height:
		1.38;
}


.blatte-contatto__trust p > span {
	color:
		var(--blatte-dark);

	font-size:
		0.72rem;

	line-height:
		1.48;

	opacity:
		0.77;
}


/* ==================================================
   FORM CARD
   ================================================== */

.blatte-contatto__form-card {
	display: flex !important;

	flex-direction: column;

	align-items: stretch;
	justify-content: flex-start;

	width: 100%;
	min-width: 0;

	scroll-margin-top:
		2rem;

	padding:
		clamp(
			1.1rem,
			2vw,
			1.5rem
		);

	color:
		var(--blatte-dark);

	background:
		var(--blatte-white);

	border:
		1px solid rgb(46 68 56 / 13%);

	border-top:
		5px solid var(--blatte-teal);

	border-radius:
		0.85rem;

	box-shadow:
		0 0.8rem 2rem
		rgb(29 35 39 / 10%);
}


/* ==================================================
   FORM HEADER
   ================================================== */

.blatte-contatto__form-header {
	width: 100%;

	margin-bottom:
		0.9rem;
}


.blatte-contatto__form-eyebrow {
	margin:
		0 0 0.28rem;

	color:
		var(--blatte-teal);

	font-size:
		0.64rem;

	font-weight:
		700;

	line-height:
		1.3;

	letter-spacing:
		0.05em;

	text-transform:
		uppercase;
}


.blatte-contatto__form-header h2 {
	margin: 0;

	color:
		var(--blatte-dark);

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			1.3rem,
			1.8vw,
			1.7rem
		);

	font-weight:
		800;

	line-height:
		1.1;

	letter-spacing:
		-0.018em;

	text-wrap:
		balance;
}


.blatte-contatto__form-header > p:last-child {
	margin:
		0.5rem 0 0;

	color:
		var(--blatte-green);

	font-size:
		0.76rem;

	line-height:
		1.5;

	opacity:
		0.8;
}


/* ==================================================
   FORM SHORTCODE
   ================================================== */

.blatte-contatto__form-shortcode {
	display: block;

	width: 100%;
	max-width: 100%;

	min-width: 0;
}


.blatte-contatto__form-shortcode form {
	display: block;

	width: 100%;
	max-width: 100%;

	min-width: 0;

	margin: 0;
}


.blatte-contatto__form-shortcode label {
	color:
		var(--blatte-green);

	font-size:
		0.75rem;

	font-weight:
		600;

	line-height:
		1.4;
}


/* ==================================================
   CAMPI FORM
   ================================================== */

.blatte-contatto__form-shortcode input[type="text"],
.blatte-contatto__form-shortcode input[type="email"],
.blatte-contatto__form-shortcode input[type="tel"],
.blatte-contatto__form-shortcode input[type="number"],
.blatte-contatto__form-shortcode input[type="date"],
.blatte-contatto__form-shortcode input[type="url"],
.blatte-contatto__form-shortcode select,
.blatte-contatto__form-shortcode textarea {
	display: block;

	width: 100%;
	max-width: 100%;

	min-height:
		2.85rem;

	padding:
		0.65rem 0.75rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-white);

	border:
		1px solid rgb(46 68 56 / 24%);

	border-radius:
		0.42rem;

	font: inherit;

	font-size:
		0.9rem;

	outline: none;

	box-shadow: none;

	transition:
		border-color 180ms ease,
		box-shadow 180ms ease;
}


.blatte-contatto__form-shortcode textarea {
	min-height:
		5.5rem;

	resize:
		vertical;
}


.blatte-contatto__form-shortcode input::placeholder,
.blatte-contatto__form-shortcode textarea::placeholder {
	color:
		var(--blatte-green);

	opacity:
		0.48;
}


.blatte-contatto__form-shortcode input:focus,
.blatte-contatto__form-shortcode select:focus,
.blatte-contatto__form-shortcode textarea:focus {
	border-color:
		var(--blatte-teal);

	box-shadow:
		0 0 0 3px
		rgb(21 148 139 / 12%);
}


.blatte-contatto__form-shortcode input[type="checkbox"],
.blatte-contatto__form-shortcode input[type="radio"] {
	accent-color:
		var(--blatte-teal);
}


/* ==================================================
   SUBMIT
   ================================================== */

.blatte-contatto__form-shortcode button[type="submit"],
.blatte-contatto__form-shortcode input[type="submit"] {
	display: block;

	width: 100%;
	max-width: 100%;

	min-height:
		3rem;

	padding:
		0.7rem 0.9rem;

	color:
		var(--blatte-dark) !important;

	background:
		var(--blatte-teal-light) !important;

	border:
		2px solid var(--blatte-teal-light) !important;

	border-radius:
		0.45rem;

	font: inherit;

	font-size:
		0.86rem;

	font-weight:
		800;

	cursor:
		pointer;

	transition:
		color 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease;
}


.blatte-contatto__form-shortcode button[type="submit"]:hover,
.blatte-contatto__form-shortcode input[type="submit"]:hover {
	color:
		var(--blatte-white) !important;

	background:
		var(--blatte-orange) !important;

	border-color:
		var(--blatte-orange) !important;

	transform:
		translateY(-1px);
}


/* ==================================================
   SECURITY
   ================================================== */

.blatte-contatto__security {
	display: flex;

	align-items: flex-start;
	justify-content: center;

	gap: 0.3rem;

	width: 100%;

	margin:
		0.65rem 0 0;

	color:
		var(--blatte-green);

	font-size:
		0.62rem;

	line-height:
		1.4;

	text-align:
		center;

	opacity:
		0.68;
}


/* ==================================================
   HOOK FINALE

   Flexbox anziché grid.
   ================================================== */

.blatte-contatto__final-hook {
	position: relative;

	display: flex !important;

	flex-direction: column;

	align-items: flex-start;
	justify-content: flex-start;

	gap: 0.8rem;

	margin-top:
		clamp(
			1.25rem,
			2.5vw,
			1.8rem
		);

	padding:
		clamp(
			1rem,
			2vw,
			1.4rem
		);

	overflow: hidden;

	color:
		var(--blatte-white);

	background:
		radial-gradient(
			circle at 100% 0,
			rgb(224 107 68 / 25%),
			transparent 22rem
		),
		linear-gradient(
			135deg,
			var(--blatte-dark),
			var(--blatte-green)
		);

	border:
		1px solid rgb(45 176 166 / 22%);

	border-radius:
		0.85rem;

	box-shadow:
		0 0.75rem 1.8rem
		rgb(29 35 39 / 13%);
}


.blatte-contatto__final-hook::after {
	content: "";

	position: absolute;

	right: -5rem;
	bottom: -7rem;

	width: 17rem;
	height: 17rem;

	border:
		1px solid rgb(45 176 166 / 13%);

	border-radius:
		50%;

	pointer-events:
		none;
}


/* ==================================================
   HOOK ICON
   ================================================== */

.blatte-contatto__final-hook-icon {
	position: relative;

	z-index: 1;

	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 3.1rem;
	height: 3.1rem;

	flex:
		0 0 3.1rem;

	color:
		var(--blatte-dark);

	background:
		var(--blatte-teal-light);

	border-radius:
		50%;
}


.blatte-contatto__final-hook-icon svg {
	width: 1.5rem;
	height: 1.5rem;

	fill: none;

	stroke:
		currentColor;

	stroke-width:
		1.8;

	stroke-linecap:
		round;

	stroke-linejoin:
		round;
}


/* ==================================================
   HOOK CONTENT
   ================================================== */

.blatte-contatto__final-hook-content {
	position: relative;

	z-index: 1;

	flex:
		1 1 auto;

	min-width: 0;
}


.blatte-contatto__final-hook-label {
	margin:
		0 0 0.22rem;

	color:
		var(--blatte-orange);

	font-size:
		0.63rem;

	font-weight:
		700;

	line-height:
		1.3;

	letter-spacing:
		0.055em;

	text-transform:
		uppercase;
}


.blatte-contatto__final-hook h2 {
	width: 100%;
	max-width: 52rem;

	margin: 0;

	color:
		var(--blatte-white);

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		clamp(
			1.15rem,
			1.7vw,
			1.6rem
		);

	font-weight:
		800;

	line-height:
		1.15;

	letter-spacing:
		-0.018em;

	text-wrap:
		balance;
}


.blatte-contatto__final-hook-content >
p:last-child {
	width: 100%;
	max-width: 52rem;

	margin:
		0.45rem 0 0;

	color:
		var(--blatte-white);

	font-size:
		0.74rem;

	line-height:
		1.52;
}


.blatte-contatto__final-hook-content >
p:last-child strong {
	color:
		var(--blatte-white);

	font-weight:
		700;
}


/* ==================================================
   CTA HOOK
   ================================================== */

.blatte-contatto__final-hook-cta {
	position: relative;

	z-index: 1;

	display: inline-flex;

	align-items: center;
	justify-content: center;

	gap: 0.5rem;

	width: 100%;
	max-width: 17rem;

	padding:
		0.65rem 0.85rem;

	color:
		#FFFFFF;

	background:
		var(--blatte-teal-light);

	border:
		2px solid var(--blatte-teal-light);

	border-radius:
		0.48rem;

	font-family:
		"Phudu",
		sans-serif;

	font-size:
		18px;

	font-weight:
		700;

	line-height:
		1.3;

	text-align:
		center;

	text-decoration:
		none !important;

	transition:
		color 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease,
		transform 180ms ease;
}


.blatte-contatto__final-hook-cta svg {
	width:
		1rem;

	height:
		1rem;

	flex:
		0 0 auto;

	fill:
		none;

	stroke:
		currentColor;

	stroke-width:
		1.8;

	stroke-linecap:
		round;

	stroke-linejoin:
		round;

	transition:
		transform 180ms ease;
}


.blatte-contatto__final-hook-cta:hover {
	color:
		var(--blatte-white) !important;

	background:
		var(--blatte-orange);

	border-color:
		var(--blatte-orange);

	transform:
		translateY(-2px);
}


.blatte-contatto__final-hook-cta:hover svg {
	transform:
		translateX(3px);
}


/* ==================================================
   DESKTOP

   Copy 48%
   Form 52%

   La form riceve leggermente più spazio
   perché è l'elemento di conversione principale.
   ================================================== */

@media (min-width: 1024px) {

	.blatte-contatto__layout {
		flex-direction:
			row;

		align-items:
			flex-start;

		justify-content:
			space-between;

		gap:
			clamp(
				1.75rem,
				3vw,
				2.75rem
			);
	}


	.blatte-contatto__copy {
		flex:
			1 1 48%;

		width:
			auto;

		min-width:
			0;
	}


	.blatte-contatto__form-card {
		flex:
			1 1 52%;

		width:
			auto;

		min-width:
			0;

		align-self:
			flex-start;
	}


	/* ----------------------------------------------
	   HOOK DESKTOP

	   Icona | contenuto | CTA
	   ---------------------------------------------- */

	.blatte-contatto__final-hook {
		flex-direction:
			row;

		align-items:
			center;

		gap:
			1rem;
	}


	.blatte-contatto__final-hook-content {
		flex:
			1 1 auto;
	}


	.blatte-contatto__final-hook-cta {
		flex:
			0 0 auto;

		width:
			auto;

		min-width:
			14rem;

		max-width:
			17rem;
	}

}


/* ==================================================
   DESKTOP AMPIO
   ================================================== */

@media (min-width: 1280px) {

	.blatte-contatto__copy {
		flex-basis:
			46%;
	}


	.blatte-contatto__form-card {
		flex-basis:
			54%;
	}

}


/* ==================================================
   TABLET
   ================================================== */

@media (
	min-width: 700px
) and (
	max-width: 1023px
) {

	.blatte-contatto__layout {
		flex-direction:
			column;
	}


	.blatte-contatto__copy,
	.blatte-contatto__form-card {
		width:
			100%;

		max-width:
			none;
	}


	/*
	 * Hook tablet:
	 * icona + contenuto,
	 * CTA sotto al contenuto.
	 */

	.blatte-contatto__final-hook {
		flex-direction:
			row;

		flex-wrap:
			wrap;

		align-items:
			flex-start;
	}


	.blatte-contatto__final-hook-content {
		flex:
			1 1
			calc(
				100% - 4.5rem
			);
	}


	.blatte-contatto__final-hook-cta {
		margin-left:
			4.1rem;
	}

}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 699px) {

	.blatte-contatto__layout {
		flex-direction:
			column;

		gap:
			1.3rem;
	}


	.blatte-contatto__copy,
	.blatte-contatto__form-card {
		width:
			100%;

		max-width:
			none;
	}


	.blatte-contatto__heading {
		max-width:
			100%;

		font-size:
			clamp(
				1.7rem,
				8vw,
				2.3rem
			);

		line-height:
			1.07;
	}


	.blatte-contatto__intro {
		max-width:
			100%;

		margin-top:
			0.75rem;

		font-size:
			0.92rem;
	}


	.blatte-contatto__eyebrow {
		border-radius:
			0.55rem;
	}


	.blatte-contatto__vantaggi,
	.blatte-contatto__trust {
		max-width:
			100%;
	}


	.blatte-contatto__form-card {
		padding:
			1rem;
	}


	/* ----------------------------------------------
	   HOOK MOBILE
	   ---------------------------------------------- */

	.blatte-contatto__final-hook {
		flex-direction:
			column;

		align-items:
			flex-start;

		gap:
			0.7rem;

		margin-top:
			1.15rem;

		padding:
			0.95rem;
	}


	.blatte-contatto__final-hook-icon {
		width:
			2.8rem;

		height:
			2.8rem;

		flex-basis:
			2.8rem;
	}


	.blatte-contatto__final-hook-cta {
		width:
			100%;

		max-width:
			none;
	}

}


/* ==================================================
   MOBILE MOLTO PICCOLO
   ================================================== */

@media (max-width: 380px) {

	.blatte-contatto__trust {
		flex-direction:
			column;
	}

}


/* ==================================================
   FLOATING BAR
   ================================================== */

.blatte-mobile-bar,
.blatte-mobile-bar-spacer {
	display:
		none;
}


/* ==================================================
   FLOATING BAR MOBILE
   ================================================== */

@media ( min-width: 1024px ) {

	.blatte-mobile-bar {
		position:
			fixed;

		z-index:
			999;

		right:
			0;

		bottom:
			0;

		left:
			0;

		display:
			flex !important;

		align-items:
			stretch;

		gap:
			0.4rem;

		padding:
			0.5rem
			max(
				0.5rem,
				env(safe-area-inset-right)
			)
			calc(
				0.5rem +
				env(safe-area-inset-bottom)
			)
			max(
				0.5rem,
				env(safe-area-inset-left)
			);

		background:
			rgb(255 255 255 / 96%);

		border-top:
			1px solid rgb(46 68 56 / 14%);

		box-shadow:
			0 -0.6rem 1.8rem
			rgb(29 35 39 / 13%);

		backdrop-filter:
			blur(10px);
	}


	.blatte-mobile-bar__button {
		display:
			flex;

		flex:
			1 1 0;

		align-items:
			center;

		justify-content:
			center;

		gap:
			0.4rem;

		min-width:
			0;

		min-height:
			3rem;

		padding:
			0.55rem 0.45rem;

		border:
			2px solid transparent;

		border-radius:
			0.5rem;

		font-family:
			"Phudu",
			sans-serif;

		font-size:
			0.65rem;

		font-weight:
			700;

		line-height:
			1.2;

		text-align:
			center;

		text-decoration:
			none !important;
	}


	.blatte-mobile-bar__button svg {
		width:
			1.15rem;

		height:
			1.15rem;

		flex:
			0 0 auto;

		fill:
			none;

		stroke:
			currentColor;

		stroke-width:
			1.8;

		stroke-linecap:
			round;

		stroke-linejoin:
			round;
	}


	.blatte-mobile-bar__button--whatsapp {
		color:
			#ffffff !important;

		background:
			#15948b;

		border-color:
			#15948b;
	}


	.blatte-mobile-bar__button--email {
		color:
			#ffffff !important;

		background:
			#e06b44;

		border-color:
			#e06b44;
	}


	.blatte-mobile-bar__button:active {
		transform:
			scale(0.98);
	}


	.blatte-mobile-bar__button:focus-visible {
		outline:
			3px solid #1d2327;

		outline-offset:
			2px;
	}


	/*
	 * Evita che la floating bar copra
	 * l'ultima parte della pagina.
	 */

	.blatte-mobile-bar-spacer {
		display:
			block;

		height:
			calc(
				4.6rem +
				env(safe-area-inset-bottom)
			);
	}

}


/* ==================================================
   ACCESSIBILITÀ
   ================================================== */

@media (prefers-reduced-motion: reduce) {

	.blatte-contatto__form-shortcode button,
	.blatte-contatto__form-shortcode input[type="submit"],
	.blatte-contatto__final-hook-cta,
	.blatte-contatto__final-hook-cta svg,
	.blatte-mobile-bar__button {
		transition:
			none;
	}


	.blatte-contatto__form-shortcode button:hover,
	.blatte-contatto__form-shortcode input[type="submit"]:hover,
	.blatte-contatto__final-hook-cta:hover,
	.blatte-contatto__final-hook-cta:hover svg,
	.blatte-mobile-bar__button:active {
		transform:
			none;
	}

}

/* --------------------------------------------------
   CORREZIONI CONTRASTO

   Stesso difetto del blocco zone: il titolo del riquadro
   scuro non ha classe e prende il verde degli heading di
   Elementor. In piu' il bottone finale e' un <a>, quindi
   `.elementor-kit-29 a` (0,1,1) batte la regola di classe
   e lo lascia verde su verde-acqua.
   -------------------------------------------------- */

.blatte-contatto .blatte-contatto__final-hook h2,
.blatte-contatto .blatte-contatto__final-hook h3 {
	color: var(--blatte-white);
}

.blatte-contatto a.blatte-contatto__final-hook-cta,
.blatte-contatto a.blatte-contatto__final-hook-cta span {
	color: var(--blatte-white);
}

/* --------------------------------------------------
   RIQUADRO FINALE UNIFORMATO ALLA GARANZIA
   -------------------------------------------------- */

.blatte-contatto__final-hook {
	padding: 28.8px;

	border-radius: 14.4px;
}


/* --------------------------------------------------
   ICONA DEL RIQUADRO FINALE

   Era un cerchio verde-acqua vuoto: ci va il marchio,
   su fondo bianco perche' la favicon e' dello stesso
   verde-acqua del cerchio.
   -------------------------------------------------- */

.blatte-contatto__final-hook-icon {
	background-color: var(--blatte-white);

	background-image:
		url("/wp-content/uploads/2026/04/blatte-favicon-300x300.png");

	background-repeat: no-repeat;
	background-position: center;
	background-size: 62%;

	border: 2px solid rgb(45 176 166 / 35%);
}

/* --------------------------------------------------
   TESTO DI LETTURA A 18px
   Heading non toccati; <small> subordinati ma a 16px.
   -------------------------------------------------- */

.blatte-contatto p,
.blatte-contatto li,
.blatte-contatto td,
.blatte-contatto dd,
.blatte-contatto dt {
	font-size: 18px;
}

.blatte-contatto small {
	font-size: 16px;
}

/* NOTA: la barra contatti fissa e' passata da mobile-only a DESKTOP-only
   (2026-08-21, su richiesta). Il tema ha gia' una propria barra contatti
   su mobile (Email/Chiama/WhatsApp): le due si sovrapponevano. La soglia
   1024px e' la stessa che questo blocco usa per il layout desktop. */

/* ======================================================================
   MARGINI LATERALI SU MOBILE

   Stesso difetto della sezione problema: a 390px l'heading partiva da
   0px e l'intro arrivava a 2px dal bordo destro. `.blatte-contatto__layout`
   e `.blatte-contatto__final-hook` sono a `width: 100%`.

   Nota: `.blatte-contatto__final-hook` non e' piu' in questa sezione
   (il markup e' passato al blocco dove-operiamo), ma la regola resta
   qui perche' qui vive il resto del suo stile; e' innocua se l'elemento
   non c'e'.
   ====================================================================== */

@media (max-width: 1023px) {

	.blatte-contatto__layout,
	.blatte-contatto__final-hook {
		width: min(1400px, calc(100% - 2rem));

		margin-inline: auto;
	}

}

/* ----------------------------------------------------------------------
   BARRA CONTATTI FISSA: TELEFONO, CORPO PIU' GRANDE, TRE CANALI

   Il testo dei pulsanti era a 10,4px: illeggibile per una barra che deve
   farsi notare. Portato a 1,15rem (~17px) con l'altezza della barra e lo
   spaziatore adeguati, altrimenti il testo tocca i bordi e il contenuto
   di pagina finisce sotto la barra.

   Il numero verde ha un colore proprio, distinto dal verde di WhatsApp e
   dall'arancione dell'email: tre canali, tre colori, nessuno che si
   confonde con l'altro.
   ---------------------------------------------------------------------- */

@media ( min-width: 1024px ) {

	.blatte-mobile-bar__button {
		min-height: 3.6rem;

		font-size: 1.15rem;
		letter-spacing: 0.01em;
	}

	.blatte-mobile-bar__button svg {
		width: 1.5rem;
		height: 1.5rem;
	}

	.blatte-mobile-bar__button--telefono {
		color: #FFFFFF !important;
		background: #0f6f68;
		border-color: #0f6f68;
	}

	.blatte-mobile-bar-spacer {
		height: calc( 5.4rem + env(safe-area-inset-bottom) );
	}

}

/* ----------------------------------------------------------------------
   CONTRASTO DEL PULSANTE EMAIL

   Bianco su #e06b44 dava 3,30: sotto la soglia 4,5, e ora che il corpo e'
   quasi il doppio la scritta si legge molto piu' a lungo. Lo stesso
   arancione con testo scuro arriva a 4,81 - identico alla CTA principale
   del pannello, quindi la scelta e' anche coerente.
   ---------------------------------------------------------------------- */

@media ( min-width: 1024px ) {

	.blatte-mobile-bar__button--email,
	.blatte-mobile-bar__button--email span {
		color: var(--blatte-dark, #1d2327) !important;
	}

	.blatte-mobile-bar__button--email svg {
		stroke: var(--blatte-dark, #1d2327);
	}

}

/* ----------------------------------------------------------------------
   NIENTE FASCIA BIANCA FRA L'ULTIMA SEZIONE E IL FOOTER

   La sezione contatti finiva a 9080 e il footer partiva a 9218: in mezzo
   138px di `body` bianco, perche' tutti i contenitori Elementor che la
   avvolgono sono trasparenti.

   Alzare il padding della sezione non serviva: i contenitori la avvolgono
   e sarebbero cresciuti con lei, lasciando la fascia identica. Colorare il
   `body` avrebbe funzionato, ma `blatte-costi` e `blatte-faq-toggle` sono
   trasparenti e si sarebbero tinti anche loro.

   Un'ombra piena estende il colore sotto il bordo della sezione senza
   occupare spazio nel flusso e senza richiedere `position: relative` (che
   cambierebbe il blocco contenitore per i discendenti in posizione
   assoluta). Il footer, opaco e successivo, copre l'eccedenza.

   #F9F9F9 e' il colore su cui chiude il gradiente della sezione
   (rgba(46,68,56,0.03) composto su bianco), quindi la giunzione non si
   vede.
   ---------------------------------------------------------------------- */

.blatte-contatto {
	box-shadow: 0 260px 0 0 #F9F9F9;
}

