:root {
  --colore-primario: #0d517f;
  --colore-primario-hover: #002b66;
  --colore-secondario: #7a7a7a;
  --colore-sfondo-chiaro: #efefef;
  --colore-sfondo-azzurro: #cbedf7;
  --colore-testo-base: #333333;
  --colore-bianco: #ffffff;
  --grigio-light: #dedede;
  --bianco-light: #f5f5f5;
  --laser: #8ef4ff;
  --debug-bordo: rgba(0, 31, 84, 0.35);
  --ombra-leggera: 0px 0px 5px 2px var(--colore-secondario);
  --raggio-bordi: 5px;
  --font-testo: "Saira", sans-serif;
  --font-titoli: "Inter", sans-serif;
  --testo-base: 1em;
  --line-height-base: normal;
}
/* ========== RESET & BASE ========== */
*,
*::before,
*::after {
  box-sizing: border-box;
}
body,
ul {
  margin: 0;
  padding: 0;
}
body {
  font-family: var(--font-testo);
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  font-size: var(--testo-base);
  line-height: var(--line-height-base);
  color: var(--colore-testo-base);
}
h1,
h2,
h3,
h4,
h5 {
  font-family: var(--font-titoli);
  font-weight: 600;
  font-style: normal;
  color: var(--colore-primario);
}
.page-header h1::before {
  content: "";
  background-image: url("../../../../../images/logo/hot.png");
  background-size: 32px 32px;
  background-repeat: no-repeat;
  width: 32px;
  height: 32px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 10px;
}
/* Stile per posizionare e dimensionare l'icona */
.hot {
  background-image: url("../../../../../images/logo/hot.png");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 32px 32px;
  padding-left: 40px;
  /* Importante: assicurati che ci sia abbastanza altezza per contenere l'icona
       (se l'altezza di linea di default fosse troppo piccola) */
  min-height: 32px;
}
/* Potrebbe essere necessario un reset o un aggiustamento per l'h2 */
.pers1 {
  /* Esempio: assicurarsi che non ci siano margini in conflitto */
  margin-top: 0;
  margin-bottom: 0;
}
.lista {
  margin-left: 70px;
  padding-left: 25px;
  margin-top: 10px;
}
.page-header h1 {
  font-size: 2.1rem;
  text-align: center;
}
a {
  text-decoration: none;
  color: var(--colore-secondario);
}
a.logo {
  line-height: normal;
}
/* ========== LAYOUT DI PAGINA (contenuto) ========== */
.item-page {
  margin-top: 140px;
}
.item-page p {
  text-align: justify;
  line-height: 2rem;
}
.com-content-article__body {
  margin-bottom: 40px;
}
.page-header {
  margin-top: 170px;
}
/*
article {
    min-height: calc(100vh - 266px);
}
    */
/**************** pulsanti *************************/
.pulsante-tridimensionale {
  display: inline-block;
  padding: 12px 24px;
  border: none;
  border-radius: 5px;
  font-family: Arial, sans-serif;
  font-weight: bold;
  font-size: 16px;
  text-decoration: none;
  color: var(--colore-bianco);
  background-color: var(--colore-primario);
  cursor: pointer;
  outline: none;
  box-shadow: 0 5px 0 var(--colore-ombra);
  transform: translateY(0);
  transition: transform 0.2s, box-shadow 0.2s;
}
.pulsante-tridimensionale:hover {
  background-color: var(--colore-primario-hover);
}
.pulsante-tridimensionale:active {
  box-shadow: 0 2px 0 var(--colore-ombra);
  transform: translateY(3px);
}
.pulsante-sinistra {
  margin-left: 30px;
  margin-top: 30px;
}
.pulsante-destra {
  margin-right: 30px;
  margin-top: 30px;
  float: right;
}
.button {
  display: flex;
  justify-content: center;
  height: 80px;
  align-items: center;
}
.btn-custom {
  display: inline-block;
  font-weight: 500;
  color: var(--colore-bianco);
  text-align: center;
  vertical-align: middle;
  user-select: none;
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  cursor: pointer;
  text-decoration: none;
  background-color: var(--colore-primario);
}
.btn-custom:hover {
  color: var(--colore-bianco);
  background-color: var(--colore-secondario);
}
.center {
  text-align: center;
}
.imgcenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
/* ========== GRID GENERALE ========== */
.contenitore {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 15px;
}
.contenitore-stretto {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}
.riga {
  display: flex;
  flex-wrap: wrap;
  margin-left: -15px;
  margin-right: -15px;
}
.colonna {
  padding-left: 15px;
  padding-right: 15px;
}
.col-1 {
  width: 8.33%;
}
.col-2 {
  width: 16.66%;
}
.col-3 {
  width: 25%;
}
.col-4 {
  width: 33.33%;
}
.col-5 {
  width: 41.66%;
}
.col-6 {
  width: 50%;
}
.col-7 {
  width: 58.33%;
}
.col-8 {
  width: 66.66%;
}
.col-9 {
  width: 75%;
}
.col-10 {
  width: 83.33%;
}
.col-11 {
  width: 91.66%;
}
.col-12 {
  width: 100%;
}
/* ========== HEADER (wrapper fisso) ========== */
.header-fixed {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000;
  background: var(--colore-bianco);
  box-shadow: var(--ombra-leggera);
  padding: 0;
}
/* ========== HEADER: fascetta top ========== */
.fascettatop-wrapper {
  width: 100%;
  background: var(--colore-primario);
}
.fascettatop {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 15px;
  color: var(--colore-bianco);
  column-gap: 30px;
  box-sizing: border-box;
  font-weight: 400;
}
.fascettatop a {
  color: var(--colore-bianco);
}
.fascettatop .fascettatop1:first-child {
  flex-basis: auto;
}
.fascettatop .fascettatop1:last-child {
  margin-left: auto;
}
.fascettatop i {
  color: var(--colore-bianco);
}
/* collapsible allo scroll */
.fascettatop-wrapper {
  transition: height 0.28s ease, opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0.28s;
  will-change: height, opacity, transform;
  overflow: hidden;
}
.header-fixed.is-compact .fascettatop-wrapper {
  height: 0;
  opacity: 0;
  transform: translateY(-10px);
  visibility: hidden;
  pointer-events: none;
}
.header-fixed.is-compact .header-inner {
  padding-top: 6px;
  padding-bottom: 6px;
  transition: padding 0.2s ease;
}
@media (prefers-reduced-motion: reduce) {
  .fascettatop-wrapper,
  .header-fixed.is-compact .header-inner {
    transition: none;
  }
}
.visually-hidden {
  display: none;
}
div.mod-languages ul li.lang-active {
  background-color: transparent;
}
.lang-inline li.lang-active img {
  border: 1px solid var(--colore-secondario);
}
.lang-inline li img {
  border: 1px solid var(--colore-bianco);
}
/* ========== HEADER: area logo + griglia contenitore ========== */
.header-inner {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 0 15px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 24px;
}
.header-inner .logo {
  display: flex;
  align-items: center;
  padding: 8px 0;
}
.header-inner .logo img {
  display: block;
  height: 56px;
}
/* >>> Nascondi SEMPRE il toggler a desktop (verrà mostrato solo su mobile) <<< */
.header-inner .menu-toggler {
  display: none;
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  line-height: 0;
}
/* =======================================================================================
   MENU (livello 1 + dropdown livello 2) — sezione unificata
   - Desktop: submenu a comparsa (hover/focus)
   - Mobile: submenu a fisarmonica (click), con transizioni
   - Accessibilità: spazio per focus e indicatori
======================================================================================= */
/* Base */
.header-inner .main-nav {
  position: relative;
  justify-self: end;
}
.main-nav .mod-menu,
.main-nav .mod-list {
  display: flex;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
}
.main-nav .mod-menu>.nav-item {
  position: relative;
}
/* Voci livello 1 (link o heading) */
.main-nav .mod-menu>.nav-item>a,
.main-nav .mod-menu>.nav-item>.mod-menu__heading {
  display: block;
  padding: 10px 0;
  font-weight: bold;
  color: var(--colore-primario);
  text-decoration: none;
  transition: color 0.3s;
  cursor: pointer;
}
.main-nav .mod-menu>.nav-item>a:hover,
.main-nav .mod-menu>.nav-item>a:focus,
.main-nav .mod-menu>.nav-item.active>a,
.main-nav .mod-menu>.nav-item>.mod-menu__heading:hover,
.main-nav .mod-menu>.nav-item>.mod-menu__heading:focus {
  color: var(--colore-secondario);
  outline: none;
}
/* Indicatore caret per le voci con sottomenu */
.main-nav .mod-menu>.nav-item.parent>a::after,
.main-nav .mod-menu>.nav-item.parent>.mod-menu__heading::after {
  content: "";
  display: inline-block;
  margin-left: 8px;
  border: 5px solid transparent;
  border-top-color: currentColor;
  /* freccina ▼ */
  transform: translateY(2px);
}
/* Submenu (livello 2) — stile comune */
.main-nav .mod-menu__sub {
  list-style: none;
  margin: 0;
  padding: 8px 0;
  background: var(--colore-bianco);
  box-shadow: var(--ombra-leggera);
  border-radius: 8px;
  z-index: 1000;
}
.main-nav .mod-menu__sub>.nav-item>a {
  display: block;
  padding: 10px 14px;
  color: var(--colore-testo-base);
  white-space: nowrap;
}
.main-nav .mod-menu__sub>.nav-item>a:hover,
.main-nav .mod-menu__sub>.nav-item>a:focus {
  background: var(--colore-sfondo-chiaro);
  color: var(--colore-primario);
  outline: none;
}
/* ============================== DESKTOP (>= 993px) ============================== */
@media (min-width: 993px) {
  .main-nav .mod-menu__sub {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
  }
  .main-nav .nav-item:hover>.mod-menu__sub,
  .main-nav .nav-item:focus-within>.mod-menu__sub {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s;
  }
  /* Allineamento facoltativo a destra (classe aggiunta via JS quando serve) */
  .main-nav .nav-item.parent.align-right>.mod-menu__sub {
    left: auto;
    right: 0;
  }
}
/* ============================== MOBILE (<= 992px) ============================== */
@media (max-width: 992px) {
  /* Il contenitore nav si apre/chiude via .active (gestito dal JS) */
  .header-inner {
    grid-template-columns: 1fr auto;
  }
  .header-inner .menu-toggler {
    display: block;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 10px;
  }
  .header-inner .menu-toggler .icon-bar {
    display: block;
    width: 25px;
    height: 3px;
    background: var(--colore-testo-base);
    margin-bottom: 5px;
    transition: all 0.2s ease-in-out;
  }
  .header-inner .main-nav {
    grid-column: 1 / -1;
    justify-self: stretch;
    display: none;
    background: var(--colore-bianco);
    box-shadow: var(--ombra-leggera);
    padding: 12px 0;
    margin-top: 6px;
  }
  .header-inner .main-nav.active {
    display: block;
  }
  /* Elenco verticale e fisarmonica */
  .main-nav .mod-menu,
  .main-nav .mod-list {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    padding: 0 15px;
    width: 100%;
  }
  /* Submenu collassato di default */
  .main-nav .mod-menu__sub {
    position: static;
    max-height: 0;
    overflow: hidden;
    padding: 0;
    box-shadow: none;
    border-radius: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: max-height 0.25s ease;
  }
  /* Stato aperto (.is-open) gestito da JS */
  .main-nav .nav-item.is-open>.mod-menu__sub {
    padding: 6px 0;
    max-height: 800px;
  }
  /* Rientro visivo delle voci di 2º livello */
  .main-nav .mod-menu__sub>.nav-item>a {
    padding-left: 22px;
  }
  /* Caret ruotato quando aperto */
  .main-nav .nav-item.parent.is-open>a::after,
  .main-nav .nav-item.parent.is-open>.mod-menu__heading::after {
    transform: rotate(180deg) translateY(-2px);
    transition: transform 0.2s ease;
  }
  .header-inner .logo img {
    height: 44px;
  }
  .item-page {
    margin-top: 160px;
  }
}
/**************************************************************** superslider *********************************************************************/
body {
  /* Mantenuto per risolvere il problema dello scroll orizzontale causato da 100vw */
  overflow-x: hidden;
}
/* Sezione Full-Width */
.superslider {
  width: 100vw;
  max-width: 100%;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}
@supports (width: calc(100vw - (100vw - 100%))) {
  .superslider {
    width: calc(100vw - (100vw - 100%));
    margin-left: calc(-50vw + (100vw - 100%) / 2);
    margin-right: calc(-50vw + (100vw - 100%) / 2);
  }
}
/* Contenitore Video (Aspect Ratio 21:9 - Desktop) */
/*
.embed-responsive {
  position: relative;
  display: block;
  width: 100%;
  padding-bottom: 42.85%;
  padding-top: 0; 
  overflow: hidden;
}
.embed-responsive-21by9::before {
  display: none;
}
.embed-responsive video {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  z-index: -10;
  object-fit: contain; 
}
*/
/* CSS */
.embed-responsive {
  position: relative;
  display: block;
  width: 100%;
  padding-bottom: 42.85%;
  /* 21:9 */
  padding-top: 0;
  overflow: hidden;
}
.embed-responsive-21by9::before {
  display: none;
}
/* Video sotto, copre il box */
.embed-responsive video {
  position: absolute;
  inset: 0;
  /* top/right/bottom/left: 0 */
  width: 100%;
  height: 100%;
  border: 0;
  z-index: -10;
  object-fit: contain;
  /* mantieni proporzioni (puoi cambiare in cover) */
}
/* Overlay slogan centrato */
/* Wrapper video 21:9 */
.embed-responsive {
  position: relative;
  display: block;
  width: 100%;
  padding-bottom: 42.85%;
  /* 21:9 */
  padding-top: 0;
  overflow: hidden;
}
.embed-responsive-21by9::before {
  display: none;
}
/* Video */
.embed-responsive video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  z-index: -10;
  object-fit: contain;
  /* cambia in 'cover' se desideri coprire tutto */
}
/* Slogan sopra al video, centrato */
.embed-responsive .slogan {
  position: absolute;
  left: 50%;
  top: 55%;
  transform: translate(-50%, -50%);
  z-index: 1;
  color: var(--colore-bianco);
  text-align: center;
  line-height: 1.15;
  font-weight: 800;
  /* Consentiamo l'andata a capo */
  white-space: normal;
  text-wrap: balance;
  /* spezza le righe in modo più armonico */
  overflow-wrap: anywhere;
  /* evita fuoriuscite su schermi stretti */
  /* Dimensione responsive del font */
  font-size: clamp(18px, 4.8vw, 64px);
  /* Evita che il testo tocchi i bordi del video */
  width: 100%;
  padding: 0 2vw;
  margin: 0;
}
/* Colori per la parte evidenziata */
.embed-responsive .slogan span {
  color: var(--laser);
}
/********************************* contenuti articoli ***************************************/
h2#impianti-siderurgici,
h2#carpenteria,
h2#sistemi-stoccaggio,
h2#impiantistica,
h2#trattamento-fluidi,
h2#containers {
  scroll-margin-top: 150px;
}
/* Contenitore principale della griglia */
.griglia-contenuti-personalizzata {
  display: flex;
  flex-wrap: wrap;
  /* Permette agli elementi di andare a capo */
  gap: 20px;
  /* Spazio tra i riquadri (sia orizzontale che verticale) */
  padding: 20px;
}
/* Stile per ogni singolo riquadro */
.riquadro-elemento {
  /* Impostazione per 2 colonne su schermi grandi: 50% meno il gap */
  flex: 1 1 calc(50% - 20px);
  padding: 15px;
  box-sizing: border-box;
  margin-bottom: 60px;
}
/* Stile per le immagini all'interno dei riquadri
   (Usa un selettore specifico per evitare conflitti) */
.riquadro-elemento img {
  width: 100%;
  /* L'immagine occupa tutta la larghezza del riquadro */
  height: 100%;
  /* L'immagine si adatta all'altezza uniforme del riquadro */
  display: block;
  box-shadow: var(--ombra-leggera);
  object-fit: cover;
  /* Copre il riquadro senza distorsioni */
  /* Angoli arrotondati anche per l'immagine */
  border-radius: 6px;
}
/* --- Media Queries per la Responsività --- */
/* Schermi medi (fino a 992px): Mantiene 2 riquadri per riga */
@media (max-width: 992px) {
  .riquadro-elemento {
    flex: 1 1 calc(50% - 20px);
  }
}
/* Schermi piccoli (fino a 576px, es. Smartphone): 1 riquadro per riga (larghezza piena) */
@media (max-width: 576px) {
  .riquadro-elemento {
    flex: 1 1 100%;
  }
}
/***********************************CONTENUTI CONTATTI*****************************************/
.x2 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.gabbia {
  width: 50%;
  margin-left: 30px;
}
/* ========================================= */
/* ===== MEDIA QUERY: SCHERMI <= 800PX (100% ALTEZZA + COVER) ===== */
/* ========================================= */
@media (max-width: 800px) {
  /* 1. Contenitore: Definiamo l'altezza 100vh e annulliamo l'aspect ratio. */
  .embed-responsive.embed-responsive-21by9 {
    padding-bottom: 0 !important;
    /* 💡 NUOVO VALORE: Occupiamo l'intera altezza visibile */
    min-height: 100vh;
    height: 100vh;
  }
  /* 2. Video: Forza il riempimento totale (Cover) */
  .embed-responsive video {
    /* Regole per il posizionamento e per annullare la centratura passata */
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    transform: none !important;
    /* Forza il riempimento completo dell'area 100vh */
    width: 100%;
    min-width: 100%;
    height: 100%;
    object-fit: cover !important;
    /* Forza il taglio dei lati per riempire l'altezza */
  }
}
/************************ paralax ***************************/
.paralax {
  width: 100%;
  display: block;
  padding: 0;
}
.lgx-parallax-content .lgx-parallax-content-wrapper {
  text-align: left;
}
#lgx-parallax141 .lgx-parallax-content-wrapper,
#lgx-parallax120 .lgx-parallax-content-wrapper {
  width: 40%;
  margin-left: 58%;
}
.bottom3,
.bottom5 {
  width: 100%;
  display: block;
  padding: 0;
}
.bottom4 {
  width: 100%;
  display: block;
  padding: 0;
}
.mappa {
  line-height: 0;
}
iframe {
  border: none;
}
/* ========== COMPONENTI DI CONTENUTO ========== */
.sedi-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}
.sedi-grid li {
  background: var(--colore-sfondo-chiaro);
  border-radius: 8px;
  padding: 20px;
  line-height: 1.6;
  font-size: 0.95rem;
}
div#mod-custom113 {
  line-height: 0px;
}
/* ========== COMPONENTI UI: Torna su ========== */
.tornasu {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 999;
}
#ui-to-top {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background-color: var(--colore-secondario);
  color: var(--colore-bianco);
  border-radius: var(--raggio-bordi);
  text-decoration: none;
  font-size: 1.2rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease-in-out, transform 0.2s ease-in-out, background-color 0.2s ease-in-out;
}
#ui-to-top.active {
  opacity: 1;
  pointer-events: auto;
}
#ui-to-top:hover {
  transform: translateY(-3px) scale(1.05);
  background-color: var(--colore-primario);
}
/******************************** bg pagine *******************************/
body.ingranaggio {
  background-image: url("../../../../../media/templates/site/sws/img/ingranaggio.svg");
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
}
/************************* GABBIE SX / DX ******************************/
.servizi {
  padding-bottom: 40px;
}
.sfondomoduli {
  background-image: url("../../../../../media/templates/site/sws/img/ingranaggio.svg");
  background-repeat: no-repeat;
  /*   background-position: center;
    background-size: cover;*/
  background-position: center top;
  background-size: 100% auto;
}
.griglia-home {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 30px;
}
.colonna-sx,
.colonna-dx {
  width: 50%;
  padding: 15px;
  box-sizing: border-box;
}
.colonna-dx,
.colonna-sx {
  font-size: 1.2rem;
  display: flex;
  flex-direction: column;
}
.colonna-sx img,
.colonna-dx img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.colonna-sx img {
  box-shadow: 5px 5px 5px 0px var(--colore-secondario);
}
.colonna-dx img {
  box-shadow: -5px 5px 5px 0px var(--colore-secondario);
}
.fullgriglia {
    width: 60%!important;
    height: auto!important;
    object-fit: unset!important;
    box-shadow: none!important;
    margin: 0 auto!important;
    margin-top: 30px!important;
}
.colonna-dx h2 {
  font-size: 2.2rem;
  color: var(--colore-secondario);
  margin-left: 30px;
}
.colonna-sx h2 {
  font-size: 2.2rem;
  color: var(--colore-secondario);
  margin-right: 30px;
  text-align: right;
}
.colonna-dx p {
  align-content: center;
}
.colonna-sx p {
  margin-right: 30px;
  align-content: center;
}
ul.lista-sx {
  margin-right: 70px;
  list-style: none;
  border-right: 4px solid var(--colore-secondario);
  padding-right: 25px;
}
ul.lista-dx {
  margin-left: 70px;
  list-style: none;
  border-left: 4px solid var(--colore-secondario);
  padding-left: 25px;
}
@media (max-width: 768px) {
  .colonna-sx,
  .colonna-dx {
    width: 100%;
  }
  .griglia-home {
    display: flex;
    flex-direction: column;
  }
  .griglia-home:has(.colonna-sx img) .colonna-sx {
    order: 1;
  }
  .griglia-home:has(.colonna-sx img) .colonna-dx {
    order: 2;
  }
  .griglia-home:has(.colonna-dx img) .colonna-dx {
    order: 1;
  }
  .griglia-home:has(.colonna-dx img) .colonna-sx {
    order: 2;
  }
}
/* ========== FOOTER ========== */
.footer {
  background: var(--colore-primario);
  color: var(--colore-bianco);
  font-weight: 400;
  font-size: 1rem;
}
.footer a {
  color: var(--colore-bianco);
}
.servizi h3 {
  color: var(--colore-primario);
  font-size: 3.2rem;
  /*text-align: center;*/
  font-weight: 400;
  padding: 40px 0;
  margin: 0;
}
.servizi.sx h3 {
  text-align: left;
  margin-left: 20%;
}
.servizi.dx h3 {
  text-align: right;
  margin-right: 20%;
}
.marchi h3,
h3.marchi {
  color: var(--colore-primario);
  font-size: 3.2rem;
  text-align: center;
  font-weight: 400;
  padding: 0;
  margin: 0;
}
.footer h3 {
  color: var(--colore-bianco);
  font-size: 2rem;
  font-family: var(--font-titoli);
  margin: 10px 0px;
}
.footer ul.mod-menu.mod-list.nav {
  padding: 0 30px;
}
.cert {
  display: flex;
  justify-content: flex-start;
  align-content: center;
  align-items: center;
  gap: 30px;
}
img.certificazione {
  max-width: 120px;
}
.coppia {
  display: flex;
  align-content: center;
  justify-content: space-around;
  align-items: center;
  gap: 30px;
}
.elemento {
  max-width: 35%;
}
.elemento img {
  width: 100%;
}
.elemento h3 {
  text-align: center;
}
/* ========== COPYRIGHT ========== */
.copyright {
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 15px;
  text-align: center;
  color: var(--colore-bianco);
}
.copyright p {
  font-size: 0.85rem;
  line-height: 1.3rem;
  margin: 0;
  font-weight: 400;
}
/***************************************** tabelle ************************************/
/* ==========================================================================
   COMPONENTE: Tabella Documenti (con freccia download)
   ========================================================================== */
.docs-container {
  margin: 48px auto;
  padding: 0 15px;
}
.docs-title {
  font-family: var(--font-titoli, inherit);
  color: var(--colore-primario);
  font-weight: 400;
  font-size: clamp(1.6rem, 2vw + 0.6rem, 2.2rem);
  margin: 0 0 18px;
  text-align: left;
}
/* Wrapper */
.docs-table-wrap {
  background: var(--colore-bianco);
  border: 1px solid var(--grigio-light);
  border-radius: var(--raggio-bordi);
  box-shadow: var(--ombra-leggera);
  overflow: hidden;
}
/* Tabella */
.docs-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-family: var(--font-testo, inherit);
  color: var(--colore-testo-base, #333);
  font-size: 1rem;
}
.docs-table thead th {
  background: var(--bianco-light);
  color: var(--colore-primario);
  font-weight: 600;
  text-align: left;
  padding: 14px 16px;
  border-bottom: 1px solid var(--grigio-light);
}
.docs-table tbody td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--grigio-light);
  vertical-align: top;
}
.docs-table tbody tr:nth-child(odd) {
  background: #fff;
}
.docs-table tbody tr:hover {
  background: var(--colore-sfondo-chiaro);
}
/* allineamento colonna PDF */
.is-center {
  text-align: center;
}
/* ====== Bottone PDF con freccia ====== */
.btn-pdf {
  --pdf-color: #dc2626;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  /* spazio tra icone */
  min-width: 56px;
  /* un po' più largo per accogliere 2 icone */
  height: 42px;
  padding: 0 10px;
  border: 1px solid var(--grigio-light);
  border-radius: var(--raggio-bordi);
  background: var(--colore-bianco);
  text-decoration: none;
  transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease, background-color 0.12s ease;
  outline: none;
}
.btn-pdf i.fa-file-pdf {
  font-size: 1.15rem;
  color: var(--colore-secondario);
}
.btn-pdf i.fa-arrow-down {
  font-size: 0.95rem;
  color: var(--colore-primario);
  transform: translateY(0);
  transition: transform 0.12s ease, color 0.12s ease;
}
.btn-pdf:hover {
  transform: translateY(-1px);
  border-color: #cfd5db;
  box-shadow: var(--ombra-leggera);
  background: var(--bianco-light);
}
.btn-pdf:hover i.fa-arrow-down {
  transform: translateY(2px);
  /* piccola “spinta” verso il basso */
  color: var(--colore-primario-hover);
  /* leggero cambio colore */
}
.btn-pdf:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--colore-primario) 35%, transparent);
  border-color: var(--colore-primario);
  background: color-mix(in srgb, var(--colore-sfondo-azzurro) 40%, white);
}
/* Accessibilità */
.u-visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
/* Mobile: tabella -> scheda */
@media (max-width: 720px) {
  .docs-table thead {
    position: absolute;
    clip: rect(0 0 0 0);
    height: 1px;
    width: 1px;
    overflow: hidden;
    white-space: nowrap;
  }
  .docs-table tbody tr {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px 12px;
    padding: 12px 12px;
    border-bottom: 1px solid var(--grigio-light);
  }
  .docs-table tbody td {
    border: 0;
    padding: 6px 0;
  }
  .docs-table tbody td:nth-child(1) {
    grid-column: 1 / -1;
    font-weight: 700;
    color: var(--colore-primario);
  }
  .docs-table tbody td:nth-child(2) {
    color: color-mix(in srgb, var(--colore-testo-base) 70%, white);
  }
  .docs-table tbody td:nth-child(3) {
    grid-row: 2;
    align-self: start;
    justify-self: end;
  }
  .docs-table tbody td[data-label]::before {
    content: attr(data-label) " ";
    font-size: 0.85rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--colore-testo-base) 70%, white);
    display: block;
    margin-bottom: 4px;
  }
}
/* ========== Impaginazione pagina Azienda ========== */
h2.pers1 {
  font-size: 1.6rem;
  font-family: var(--font-testo);
  font-weight: 700;
}
h3.pers2 {
  font-size: 1.8rem;
  font-family: var(--font-testo);
  font-weight: 600;
  color: var(--colore-testo-base);
}
ul.lista-ordinata {
  margin-left: 40px;
}
/************************************************* gallery filtrata ******************************************/
/* =========================
   Galleria Filtrabile (scoped)
   Nota: nessun reset globale, nessun body/font globale.
   Usa le variabili colore già presenti nel tuo :root.
========================= */
.galleria-filtrabile {
  /* Contenitore neutro e non invasivo */
  max-width: 1350px;
  width: 100%;
  margin: 0 auto;
  padding: 20px 0;
}
/* --- Filtri --- */
.galleria-filtri {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.galleria-filtri__pulsante {
  padding: 8px 16px;
  border: 2px solid var(--colore-primario, #4070f4);
  background: var(--colore-bianco, #fff);
  color: var(--colore-primario, #4070f4);
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
}
.galleria-filtri__pulsante.is-attivo,
.galleria-filtri__pulsante:hover {
  background: var(--colore-primario, #4070f4);
  color: var(--colore-bianco, #fff);
}
/* --- Griglia schede --- */
.galleria-griglia {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 20px;
}
/* --- Scheda --- */
.galleria-scheda {
  background: var(--colore-bianco, #fff);
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--grigio-light, #e5e7eb);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.galleria-scheda:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
}
.galleria-scheda.is-nascosta {
  display: none !important;
}
.galleria-scheda__immagine {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  border-radius: 8px 8px 0 0;
  cursor: zoom-in;
  /* indica che è cliccabile per lightbox */
}
.galleria-scheda__testo {
  padding: 15px 20px;
}
.galleria-scheda__titolo {
  font-size: 20px;
  font-weight: 600;
  margin: 0 0 4px 0;
}
.galleria-scheda__descrizione {
  font-size: 14px;
}
/* --- Lightbox --- */
.lightbox-galleria {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.lightbox-galleria.is-aperta {
  display: flex;
}
.lightbox-galleria__immagine {
  /* Dimensione dinamica: proporzionale al monitor */
  max-width: 90vw;
  max-height: 70vh;
  /* leggermente ridotta per lasciare spazio fisso alla didascalia */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  border-radius: 8px;
}
.lightbox-galleria__precedente,
.lightbox-galleria__successivo,
.lightbox-galleria__chiudi {
  position: absolute;
  border: none;
  background: var(--colore-bianco);
  padding: 12px 16px;
  font-size: 28px;
  cursor: pointer;
  line-height: 1;
  backdrop-filter: blur(2px);
  color: inherit;
}
.lightbox-galleria__precedente:hover,
.lightbox-galleria__successivo:hover,
.lightbox-galleria__chiudi:hover {
  background: rgba(255, 255, 255, 0.3);
}
.lightbox-galleria__precedente {
  left: 24px;
}
.lightbox-galleria__successivo {
  right: 24px;
}
.lightbox-galleria__chiudi {
  top: 18px;
  right: 18px;
  font-size: 34px;
}
/* ► Contatore */
.lightbox-galleria__contatore {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font: 500 14px/1.2 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: rgba(0, 0, 0, 0.35);
  padding: 6px 10px;
  border-radius: 999px;
}
/* ► Didascalia in basso (sfondo nero, testi bianchi) */
/* === Lightbox: nuova disposizione verticale con testo sotto l'immagine === */
/* Struttura principale: ora usa flex-direction: column per impilare immagine + testo */
.lightbox-galleria {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  display: none;
  flex-direction: column;
  /* <— cambia direzione del contenuto */
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding-bottom: 40px;
  /* piccolo margine visivo inferiore */
}
.lightbox-galleria.is-aperta {
  display: flex;
}
/* Immagine grande */
.lightbox-galleria__immagine {
  max-width: 90vw;
  max-height: 70vh;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  border-radius: 8px;
  display: block;
}
/* ✅ Nuovo blocco didascalia sotto l'immagine */
.lightbox-galleria__didascalia {
  margin-top: 12px;
  background: rgba(0, 0, 0, 0.9);
  color: #fff;
  padding: 10px 20px;
  border-radius: 6px;
  text-align: center;
  max-width: 90vw;
}
.lightbox-galleria__titolo {
  margin: 0;
  font-weight: 700;
  font-size: 16px;
}
.lightbox-galleria__descrizione {
  font-size: 14px;
  opacity: 0.9;
}
/* Mobile: lascia un po' più di spazio all'immagine */
@media (max-width: 640px) {
  .lightbox-galleria__immagine {
    max-height: 62vh;
  }
  .lightbox-galleria__titolo {
    font-size: 15px;
  }
  .lightbox-galleria__descrizione {
    font-size: 13px;
  }
}
/************************************* blocchi home ****************************************/
/* ------------------------------------------- */
/* STILI GENERALI (Validi per Desktop) */
/* ------------------------------------------- */
/* Contenitore di riga per layout a 2 colonne */
.container-2col {
  display: flex;
  margin-bottom: 0;
}
/* Contenitore Immagine (50% di larghezza della riga) */
.blocchi-home {
  position: relative;
  width: 50%;
  flex-shrink: 0;
}
.blocchi-home a {
  color: var(--colore-bianco)
}
/* Stili dell'Immagine */
.full {
  width: 100%;
  height: auto;
  display: block;
}
/* CLASSE BASE DELL'OVERLAY */
.overlay-base {
  position: absolute;
  top: 0;
  height: 100%;
  width: 50%;
  background-color: rgba(0, 0, 0, 0.7);
  color: white;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px;
  box-sizing: border-box;
  text-align: left;
}
/* CLASSE DI POSIZIONAMENTO A DESTRA / SINISTRA */
.overlay-right {
  right: 0;
  margin-right: 0;
  left: auto;
}
.overlay-left {
  left: 0;
  margin-left: 0;
  right: auto;
}
/* Stili del Contenuto Interno */
.overlay-base p {
  margin: 5px 0;
  max-width: 90%;
  font-size: 1.2em;
  text-align: center;
  font-weight: bold;
}
.overlay-base ul {
  list-style-position: inside;
  text-align: left;
  padding-left: 0;
  margin: 5px 0;
  max-width: 90%;
}
/* ------------------------------------------- */
/* ANIMAZIONE SCROLL (FADE-IN E SALITA DAL BASSO) */
/* ------------------------------------------- */
/* STATO INIZIALE: Invisibile e leggermente spostato verso il basso */
.blocchi-animato {
  opacity: 0;
  transform: translateY(40px);
  /* Si muove da 40px sotto */
  transition: opacity 1.2s ease-out, transform 1.2s ease-out;
}
/* Ritardo per il secondo blocco di ogni riga (dove c'è la classe .blocchi-animato-ritardato) */
.blocchi-animato.blocchi-animato-ritardato {
  transition-delay: 0.3s;
}
/* STATO FINALE (Attivato dal JS tramite classe .mostra) */
.blocchi-animato.mostra {
  opacity: 1;
  /* Dissolvenza in ingresso */
  transform: translateY(0);
  /* Posizione finale */
}
/* ------------------------------------------- */
/* RESPONSIVE (Sotto 800px) */
/* ------------------------------------------- */
@media (max-width: 800px) {
  .container-2col {
    flex-direction: column;
  }
  .blocchi-home {
    width: 100%;
  }
  .overlay-base {
    width: 50%;
  }
  .overlay-base {
    left: auto !important;
    right: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .overlay-right {
    right: 0 !important;
    margin-right: 5vw !important;
  }
  .overlay-left {
    left: 0 !important;
    margin-left: 5vw !important;
  }
}
/*********************************** timeline ************************************************/
/* TIMELINE - base */
.timeline {
  position: relative;
  padding: 50px 0;
  overflow-x: hidden;
}
@supports (overflow: clip) {
  .timeline {
    overflow-x: clip;
  }
}
/* linea centrale */
.timeline::before {
  content: "";
  background: var(--colore-primario);
  width: 5px;
  height: 100%;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  z-index: 0;
}
/* item */
.timeline-item {
  width: 100%;
  margin-bottom: 70px;
}
.timeline-item::after {
  content: "";
  display: block;
  clear: both;
}
/* card contenuto */
.timeline-content {
  position: relative;
  width: 45%;
  padding: 0;
  border-radius: 4px;
  background: var(--bianco-light);
  box-shadow: 0 20px 25px -15px rgba(0, 0, 0, 0.3);
  z-index: 1;
  float: left;
  overflow: hidden;
}
/* freccia card lato destro (default odd) */
.timeline-content::after {
  content: "";
  position: absolute;
  border-style: solid;
  width: 0;
  height: 0;
  top: 30px;
  right: -15px;
  border-width: 10px 0 10px 15px;
  border-color: transparent transparent transparent var(--bianco-light);
}
/* alternanza lato destro per gli even */
.timeline-item:nth-child(even) .timeline-content {
  float: right;
}
.timeline-item:nth-child(even) .timeline-content::after {
  left: -15px;
  right: auto;
  border-width: 10px 15px 10px 0;
  border-color: transparent var(--bianco-light) transparent transparent;
}
/* punto centrale */
.timeline-img {
  width: 30px;
  height: 30px;
  background: var(--colore-primario);
  border-radius: 50%;
  position: absolute;
  left: 50%;
  margin-top: 25px;
  margin-left: -15px;
  z-index: 2;
}
/* header immagine a tutta larghezza */
.timeline-item .timeline-img-header {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.timeline-img-header {
  width: 100%;
  aspect-ratio: 16/9;
  height: auto;
  position: relative;
  margin: 0;
}
/* titolo in sovrimpressione */
.timeline-img-header h2 {
  color: var(--colore-bianco);
  position: absolute;
  bottom: 5px;
  left: 20px;
}
/* badge data sopra l'immagine */
.date {
  background: var(--colore-secondario);
  color: var(--colore-primario);
  padding: 8px 12px;
  position: absolute;
  top: 0;
}
.timeline-item:nth-child(odd) .timeline-img-header .date {
  right: 0;
  left: auto;
}
.timeline-item:nth-child(even) .timeline-img-header .date {
  left: 0;
  right: auto;
}
/* contenuto testuale sotto l'immagine */
.timeline-body {
  padding: 15px 20px;
}
/* RESPONSIVE timeline */
@media screen and (max-width: 768px) {
  .timeline::before {
    left: 25px;
  }
  .timeline .timeline-img {
    left: 25px;
  }
  .timeline .timeline-content {
    max-width: 100%;
    width: auto;
    margin-left: 70px;
    float: none;
  }
  .timeline .timeline-item:nth-child(even) .timeline-content {
    float: none;
  }
  .timeline .timeline-item:nth-child(odd) .timeline-content::after {
    left: -15px;
    right: auto;
    border-width: 10px 15px 10px 0;
    border-color: transparent var(--bianco-light) transparent transparent;
  }
}
/************************* slider scroll orizzontale *************************/
.carousel-container {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  position: relative;
  background-color: var(--bianco-light);
}
.carousel-track {
  display: inline-block;
  animation: scroll 80s linear infinite;
  /* più alto = più lento */
  will-change: transform;
}
.carousel-item {
  display: inline-block;
  margin-right: 18px;
  /* spazio tra le immagini */
}
.carousel-item img {
  width: auto;
  height: 120px;
  object-fit: cover;
  /* mantiene proporzioni */
  border-radius: 8px;
  /* opzionale */
  padding: 10px 0;
}
@keyframes scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
  /* richiede duplicazione della sequenza */
}
/* ========== MEDIA QUERIES globali extra layout ========== */
@media (max-width: 1920px) {
  #lgx-parallax141 .lgx-parallax-content-wrapper,
  #lgx-parallax120 .lgx-parallax-content-wrapper {
    width: 40%;
    margin-left: 57%;
  }
}
@media (max-width: 1280px) {
  #lgx-parallax120 .lgx-parallax-inner {
    background-color: rgb(0 0 0 / 57%);
  }
  #lgx-parallax141 .lgx-parallax-content-wrapper,
  #lgx-parallax120 .lgx-parallax-content-wrapper {
    width: 60%;
    margin-left: 33%;
  }
}
@media (max-width: 1024px) {
  #lgx-parallax141 .lgx-parallax-content-wrapper,
  #lgx-parallax120 .lgx-parallax-content-wrapper {
    width: 80%;
    margin-left: 15px;
  }
}
@media (max-width: 768px) {
  .fascettatop {
    flex-direction: column;
    align-items: flex-start;
  }
  .fascettatop .fascettatop1 {
    width: 100%;
    text-align: left;
    margin-left: 0;
  }
}
@media (max-width: 767px) {
  .sedi-grid {
    grid-template-columns: 1fr;
  }
  .colonna,
  .col-1,
  .col-2,
  .col-3,
  .col-4,
  .col-5,
  .col-6,
  .col-7,
  .col-8,
  .col-9,
  .col-10,
  .col-11,
  .col-12 {
    width: 100%;
    margin-bottom: 20px;
  }
}
@media (max-width: 991px) {
  .col-tablet-6 {
    width: 50%;
  }
  .col-tablet-12 {
    width: 100%;
  }
}
@media (max-width: 520px) {
  .colonna.col-4 {
    width: 100%;
    margin-bottom: 20px;
  }
  #lgx-parallax120 .lgx-parallax-text {
    font-size: 18px;
    color: var(--colore-bianco);
  }
  .fascettatop {
    display: none;
  }
}
@media (max-width: 380px) {
  #lgx-parallax120 .lgx-parallax-text {
    font-size: 15px;
    color: var(--colore-bianco);
  }
}