.pc-cb-banner {
	position: fixed !important;
	left: 0;
	right: 0;
	z-index: 2147483647 !important;
	background: var(--pc-cb-bg, #fff);
	color: var(--pc-cb-text, #1d2327);
	box-shadow: 0 0 24px rgba(0,0,0,.15);
	font-size: 14px;
	line-height: 1.5;
	opacity: 1;
	visibility: visible;
	transform: none;
	margin: 0;
}

.pc-cb-banner[hidden] { display: none !important; }
.pc-cb-banner:not([hidden]) { display: block !important; }

.pc-cb-pos-bottom { bottom: 0; }
.pc-cb-pos-top { top: 0; }
.pc-cb-pos-center {
	top: 50%;
	left: 50%;
	right: auto;
	transform: translate(-50%, -50%);
	max-width: 520px;
	width: 92%;
	border-radius: 12px;
}

.pc-cb-layout-box.pc-cb-pos-bottom,
.pc-cb-layout-box.pc-cb-pos-top {
	left: auto;
	right: 20px;
	width: 92%;
	border-radius: 12px;
}
.pc-cb-layout-box.pc-cb-pos-bottom { bottom: 20px; }
.pc-cb-layout-box.pc-cb-pos-top { top: 20px; }

.pc-cb-banner-inner {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
	padding: 20px 24px;
	max-width: var(--pc-cb-max-width, 90vw);
	margin: 0 auto;
}

.pc-cb-banner-content { flex: 1 1 320px; }

.pc-cb-icon {
	flex-shrink: 0;
	width: var(--pc-cb-icon-size, 40px);
	height: var(--pc-cb-icon-size, 40px);
	object-fit: contain;
}

.pc-cb-modal-header {
	display: flex;
	align-items: center;
	gap: 12px;
}
.pc-cb-modal-header h2 { margin: 0; }

.pc-cb-title {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 700;
}

.pc-cb-text { margin: 0; }
.pc-cb-text a { color: var(--pc-cb-primary, #172C84); text-decoration: underline; }

.pc-cb-banner-categories {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	margin-top: 12px;
}

.pc-cb-banner-switch {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

.pc-cb-banner-switch .pc-cb-switch-label {
	font-weight: 500;
	font-size: 13px;
}

.pc-cb-switch {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}
.pc-cb-switch input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.pc-cb-switch .pc-cb-slider {
	position: relative;
	display: inline-block;
	flex-shrink: 0;
	width: 38px;
	height: 22px;
	background-color: #ccc;
	border-radius: 22px;
	transition: .15s;
}
.pc-cb-switch .pc-cb-slider:before {
	content: "";
	position: absolute;
	height: 16px;
	width: 16px;
	left: 3px;
	bottom: 3px;
	background-color: #fff;
	border-radius: 50%;
	transition: .15s;
}
.pc-cb-switch input:checked + .pc-cb-slider {
	background-color: var(--pc-cb-primary, #172C84);
}
.pc-cb-switch input:checked + .pc-cb-slider:before {
	transform: translateX(16px);
}
.pc-cb-switch input:disabled + .pc-cb-slider {
	opacity: .6;
	cursor: not-allowed;
}

.pc-cb-banner-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: stretch;
	flex: 0 0 220px;
	width: 220px;
	margin-left: auto;
}
.pc-cb-banner-actions .pc-cb-btn {
	width: 100%;
	text-align: center;
	white-space: normal;
}

.pc-cb-btn {
	display: inline-block;
	border-radius: 6px;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	border: 2px solid transparent;
	transition: opacity .15s ease;
	white-space: nowrap;
}
.pc-cb-btn:hover { opacity: .85; }

.pc-cb-btn-primary {
	background: var(--pc-cb-primary, #172C84);
	color: #fff;
}

.pc-cb-btn-outline {
	background: transparent;
	border-color: var(--pc-cb-primary, #172C84);
	color: var(--pc-cb-primary, #172C84);
}

.pc-cb-btn-link {
	background: transparent;
	border: none;
	color: var(--pc-cb-text, #1d2327);
	text-decoration: underline;
	padding: 10px 4px;
}

/* Dark theme */
.pc-cb-theme-dark { background: #1d2327; color: #f0f0f1; }
.pc-cb-theme-dark .pc-cb-text a { color: #8ea4ff; }
.pc-cb-theme-dark .pc-cb-btn-link { color: #f0f0f1; }

/* Modal */
.pc-cb-modal {
	position: fixed !important;
	inset: 0;
	z-index: 2147483647 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	margin: 0;
}
.pc-cb-modal[hidden] { display: none !important; }

.pc-cb-modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.5);
}

.pc-cb-modal-content {
	position: relative;
	background: var(--pc-cb-bg, #fff);
	color: var(--pc-cb-text, #1d2327);
	max-width: var(--pc-cb-modal-max-width, 40vw);
	width: 92%;
	max-height: 86vh;
	overflow-y: auto;
	border-radius: 12px;
	padding: 28px;
	box-shadow: 0 10px 40px rgba(0,0,0,.25);
	font-size: 14px;
	line-height: 1.5;
}

.pc-cb-modal-content h2 { margin-top: 0; }

#pc-cb-modal .pc-cb-modal-close {
	position: absolute;
	top: 12px;
	right: 14px;
	background: transparent !important;
	border: none !important;
	font-size: 40px !important;
	line-height: 1 !important;
	cursor: pointer;
	color: #142c84 !important;
	padding: 0px !important;
}

.pc-cb-categories { margin: 16px 0; }

.pc-cb-category {
	border-bottom: 1px solid rgba(0,0,0,.08);
	padding: 12px 0;
}
.pc-cb-theme-dark .pc-cb-category { border-bottom-color: rgba(255,255,255,.1); }

.pc-cb-category-header { display: flex; align-items: center; }

.pc-cb-category-desc {
	margin: 6px 0 0;
	font-size: 13px;
	opacity: .8;
}

.pc-cb-switch-label { font-weight: 600; }

.pc-cb-modal-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: flex-start;
	margin-top: 10px;
}

.pc-cb-modal-footer { margin-top: 16px; font-size: 13px; }
.pc-cb-modal-footer a { color: var(--pc-cb-primary, #172C84); }

/* Floating button */
#pc-cb-floating-btn {
	position: fixed !important;
	z-index: 2147483647 !important;
	width: var(--pc-cb-fb-size, 50px);
	height: var(--pc-cb-fb-size, 50px);
	border-radius: 50%;
	border: none;
	background: var(--pc-cb-fb-bg, #172C84);
	color: var(--pc-cb-fb-color, #fff);
	display: flex !important;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(0,0,0,.25);
	padding: 0;
}
#pc-cb-floating-btn[hidden] { display: none !important; }

#pc-cb-floating-btn.pc-cb-fb-bottom-left { bottom: 20px; left: 20px; }
#pc-cb-floating-btn.pc-cb-fb-bottom-right { bottom: 20px; right: 20px; }
#pc-cb-floating-btn.pc-cb-fb-top-left { top: 20px; left: 20px; }
#pc-cb-floating-btn.pc-cb-fb-top-right { top: 20px; right: 20px; }

/* Pagina Cookie Policy generata automaticamente */
.pc-cb-policy-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 24px;
	font-size: 14px;
}
.pc-cb-policy-table th,
.pc-cb-policy-table td {
	border: 1px solid rgba(0,0,0,.1);
	padding: 8px 12px;
	text-align: left;
	vertical-align: top;
}
.pc-cb-policy-table th {
	background: rgba(0,0,0,.04);
	font-weight: 700;
}

/* Responsive */
@media (max-width: 768px) {
	.pc-cb-banner-inner {
		flex-direction: column;
		align-items: stretch;
		padding: 16px;
	}
	.pc-cb-banner-actions {
		margin-left: 0;
		flex: 1 1 auto;
		width: 100%;
	}
	.pc-cb-banner-categories { gap: 12px; }
	.pc-cb-layout-box.pc-cb-pos-bottom,
	.pc-cb-layout-box.pc-cb-pos-top {
		left: 10px;
		right: 10px;
		width: auto;
	}
	.pc-cb-modal-content { padding: 20px; }
}
