/* Scudo Privacy: banner del sito. Il colore dei pulsanti arriva da --scudo-colore (impostazione del plugin). */
:root { --scudo-colore: #5d3dc2; }

.scudo-banner, .scudo-modale, .scudo-linguetta, .scudo-fermo { box-sizing: border-box; font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: #1f1b2e; }
.scudo-banner *, .scudo-modale *, .scudo-fermo * { box-sizing: border-box; }

.scudo-banner {
	position: fixed; z-index: 999990; left: 16px; bottom: 16px; width: calc(100% - 32px); max-width: 420px;
	background: #fff; border: 1px solid #e3e3e8; border-radius: 12px; padding: 18px 18px 16px;
	box-shadow: 0 8px 32px rgba(20, 16, 40, .28); display: grid; gap: 12px;
	max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; /* schermo basso: il banner scorre, «Nega» resta raggiungibile */
}
.scudo-logo { display: block; height: 34px; width: auto; max-width: 70%; justify-self: start; }
.scudo-banner img.scudo-logo, .scudo-modale img.scudo-logo { width: auto !important; max-width: 70% !important; object-fit: contain; }
.scudo-titolo { margin: 0 !important; padding: 0 !important; font-size: 16px !important; line-height: 1.3 !important; font-weight: 700 !important; color: #1f1b2e !important; text-wrap: balance; }
.scudo-testo { margin: 0 !important; font-size: 14px !important; line-height: 1.5 !important; color: #1f1b2e !important; text-wrap: pretty; }
.scudo-testo a { color: #48337b !important; text-decoration: underline !important; }

.scudo-btns { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.scudo-btn {
	min-height: 42px; border-radius: 6px !important; border: 1px solid var(--scudo-colore) !important; padding: 0 8px !important; margin: 0 !important;
	font-family: inherit !important; font-size: 14px; font-weight: 600; line-height: 1.2; cursor: pointer; white-space: nowrap; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important;
}
.scudo-btn-p { background: var(--scudo-colore) !important; color: #fff !important; }
.scudo-btn-s { background: #fff !important; color: var(--scudo-colore) !important; }
.scudo-btn:focus-visible, .scudo-linguetta:focus-visible, .scudo-tog input:focus-visible + i, .scudo-cat summary:focus-visible { outline: 2px solid var(--scudo-colore); outline-offset: 2px; }

.scudo-velo { position: fixed; inset: 0; z-index: 999995; background: rgba(20, 16, 40, .55); display: flex; align-items: flex-end; justify-content: center; }
.scudo-modale {
	background: #fff; width: 100%; max-width: 560px; max-height: 92vh; overflow: auto; border-radius: 14px 14px 0 0;
	padding: 20px 18px calc(18px + env(safe-area-inset-bottom, 0px)); display: grid; gap: 14px;
}
.scudo-modale .scudo-titolo { font-size: 18px !important; }
.scudo-cat { border: 1px solid #e3e3e8; border-radius: 10px; padding: 12px 14px; display: grid; gap: 6px; }
.scudo-cat-t { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.scudo-cat-n { font-weight: 600; }
.scudo-cat small { font-size: 13px; color: #433d58; line-height: 1.5; }
.scudo-cat details summary { cursor: pointer; color: #48337b; font-size: 13px; font-weight: 600; min-height: 40px; display: flex; align-items: center; }
.scudo-cat details p { margin: 0; font-size: 13px; color: #433d58; }
.scudo-sempre { font-size: 12px; font-weight: 600; color: #48337b; background: #f3f0fc; border-radius: 20px; padding: 2px 10px; white-space: nowrap; }

.scudo-tog { position: relative; width: 46px; height: 26px; flex: none; display: block; margin: 0; }
.scudo-tog input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 2; }
.scudo-tog i { position: absolute; inset: 0; border-radius: 26px; background: #8c8f94; transition: background .15s; }
.scudo-tog i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .15s; }
.scudo-tog input:checked + i { background: var(--scudo-colore); }
.scudo-tog input:checked + i::after { transform: translateX(20px); }

.scudo-linguetta {
	position: fixed; z-index: 999980; left: 16px; bottom: 16px; background: #fff !important; color: #48337b !important; border: 1px solid #cfcfd6 !important; border-radius: 20px !important;
	min-height: 40px; padding: 0 14px !important; font-weight: 600 !important; cursor: pointer; box-shadow: 0 2px 10px rgba(20, 16, 40, .18) !important; white-space: nowrap; text-transform: none !important;
}

.scudo-fermo { border: 1px dashed #b7b3c8; border-radius: 10px; background: #f8f7fc; padding: 18px; display: grid; gap: 10px; justify-items: start; align-content: center; min-height: 160px; max-width: 100%; }
.scudo-fermo p { margin: 0; font-size: 14px; }
.scudo-fermo-btn { min-height: 40px; border-radius: 6px !important; border: 1px solid var(--scudo-colore) !important; background: var(--scudo-colore) !important; color: #fff !important; font-weight: 600 !important; padding: 0 16px !important; cursor: pointer; text-transform: none !important; }

@media (min-width: 640px) {
	.scudo-velo { align-items: center; }
	.scudo-modale { border-radius: 14px; }
}
@media (max-width: 520px) {
	.scudo-btns { grid-template-columns: minmax(0, 1fr); }
	.scudo-banner { left: 8px; right: 8px; bottom: 8px; width: auto; max-width: none; }
	.scudo-linguetta { left: 8px; bottom: 8px; }
}
@media (prefers-reduced-motion: reduce) {
	.scudo-tog i, .scudo-tog i::after { transition: none; }
}

/* Testi legali (informativa e cookie policy): misure in proporzione al testo del tema, il resto lo decide il tema. */
.scudo-testo-legale { display: grid; gap: 12px; max-width: 100%; overflow-wrap: break-word; }
.scudo-testo-legale > *, .scudo-scheda > * { margin: 0; }
.scudo-testo-legale > h2:first-child { margin-top: 0; }
.scudo-testo-legale h2 { font-size: min(1.3em, 6vw); line-height: 1.3; text-wrap: balance; margin-top: .6em; }
.scudo-testo-legale h3 { font-size: 1.12em; line-height: 1.35; font-weight: 700; text-wrap: balance; margin-top: .3em; }
.scudo-testo-legale h4 { font-size: 1.05em; line-height: 1.4; font-weight: 700; text-wrap: balance; }
.scudo-testo-legale p { text-wrap: pretty; }
.scudo-testo-legale ul { padding-left: 1.2em; display: grid; gap: 4px; }
.scudo-testo-legale li { margin: 0; text-wrap: pretty; }
.scudo-testo-legale li.corta { text-wrap: balance; }
.scudo-scheda { display: grid; gap: 4px; }
.scudo-voce.corta { text-wrap: balance; }
.scudo-nomi { display: inline-flex; flex-wrap: wrap; gap: 4px 6px; vertical-align: top; max-width: 100%; }
.scudo-testo-legale .scudo-nomi code { font-size: .88em; color: #1f1b2e !important; background: #f1f0f5 !important; border-radius: 4px; padding: 1px 6px; white-space: nowrap; }

/* Cassa di WooCommerce: avviso delle offerte e casella per dire di no. Le due righe sono righe del modulo del tema
   (stessi margini e allineamento dell'email); qui solo: sotto l'email a tutta larghezza, frase vicina alla sua casella. */
.scudo-offerte { display: block; clear: both; width: 100%; } /* clear: nel tema Rey il campo email è flottante */
.scudo-offerte .scudo-offerte-avviso { margin-bottom: 6px !important; font-size: .95em; line-height: 1.55; text-wrap: pretty; }
.scudo-offerte .scudo-offerte-avviso a { text-decoration: underline; text-underline-offset: 2px; }
.scudo-offerte .scudo-offerte-campo .optional { display: none; } /* «(facoltativo)»: una casella è facoltativa per natura */
/* la scritta della casella è una frase di consenso, non l'etichetta di un campo: carattere normale e leggibile (Rey la metteva maiuscola a 11 px) */
.scudo-offerte .scudo-offerte-campo label { text-transform: none !important; font-size: .95em !important; letter-spacing: normal !important; font-weight: 400 !important; line-height: 1.5 !important; }
