/* Banner dei cookie, riquadri dei contenuti esterni e documenti legali
   (BBL_Consenso e BBL_Legale). Il tema e' Twenty Twenty: i suoi pulsanti
   sono maiuscoli, rossi e grandi, e i suoi iframe sono display:block anche
   con hidden. Qui ogni regola ha abbastanza specificita' per non subirli. */

.bbl-consenso[hidden],
.bbl-consenso [hidden],
button.bbl-consenso-riapri[hidden],
.bbl-esterno iframe[hidden] {
	display: none !important;
}

.bbl-consenso {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	/* Sopra i popup del sito: Popup Maker mette il suo a 1999999999, e la
	   scelta sui cookie viene prima di qualsiasi avviso. */
	z-index: 2000000100;
	display: flex;
	justify-content: center;
	pointer-events: none;
	outline: none;
}

.bbl-consenso .bbl-consenso-scatola {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 660px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	padding: 20px 20px 16px;
	border-radius: 10px;
	background: #fff;
	color: #1a1a1a;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.28);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	letter-spacing: normal;
	text-align: left;
	pointer-events: auto;
}

.bbl-consenso .bbl-consenso-titolo {
	margin: 0 36px 6px 0;
	font-size: 17px;
	font-weight: 700;
}

.bbl-consenso .bbl-consenso-testo {
	margin: 0 0 14px;
}

.bbl-consenso .bbl-consenso-testo a {
	color: #cd2653;
	text-decoration: underline;
}

.bbl-consenso .bbl-consenso-x {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 38px;
	height: 38px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #1a1a1a;
	font-size: 26px;
	font-weight: 400;
	line-height: 1;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
}

.bbl-consenso .bbl-consenso-x:hover,
.bbl-consenso .bbl-consenso-x:focus {
	background: #efefef;
	text-decoration: none;
}

.bbl-consenso .bbl-consenso-scelte {
	margin: 0 0 14px;
	border-top: 1px solid #e3e3e3;
}

.bbl-consenso .bbl-consenso-voce {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 0;
	padding: 10px 0;
	border-bottom: 1px solid #e3e3e3;
	font-size: 14px;
	font-weight: 400;
	cursor: pointer;
}

.bbl-consenso .bbl-consenso-voce input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 3px 0 0;
}

.bbl-consenso .bbl-consenso-azioni {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: flex-end;
}

.bbl-consenso .bbl-consenso-bottone,
.bbl-legale.bbl-legale .bbl-consenso-bottone,
.bbl-esterno .bbl-esterno-mostra {
	min-height: 44px;
	margin: 0;
	padding: 9px 18px;
	border: 2px solid #1a1a1a;
	border-radius: 6px;
	background: #1a1a1a;
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	cursor: pointer;
}

.bbl-consenso .bbl-consenso-bottone:hover,
.bbl-consenso .bbl-consenso-bottone:focus,
.bbl-legale.bbl-legale .bbl-consenso-bottone:hover,
.bbl-legale.bbl-legale .bbl-consenso-bottone:focus,
.bbl-esterno .bbl-esterno-mostra:hover,
.bbl-esterno .bbl-esterno-mostra:focus {
	border-color: #cd2653;
	background: #cd2653;
	color: #fff;
	text-decoration: none;
}

.bbl-consenso .bbl-consenso-link {
	min-height: 44px;
	margin: 0 auto 0 0;
	padding: 9px 4px;
	border: 0;
	background: transparent;
	color: #1a1a1a;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: underline;
	cursor: pointer;
}

/* A destra: in basso a sinistra, sul telefono, c'e' il pulsante verde
   di Call Now Button, che lo copriva. */
button.bbl-consenso-riapri {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 99980;
	margin: 0;
	padding: 7px 14px;
	border: 1px solid #c9c9c9;
	border-radius: 999px;
	background: #fff;
	color: #1a1a1a;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	cursor: pointer;
}

button.bbl-consenso-riapri:hover,
button.bbl-consenso-riapri:focus {
	border-color: #1a1a1a;
	text-decoration: none;
}

/* Sul telefono il pulsante verde di Call Now Button (in basso a sinistra,
   sopra a tutto) copriva "Accetta tutto": il banner sale sopra di lui,
   e il pulsante per chiamare resta usabile. */
@media (max-width: 650px) {
	.bbl-consenso {
		bottom: 92px;
	}
}

@media (max-width: 520px) {
	.bbl-consenso {
		left: 8px;
		right: 8px;
	}

	.bbl-consenso .bbl-consenso-azioni .bbl-consenso-bottone {
		flex: 1 1 100%;
	}

	.bbl-consenso .bbl-consenso-link {
		flex: 1 1 100%;
		margin: 0;
		text-align: center;
	}
}

@media print {
	.bbl-consenso,
	button.bbl-consenso-riapri {
		display: none !important;
	}
}

/* --- Contenuti di altri siti in attesa del consenso ---------------------- */

.bbl-esterno {
	position: relative;
}

.bbl-esterno .bbl-esterno-avviso {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 12px;
	min-height: 260px;
	padding: 24px;
	border: 1px solid #ddd;
	background: #f3f1ec;
	color: #1a1a1a;
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
}

.bbl-esterno .bbl-esterno-avviso p {
	margin: 0;
	line-height: 1.5;
}

.bbl-esterno .bbl-esterno-azioni {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	align-items: center;
}

.bbl-esterno .bbl-esterno-azioni a {
	color: #1a1a1a;
	text-decoration: underline;
}

/* --- Documenti legali: privacy e cookie policy ---------------------------- */

/* Scheda scura come Contatti, lista allergeni e piè di pagina: il titolare
   ha scartato il pannello chiaro («piu moderno e in linea con il tema») e
   vuole documenti «molto leggibili». Per i testi lunghi il fondo e' quasi
   pieno (le foglie dietro non disturbano), il testo e' quasi bianco invece
   che bianco puro, carattere Inter del tema a 17 px con interlinea ampia.
   Il colore passa a tutto il contenuto con la classe doppia, piu' forte
   delle regole del tema. */
.bbl-legale {
	box-sizing: border-box;
	max-width: 860px;
	margin: 0 auto;
	padding: 52px 56px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 14px;
	background: rgba(14, 14, 14, 0.94);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
	color: #ecebe7;
	font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
	font-size: 17px;
	line-height: 1.7;
	text-align: left;
}

/* Twenty Twenty stringe i figli di .entry-content a 58rem; con alignwide
   si allarga, e qui si ferma alla misura della scheda. */
.entry-content > .bbl-legale.alignwide {
	max-width: 860px;
}

.bbl-legale.bbl-legale * {
	color: inherit;
}

.bbl-legale.bbl-legale h2,
.bbl-legale.bbl-legale h3,
.bbl-legale.bbl-legale h4,
.bbl-legale.bbl-legale strong,
.bbl-legale.bbl-legale summary {
	color: #fff;
}

.bbl-legale h2,
.bbl-legale h3,
.bbl-legale h4,
.bbl-legale p,
.bbl-legale li,
.bbl-legale th,
.bbl-legale td,
.bbl-legale dt,
.bbl-legale dd,
.bbl-legale summary {
	font-family: inherit;
}

.bbl-legale h2 {
	margin: 2.4em 0 0.7em;
	font-size: 1.55em;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

/* Il trattino rosso sopra ogni capitolo, l'accento del tema. */
.bbl-legale h2::before {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	margin: 0 0 16px;
	border-radius: 2px;
	background: #cd2653;
}

.bbl-legale h3 {
	margin: 1.9em 0 0.5em;
	font-size: 1.18em;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -0.005em;
}

.bbl-legale h4 {
	margin: 0 0 0.3em;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: normal;
}

.bbl-legale p,
.bbl-legale ul,
.bbl-legale ol {
	margin: 0 0 1em;
}

.bbl-legale li {
	margin: 0 0 0.5em;
}

.bbl-legale li::marker {
	color: #cd2653;
}

.bbl-legale.bbl-legale a {
	color: #fff;
	text-decoration: underline;
	text-decoration-color: #cd2653;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	word-break: break-word;
}

.bbl-legale.bbl-legale a:hover,
.bbl-legale.bbl-legale a:focus {
	color: #cd2653;
}

.bbl-legale .bbl-legale-intro {
	padding: 20px 24px;
	border-left: 4px solid #cd2653;
	border-radius: 0 12px 12px 0;
	background: rgba(255, 255, 255, 0.06);
}

.bbl-legale .bbl-legale-intro p:last-child {
	margin-bottom: 0;
}

.bbl-legale .bbl-legale-griglia {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
	margin: 0 0 1.5em;
}

.bbl-legale .bbl-legale-voce,
.bbl-legale .bbl-legale-contatti,
.bbl-legale .bbl-legale-servizio,
.bbl-legale details {
	box-sizing: border-box;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.04);
}

.bbl-legale .bbl-legale-voce {
	padding: 20px;
	font-size: 15px;
	line-height: 1.55;
}

.bbl-legale .bbl-legale-voce p {
	margin: 0 0 0.5em;
}

.bbl-legale .bbl-legale-voce p:last-child {
	margin-bottom: 0;
}

/* Le icone nei cerchi rossi, come in Contatti. */
.bbl-legale.bbl-legale .bbl-legale-icona {
	display: block;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	margin: 0 0 14px;
	padding: 10px;
	border: 2px solid #cd2653;
	border-radius: 50%;
	color: #cd2653;
}

.bbl-legale .bbl-legale-etichetta {
	display: inline-block;
	margin: 0 0 8px;
	padding: 3px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.bbl-legale.bbl-legale .bbl-legale-etichetta-consenso {
	background: #cd2653;
	color: #fff;
}

.bbl-legale.bbl-legale .bbl-legale-dati {
	color: #b9b7b2;
}

.bbl-legale .bbl-legale-contatti {
	padding: 18px 22px;
}

.bbl-legale .bbl-legale-contatti p:last-child {
	margin-bottom: 0;
}

.bbl-legale .bbl-legale-tabella {
	width: 100%;
	margin: 0 0 1.5em;
	overflow-x: auto;
	border-radius: 12px;
}

.bbl-legale.bbl-legale table {
	width: 100%;
	min-width: 560px;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.5;
}

.bbl-legale.bbl-legale th,
.bbl-legale.bbl-legale td {
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: transparent;
	text-align: left;
	vertical-align: top;
}

.bbl-legale.bbl-legale th {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	font-weight: 700;
}

.bbl-legale.bbl-legale tbody tr:nth-child(even) td {
	background: rgba(255, 255, 255, 0.025);
}

.bbl-legale.bbl-legale code {
	padding: 2px 6px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	font-size: 0.88em;
	white-space: nowrap;
}

.bbl-legale .bbl-legale-servizio {
	margin: 0 0 1.2em;
	padding: 18px 22px;
}

.bbl-legale .bbl-legale-servizio h4 {
	font-size: 1.05em;
}

.bbl-legale .bbl-legale-servizio dl {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 6px 16px;
	margin: 0.6em 0 0;
	font-size: 15px;
	line-height: 1.55;
}

.bbl-legale.bbl-legale .bbl-legale-servizio dt {
	color: #b9b7b2;
	font-weight: 600;
}

.bbl-legale .bbl-legale-servizio dd {
	margin: 0;
}

.bbl-legale details {
	margin: 1.5em 0;
	padding: 0 22px;
}

.bbl-legale summary {
	padding: 16px 0;
	font-weight: 700;
	cursor: pointer;
}

.bbl-legale summary::marker {
	color: #cd2653;
}

.bbl-legale details[open] summary {
	margin-bottom: 1em;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.bbl-legale.bbl-legale .bbl-legale-aggiornamento {
	margin-top: 2.5em;
	padding-top: 1em;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	color: #b9b7b2;
	font-size: 15px;
}

/* Il pulsante «Apri le preferenze cookie»: sulla scheda scura quello nero
   del banner sparirebbe, qui e' rosso come i pulsanti del tema. */
.bbl-legale.bbl-legale .bbl-consenso-bottone {
	border-color: #cd2653;
	background: #cd2653;
	color: #fff;
}

.bbl-legale.bbl-legale .bbl-consenso-bottone:hover,
.bbl-legale.bbl-legale .bbl-consenso-bottone:focus {
	border-color: #a81d42;
	background: #a81d42;
	color: #fff;
}

@media (max-width: 600px) {
	.bbl-legale {
		padding: 30px 20px;
		border-radius: 12px;
		font-size: 16px;
	}

	.bbl-legale h2 {
		font-size: 1.4em;
	}

	.bbl-legale .bbl-legale-servizio dl {
		grid-template-columns: 1fr;
	}

	.bbl-legale .bbl-legale-servizio dt {
		margin-top: 6px;
	}

	/* Sul telefono le tabelle diventano schede: una riga per scheda, ogni
	   valore con la sua etichetta sopra (data-etichetta nel modello), invece
	   di colonne strette da scorrere di lato che spezzano le parole. */
	.bbl-legale .bbl-legale-tabella {
		overflow: visible;
		border-radius: 0;
	}

	.bbl-legale.bbl-legale table,
	.bbl-legale.bbl-legale tbody,
	.bbl-legale.bbl-legale tr,
	.bbl-legale.bbl-legale td {
		display: block;
		width: auto;
		min-width: 0;
	}

	.bbl-legale.bbl-legale thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.bbl-legale.bbl-legale tr {
		margin: 0 0 12px;
		overflow: hidden;
		border: 1px solid rgba(255, 255, 255, 0.14);
		border-radius: 12px;
		background: rgba(255, 255, 255, 0.04);
	}

	.bbl-legale.bbl-legale td,
	.bbl-legale.bbl-legale tbody tr:nth-child(even) td {
		padding: 10px 16px;
		border: 0;
		border-top: 1px solid rgba(255, 255, 255, 0.08);
		background: transparent;
	}

	.bbl-legale.bbl-legale td:first-child {
		border-top: 0;
		background: rgba(255, 255, 255, 0.06);
		color: #fff;
		font-weight: 700;
	}

	.bbl-legale.bbl-legale td[data-etichetta]::before {
		content: attr(data-etichetta);
		display: block;
		margin: 0 0 2px;
		color: #b9b7b2;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.bbl-legale.bbl-legale td:first-child::before {
		display: none;
	}
}
