@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Fira+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');



/* ================================================== */
/*  IMPOSTAZIONI GENERALI                             */
/* ================================================== */
/*
  Colori principali:
  - Testo / nero: #000
  - Pantone principale: #FF4900
  - Secondario link: #fec43e
  - Neutri: #fff, #f8f8f8, #f5f5f5, #e5e5e5, #e0e0e0

  Convenzione:
  - Dove possibile usare nomi classe in italiano.
  - Misure in px.
*/



/* ================================================== */
/*  TESTO / TITOLI / BODY                             */
/* ================================================== */

/* INIZIO BODY */
body {
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  color: #000;
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* FINE BODY */


/* INIZIO PARAGRAFI */
p {
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  line-height: 23px;
  color: #000;
  text-align: justify;
  text-justify: inter-word;
  margin-top: 0;
  margin-bottom: 16px;
}

p:last-child {
  margin-bottom: 0;
}
/* FINE PARAGRAFI */


/* INIZIO LINK */
a {
  color: #FF4900;
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: #fec43e;
  text-decoration: none;
}
/* FINE LINK */


/* INIZIO TITOLI */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Fira Sans', sans-serif;
  color: #000;
  margin-top: 0;
  margin-bottom: 12px;
  font-weight: 600;
}

h1 {
  font-size: 40px;
  line-height: 50px;
  font-weight: 700;
  color: #FF4900;
  letter-spacing: -0.5px;
}

h2 {
  font-size: 32px;
  line-height: 40px;
  font-weight: 700;
}

h3 {
  font-size: 24px;
  line-height: 30px;
  font-weight: 600;
}

h4 {
  font-size: 20px;
  line-height: 25px;
  font-weight: 600;
}

h5 {
  font-size: 18px;
  line-height: 23px;
  font-weight: 500;
}

h6 {
  font-size: 16px;
  line-height: 20px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

@media (max-width: 767.98px) {
  h1 {
    font-size: 32px;
  }

  h2 {
    font-size: 26px;
  }

  h3 {
    font-size: 22px;
  }

  h4 {
    font-size: 18px;
  }
}
/* FINE TITOLI */



/* ================================================== */
/*  ELEMENTI GRAFICI COMUNI                           */
/* ================================================== */

/* INIZIO RIGA ORIZZONTALE */
hr {
  display: block;
  width: 100%;
  height: 0;
  margin: 32px 0;
  padding: 0;
  border: 0;
  border-top: 1px solid #e0e0e0;
  background: none;
  opacity: 1;
}
/* FINE RIGA ORIZZONTALE */


/* INIZIO LINEA GRAFICA */
.linea-grafica {
  display: inline-block;
  width: 80px;
  height: 2px;
  background-color: #000;
  vertical-align: middle;
}
/* FINE LINEA GRAFICA */


/* INIZIO BOTTONE TORNA SU */
.torna-su {
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  color: #fff;
  background-color: #000;
  border: 1px solid #000;
  border-radius: 10px;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.torna-su i {
  color: #fff;
  font-size: 18px;
  line-height: 18px;
}

.torna-su:hover {
  color: #FF4900;
  background-color: #fff;
  border-color: #000;
}

.torna-su:hover i {
  color: #FF4900;
}

@media (max-width: 575.98px) {
  .torna-su {
    right: 18px;
    bottom: 18px;
    width: 44px;
    height: 44px;
  }
}
/* FINE BOTTONE TORNA SU */



/* ================================================== */
/*  PUNTI ELENCO                                      */
/* ================================================== */
/*
  Solo <ul class="a|b|c|d|e|f">
  Esempio primo livello: <ul class="c"><li>...</li></ul>
  Esempio secondo livello: <ul class="c"><li>...<ul class="c">...</ul></li></ul>
*/

/* INIZIO LISTE - PRIMO LIVELLO */
ul.a, ul.b, ul.c, ul.d, ul.e, ul.f {
  margin: 0 0 20px 25px;
  padding-left: 0;
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  line-height: 26px;
  color: #000;
  list-style-position: outside;
}

ul.a > li,
ul.b > li,
ul.c > li,
ul.d > li,
ul.e > li,
ul.f > li {
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  line-height: 26px;
  color: #000;
  text-align: justify;
  text-justify: inter-word;
  padding-bottom: 8px;
}

ul.a > li:last-child,
ul.b > li:last-child,
ul.c > li:last-child,
ul.d > li:last-child,
ul.e > li:last-child,
ul.f > li:last-child {
  padding-bottom: 0;
}
/* FINE LISTE - PRIMO LIVELLO */


/* INIZIO LISTE - SECONDO LIVELLO */
ul.a li ul,
ul.b li ul,
ul.c li ul,
ul.d li ul,
ul.e li ul,
ul.f li ul {
  margin: 8px 0 0 18px;
  padding-left: 0;
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  line-height: 26px;
  color: #000;
  list-style-position: outside;
}

ul.a li ul > li,
ul.b li ul > li,
ul.c li ul > li,
ul.d li ul > li,
ul.e li ul > li,
ul.f li ul > li {
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  line-height: 26px;
  color: #000;
  text-align: justify;
  text-justify: inter-word;
  padding-bottom: 4px;
}

ul.a li ul > li:last-child,
ul.b li ul > li:last-child,
ul.c li ul > li:last-child,
ul.d li ul > li:last-child,
ul.e li ul > li:last-child,
ul.f li ul > li:last-child {
  padding-bottom: 0;
}
/* FINE LISTE - SECONDO LIVELLO */


/* INIZIO TIPI DI ELENCO */
ul.a { list-style-type: circle; }
ul.b { list-style-type: square; }
ul.c { list-style-type: disc; }
ul.d { list-style-type: decimal; }
ul.e { list-style-type: lower-alpha; }
ul.f { list-style-type: lower-roman; }

ul.a li ul.a { list-style-type: disc; }
ul.b li ul.b { list-style-type: disc; }
ul.c li ul.c { list-style-type: circle; }
ul.d li ul.d { list-style-type: lower-alpha; }
ul.e li ul.e { list-style-type: lower-roman; }
ul.f li ul.f { list-style-type: lower-alpha; }

ul.a li ul:not([class]),
ul.b li ul:not([class]),
ul.c li ul:not([class]),
ul.d li ul:not([class]),
ul.e li ul:not([class]),
ul.f li ul:not([class]) {
  list-style-type: disc;
}
/* FINE TIPI DI ELENCO */



/* ================================================== */
/*  TABELLE                                           */
/* ================================================== */

/* INIZIO TABELLA CUSTOM */
.table-custom {
  width: 100%;
  margin-bottom: 0;
  border-collapse: separate;
  border-spacing: 0;
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  line-height: 26px;
  color: #000;
}

.table-custom thead th {
  background: #000;
  color: #fff;
  font-family: 'Fira Sans', sans-serif;
  font-weight: 600;
  font-style: normal;
  vertical-align: middle;
  text-align: center;
  border: 0;
  border-bottom: 3px solid #333;
  padding: 12px 12px;
}

.table-custom tbody td {
  font-family: 'Fira Sans', sans-serif;
  font-weight: 400;
  font-style: normal;
  vertical-align: middle;
  text-align: center;
  color: #000;
  border-top: 1px solid #e5e5e5;
  padding: 12px 12px;
}

.table-custom tbody tr:nth-of-type(even) {
  background-color: #f5f5f5;
}

.table-custom tbody tr:nth-of-type(odd) {
  background-color: #ffffff;
}

.table-wrapper {
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  overflow: hidden;
}
/* FINE TABELLA CUSTOM */


/* INIZIO TABELLA BIANCA */
.table-custom-white {
  width: 100%;
  margin-bottom: 0;
  border-collapse: separate;
  border-spacing: 0;
  font-family: 'Fira Sans', sans-serif;
  font-size: 14px;
  line-height: 22px;
  color: #000;
}

.table-custom-white thead th {
  background: #000;
  color: #fff;
  font-family: 'Fira Sans', sans-serif;
  font-weight: 600;
  font-style: normal;
  vertical-align: middle;
  text-align: center;
  border: 0;
  border-bottom: 1px solid #e0e0e0;
  padding: 12px 12px;
}

.table-custom-white tbody td {
  font-family: 'Fira Sans', sans-serif;
  font-weight: 400;
  font-style: normal;
  vertical-align: middle;
  text-align: center;
  color: #000;
  border-top: 1px solid #e5e5e5;
  padding: 12px 12px;
  background-color: #ffffff;
}

.table-custom-white tbody tr {
  background-color: #ffffff;
}

.table-wrapper-white {
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  overflow: hidden;
}
/* FINE TABELLA BIANCA */


/* ================================================== */
/*  UTILITY TABELLE                                   */
/* ================================================== */

/* Allineamenti singole celle */
.td-left {
  text-align: left !important;
}

.td-center {
  text-align: center !important;
}

.td-right {
  text-align: right !important;
}


/* Allineamento intera tabella */
.table-align-left th,
.table-align-left td {
  text-align: left !important;
}

.table-align-center th,
.table-align-center td {
  text-align: center !important;
}

.table-align-right th,
.table-align-right td {
  text-align: right !important;
}


/* Divider verticale */
.table-divider-v th + th,
.table-divider-v td + td {
  border-left: 1px solid #e5e5e5;
}


/* Colonna label */
.table-label {
  width: 320px;
  white-space: nowrap;
}


/* Icone */
.table-icon {
  font-family: 'Fira Sans', sans-serif;
  font-size: 25px;
  font-weight: 400;
  color: #000;
}

.table-icon:hover {
  color: #333;
}
/* FINE UTILITY TABELLE */



/* ================================================== */
/*  PULSANTI                                          */
/* ================================================== */

/* INIZIO PULSANTE UNO */
.btn-uno,
a.btn-uno,
button.btn-uno {
  display: inline-block;
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 26px;
  color: #fff;
  background-color: #000;
  border: 1px solid #000;
  border-radius: 10px;
  padding: 12px 24px;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.btn-uno:hover,
a.btn-uno:hover,
button.btn-uno:hover {
  color: #FF4900;
  background-color: #fff;
  border-color: #000;
  text-decoration: none;
}
/* FINE PULSANTE UNO */


/* INIZIO PULSANTE DUE */
.btn-due,
a.btn-due,
button.btn-due {
  display: inline-block;
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 26px;
  color: #000;
  background-color: #fff;
  border: 1px solid #000;
  border-radius: 10px;
  padding: 12px 24px;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.btn-due:hover,
a.btn-due:hover,
button.btn-due:hover {
  color: #fff;
  background-color: #000;
  border-color: #000;
  text-decoration: none;
}
/* FINE PULSANTE DUE */


/* INIZIO PULSANTE ARTICOLO */
.btn-articolo,
a.btn-articolo {
  display: inline-block;
  font-family: 'Fira Sans', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
  color: #fff;
  background-color: #000;
  border: 1px solid #000;
  border-radius: 10px;
  padding: 12px 28px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.btn-articolo:hover,
a.btn-articolo:hover {
  color: #FF4900;
  background-color: #fff;
  border-color: #000;
  text-decoration: none;
}
/* FINE PULSANTE ARTICOLO */



/* INIZIO PULSANTE INIZIO ATTIVITA */

.btn-inizia-attivita,
a.btn-inizia-attivita,
button.btn-inizia-attivita {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  font-family: 'Fira Sans', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  color: #fff;
  background-color: #198754;
  border: 1px solid #198754;
  border-radius: 12px;
  padding: 18px 28px;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    transform 0.2s ease;
}

.btn-inizia-attivita:hover,
a.btn-inizia-attivita:hover,
button.btn-inizia-attivita:hover {
  color: #198754;
  background-color: #fff;
  border-color: #198754;
  text-decoration: none;
  transform: translateY(-1px);
}

/* FINE PULSANTE INIZIO ATTIVITA */



/* INIZIO PULSANTE FINE ATTIVITA */

.btn-termina-attivita,
a.btn-termina-attivita,
button.btn-termina-attivita {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  font-family: 'Fira Sans', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  color: #fff;
  background-color: #dc3545;
  border: 1px solid #dc3545;
  border-radius: 12px;
  padding: 18px 28px;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    transform 0.2s ease;
}

.btn-termina-attivita:hover,
a.btn-termina-attivita:hover,
button.btn-termina-attivita:hover {
  color: #dc3545;
  background-color: #fff;
  border-color: #dc3545;
  text-decoration: none;
  transform: translateY(-1px);
}

/* FINE PULSANTE FINE ATTIVITA */



/* ================================================== */
/*  FORM                                              */
/* ================================================== */
/*
  Stile comune per i form:
  - Campi liberi: input e textarea
  - Campi a scelta: select
  - Layout consigliato: row e col di Bootstrap
  - Pensato per area riservata e pagine interne
*/

/* INIZIO FORM */
.form-sito {
  width: 100%;
}

.form-sito__campo {
  width: 100%;
  margin-bottom: 22px;
}

.form-sito__riga {
  margin-bottom: 24px;
}

.form-sito__riga .form-sito__campo {
  margin-bottom: 0;
}

.form-sito label {
  display: block;
  font-family: 'Fira Sans', sans-serif;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: #000;
  margin-bottom: 8px;
}

.form-sito input,
.form-sito select,
.form-sito textarea {
  display: block;
  width: 100%;
  font-family: 'Fira Sans', sans-serif;
  font-size: 15px;
  line-height: 22px;
  font-weight: 400;
  color: #000;
  background-color: #fff;
  border: 1px solid #000;
  border-radius: 8px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-sito input,
.form-sito select {
  height: 48px;
  padding: 10px 14px;
}

.form-sito textarea {
  min-height: 150px;
  padding: 12px 14px;
  resize: vertical;
}

.form-sito select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, #000 50%),
    linear-gradient(135deg, #000 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 21px,
    calc(100% - 12px) 21px;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 40px;
}

.form-sito input:focus,
.form-sito select:focus,
.form-sito textarea:focus {
  border-color: #FF4900;
  box-shadow: 0 0 0 3px rgba(255, 73, 0, 0.14);
}

.form-sito input::placeholder,
.form-sito textarea::placeholder {
  color: #777;
  opacity: 1;
}

/* FINE FORM */



/* ================================================== */
/*  FOOTER                                            */
/* ================================================== */

/* INIZIO FOOTER */
.footer-sito {
  background-color: #000;
  color: #fff;
  padding: 56px 64px 42px 64px;
}

.footer-sito__interno {
  width: 100%;
  max-width: 1510px;
  margin: 0 auto;
}

.footer-sito__alto {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding-bottom: 34px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.footer-sito__menu ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-sito__menu a,
.footer-sito__social a,
.footer-sito__crediti a {
  color: #fff;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-sito__menu a {
  font-family: 'Fira Sans', sans-serif;
  font-size: 13px;
  line-height: 20px;
  font-weight: 400;
}

.footer-sito__menu a:hover,
.footer-sito__social a:hover,
.footer-sito__crediti a:hover {
  color: #FF4900;
  text-decoration: none;
}

.footer-sito__social {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
}

.footer-sito__social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  font-size: 17px;
  line-height: 17px;
}

.footer-sito__basso {
  padding-top: 28px;
}

.footer-sito__basso p {
  font-family: 'Fira Sans', sans-serif;
  font-size: 13px;
  line-height: 23px;
  font-weight: 400;
  color: #fff;
  text-align: left;
  margin-bottom: 10px;
}

.footer-sito__basso span::before {
  content: "|";
  display: inline-block;
  margin: 0 10px;
  color: rgba(255, 255, 255, 0.45);
}

.footer-sito__crediti {
  margin-bottom: 0;
}

@media (max-width: 991.98px) {
  .footer-sito {
    padding: 48px 28px 38px 28px;
  }

  .footer-sito__alto {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-sito__social {
    justify-content: flex-start;
  }
}

@media (max-width: 575.98px) {
  .footer-sito {
    padding: 42px 22px 34px 22px;
  }

  .footer-sito__menu ul {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .footer-sito__basso span {
    display: block;
  }

  .footer-sito__basso span::before {
    display: none;
  }
}
/* FINE FOOTER */



/* ================================================== */
/*  PAGINE INTERNE                                    */
/* ================================================== */



/* ================================================== */
/*  CATEGORIA                                         */
/* ================================================== */
/*
  Layout mastro categorie:
  - Colonna sinistra ridotta rispetto alla home
  - Articoli a destra in 3 colonne desktop
  - Paginazione centrata sotto la griglia
*/

/* INIZIO CATEGORIA */
.categoria-layout {
  position: relative;
  background-color: #fff;
  padding: 120px 64px;
  overflow: hidden;
}

.categoria-layout::before {
  content: none;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: #f8f8f8;
}

.categoria-layout__interno {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1510px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(300px, 28%) 100px minmax(0, 1fr);
  align-items: center;
  column-gap: 42px;
}

.categoria-layout__titolo-wrap {
  position: relative;
  z-index: 0;
  align-self: stretch;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 100%;
  padding-right: 24px;
  overflow: visible;
}

.categoria-layout__titolo-wrap::before {
  content: "";
  position: absolute;
  top: -120px;
  right: 0;
  bottom: -120px;
  left: -100vw;
  z-index: -1;
  background-color: #f8f8f8;
}

.categoria-layout__titolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 54px;
  line-height: 67px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 0;
  max-width: 100%;
  overflow-wrap: break-word;
  hyphens: auto;
}

.categoria-layout__titolo span {
  color: #FF4900;
}

.categoria-layout__separatore {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 0;
}

.categoria-layout__linea {
  width: 80px;
}

.categoria-layout__contenuto {
  width: 100%;
}

.categoria-layout__lista {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  --bs-gutter-y: 56px;
}

.categoria-layout__articolo {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  height: 100%;
}

@media (min-width: 1200px) {
  .categoria-layout__lista > .categoria-layout__articolo {
    width: 33.333333%;
  }
}

.categoria-layout__immagine {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin-bottom: 20px;
  overflow: hidden;
  background-color: #f5f5f5;
}

.categoria-layout__immagine img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.categoria-layout__immagine:hover img {
  transform: scale(1.04);
}

.categoria-layout__articolo h2 {
  font-family: 'Fira Sans', sans-serif;
  font-size: 20px;
  line-height: 28px;
  font-weight: 600;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 12px;
}

.categoria-layout__articolo p {
  color: #444;
  text-align: left;
  margin-bottom: 22px;
}

.categoria-layout__bottone {
  align-self: flex-start;
  margin-top: auto;
  font-size: 13px;
  line-height: 20px;
  padding: 10px 20px;
}

@media (max-width: 1199.98px) {
  .categoria-layout__interno {
    grid-template-columns: minmax(270px, 28%) 90px minmax(0, 1fr);
    column-gap: 34px;
  }

  .categoria-layout__titolo {
    font-size: 48px;
    line-height: 58px;
  }
}

@media (max-width: 991.98px) {
  .categoria-layout {
    padding: 90px 28px;
  }

  .categoria-layout::before {
    content: "";
    width: 100%;
    height: 250px;
    bottom: auto;
  }

  .categoria-layout__titolo-wrap {
    align-self: auto;
    padding-right: 0;
  }

  .categoria-layout__titolo-wrap::before {
    content: none;
  }

  .categoria-layout__interno {
    grid-template-columns: 1fr;
    row-gap: 28px;
  }

  .categoria-layout__titolo {
    font-size: 44px;
    line-height: 54px;
  }

  .categoria-layout__separatore {
    justify-content: flex-start;
    padding-top: 0;
  }
}

@media (max-width: 575.98px) {
  .categoria-layout {
    padding: 72px 22px;
  }

  .categoria-layout__titolo {
    font-size: 38px;
    line-height: 46px;
  }
}

a.categoria-layout-titolo-articolo {
    font-family: 'Fira Sans', sans-serif;
    font-size: 20px;
    line-height: 28px;
    font-weight: 600;
    color: #000 !important;
    text-decoration: none !important;
}

a.categoria-layout-titolo-articolo:hover {
    color: #FF4900 !important;
}
/* FINE CATEGORIA */


/* INIZIO PAGINAZIONE */
.paginazione {
  width: 100%;
  margin-top: 58px;
  text-align: center;
}

.paginazione ul {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.paginazione a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  font-family: 'Fira Sans', sans-serif;
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
  color: #fff;
  background-color: #000;
  border: 1px solid #000;
  border-radius: 6px;
  text-decoration: none;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.paginazione a:hover {
  color: #FF4900;
  background-color: #fff;
  border-color: #000;
  text-decoration: none;
}

.paginazione a.is-active,
.paginazione a[aria-current="page"] {
  color: #000;
  background-color: #fff;
  border-color: #000;
}

@media (max-width: 575.98px) {
  .paginazione ul {
    gap: 8px;
  }

  .paginazione a {
    width: 38px;
    height: 38px;
    font-size: 14px;
  }
}
/* FINE PAGINAZIONE */



/* ================================================== */
/*  ARTICOLO                                          */
/* ================================================== */
/*
  Layout mastro articolo:
  - Colonna centrale unica da 1100px
  - Immagine orizzontale formato 1100x520
  - Testo sotto immagine giustificato
*/

/* INIZIO ARTICOLO */
.articolo-layout {
  background-color: #fff;
  padding: 120px 64px;
}

.articolo-layout__interno {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.articolo-layout__titolo {
  max-width: 100%;
  font-family: 'Fira Sans', sans-serif;
  font-size: 54px;
  line-height: 67px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 42px;
}

.articolo-layout__media {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1100 / 520;
  min-height: 280px;
  margin: 0 0 46px 0;
  background-color: #f2f2f2;
}

.articolo-layout__media span {
  font-family: 'Fira Sans', sans-serif;
  font-size: 42px;
  line-height: 52px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
}

.articolo-layout__testo {
  width: 100%;
}

.articolo-layout__testo p {
  font-size: 16px;
  line-height: 27px;
  color: #000;
  text-align: justify;
  text-justify: inter-word;
  margin-bottom: 24px;
}

.articolo-layout__testo p:last-child {
  margin-bottom: 0;
}

@media (max-width: 991.98px) {
  .articolo-layout {
    padding: 90px 28px;
  }

  .articolo-layout__titolo {
    font-size: 44px;
    line-height: 54px;
    margin-bottom: 34px;
  }

  .articolo-layout__media {
    min-height: 220px;
    margin-bottom: 36px;
  }

  .articolo-layout__media span {
    font-size: 34px;
    line-height: 44px;
  }
}

@media (max-width: 575.98px) {
  .articolo-layout {
    padding: 72px 22px;
  }

  .articolo-layout__titolo {
    font-size: 38px;
    line-height: 46px;
  }

  .articolo-layout__media {
    min-height: 170px;
  }

  .articolo-layout__media span {
    font-size: 28px;
    line-height: 36px;
  }

  .articolo-layout__testo p {
    font-size: 15px;
    line-height: 25px;
  }
}
/* FINE ARTICOLO */



/* ================================================== */
/*  LOGIN / RECOVERY PASSWORD                         */
/* ================================================== */
/*
  Layout accesso:
  - Box centrale stretto
  - Background box bianco e bordo nero
  - Form compatto per login e recupero password
*/

/* INIZIO ACCESSO */
.accesso-layout {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 680px;
  background-color: #f8f8f8;
  padding: 100px 28px;
}

.accesso-layout__box {
  width: 100%;
  max-width: 430px;
  background-color: #fff;
  border: 1px solid #000;
  border-radius: 10px;
  padding: 46px 38px 40px 38px;
  text-align: center;
}

.accesso-layout__icona {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 78px;
  height: 78px;
  margin: 0 auto 28px auto;
  color: #fff;
  background-color: #000;
  border: 1px solid #000;
  border-radius: 50%;
}

.accesso-layout__icona i {
  font-size: 30px;
  line-height: 30px;
}

.accesso-layout__titolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 30px;
  line-height: 38px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  text-align: center;
  margin-bottom: 30px;
}

.accesso-layout__form {
  width: 100%;
}

.accesso-layout__campo {
  margin-bottom: 18px;
  text-align: left;
}

.accesso-layout__campo label {
  display: block;
  font-family: 'Fira Sans', sans-serif;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: #000;
  margin-bottom: 8px;
}

.accesso-layout__campo input {
  display: block;
  width: 100%;
  height: 48px;
  font-family: 'Fira Sans', sans-serif;
  font-size: 15px;
  line-height: 22px;
  color: #000;
  background-color: #fff;
  border: 1px solid #000;
  border-radius: 8px;
  padding: 10px 14px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.accesso-layout__campo input:focus {
  border-color: #FF4900;
  box-shadow: 0 0 0 3px rgba(255, 73, 0, 0.14);
}

.accesso-layout__bottone {
  width: 100%;
  margin-top: 8px;
}

.accesso-layout__link {
  font-size: 14px;
  line-height: 22px;
  text-align: center;
  margin-top: 30px;
  margin-bottom: 0;
}

.accesso-layout__link a {
  font-weight: 600;
  color: #000;
  text-decoration: none;
}

.accesso-layout__link a:hover {
  color: #FF4900;
  text-decoration: none;
}

@media (max-width: 575.98px) {
  .accesso-layout {
    min-height: 600px;
    padding: 72px 22px;
  }

  .accesso-layout__box {
    padding: 40px 24px 34px 24px;
  }

  .accesso-layout__titolo {
    font-size: 26px;
    line-height: 34px;
  }
}
/* FINE ACCESSO */



/* ================================================== */
/*  PROFILO                                           */
/* ================================================== */
/*
  Layout profilo area riservata:
  - Colonna centrale piu larga del login
  - Foto profilo tonda
  - Form aziendale con campi comuni
*/

/* INIZIO PROFILO */
.profilo-layout {
  background-color: #fff;
  padding: 110px 64px 120px 64px;
}

.profilo-layout__interno {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.profilo-layout__foto {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 118px;
  height: 118px;
  margin: 0 auto 26px auto;
  color: #000;
  background-color: #f2f2f2;
  border: 1px solid #000;
  border-radius: 50%;
  overflow: hidden;
}

.profilo-layout__foto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profilo-layout__foto span {
  font-family: 'Fira Sans', sans-serif;
  font-size: 18px;
  line-height: 24px;
  font-weight: 700;
  color: #000;
}

.profilo-layout__titolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 28px;
  line-height: 36px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  text-align: center;
  margin-bottom: 46px;
}

.profilo-layout__titolo--con-sottotitolo {
  margin-bottom: 6px;
}

.profilo-layout__sottotitolo {
  display: block;
  width: 100%;
  font-family: 'Fira Sans', sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 400;
  color: #000;
  text-align: center;
  margin: 0 auto 46px auto;
}

.profilo-layout__form {
  width: 100%;
}

/* INIZIO MENU AREA RISERVATA */
.menu-area-riservata {
  margin: 0 calc(50% - 50vw) 58px calc(50% - 50vw);
  border-bottom: 1px solid rgba(0, 0, 0, 0.14);
}

.menu-area-riservata__interno {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  border-top: 1px solid rgba(0, 0, 0, 0.14);
  overflow-x: auto;
  scrollbar-width: none;
}

.menu-area-riservata__interno::-webkit-scrollbar {
  display: none;
}

.menu-area-riservata__lista {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 86px;
  width: max-content;
  min-width: 100%;
  margin: 0;
  padding: 0 24px;
  list-style: none;
}

.menu-area-riservata__voce {
  margin: 0;
  padding: 0;
}

.menu-area-riservata__link {
  position: relative;
  display: block;
  padding: 24px 6px 26px 6px;
  font-family: 'Fira Sans', sans-serif;
  font-size: 13px;
  line-height: 18px;
  font-weight: 500;
  color: #777;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.menu-area-riservata__link::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background-color: #FF4900;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.2s ease;
}

.menu-area-riservata__link:hover,
.menu-area-riservata__link.is-active,
.menu-area-riservata__link[aria-current="page"] {
  color: #000;
  text-decoration: none;
}

.menu-area-riservata__link:hover::after,
.menu-area-riservata__link.is-active::after,
.menu-area-riservata__link[aria-current="page"]::after {
  transform: scaleX(1);
}
/* FINE MENU AREA RISERVATA */

.profilo-layout__azioni {
  display: flex;
  justify-content: center;
  margin-top: 34px;
}

@media (max-width: 991.98px) {
  .profilo-layout {
    padding: 90px 28px;
  }

  .menu-area-riservata__lista {
    justify-content: flex-start;
    gap: 46px;
    padding: 0 48px 0 28px;
  }
}

@media (max-width: 575.98px) {
  .profilo-layout {
    padding: 72px 22px;
  }

  .profilo-layout__foto {
    width: 104px;
    height: 104px;
  }

  .profilo-layout__titolo {
    font-size: 26px;
    line-height: 34px;
    margin-bottom: 36px;
  }

  .profilo-layout__titolo--con-sottotitolo {
    margin-bottom: 6px;
  }

  .profilo-layout__sottotitolo {
    font-size: 15px;
    line-height: 23px;
    margin-bottom: 36px;
  }

  .menu-area-riservata {
    margin-bottom: 46px;
  }

  .menu-area-riservata__lista {
    gap: 34px;
    padding: 0 56px 0 22px;
  }

  .menu-area-riservata__link {
    padding-top: 20px;
    padding-bottom: 22px;
    font-size: 12px;
    line-height: 17px;
    letter-spacing: 1.5px;
  }

  .profilo-layout__azioni .btn-uno {
    width: 100%;
  }
}
/* FINE PROFILO */



/* ================================================== */
/*  PROGETTI                                          */
/* ================================================== */
/*
  Layout elenco progetti:
  - Griglia Bootstrap 1/2/3 colonne
  - Card con border nero su left, right e bottom
  - Immagine tonda centrata e sovrapposta al bordo superiore
*/

/* INIZIO PROGETTI */
.progetti-layout {
  background-color: #fff;
  padding: 100px 64px 120px 64px;
}

.progetti-layout__interno {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.progetti-layout__lista {
  --bs-gutter-y: 78px;
}

.progetti-layout__lista > [class*="col-"] {
  padding-top: 64px;
}

.progetto-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  min-height: 355px;
  padding: 94px 34px 38px 34px;
  text-align: center;
  background-color: #fff;
  border-bottom: 1px solid #000;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.08);
}

.progetto-card::before,
.progetto-card::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  pointer-events: none;
  background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0.55) 58%, rgba(0, 0, 0, 0) 100%);
}

.progetto-card::before {
  left: 0;
}

.progetto-card::after {
  right: 0;
}

.progetto-card__immagine {
  position: absolute;
  top: -64px;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 128px;
  height: 128px;
  color: #000;
  background-color: #f2f2f2;
  border: 1px solid #e0e0e0;
  border-radius: 50%;
  overflow: hidden;
  transform: translateX(-50%);
}

.progetto-card__immagine img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.progetto-card__immagine span {
  font-family: 'Fira Sans', sans-serif;
  font-size: 30px;
  line-height: 38px;
  font-weight: 700;
  color: #000;
}

.progetto-card__contenuto {
  width: 100%;
  margin-bottom: 34px;
}

.progetto-card__ets {
  font-family: 'Fira Sans', sans-serif;
  font-size: 20px;
  line-height: 28px;
  font-weight: 400;
  color: #000;
  letter-spacing: 1.5px;
  text-align: center;
  margin-bottom: 14px;
}

.progetto-card__titolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 28px;
  line-height: 36px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  text-align: center;
  margin-bottom: 14px;
}

.progetto-card__area {
  font-family: 'Fira Sans', sans-serif;
  font-size: 14px;
  line-height: 22px;
  font-weight: 400;
  color: #777;
  text-align: center;
  margin-bottom: 0;
}

.progetto-card__bottone {
  align-self: center;
  margin-top: auto;
  font-size: 13px;
  line-height: 20px;
  padding: 10px 24px;
}

.progetti-layout__paginazione {
  margin-top: 76px;
}

@media (max-width: 991.98px) {
  .progetti-layout {
    padding: 90px 28px;
  }
}

@media (max-width: 575.98px) {
  .progetti-layout {
    padding: 72px 22px 90px 22px;
  }

  .progetti-layout__lista {
    --bs-gutter-y: 62px;
  }

  .progetti-layout__lista > [class*="col-"] {
    padding-top: 56px;
  }

  .progetto-card {
    min-height: 330px;
    padding: 82px 24px 34px 24px;
  }

  .progetto-card__immagine {
    top: -56px;
    width: 112px;
    height: 112px;
  }

  .progetto-card__titolo {
    font-size: 24px;
    line-height: 32px;
  }
}
/* FINE PROGETTI */



/* ================================================== */
/*  MODULI HOME                                       */
/* ================================================== */



/* ================================================== */
/*  SLIDE HOME                                        */
/* ================================================== */

/* INIZIO SLIDE HOME */
.slide-home {
  min-height: 100vh;
  background-color: #f8f8f8;
  display: flex;
  align-items: stretch;
  overflow: hidden;
}

.slide-home__interno {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 100px 64px 0 64px;
  display: grid;
  grid-template-columns: minmax(320px, 44%) minmax(460px, 56%);
  align-items: center;
  column-gap: 32px;
}

.slide-home__testo {
  position: relative;
  z-index: 2;
  max-width: 620px;
  padding-bottom: 40px;
}

.slide-home__titolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 72px;
  line-height: 78px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 28px;
}

.slide-home__sottotitolo {
  max-width: 520px;
  font-family: 'Fira Sans', sans-serif;
  font-size: 22px;
  line-height: 32px;
  font-weight: 400;
  color: #666;
  text-align: left;
  margin-bottom: 0;
}

.slide-home__immagine {
  align-self: end;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  height: 100%;
  min-height: 560px;
}

.slide-home__immagine img {
  display: block;
  width: min(1080px, 126%);
  max-width: none;
  height: auto;
  max-height: calc(100vh - 68px);
  object-fit: contain;
  margin-right: -90px;
}

@media (max-width: 1199.98px) {
  .slide-home__interno {
    padding-left: 40px;
    padding-right: 40px;
    grid-template-columns: minmax(300px, 45%) minmax(360px, 55%);
  }

  .slide-home__titolo {
    font-size: 56px;
    line-height: 62px;
  }

  .slide-home__sottotitolo {
    font-size: 20px;
    line-height: 30px;
  }
}

@media (max-width: 991.98px) {
  .slide-home {
    min-height: auto;
  }

  .slide-home__interno {
    min-height: 100vh;
    padding: 124px 28px 48px 28px;
    grid-template-columns: 1fr;
    row-gap: 32px;
  }

  .slide-home__testo {
    max-width: 720px;
    padding-bottom: 0;
  }

  .slide-home__titolo {
    font-size: 44px;
    line-height: 50px;
    margin-bottom: 20px;
  }

  .slide-home__sottotitolo {
    max-width: 620px;
    font-size: 19px;
    line-height: 29px;
  }

  .slide-home__immagine {
    min-height: 0;
    justify-content: center;
  }

  .slide-home__immagine img {
    width: min(680px, 100%);
    max-width: 100%;
    max-height: none;
    margin-right: 0;
  }
}

@media (max-width: 575.98px) {
  .slide-home__interno {
    padding: 112px 22px 40px 22px;
  }

  .slide-home__titolo {
    font-size: 36px;
    line-height: 42px;
  }

  .slide-home__sottotitolo {
    font-size: 17px;
    line-height: 27px;
  }
}
/* FINE SLIDE HOME */



/* ================================================== */
/*  CHI SIAMO                                         */
/* ================================================== */

/* INIZIO CHI SIAMO */
.chi-siamo {
  background-color: #fff;
  padding: 145px 64px;
}

.chi-siamo__interno {
  width: 100%;
  max-width: 1510px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(330px, 36%) 120px minmax(360px, 1fr);
  align-items: center;
  column-gap: 48px;
}

.chi-siamo__titolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 54px;
  line-height: 67px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 0;
}

.chi-siamo__titolo span {
  color: #FF4900;
}

.chi-siamo__separatore {
  display: flex;
  align-items: center;
  justify-content: center;
}

.chi-siamo__linea {
  width: 80px;
}

.chi-siamo__contenuto {
  max-width: 620px;
}

.chi-siamo__sottotitolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 32px;
  line-height: 48px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 24px;
}

.chi-siamo__contenuto p {
  max-width: 590px;
  color: #444;
  text-align: left;
  margin-bottom: 30px;
}

@media (max-width: 1199.98px) {
  .chi-siamo__interno {
    grid-template-columns: minmax(300px, 34%) 100px minmax(360px, 1fr);
    column-gap: 36px;
  }
}

@media (max-width: 991.98px) {
  .chi-siamo {
    padding: 90px 28px;
  }

  .chi-siamo__interno {
    grid-template-columns: 1fr;
    row-gap: 28px;
  }

  .chi-siamo__titolo {
    font-size: 44px;
    line-height: 54px;
  }

  .chi-siamo__separatore {
    justify-content: flex-start;
  }

  .chi-siamo__sottotitolo {
    font-size: 28px;
    line-height: 40px;
  }
}

@media (max-width: 575.98px) {
  .chi-siamo {
    padding: 72px 22px;
  }

  .chi-siamo__titolo {
    font-size: 38px;
    line-height: 46px;
  }

  .chi-siamo__sottotitolo {
    font-size: 24px;
    line-height: 34px;
  }
}
/* FINE CHI SIAMO */



/* ================================================== */
/*  SERVIZI                                           */
/* ================================================== */
/*
  Colori modulo servizi:
  - Background sinistra: #f8f8f8
  - Background destra: #fff
  - Icone: #000
  - Titoli icone: #000
  - Testi: #444
*/

/* INIZIO SERVIZI */
.servizi {
  display: grid;
  grid-template-columns: minmax(320px, 36%) minmax(0, 64%);
  min-height: 650px;
  background-color: #fff;
}

.servizi__intro {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background-color: #f8f8f8;
  padding: 90px 76px 90px max(64px, calc((100vw - 1510px) / 2));
}

.servizi__intro-testo {
  width: 390px;
  max-width: 390px;
}

.servizi__titolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 54px;
  line-height: 64px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 30px;
}

.servizi__titolo span {
  color: #FF4900;
}

.servizi__intro p {
  max-width: 390px;
  color: #444;
  text-align: left;
  margin-bottom: 0;
}

.servizi__elenco {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  align-content: center;
  gap: 82px 68px;
  background-color: #fff;
  padding: 90px 96px;
}

.servizi__voce {
  max-width: 280px;
}

.servizi__icona {
  display: block;
  font-size: 76px;
  line-height: 76px;
  color: #000;
  margin-bottom: 34px;
}

.servizi__voce h3 {
  font-family: 'Fira Sans', sans-serif;
  font-size: 22px;
  line-height: 30px;
  font-weight: 600;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 16px;
}

.servizi__voce p {
  color: #444;
  text-align: left;
  margin-bottom: 0;
}

@media (max-width: 1199.98px) {
  .servizi {
    grid-template-columns: minmax(300px, 34%) minmax(0, 66%);
  }

  .servizi__intro {
    padding: 80px 52px 80px 64px;
  }

  .servizi__titolo {
    font-size: 46px;
    line-height: 56px;
  }

  .servizi__elenco {
    gap: 64px 44px;
    padding: 80px 54px;
  }
}

@media (max-width: 991.98px) {
  .servizi {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .servizi__intro {
    justify-content: flex-start;
    padding: 80px 28px 42px 28px;
  }

  .servizi__intro-testo {
    max-width: 680px;
  }

  .servizi__intro p {
    max-width: 620px;
  }

  .servizi__elenco {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 52px 38px;
    padding: 58px 28px 86px 28px;
  }

  .servizi__voce {
    max-width: none;
  }
}

@media (max-width: 575.98px) {
  .servizi__intro {
    padding: 72px 22px 34px 22px;
  }

  .servizi__titolo {
    font-size: 38px;
    line-height: 46px;
    margin-bottom: 22px;
  }

  .servizi__elenco {
    grid-template-columns: 1fr;
    gap: 42px;
    padding: 48px 22px 72px 22px;
  }

  .servizi__icona {
    font-size: 58px;
    line-height: 58px;
    margin-bottom: 24px;
  }
}
/* FINE SERVIZI */



/* ================================================== */
/*  CONTATORE                                         */
/* ================================================== */
/*
  Colori modulo contatore:
  - Background: #fff
  - Titolo / numeri / testi: #000
  - Evidenza titolo: #FF4900
  - Linea grafica: #000
*/

/* INIZIO CONTATORE */
.contatore {
  background-color: #fff;
  padding: 135px 64px;
}

.contatore__interno {
  width: 100%;
  max-width: 1510px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(330px, 36%) 120px minmax(560px, 1fr);
  align-items: center;
  column-gap: 48px;
}

.contatore__titolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 54px;
  line-height: 67px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 0;
  white-space: nowrap;
}

.contatore__titolo span {
  color: #FF4900;
}

.contatore__separatore {
  display: flex;
  align-items: center;
  justify-content: center;
}

.contatore__linea {
  width: 80px;
}

.contatore__lista {
  display: grid;
  grid-template-columns: repeat(4, minmax(110px, 1fr));
  align-items: start;
  column-gap: 46px;
}

.contatore__numero {
  display: block;
  font-family: 'Fira Sans', sans-serif;
  font-size: 44px;
  line-height: 54px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 14px;
}

.contatore__testo {
  display: block;
  font-family: 'Fira Sans', sans-serif;
  font-size: 18px;
  line-height: 26px;
  font-weight: 400;
  color: #000;
}

@media (max-width: 1199.98px) {
  .contatore__interno {
    grid-template-columns: minmax(300px, 34%) 100px minmax(360px, 1fr);
    column-gap: 36px;
  }

  .contatore__lista {
    column-gap: 28px;
  }
}

@media (max-width: 991.98px) {
  .contatore {
    padding: 90px 28px;
  }

  .contatore__interno {
    grid-template-columns: 1fr;
    row-gap: 28px;
  }

  .contatore__titolo {
    font-size: 44px;
    line-height: 54px;
    white-space: normal;
  }

  .contatore__separatore {
    justify-content: flex-start;
  }

  .contatore__lista {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
    gap: 36px 42px;
  }
}

@media (max-width: 575.98px) {
  .contatore {
    padding: 72px 22px;
  }

  .contatore__titolo {
    font-size: 38px;
    line-height: 46px;
  }

  .contatore__lista {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .contatore__numero {
    font-size: 38px;
    line-height: 46px;
  }
}
/* FINE CONTATORE */



/* ================================================== */
/*  BLOG HOME                                         */
/* ================================================== */
/*
  Colori modulo blog:
  - Background sinistra: #f8f8f8
  - Background destra: #fff
  - Titolo / testi: #000
  - Evidenza titolo: #FF4900
  - Linea grafica: #000
*/

/* INIZIO BLOG HOME */
.blog-home {
  position: relative;
  background-color: #fff;
  padding: 145px 64px;
  overflow: hidden;
}

.blog-home::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 36%;
  background-color: #f8f8f8;
}

.blog-home__interno {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1510px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(330px, 36%) 120px minmax(360px, 1fr);
  align-items: center;
  column-gap: 48px;
}

.blog-home__titolo {
  font-family: 'Fira Sans', sans-serif;
  font-size: 54px;
  line-height: 67px;
  font-weight: 700;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 0;
}

.blog-home__titolo span {
  color: #FF4900;
}

.blog-home__linea {
  width: 80px;
}

.blog-home__separatore {
  display: flex;
  align-items: center;
  justify-content: center;
}

.blog-home__contenuto {
  width: 760px;
  max-width: calc(100vw - 64px);
}

.blog-home__lista {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.blog-home__articolo {
  flex: 0 0 auto;
}

@media (min-width: 768px) {
  .blog-home__lista > .blog-home__articolo {
    width: 50%;
  }
}

.blog-home__immagine {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin-bottom: 22px;
  overflow: hidden;
  background-color: #f5f5f5;
}

.blog-home__immagine img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.blog-home__immagine:hover img {
  transform: scale(1.04);
}

.blog-home__articolo h3 {
  font-family: 'Fira Sans', sans-serif;
  font-size: 22px;
  line-height: 30px;
  font-weight: 600;
  color: #000;
  letter-spacing: 0;
  margin-bottom: 14px;
}

.blog-home__articolo p {
  color: #444;
  text-align: left;
  margin-bottom: 24px;
}

.blog-home__bottone {
  font-size: 13px;
  line-height: 20px;
  padding: 10px 22px;
}

@media (max-width: 1199.98px) {
  .blog-home__interno {
    grid-template-columns: minmax(300px, 34%) 100px minmax(360px, 1fr);
    column-gap: 36px;
  }
}

@media (max-width: 991.98px) {
  .blog-home {
    padding: 90px 28px;
  }

  .blog-home::before {
    width: 100%;
    height: 270px;
    bottom: auto;
  }

  .blog-home__interno {
    grid-template-columns: 1fr;
    row-gap: 28px;
  }

  .blog-home__titolo {
    font-size: 44px;
    line-height: 54px;
  }

  .blog-home__separatore {
    justify-content: flex-start;
  }

  .blog-home__contenuto {
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 575.98px) {
  .blog-home {
    padding: 72px 22px;
  }

  .blog-home__titolo {
    font-size: 38px;
    line-height: 46px;
  }
}
/* FINE BLOG HOME */





/* ================================================== */
/*  DIPENDENTI                                          */
/* ================================================== */
/*


/* INIZIO DIPENDENTI */
.dipendenti-layout {
  background-color: #fff;
  padding: 100px 64px 120px 64px;
}

.dipendenti-layout__interno {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

/* FINE DIPENDENTI */





/* ================================================== */
/*  TIMBRATURA                                          */
/* ================================================== */

.timbratura-layout {
  background-color: #fff;
  padding: 40px 24px;
  width: 100%;
  max-width: 1100px;

  margin-top: 20px;
  margin-right: auto;
  margin-bottom: -50px; /* meno spazio sotto */
  margin-left: auto;
}


/* FINE DIPENDENTI */
