/* Blindo Privacy & Cookie
 *
 * Stile allineato al sito blindo.pro: fondo #0d1117 / #111827, testo bianco,
 * testo secondario #8899bb, sfumatura 135deg #2563ff → #00c8ff, raggio 8px,
 * carattere Inter. I colori arrivano dalle impostazioni come variabili CSS.
 *
 * I selettori partono da un id o da una classe sul body: così vincono sulle
 * regole generiche del tema per button, a e table, qualunque sia l'ordine di
 * caricamento dei fogli di stile.
 */

:root {
	--bpc-c1: #2563ff;
	--bpc-c2: #00c8ff;
	--bpc-bg: #0d1117;
	--bpc-bg-alt: #111827;
	--bpc-text: #ffffff;
	--bpc-muted: #8899bb;
	--bpc-line: rgba(0, 200, 255, 0.12);
	--bpc-radius: 8px;
	--bpc-grad: linear-gradient(135deg, var(--bpc-c1), var(--bpc-c2));
	--bpc-glow: rgba(37, 99, 255, 0.5);
	--bpc-font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ---------------------------------------------------------------- Banner */

#bpc-banner[hidden],
#bpc-reopen[hidden],
#bpc-banner .bpc-prefs[hidden],
#bpc-banner .bpc-btn[hidden] {
	display: none !important;
}

#bpc-banner {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 999999;
	box-sizing: border-box;
	max-width: 1040px;
	margin: 0 auto;
	padding: 28px 60px 28px 32px;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 20px 28px;
	background: var(--bpc-bg);
	color: var(--bpc-text);
	border: 1px solid var(--bpc-line);
	border-radius: 16px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55);
	font-family: var(--bpc-font);
	font-size: 15px;
	line-height: 1.6;
	text-align: left;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
}

#bpc-banner *,
#bpc-reopen {
	box-sizing: border-box;
}

#bpc-banner:focus {
	outline: none;
}

#bpc-banner .bpc-body {
	flex: 1 1 420px;
	min-width: 0;
}

#bpc-banner .bpc-title {
	margin: 0 0 8px;
	font-family: var(--bpc-font);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--bpc-text);
}

#bpc-banner .bpc-text {
	margin: 0;
	font-size: 15px;
	color: var(--bpc-muted);
}

#bpc-banner a,
#bpc-banner a:visited {
	color: var(--bpc-c2);
	text-decoration: underline;
	text-underline-offset: 3px;
}

#bpc-banner a:hover {
	color: var(--bpc-text);
}

/* Pulsanti: stessa forma dei pulsanti "Contattaci" del sito. */
#bpc-banner .bpc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

#bpc-banner button.bpc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin: 0;
	padding: 13px 26px;
	border: 0;
	border-radius: var(--bpc-radius);
	background: var(--bpc-grad);
	color: #fff;
	-webkit-text-fill-color: #fff;
	font-family: var(--bpc-font);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: none;
	transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Rifiuta e Accetta hanno lo stesso aspetto: nessuna scelta è messa in evidenza. */
#bpc-banner button.bpc-btn-solid:hover {
	background: var(--bpc-grad);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 8px 32px var(--bpc-glow);
	opacity: 0.9;
}

#bpc-banner button.bpc-btn-ghost {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: var(--bpc-text);
	-webkit-text-fill-color: var(--bpc-text);
}

#bpc-banner button.bpc-btn-ghost:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: var(--bpc-c2);
	color: var(--bpc-text);
	transform: translateY(-2px);
}

#bpc-banner button.bpc-close {
	position: absolute;
	top: 12px;
	right: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--bpc-radius);
	background: transparent;
	color: var(--bpc-muted);
	-webkit-text-fill-color: var(--bpc-muted);
	font-family: var(--bpc-font);
	font-size: 26px;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
}

#bpc-banner button.bpc-close:hover,
#bpc-banner button.bpc-close:focus {
	background: rgba(255, 255, 255, 0.08);
	color: var(--bpc-text);
	-webkit-text-fill-color: var(--bpc-text);
}

#bpc-banner button:focus-visible,
#bpc-banner a:focus-visible,
#bpc-banner input:focus-visible,
#bpc-reopen:focus-visible {
	outline: 2px solid var(--bpc-c2);
	outline-offset: 3px;
}

/* Preferenze per categoria. */
#bpc-banner .bpc-prefs {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--bpc-line);
	display: grid;
	gap: 14px;
}

#bpc-banner .bpc-pref label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-family: var(--bpc-font);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--bpc-text);
	cursor: pointer;
}

#bpc-banner .bpc-pref input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--bpc-c2);
}

#bpc-banner .bpc-pref-desc {
	display: block;
	margin: 2px 0 0 30px;
	font-size: 14px;
	color: var(--bpc-muted);
}

/* Pulsante fisso per riaprire le preferenze. */
#bpc-reopen {
	position: fixed;
	left: 16px;
	bottom: 16px;
	z-index: 999998;
	min-height: 40px;
	margin: 0;
	padding: 10px 18px;
	border: 1px solid var(--bpc-line);
	border-radius: var(--bpc-radius);
	background: var(--bpc-bg);
	color: var(--bpc-text);
	-webkit-text-fill-color: var(--bpc-text);
	font-family: var(--bpc-font);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.45);
	transition: border-color 0.2s, transform 0.2s;
}

#bpc-reopen:hover,
#bpc-reopen:focus {
	background: var(--bpc-bg);
	color: var(--bpc-text);
	border-color: var(--bpc-c2);
	transform: translateY(-2px);
}

/* ------------------------------------------------- Pagine delle informative */

/* Testata e fondo della pagina (struttura del tema Hello Elementor). */
body.bpc-policy-page {
	background: var(--bpc-bg);
}

body.bpc-policy-page #content.site-main {
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0;
	background: var(--bpc-bg-alt);
}

body.bpc-policy-page #content .page-header {
	margin: 0;
	padding: 72px 24px 64px;
	background: var(--bpc-bg);
	text-align: center;
}

body.bpc-policy-page #content .page-header::before {
	content: "// Informativa";
	display: block;
	margin: 0 0 20px;
	font-family: monospace, sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 4px;
	color: var(--bpc-c2);
}

body.bpc-policy-privacy #content .page-header::before {
	content: "// Privacy";
}

body.bpc-policy-cookie #content .page-header::before {
	content: "// Cookie";
}

body.bpc-policy-page #content .page-header .entry-title {
	max-width: 900px;
	margin: 0 auto;
	padding: 0;
	font-family: var(--bpc-font);
	font-size: clamp(36px, 6vw, 60px);
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0;
	color: var(--bpc-text);
}

body.bpc-policy-page #content .page-content {
	max-width: none;
	margin: 0;
	padding: 20px 24px 100px;
	background: var(--bpc-bg-alt);
}

/* Il riquadro del testo: stesso stile del riquadro del modulo contatti.
   Ha un fondo proprio, quindi resta leggibile anche con un altro tema. */
.bpc-policy {
	box-sizing: border-box;
	max-width: 900px;
	margin: 0 auto;
	padding: 44px 48px;
	background-color: var(--bpc-bg-alt);
	background-image: linear-gradient(rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.03));
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 16px;
	color: rgba(255, 255, 255, 0.72);
	font-family: var(--bpc-font);
	font-size: 16px;
	line-height: 1.7;
	text-align: left;
}

.bpc-policy p,
.bpc-policy li {
	margin: 0 0 14px;
	color: rgba(255, 255, 255, 0.72);
	font-family: var(--bpc-font);
	font-size: 16px;
	line-height: 1.7;
}

.bpc-policy > p:first-child {
	color: var(--bpc-muted);
	font-size: 14px;
}

.bpc-policy h2 {
	margin: 40px 0 14px;
	padding: 0;
	font-family: var(--bpc-font);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	color: var(--bpc-text);
}

.bpc-policy ul {
	margin: 0 0 14px;
	padding-left: 22px;
}

.bpc-policy li::marker {
	color: var(--bpc-c2);
}

.bpc-policy strong {
	color: var(--bpc-text);
	font-weight: 600;
}

.bpc-policy a,
.bpc-policy a:visited,
body.bpc-policy-page .page-content .bpc-policy a {
	color: var(--bpc-c2);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bpc-policy a:hover,
body.bpc-policy-page .page-content .bpc-policy a:hover {
	color: var(--bpc-text);
}

.bpc-policy table {
	width: 100%;
	margin: 18px 0 22px;
	border-collapse: collapse;
	background: transparent;
	font-size: 15px;
}

.bpc-policy table th,
.bpc-policy table td,
.bpc-policy table thead:first-child tr:first-child th {
	padding: 13px 16px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	background: transparent;
	color: rgba(255, 255, 255, 0.72);
	font-family: var(--bpc-font);
	line-height: 1.5;
	text-align: left;
	vertical-align: top;
}

.bpc-policy table thead th,
.bpc-policy table thead:first-child tr:first-child th {
	background: rgba(255, 255, 255, 0.05);
	color: var(--bpc-c2);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.bpc-policy table tbody > tr:nth-child(odd) > td,
.bpc-policy table tbody tr:hover > td {
	background: transparent;
}

.bpc-policy mark {
	padding: 1px 6px;
	border-radius: 4px;
	background: rgba(255, 196, 0, 0.18);
	color: #ffd866;
}

/* "Gestisci le preferenze sui cookie": pulsante come quelli del sito. */
.bpc-policy button.bpc-link,
button.bpc-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 6px 0;
	padding: 15px 32px;
	border: 0;
	border-radius: var(--bpc-radius);
	background: var(--bpc-grad);
	color: #fff;
	-webkit-text-fill-color: #fff;
	font-family: var(--bpc-font);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	white-space: normal;
	cursor: pointer;
	transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.bpc-policy button.bpc-link:hover,
.bpc-policy button.bpc-link:focus,
button.bpc-link:hover,
button.bpc-link:focus {
	background: var(--bpc-grad);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 8px 32px var(--bpc-glow);
	opacity: 0.9;
}

button.bpc-link:focus-visible {
	outline: 2px solid var(--bpc-c2);
	outline-offset: 3px;
}

/* ------------------------------------------------------------ Schermi piccoli */

@media (max-width: 767px) {
	#bpc-banner {
		left: 8px;
		right: 8px;
		bottom: 8px;
		padding: 24px 52px 20px 20px;
	}

	#bpc-banner .bpc-actions {
		width: 100%;
	}

	#bpc-banner button.bpc-btn {
		flex: 1 1 auto;
	}

	body.bpc-policy-page #content .page-header {
		padding: 48px 20px 40px;
	}

	body.bpc-policy-page #content .page-content {
		padding: 12px 12px 64px;
	}

	.bpc-policy {
		padding: 28px 20px;
	}

	.bpc-policy table {
		display: block;
		overflow-x: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	#bpc-banner button,
	#bpc-reopen,
	button.bpc-link {
		transition: none;
	}

	#bpc-banner button:hover,
	#bpc-reopen:hover,
	button.bpc-link:hover {
		transform: none;
	}
}

@media (prefers-reduced-motion: no-preference) {
	#bpc-banner:not([hidden]) {
		animation: bpc-in 0.25s ease-out;
	}
}

@keyframes bpc-in {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
