/* ------------------------- VARIABLES ------------------------- */
:root {
	
	--primary-font: "Montserrat", sans-serif;
	
	--line-height: calc(1em + 8px);
	
	--h1-size: 72px;
	--h1-weight: 400;
	
	--h2-size: 48px;
	--h2-weight: 500;
	
	--h3-size: 20px;
	--h3-weight: 700;
	
	--h4-size: 36px;
	--h4-weight: 500;
	
	--h5-size: 20px;
	--h5-weight: 700;
	
	--h6-size: 20px;
	--h6-weight: 700;
	
	--text-size: 19px;
	--text-weight: 400;
	
	--text-small-size: 16px;
	--text-small-weight: 400;
	
	--text-header-size: 14px;
	--text-header-weight: 700;
	
	--blu: #012d5b;
	--azzurro: #0090d4;
	--grigio: #a8a8a7;
	--grigio-chiaro: #f0f0f0;
	
}


/* ------------------------- TEXT ------------------------- */

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

/* ----- text - font-size ----- */
html {
	font-size: var(--text-size);
	font-weight: var(--text-weight);
}
h1, .h1 {
	font-size: var(--h1-size);
	font-weight: var(--h1-weight);
}
h2, .h2 {
	font-size: var(--h2-size);
	font-weight: var(--h2-weight);
}
h3, .h3 {
	font-size: var(--h3-size);
	font-weight: var(--h3-weight);
}
h4, .h4 {
	font-size: var(--h4-size);
	font-weight: var(--h4-weight);
}
h5, .h5 {
	font-size: var(--h5-size);
	font-weight: var(--h5-weight);
}
h6, .h6 {
	font-size: var(--h6-size);
	font-weight: var(--h6-weight);
}
p, span, li, a, [class*="btn"],
#topbar p, #topbar a {
	font-size: var(--text-size);
	font-weight: var(--text-weight);
}
#mainMenu.menu-lines nav > ul > li > a {
	font-size: var(--text-header-size);
	font-weight: var(--text-header-weight);
	text-transform: none !important;
}
input.form-control, select.form-control, .small {
	font-size: var(--text-small-size) !important;
	font-weight: var(--text-small-weight);
}

/* ----- text - color ----- */
.text-blu {
	color: var(--blu) !important;
}
.text-azzurro {
	color: var(--azzurro) !important;
}

/* ----- text - other ----- */
.text-copyright, .text-copyright a {
	font-size: 12px !important;
	color: white !important;
}
.text-copyright a:hover {
	text-decoration: underline !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-blu { background-color: var(--blu) !important; }
.bg-azzurro { background-color: var(--azzurro) !important; }
.bg-grigio { background-color: var(--grigio) !important; }
.bg-grigio-chiaro { background-color: var(--grigio-chiaro) !important; }


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

/* ----- btn - general ----- */
[class*="btn"] {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 10px 25px !important;
	border: 0;
	border-radius: 25px;
  margin-bottom: 0 !important;
  text-transform: none !important;
	transition: 0.3s all ease-in-out;
}

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

/* ----- btn - base - bg ----- */
[class*="btn"][class*="-bg-blu"] { background-color: var(--blu) !important; }
[class*="btn"][class*="-bg-azzurro"] { background-color: var(--azzurro) !important; }
[class*="btn"][class*="-bg-white"] { background-color: white !important; }

/* ----- btn - base - color ----- */
[class*="btn"][class*="-cl-blu"] { color: var(--blu) !important; }
[class*="btn"][class*="-cl-azzurro"] { color: var(--azzurro) !important; }
[class*="btn"][class*="-cl-white"] { color: white !important; }

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

/* ----- btn - hover - bg ----- */
[class*="btn"][class*="-bg-h-blu"]:hover { background-color: var(--blu) !important; }
[class*="btn"][class*="-bg-h-azzurro"]:hover { background-color: var(--azzurro) !important; }
[class*="btn"][class*="-bg-h-white"]:hover { background-color: white !important; }

/* ----- btn - hover - color ----- */
[class*="btn"][class*="-cl-h-blu"]:hover { color: var(--blu) !important; }
[class*="btn"][class*="-cl-h-azzurro"]:hover { color: var(--azzurro) !important; }
[class*="btn"][class*="-cl-h-white"]:hover { color: white !important; }


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

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

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

/* ----- 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);
  border-radius: 5px;
}
.checkbox-form .privacyContatti:after {
  content: ' ';
  display: none;
  position: relative;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 8px;
  border: solid var(--grigio);
  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);
}
.checkbox-form label {
  color: var(--grigio);
}
.checkbox-form label > a {
  color: var(--azzurro);
}
.checkbox-form label > a:hover {
  color: var(--blu) !important;
  text-decoration: underline !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;
}


/* ------------------------- HEADER ------------------------- */
#header,
#header .header-inner,
#header .header-inner .container {
  height: 100px;
}
#header .header-inner {
	border-radius: 25px !important;
}
#header.header-sticky .header-inner {
	border-radius: 0 !important;
}
#header .header-inner .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#header .header-inner .container #logo a .logo-default {
  width: 300px;
}
#header .header-inner .container #mainMenu.menu-lines nav > ul > li.current > a,
#header .header-inner .container #mainMenu.menu-lines nav > ul > li:hover > a,
#header .header-inner .container #mainMenu.menu-lines nav > ul > li:focus > a {
  color: var(--azzurro);
}
#header .header-inner .container #mainMenu.menu-lines nav > ul > li.current > a:after,
#header .header-inner .container #mainMenu.menu-lines nav > ul > li:hover > a:after,
#header .header-inner .container #mainMenu.menu-lines nav > ul > li:focus > a:after {
  background-color: var(--azzurro);
}


/* ------------------------- SUBHEADER ------------------------- */
.subheader-header-floating {
	overflow: visible;
}
.subheader-header-floating:before {
	content: '';
	position: absolute;
	top: -140px;
	display: block;
	width: 100vw;
	height: 140px;
	background-color: var(--blu);
}


/* ------------------------- FOOTER ------------------------- */
#footer .footer-content,
#footer .copyright-content {
	background-color: var(--blu);
}
#footer .footer-content {
  padding: 80px 0 40px 0;
}
#footer .footer-content .logo-footer {
	display: flex;
	align-items: center;
	height: calc(var(--h4-size) + 8px);
}
#footer .footer-content .grid-prodotti-footer {
  display: grid;
  grid-template-columns: min-content max-content;
  grid-column-gap: 30px;
  grid-row-gap: 5px;
}
#footer .footer-content a.link-contatti-footer {
  display: grid;
  grid-template-columns: min-content max-content;
  grid-column-gap: 15px;
	align-items: center;
	color: white !important;
  margin-bottom: 20px;
}
#footer .footer-content a.link-contatti-footer:hover span {
	text-decoration: underline;
}
#footer .footer-content .social-footer {
  display: flex;
  justify-content: start;
  list-style: none;
  margin-bottom: 0;
}
#footer .footer-content .social-footer li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 35px;
  height: 35px;
  color: var(--blu) !important;
  background-color: white;
	border-radius: 50%;
  margin: 0 5px;
	transition: all 0.3s ease-in-out;
}
#footer .footer-content .social-footer li:first-child a {
  margin-left: 0;
}
#footer .footer-content .social-footer li:last-child a {
  margin-right: 0;
}
#footer .footer-content .social-footer li a:hover {
	color: white !important;
  background-color: var(--azzurro);
}
#footer .copyright-content {
  padding: 40px 0;
}


/* ------------------------- SLIDER ------------------------- */
#slider {
	top: -140px !important;
	margin-bottom: -140px !important;
}
#slider .container {
  max-width: 1200px;
  padding-right: 0;
  padding-left: 0;
}


/* ------------------------- FORM ------------------------- */
.form-contatto-landing {
	background-color: white;
	padding: 30px;
	border-radius: 25px;
}
.form-contatto-landing .input-group > .form-control {
  padding-right: 0;
  padding-left: 0;
  border: none;
  border-bottom: 1px solid var(--grigio);
  border-radius: 0;
}
.form-contatto-landing .input-group > input.form-control::placeholder,
.form-contatto-landing .input-group > select.form-control {
  color: var(--grigio);
}
.form-contatto-landing .input-group > .form-control:focus {
  box-shadow: none;
  border-color: var(--azzurro);
}


/* ------------------------- LANDING ------------------------- */

/* ----- sez. partner ----- */
#partner .carousel:before,
#partner .carousel:after {
	content: '';
	position: absolute;
	top: 0;
	display: block;
	width: 100px;
	height: 100%;
	z-index: 10;
}
#partner .carousel:before {
	left: 0;
	background: linear-gradient(to right, white, transparent);
}
#partner .carousel:after {
	right: 0;
	background: linear-gradient(to left, white, transparent);
}

/* ----- sez. linee ----- */
#linee {
	--height-linea-flag: calc((var(--h3-size) + 8px) * 2 + 10px);
	overflow: visible;
	padding-top: var(--height-linea-flag);
	padding-bottom: 0;
}
#linee [id^="linea"] {
	position: sticky;
	top: calc(var(--height-linea-flag) + 100px);
	padding-top: 0;
	padding-bottom: var(--height-linea-flag);
	
}
#linee [id^="linea"]:not(:first-child) {
}
#linee [id^="linea"]:nth-child(2n - 1),
#linee [id^="linea"]:nth-child(2n - 1) .linea-flag-titolo {
	background-color: var(--grigio-chiaro);
}
#linee [id^="linea"]:nth-child(2n),
#linee [id^="linea"]:nth-child(2n) .linea-flag-titolo {
	background-color: white;
}
#linee [id^="linea"] .linea-flag-titolo {
  position: absolute;
  top: calc(var(--height-linea-flag) * -1);
  left: calc(50% - 175px);
  display: flex;
  flex-direction: column;
  justify-content: end;
  align-items: center;
  height: var(--height-linea-flag);
  width: 350px;
	border-top-right-radius: 25px;
	border-top-left-radius: 25px;
}

/* ----- sez. azienda ----- */
#azienda .grid-img-azienda {
  display: grid;
  grid-template-areas:
		'img1 img2'
    'img1 img2'
    'img1 img4'
    'img3 img4'
    'img3 img4';
  grid-gap: 30px;
}
#azienda .grid-img-azienda [id^="imgGallery"] {
  display: contents;
}
#azienda .grid-img-azienda [id^="imgGallery"] img {
	border-radius: 25px;
}

/* ----- sez. assistenza ----- */
#assistenza .img-gruppo-assistenza {
	position: relative;
}
#assistenza .img-gruppo-assistenza img.img-mappa-assistenza {
	position: relative;
	z-index: 5;
}
#assistenza .img-gruppo-assistenza img.img-logo-assistenza {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
}


/* ------------------------- MARGIN, PADDING ------------------------- */

.m-0 { margin: 0px !important }
.m-5 { margin: 5px !important }
.m-10 { margin: 10px !important }
.m-15 { margin: 15px !important }
.m-20 { margin: 20px !important }
.m-25 { margin: 25px !important }
.m-30 { margin: 30px !important }
.m-35 { margin: 35px !important }
.m-40 { margin: 40px !important }
.m-50 { margin: 50px !important }
.m-60 { margin: 60px !important }
.m-70 { margin: 70px !important }
.m-80 { margin: 80px !important }
.m-90 { margin: 90px !important }
.m-100 { margin: 100px !important }
.m-110 { margin: 110px !important }
.m-120 { margin: 120px !important }
.m-130 { margin: 130px !important }
.m-140 { margin: 140px !important }
.m-150 { margin: 150px !important }
.m-200 { margin: 200px !important }

.mb-0 { margin-bottom: 0px !important }
.mb-5 { margin-bottom: 5px !important }
.mb-10 { margin-bottom: 10px !important }
.mb-15 { margin-bottom: 15px !important }
.mb-20 { margin-bottom: 20px !important }
.mb-25 { margin-bottom: 25px !important }
.mb-30 { margin-bottom: 30px !important }
.mb-35 { margin-bottom: 35px !important }
.mb-40 { margin-bottom: 40px !important }
.mb-50 { margin-bottom: 50px !important }
.mb-60 { margin-bottom: 60px !important }
.mb-70 { margin-bottom: 70px !important }
.mb-80 { margin-bottom: 80px !important }
.mb-90 { margin-bottom: 90px !important }
.mb-100 { margin-bottom: 100px !important }
.mb-110 { margin-bottom: 110px !important }
.mb-120 { margin-bottom: 120px !important }
.mb-130 { margin-bottom: 130px !important }
.mb-140 { margin-bottom: 140px !important }
.mb-150 { margin-bottom: 150px !important }
.mb-200 { margin-bottom: 200px !important }

.mt-0 { margin-top: 0px !important }
.mt-5 { margin-top: 5px !important }
.mt-10 { margin-top: 10px !important }
.mt-15 { margin-top: 15px !important }
.mt-20 { margin-top: 20px !important }
.mt-25 { margin-top: 25px !important }
.mt-30 { margin-top: 30px !important }
.mt-35 { margin-top: 35px !important }
.mt-40 { margin-top: 40px !important }
.mt-50 { margin-top: 50px !important }
.mt-60 { margin-top: 60px !important }
.mt-70 { margin-top: 70px !important }
.mt-80 { margin-top: 80px !important }
.mt-90 { margin-top: 90px !important }
.mt-100 { margin-top: 100px !important }
.mt-110 { margin-top: 110px !important }
.mt-120 { margin-top: 120px !important }
.mt-130 { margin-top: 130px !important }
.mt-140 { margin-top: 140px !important }
.mt-150 { margin-top: 150px !important }
.mt-200 { margin-top: 200px !important }

.ml-0 { margin-left: 0px !important }
.ml-5 { margin-left: 5px !important }
.ml-10 { margin-left: 10px !important }
.ml-15 { margin-left: 15px !important }
.ml-20 { margin-left: 20px !important }
.ml-25 { margin-left: 25px !important }
.ml-30 { margin-left: 30px !important }
.ml-35 { margin-left: 35px !important }
.ml-40 { margin-left: 40px !important }
.ml-50 { margin-left: 50px !important }
.ml-60 { margin-left: 60px !important }
.ml-70 { margin-left: 70px !important }
.ml-80 { margin-left: 80px !important }
.ml-90 { margin-left: 90px !important }
.ml-100 { margin-left: 100px !important }
.ml-110 { margin-left: 110px !important }
.ml-120 { margin-left: 120px !important }
.ml-130 { margin-left: 130px !important }
.ml-140 { margin-left: 140px !important }
.ml-150 { margin-left: 150px !important }
.ml-200 { margin-left: 200px !important }

.mr-0 { margin-right: 0px !important }
.mr-5 { margin-right: 5px !important }
.mr-10 { margin-right: 10px !important }
.mr-15 { margin-right: 15px !important }
.mr-20 { margin-right: 20px !important }
.mr-25 { margin-right: 25px !important }
.mr-30 { margin-right: 30px !important }
.mr-35 { margin-right: 35px !important }
.mr-40 { margin-right: 40px !important }
.mr-50 { margin-right: 50px !important }
.mr-60 { margin-right: 60px !important }
.mr-70 { margin-right: 70px !important }
.mr-80 { margin-right: 80px !important }
.mr-90 { margin-right: 90px !important }
.mr-100 { margin-right: 100px !important }
.mr-110 { margin-right: 110px !important }
.mr-120 { margin-right: 120px !important }
.mr-130 { margin-right: 130px !important }
.mr-140 { margin-right: 140px !important }
.mr-150 { margin-right: 150px !important }
.mr-200 { margin-right: 200px !important }


.p-0 { padding: 0px !important }
.p-5 { padding: 5px !important }
.p-10 { padding: 10px !important }
.p-15 { padding: 15px !important }
.p-20 { padding: 20px !important }
.p-25 { padding: 25px !important }
.p-30 { padding: 30px !important }
.p-35 { padding: 35px !important }
.p-40 { padding: 40px !important }
.p-50 { padding: 50px !important }
.p-60 { padding: 60px !important }
.p-70 { padding: 70px !important }
.p-80 { padding: 80px !important }
.p-90 { padding: 90px !important }
.p-100 { padding: 100px !important }
.p-110 { padding: 110px !important }
.p-120 { padding: 120px !important }
.p-130 { padding: 130px !important }
.p-140 { padding: 140px !important }
.p-150 { padding: 150px !important }
.p-200 { padding: 200px !important }

.pb-0 { padding-bottom: 0px !important }
.pb-5 { padding-bottom: 5px !important }
.pb-10 { padding-bottom: 10px !important }
.pb-15 { padding-bottom: 15px !important }
.pb-20 { padding-bottom: 20px !important }
.pb-25 { padding-bottom: 25px !important }
.pb-30 { padding-bottom: 30px !important }
.pb-35 { padding-bottom: 35px !important }
.pb-40 { padding-bottom: 40px !important }
.pb-50 { padding-bottom: 50px !important }
.pb-60 { padding-bottom: 60px !important }
.pb-70 { padding-bottom: 70px !important }
.pb-80 { padding-bottom: 80px !important }
.pb-90 { padding-bottom: 90px !important }
.pb-100 { padding-bottom: 100px !important }
.pb-110 { padding-bottom: 110px !important }
.pb-120 { padding-bottom: 120px !important }
.pb-130 { padding-bottom: 130px !important }
.pb-140 { padding-bottom: 140px !important }
.pb-150 { padding-bottom: 150px !important }
.pb-160 { padding-bottom: 160px !important }
.pb-200 { padding-bottom: 200px !important }

.pt-0 { padding-top: 0px !important }
.pt-5 { padding-top: 5px !important }
.pt-10 { padding-top: 10px !important }
.pt-15 { padding-top: 15px !important }
.pt-20 { padding-top: 20px !important }
.pt-25 { padding-top: 25px !important }
.pt-30 { padding-top: 30px !important }
.pt-35 { padding-top: 35px !important }
.pt-40 { padding-top: 40px !important }
.pt-50 { padding-top: 50px !important }
.pt-60 { padding-top: 60px !important }
.pt-70 { padding-top: 70px !important }
.pt-80 { padding-top: 80px !important }
.pt-90 { padding-top: 90px !important }
.pt-100 { padding-top: 100px !important }
.pt-110 { padding-top: 110px !important }
.pt-120 { padding-top: 120px !important }
.pt-130 { padding-top: 130px !important }
.pt-140 { padding-top: 140px !important }
.pt-150 { padding-top: 150px !important }
.pt-200 { padding-top: 200px !important }
.pt-220 { padding-top: 220px !important }

.pl-0 { padding-left: 0px !important }
.pl-5 { padding-left: 5px !important }
.pl-10 { padding-left: 10px !important }
.pl-15 { padding-left: 15px !important }
.pl-20 { padding-left: 20px !important }
.pl-25 { padding-left: 25px !important }
.pl-30 { padding-left: 30px !important }
.pl-35 { padding-left: 35px !important }
.pl-40 { padding-left: 40px !important }
.pl-50 { padding-left: 50px !important }
.pl-60 { padding-left: 60px !important }
.pl-70 { padding-left: 70px !important }
.pl-80 { padding-left: 80px !important }
.pl-90 { padding-left: 90px !important }
.pl-100 { padding-left: 100px !important }
.pl-110 { padding-left: 110px !important }
.pl-120 { padding-left: 120px !important }
.pl-130 { padding-left: 130px !important }
.pl-140 { padding-left: 140px !important }
.pl-150 { padding-left: 150px !important }
.pl-200 { padding-left: 200px !important }

.pr-0 { padding-right: 0px !important }
.pr-5 { padding-right: 5px !important }
.pr-10 { padding-right: 10px !important }
.pr-15 { padding-right: 15px !important }
.pr-20 { padding-right: 20px !important }
.pr-25 { padding-right: 25px !important }
.pr-30 { padding-right: 30px !important }
.pr-35 { padding-right: 35px !important }
.pr-40 { padding-right: 40px !important }
.pr-50 { padding-right: 50px !important }
.pr-60 { padding-right: 60px !important }
.pr-70 { padding-right: 70px !important }
.pr-80 { padding-right: 80px !important }
.pr-90 { padding-right: 90px !important }
.pr-100 { padding-right: 100px !important }
.pr-110 { padding-right: 110px !important }
.pr-120 { padding-right: 120px !important }
.pr-130 { padding-right: 130px !important }
.pr-140 { padding-right: 140px !important }
.pr-150 { padding-right: 150px !important }
.pr-200 { padding-right: 200px !important }
.pr-250 { padding-right: 250px !important }