/* Portale21 – banner cookie. Selettori con prefisso e !important mirati: il tema Hub ridefinisce button, label e input. */
.p21-cc[hidden], .p21-cc [hidden] { display: none !important; }
.p21-cc, .p21-cc * { box-sizing: border-box; }
.p21-cc { font-family: Lato, "Helvetica Neue", Arial, sans-serif; font-size: 15px; line-height: 1.5; color: #1a1a1a; }

.p21-cc__bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 2147483000;
	display: flex; gap: 24px; align-items: center; justify-content: space-between;
	padding: 18px max(16px, calc((100% - 1100px) / 2));
	background: #fff; color: #1a1a1a; border-top: 3px solid #b8924a;
	box-shadow: 0 -6px 24px rgba(0, 0, 0, .18);
}
.p21-cc__text { flex: 1 1 auto; max-width: 720px; }
.p21-cc__title { display: block; font-size: 17px; margin: 0 0 4px; color: #111; }
.p21-cc__text p, .p21-cc__intro { margin: 0 0 6px; color: #333; }
.p21-cc__links { margin: 4px 0 0 !important; font-size: 14px; }
.p21-cc__links a { color: #111; text-decoration: underline; }

.p21-cc__actions { display: flex; gap: 10px; flex: 0 0 auto; flex-wrap: wrap; }
.p21-cc button.p21-cc__btn {
	appearance: none; cursor: pointer; margin: 0; min-height: 44px; min-width: 128px; padding: 10px 18px;
	font-weight: 700; font-size: 15px; line-height: 1.2; font-family: inherit !important; text-transform: none !important; letter-spacing: 0 !important;
	border-radius: 3px !important; border: 2px solid #111 !important; box-shadow: none !important;
}
/* "Rifiuta tutto" e "Accetta tutto" hanno lo stesso aspetto, come richiesto dalle linee guida del Garante. */
.p21-cc button.p21-cc__btn--main { background: #111 !important; color: #fff !important; }
.p21-cc button.p21-cc__btn--main:hover, .p21-cc button.p21-cc__btn--main:focus-visible { background: #333 !important; }
.p21-cc button.p21-cc__btn--ghost { background: #fff !important; color: #111 !important; }
.p21-cc button.p21-cc__btn--ghost:hover, .p21-cc button.p21-cc__btn--ghost:focus-visible { background: #f2ede3 !important; }
.p21-cc button:focus-visible, .p21-cc a:focus-visible, .p21-cc input:focus-visible { outline: 3px solid #b8924a; outline-offset: 2px; }

.p21-cc__modal {
	position: fixed; inset: 0; z-index: 2147483001; display: flex; align-items: center; justify-content: center;
	padding: 16px; background: rgba(0, 0, 0, .6);
}
.p21-cc__box { width: 100%; max-width: 620px; max-height: 92vh; overflow: auto; padding: 24px; background: #fff; border-radius: 4px; }
.p21-cc__ptitle { margin: 0 0 6px !important; font-size: 22px !important; color: #111 !important; }
.p21-cc__row { display: flex !important; gap: 14px; align-items: flex-start; padding: 14px 0; border-top: 1px solid #e5e0d8; margin: 0 !important; cursor: pointer; }
.p21-cc__row:first-of-type { margin-top: 10px !important; }
.p21-cc__row input { flex: 0 0 22px; width: 22px !important; height: 22px !important; margin: 2px 0 0 !important; accent-color: #111; }
.p21-cc__rowtext { display: block; }
.p21-cc__rowtext strong { display: block; font-size: 16px; color: #111; }
.p21-cc__rowdesc { display: block; color: #444; font-size: 14px; }
.p21-cc__modal .p21-cc__actions { margin-top: 18px; justify-content: flex-end; }

.p21-cc button.p21-cc__fab {
	position: fixed; left: 12px; bottom: 12px; z-index: 2147482000; min-height: 34px; padding: 6px 14px;
	font-weight: 700; font-size: 13px; line-height: 1; font-family: inherit !important; text-transform: none !important; letter-spacing: 0 !important;
	background: #111 !important; color: #fff !important; border: 2px solid #b8924a !important; border-radius: 20px !important;
	cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, .3) !important;
}

/* Segnaposto dei contenuti esterni (mappe, video) */
.p21-embed { box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 100%; background: #f2ede3; border: 1px solid #e5e0d8; text-align: center; padding: 20px; }
.p21-embed__box { max-width: 460px; }
.p21-embed__box p { margin: 0 0 12px; color: #333; font-size: 15px; }
.p21-embed .p21-embed__btn {
	cursor: pointer; min-height: 44px; padding: 10px 20px; font-weight: 700; font-size: 15px; line-height: 1.2; font-family: inherit !important;
	background: #111 !important; color: #fff !important; border: 2px solid #111 !important; border-radius: 3px !important; text-transform: none !important;
}
.p21-embed .p21-embed__alt { margin-top: 12px; font-size: 14px; }
.p21-embed iframe { width: 100%; border: 0; }

@media (max-width: 760px) {
	.p21-cc__bar { flex-direction: column; align-items: stretch; gap: 14px; padding: 16px; max-height: 88vh; overflow: auto; }
	.p21-cc__actions { flex-direction: column; }
	.p21-cc button.p21-cc__btn { width: 100%; }
	.p21-cc__modal .p21-cc__actions { justify-content: stretch; }
}
@media (prefers-reduced-motion: no-preference) {
	.p21-cc__bar { animation: p21ccIn .25s ease-out; }
	@keyframes p21ccIn { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
}
