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

:root {
	/* Avvisi */
	--aiact-bg: #f6f7f7;
	--aiact-color: #3c434a;
	--aiact-border: #2271b1;
	--aiact-link: #2271b1;
	--aiact-font-size: 13px;
	--aiact-radius: 3px;
	--aiact-border-width: 3px;
	--aiact-border-style: solid;
	--aiact-pad-v: 11px;
	--aiact-pad-h: 14px;
	--aiact-margin-top: 12px;
	--aiact-margin-bottom: 20px;
	--aiact-max-width: none;
	/* Avvisi sotto le immagini */
	--aiact-img-bg: #f6f7f7;
	--aiact-img-color: #3c434a;
	--aiact-img-border: #2271b1;
	--aiact-img-font-size: 12px;
	/* Banner */
	--aiact-banner-bg: #1e1e1e;
	--aiact-banner-col: #ffffff;
	--aiact-banner-link: #8ab4f8;
	--aiact-banner-font-size: 13px;
	--aiact-banner-max-width: 1200px;
	--aiact-banner-card-width: 380px;
	--aiact-banner-offset: 20px;
	--aiact-banner-radius: 0px;
	--aiact-banner-pad-v: 10px;
	--aiact-banner-pad-h: 16px;
	--aiact-banner-border: #1e1e1e;
	--aiact-banner-border-w: 0px;
	--aiact-banner-close-col: #ffffff;
	--aiact-banner-close-bg: #2271b1;
}

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

.aiact-notice {
	display: block;
	box-sizing: border-box;
	margin: var(--aiact-margin-top) 0 var(--aiact-margin-bottom);
	padding: var(--aiact-pad-v) var(--aiact-pad-h);
	background: transparent;
	color: var(--aiact-color);
	border: 0 var(--aiact-border-style) 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: var(--aiact-link);
	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--constrained {
	max-width: var(--aiact-max-width);
}

.aiact-notice--align-center.aiact-notice--constrained,
.aiact-notice--align-right.aiact-notice--constrained {
	margin-left: auto;
	margin-right: auto;
}

.aiact-notice--shadow {
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

.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: calc(var(--aiact-margin-top) * 2);
}

/* ---------- 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: testo ---------- */

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

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

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

.aiact-notice--weight-medium {
	font-weight: 500;
}

.aiact-notice--weight-bold {
	font-weight: 700;
}

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

.aiact-banner {
	box-sizing: border-box;
	background: var(--aiact-banner-bg);
	color: var(--aiact-banner-col);
	border: var(--aiact-banner-border-w) solid var(--aiact-banner-border);
	border-radius: var(--aiact-banner-radius);
	font-size: var(--aiact-banner-font-size);
	line-height: 1.5;
	z-index: 99990;
}

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

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

.aiact-banner--shadow {
	box-shadow: 0 0 14px rgba(0, 0, 0, 0.22);
}

/* Barre a tutta larghezza */

.aiact-banner--bar {
	width: 100%;
}

.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--bar .aiact-banner__inner {
	max-width: var(--aiact-banner-max-width);
	margin: 0 auto;
}

/* Riquadri flottanti negli angoli */

.aiact-banner--card {
	position: fixed;
	width: var(--aiact-banner-card-width);
	max-width: calc(100vw - var(--aiact-banner-offset) * 2);
}

.aiact-banner--bottom-left {
	bottom: var(--aiact-banner-offset);
	left: var(--aiact-banner-offset);
}

.aiact-banner--bottom-right {
	bottom: var(--aiact-banner-offset);
	right: var(--aiact-banner-offset);
}

.aiact-banner--top-left {
	top: var(--aiact-banner-offset);
	left: var(--aiact-banner-offset);
}

.aiact-banner--top-right {
	top: var(--aiact-banner-offset);
	right: var(--aiact-banner-offset);
}

.aiact-banner--card .aiact-banner__inner {
	align-items: flex-start;
}

/* Blocco statico a fine pagina */

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

.aiact-banner--inline-footer .aiact-banner__inner {
	max-width: var(--aiact-banner-max-width);
	margin: 0 auto;
}

/* Contenuto del banner */

.aiact-banner__inner {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: var(--aiact-banner-pad-v) var(--aiact-banner-pad-h);
}

.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--align-center .aiact-banner__text {
	text-align: center;
}

/* Pulsante di chiusura */

.aiact-banner__close {
	flex: 0 0 auto;
	margin: 0;
	color: var(--aiact-banner-close-col);
	font-family: inherit;
	line-height: 1;
	cursor: pointer;
}

.aiact-banner__close--icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	background: var(--aiact-banner-close-bg);
	border: 0;
	font-size: 18px;
}

.aiact-banner__close--shape-circle {
	border-radius: 50%;
}

.aiact-banner__close--shape-square {
	border-radius: 4px;
}

.aiact-banner__close--shape-none {
	background: transparent;
	opacity: 0.8;
}

.aiact-banner__close--text {
	padding: 0;
	background: transparent;
	border: 0;
	font-size: inherit;
	text-decoration: underline;
}

.aiact-banner__close--button {
	padding: 7px 14px;
	background: var(--aiact-banner-close-bg);
	border: 0;
	border-radius: 4px;
	font-size: inherit;
	font-weight: 600;
}

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

.aiact-banner__close:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Animazioni di entrata */

@keyframes aiact-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes aiact-slide-up {
	from { opacity: 0; transform: translateY(100%); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes aiact-slide-down {
	from { opacity: 0; transform: translateY(-100%); }
	to { opacity: 1; transform: translateY(0); }
}

.aiact-banner--anim-fade {
	animation: aiact-fade 0.35s ease-out;
}

.aiact-banner--anim-slide.aiact-banner--bottom-fixed,
.aiact-banner--anim-slide.aiact-banner--bottom-left,
.aiact-banner--anim-slide.aiact-banner--bottom-right {
	animation: aiact-slide-up 0.35s ease-out;
}

.aiact-banner--anim-slide.aiact-banner--top-fixed,
.aiact-banner--anim-slide.aiact-banner--top-left,
.aiact-banner--anim-slide.aiact-banner--top-right {
	animation: aiact-slide-down 0.35s ease-out;
}

/* 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--card {
		width: auto;
		left: var(--aiact-banner-offset);
		right: var(--aiact-banner-offset);
		max-width: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.aiact-banner {
		animation: none;
	}
}

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