:root{
	--nbcc-primary:#0f1f38;
	--nbcc-primary-light:#1c3358;
	--nbcc-accent:#b68d40;
	--nbcc-accent-light:#d4b06a;
	--nbcc-ink:#10131a;
	--nbcc-paper:#f7f4ee;
	--nbcc-radius:2px;
	--nbcc-shadow:0 12px 40px rgba(15,31,56,.35);
	--nbcc-serif:Georgia,'Iowan Old Style','Palatino Linotype',Palatino,serif;
	--nbcc-sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

/* ---------- Overlay (usato solo per il modale) ---------- */
.nbcc-overlay{position:fixed;inset:0;background:rgba(10,15,26,.55);z-index:999998;}
.nbcc-overlay[hidden]{display:none;}

/* ---------- Banner ---------- */
.nbcc-banner{
	position:fixed;left:0;right:0;bottom:0;z-index:999999;
	background:linear-gradient(180deg,var(--nbcc-primary-light),var(--nbcc-primary));
	color:#eef1f6;
	border-top:2px solid var(--nbcc-accent);
	box-shadow:var(--nbcc-shadow);
	display:flex;align-items:center;gap:28px;
	padding:22px clamp(16px,4vw,48px);
	font-family:var(--nbcc-sans);
	animation:nbcc-rise .45s ease-out;
}
.nbcc-banner[hidden]{display:none;}
@keyframes nbcc-rise{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}
@media (prefers-reduced-motion:reduce){.nbcc-banner{animation:none}}

.nbcc-banner__seal{
	flex:0 0 auto;width:46px;height:46px;border-radius:50%;
	background:radial-gradient(circle at 35% 30%, var(--nbcc-accent-light), var(--nbcc-accent) 60%, #8a6a2c 100%);
	position:relative;box-shadow:inset 0 0 0 2px rgba(255,255,255,.15);
	display:none;
}
@media (min-width:640px){.nbcc-banner__seal{display:block}}
.nbcc-banner__seal::before{
	content:"";position:absolute;inset:9px;border-radius:50%;
	border:1px solid rgba(15,31,56,.5);
}

.nbcc-banner__body{flex:1 1 auto;min-width:0;}
.nbcc-banner__title{
	font-family:var(--nbcc-serif);font-weight:600;font-size:19px;
	margin:0 0 6px;letter-spacing:.2px;color:#fff;
}
.nbcc-banner__text{margin:0;font-size:13.5px;line-height:1.55;color:#c9d2e0;max-width:70ch;}
.nbcc-link{color:var(--nbcc-accent-light);text-decoration:underline;text-underline-offset:2px;}
.nbcc-link:hover{color:#fff;}

.nbcc-banner__actions{flex:0 0 auto;display:flex;gap:10px;flex-wrap:wrap;}

.nbcc-btn{
	font-family:var(--nbcc-sans);font-size:13.5px;font-weight:600;letter-spacing:.2px;
	padding:11px 20px;border-radius:var(--nbcc-radius);border:1px solid transparent;cursor:pointer;
	white-space:nowrap;transition:filter .15s ease, background-color .15s ease;
}
.nbcc-btn--primary{background:var(--nbcc-accent);color:#1a1305;}
.nbcc-btn--primary:hover{filter:brightness(1.08);}
.nbcc-btn--outline{background:transparent;color:#eef1f6;border-color:rgba(238,241,246,.55);}
.nbcc-btn--outline:hover{background:rgba(238,241,246,.1);}
.nbcc-btn--ghost{background:transparent;color:#c9d2e0;border:none;text-decoration:underline;text-underline-offset:3px;padding:11px 4px;}
.nbcc-btn--ghost:hover{color:#fff;}
.nbcc-btn:focus-visible,.nbcc-link:focus-visible,.nbcc-manage-link:focus-visible{outline:2px solid var(--nbcc-accent-light);outline-offset:2px;}

@media (max-width:780px){
	.nbcc-banner{flex-direction:column;align-items:stretch;gap:14px;}
	.nbcc-banner__actions{justify-content:stretch;}
	.nbcc-banner__actions .nbcc-btn{flex:1 1 auto;text-align:center;}
}

/* ---------- Footer manage link ---------- */
.nbcc-manage-link{
	position:fixed;left:16px;bottom:16px;z-index:999997;
	display:flex;align-items:center;gap:8px;
	background:var(--nbcc-primary);color:#eef1f6;border:1px solid rgba(255,255,255,.15);
	border-radius:999px;padding:9px 16px 9px 10px;font-size:12.5px;font-family:var(--nbcc-sans);
	cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25);
}
.nbcc-manage-link:hover{background:var(--nbcc-primary-light);}
.nbcc-seal{width:16px;height:16px;border-radius:50%;background:var(--nbcc-accent);display:inline-block;flex:0 0 auto;}

/* ---------- Modal ---------- */
.nbcc-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:20px;}
.nbcc-modal[hidden]{display:none;}
.nbcc-modal__panel{
	background:var(--nbcc-paper);color:var(--nbcc-ink);width:min(680px,100%);max-height:86vh;
	border-radius:4px;box-shadow:var(--nbcc-shadow);display:flex;flex-direction:column;overflow:hidden;
	font-family:var(--nbcc-sans);border-top:3px solid var(--nbcc-accent);
}
.nbcc-modal__header{display:flex;align-items:center;gap:12px;padding:20px 22px;border-bottom:1px solid #e3ddcd;background:#fff;}
.nbcc-modal__seal{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 30%, var(--nbcc-accent-light), var(--nbcc-accent) 65%);flex:0 0 auto;}
.nbcc-modal__header h2{font-family:var(--nbcc-serif);font-size:19px;margin:0;flex:1;color:var(--nbcc-primary);}
.nbcc-modal__close{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:#6b7280;padding:4px 8px;}
.nbcc-modal__close:hover{color:var(--nbcc-ink);}
.nbcc-modal__body{padding:10px 22px;overflow-y:auto;}
.nbcc-modal__footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid #e3ddcd;background:#fff;}
.nbcc-modal__footer .nbcc-btn--outline{color:var(--nbcc-primary);border-color:var(--nbcc-primary);}
.nbcc-modal__footer .nbcc-btn--outline:hover{background:rgba(15,31,56,.06);}

.nbcc-cat{border-bottom:1px solid #e3ddcd;padding:16px 0;}
.nbcc-cat:last-child{border-bottom:none;}
.nbcc-cat__head{display:flex;align-items:center;justify-content:space-between;gap:14px;}
.nbcc-cat__toggleinfo{background:none;border:none;cursor:pointer;font-size:15px;font-weight:600;color:var(--nbcc-primary);display:flex;align-items:center;gap:8px;padding:2px 0;text-align:left;}
.nbcc-cat__chevron{width:8px;height:8px;border-right:2px solid var(--nbcc-primary);border-bottom:2px solid var(--nbcc-primary);transform:rotate(-45deg);transition:transform .2s ease;flex:0 0 auto;}
.nbcc-cat__toggleinfo[aria-expanded="true"] .nbcc-cat__chevron{transform:rotate(45deg);}
.nbcc-cat__info{display:none;margin-top:10px;padding-left:16px;font-size:13.5px;color:#3a3a3a;line-height:1.55;}
.nbcc-cat[data-open="true"] .nbcc-cat__info{display:block;}
.nbcc-cat__empty{font-style:italic;color:#8a8a8a;}

.nbcc-cat__table{width:100%;border-collapse:collapse;margin-top:10px;font-size:12.5px;}
.nbcc-cat__table th,.nbcc-cat__table td{text-align:left;padding:7px 8px;border-bottom:1px solid #e8e2d3;vertical-align:top;}
.nbcc-cat__table th{color:var(--nbcc-primary);font-weight:600;}

/* Switch toggle */
.nbcc-switch{position:relative;display:inline-block;width:42px;height:24px;flex:0 0 auto;}
.nbcc-switch input{opacity:0;width:0;height:0;}
.nbcc-switch__slider{position:absolute;inset:0;background:#cfd3da;border-radius:999px;cursor:pointer;transition:background-color .15s ease;}
.nbcc-switch__slider::before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .15s ease;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.nbcc-switch input:checked + .nbcc-switch__slider{background:var(--nbcc-accent);}
.nbcc-switch input:checked + .nbcc-switch__slider::before{transform:translateX(18px);}
.nbcc-switch input:disabled + .nbcc-switch__slider{background:#a9b1c0;cursor:not-allowed;opacity:.8;}

/* ---------- Blocked third-party embed placeholder ---------- */
.nbcc-embed-placeholder{
	position:relative;width:100%;min-height:220px;display:flex;flex-direction:column;align-items:center;
	justify-content:center;gap:10px;background:#eef1f6;border:1px dashed #b9c2d1;color:var(--nbcc-primary);
	font-family:var(--nbcc-sans);text-align:center;padding:24px;box-sizing:border-box;
}
.nbcc-embed-placeholder p{margin:0;font-size:13px;color:#4a5568;max-width:40ch;}
.nbcc-embed-placeholder button{
	background:var(--nbcc-primary);color:#fff;border:none;padding:10px 18px;border-radius:2px;
	font-size:13px;font-weight:600;cursor:pointer;
}
.nbcc-embed-placeholder button:hover{background:var(--nbcc-primary-light);}

/* ---------- Testo Cookie Policy renderizzato dallo shortcode [nbcc_policy_text] ---------- */
.nbcc-policy-text{font-family:var(--nbcc-sans);line-height:1.6;color:#2a2f3a;}
.nbcc-policy-text h2{font-family:var(--nbcc-serif);color:var(--nbcc-primary);margin-top:1.6em;}
.nbcc-policy-text h3{color:var(--nbcc-primary);margin-top:1.3em;}
.nbcc-policy-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.9em;}
.nbcc-policy-table th,.nbcc-policy-table td{border:1px solid #e0e0e0;padding:8px 10px;text-align:left;}
.nbcc-policy-table th{background:#f3f1ea;color:var(--nbcc-primary);}


/* ---------------------------------------------------------------------
   Guardia tipografica: il CSS globale del tema ha font/titoli maggiorati
   su richiesta del cliente (em/rem ereditati che si propagano ovunque).
   Qui usiamo PIXEL ASSOLUTI (non em/rem, che scalerebbero comunque con
   il tema) + selettori con ID per battere in specificità le regole
   globali, così i testi restano fissi indipendentemente dal tema.
--------------------------------------------------------------------- */
#nbcc-banner.nbcc-banner .nbcc-banner__title{font-size:16px !important;line-height:1.3 !important;}
#nbcc-banner.nbcc-banner .nbcc-banner__text{font-size:12.5px !important;line-height:1.5 !important;}
#nbcc-banner.nbcc-banner .nbcc-btn,
#nbcc-modal.nbcc-modal .nbcc-btn{font-size:12.5px !important;line-height:1.2 !important;padding:10px 18px !important;}
.nbcc-manage-link{font-size:11.5px !important;line-height:1.2 !important;}

#nbcc-modal.nbcc-modal .nbcc-modal__header h2{font-size:16px !important;line-height:1.3 !important;}
#nbcc-modal.nbcc-modal .nbcc-cat__toggleinfo{font-size:13px !important;line-height:1.3 !important;}
#nbcc-modal.nbcc-modal .nbcc-cat__info,
#nbcc-modal.nbcc-modal .nbcc-cat__info p{font-size:12.5px !important;line-height:1.5 !important;}
#nbcc-modal.nbcc-modal .nbcc-cat__table{font-size:11.5px !important;}
#nbcc-modal.nbcc-modal .nbcc-cat__table th,
#nbcc-modal.nbcc-modal .nbcc-cat__table td{font-size:inherit !important;padding:6px 8px !important;}
#nbcc-modal.nbcc-modal .nbcc-cat__empty{font-size:12.5px !important;}

.nbcc-embed-placeholder p{font-size:12.5px !important;}
.nbcc-embed-placeholder button{font-size:12.5px !important;}
.nbcc-embed-placeholder small{font-size:10.5px !important;}

/* Tutti gli elementi di testo dentro banner/modale ereditano al massimo 13px,
   qualunque valore imposti il tema sui tag generici (h1-h6, p, span, button).
   Le regole più specifiche sopra (titolo, h2, toggleinfo) vincono comunque
   perché hanno una classe in più, quindi specificità superiore. */
#nbcc-banner.nbcc-banner *{font-size:13px !important;}
#nbcc-modal.nbcc-modal *{font-size:13px !important;}

