#footer {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	width: 100%;
	height: 100%;
	/* 	padding: 10px 20px 30px; spazio sopra e sotto */
	box-sizing: border-box;
/* 	background-color: #e5e5e5; */
	color: #555;
	margin-top: 30px;
	overflow-Y: visible;
	overflow-X: hidden;
	border-top: 1px solid #4285F4;
 background: linear-gradient(
    90deg,
    rgba(255, 80, 80, 0.45)   0%,    /* rosso pastello */
    rgba(255, 140, 80, 0.45)  15%,   /* arancio morbido */
    rgba(255, 230, 120, 0.45) 32%,   /* giallo pastello */
    rgba(180, 255, 150, 0.45) 49%,   /* verde lime soft */
    rgba(140, 200, 255, 0.45) 66%,   /* azzurro chiaro */
    rgba(150, 140, 255, 0.45) 84%,   /* blu-viola pastello */
    rgba(205, 150, 255, 0.45) 100%   /* viola lilla */
);
    background-size: 100% 100%;
/*     animation: rainbowShift 10s ease-in-out infinite; */
}

@keyframes rainbowShift {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.footer-top {
	text-align: center;
	margin-top: 20px;
}

.footer-top::before {
	content: '';
	display: block;
	width: 100%;
	height: 1px;
	background-color: #7777;
	margin-top: 4px;
}

.footer-top .copyright {
	display: inline-block;
	font-size: 12px;
	color: #777;
	position: relative;
}

/* .footer-top .copyright::after { */
/*     content: ''; */
/*     display: block; */
/*     width: 100%; */
/*     height: 1px; */
/*     background-color: #777; */
/*     margin-top: 8px; */
/* } */
.footer-top a {
	color: #4285F4;
	text-decoration: none;
	/* 	margin: 0 5px; */
	transition: color 0.5s;
}

.footer-top a:hover {
	color: #fff;
}

/* Contenitore sezioni */
.footer-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	/* 	max-width: 100%; */
	width: 96%;
	margin: 0;
	margin-left: 2%;
	margin-right: 2%;
	/* 	border-bottom: 1px solid #4285F4; */
	gap: 30px;
}

/* Sezioni con larghezze personalizzate */
.footer-section {
	flex: 1 1 auto;
	max-width: 600px;
	width: 400px;
}

.footer-section h4::after {
	content: '';
	display: block;
	width: 100%;
	height: 1px;
	background-color: #555;
	margin-top: 4px;
}

.footer-section.about {
	min-width: 100px;
	max-width: 100%;
	flex: 1 1 400px;
}

.footer-section.links {
	color: #4285F4;
	min-width: 150px;
	max-width: 1500px;
	flex: 0 0 150px;
}

.footer-section.contact {
	min-width: 350px;
	max-width: 350px;
	flex: 0 0 350px;
}

.footer-section.social {
	min-width: 250px;
	max-width: 400px;
	flex: 1 1 350px;
}

/* Titoli sezioni */
.footer-section h4 {
	color: #555;
	margin-bottom: 5px;
	font-size: 15px;
	display: inline-block;
	position: relative;
}

/* Testo e link */
.footer-section p, .footer-section ul, .footer-section li {
	font-size: 14px;
	line-height: 2;
}

/* .footer-section i { */
/* 	margin-right: 8px; */
/* } */
.footer-section ul {
	list-style: none;
	padding: 0;
}

/* Uniforma gli <li> con e senza <a> */
.footer-section ul li {
	display: flex;
	align-items: center;
	gap: 8px; /* distanza uniforme tra icona e testo */
	line-height: 2;
}

/* Gli <a> dentro i <li> mantengono lo stile ma non creano doppio gap */
.footer-section ul li a {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #4285F4;
	text-decoration: none;
	transition: color 0.3s ease;
}

.footer-section ul li a:hover {
	color: #fff;
}

.footer-section .social-icons .social_buttons {
	display: flex;
	align-self: flex-start;
	flex-direction: row;
	justify-content: flex-start;
	gap: 8px;
	width: 100%;
	margin-bottom: 10px;
}

.footer-section .social-icons .social_buttons button {
	width: 25px;
	height: 25px;
	padding-left: 5px;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	font-size: 13px;
	font-weight: bold;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.5s ease;
	margin-right: 5px;
}

.footer_map {
	width: 100%;
	aspect-ratio: 16/10;
	border-radius: 8px;
}

.footer_map iframe {
	border-radius: 8px;
	width: 100%;
	height: 100%;
	border: 0;
	margin: 0;
}
/* Mobile */
@media ( max-width : 1412px) {
	.footer-section.social {
		width: 100%;
		max-width: 100%;
		flex: 1 1 400px;
	}
	.footer-section .social-icons {
		width: 100%;
	}
	.footer_map {
		aspect-ratio: 16/7;
	}
}

@media ( max-width : 900px) {
	.footer-container {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start; /* meglio per controllo */
		gap: 30px;
	}

	/* About sempre al 100% */
	.footer-section.about {
		order: 1;
		width: 100%;
		max-width: 100%;
		flex: 0 0 100%;
	}

	/* Links e Contact affiancate nella seconda riga, con flessibilità */
	.footer-section.links {
		order: 2;
		flex: 1 1 5%; /* può ridursi fino al 40% senza forzare il wrap */
		width: 50%;
		max-width: 50%;
		min-width: 150px; /* non troppo piccola */
	}
	.footer-section.contact {
		order: 3;
		flex: 1 1 350px; /* cresce fino al 50%, si riduce se c'è spazio */
		min-width: 350px; /* per evitare di diventare troppo piccolo */
		max-width: 350px; /* per evitare di diventare troppo piccolo */
		width: 350px; /* per evitare di diventare troppo piccolo */
	}

	/* Social (mappa) sotto tutto, 100% */
	.footer-section.social {
		order: 4;
		width: 100%;
		max-width: 100%;
		flex: 0 0 100%;
	}
}