/**
 * AI Act Disclosure - stili del frontend.
 * I colori e le misure arrivano dalle variabili generate dalle impostazioni.
 */

:root {
	--aiact-bg: #f6f7f7;
	--aiact-color: #3c434a;
	--aiact-border: #2271b1;
	--aiact-font-size: 13px;
	--aiact-radius: 3px;
	--aiact-border-width: 3px;
	--aiact-img-bg: #f6f7f7;
	--aiact-img-color: #3c434a;
	--aiact-img-border: #2271b1;
	--aiact-img-font-size: 12px;
	--aiact-banner-bg: #1e1e1e;
	--aiact-banner-col: #ffffff;
	--aiact-banner-link: #8ab4f8;
	--aiact-banner-font-size: 13px;
	--aiact-banner-max-width: 1200px;
}

/* ---------- Avvisi: base ---------- */

.aiact-notice {
	display: block;
	box-sizing: border-box;
	margin: 0.75em 0 1.25em;
	padding: 0.7em 0.9em;
	background: transparent;
	color: var(--aiact-color);
	border: 0 solid var(--aiact-border);
	border-radius: var(--aiact-radius);
	font-size: var(--aiact-font-size);
	line-height: 1.5;
	text-align: left;
}

.aiact-notice a {
	color: inherit;
	text-decoration: underline;
}

.aiact-notice p:first-child {
	margin-top: 0;
}

.aiact-notice p:last-child {
	margin-bottom: 0;
}

.aiact-notice__icon {
	margin-right: 0.4em;
}

.aiact-notice--image {
	margin-top: 0.4em;
	color: var(--aiact-img-color);
	border-color: var(--aiact-img-border);
	font-size: var(--aiact-img-font-size);
}

/* Dentro un <figure> l'avviso segue la larghezza dell'immagine. */
figure > .aiact-notice--image {
	width: 100%;
}

.aiact-notice--content,
.aiact-notice--rule {
	margin-top: 2em;
}

/* ---------- Avvisi: varianti di stile ---------- */

.aiact-notice--style-box {
	background: var(--aiact-bg);
	border-left-width: var(--aiact-border-width);
}

.aiact-notice--image.aiact-notice--style-box {
	background: var(--aiact-img-bg);
}

.aiact-notice--style-outline {
	border-width: var(--aiact-border-width);
}

.aiact-notice--style-minimal {
	border-top-width: var(--aiact-border-width);
	border-radius: 0;
	padding-left: 0;
	padding-right: 0;
}

.aiact-notice--style-plain {
	padding-left: 0;
	padding-right: 0;
	opacity: 0.85;
}

/* ---------- Avvisi: allineamento e corsivo ---------- */

.aiact-notice--align-center {
	text-align: center;
}

.aiact-notice--align-right {
	text-align: right;
}

.aiact-notice--italic {
	font-style: italic;
}

/* ---------- Banner di sito ---------- */

.aiact-banner {
	box-sizing: border-box;
	width: 100%;
	background: var(--aiact-banner-bg);
	color: var(--aiact-banner-col);
	font-size: var(--aiact-banner-font-size);
	line-height: 1.5;
	z-index: 99990;
	box-shadow: 0 0 12px rgba(0, 0, 0, 0.18);
}

.aiact-banner[hidden] {
	display: none;
}

.aiact-banner a {
	color: var(--aiact-banner-link);
	text-decoration: underline;
}

.aiact-banner--bottom-fixed {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
}

.aiact-banner--top-fixed {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
}

.aiact-banner--inline-footer {
	position: static;
	box-shadow: none;
}

.aiact-banner__inner {
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: var(--aiact-banner-max-width);
	margin: 0 auto;
	padding: 10px 16px;
}

.aiact-banner__text {
	flex: 1 1 auto;
}

.aiact-banner__text p:first-child {
	margin-top: 0;
}

.aiact-banner__text p:last-child {
	margin-bottom: 0;
}

.aiact-banner__close {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	padding: 0;
	background: transparent;
	border: 1px solid currentColor;
	border-radius: 50%;
	color: inherit;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	opacity: 0.75;
}

.aiact-banner__close:hover,
.aiact-banner__close:focus {
	opacity: 1;
}

/* Spazio per non coprire il contenuto quando la barra e' fissa. */
body.aiact-banner-bottom-fixed {
	padding-bottom: var(--aiact-banner-height, 0px);
}

body.aiact-banner-top-fixed {
	padding-top: var(--aiact-banner-height, 0px);
}

@media (max-width: 600px) {
	.aiact-banner__inner {
		padding: 10px 12px;
	}
}

@media print {
	.aiact-banner {
		display: none;
	}
}
