/**
 * Miglior CRM - cookie banner and preferences (inc/consent.php).
 *
 * "Rifiuta" and "Accetta tutti" share the same style on purpose: the Garante
 * asks for choices of equal visual weight.
 */

/* ==========================================================================
   Banner
   ========================================================================== */

.mc-cc {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: calc(var(--mc-z-overlay) + 10);
	padding: 0 var(--mc-space-3) var(--mc-space-3);
	pointer-events: none;
}

.mc-cc[hidden] {
	display: none;
}

.mc-cc__inner {
	position: relative;
	max-width: 760px;
	margin: 0 auto;
	padding: var(--mc-space-5) var(--mc-space-5) var(--mc-space-4);
	border: 1px solid var(--mc-border);
	border-top: 4px solid var(--mc-accent);
	border-radius: var(--mc-radius-lg);
	background: var(--mc-white);
	box-shadow: 0 18px 50px rgba(11, 26, 46, 0.22);
	color: var(--mc-ink);
	pointer-events: auto;
}

@media (min-width: 720px) {
	.mc-cc {
		padding: 0 var(--mc-space-6) var(--mc-space-6);
	}

	.mc-cc__inner {
		padding: var(--mc-space-6) var(--mc-space-8) var(--mc-space-5);
	}
}

.mc-cc__title {
	margin: 0 var(--mc-space-8) var(--mc-space-2) 0;
	font-family: var(--mc-font-display);
	font-size: 1.125rem;
	font-weight: 800;
	line-height: 1.25;
}

.mc-cc__text {
	margin: 0 0 var(--mc-space-4);
	color: var(--mc-text-2);
	font-size: var(--mc-fs-sm);
	line-height: 1.55;
}

.mc-cc__text a,
.mc-cc-prefs__intro a,
.mc-cc-cat__services a {
	color: var(--mc-brand-dark);
	font-weight: 700;
}

.mc-cc__close {
	position: absolute;
	top: var(--mc-space-3);
	right: var(--mc-space-3);
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--mc-text-muted);
	box-shadow: none;
	cursor: pointer;
}

.mc-cc__close:hover,
.mc-cc__close:focus,
.mc-cc__close:focus-visible {
	background: var(--mc-gray-150);
	color: var(--mc-ink);
}

.mc-cc__actions,
.mc-cc-prefs__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: var(--mc-space-2);
}

.mc-cc__btn {
	flex: 1 1 140px;
	min-height: 44px;
	padding: 0.625rem 1.25rem;
	border: 2px solid var(--mc-brand);
	border-radius: var(--mc-radius-sm);
	background: var(--mc-brand);
	color: var(--mc-white);
	font-family: var(--mc-font-display);
	font-size: var(--mc-fs-sm);
	font-weight: 800;
	line-height: 1.1;
	cursor: pointer;
	transition: background-color var(--mc-dur) var(--mc-ease), border-color var(--mc-dur) var(--mc-ease);
}

@media (min-width: 720px) {
	.mc-cc__btn {
		flex: 0 0 auto;
		min-width: 150px;
	}
}

.mc-cc__btn:hover,
.mc-cc__btn:focus-visible {
	border-color: var(--mc-brand-dark);
	background: var(--mc-brand-dark);
}

.mc-cc__btn--link {
	flex: 1 1 100%;
	min-width: 0;
	border-color: transparent;
	background: transparent;
	color: var(--mc-brand-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (min-width: 720px) {
	.mc-cc__btn--link {
		flex: 0 0 auto;
		margin-right: auto;
		padding-left: 0;
		text-align: left;
	}
}

.mc-cc__btn--link:hover,
.mc-cc__btn--link:focus,
.mc-cc__btn--link:focus-visible {
	border-color: transparent;
	background: transparent;
	color: var(--mc-ink);
}

.mc-cc__btn:focus-visible,
.mc-cc__close:focus-visible {
	outline: 2px solid var(--mc-accent-dark);
	outline-offset: 2px;
}

/* ==========================================================================
   Preferences dialog
   ========================================================================== */

.mc-cc-prefs {
	width: min(640px, calc(100vw - 2rem));
	max-height: calc(100vh - 2rem);
	padding: 0;
	border: 0;
	border-radius: var(--mc-radius-lg);
	background: var(--mc-white);
	box-shadow: 0 30px 80px rgba(11, 26, 46, 0.35);
	color: var(--mc-ink);
}

.mc-cc-prefs::backdrop {
	background: rgba(11, 26, 46, 0.55);
}

.mc-cc-prefs__form {
	padding: var(--mc-space-6);
}

.mc-cc-prefs__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mc-space-4);
	margin-bottom: var(--mc-space-2);
}

.mc-cc-prefs__head .mc-cc__close {
	position: static;
}

.mc-cc-prefs__title {
	margin: 0;
	font-family: var(--mc-font-display);
	font-size: 1.375rem;
	font-weight: 800;
}

.mc-cc-prefs__intro {
	margin: 0 0 var(--mc-space-5);
	color: var(--mc-text-2);
	font-size: var(--mc-fs-sm);
	line-height: 1.55;
}

.mc-cc-cat {
	padding: var(--mc-space-4) 0;
	border-top: 1px solid var(--mc-border);
}

.mc-cc-cat__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mc-space-3);
}

.mc-cc-cat__name {
	font-family: var(--mc-font-display);
	font-weight: 800;
}

.mc-cc-cat__always {
	color: var(--mc-success);
	font-size: var(--mc-fs-2xs);
	font-weight: 800;
}

.mc-cc-cat__desc {
	margin: var(--mc-space-2) 0 0;
	color: var(--mc-text-3);
	font-size: var(--mc-fs-sm);
	line-height: 1.55;
}

.mc-cc-cat__services {
	margin: var(--mc-space-3) 0 0;
	padding: var(--mc-space-3) var(--mc-space-4);
	border-radius: var(--mc-radius-sm);
	background: var(--mc-gray-100);
	color: var(--mc-text-2);
	font-size: var(--mc-fs-xs);
	line-height: 1.55;
	list-style: none;
}

.mc-cc-cat__services li + li {
	margin-top: var(--mc-space-2);
}

/* Switch */
.mc-cc-switch {
	display: inline-flex;
	align-items: center;
	gap: var(--mc-space-3);
	cursor: pointer;
}

.mc-cc-switch input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.mc-cc-switch__track {
	position: relative;
	flex: none;
	width: 44px;
	height: 26px;
	border-radius: 13px;
	background: #9aa6b8;
	transition: background-color var(--mc-dur) var(--mc-ease);
}

.mc-cc-switch__track::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--mc-white);
	box-shadow: var(--mc-shadow-sm);
	transition: transform var(--mc-dur) var(--mc-ease);
}

.mc-cc-switch input:checked + .mc-cc-switch__track {
	background: var(--mc-brand);
}

.mc-cc-switch input:checked + .mc-cc-switch__track::after {
	transform: translateX(18px);
}

.mc-cc-switch input:disabled + .mc-cc-switch__track {
	background: var(--mc-success);
	opacity: 0.6;
}

.mc-cc-switch input:focus-visible + .mc-cc-switch__track {
	outline: 2px solid var(--mc-accent-dark);
	outline-offset: 2px;
}

.mc-cc-prefs__actions {
	margin-top: var(--mc-space-4);
	padding-top: var(--mc-space-4);
	border-top: 1px solid var(--mc-border);
}

/* ==========================================================================
   Cookie policy table
   ========================================================================== */

.mc-cookie-table {
	overflow-x: auto;
}

.mc-cookie-table table {
	min-width: 640px;
	font-size: var(--mc-fs-xs);
}

.mc-cookie-table code {
	white-space: nowrap;
}

@media print {
	.mc-cc,
	.mc-cc-prefs {
		display: none !important;
	}
}

/* Privacy notice under the contact form */
.mc-form-privacy {
	margin-top: var(--mc-space-4);
	color: var(--mc-text-muted);
	font-size: var(--mc-fs-xs);
	line-height: 1.5;
}
