/*NORMALIZE*/
/* FONT */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  overflow-y: scroll;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-base, sans-serif);
  margin: 0;
}

img {
  max-width: 100%;
  display: block;
}

button {
  cursor: pointer;
  border: none;
}

p {
  margin: 15px 0;
}

ul {
  padding-left: 15px;
}

.visually-hidden {
  display: none;
}

.nascosto {
  display: none;
}

a {
  text-decoration: none;
}

ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

fieldset {
  border: none;
}

.larghezza-contenitore {
  float: left;
  width: 100%;
}

.larghezza-base {
  max-width: var(--larghezza-base, 1260px);
  margin: 0 auto;
}

.larghezza-1260 {
  max-width: 1260px;
  margin: 0 auto;
}

.larghezza-1200 {
  max-width: 1200px;
  margin: 0 auto;
}

.larghezza-1100 {
  max-width: 1100px;
  margin: 0 auto;
}

.larghezza-1024 {
  max-width: 1024px;
  margin: 0 auto;
}

.larghezza-960 {
  max-width: 960px;
  margin: 0 auto;
}

.larghezza-768 {
  max-width: 768px;
  margin: 0 auto;
}

.larghezza-640 {
  max-width: 640px;
  margin: 0 auto;
}

.larghezza-480 {
  max-width: 480px;
  margin: 0 auto;
}

@media (max-width: 1299px) {
  .larghezza-base, .larghezza-1260, .larghezza-1200, .larghezza-1100, .larghezza-1024, .larghezza-960, .larghezza-768, .larghezza-640 {
    padding: 0 10px;
  }
}
/***MISURA 1140PX ***/
/***MISURA 1024 ***/
/***MISURA 960PX ***/
/***MISURA 768PX ***/
/***MISURA 640PX ***/
@media (max-width: 767px) {
  .larghezza-base, .larghezza-1260, .larghezza-1200, .larghezza-1100, .larghezza-1024, .larghezza-960, .larghezza-768, .larghezza-640, .larghezza-480 {
    padding: 0 5px;
  }
}
/***MISURA 480PX ***/
/***MISURA 320PX ***/
.com-content-category-blog__pagination ul.pagination, .com-finder__navigation ul.pagination {
  display: flex;
  gap: 10px;
}
.com-content-category-blog__pagination ul.pagination li, .com-finder__navigation ul.pagination li {
  background-color: #F00;
  padding: 0 10px;
}
.com-content-category-blog__pagination ul.pagination li.disabled, .com-finder__navigation ul.pagination li.disabled {
  background-color: #000;
}
.com-content-category-blog__pagination ul.pagination li a, .com-content-category-blog__pagination ul.pagination li span, .com-finder__navigation ul.pagination li a, .com-finder__navigation ul.pagination li span {
  color: #FFF;
}
.com-content-category-blog__pagination ul.pagination li span.icon-angle-double-left:before, .com-finder__navigation ul.pagination li span.icon-angle-double-left:before {
  content: "\f100";
  font-family: "Font Awesome 6 Pro";
  font-weight: 900;
}
.com-content-category-blog__pagination ul.pagination li span.icon-angle-left:before, .com-finder__navigation ul.pagination li span.icon-angle-left:before {
  content: "\f104";
  font-family: "Font Awesome 6 Pro";
  font-weight: 900;
}
.com-content-category-blog__pagination ul.pagination li span.icon-angle-right:before, .com-finder__navigation ul.pagination li span.icon-angle-right:before {
  content: "\f105";
  font-family: "Font Awesome 6 Pro";
  font-weight: 900;
}
.com-content-category-blog__pagination ul.pagination li span.icon-angle-double-right:before, .com-finder__navigation ul.pagination li span.icon-angle-double-right:before {
  content: "\f101";
  font-family: "Font Awesome 6 Pro";
  font-weight: 900;
}

.com-finder__counter {
  display: none;
}

/*OVERRIDE*/
.slider-home-contenitore .slider-home .slideplus-navigation {
  margin-top: -22px;
  z-index: 9;
  position: relative;
}

.slider-home-contenitore .slider-home .slideplus-paging a {
  border-radius: 0;
  border: none;
  width: 10px;
  height: 10px;
  background-color: #FFF;
}

.slider-home-contenitore .slider-home .slideplus-paging a.slideplus-current {
  background-color: #666;
}

.slider-home-contenitore .slider-home .slideplus-paging a span {
  display: none;
}

.slider-home-contenitore .slider-home .slideplus-first {
  display: none !important;
}

.slider-home-contenitore .slider-home .slideplus-previous {
  display: none !important;
}

.slider-home-contenitore .slider-home .slideplus-next {
  display: none !important;
}

.slider-home-contenitore .slider-home .slideplus-last {
  display: none !important;
}

.tns-outer {
  position: relative;
}
.tns-outer .tns-controls {
  z-index: 1;
  display: flex;
  position: absolute;
  top: 50%;
  justify-content: space-between;
  width: 100%;
}
.tns-outer .tns-controls button {
  background-color: transparent;
  border: none;
}
.tns-outer .tns-controls button i {
  font-size: 100px;
  color: #FFF;
}
.tns-outer .tns-nav {
  z-index: 1;
  display: flex;
  position: absolute;
  bottom: 20px;
  justify-content: center;
  gap: 10px;
  width: 100%;
}
.tns-outer .tns-nav button {
  background-color: transparent;
  border: 1px solid #FFF;
  width: 12px;
  height: 12px;
  border-radius: 100%;
}
.tns-outer .tns-nav button.tns-nav-active {
  background-color: #F00;
  border: none;
  width: 13px;
  height: 13px;
}
.tns-outer .tns-nav button i {
  font-size: 100px;
  color: #FFF;
}

/*FRONTEND*/
/* MARGINI LATERALI MOBILE: 16px invece dei 5px di normalize.scss.
   I gruppi del builder hanno anch'essi larghezza-base ma stanno dentro .contenuti,
   che il margine lo da' gia': li azzeriamo per non raddoppiarlo. */
@media (max-width: 767px) {
  .larghezza-base,
  .larghezza-1200,
  .larghezza-1024 {
    padding-left: 16px;
    padding-right: 16px;
  }
}

.contenuti-contenitore .contenuti .larghezza-base {
  padding-left: 0;
  padding-right: 0;
}

/* ALTEZZE HEADER (dalla grafica): sono FISSE, cosi' il margine del <main>
   con l'header fisso e' esatto. Se cambia il contenuto dell'header si
   aggiornano solo questi valori. */
/* TOP BAR: frase + telefoni (modulo custom in pos-frase-header).
   Valori scritti a mano: le variabili $cpr-* sono definite piu' in basso. */
.frase-header-contenitore {
  background-color: #002ba7;
  color: #fff;
}
.frase-header-contenitore .frase-header ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 6px 14px;
  height: 38px;
  padding: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-transform: uppercase;
}
.frase-header-contenitore .frase-header ul li:last-child {
  color: #ffc000;
}
@media (max-width: 767px) {
  .frase-header-contenitore .frase-header ul {
    justify-content: center;
    align-content: center;
    height: 60px;
    font-size: 11px;
    text-align: center;
  }
}

.header-contenitore {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #fff;
  box-shadow: 0 1.5px 0 #14161a;
  z-index: 99999999;
  --mn-primary: #002ba7;
  --mn-accent: #002ba7;
  --mn-text-dark: #14161a;
}
.header-contenitore .header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto;
  grid-column-gap: 24px;
  grid-row-gap: 0;
  align-items: center;
  align-content: center;
  height: 88px;
  /* LOGO: Occupa tutte le righe a sinistra */
  /* ORARI + BOTTONE (modulo custom in pos-orari-header).
     Dentro c'e' un secondo .orari-header (quello del modulo) con i due orari. */
  /* RIGA 1: Slogan a sinistra, Social a destra */
  /* RIGA 2: MENU PRINCIPALE (Libero fino a colonna 2) */
  /* Lo teniamo nella colonna centrale per non farlo andare sotto la lingua */
  /* RIGA 3: LINGUA (Sotto i social, ma allineata a destra) */
}
@media (max-width: 767px) {
  .header-contenitore .header {
    height: 70px;
    grid-column-gap: 12px;
  }
}
.header-contenitore .header .logo {
  grid-area: 1/1/2/2;
  align-self: center;
}
.header-contenitore .header .logo img {
  width: auto;
  height: 46px;
}
@media (max-width: 767px) {
  .header-contenitore .header .logo img {
    height: 38px;
  }
}
.header-contenitore .header .orari-header-contenitore {
  grid-area: 1/3/2/4;
  align-self: center;
}
.header-contenitore .header .orari-header-contenitore .orari-header > div {
  display: flex;
  align-items: center;
  gap: 14px;
}
.header-contenitore .header .orari-header-contenitore .orari-header p {
  margin: 0;
}
.header-contenitore .header .orari-header-contenitore .orari-header .orari-header {
  padding-left: 14px;
  border-left: 1.5px solid #dcd6c9;
  line-height: 1.05;
}
.header-contenitore .header .orari-header-contenitore .orari-header .orari-header span {
  display: block;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  color: #002ba7;
}
.header-contenitore .header .orari-header-contenitore .orari-header .orari-header span:first-child {
  font-family: "JetBrains Mono", monospace;
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 0.14em;
  color: #6a6f78;
}
.header-contenitore .header .orari-header-contenitore .orari-header .bottone-header {
  display: inline-block;
  padding: 12px 16px;
  border: 1.5px solid #002ba7;
  background-color: #ffc000;
  color: #002ba7;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 14.5px;
  line-height: 1.2;
  white-space: nowrap;
  transition: background-color 0.2s ease;
}
.header-contenitore .header .orari-header-contenitore .orari-header .bottone-header:hover {
  background-color: #ffd23f;
}
@media (max-width: 767px) {
  .header-contenitore .header .orari-header-contenitore .orari-header .bottone-header {
    padding: 9px 11px;
    font-size: 12.5px;
  }
}
@media (max-width: 959px) {
  .header-contenitore .header .orari-header-contenitore {
    grid-area: 1/2/2/3;
    justify-self: end;
  }
  .header-contenitore .header .orari-header-contenitore .orari-header .orari-header {
    display: none;
  }
}
.header-contenitore .header .slogan {
  grid-area: 1/2/2/3;
  align-self: center;
}
.header-contenitore .header .menu-social-contenitore {
  grid-area: 1/3/2/4;
  justify-self: end;
}
.header-contenitore .header .menu-social-contenitore .mn-nav {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.header-contenitore .header .menu-top-contenitore {
  grid-area: 1/2/2/3;
  align-self: center;
  justify-self: end;
}
@media (max-width: 959px) {
  .header-contenitore .header .menu-top-contenitore {
    grid-area: 1/3/2/4;
    width: 44px;
  }
  .header-contenitore .header .menu-top-contenitore .mn-hamburger {
    box-sizing: border-box;
    width: 44px;
    height: 44px;
    padding: 11px 7px;
  }
}
.header-contenitore .header .menu-top-contenitore .mn-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.header-contenitore .header .menu-top-contenitore .mn-nav li a {
  position: relative;
  padding: 8px 10px;
  font-size: 14.5px;
  font-weight: 600;
  color: #14161a;
}
.header-contenitore .header .menu-top-contenitore .mn-nav li a:hover {
  color: #002ba7;
}
.header-contenitore .header .menu-top-contenitore .mn-nav li.active > a {
  color: #002ba7;
}
.header-contenitore .header .menu-top-contenitore .mn-nav li.active > a::after {
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 0;
  height: 3px;
  background-color: #ffc000;
}
.header-contenitore .header .menu-lingua-contenitore {
  grid-area: 2/3/3/4;
  justify-self: end;
  align-self: center;
}
.header-contenitore .header .menu-lingua-contenitore ul {
  display: flex;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ANCORE (#preventivo ecc.): lo scroll si ferma sotto l'header fisso, con la sua altezza esatta */
html {
  scroll-padding-top: 126px;
}
@media (max-width: 767px) {
  html {
    scroll-padding-top: 130px;
  }
}

/* MENU MOBILE: pannello del modulo menu aperto dall'hamburger (sotto i 960px).
   Si apre subito sotto l'header fisso (top = top bar + header), cosi' la X resta visibile
   e non restano spazi. Sta sopra la pagina e sopra il bottone dei cookie, ma sotto l'header. */
.mn-mobile-container.mn-mode-responsive,
.mn-backdrop {
  top: 126px;
  z-index: 99999998;
}
@media (max-width: 767px) {
  .mn-mobile-container.mn-mode-responsive,
  .mn-backdrop {
    top: 130px;
  }
}

.mn-mobile-container.mn-mode-responsive {
  box-shadow: none;
}
.mn-mobile-container.mn-mode-responsive .mn-mobile-header {
  padding: 14px 16px;
}
.mn-mobile-container.mn-mode-responsive .mn-close-btn {
  color: #002ba7;
}
.mn-mobile-container.mn-mode-responsive .mn-mobile-nav li > .mn-mobile-row > a {
  padding: 16px;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 18px;
  color: #14161a;
}
.mn-mobile-container.mn-mode-responsive .mn-mobile-nav li.current > .mn-mobile-row > a {
  color: #002ba7;
  box-shadow: inset 4px 0 0 #ffc000;
}

/* Sticky footer: la pagina occupa almeno tutta l'altezza della viewport.
   <main> si espande e spinge il footer in fondo quando il contenuto e' corto;
   con contenuto piu' lungo dello schermo il footer scorre normalmente. */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1 0 auto;
  margin-top: 126px;
}
@media (max-width: 767px) {
  main {
    margin-top: 130px;
  }
}

/* Header fisso: attivo SOLO con il parametro "Header Fixed" (classe body.header-fixed
   aggiunta da index.php). Senza il parametro l'header resta nel flusso normale. */
body.header-fixed .header-contenitore {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 150;
}

/* FOOTER: tre colonne (azienda | menu "Pagine" | contatti) + credits.
   Valori scritti a mano: le variabili $cpr-* sono definite piu' in basso. */
.footer-contenitore {
  background-color: #002ba7;
  color: #fff;
}
.footer-contenitore p {
  margin: 0;
}
.footer-contenitore .footer {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1.3fr;
  gap: 32px;
  padding-top: 48px;
  padding-bottom: 32px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 15px;
  line-height: 1.6;
}
.footer-contenitore .footer .footer-info .logo-footer img {
  width: auto;
  height: 54px;
}
.footer-contenitore .footer .footer-info .testo {
  max-width: 34ch;
  margin-top: 16px;
  color: rgba(255, 255, 255, 0.8);
}
.footer-contenitore .footer .footer-menu::before {
  content: "PAGINE";
  display: block;
  margin-bottom: 14px;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: #ffc000;
}
.footer-contenitore .footer .footer-menu ul {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.footer-contenitore .footer .footer-menu a {
  color: rgba(255, 255, 255, 0.85);
  transition: color 0.2s ease;
}
.footer-contenitore .footer .footer-menu a:hover, .footer-contenitore .footer .footer-menu a[aria-current=page] {
  color: #ffc000;
}
@media (max-width: 959px) {
  .footer-contenitore .footer .footer-menu a {
    display: inline-block;
    padding: 8px 0;
  }
}
.footer-contenitore .footer .footer-contatti .titolo-colonna {
  margin-bottom: 14px;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: #ffc000;
}
.footer-contenitore .footer .footer-contatti ul {
  display: grid;
  gap: 9px;
}
.footer-contenitore .footer .footer-contatti .telefono {
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: 20px;
  color: #ffc000;
  transition: color 0.2s ease;
}
.footer-contenitore .footer .footer-contatti .telefono:hover {
  color: #fff;
}
.footer-contenitore .footer .footer-contatti .dettaglio {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
}
@media (max-width: 959px) {
  .footer-contenitore .footer {
    grid-template-columns: 1fr 1fr;
  }
  .footer-contenitore .footer .footer-info {
    grid-column: 1/-1;
  }
}
@media (max-width: 767px) {
  .footer-contenitore .footer {
    grid-template-columns: 1fr;
    padding-top: 40px;
    padding-bottom: 28px;
  }
}
.footer-contenitore .credits {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  max-width: var(--larghezza-base, 1260px);
  padding-top: 16px;
  padding-bottom: 64px;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.6);
}
.footer-contenitore .credits .copyright a {
  display: inline-block;
  padding: 8px 0;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: underline;
}
.footer-contenitore .credits .copyright a:hover {
  color: #ffc000;
}
.footer-contenitore .credits .logo {
  display: flex;
  align-items: center;
  gap: 6px;
}
.footer-contenitore .credits .logo img {
  width: 45px;
}
@media (max-width: 767px) {
  .footer-contenitore .credits {
    justify-content: center;
    text-align: center;
  }
}

/* BackToTop: attivato dal parametro "BackToTop". Nascosto di default,
   compare quando si scrolla la pagina (classe .visibile aggiunta da logic.js). */
.back-to-top {
  position: fixed;
  right: 20px;
  bottom: 70px;
  z-index: 200;
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: #f00;
  color: #fff;
  font-size: 18px;
  text-decoration: none;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.back-to-top.visibile {
  display: flex;
  opacity: 1;
}
.back-to-top i {
  color: inherit;
}

/* ---------------------------------------------------------------- BASE PAGINE
   .pagina e' la classe di pagina dei JSON (css_classes della pagina).
   Le sezioni si toccano: gli spazi li danno i padding delle sezioni. */
body {
  background-color: #f5f2ec;
}

.contenuti-contenitore .contenuti .pagina {
  gap: 0;
  grid-auto-rows: auto;
  color: #14161a;
  font-size: 16px;
  line-height: 1.5;
}
.contenuti-contenitore .contenuti .pagina a {
  color: #002ba7;
}
.contenuti-contenitore .contenuti .pagina p {
  margin: 0;
}
.contenuti-contenitore .contenuti .pagina ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ================================================================ HOME */
/* ---------------------------------------------------------------- HERO */
.home-hero-contenitore {
  background-color: #002ba7;
  border-image: linear-gradient(#002ba7, #002ba7) fill 0/0/0 100vw;
  color: #fff;
}
.home-hero-contenitore .home-hero {
  grid-auto-rows: auto;
  gap: 0 40px;
  align-items: start;
  padding: 64px 0 56px;
}
.home-hero-contenitore .home-hero .occhiello p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #ffc000;
}
.home-hero-contenitore .home-hero .occhiello p::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.home-hero-contenitore .home-hero .titolo h1 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(40px, 5.4vw, 72px);
  line-height: 0.94;
  letter-spacing: -0.04em;
  margin-top: 20px;
}
.home-hero-contenitore .home-hero .testo p {
  max-width: 46ch;
  margin-top: 26px;
  padding: 4px 0 4px 16px;
  border-left: 4px solid #ffc000;
  font-size: clamp(17px, 1.9vw, 19px);
  font-weight: 600;
  line-height: 1.45;
}
.home-hero-contenitore .home-hero .orari p {
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.62);
  margin-top: 8px;
}
.home-hero-contenitore .home-hero .home-hero-immagini-contenitore {
  align-self: center;
}
.home-hero-contenitore .home-hero .home-hero-immagini-contenitore .home-hero-immagini {
  display: block;
  position: relative;
  width: min(380px, 100%);
  aspect-ratio: 4/5;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .home-hero-contenitore .home-hero .home-hero-immagini-contenitore .home-hero-immagini {
    width: min(300px, 78%);
  }
  .home-hero-contenitore .home-hero .home-hero-immagini-contenitore .home-hero-immagini .mascotte {
    left: -6%;
  }
}
.home-hero-contenitore .home-hero .home-hero-immagini-contenitore .home-hero-immagini .foto {
  height: 100%;
}
.home-hero-contenitore .home-hero .home-hero-immagini-contenitore .home-hero-immagini .foto figure,
.home-hero-contenitore .home-hero .home-hero-immagini-contenitore .home-hero-immagini .foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home-hero-contenitore .home-hero .home-hero-immagini-contenitore .home-hero-immagini .mascotte {
  position: absolute;
  left: -12%;
  bottom: -8%;
  width: 56%;
}
.home-hero-contenitore .home-hero .home-hero-immagini-contenitore .home-hero-immagini .mascotte img {
  width: 100%;
  filter: drop-shadow(0 12px 22px rgba(0, 0, 0, 0.35));
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore {
  margin-top: 28px;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti {
  display: grid;
  gap: 10px;
  max-width: 560px;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 8px;
  padding-top: 12px;
  border-top: 1.5px solid rgba(255, 255, 255, 0.3);
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .nome-numero {
  flex: 1 1 auto;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .nome-numero p {
  line-height: 1.1;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .nome-numero p br {
  display: none;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .nome-numero p span {
  display: block;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(22px, 2.6vw, 28px);
  letter-spacing: -0.02em;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .nome-numero p span:first-child {
  font-family: "JetBrains Mono", monospace;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.65);
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-chiama {
  flex: 0 0 auto;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-chiama a {
  display: inline-block;
  padding: 12px 18px;
  border: 0;
  background-color: #ffc000;
  color: #002ba7;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.2;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-chiama a:hover {
  background-color: #ffd23f;
  color: #002ba7;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-chiama a {
  font-weight: 900;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-whatsapp {
  flex: 0 0 auto;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-whatsapp a {
  display: inline-block;
  padding: 12px 18px;
  border: 0;
  background-color: #fff;
  color: #002ba7;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.2;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-whatsapp a:hover {
  background-color: #e8ecf8;
  color: #002ba7;
}
@media (max-width: 767px) {
  .home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .nome-numero {
    flex-basis: 100%;
  }
  .home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-chiama,
  .home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-whatsapp {
    flex: 1 1 0;
  }
  .home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-chiama a,
  .home-hero-contenitore .home-hero .home-hero-contatti-contenitore .home-hero-contatti .home-hero-contatto-contenitore .home-hero-contatto .bottone-whatsapp a {
    display: block;
    text-align: center;
  }
}
@media (max-width: 767px) {
  .home-hero-contenitore .home-hero {
    padding: 40px 0 56px;
    column-gap: 0;
  }
  .home-hero-contenitore .home-hero .occhiello,
  .home-hero-contenitore .home-hero .titolo,
  .home-hero-contenitore .home-hero .testo,
  .home-hero-contenitore .home-hero .orari,
  .home-hero-contenitore .home-hero .home-hero-contatti-contenitore,
  .home-hero-contenitore .home-hero .home-hero-immagini-contenitore {
    grid-column: 1/-1;
    grid-row: auto;
  }
  .home-hero-contenitore .home-hero .home-hero-immagini-contenitore {
    order: 1;
    margin-top: 48px;
  }
}

/* ---------------------------------------------------------------- TARIFFE */
.home-tariffe-contenitore {
  background-color: #ffc000;
  border-image: linear-gradient(#ffc000, #ffc000) fill 0/0/0 100vw;
  border-bottom: 1.5px solid #14161a;
  color: #002ba7;
}
.home-tariffe-contenitore .home-tariffe {
  grid-auto-rows: auto;
  gap: 0 48px;
  padding: 40px 0;
}
.home-tariffe-contenitore .home-tariffe .occhiello {
  align-self: end;
}
.home-tariffe-contenitore .home-tariffe .occhiello p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #6b4e00;
}
.home-tariffe-contenitore .home-tariffe .titolo {
  align-self: start;
}
.home-tariffe-contenitore .home-tariffe .titolo h2 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(28px, 3.6vw, 46px);
  line-height: 1;
  letter-spacing: -0.03em;
  margin-top: 12px;
}
.home-tariffe-contenitore .home-tariffe .elenco-tariffe {
  align-self: center;
}
.home-tariffe-contenitore .home-tariffe .elenco-tariffe li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 16px;
  padding: 16px 0;
  border-top: 1.5px solid rgba(0, 43, 167, 0.35);
}
.home-tariffe-contenitore .home-tariffe .elenco-tariffe li > span:first-child {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
}
.home-tariffe-contenitore .home-tariffe .elenco-tariffe li > span:first-child span {
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  font-weight: 400;
  color: #6b4e00;
}
.home-tariffe-contenitore .home-tariffe .elenco-tariffe li > span:last-child {
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(28px, 3.2vw, 40px);
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.home-tariffe-contenitore .home-tariffe .elenco-tariffe li:nth-child(2) > span:last-child {
  font-size: clamp(22px, 2.4vw, 30px);
}
.home-tariffe-contenitore .home-tariffe .elenco-tariffe li:nth-child(2) > span:last-child span {
  font-size: 15px;
}
.home-tariffe-contenitore .home-tariffe .elenco-tariffe li:last-child > span:last-child {
  font-weight: 800;
  font-size: 17px;
  line-height: 1.4;
  text-align: right;
  white-space: normal;
}
@media (max-width: 767px) {
  .home-tariffe-contenitore .home-tariffe {
    column-gap: 0;
  }
  .home-tariffe-contenitore .home-tariffe .occhiello,
  .home-tariffe-contenitore .home-tariffe .titolo,
  .home-tariffe-contenitore .home-tariffe .elenco-tariffe {
    grid-column: 1/-1;
    grid-row: auto;
  }
  .home-tariffe-contenitore .home-tariffe .elenco-tariffe {
    order: 1;
    margin-top: 20px;
  }
}

/* ---------------------------------------------------------------- COSA FACCIAMO */
.home-servizi-contenitore .home-servizi {
  grid-auto-rows: auto;
  gap: 0;
  padding-top: 72px;
}
.home-servizi-contenitore .home-servizi .titolo h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #002ba7;
}
.home-servizi-contenitore .home-servizi .titolo h2::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.home-servizi-contenitore .home-servizi .elenco-servizi {
  margin-top: 28px;
}
.home-servizi-contenitore .home-servizi .elenco-servizi ol {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 40px;
  border-top: 1.5px solid #14161a;
}
.home-servizi-contenitore .home-servizi .elenco-servizi li {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 16px;
  align-items: center;
  padding: 20px 8px 20px 0;
  border-bottom: 1.5px solid #dcd6c9;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: clamp(19px, 2vw, 23px);
  letter-spacing: -0.02em;
  color: #002ba7;
}
.home-servizi-contenitore .home-servizi .elenco-servizi li > span:first-child,
.home-servizi-contenitore .home-servizi .elenco-servizi li a > span:first-child {
  font-weight: 900;
  font-size: 28px;
  line-height: 1;
  color: #a67c00;
}
.home-servizi-contenitore .home-servizi .elenco-servizi li a {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 16px;
  align-items: center;
  color: #002ba7;
  transition: background-color 0.2s ease;
}
.home-servizi-contenitore .home-servizi .elenco-servizi li a:hover {
  background-color: #efeade;
}
.home-servizi-contenitore .home-servizi .elenco-servizi li a > span:last-child {
  font-size: 15px;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .home-servizi-contenitore .home-servizi {
    padding-top: 48px;
  }
  .home-servizi-contenitore .home-servizi .elenco-servizi ol {
    grid-template-columns: 1fr;
  }
}

/* ---------------------------------------------------------------- COME LAVORIAMO */
.home-come-lavoriamo-contenitore {
  background-color: #14161a;
  border-image: linear-gradient(#14161a, #14161a) fill 0/0/0 100vw;
  margin-top: 72px;
  color: #fff;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo {
  grid-auto-rows: auto;
  gap: 0;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .immagine {
  min-height: 320px;
  border-right: 1.5px solid rgba(255, 255, 255, 0.2);
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .immagine figure,
.home-come-lavoriamo-contenitore .home-come-lavoriamo .immagine img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .occhiello,
.home-come-lavoriamo-contenitore .home-come-lavoriamo .titolo,
.home-come-lavoriamo-contenitore .home-come-lavoriamo .step {
  padding-left: 40px;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .occhiello {
  padding-top: 48px;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .occhiello p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #ffc000;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .occhiello p::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .titolo h2 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(26px, 3.2vw, 40px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  margin-top: 16px;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .step {
  padding-top: 24px;
  padding-bottom: 48px;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .step li {
  display: grid;
  grid-template-columns: 56px 1fr;
  column-gap: 18px;
  padding: 18px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .step li > span {
  grid-row: span 2;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: 26px;
  line-height: 1;
  color: #ffc000;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .step li h3 {
  grid-column: 2;
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 19px;
  line-height: 1.3;
}
.home-come-lavoriamo-contenitore .home-come-lavoriamo .step li p {
  grid-column: 2;
  margin-top: 4px;
  font-size: 15.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.76);
}
@media (max-width: 767px) {
  .home-come-lavoriamo-contenitore .home-come-lavoriamo .immagine,
  .home-come-lavoriamo-contenitore .home-come-lavoriamo .occhiello,
  .home-come-lavoriamo-contenitore .home-come-lavoriamo .titolo,
  .home-come-lavoriamo-contenitore .home-come-lavoriamo .step {
    grid-column: 1/-1;
    grid-row: auto;
    padding-left: 0;
  }
  .home-come-lavoriamo-contenitore .home-come-lavoriamo .immagine {
    min-height: 240px;
    border-right: 0;
  }
  .home-come-lavoriamo-contenitore .home-come-lavoriamo .occhiello {
    padding-top: 32px;
  }
}

/* ---------------------------------------------------------------- CHI SERVIAMO */
.home-clienti-contenitore .home-clienti {
  grid-auto-rows: auto;
  gap: 0;
  padding-top: 72px;
}
.home-clienti-contenitore .home-clienti .titolo h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #002ba7;
}
.home-clienti-contenitore .home-clienti .titolo h2::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore,
.home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore {
  margin-top: 20px;
  border: 1.5px solid #14161a;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore {
  border-right: 0;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore .home-clienti-privati,
.home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore .home-clienti-attivita {
  height: 100%;
  grid-auto-rows: auto;
  align-content: start;
  gap: 0;
  padding: 38px 32px;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore .home-clienti-privati .titolo h3,
.home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore .home-clienti-attivita .titolo h3 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  margin-top: 12px;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore .home-clienti-privati .occhiello p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #002ba7;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore .home-clienti-privati .testo p {
  margin-top: 12px;
  font-size: 16.5px;
  line-height: 1.55;
  color: #4a4f57;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore .home-clienti-privati .bottone {
  margin-top: 22px;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore .home-clienti-privati .bottone a {
  display: inline-block;
  padding: 12px 18px;
  border: 1.5px solid #002ba7;
  background-color: #ffc000;
  color: #002ba7;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.2;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore .home-clienti-privati .bottone a:hover {
  background-color: #ffd23f;
  color: #002ba7;
}
.home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore .home-clienti-privati .bottone a {
  padding: 15px 20px;
  font-size: 16px;
}
.home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore {
  background-color: #14161a;
  color: #fff;
}
.home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore .home-clienti-attivita .occhiello p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #ffc000;
}
.home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore .home-clienti-attivita .elenco ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 20px;
  margin-top: 20px;
  font-size: 16px;
  font-weight: 600;
}
.home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore .home-clienti-attivita .elenco ul li {
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore .home-clienti-attivita .elenco ul li:nth-last-child(-n+2) {
  padding-bottom: 0;
  border-bottom: 0;
}
@media (max-width: 767px) {
  .home-clienti-contenitore .home-clienti {
    padding-top: 48px;
  }
  .home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore,
  .home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore {
    grid-column: 1/-1;
  }
  .home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore {
    border-right: 1.5px solid #14161a;
  }
  .home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore {
    margin-top: 0;
    border-top: 0;
  }
  .home-clienti-contenitore .home-clienti .home-clienti-privati-contenitore .home-clienti-privati,
  .home-clienti-contenitore .home-clienti .home-clienti-attivita-contenitore .home-clienti-attivita {
    padding: 28px 20px;
  }
}

/* ---------------------------------------------------------------- DOVE INTERVENIAMO + CHI SIAMO */
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo {
  grid-auto-rows: auto;
  gap: 44px;
  align-items: start;
  padding-top: 72px;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-zona-contenitore .home-zona {
  grid-auto-rows: auto;
  gap: 0;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-zona-contenitore .home-zona .occhiello p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #002ba7;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-zona-contenitore .home-zona .occhiello p::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-zona-contenitore .home-zona .titolo h2 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(26px, 3.4vw, 42px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  margin-top: 16px;
  color: #002ba7;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-zona-contenitore .home-zona .testo p {
  max-width: 46ch;
  margin-top: 12px;
  font-size: 16.5px;
  line-height: 1.55;
  color: #4a4f57;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-zona-contenitore .home-zona .testo p:last-child {
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  line-height: 1.7;
  color: #6a6f78;
  margin-top: 14px;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore {
  border: 1.5px solid #14161a;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore .home-chi-siamo {
  grid-auto-rows: auto;
  gap: 0;
  padding: 32px;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore .home-chi-siamo .occhiello p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #002ba7;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore .home-chi-siamo .titolo h2 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-top: 12px;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore .home-chi-siamo .testo p {
  margin-top: 12px;
  font-size: 16.5px;
  line-height: 1.55;
  color: #4a4f57;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore .home-chi-siamo .bottone {
  margin-top: 20px;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore .home-chi-siamo .bottone a {
  display: inline-block;
  padding: 12px 18px;
  border: 0;
  background-color: #002ba7;
  color: #fff;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.2;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore .home-chi-siamo .bottone a:hover {
  background-color: #001c6e;
  color: #ffc000;
}
.home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore .home-chi-siamo .bottone a {
  padding: 13px 18px;
}
@media (max-width: 767px) {
  .home-zona-chi-siamo-contenitore .home-zona-chi-siamo {
    gap: 32px 0;
    padding-top: 48px;
  }
  .home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-zona-contenitore,
  .home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore {
    grid-column: 1/-1;
  }
  .home-zona-chi-siamo-contenitore .home-zona-chi-siamo .home-chi-siamo-contenitore .home-chi-siamo {
    padding: 24px 20px;
  }
}

/* ---------------------------------------------------------------- DOMANDE FREQUENTI */
.home-faq-contenitore .home-faq {
  grid-auto-rows: auto;
  gap: 0;
  padding-top: 72px;
}
.home-faq-contenitore .home-faq .titolo h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #002ba7;
}
.home-faq-contenitore .home-faq .titolo h2::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.home-faq-contenitore .home-faq .faq ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 56px;
  margin-top: 24px;
  border-top: 1.5px solid #14161a;
}
.home-faq-contenitore .home-faq .faq ul li {
  padding: 22px 0;
  border-bottom: 1px solid #dcd6c9;
}
.home-faq-contenitore .home-faq .faq ul h3 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 19px;
  line-height: 1.3;
  color: #002ba7;
}
.home-faq-contenitore .home-faq .faq ul p {
  margin-top: 6px;
  line-height: 1.55;
  color: #4a4f57;
}
.home-faq-contenitore .home-faq .nota p {
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  line-height: 1.7;
  color: #6a6f78;
  margin-top: 16px;
}
@media (max-width: 959px) {
  .home-faq-contenitore .home-faq .faq ul {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .home-faq-contenitore .home-faq {
    padding-top: 48px;
  }
}

/* ================================================================ FOTOVOLTAICO */
/* ---------------------------------------------------------------- HERO */
.fotovoltaico-hero-contenitore {
  background-color: #002ba7;
  border-image: linear-gradient(#002ba7, #002ba7) fill 0/0/0 100vw;
  color: #fff;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero {
  grid-auto-rows: auto;
  gap: 0 44px;
  align-items: start;
  padding: 56px 0 48px;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .occhiello p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #ffc000;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .occhiello p::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .titolo h1 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(36px, 5.2vw, 68px);
  line-height: 0.94;
  letter-spacing: -0.04em;
  margin-top: 18px;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .testo p {
  max-width: 46ch;
  margin-top: 18px;
  font-size: 18px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.86);
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama,
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp {
  margin-top: 26px;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama a,
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp a {
  display: block;
  padding: 17px 24px;
  font-size: 18px;
  text-align: center;
}
@media (max-width: 1199px) {
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama a,
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp a {
    padding: 15px 10px;
    font-size: 15px;
    white-space: nowrap;
  }
}
@media (min-width: 1024px) {
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama {
    margin-right: -17px;
  }
}
@media (min-width: 1024px) {
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp {
    margin-left: -17px;
  }
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama a {
  display: inline-block;
  padding: 12px 18px;
  border: 0;
  background-color: #ffc000;
  color: #002ba7;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.2;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama a:hover {
  background-color: #ffd23f;
  color: #002ba7;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama a {
  font-weight: 900;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp a {
  display: inline-block;
  padding: 12px 18px;
  border: 0;
  background-color: #fff;
  color: #002ba7;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.2;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp a:hover {
  background-color: #e8ecf8;
  color: #002ba7;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama a,
.fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp a {
  display: block;
  text-align: center;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .immagine {
  align-self: center;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .immagine figure {
  width: min(380px, 100%);
  aspect-ratio: 4/5;
  margin: 0 auto;
  overflow: hidden;
}
.fotovoltaico-hero-contenitore .fotovoltaico-hero .immagine img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 1023px) {
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama,
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp {
    grid-column: span 6;
  }
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp {
    margin-top: 10px;
  }
}
@media (max-width: 767px) {
  .fotovoltaico-hero-contenitore .fotovoltaico-hero {
    padding: 40px 0;
    column-gap: 0;
  }
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .occhiello,
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .titolo,
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .testo,
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-chiama,
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .bottone-whatsapp,
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .immagine {
    grid-column: 1/-1;
    grid-row: auto;
  }
  .fotovoltaico-hero-contenitore .fotovoltaico-hero .immagine {
    order: 1;
    margin-top: 40px;
  }
}

/* ---------------------------------------------------------------- COSA FACCIAMO */
.fotovoltaico-servizi-contenitore .fotovoltaico-servizi {
  grid-auto-rows: auto;
  gap: 0;
  padding-top: 60px;
}
.fotovoltaico-servizi-contenitore .fotovoltaico-servizi .titolo h2 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(26px, 3.4vw, 42px);
  line-height: 1;
  letter-spacing: -0.035em;
  color: #002ba7;
}
.fotovoltaico-servizi-contenitore .fotovoltaico-servizi .elenco-servizi ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 40px;
  margin-top: 26px;
}
.fotovoltaico-servizi-contenitore .fotovoltaico-servizi .elenco-servizi ul li {
  padding: 15px 0;
  border-top: 1px solid #dcd6c9;
  font-size: 17px;
  font-weight: 600;
}
.fotovoltaico-servizi-contenitore .fotovoltaico-servizi .nota p {
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  line-height: 1.7;
  color: #6a6f78;
  margin-top: 16px;
}
@media (max-width: 767px) {
  .fotovoltaico-servizi-contenitore .fotovoltaico-servizi {
    padding-top: 40px;
  }
  .fotovoltaico-servizi-contenitore .fotovoltaico-servizi .elenco-servizi ul {
    grid-template-columns: 1fr;
  }
}

/* ---------------------------------------------------------------- SCRIVI O CHIAMA */
.fotovoltaico-contatti-contenitore {
  background-color: #ffc000;
  border-image: linear-gradient(#ffc000, #ffc000) fill 0/0/0 100vw;
  margin-top: 60px;
  color: #002ba7;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti {
  grid-auto-rows: auto;
  gap: 10px 36px;
  align-items: center;
  padding: 46px 0;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .titolo h2 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.02;
  letter-spacing: -0.03em;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-alessandro,
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-stefano {
  justify-self: end;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-alessandro a,
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-stefano a {
  padding: 16px 22px;
  font-size: 17px;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-alessandro {
  align-self: end;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-alessandro a {
  display: inline-block;
  padding: 12px 18px;
  border: 0;
  background-color: #002ba7;
  color: #fff;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.2;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-alessandro a:hover {
  background-color: #001c6e;
  color: #ffc000;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-stefano {
  align-self: start;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-stefano a {
  display: inline-block;
  padding: 12px 18px;
  border: 1.5px solid #002ba7;
  background-color: transparent;
  color: #002ba7;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.2;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-stefano a:hover {
  background-color: #002ba7;
  color: #ffc000;
}
@media (max-width: 767px) {
  .fotovoltaico-contatti-contenitore .fotovoltaico-contatti {
    padding: 36px 0;
    column-gap: 0;
  }
  .fotovoltaico-contatti-contenitore .fotovoltaico-contatti .titolo,
  .fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-alessandro,
  .fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-stefano {
    grid-column: 1/-1;
    grid-row: auto;
    justify-self: stretch;
  }
  .fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-alessandro a,
  .fotovoltaico-contatti-contenitore .fotovoltaico-contatti .bottone-stefano a {
    display: block;
    text-align: center;
  }
  .fotovoltaico-contatti-contenitore .fotovoltaico-contatti .titolo {
    margin-bottom: 14px;
  }
}

/* ================================================================ CHI SIAMO */
/* ---------------------------------------------------------------- HERO */
.chi-siamo-hero-contenitore {
  background-color: #002ba7;
  border-image: linear-gradient(#002ba7, #002ba7) fill 0/0/0 100vw;
  color: #fff;
}
.chi-siamo-hero-contenitore .chi-siamo-hero {
  grid-auto-rows: auto;
  gap: 0;
  padding: 56px 0 48px;
}
.chi-siamo-hero-contenitore .chi-siamo-hero .titolo h1 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #ffc000;
}
.chi-siamo-hero-contenitore .chi-siamo-hero .titolo h1::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.chi-siamo-hero-contenitore .chi-siamo-hero .slogan p {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(36px, 5.2vw, 68px);
  line-height: 0.94;
  letter-spacing: -0.04em;
  margin-top: 18px;
}
@media (max-width: 767px) {
  .chi-siamo-hero-contenitore .chi-siamo-hero {
    padding: 40px 0 36px;
  }
}

/* ---------------------------------------------------------------- PRESENTAZIONE */
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione {
  grid-auto-rows: auto;
  grid-template-rows: auto 1fr;
  gap: 0 44px;
  align-items: start;
  padding-top: 60px;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .immagine figure {
  aspect-ratio: 4/3;
  overflow: hidden;
  border: 1.5px solid #dcd6c9;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .immagine figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .testo h2 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  margin-bottom: 18px;
  color: #002ba7;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .testo p {
  margin-top: 14px;
  font-size: 17.5px;
  line-height: 1.6;
  color: #4a4f57;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .testo p:first-of-type {
  margin-top: 0;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .testo p strong {
  color: #14161a;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .dati ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 24px;
  margin-top: 24px;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .dati ul li {
  padding: 14px 0;
  border-top: 1.5px solid #14161a;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .dati ul li span {
  display: block;
  margin-top: 5px;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 16.5px;
  line-height: 1.3;
}
.chi-siamo-presentazione-contenitore .chi-siamo-presentazione .dati ul li span:first-child {
  margin-top: 0;
  font-family: "JetBrains Mono", monospace;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #6a6f78;
}
@media (max-width: 767px) {
  .chi-siamo-presentazione-contenitore .chi-siamo-presentazione {
    grid-template-rows: none;
    padding-top: 40px;
    column-gap: 0;
  }
  .chi-siamo-presentazione-contenitore .chi-siamo-presentazione .immagine,
  .chi-siamo-presentazione-contenitore .chi-siamo-presentazione .testo,
  .chi-siamo-presentazione-contenitore .chi-siamo-presentazione .dati {
    grid-column: 1/-1;
    grid-row: auto;
  }
  .chi-siamo-presentazione-contenitore .chi-siamo-presentazione .testo {
    margin-top: 24px;
  }
  .chi-siamo-presentazione-contenitore .chi-siamo-presentazione .dati ul {
    grid-template-columns: 1fr;
  }
}

/* ================================================================ CONTATTI */
.contatti-recapiti-contenitore {
  background-color: #002ba7;
  border-image: linear-gradient(#002ba7, #002ba7) fill 0/0/0 100vw;
  color: #fff;
}
.contatti-recapiti-contenitore .contatti-recapiti {
  grid-auto-rows: auto;
  gap: 0;
  padding: 56px 0 48px;
}
.contatti-recapiti-contenitore .contatti-recapiti .occhiello p {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #ffc000;
}
.contatti-recapiti-contenitore .contatti-recapiti .occhiello p::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.contatti-recapiti-contenitore .contatti-recapiti .titolo h1 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(36px, 5.2vw, 68px);
  line-height: 0.94;
  letter-spacing: -0.04em;
  margin-top: 18px;
}
.contatti-recapiti-contenitore .contatti-recapiti .recapiti ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 24px;
  margin-top: 32px;
}
.contatti-recapiti-contenitore .contatti-recapiti .recapiti ul li {
  padding: 14px 0;
  border-top: 1.5px solid rgba(255, 255, 255, 0.35);
}
.contatti-recapiti-contenitore .contatti-recapiti .recapiti ul li > br {
  display: none;
}
.contatti-recapiti-contenitore .contatti-recapiti .recapiti ul li > span:first-child {
  display: block;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}
.contatti-recapiti-contenitore .contatti-recapiti .recapiti ul li > a,
.contatti-recapiti-contenitore .contatti-recapiti .recapiti ul li > span:last-child {
  display: block;
  margin-top: 5px;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 18px;
  line-height: 1.3;
}
.contatti-recapiti-contenitore .contatti-recapiti .recapiti ul li > a {
  color: #ffc000;
  transition: color 0.2s ease;
}
.contatti-recapiti-contenitore .contatti-recapiti .recapiti ul li > a:hover {
  color: #fff;
}
@media (max-width: 1023px) {
  .contatti-recapiti-contenitore .contatti-recapiti .recapiti ul {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767px) {
  .contatti-recapiti-contenitore .contatti-recapiti {
    padding: 40px 0 36px;
  }
  .contatti-recapiti-contenitore .contatti-recapiti .recapiti ul {
    grid-template-columns: 1fr;
  }
}

/* ================================================================ FORM CONTATTO / PREVENTIVO (RSForm in pos-form)
   Sezione del template .form-contenitore > .form, su tutte le pagine.
   Testi a sinistra (campo testo libero con .preventivo-testi), campi a destra.
   Delle classi di RSForm si usano solo quelle indispensabili: righe/colonne (formRow, formSpan6),
   blocchi nome/telefono per affiancarli, messaggi di errore (formError) ed etichette vuote. */
.form-contenitore {
  margin-top: 72px;
  background-color: #14161a;
  color: #fff;
}
body.fotovoltaico .form-contenitore, body.contatti .form-contenitore {
  margin-top: 0;
}
.form-contenitore .form {
  padding-top: 60px;
  padding-bottom: 60px;
}
.form-contenitore .form p {
  margin: 0;
}
.form-contenitore .form p:empty {
  display: none;
}
.form-contenitore .form form {
  margin: 0;
}
.form-contenitore .form .formRow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  margin: 0;
}
.form-contenitore .form .formRow > div {
  width: auto;
  float: none;
  margin: 0;
  padding: 0;
}
.form-contenitore .form .formRow > div:last-child {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-content: start;
}
.form-contenitore .form .formRow > div:last-child > div {
  grid-column: 1/-1;
  margin: 0;
}
.form-contenitore .form .formRow > div:last-child .rsform-block-nome-e-cognome,
.form-contenitore .form .formRow > div:last-child .rsform-block-telefono {
  grid-column: auto;
}
@media (max-width: 959px) {
  .form-contenitore .form .formRow {
    grid-template-columns: 1fr;
    gap: 36px;
  }
}
@media (max-width: 767px) {
  .form-contenitore .form .formRow > div:last-child {
    grid-template-columns: 1fr;
  }
}
.form-contenitore .form .preventivo-testi .occhiello {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #ffc000;
}
.form-contenitore .form .preventivo-testi .occhiello::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
.form-contenitore .form .preventivo-testi .titolo {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(30px, 4vw, 52px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  margin-top: 16px;
}
.form-contenitore .form .preventivo-testi .testo {
  max-width: 42ch;
  margin-top: 16px;
  font-size: 17px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.8);
}
.form-contenitore .form .preventivo-testi .contatti {
  margin-top: 26px;
  border-top: 1.5px solid rgba(255, 255, 255, 0.3);
}
.form-contenitore .form .preventivo-testi .contatti li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.form-contenitore .form .preventivo-testi .contatti li:last-child {
  border-bottom: 0;
}
.form-contenitore .form .preventivo-testi .contatti .nome-numero {
  line-height: 1.1;
}
.form-contenitore .form .preventivo-testi .contatti .nome-numero span {
  display: block;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(22px, 2.6vw, 30px);
  letter-spacing: -0.02em;
  color: #ffc000;
}
.form-contenitore .form .preventivo-testi .contatti .nome-numero span:first-child {
  font-family: "JetBrains Mono", monospace;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.6);
}
.form-contenitore .form .preventivo-testi .contatti .bottoni {
  display: flex;
  gap: 8px;
}
.form-contenitore .form .preventivo-testi .contatti .bottoni a {
  display: inline-block;
  padding: 12px 18px;
  border: 0;
  background-color: #ffc000;
  color: #002ba7;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.2;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.form-contenitore .form .preventivo-testi .contatti .bottoni a:hover {
  background-color: #ffd23f;
  color: #002ba7;
}
.form-contenitore .form .preventivo-testi .contatti .bottoni a {
  padding: 11px 16px;
  font-size: 14.5px;
}
.form-contenitore .form .preventivo-testi .contatti .bottoni .bottone-chiama {
  font-weight: 900;
}
.form-contenitore .form .preventivo-testi .contatti .bottoni .bottone-whatsapp {
  background-color: #fff;
}
.form-contenitore .form .preventivo-testi .contatti .bottoni .bottone-whatsapp:hover {
  background-color: #e8ecf8;
}
@media (max-width: 767px) {
  .form-contenitore .form .preventivo-testi .contatti .bottoni {
    flex-basis: 100%;
  }
  .form-contenitore .form .preventivo-testi .contatti .bottoni a {
    flex: 1 1 0;
    text-align: center;
  }
}
.form-contenitore .form .preventivo-testi .orari {
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 14px;
  line-height: 1.8;
}
.form-contenitore .form .preventivo-testi .orari a {
  color: #ffc000;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.form-contenitore .form .preventivo-testi .orari a:hover {
  color: #fff;
}
.form-contenitore .form .formControlLabel {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.form-contenitore .form input[type=text],
.form-contenitore .form input[type=tel],
.form-contenitore .form input[type=email],
.form-contenitore .form select,
.form-contenitore .form textarea {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  padding: 15px;
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  border-radius: 0;
  background-color: #1f2228;
  box-shadow: none;
  color: #fff;
  font-family: var(--font-base, sans-serif);
  font-size: 15.5px;
  line-height: 1.3;
}
.form-contenitore .form input[type=text]::placeholder,
.form-contenitore .form input[type=tel]::placeholder,
.form-contenitore .form input[type=email]::placeholder,
.form-contenitore .form select::placeholder,
.form-contenitore .form textarea::placeholder {
  color: rgba(255, 255, 255, 0.55);
}
.form-contenitore .form input[type=text]:focus,
.form-contenitore .form input[type=tel]:focus,
.form-contenitore .form input[type=email]:focus,
.form-contenitore .form select:focus,
.form-contenitore .form textarea:focus {
  border-color: #ffc000;
  outline: none;
}
.form-contenitore .form textarea {
  resize: vertical;
}
.form-contenitore .form .formError {
  display: block;
  margin-top: 6px;
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  color: #ff8a80;
}
.form-contenitore .form button[data-rsfp-hashcash] {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  background-color: #1f2228;
  color: #fff;
  font-family: var(--font-base, sans-serif);
  font-size: 15px;
}
.form-contenitore .form button[data-rsfp-hashcash] svg {
  width: 22px;
  height: 22px;
}
.form-contenitore .form fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}
.form-contenitore .form fieldset label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.75);
  cursor: pointer;
}
.form-contenitore .form fieldset input[type=checkbox] {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: #ffc000;
}
.form-contenitore .form fieldset a {
  color: #ffc000;
  text-decoration: underline;
}
.form-contenitore .form button[type=submit] {
  width: 100%;
  padding: 17px 24px;
  border: 0;
  border-radius: 0;
  background-color: #ffc000;
  color: #002ba7;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: 17.5px;
  transition: background-color 0.2s ease;
}
.form-contenitore .form button[type=submit]:hover {
  background-color: #ffd23f;
}
.form-contenitore .form .conferma {
  padding: 28px;
  background-color: #ffc000;
  color: #002ba7;
}
.form-contenitore .form .conferma .conferma-titolo {
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: 24px;
  letter-spacing: -0.02em;
}
.form-contenitore .form .conferma p + p {
  margin-top: 8px;
  line-height: 1.55;
  color: #33322a;
}
@media (max-width: 767px) {
  .form-contenitore .form {
    padding-top: 44px;
    padding-bottom: 44px;
  }
}

/* ================================================================ COOKIE (plugin GDPR)
   Il plugin scrive i suoi stili con !important: solo qui serve !important per sovrascriverli.
   Colori e font del sito al posto del blu Google (#1967d2) e degli angoli arrotondati. */
div.cc-revoke {
  z-index: 9999 !important;
  padding: 8px 12px 8px 10px !important;
  border: 1.5px solid #002ba7 !important;
  border-radius: 0 !important;
  background-color: #fff !important;
  color: #002ba7 !important;
  font-family: "JetBrains Mono", monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 4px 14px rgba(20, 22, 26, 0.15);
}
html:has(body.mn-menu-open) div.cc-revoke {
  display: none !important;
}
div.cc-revoke:hover {
  background-color: #ffc000 !important;
  text-decoration: none !important;
}
div.cc-revoke::before {
  width: 16px !important;
  height: 16px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  vertical-align: -3px;
}
@media (max-width: 767px) {
  div.cc-revoke {
    padding: 6px 9px 6px 7px !important;
    font-size: 10px !important;
  }
}

body {
  filter: none !important;
}

div.cc-window {
  z-index: 2147483647 !important;
  border: 1.5px solid #14161a !important;
  border-radius: 0 !important;
  color: #14161a !important;
  font-family: var(--font-base, sans-serif) !important;
}
div.cc-window span.cc-header {
  font-family: "Archivo", var(--font-base, sans-serif) !important;
  font-weight: 900 !important;
  color: #002ba7 !important;
}
div.cc-window a.cc-btn {
  border-radius: 0 !important;
  background: #002ba7 !important;
  color: #fff !important;
  font-family: "Archivo", var(--font-base, sans-serif) !important;
  font-weight: 800 !important;
}
div.cc-window a.cc-btn:hover {
  background: #001c6e !important;
}
div.cc-window a.cc-btn.cc-allow {
  background: #ffc000 !important;
  color: #002ba7 !important;
}
div.cc-window a.cc-btn.cc-allow:hover {
  background: #ffd23f !important;
}
div.cc-window a.cc-link,
div.cc-window span.cc-cookie-settings-toggle,
div.cc-window #cc-toggle-domains {
  color: #002ba7 !important;
}
div.cc-window span.cc-close {
  color: #002ba7 !important;
  text-shadow: none !important;
}
div.cc-window span.cc-message-text::before,
div.cc-window div.cc-settings-label::before {
  background-color: rgba(255, 192, 0, 0.35) !important;
}
div.cc-window div.cc-checkboxes-container input.cc-cookie-checkbox:checked + span {
  background-color: #002ba7 !important;
}

/* ================================================================ BARRA CONTATTI MOBILE
   Fissa in basso, solo sotto i 768px: su smartphone il pollice arriva comodo in basso e
   chiamare/scrivere e' l'azione principale; su tablet e desktop i contatti sono gia' visibili
   nell'header e nelle pagine. Tre azioni dirette (icona + testo, area di tocco 52px):
   Chiama (numero verde), WhatsApp, Preventivo (porta alla sezione #preventivo).
   Si nasconde quando #preventivo e' a schermo (classe .nascosta da logic.js). */
.barra-mobile {
  display: none;
}

@media (max-width: 767px) {
  .barra-mobile {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 9990;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    border-top: 1.5px solid #ffc000;
    background-color: #002ba7;
    box-shadow: 0 -6px 18px rgba(20, 22, 26, 0.18);
    transition: transform 0.25s ease, visibility 0.25s;
  }
  .barra-mobile.nascosta {
    transform: translateY(110%);
    visibility: hidden;
  }
  .barra-mobile a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 52px;
    padding: 4px;
    border: 1.5px solid rgba(255, 255, 255, 0.6);
    color: #fff;
    font-family: "Archivo", var(--font-base, sans-serif);
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 0.04em;
    line-height: 1.1;
    text-transform: uppercase;
    white-space: nowrap;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  }
  .barra-mobile a svg {
    flex-shrink: 0;
  }
  .barra-mobile a:active {
    background-color: rgba(255, 255, 255, 0.14);
  }
  .barra-mobile a:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 2px;
  }
  .barra-mobile .barra-mobile-chiama {
    border-color: #ffc000;
    background-color: #ffc000;
    color: #002ba7;
    font-weight: 900;
  }
  .barra-mobile .barra-mobile-chiama:active {
    background-color: #ffd23f;
  }
  .footer-contenitore {
    padding-bottom: calc(68px + env(safe-area-inset-bottom));
  }
  div.cc-revoke {
    bottom: calc(68px + 18px + env(safe-area-inset-bottom)) !important;
    right: 12px !important;
  }
  body.mn-menu-open .barra-mobile {
    visibility: hidden;
  }
}
@media (max-width: 359px) {
  .barra-mobile {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding-right: 8px;
    padding-left: 8px;
  }
  .barra-mobile a {
    font-size: 11px;
    letter-spacing: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .barra-mobile {
    transition: none;
  }
}
@media print {
  .barra-mobile {
    display: none !important;
  }
}
/* ================================================================ ARTICOLI JOOMLA
   Pagine com_content (Privacy Policy, Cookie Policy e futuri articoli). Le pagine del builder
   sono com_makenext_builder: questi stili non le toccano.
   Layout come il resto del sito: fascia blu col titolo, poi su desktop titolo di sezione a
   sinistra (1/3) e testo a destra (2/3, riga di ~70 caratteri). Sotto i 960px una colonna. */
body.com_content.article .com-content-article {
  padding-bottom: 72px;
}
body.com_content.article .com-content-article .page-header {
  background-color: #002ba7;
  border-image: linear-gradient(#002ba7, #002ba7) fill 0/0/0 100vw;
  padding: 56px 0 48px;
  color: #fff;
}
body.com_content.article .com-content-article .page-header::before {
  content: "Informazioni legali";
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
  color: #ffc000;
  margin-bottom: 18px;
}
body.com_content.article .com-content-article .page-header::before::before {
  content: "";
  flex-shrink: 0;
  width: 28px;
  height: 3px;
  background-color: #ffc000;
}
body.com_content.article .com-content-article .page-header h1 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(34px, 4.6vw, 60px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  color: #fff;
}
body.com_content.article .com-content-article__body {
  padding-top: 48px;
  font-size: 17px;
  line-height: 1.7;
  color: #4a4f57;
}
body.com_content.article .com-content-article__body p {
  margin: 0 0 14px;
}
body.com_content.article .com-content-article__body strong {
  color: #14161a;
}
body.com_content.article .com-content-article__body h2 {
  margin: 0;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 40px 0 14px;
  padding-top: 24px;
  border-top: 1.5px solid #14161a;
  color: #002ba7;
}
body.com_content.article .com-content-article__body h3 {
  margin: 24px 0 6px;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 800;
  font-size: 18.5px;
  line-height: 1.3;
  color: #14161a;
}
body.com_content.article .com-content-article__body ul,
body.com_content.article .com-content-article__body ol {
  margin: 0 0 18px;
  padding-left: 0;
  list-style: none;
}
body.com_content.article .com-content-article__body ul li,
body.com_content.article .com-content-article__body ol li {
  position: relative;
  margin-bottom: 8px;
  padding-left: 24px;
}
body.com_content.article .com-content-article__body ul li::before,
body.com_content.article .com-content-article__body ol li::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 2px;
  width: 8px;
  height: 8px;
  background-color: #ffc000;
}
body.com_content.article .com-content-article__body a {
  color: #002ba7;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}
body.com_content.article .com-content-article__body a:hover {
  text-decoration: none;
}
body.com_content.article .com-content-article__body table {
  width: 100%;
  margin: 8px 0 28px;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 1.45;
}
body.com_content.article .com-content-article__body table th,
body.com_content.article .com-content-article__body table td {
  padding: 12px 16px 12px 0;
  border-bottom: 1.5px solid #dcd6c9;
  text-align: left;
  vertical-align: top;
}
body.com_content.article .com-content-article__body table th {
  border-bottom-color: #14161a;
  font-family: "JetBrains Mono", monospace;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #6a6f78;
  white-space: nowrap;
}
body.com_content.article .com-content-article__body table td:first-child {
  font-weight: 700;
  color: #14161a;
  overflow-wrap: anywhere;
}
@media (min-width: 960px) {
  body.com_content.article .com-content-article__body {
    padding-left: calc((100% - 44px) / 3 + 44px);
  }
  body.com_content.article .com-content-article__body > h2 {
    float: left;
    clear: left;
    width: 50%;
    margin: 40px 0 0 calc(-50% - 44px);
  }
  body.com_content.article .com-content-article__body > h2 + * {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1.5px solid #14161a;
  }
  body.com_content.article .com-content-article__body > h2 + h3 {
    margin-bottom: 6px;
  }
}
@media (max-width: 767px) {
  body.com_content.article .com-content-article__body {
    padding-top: 32px;
    font-size: 16px;
    line-height: 1.65;
  }
  body.com_content.article .com-content-article__body table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
  body.com_content.article .com-content-article__body table tr {
    display: block;
    padding: 14px 0;
    border-bottom: 1.5px solid #dcd6c9;
  }
  body.com_content.article .com-content-article__body table tr:first-child {
    border-top: 1.5px solid #14161a;
  }
  body.com_content.article .com-content-article__body table td {
    display: block;
    padding: 3px 0;
    border: 0;
  }
  body.com_content.article .com-content-article__body table td::before {
    display: block;
    margin-top: 8px;
    font-family: "JetBrains Mono", monospace;
    font-weight: 400;
    font-size: 10.5px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #6a6f78;
  }
  body.com_content.article .com-content-article__body table td[data-label]::before {
    content: attr(data-label);
  }
  body.com_content.article .com-content-article__body table td:nth-child(2):not([data-label])::before {
    content: "Tipo";
  }
  body.com_content.article .com-content-article__body table td:nth-child(3):not([data-label])::before {
    content: "Scadenza";
  }
  body.com_content.article .com-content-article__body table td:nth-child(4):not([data-label])::before {
    content: "Funzione";
  }
  body.com_content.article .com-content-article__body table td:first-child::before {
    display: none;
  }
}
@media (max-width: 767px) {
  body.com_content.article .com-content-article .page-header {
    padding: 40px 0 36px;
  }
}

body.privacy-policy .com-content-article__body p:has(> strong:first-child) {
  position: relative;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1.5px solid #14161a;
}
body.privacy-policy .com-content-article__body p > strong:first-child {
  display: block;
  margin-bottom: 6px;
  font-family: "Archivo", var(--font-base, sans-serif);
  font-weight: 900;
  font-size: 21px;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #002ba7;
}
body.privacy-policy .com-content-article__body p > strong:first-child + br {
  display: none;
}
@media (min-width: 960px) {
  body.privacy-policy .com-content-article__body p > strong:first-child {
    position: absolute;
    top: 24px;
    right: calc(100% + 44px);
    width: 50%;
    margin: 0;
  }
  body.privacy-policy .com-content-article__body p:has(> strong:first-child)::before {
    content: "";
    position: absolute;
    top: -1.5px;
    right: calc(100% + 44px);
    width: 50%;
    border-top: 1.5px solid #14161a;
  }
}

body.cookie-policy .com-content-article__body > p:first-child {
  margin: 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  line-height: 1.7;
  color: #6a6f78;
  font-size: 12.5px;
}

/*# sourceMappingURL=template.css.map */
