/* ------------------------- VARIABLES ------------------------- */
:root {

	--primary-font: "Orbitron", sans-serif;
	--secondary-font: "Raleway", sans-serif;

	--line-height: calc(1em + 8px);

	--h1-size: 3rem; /* 48px */
	--h1-line-height: 3.625rem; /* 58px */
	--h1-weight: 600;
	--h1-letter-spacing: 2px;

	--h2-size: 3rem; /* 48px */
	--h2-line-height: 3.625rem; /* 58px */
	--h2-weight: 600;
	--h2-letter-spacing: 2px;

	--h3-size: 1.5625rem; /* 25px */
	--h3-line-height: 2.1875rem; /* 35px */
	--h3-weight: 600;
	--h3-letter-spacing: 1.25px;

	--h4-size: 1.25rem; /* 20px */
	--h4-line-height: 1.5625rem; /* 25px */
	--h4-weight: 400;
	--h4-letter-spacing: normal;

	--h5-size: 1.5rem; /* 24px */
	--h5-line-height: 2rem; /* 32px */
	--h5-weight: 400;
	--h5-letter-spacing: normal;

	--h6-size: 1.25rem; /* 20px */
	--h6-line-height: 1.75rem; /* 28px */
	--h6-weight: 400;
	--h6-letter-spacing: normal;

	--text-size: 0.875rem; /* 14px */
	--text-line-height: 1.375rem; /* 22px */
	--text-weight: 400;
	--text-letter-spacing: normal;

	--text-small-size: 0.875rem;
	--text-small-line-height: 1.25rem;
	--text-small-weight: 400;
	--text-small-letter-spacing: normal;

	--text-btn-size: 0.9375rem;
	--text-btn-line-height: 1.875rem;
	--text-btn-weight: 500;
	--text-btn-letter-spacing: normal;

	--text-header-size: 0.9375rem;
	--text-header-line-height: 1.875rem;
	--text-header-weight: 400;
	--text-header-letter-spacing: normal;

	--text-footer-copyright-size: 0.8125rem;
	--text-footer-copyright-line-height: 1.25rem;
	--text-footer-copyright-weight: 400;
	--text-footer-copyright-letter-spacing: normal;

	--display1-size: 6.25rem;
	--display1-line-height: 6.875rem;
	--display1-weight: 500;
	--display1-letter-spacing: normal;

	--primario: #0076d5; /* primary ---> blu */
	--secondario: #002cb2; /* secondary ---> nessuno */
	--bianco: #ffffff;
	--bianco-scuro: #faf7f3;
	--grigio-scuro: #333333;

	--border-radius: 5px;
	--header-h: 90px;
	--copyright-h: 55px;
	--section-v: 125px;
	--section-v-small: 35px;
	--section-o: 35px;
	--col-d: 10px;

}


/* ------------------------- TEXT ------------------------- */
html {
	font-size: 16px;
}

/* ----- text - line-height ----- */
html, body, footer, h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, span, li, a, [class*="btn"], label, input, select, textarea {

}

/* ----- text - font-style ----- */
html, body, footer, h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, span, li, a, [class*="btn"], label, input, select, textarea {
	font-style: normal;
}

/* ----- text - font-family ----- */
h1, .h1, h2, .h2, h3, .h3 {
	font-family: var(--primary-font) !important;
}
html, body, footer, h4, .h4, h5, .h5, h6, .h6, p, span, li, a, [class*="btn"], label, input, select, textarea {
	font-family: var(--secondary-font) !important;
}

/* ----- text - font-weight ----- */
.text-light { font-weight: 300; }
.text-regular { font-weight: 400; }
.text-medium { font-weight: 500; }
.text-semibold { font-weight: 600; }
.text-bold { font-weight: 700; }

/* ----- text - font-size ----- */
html {

}
.text-display1 {
	font-size: var(--display1-size) !important;
	line-height: var(--display1-line-height) !important;
	font-weight: var(--display1-weight);
	letter-spacing: var(--display1-letter-spacing);
}
h1, .h1 {
	font-size: var(--h1-size) !important;
	line-height: var(--h1-line-height) !important;
	font-weight: var(--h1-weight) !important;
	letter-spacing: var(--h1-letter-spacing);
}
h2, .h2 {
	font-size: var(--h2-size) !important;
	line-height: var(--h2-line-height) !important;
	font-weight: var(--h2-weight) !important;
	letter-spacing: var(--h2-letter-spacing);
}
h3, .h3 {
	font-size: var(--h3-size);
	line-height: var(--h3-line-height) !important;
	font-weight: var(--h3-weight);
	letter-spacing: var(--h3-letter-spacing);
}
h4, .h4 {
	font-size: var(--h4-size);
	line-height: var(--h4-line-height) !important;
	font-weight: var(--h4-weight);
	letter-spacing: var(--h4-letter-spacing);
}
h5, .h5 {
	font-size: var(--h5-size);
	line-height: var(--h5-line-height) !important;
	font-weight: var(--h5-weight);
	letter-spacing: var(--h5-letter-spacing);
}
h6, .h6 {
	font-size: var(--h6-size);
	line-height: var(--h6-line-height) !important;
	font-weight: var(--h6-weight);
	letter-spacing: var(--h6-letter-spacing);
}
p, span, li, a, label, #topbar p, #topbar a {
	font-size: var(--text-size);
	line-height: var(--text-line-height) !important;
	font-weight: var(--text-weight);
	letter-spacing: var(--text-letter-spacing);
}
[class*="btn"] {
	font-size: var(--text-btn-size);
	line-height: var(--text-btn-line-height) !important;
	font-weight: var(--text-btn-weight);
	letter-spacing: var(--text-btn-letter-spacing);
}
input, input.form-control,
select, select.form-control,
textarea, textarea.form-control,
.small, .small *:not(sup) {
	font-size: var(--text-small-size) !important;
	line-height: var(--text-small-line-height) !important;
	font-weight: var(--text-small-weight);
	letter-spacing: var(--text-small-letter-spacing);
}
#mainMenu nav > ul li > a,
nav a,
nav a > p,
nav a > span {
	font-size: var(--text-header-size) !important;
	line-height: var(--text-header-line-height) !important;
	font-weight: var(--text-header-weight) !important;
	letter-spacing: var(--text-header-letter-spacing) !important;
	text-transform: uppercase;
}
footer .copyright span,
footer .copyright span a {
	font-size: var(--text-footer-copyright-size) !important;
	line-height: var(--text-footer-copyright-line-height) !important;
	font-weight: var(--text-footer-copyright-weight) !important;
	letter-spacing: var(--text-footer-copyright-letter-spacing);
}

/* ----- text - color ----- */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
	color: var(--primario);
}
html, body, footer, p, span, li, i, label, input, select, textarea {
	color: var(--grigio-scuro);
}
footer p,
footer .copyright span,
footer .copyright span > a { color: var(--bianco) !important; }
footer .copyright a:hover { color: var(--bianco) !important; text-decoration: underline !important; }
.text-primario { color: var(--primario) !important; }
.text-bianco-scuro { color: var(--bianco-scuro) !important; }
.text-grigio-scuro { color: var(--grigio-scuro) !important; }

/* ----- text - decoration ----- */
.text-underline { text-decoration: underline !important; }

/* ----- text - other ----- */
a, a > * { transition: .2s color ease-in-out; }
a:not(.text-white),
*:not(.text-white) > a:not(.text-white) > * {
	color: var(--primario);
}
a:hover, a:hover > * {
	color: var(--grigio-scuro);
}
a.text-white:hover, a.text-white:hover > *,
.text-white > a:hover, .text-white > a:hover > * {
	color: var(--primario) !important;
}


/* ------------------------- BACKGROUND ------------------------- */

.bg-norepeat { background-repeat: no-repeat; }
.bg-contain { background-size: contain; }
.bg-cover { background-size: cover; }
.bg-10 { background-size: 10%; }
.bg-20 { background-size: 20%; }
.bg-30 { background-size: 30%; }
.bg-35 { background-size: 35%; }
.bg-40 { background-size: 40%; }
.bg-50 { background-size: 50%; }
.bg-60 { background-size: 60%; }
.bg-70 { background-size: 70%; }
.bg-80 { background-size: 80%; }
.bg-90 { background-size: 90%; }
.bg-center { background-position: center; }
.bg-center-top { background-position: center top; }
.bg-center-bottom { background-position: center bottom; }
.bg-left-center { background-position: left center; }
.bg-left-top { background-position: left top; }
.bg-left-bottom { background-position: left bottom; }
.bg-right-center { background-position: right center; }
.bg-right-top { background-position: right top; }
.bg-right-bottom { background-position: right bottom; }
.bg-primario { background-color: var(--primario) !important; }
.bg-bianco-scuro { background-color: var(--bianco-scuro) !important; }
.bg-grigio-scuro { background-color: var(--grigio-scuro) !important; }


/* ------------------------- BTN ------------------------- */

/* ----- btn - general ----- */
[class*="btn"]:not(.mfp-wrap) {
	--h-btn: 55px;
	--p-btn-v: 10px;
	--p-btn-h: 35px;
	--b-btn: 0px;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	height: var(--h-btn);
	padding: calc(var(--p-btn-v) - var(--b-btn)) calc(var(--p-btn-h) - var(--b-btn)) !important;
	border-width: var(--b-btn) !important;
	border-style: solid !important;
	border-radius: var(--border-radius) !important;
	box-shadow: none !important;
	margin-bottom: 0 !important;
	text-transform: uppercase !important;
	transition: .3s all ease-in-out !important;
}
[class*="btn"][class*="-br"] {
	--b-btn: 1.5px;
}

/* ----- btn - generici ----- */
.btn-primario {
	color: white !important;
	background-color: var(--primario) !important;
}
.btn-primario > i, .btn-primario > span { color: white !important; }
.btn-primario:hover { background-color: var(--secondario) !important; }

.btn-slide1 {
	color: white !important;
	background-color: var(--primario) !important;
}
.btn-slide1:hover {
	color: var(--primario) !important;
	background-color: white !important;
}

.btn-slide2 {
	color: white !important;
	background-color: var(--secondario) !important;
}
.btn-slide2:hover {
	color: var(--secondario) !important;
	background-color: white !important;
}

/* ----- btn - base ----- */

/* ----- btn - base - bg ----- */
[class*="btn"][class*="-bg-primario"] { background-color: var(--primario) !important; }
[class*="btn"][class*="-bg-bianco-scuro"] { background-color: var(--bianco-scuro) !important; }
[class*="btn"][class*="-bg-grigio-scuro"] { background-color: var(--grigio-scuro) !important; }
[class*="btn"][class*="-bg-white"] { background-color: white !important; }
[class*="btn"][class*="-bg-transparent"] { background-color: transparent !important; }
[class*="btn"][class*="-bg-blur"] { background-color: rgba(255, 255, 255, .35) !important; backdrop-filter: blur(5px); }

/* ----- btn - base - color ----- */
[class*="btn"][class*="-cl-primario"],
[class*="btn"][class*="-cl-primario"] > i { color: var(--primario) !important; }
[class*="btn"][class*="-cl-bianco-scuro"],
[class*="btn"][class*="-cl-bianco-scuro"] > i { color: var(--bianco-scuro) !important; }
[class*="btn"][class*="-cl-grigio-scuro"],
[class*="btn"][class*="-cl-grigio-scuro"] > i { color: var(--grigio-scuro) !important; }
[class*="btn"][class*="-cl-white"],
[class*="btn"][class*="-cl-white"] > i { color: white !important; }
[class*="btn"][class*="-cl-transparent"],
[class*="btn"][class*="-cl-transparent"] > i { color: transparent !important; }

/* ----- btn - base - border ----- */
[class*="btn"][class*="-br-primario"] { border-color: var(--primario) !important; }
[class*="btn"][class*="-br-bianco-scuro"] { border-color: var(--bianco-scuro) !important; }
[class*="btn"][class*="-br-grigio-scuro"] { border-color: var(--grigio-scuro) !important; }
[class*="btn"][class*="-br-white"] { border-color: white !important; }
[class*="btn"][class*="-br-transparent"] { border-color: transparent !important; }

/* ----- btn - hover ----- */

/* ----- btn - hover - bg ----- */
[class*="btn"][class*="-bg-h-primario"]:hover { background-color: var(--primario) !important; }
[class*="btn"][class*="-bg-h-bianco-scuro"]:hover { background-color: var(--bianco-scuro) !important; }
[class*="btn"][class*="-bg-h-grigio-scuro"]:hover { background-color: var(--grigio-scuro) !important; }
[class*="btn"][class*="-bg-h-white"]:hover { background-color: white !important; }
[class*="btn"][class*="-bg-h-transparent"]:hover { background-color: transparent !important; }
[class*="btn"][class*="-bg-h-blur"]:hover { background-color: rgba(255, 255, 255, .35) !important; backdrop-filter: blur(5px); }

/* ----- btn - hover - color ----- */
[class*="btn"][class*="-cl-h-primario"]:hover,
[class*="btn"][class*="-cl-h-primario"]:hover > i { color: var(--primario) !important; }
[class*="btn"][class*="-cl-h-bianco-scuro"]:hover,
[class*="btn"][class*="-cl-h-bianco-scuro"]:hover > i { color: var(--bianco-scuro) !important; }
[class*="btn"][class*="-cl-h-grigio-scuro"]:hover,
[class*="btn"][class*="-cl-h-grigio-scuro"]:hover > i { color: var(--grigio-scuro) !important; }
[class*="btn"][class*="-cl-h-white"]:hover,
[class*="btn"][class*="-cl-h-white"]:hover > i { color: white !important; }
[class*="btn"][class*="-cl-h-transparent"]:hover,
[class*="btn"][class*="-cl-h-transparent"] > i { color: transparent !important; }

/* ----- btn - hover - border ----- */
[class*="btn"][class*="-br-h-primario"]:hover { border-color: var(--primario) !important; }
[class*="btn"][class*="-br-h-bianco-scuro"]:hover { border-color: var(--bianco-scuro) !important; }
[class*="btn"][class*="-br-h-grigio-scuro"]:hover { border-color: var(--grigio-scuro) !important; }
[class*="btn"][class*="-br-h-white"]:hover { border-color: white !important; }
[class*="btn"][class*="-br-h-transparent"]:hover { border-color: transparent !important; }


/* ------------------------- OBJECT ------------------------- */

/* ----- general ----- */
body:not(.bg-white), body:not(.bg-white) section {
	background-color: white;
}
body:before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	display: block;
	width: 100vw;
	height: 100vh;
	background-image: var(--bg-parallasse, none);
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
	z-index: 0;
}
section {
	padding-top: var(--section-v);
	padding-bottom: var(--section-v);
}
section.section-small {
	padding-top: var(--section-v-small);
	padding-bottom: var(--section-v-small);
}
main section.section-small:first-child {
	padding-top: var(--section-v);
}
main section.section-small:last-child {
	padding-bottom: var(--section-v);
}
.pt-section { padding-top: var(--section-v) !important; }
.pb-section { padding-bottom: var(--section-v) !important; }
.pt-section-small { padding-top: var(--section-v-small) !important; }
.pb-section-small { padding-bottom: var(--section-v-small) !important; }
.container, .container-fluid {
	padding-right: var(--section-o);
	padding-left: var(--section-o);
}
.row {
	margin-right: calc(-1 * var(--col-d));
	margin-left: calc(-1 * var(--col-d));
}
.col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto,
.col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto,
.col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto,
.col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto,
.col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto {
	padding-right: var(--col-d);
	padding-left: var(--col-d);
}
.p-relative { position: relative; }

.ombra-card {
	box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.08);
}

/* ----- salta al contenuto ----- */
/* nascosto con .sr-only, compare in alto a sinistra solo quando riceve il focus da tastiera */
.salta-contenuto.sr-only-focusable:focus,
.salta-contenuto.sr-only-focusable:active {
	position: fixed;
	top: 15px;
	left: 15px;
	z-index: 10000;
	color: var(--bianco) !important;
	background-color: var(--primario);
	border-radius: calc(var(--border-radius) * 2);
	padding: 12px 20px;
	text-decoration: none;
}
/* destinazione del link: riceve il focus ma senza contorno sull'intera area */
main#contenuto:focus {
	outline: none;
}

/* ----- scroll top ----- */
/* ora è un <button>: azzero bordo e padding di default, il resto lo gestisce il tema */
button#scrollTop {
	border: 0;
	padding: 0;
	-webkit-appearance: none;
	appearance: none;
}
#scrollTop:after {
	background-color: var(--primario);
}
#scrollTop:hover i {
	color: var(--bianco);
	transform: none !important;
}

/* ----- spacing ----- */

/* ----- spacing - border radius ----- */
.border-round { border-radius: var(--border-radius); }
.border-round-2 { border-radius: calc(var(--border-radius) * 2); }

/* ----- spacing - padding ----- */
.pr-section { padding-right: var(--section-o) !important; }
.pl-section { padding-left: var(--section-o) !important; }

/* ----- spacing - gap ----- */
.g-5 { gap: 5px; }
.g-10 { gap: 10px; }
.g-15 { gap: 15px; }
.g-20 { gap: 20px; }
.g-25 { gap: 25px; }

/* ----- spacing - ul ----- */
ul {
	margin-bottom: 0 !important;
	margin-left: 40px;
}

/* ----- recaptcha ----- */
.grecaptcha-badge { visibility: hidden; }

/* ----- scroll-behavior ----- */
html {
	scroll-behavior: smooth;
}

/* ----- object - whatsapp contact ----- */
.include-wa-icon {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 99999;
}
.include-wa-icon a:before {
	content: '';
	position: absolute;
	top: -7.5px;
	left: -7.5px;
	display: block;
	width: 55px;
	height: 55px;
	z-index: -1;
	border-radius: 50%;
	background-color: var(--primario);
	transform-origin: center;
	transform: scale(0);
	transition: transform 0.2s ease-in-out;
}
.include-wa-icon a:hover:before {
	transform: scale(1);
}
.include-wa-icon a > img {
	max-width: 40px;
	max-height: 40px;
	transform: scale(1);
	transition: transform 0.3s ease-in-out;
}
.include-wa-icon a:hover > img {
	transform: scale(0.8);
}

/* ----- img cover ----- */
.img-cover {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ----- riga generica ----- */
.riga-generica .col-lg-5:first-child {
	padding: 0 120px 0 95px;
}
.riga-generica .col-lg-5:last-child {
	padding: 0 95px 0 120px;
}

/* ----- card generica ----- */
.card-generica {
	display: flex;
	flex-direction: column;
	height: 100%;
	border-radius: var(--border-radius);
	overflow: hidden;
}
.card-generica .card-generica-img img {
	width: 100%;
}
.card-generica .card-generica-testi {
	height: 100%;
	background-color: var(--bianco-scuro);
	padding: var(--section-o);
}

/*
----- img scacchiera -----
.colonna-img-scacchiera {
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	height: var(--h-col);
	padding-right: 0 !important;
	padding-left: 0 !important;
}
.colonna-img-scacchiera img {
	transform: scale(var(--scale));
}
*/

/*
----- video sfondo -----
.video-sfondo {
	--w-vid: 1920px;
	--h-vid: 650px;
	position: absolute;
	top: calc(100% - var(--h-vid) / 2);
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: var(--h-vid);
	z-index: -1;
	overflow: hidden;
}
.video-sfondo video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
*/

/*
----- imageGroup -----
#imageGroup {
  display: grid;
  grid-gap: 25px;
  align-items: center;
  justify-items: center;
}
#imageGroup.grid-img-home {
  grid-template-areas:
		'img1 img2'
    'img1 img3';
}
#imageGroup [id^="imgGallery"] {
  display: contents;
}
#imageGroup [id^="imgGallery"] img {
	border-radius: var(--border-radius);
	width: 100%;
}
#imageGroup .grid-img-gallery-control {
	display: none;
}
*/

/* ----- divisore ----- */
.divisore {
	--w: 25px;
	--p: 25px;
	--n: 1;
	display: block;
	width: calc(var(--w) * var(--n));
	height: 1.5px;
	margin-top: var(--p);
	margin-bottom: var(--p);
}
h2 + .divisore, .h2 + .divisore {
	margin-top: calc(10px + var(--p));
	margin-bottom: calc(10px + var(--p));
}
.divisore.divisore-primario { background-color: var(--primario); }
.divisore.divisore-bianco { background-color: var(--bianco); }
.divisore.divisore-bianco-scuro { background-color: var(--bianco-scuro); }
.divisore.divisore-grigio-scuro { background-color: var(--grigio-scuro); }
.divisore.divisore-x1 { --n: 1; }
.divisore.divisore-x2 { --n: 2; }
.divisore.divisore-x3 { --n: 3; }
.divisore.divisore-x4 { --n: 4; }
.divisore.divisore-x5 { --n: 5; }

/* ----- checkbox-form ----- */
.checkbox-form {
	display: flex;
	position: relative;
}
.checkbox-form > input {
	position: relative;
	z-index: 10;
	opacity: 0 !important;
	margin-right: 10px;
}
.checkbox-form .privacyContatti {
	display: block;
	position: absolute;
	z-index: 5;
	top: 2px;
	width: 16px;
	height: 16px;
	background-color: transparent;
	border: 1px solid var(--grigio-scuro);
	border-radius: 5px;
}
.checkbox-form .privacyContatti:after {
	content: ' ';
	display: none;
	position: relative;
	top: 2px;
	left: 5px;
	width: 4px;
	height: 8px;
	border: solid var(--primario);
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
}
.checkbox-form > input:checked ~ .privacyContatti:after {
	display: block;
}
.checkbox-form label,
.checkbox-form label > a {
	font-size: 12px !important;
	line-height: var(--line-height) !important;
	letter-spacing: 0 !important;
}
.checkbox-form label {
	color: var(--grigio-scuro);
}
.checkbox-form label > a {
	color: var(--grigio-scuro) !important;
	text-decoration: underline !important;
}
.checkbox-form label > a:hover {
	color: var(--primario) !important;
}
.checkbox-form.checkbox-center {
	justify-content: center;
	align-items: center;
}
.checkbox-form.checkbox-center > input {
	position: relative;
	margin-right: 0;
	right: -14px;
}
.checkbox-form.checkbox-center .privacyContatti {
	position: relative;
	top: -1px;
	margin-right: 8px;
}

/* ----- bg-pittogramma ----- */
[class*="bg-pittogramma"]:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: cover;
	opacity: .03;
	z-index: -1;
}
.bg-pittogramma-white:before {
	background-image: url(/pages/_assets/nice/images/logo-pittogramma-white.svg);
}
.bg-pittogramma-mappa-white:before {
	--bg-p: 40px;
	top: var(--bg-p);
	left: var(--bg-p);
	width: calc(100% - (var(--bg-p) * 2));
	height: calc(100% - (var(--bg-p) * 2));
	background-position: center;
	background-size: contain;
	opacity: .05;
}

/* ----- pattern animato ----- */
/* il livello è fixed (parallasse) e clip-path lo ritaglia sulla sezione; si sposta di una tessera per il loop */
.pattern-animato,
.pattern-animato-sfondo {
	--pattern-w: 189px;
	--pattern-h: 95px;
	--pattern-durata: 6.67s; /* 189px in 6.67s ≈ 28px/s */
}
.pattern-animato {
	position: relative;
	isolation: isolate;
	clip-path: inset(0);
}
.pattern-animato:before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	display: block;
	width: calc(100vw + var(--pattern-w));
	height: calc(100vh + var(--pattern-h));
	background-image: url(/pages/_assets/nice/images/pattern-sfondo.svg);
	background-repeat: repeat;
	background-size: var(--pattern-w) var(--pattern-h);
	animation: patternScorri var(--pattern-durata) linear infinite;
	will-change: transform;
	pointer-events: none;
	z-index: -1;
}
.pattern-animato-statico:before {
	position: absolute;
	width: calc(100% + var(--pattern-w));
	height: calc(100% + var(--pattern-h));
}
@keyframes patternScorri {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(calc(-1 * var(--pattern-w)), 0, 0); }
}
/* variante per contenitori con scroll (menu): pattern come background dell'elemento, nessun livello che allarga l'area scrollabile */
.pattern-animato-sfondo {
	background-image: url(/pages/_assets/nice/images/pattern-sfondo.svg);
	background-repeat: repeat;
	background-size: var(--pattern-w) var(--pattern-h);
	animation: patternScorriSfondo var(--pattern-durata) linear infinite;
}
@keyframes patternScorriSfondo {
	from { background-position: 0 0; }
	to { background-position: calc(-1 * var(--pattern-w)) 0; }
}
@media (prefers-reduced-motion: reduce) {
	.pattern-animato:before,
	.pattern-animato-sfondo { animation: none; }
}

/* ----- el icona ----- */
div.el-icona {
	--d: 80px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: var(--d);
	height: var(--d);
	background-color: var(--primario);
	border-radius: 50%;
	margin: auto;
}
div.el-icona.el-icona-white {
	background-color: white;
}
div.el-icona i {
	color: white;
}
div.el-icona.el-icona-white i {
	color: var(--secondario);
}

/* ----- carosello ----- */
.carosello-controlli-custom {
	--w-freccia: 55px;
	--h-freccia: 55px;
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 25px;
}
.carosello-controlli-custom .carosello-freccia {
	position: relative;
	color: var(--bianco);
	background-color: var(--primario);
	border-radius: 10px;
	border-width: 1.5px;
	border-color: var(--primario);
	transition: background-color .3s ease-in-out;
}
.carosello-controlli-custom .carosello-freccia:hover,
.carosello-controlli-custom .carosello-freccia:active,
.carosello-controlli-custom .carosello-freccia:focus {
	background-color: transparent;
	outline: none;
}
.carosello-controlli-custom .carosello-freccia i {
	color: var(--bianco);
	transition: color .3s ease-in-out;
}
.carosello-controlli-custom .carosello-freccia:hover i,
.carosello-controlli-custom .carosello-freccia:active i,
.carosello-controlli-custom .carosello-freccia:focus i {
	color: var(--primario);
}

/* ----- gruppo foto ----- */
.gruppo-foto-2 {
	display: flex;
	align-items: center;
	gap: calc(var(--col-d) * 2);
}
.gruppo-foto-2 img {
	max-width: calc(50% - var(--col-d));
}
.gruppo-foto-3 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(2, auto);
	grid-auto-flow: column;
	gap: calc(var(--col-d) * 2);
}
.gruppo-foto-3 img:last-child {
	grid-row: 1 / 3;
}
.gruppo-foto-4 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(3, auto);
	grid-auto-flow: column;
	gap: calc(var(--col-d) * 2);
}
.gruppo-foto-4 img:first-child {
	grid-row: 1 / 3;
}
.gruppo-foto-4 img:last-child {
	grid-row: 2 / 4;
}


/* ------------------------- HEADER ------------------------- */

/* ----- header ----- */
#header,
#header .header-inner,
#header .header-inner .container {
	height: var(--header-h);
}
#header .header-inner .container {
	--pt-header: 35px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	padding-top: var(--pt-header) !important;
	padding-right: var(--section-o) !important;
	padding-left: var(--section-o) !important;
}
#header .header-inner .container #logo,
#header .header-inner .container > #mainMenu,
#header .header-inner .container .header-extras {
	display: flex;
	height: calc(var(--header-h) - var(--pt-header));
}
#header .header-inner .container .header-extras {
	position: fixed;
	top: var(--pt-header) !important;
	right: var(--section-o) !important;
}
#header .header-inner .container #logo {
	float: none !important;
	max-height: calc(var(--header-h) - var(--pt-header));
	height: 100%;
}
#header .header-inner .container #logo a > img {
	display: block;
	max-height: calc(var(--header-h) - var(--pt-header));
}
#header .header-inner .container > #mainMenu,
#header .header-inner .container > #mainMenu * {
	transition: .2s all ease-in-out !important;
}
#header .header-inner .container #mainMenu nav {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0 40px;
}
#header .header-inner .container #mainMenu nav > ul {
	display: flex;
	column-gap: 30px;
	height: 100%;
}
#header .header-inner .container #mainMenu nav > ul li {
	margin: 0;
}
#header .header-inner .container #mainMenu nav > ul > li,
#header .header-inner .container #mainMenu nav > ul > li > a:not(.action-button) {
	display: flex;
	align-items: center;
	height: 100%;
}
#header .header-inner .container #mainMenu nav > ul > li.dropdown > span.dropdown-arrow {
	display: none;
}
#header .header-inner .container #mainMenu nav > ul > li > a {
	color: white;
	padding: 5px 10px;
}
#header .header-inner .container #mainMenu nav > ul > li > a > i {
	color: white;
	width: 100%;
	margin-right: 0;
	margin-left: 5px;
	font-size: var(--text-header-size);
}
#header .header-inner .container #mainMenu nav > ul > li > a.action-button {
	background-color: var(--primario);
	border: 1px solid var(--primario);
	border-radius: 5px;
}
#header .header-inner .container #mainMenu nav > ul > li > a.action-button:hover {
	color: var(--primario);
	background-color: transparent;
}
#header .header-inner .container #mainMenu nav > ul li.current > a:not(.action-button),
#header .header-inner .container #mainMenu nav > ul li:hover > a:not(.action-button),
#header .header-inner .container #mainMenu nav > ul li:focus > a:not(.action-button),
#header .header-inner .container #mainMenu nav > ul li.current > a:not(.action-button) > i,
#header .header-inner .container #mainMenu nav > ul li:hover > a:not(.action-button) > i,
#header .header-inner .container #mainMenu nav > ul li:focus > a:not(.action-button) > i,
#header.sticky-active .header-inner .container #mainMenu nav > ul li.current > a:not(.action-button),
#header.sticky-active .header-inner .container #mainMenu nav > ul li:hover > a:not(.action-button),
#header.sticky-active .header-inner .container #mainMenu nav > ul li:focus > a:not(.action-button),
#header.sticky-active .header-inner .container #mainMenu nav > ul li.current > a:not(.action-button) > i,
#header.sticky-active .header-inner .container #mainMenu nav > ul li:hover > a:not(.action-button) > i,
#header.sticky-active .header-inner .container #mainMenu nav > ul li:focus > a:not(.action-button) > i {
	color: var(--primario);
}
#header .header-inner .container #mainMenu nav > ul > li ul.dropdown-menu {
	--w-dropmenu: 180px;
	top: 100%;
	flex-direction: column;
	row-gap: 20px;
	width: var(--w-dropmenu);
	min-width: unset;
	padding: 20px;
	border: none;
	border-top-right-radius: 0;
	border-top-left-radius: 0;
	border-bottom-right-radius: var(--border-radius);
	border-bottom-left-radius: var(--border-radius);
	background-color: rgba(255, 255, 255, .35);
	background-blend-mode: hard-light;
	backdrop-filter: blur(5px);
	box-shadow: 0 4px 6px 0 rgba(0, 0, 0, .1);
	margin-top: 0;
	z-index: 0;
}
#header .header-inner .container #mainMenu nav > ul > li:not(.hover-active):hover > ul {
	display: flex;
}
#header .header-inner .container #mainMenu nav > ul > li ul.dropdown-menu > li > a {
	color: white;
	padding: 0;
}

/* ----- header - sticky ----- */
#header.sticky-active .header-inner {
	background-color: transparent;
	box-shadow: unset !important;
}
#header.sticky-active .header-inner .container:before {
	background-color: white;
}
#header.sticky-active .header-inner .container #mainMenu nav > ul > li > a:not(.action-button),
#header.sticky-active .header-inner .container #mainMenu nav > ul > li > a:not(.action-button) > i {
	color: var(--grigio-scuro);
}
#header.sticky-active .header-inner .container #mainMenu nav > ul > li ul.dropdown-menu {
	background-color: white;
}
#header.sticky-active .header-inner .container #mainMenu nav > ul > li ul.dropdown-menu > li > a {
	color: var(--grigio-scuro);
}

/* ----- header - cambio-lingue ----- */
#header .header-inner .container .header-extras .cambio-lingue {
	--d: 50px;
	float: none;
	position: relative;
	display: flex !important;
	justify-content: center;
	align-items: center;
	width: var(--d);
	height: var(--d);
	color: white;
	background-color: var(--primario);
	border-radius: calc(var(--border-radius) * 2);
	z-index: 0;
}
#header .header-inner .container .header-extras .cambio-lingue:hover:before {
	background-color: white;
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}
#header .header-inner .container .header-extras .cambio-lingue i {
	color: white;
	z-index: 1;
}
/* pulsante che apre il dropdown (da tastiera/touch): trasparente, riempie il quadrato */
#header .header-inner .container .header-extras .cambio-lingue .toggle-cambio-lingua {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	color: inherit;
	font-size: inherit;
	line-height: inherit;
	background: transparent;
	border: 0;
	border-radius: inherit;
	padding: 0;
	margin: 0;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
#header .header-inner .container .header-extras .cambio-lingue ul.p-dropdown-content {
	top: 100%;
	left: unset;
	right: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	width: 150px;
	min-width: unset;
	border: none;
	border-radius: var(--border-radius) !important;
	z-index: -1;
}
#header .header-inner .container .header-extras .cambio-lingue ul.p-dropdown-content {
	top: 0;
	left: unset;
	right: 100%;
	width: auto;
	padding: 10px;
	border-radius: 5px;
}
#header .header-inner .container .header-extras .cambio-lingue ul.p-dropdown-content li {
	border-radius: 5px;
	transition: .2s background-color ease-in-out !important;
}
#header .header-inner .container .header-extras .cambio-lingue ul.p-dropdown-content li.lingua-selezionata,
#header .header-inner .container .header-extras .cambio-lingue ul.p-dropdown-content li:hover {
	background-color: var(--primario);
}
#header .header-inner .container .header-extras .cambio-lingue ul.p-dropdown-content li a {
	transition: .2s color ease-in-out !important;
}
#header .header-inner .container .header-extras .cambio-lingue ul.p-dropdown-content li.lingua-selezionata a,
#header .header-inner .container .header-extras .cambio-lingue ul.p-dropdown-content li:hover a {
	color: white;
}
#header .header-inner .container #mainMenu nav > ul .cambio-lingue ul.p-dropdown-content:before,
#header .header-inner .container #mainMenu nav > ul .cambio-lingue ul.p-dropdown-content:after {
	--d: 20px;
	content: '';
	position: absolute;
	top: 1px;
	display: block;
	width: var(--d);
	height: var(--d);
	background-color: transparent;
	overflow: hidden;
	z-index: -1;
}
#header:not(.sticky-active) .header-inner .container #mainMenu nav > ul .cambio-lingue ul.p-dropdown-content:before,
#header:not(.sticky-active) .header-inner .container #mainMenu nav > ul .cambio-lingue ul.p-dropdown-content:after { content: none; }
#header .header-inner .container #mainMenu nav > ul .cambio-lingue ul.p-dropdown-content:before {
	left: unset;
	right: 100%;
	border-top-right-radius: var(--border-radius);
	box-shadow: 10px -10px 0 10px white;
}
#header .header-inner .container #mainMenu nav > ul .cambio-lingue ul.p-dropdown-content:after {
	left: 100%;
	right: unset;
	border-top-left-radius: var(--border-radius);
	box-shadow: -10px -10px 0 10px white;
}
#header .header-inner .container #mainMenu nav > ul .cambio-lingue li {

}


/* ----- header - sidebar ----- */
[class*="btn"].btn-apri-menu {
	--h-btn: 50px;
	width: var(--h-btn);
	padding-right: var(--p-btn-v) !important;
	padding-left: var(--p-btn-v) !important;
	border-radius: calc(var(--border-radius) * 2) !important;
}
[class*="btn"].btn-apri-menu:active {
	transform: scale(.96);
}
button.btn-apri-menu {
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
.menu-side-container {
	position: absolute;
	z-index: 1000;
	transition: all 0.3s ease-in-out;
}
.menu-side-container.hide-menu {
	opacity: 0;
	visibility: hidden;
}
.menu-side-container.show-menu {
	opacity: 1;
	visibility: visible;
}
.menu-side-container .menu-side-close {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	display: block;
	width: 100vw;
	height: 100vh;
	background-color: black;
	opacity: 0.2;
	z-index: 0;
}
.menu-side-container .menu-side-content {
	--p-sidebar-v: 50px;
	--p-sidebar-h: 75px;
	--w-sidebar: 30vw;
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	width: var(--w-sidebar);
	height: 100vh;
	text-align: left;
	background-color: var(--primario);
	padding: var(--p-sidebar-v) var(--p-sidebar-h);
	overflow-y: scroll;
	z-index: 100;
	transition: all 0.3s ease-in-out;
}
.menu-side-container.hide-menu .menu-side-content {
	transform: translateX(calc(-1 * var(--w-sidebar)));
	opacity: 0;
}
.menu-side-container.show-menu .menu-side-content {
	transform: translateX(0);
	opacity: 1;
}

/* ----- header - sidebar - header ----- */
.menu-side-container .menu-side-content .menu-side-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 50px;
}
.menu-side-container .menu-side-content .menu-side-header .menu-side-logo img {
	display: block;
	width: 90px;
	height: auto;
}
/* stesse metriche del link <a> che sostituisce */
.menu-side-container .menu-side-content .menu-side-header .chiudi-menu-laterale {
	color: inherit;
	font-size: var(--text-size);
	line-height: var(--text-line-height);
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
.menu-side-container .menu-side-content .menu-side-header .chiudi-menu-laterale i {
	transform: rotate(0deg);
	transition: all 0.25s ease-in-out;
}
.menu-side-container .menu-side-content .menu-side-header .chiudi-menu-laterale:hover i {
	transform: rotate(90deg);
}

/* ----- header - sidebar - body ----- */
.menu-side-container .menu-side-content .menu-side-body {
	height: 100%;
}
.menu-side-container .menu-side-content .menu-side-body nav > ul#menuPrincipale {
	list-style: none;
	margin-left: 0;
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li {
	--h-li: 50px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	min-height: var(--h-li);
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li:not(:last-child) {
	margin-bottom: 10px;
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li a {
	display: flex;
	align-items: center;
	width: 100%;
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li a span,
.menu-side-container .menu-side-content .menu-side-body nav > ul li a i {
	color: var(--bianco);
	transition: color .3s ease-in-out;
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li.attivo > a span,
.menu-side-container .menu-side-content .menu-side-body nav > ul li.attivo > a i,
.menu-side-container .menu-side-content .menu-side-body nav > ul li a:hover span,
.menu-side-container .menu-side-content .menu-side-body nav > ul li a:hover i {
	color: var(--bianco);
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li a span {
	--p: 10px;
	font-family: var(--primary-font) !important;
	font-size: var(--h3-size) !important;
	line-height: var(--h3-line-height) !important;
	letter-spacing: var(--h3-letter-spacing) !important;
	white-space: nowrap;
	position: relative;
	padding-top: var(--p);
	padding-bottom: var(--p);
	padding-right: var(--p);
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li a span:before {
	--h: 1.5px;
	content: '';
	position: absolute;
	bottom: calc(-1 * var(--h) + var(--p));
	left: 0;
	display: block;
	width: 0;
	height: var(--h);
	background-color: var(--bianco);
	transition: width .3s ease-in-out;
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li.attivo > a span:before,
.menu-side-container .menu-side-content .menu-side-body nav > ul li a:hover span:before {
	width: calc(100% - var(--p));
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li a i {
	display: flex;
	align-items: center;
	width: 100%;
	height: var(--h-li);
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li a i:before {
	transition: transform .2s ease-in-out;
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li.mostra-sottomenu a i:before,
.menu-side-container .menu-side-content .menu-side-body nav > ul li a i:hover:before {
	transform: rotate(90deg);
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li ul.sottomenu {
	list-style: none;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	transition: max-height .35s ease-in-out, opacity .3s ease-in-out;
}
.menu-side-container .menu-side-content .menu-side-body nav > ul li.mostra-sottomenu ul.sottomenu {
	max-height: 500px;
	opacity: 1;
}

/* ----- header - sidebar - footer ----- */
.menu-side-container .menu-side-content .menu-side-footer .gruppo-icone-social {
	display: flex;
	align-items: center;
	gap: 15px;
}

/* ----- icona social (sidebar e footer) ----- */
.icona-social,
.footer-social {
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: var(--bianco);
	border: 2px solid var(--bianco);
	border-radius: calc(var(--border-radius) * 2);
	transition: background-color .3s ease-in-out;
}
.icona-social {
	width: 50px;
	height: 50px;
}
.icona-social i,
.footer-social i {
	font-size: 1.375rem;
	color: var(--primario) !important;
	transition: color .3s ease-in-out;
}
.icona-social:hover,
.icona-social:focus-visible,
.footer-social:hover,
.footer-social:focus-visible {
	background-color: transparent;
}
.icona-social:hover i,
.icona-social:focus-visible i,
.footer-social:hover i,
.footer-social:focus-visible i {
	color: var(--bianco) !important;
}


/* ------------------------- SUBHEADER ------------------------- */
#subheader {
	--subheader-h: 450px;
	position: relative;
	height: min(var(--subheader-h), 100vh);
	background-color: transparent;
	padding-top: var(--header-h);
	padding-bottom: 70px;
	margin-top: calc(-1 * var(--header-h));
}
/* gradiente solo senza pattern: con specificità ID sovrascriverebbe il livello del pattern animato */
#subheader:not(.pattern-animato):before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.5));
}
#subheader .container {
	display: flex;
	justify-content: center;
	align-items: flex-end;
}
#subheader .subheader-titolo {
	margin-bottom: 15px;
}
#subheader .subheader-titolo > .subheader-titolo-blog {
	font-size: var(--h3-size) !important;
}
#subheader .subheader-sottotitolo {
	margin-bottom: 50px;
}
#subheader .breadcrumb {
	padding: 5px 0;
	margin-bottom: 0;
}
#subheader .breadcrumb ul {
	display: flex;
	justify-content: center;
	align-items: center;
}
#subheader .breadcrumb ul li,
#subheader .breadcrumb ul li a,
#subheader .breadcrumb ul li a span {
	color: white !important;
}
/*
#subheader .breadcrumb ul li {
	opacity: 1;
}
*/
#subheader .breadcrumb ul li:not(:last-child) a span,
#subheader .breadcrumb ul li:before {
	opacity: 0.8;
}
#subheader .breadcrumb ul li a span {
	text-transform: lowercase;
	font-style: italic;
}
#subheader .breadcrumb ul li:last-child a span {
	color: white !important;
}
#subheader .breadcrumb ul li + li:before {
	content: '\2f';
	font-family: "Font Awesome 7 Pro" !important;
}

/* ----- subheader - blog ----- */
#subheader.subheader-blog .breadcrumb {
	display: flex;
	justify-content: center;
}
#subheader.subheader-blog .breadcrumb ul {
	align-items: start;
}
#subheader.subheader-blog .breadcrumb ul li {
	display: flex;
	flex: 1 0 auto;
}
#subheader.subheader-blog .breadcrumb ul li:last-child {
	flex: 1 1 100%;
	align-items: start;
	justify-content: flex-start;
	text-align: left;
}


/* ------------------------- FOOTER ------------------------- */

/* ----- footer - content ----- */
#footer {
	position: relative;
	background-color: transparent;
}
#footer .footer-content {
	background-color: transparent;
	padding: var(--section-v) 0 50px;
}
#footer .footer-griglia {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 50px;
}
#footer .footer-logo {
	padding: 0;
	border: none !important;
	margin: 0;
}
#footer .footer-logo img {
	display: block;
	width: 180px;
	height: auto;
}
#footer .footer-contatti {
	display: flex;
	gap: 20px;
	width: 380px;
}
#footer .footer-contatti .footer-social {
	flex: 0 0 50px;
}
#footer .footer-pulsanti {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 20px;
}
#footer .footer-pulsante {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	height: 50px;
	color: var(--primario) !important; /* il tema forza grigio e peso 400 su #footer a */
	font-size: 1rem;
	line-height: 1.5rem !important;
	font-weight: 700 !important;
	background-color: var(--bianco);
	border: 2px solid var(--bianco);
	border-radius: calc(var(--border-radius) * 2);
	transition: background-color .3s ease-in-out, color .3s ease-in-out, transform .15s ease-out;
}
#footer .footer-pulsante i {
	font-size: .9375rem;
	color: var(--primario);
	transition: color .3s ease-in-out;
}
#footer .footer-pulsante:hover,
#footer .footer-pulsante:focus-visible,
#footer .footer-pulsante:hover i,
#footer .footer-pulsante:focus-visible i {
	color: var(--bianco) !important;
}
#footer .footer-pulsante:hover,
#footer .footer-pulsante:focus-visible {
	background-color: transparent;
}
#footer .footer-pulsante:active {
	transform: scale(.98);
}

/* ----- footer - copyright ----- */
footer .copyright {
	background-color: transparent;
	padding: 0 0 25px;
}
footer .copyright .container > .row {
	border-top: 2px solid var(--bianco);
	padding-top: 25px;
	margin-right: 0;
	margin-left: 0;
}
footer .copyright .container > .row > [class*="col"] {
	padding-right: 0;
	padding-left: 0;
}


/* ------------------------- SLIDER ------------------------- */
#slider {
	min-height: 850px;
	top: calc(-1 * var(--header-h)) !important;
	margin-bottom: calc(-1 * var(--header-h)) !important;
}
#slider .slide.overlay-sfondo:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.2);
}
#slider .container {
	align-self: center !important;
	max-width: 1200px;
	padding: 90px 0 70px 0;
}
#slider .container-immagine-aggiuntiva {
	--gap: 25px;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--gap);
}
#slider .container-immagine-aggiuntiva > div {
	width: calc(50% - var(--gap) / 2);
}
#slider.inspiro-slider .flickity-button { transform: scale(0.6); }
#slider.inspiro-slider .flickity-button.previous { transform-origin: left top; }
#slider.inspiro-slider .flickity-button.next { transform-origin: right top; }


/* ------------------------- HOME ------------------------- */

/* ----- home - testi introduttivi delle sezioni ----- */
.testo-intro {
	max-width: 640px;
}

/* ----- home - titolo card (h3 ridotto: 20/25) ----- */
.titolo-card {
	font-size: var(--h4-size) !important;
	line-height: var(--h4-line-height) !important;
	letter-spacing: 1px;
}

/* ----- home - punti di forza ----- */
.punti-forza {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.punto-forza {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
	background-color: var(--primario);
	border-radius: calc(var(--border-radius) * 2);
	padding: 25px 30px;
}
.punto-forza .punto-forza-titolo {
	display: flex;
	align-items: center;
	gap: 15px;
	white-space: nowrap;
}
.punto-forza .punto-forza-titolo sup {
	font-size: .6em;
	top: -.7em;
	margin-left: -10px;
}
.punto-forza .punto-forza-titolo i {
	flex: 0 0 auto;
	font-size: var(--h3-size);
}
.punto-forza p {
	text-align: center;
	font-size: 1rem;
	line-height: 1.625rem !important;
}

/* ----- home - carosello gli spazi ----- */
.carosello-spazi .carosello-slide img {
	display: block;
	width: 100%;
	object-fit: cover;
	pointer-events: none;
}
.carosello-spazi .carosello-lightbox {
	display: block;
	cursor: zoom-in;
	-webkit-user-drag: none;
}

/* ----- home - accordion ----- */
.accordion-pl-gruppo {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.accordion-pl {
	--bg-acc: var(--bianco);
	--cl-acc: var(--primario);
	background-color: var(--bg-acc);
	border-radius: calc(var(--border-radius) * 2);
	padding: 25px 30px 20px;
}
.accordion-pl.accordion-pl-blu {
	--bg-acc: var(--primario);
	--cl-acc: var(--bianco);
}
.accordion-pl .accordion-pl-head {
	display: flex;
	align-items: center;
	gap: 15px;
	width: 100%;
	font-family: var(--secondary-font);
	text-align: left;
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
}
.accordion-pl .accordion-pl-head:focus-visible {
	outline: 2px solid var(--cl-acc);
	outline-offset: 6px;
	border-radius: 2px;
}
.accordion-pl .accordion-pl-head .accordion-pl-titolo {
	flex: 1 1 auto;
	color: var(--cl-acc);
	font-family: var(--primary-font) !important;
	font-size: var(--h3-size);
	line-height: var(--h3-line-height) !important;
	letter-spacing: var(--h3-letter-spacing);
	text-transform: uppercase;
}
.accordion-pl.accordion-pl-faq .accordion-pl-head .accordion-pl-titolo,
.accordion-pl.accordion-pl-blu .accordion-pl-head .accordion-pl-titolo {
	font-size: var(--h4-size);
	line-height: var(--h4-line-height) !important;
	letter-spacing: 1px;
}

/* segno +/- : la barra verticale collassa quando l'accordion è aperto */
.accordion-pl .accordion-pl-segno {
	--d: 18px;
	position: relative;
	flex: 0 0 var(--d);
	width: var(--d);
	height: var(--d);
}
.accordion-pl .accordion-pl-segno:before,
.accordion-pl .accordion-pl-segno:after {
	content: '';
	position: absolute;
	top: calc(50% - 1.5px);
	left: 0;
	width: 100%;
	height: 3px;
	background-color: var(--cl-acc);
	border-radius: 2px;
	transition: transform .35s cubic-bezier(.16, 1, .3, 1);
}
.accordion-pl .accordion-pl-segno:after {
	transform: rotate(90deg);
}
.accordion-pl.aperto .accordion-pl-segno:after {
	transform: rotate(90deg) scaleX(0);
}

/* apertura animata con grid-template-rows: niente calcolo altezze in JS */
.accordion-pl .accordion-pl-body {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .4s cubic-bezier(.16, 1, .3, 1);
}
.accordion-pl.aperto .accordion-pl-body {
	grid-template-rows: 1fr;
}
.accordion-pl .accordion-pl-inner {
	min-height: 0;
	overflow: hidden;
	opacity: 0;
	transition: opacity .3s ease-in-out;
}
.accordion-pl.aperto .accordion-pl-inner {
	opacity: 1;
}
.accordion-pl .accordion-pl-inner > :first-child {
	margin-top: 10px;
}
.accordion-pl .accordion-pl-inner p {
	color: var(--grigio-scuro);
	text-align: justify;
}
.accordion-pl .accordion-pl-inner p a {
	color: var(--primario);
}

/* ----- home - servizi ----- */
.accordion-pl .accordion-pl-img-mobile {
	display: none;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	margin-top: 25px;
}
.servizi-immagini {
	position: sticky;
	top: calc(var(--header-h) + 25px);
	display: grid;
	/* traccia minmax(0, 1fr): senza, la riga "auto" si dimensiona sull'altezza intrinseca delle foto e ignora il max-height */
	grid-template: minmax(0, 1fr) / minmax(0, 1fr);
	max-height: calc(100vh - var(--header-h) - 50px);
	width: 100%;
	margin-left: auto;
	border-radius: calc(var(--border-radius) * 2);
	overflow: hidden;
}
.servizi-immagini img {
	grid-area: 1 / 1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transform: scale(1.03);
	transition: opacity .5s ease-in-out, transform .8s cubic-bezier(.16, 1, .3, 1);
}
.servizi-immagini img.attiva {
	opacity: 1;
	transform: scale(1);
}

/* ----- home - il metodo ----- */
.metodo-passi {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
.metodo-passo {
	background-color: var(--primario);
	border-radius: calc(var(--border-radius) * 2);
	padding: 30px 20px;
}
.metodo-passo > i {
	display: block;
	font-size: 1.75rem;
	margin-bottom: 25px;
}

/* ----- home - staff ----- */
.staff-intro {
	display: flex;
	align-items: center;
	overflow: hidden;
}
.staff-intro .staff-intro-img img {
	display: block;
}
.staff-griglia {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: start;
	gap: 20px;
}
.staff-griglia .accordion-pl {
	padding: 15px;
}
.staff-griglia .staff-icona {
	flex: 0 0 50px;
	width: 50px;
	height: 50px;
	object-fit: cover;
	background-color: var(--bianco);
	border-radius: calc(var(--border-radius) * 2);
}
.staff-griglia .staff-foto {
	display: block;
	width: 100%;
	margin-top: 20px !important;
}
.staff-griglia .staff-nome-ruolo {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
}
.staff-griglia .accordion-pl-blu .accordion-pl-head .accordion-pl-titolo {
	font-size: 1rem;
	line-height: 1.5625rem !important;
}
.staff-griglia .staff-ruolo {
	color: var(--cl-acc);
}
.staff-griglia .staff-citazione {
	/*display: flex;*/
	/*gap: 12px;*/
	margin: 20px 0 0;
	padding: 0;
}
/*
.staff-griglia .staff-citazione i {
	flex: 0 0 auto;
	font-size: 1.25rem;
	line-height: 1.5rem;
	color: var(--bianco);
	opacity: .7;
}
 */
.staff-griglia .staff-citazione p {
	color: var(--bianco);
	font-size: 1rem;
	line-height: 1.5rem !important;
	/*font-style: italic;*/
	text-align: left;
}
.staff-griglia .staff-caratteristiche {
	display: flex;
	flex-direction: column;
	gap: 25px;
	list-style: none;
	background-color: var(--bianco);
	border-radius: calc(var(--border-radius) * 2);
	padding: 20px;
	margin: 20px 0 0;
}
.staff-griglia .staff-caratteristiche li {
	display: flex;
	align-items: center;
	gap: 15px;
	color: var(--grigio-scuro);
	font-size: 1rem;
	line-height: 1.5rem !important;
	font-weight: 700;
}
.staff-griglia .staff-caratteristiche li i {
	flex: 0 0 25px;
	text-align: center;
	font-size: 1.375rem;
	color: var(--primario);
}

/* ----- home - faq ----- */
.faq-intro {
	position: sticky;
	top: calc(var(--header-h) + 25px);
	max-width: 420px;
}

/* ----- home - contatti - form ----- */
.form-contatti {
	display: flex;
	flex-direction: column;
	gap: 20px;
	background-color: var(--primario);
	border-radius: calc(var(--border-radius) * 2);
	padding: 30px;
}
.form-contatti .campo-form {
	position: relative;
	padding-top: 18px;
}
.form-contatti .campo-form input,
.form-contatti .campo-form textarea {
	display: block;
	width: 100%;
	color: var(--bianco);
	background: transparent;
	border: none;
	border-bottom: 2px solid var(--bianco);
	border-radius: 0;
	padding: 10px 0;
	outline: none;
	transition: border-color .2s ease-in-out;
}
.form-contatti .campo-form textarea {
	min-height: 140px;
	resize: vertical;
}
.form-contatti .campo-form label {
	position: absolute;
	top: 28px;
	left: 0;
	margin: 0;
	color: var(--bianco);
	pointer-events: none;
	transform-origin: left top;
	transition: transform .25s cubic-bezier(.16, 1, .3, 1);
}
/* label "flottante": sale sopra il campo quando è a fuoco o compilato */
.form-contatti .campo-form input:focus + label,
.form-contatti .campo-form input:not(:placeholder-shown) + label,
.form-contatti .campo-form textarea:focus + label,
.form-contatti .campo-form textarea:not(:placeholder-shown) + label {
	transform: translateY(-26px) scale(.85);
}
.form-contatti .campo-form input:focus,
.form-contatti .campo-form textarea:focus {
	border-bottom-color: rgba(255, 255, 255, .6);
}
.form-contatti .campo-form input:-webkit-autofill {
	-webkit-text-fill-color: var(--bianco);
	transition: background-color 9999s ease-in-out 0s;
}
.form-contatti .campo-form-select {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
}
.form-contatti .campo-form-select label {
	color: var(--bianco);
	font-size: 1rem;
	line-height: 1.5rem !important;
	font-weight: 700;
	margin: 0;
}
.form-contatti .select-freccia {
	position: relative;
	flex: 0 1 260px;
}
.form-contatti .select-freccia select {
	display: block;
	width: 100%;
	height: 50px;
	color: var(--bianco);
	background-color: var(--primario);
	border: 2px solid var(--bianco);
	border-radius: calc(var(--border-radius) * 2);
	padding: 0 50px 0 15px;
	background-image: none !important;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}
.form-contatti .select-freccia select:focus-visible {
	outline: 2px solid var(--bianco);
	outline-offset: 2px;
}
.form-contatti .select-freccia select option {
	color: var(--grigio-scuro);
	background-color: var(--bianco);
}
.form-contatti .select-freccia i {
	position: absolute;
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
	pointer-events: none;
}
.form-contatti .checkbox-form .privacyContatti {
	border-color: var(--bianco);
}
.form-contatti .checkbox-form .privacyContatti:after {
	border-color: var(--bianco);
}
.form-contatti .checkbox-form label,
.form-contatti .checkbox-form label > a {
	color: var(--bianco) !important;
}
.form-contatti .checkbox-form label > a:hover {
	color: var(--grigio-scuro) !important;
}
.form-contatti .invio-form {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	width: 100%;
	height: 50px;
	color: var(--bianco);
	font-family: var(--secondary-font);
	font-size: 1rem;
	line-height: 1.5rem !important;
	font-weight: 700;
	background-color: var(--primario);
	border: 2px solid var(--bianco);
	border-radius: calc(var(--border-radius) * 2);
	cursor: pointer;
	transition: background-color .3s ease-in-out, color .3s ease-in-out, transform .15s ease-out;
}
.form-contatti .invio-form:hover,
.form-contatti .invio-form:focus-visible {
	color: var(--primario);
	background-color: var(--bianco);
}
.form-contatti .invio-form:hover i,
.form-contatti .invio-form:focus-visible i {
	color: var(--primario) !important;
}
.form-contatti .invio-form:active {
	transform: scale(.98);
}

/* ----- home - contatti - info e mappa ----- */
.info-contatti {
	display: flex;
	flex-direction: column;
	gap: 40px;
	margin-bottom: 40px;
}
.info-contatti .titolo-card i {
	color: var(--primario);
}
.mappa-home {
	position: relative;
	height: 460px;
	overflow: hidden;
	background-color: var(--bianco-scuro);
}
.mappa-home iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ----- home - contatti - esito invio form ----- */
.esito-form {
	background-color: var(--bianco-scuro);
	border-left: 4px solid var(--primario);
	border-radius: calc(var(--border-radius) * 2);
	padding: 15px 20px;
}
.esito-form.esito-form-errore {
	border-left-color: #c62828;
}
.esito-form:focus {
	outline: none;
}

/* ----- slider - sottotitolo ----- */
/* <p class="h4">: annulla la regola del tema ".slide-captions > p" per mantenere l'aspetto dell'h4 */
.inspiro-slider .slide .slide-captions > p.h4 {
	font-size: var(--h4-size);
	margin-bottom: 0;
}
.inspiro-slider .slide .slide-captions > p.h4:not(:last-child) {
	margin-bottom: 8px;
}

@media (prefers-reduced-motion: reduce) {
	.accordion-pl .accordion-pl-body,
	.accordion-pl .accordion-pl-inner,
	.accordion-pl .accordion-pl-segno:after,
	.servizi-immagini img {
		transition: none;
	}
}


/* ------------------------- CONTATTI ------------------------- */
.mappa-contatti {
	border-radius: var(--border-radius);
	overflow: hidden;
}

/* ------------------------- PRIVACY E COOKIE POLICY ------------------------- */
section[id^="policy"] .btn {
	border: none !important;
	background-color: var(--primario) !important;
}
section[id^="policy"] .btn:hover {
	color: var(--primario) !important;
	background-color: white !important;
}
section[id^="policy"] a:not(.btn) {
	color: inherit !important;
	text-decoration: underline !important;
	transition: .2s all ease-in-out !important;
}
section[id^="policy"] a:not(.btn):hover {
	color: var(--primario) !important;
}


/* ------------------------- ACCESSIBILITÀ ------------------------- */

/* ----- focus visibile (solo navigazione da tastiera) ----- */
/* !important per superare gli "outline: none" del tema e delle frecce del carosello */
:focus-visible {
	outline: 2px solid var(--cl-focus, var(--primario)) !important;
	outline-offset: 3px;
}
/* zone con sfondo blu, su immagine o scuro → contorno bianco */
#header,
.menu-side-container,
.bg-primario,
.form-contatti,
#footer,
.mfp-wrap { --cl-focus: var(--bianco); }
/* tendina lingue: box bianco → torna blu */
#header .p-dropdown-content { --cl-focus: var(--primario); }
/* accordion: mantiene il colore già previsto (blu / bianco) */
.accordion-pl { --cl-focus: var(--cl-acc); }

/* campi testo del form: niente riquadro, la linea sotto si ispessisce */
.form-contatti .campo-form input:focus-visible,
.form-contatti .campo-form textarea:focus-visible {
	outline: none !important;
	border-bottom-color: var(--bianco);
	box-shadow: 0 2px 0 0 var(--bianco);
}

/* checkbox privacy: l'input è invisibile, il focus va mostrato sul quadratino */
.checkbox-form > input:focus-visible ~ .privacyContatti {
	outline: 2px solid var(--cl-focus, var(--primario));
	outline-offset: 2px;
}

/* ----- avvisi CMS - strip: la X ora è un <button>, stesso aspetto del link precedente ----- */
.modal-strip .close-modal-promo {
	font-size: var(--text-size);
	line-height: var(--text-line-height);
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
.modal-strip .close-modal-promo i {
	color: var(--primario);
	transition: .2s color ease-in-out;
}
.modal-strip .close-modal-promo:hover i {
	color: var(--grigio-scuro);
}

/* destinazione del "salta al contenuto": nessun contorno sull'intera pagina */
main#contenuto:focus-visible {
	outline: none !important;
}