/*!
 * Member Cookie Consent — stili front-end
 * Le variabili --mcc-* vengono ridefinite dalle impostazioni (Aspetto).
 */
:root {
	--mcc-primary: #0077f7;
	--mcc-primary-text: #ffffff;
	--mcc-bg: #ffffff;
	--mcc-text: #1f2937;
	--mcc-surface: #f3f5f9;
	--mcc-border: rgba(15, 23, 42, .14);
	--mcc-radius: 14px;
}

.mcc-banner, .mcc-modal, .mcc-reopen, .mcc-placeholder, .mcc-overlay {
	box-sizing: border-box;
	font: 400 14px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	letter-spacing: normal;
	text-transform: none;
	-webkit-font-smoothing: antialiased;
}
.mcc-banner *, .mcc-modal *, .mcc-placeholder *, .mcc-reopen * { box-sizing: border-box; }
.mcc-banner p, .mcc-modal p, .mcc-placeholder p, .mcc-modal h2 { margin: 0; padding: 0; color: inherit; }

/* ---------- Contenuti bloccati ---------- */
.mcc-blocked { display: none !important; }

.mcc-placeholder {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 14px; width: 100%; min-height: 180px; padding: 22px; text-align: center;
	background: var(--mcc-surface); color: var(--mcc-text);
	border: 1px dashed var(--mcc-border); border-radius: var(--mcc-radius);
}
.mcc-ph-text { max-width: 46ch; }
.mcc-ph-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }

/* ---------- Overlay ---------- */
.mcc-overlay {
	position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 2147483001;
	display: flex; align-items: center; justify-content: center; padding: 12px;
	background: rgba(8, 12, 22, .56);
	opacity: 0; transition: opacity .22s ease;
}
.mcc-overlay.mcc-show { opacity: 1; }
.mcc-overlay-modal { z-index: 2147483002; }
html.mcc-no-scroll { overflow: hidden; }

/* ---------- Banner ---------- */
.mcc-banner {
	position: fixed; z-index: 2147483000;
	width: calc(100% - 32px); max-width: 430px; padding: 22px 22px 20px;
	background: var(--mcc-bg); color: var(--mcc-text);
	border: 1px solid var(--mcc-border); border-radius: var(--mcc-radius);
	box-shadow: 0 18px 50px rgba(8, 12, 22, .28);
	opacity: 0; transform: translateY(14px);
	transition: opacity .25s ease, transform .25s ease;
}
.mcc-banner.mcc-show { opacity: 1; transform: none; }
.mcc-banner:focus { outline: none; }

.mcc-layout-box-left { left: 16px; bottom: 16px; }
.mcc-layout-box-right { right: 16px; bottom: 16px; }
.mcc-layout-bar-bottom {
	left: 0; right: 0; bottom: 0; width: 100%; max-width: none;
	border-radius: var(--mcc-radius) var(--mcc-radius) 0 0;
	display: flex; align-items: center; gap: 24px; padding: 18px 56px 18px 24px;
}
.mcc-layout-bar-bottom .mcc-body { flex: 1 1 auto; }
.mcc-layout-bar-bottom .mcc-actions { flex: 0 0 auto; }
.mcc-layout-center { position: relative; opacity: 1; transform: none; max-width: 520px; }

.mcc-title { font-size: 16px; font-weight: 700; margin-bottom: 6px !important; padding-right: 26px !important; }
.mcc-desc { font-size: 13.5px; opacity: .92; }
.mcc-desc a { color: var(--mcc-primary); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
.mcc-layout-bar-bottom .mcc-title { padding-right: 0 !important; }

.mcc-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.mcc-btn-custom { grid-column: 1 / -1; }
.mcc-layout-bar-bottom .mcc-actions { display: flex; flex-wrap: nowrap; margin-top: 0; }
.mcc-layout-bar-bottom .mcc-btn-custom { order: -1; }

.mcc-preview-badge {
	position: absolute; top: -10px; left: 16px; padding: 2px 8px; border-radius: 10px;
	background: #f59e0b; color: #111; font-size: 10px; font-weight: 700; letter-spacing: .06em;
}

/* ---------- Pulsanti ---------- */
.mcc-btn {
	appearance: none; -webkit-appearance: none; cursor: pointer;
	font: inherit; font-weight: 600; font-size: 14px; line-height: 1.2;
	min-height: 44px; padding: 10px 16px; margin: 0;
	border: 2px solid var(--mcc-primary); border-radius: max(6px, calc(var(--mcc-radius) - 4px));
	text-align: center; text-decoration: none; box-shadow: none;
	transition: filter .15s ease, background-color .15s ease;
}
/* "Accetta" e "Rifiuta" condividono lo stesso stile: pari evidenza (Linee guida Garante) */
.mcc-btn-primary { background: var(--mcc-primary); color: var(--mcc-primary-text); }
.mcc-btn-outline { background: transparent; color: var(--mcc-text); border-color: var(--mcc-border); }
.mcc-btn:hover { filter: brightness(1.08); }
.mcc-btn-outline:hover { background: var(--mcc-surface); filter: none; }
.mcc-btn:focus-visible, .mcc-close:focus-visible, .mcc-more:focus-visible, .mcc-reopen:focus-visible,
.mcc-switch input:focus-visible + .mcc-slider {
	outline: 3px solid var(--mcc-primary); outline-offset: 2px;
}

.mcc-close {
	appearance: none; -webkit-appearance: none; cursor: pointer;
	position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; padding: 0; margin: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: transparent; color: var(--mcc-text); opacity: .7;
	border: 0; border-radius: 50%;
}
.mcc-close:hover { opacity: 1; background: var(--mcc-surface); }

/* ---------- Finestra preferenze ---------- */
.mcc-modal {
	position: relative; display: flex; flex-direction: column;
	width: 100%; max-width: 660px; max-height: calc(100vh - 24px);
	background: var(--mcc-bg); color: var(--mcc-text);
	border: 1px solid var(--mcc-border); border-radius: var(--mcc-radius);
	box-shadow: 0 24px 70px rgba(8, 12, 22, .4);
	transform: translateY(10px) scale(.985); transition: transform .22s ease;
}
.mcc-overlay.mcc-show .mcc-modal { transform: none; }
.mcc-modal:focus { outline: none; }

.mcc-m-head { position: relative; padding: 20px 56px 8px 22px; }
.mcc-m-title { font-size: 18px; font-weight: 700; line-height: 1.3; }
.mcc-m-body { padding: 4px 22px 14px; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.mcc-m-text { opacity: .9; margin-bottom: 14px !important; }
.mcc-m-foot {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
	padding: 14px 22px 18px; border-top: 1px solid var(--mcc-border);
}

.mcc-cat { padding: 14px 0; border-top: 1px solid var(--mcc-border); }
.mcc-cat:first-child { border-top: 0; }
.mcc-cat-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mcc-cat-desc { margin-top: 6px !important; font-size: 13px; opacity: .85; }
.mcc-always { font-size: 12px; font-weight: 600; color: var(--mcc-primary); white-space: nowrap; }

.mcc-switch { position: relative; display: inline-flex; align-items: center; gap: 12px; cursor: pointer; font-weight: 600; font-size: 15px; }
.mcc-switch input { position: absolute; left: 0; top: 0; width: 46px; height: 26px; margin: 0; opacity: 0; cursor: pointer; }
.mcc-switch input:disabled { cursor: not-allowed; }
.mcc-slider {
	position: relative; flex: 0 0 46px; width: 46px; height: 26px; border-radius: 13px;
	background: rgba(120, 128, 145, .55); transition: background-color .2s ease;
}
.mcc-slider::after {
	content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
	background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .35); transition: transform .2s ease;
}
.mcc-switch input:checked + .mcc-slider { background: var(--mcc-primary); }
.mcc-switch input:checked + .mcc-slider::after { transform: translateX(20px); }
.mcc-switch input:disabled + .mcc-slider { opacity: .6; }

.mcc-more {
	appearance: none; -webkit-appearance: none; cursor: pointer;
	margin: 8px 0 0; padding: 4px 0; background: none; border: 0;
	font: inherit; font-size: 13px; font-weight: 600; color: var(--mcc-primary);
	text-decoration: underline; text-underline-offset: 2px;
}
.mcc-details { margin-top: 8px; padding: 12px; background: var(--mcc-surface); border-radius: calc(var(--mcc-radius) - 4px); font-size: 12.5px; }
.mcc-details[hidden] { display: none; }
.mcc-item-head { margin: 10px 0 6px !important; }
.mcc-item-head:first-child { margin-top: 0 !important; }
.mcc-item-head a { color: var(--mcc-primary); }
.mcc-note, .mcc-empty { opacity: .85; font-style: italic; }
.mcc-table-scroll { overflow-x: auto; }
.mcc-ctable { width: 100%; border-collapse: collapse; }
.mcc-ctable th, .mcc-ctable td { padding: 5px 8px 5px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--mcc-border); font-size: 12px; }
.mcc-ctable th { font-weight: 700; }
.mcc-ctable code { font-size: 11.5px; word-break: break-all; }

/* ---------- Pulsante flottante ---------- */
.mcc-reopen {
	appearance: none; -webkit-appearance: none; cursor: pointer;
	position: fixed; bottom: 16px; z-index: 2147482999;
	width: 44px; height: 44px; padding: 0; margin: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--mcc-bg); color: var(--mcc-primary);
	border: 1px solid var(--mcc-border); border-radius: 50%;
	box-shadow: 0 6px 20px rgba(8, 12, 22, .25);
	transition: transform .15s ease;
}
.mcc-reopen:hover { transform: scale(1.06); }
.mcc-reopen[hidden] { display: none; }
.mcc-reopen-left { left: 16px; }
.mcc-reopen-right { right: 16px; }

/* ---------- Tabella cookie (shortcode) e modulo richieste ---------- */
.mcc-table-wrap { overflow-x: auto; margin: 0 0 1.5em; }
.mcc-table { width: 100%; border-collapse: collapse; font-size: .92em; }
.mcc-table th, .mcc-table td { padding: 8px 10px; text-align: left; vertical-align: top; border: 1px solid rgba(128, 128, 128, .3); }
.mcc-table thead th { background: rgba(128, 128, 128, .12); }
.mcc-table code { word-break: break-all; }

.mcc-notice { display: none; padding: 12px 14px; margin: 0 0 14px; border-radius: 6px; border-left: 4px solid; }
.mcc-notice:target { display: block; }
.mcc-notice--ok { background: #ecfdf3; border-color: #12b76a; color: #05603a; }
.mcc-notice--err { background: #fef3f2; border-color: #f04438; color: #912018; }
.mcc-request-form input[type="email"], .mcc-request-form select, .mcc-request-form textarea { width: 100%; max-width: 480px; }
.mcc-btn-plain {
	cursor: pointer; padding: 10px 18px; font: inherit; font-weight: 600;
	background: var(--mcc-primary); color: var(--mcc-primary-text);
	border: 0; border-radius: 6px;
}

/* ---------- Adattamento schermi piccoli ---------- */
@media (max-width: 640px) {
	.mcc-banner { left: 8px !important; right: 8px !important; bottom: 8px !important; width: auto; max-width: none; padding: 18px 16px 16px; }
	.mcc-layout-bar-bottom { display: block; padding: 18px 16px 16px; left: 0 !important; right: 0 !important; bottom: 0 !important; border-radius: var(--mcc-radius) var(--mcc-radius) 0 0; }
	.mcc-layout-bar-bottom .mcc-actions { display: grid; margin-top: 14px; }
	.mcc-layout-bar-bottom .mcc-btn-custom { order: 0; }
	.mcc-layout-center { left: auto !important; right: auto !important; bottom: auto !important; }
	.mcc-m-foot { grid-template-columns: 1fr; }
	.mcc-m-head { padding-left: 16px; }
	.mcc-m-body { padding-left: 16px; padding-right: 16px; }
	.mcc-title { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
	.mcc-banner, .mcc-overlay, .mcc-modal, .mcc-reopen, .mcc-slider, .mcc-slider::after, .mcc-btn { transition: none !important; }
}

@media print {
	.mcc-banner, .mcc-overlay, .mcc-reopen, .mcc-placeholder { display: none !important; }
}

/* =====================================================================
 * Blindatura contro temi e page builder
 * Molti temi applicano stili globali a button, h2, p, input, table (spesso con
 * !important): qui i componenti del plugin li riaffermano con specificita piu
 * alta, cosi il banner ha lo stesso aspetto su qualsiasi sito.
 * ================================================================== */

/* Testi */
.mcc-banner .mcc-title { font-size: 16px !important; font-weight: 700 !important; line-height: 1.35 !important; letter-spacing: normal !important; text-transform: none !important; margin: 0 0 6px !important; padding: 0 28px 0 0 !important; color: var(--mcc-text) !important; }
.mcc-banner .mcc-desc { font-size: 13.5px !important; font-weight: 400 !important; line-height: 1.55 !important; letter-spacing: normal !important; text-transform: none !important; margin: 0 !important; padding: 0 !important; color: var(--mcc-text) !important; }
.mcc-banner .mcc-desc a, .mcc-modal .mcc-details a { color: var(--mcc-primary) !important; text-decoration: underline !important; font-weight: 600 !important; }
.mcc-layout-bar-bottom .mcc-title { padding-right: 0 !important; }
.mcc-modal .mcc-m-title { font-size: 18px !important; font-weight: 700 !important; line-height: 1.3 !important; letter-spacing: normal !important; text-transform: none !important; margin: 0 !important; padding: 0 !important; color: var(--mcc-text) !important; }
.mcc-modal .mcc-m-text { font-size: 14px !important; line-height: 1.55 !important; letter-spacing: normal !important; text-transform: none !important; margin: 0 0 14px !important; padding: 0 !important; color: var(--mcc-text) !important; }
.mcc-modal .mcc-cat-desc { font-size: 13px !important; line-height: 1.5 !important; letter-spacing: normal !important; text-transform: none !important; margin: 6px 0 0 !important; padding: 0 !important; color: var(--mcc-text) !important; }
.mcc-modal .mcc-item-head { font-size: 12.5px !important; line-height: 1.5 !important; margin: 10px 0 6px !important; padding: 0 !important; color: var(--mcc-text) !important; }
.mcc-modal .mcc-note, .mcc-modal .mcc-empty { font-size: 12.5px !important; line-height: 1.5 !important; margin: 4px 0 0 !important; padding: 0 !important; color: var(--mcc-text) !important; }
.mcc-placeholder .mcc-ph-text { font-size: 14px !important; line-height: 1.5 !important; letter-spacing: normal !important; text-transform: none !important; margin: 0 !important; padding: 0 !important; color: var(--mcc-text) !important; }

/* Pulsanti */
.mcc-banner .mcc-btn, .mcc-modal .mcc-btn, .mcc-placeholder .mcc-btn {
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	box-sizing: border-box !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 44px !important;
	margin: 0 !important; padding: 10px 16px !important;
	font-family: inherit !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1.2 !important;
	letter-spacing: normal !important; text-transform: none !important; text-decoration: none !important; text-shadow: none !important; text-align: center !important; white-space: normal !important;
	border-width: 2px !important; border-style: solid !important; border-radius: 10px !important;
	box-shadow: none !important; background-image: none !important; float: none !important; cursor: pointer !important;
	-webkit-appearance: none !important; appearance: none !important;
}
.mcc-banner .mcc-btn, .mcc-modal .mcc-btn, .mcc-placeholder .mcc-btn { border-radius: max(6px, calc(var(--mcc-radius) - 4px)) !important; }
.mcc-banner .mcc-btn-primary, .mcc-modal .mcc-btn-primary, .mcc-placeholder .mcc-btn-primary,
.mcc-banner .mcc-btn-primary:hover, .mcc-modal .mcc-btn-primary:hover, .mcc-placeholder .mcc-btn-primary:hover,
.mcc-banner .mcc-btn-primary:focus, .mcc-modal .mcc-btn-primary:focus, .mcc-placeholder .mcc-btn-primary:focus,
.mcc-banner .mcc-btn-primary:active, .mcc-modal .mcc-btn-primary:active, .mcc-placeholder .mcc-btn-primary:active {
	background: var(--mcc-primary) !important; color: var(--mcc-primary-text) !important; border-color: var(--mcc-primary) !important;
}
.mcc-banner .mcc-btn-outline, .mcc-modal .mcc-btn-outline, .mcc-placeholder .mcc-btn-outline {
	background: transparent !important; color: var(--mcc-text) !important; border-color: var(--mcc-border) !important;
}
.mcc-banner .mcc-btn-outline:hover, .mcc-modal .mcc-btn-outline:hover, .mcc-placeholder .mcc-btn-outline:hover,
.mcc-banner .mcc-btn-outline:focus, .mcc-modal .mcc-btn-outline:focus, .mcc-placeholder .mcc-btn-outline:focus {
	background: var(--mcc-surface) !important; color: var(--mcc-text) !important; border-color: var(--mcc-border) !important;
}
.mcc-banner .mcc-btn-custom { grid-column: 1 / -1 !important; }

/* Pulsante di chiusura */
.mcc-banner .mcc-close, .mcc-modal .mcc-close {
	position: absolute !important; top: 10px !important; right: 10px !important; width: 36px !important; height: 36px !important; min-width: 0 !important; min-height: 0 !important;
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	margin: 0 !important; padding: 0 !important; line-height: 1 !important;
	background: transparent !important; color: var(--mcc-text) !important; border: 0 !important; border-radius: 50% !important; box-shadow: none !important; opacity: .7 !important;
}
.mcc-banner .mcc-close:hover, .mcc-modal .mcc-close:hover, .mcc-banner .mcc-close:focus, .mcc-modal .mcc-close:focus {
	background: var(--mcc-surface) !important; color: var(--mcc-text) !important; opacity: 1 !important;
}

/* "Dettagli" */
.mcc-modal .mcc-more, .mcc-modal .mcc-more:hover, .mcc-modal .mcc-more:focus {
	display: inline-block !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important;
	margin: 8px 0 0 !important; padding: 4px 0 !important;
	background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
	color: var(--mcc-primary) !important; font-size: 13px !important; font-weight: 600 !important; line-height: 1.4 !important;
	letter-spacing: normal !important; text-transform: none !important; text-decoration: underline !important; text-align: left !important;
}

/* Interruttori */
.mcc-modal .mcc-switch { display: inline-flex !important; align-items: center !important; gap: 12px !important; margin: 0 !important; padding: 0 !important; font-size: 15px !important; font-weight: 600 !important; line-height: 1.3 !important; letter-spacing: normal !important; text-transform: none !important; color: var(--mcc-text) !important; }
.mcc-modal .mcc-switch input[type="checkbox"] { position: absolute !important; left: 0 !important; top: 0 !important; width: 46px !important; height: 26px !important; margin: 0 !important; padding: 0 !important; opacity: 0 !important; cursor: pointer !important; -webkit-appearance: none !important; appearance: none !important; }
.mcc-modal .mcc-slider { display: inline-block !important; position: relative !important; flex: 0 0 46px !important; width: 46px !important; height: 26px !important; border-radius: 13px !important; background: rgba(120, 128, 145, .55) !important; }
.mcc-modal .mcc-switch input:checked + .mcc-slider { background: var(--mcc-primary) !important; }
.mcc-modal .mcc-cat-name { font-size: 15px !important; font-weight: 600 !important; line-height: 1.3 !important; color: var(--mcc-text) !important; }

/* Tabella dei cookie nella finestra */
.mcc-modal .mcc-ctable { width: 100% !important; margin: 0 !important; border: 0 !important; border-collapse: collapse !important; background: none !important; }
.mcc-modal .mcc-ctable th, .mcc-modal .mcc-ctable td { padding: 5px 8px 5px 0 !important; border: 0 !important; border-bottom: 1px solid var(--mcc-border) !important; background: none !important; text-align: left !important; vertical-align: top !important; font-size: 12px !important; line-height: 1.4 !important; letter-spacing: normal !important; text-transform: none !important; color: var(--mcc-text) !important; }
.mcc-modal .mcc-ctable th { font-weight: 700 !important; }
.mcc-modal .mcc-ctable code { background: none !important; padding: 0 !important; color: inherit !important; font-size: 11.5px !important; }
.mcc-modal .mcc-details[hidden] { display: none !important; }

/* Pulsante flottante */
button.mcc-reopen, button.mcc-reopen:hover, button.mcc-reopen:focus {
	position: fixed !important; bottom: 16px !important; width: 44px !important; height: 44px !important; min-width: 0 !important; min-height: 0 !important;
	display: inline-flex !important; align-items: center !important; justify-content: center !important; margin: 0 !important; padding: 0 !important; line-height: 1 !important;
	background: var(--mcc-bg) !important; color: var(--mcc-primary) !important; border: 1px solid var(--mcc-border) !important; border-radius: 50% !important;
	box-shadow: 0 6px 20px rgba(8, 12, 22, .25) !important; text-transform: none !important;
}
button.mcc-reopen[hidden] { display: none !important; }
button.mcc-reopen.mcc-reopen-left { left: 16px !important; }
button.mcc-reopen.mcc-reopen-right { right: 16px !important; left: auto !important; }

@media (max-width: 640px) {
	.mcc-banner .mcc-title { font-size: 15px !important; }
}
