@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,500;1,600&family=Roboto:wght@300;400;500;700&display=swap");

.site{overflow-x:hidden; width: 100%;}
.t-header{border-bottom:1px solid rgba(0,0,0,.08);}
.t-footer{border-top:1px solid rgba(0,0,0,.08);}

html, body{ overflow-x: hidden !important; }

/* =====================================================
   Category Blog - 3 colonne (Cassiopeia markup: blog-items masonry-3)
   ===================================================== */

.com-content-category-blog .blog-items.masonry-3{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important; /* regola lo spazio tra card */
}

/* item */
.com-content-category-blog .blog-items.masonry-3 .blog-item{
  margin: 0 !important;
  width: auto !important;
}

/* immagini responsive e senza “schiacciamenti” */
.com-content-category-blog .blog-items.masonry-3 .item-image img{
  display: block;
  width: 100%;
  height: auto;
}

/* responsive */
@media (max-width: 991.98px){
  .com-content-category-blog .blog-items.masonry-3{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 575.98px){
  .com-content-category-blog .blog-items.masonry-3{
    grid-template-columns: 1fr !important;
  }
}

/* CATEGORY BLOG - griglia generica (2/3/4 colonne) */
.com-content-category-blog .blog-items{
  display: grid;
  gap: 24px;
}

/* mappa colonne dal nome classe */
.com-content-category-blog .blog-items.masonry-2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.com-content-category-blog .blog-items.masonry-3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.com-content-category-blog .blog-items.masonry-4{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* responsive */
@media (max-width: 991.98px){
  .com-content-category-blog .blog-items.masonry-3,
  .com-content-category-blog .blog-items.masonry-4{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 575.98px){
  .com-content-category-blog .blog-items.masonry-2,
  .com-content-category-blog .blog-items.masonry-3,
  .com-content-category-blog .blog-items.masonry-4{
    grid-template-columns: 1fr;
  }
}

/* regole generali colori font ecc*/
:root {
    --maincolor: #C13636 !important;;
    --secondcolor: #2F3133 !important;
    --thirdcolor: #6A1C1C !important;
}

body {
  font-family: "Roboto", sans-serif;
  font-size: 18px;
 font-weight: 400;
  line-height: 28px;
  color: #666;
  margin-left: 0;
  margin-bottom: 0;
}

/* regole h */
h1 {
  font-family:"Poppins", cursive;
  margin:0;
  margin-bottom:15px;
  font-weight:700;
  color:var(--secondcolor);
  line-height:145%;
}

h2,h3,h4,h5,h6{
  font-family:"Poppins", cursive;
  margin:0;
  margin-bottom:0px;
  margin-top: 20px;
  font-weight:700;
  color:var(--secondcolor);
  line-height:145%;
}

h1{ font-size:60px; line-height:1.17; }
@media (max-width:991px){ h1{ font-size:42px; } }

h2{ font-size:30px; }
h3{ font-size:24px; }
h4{ font-size:22px; }
h5{ font-size:20px; }
h6{ font-size:18px; }

a{
  text-decoration:none;
  outline:none !important;
  cursor:pointer;
  -webkit-transition:all .3s ease-in-out;
  transition:all .3s ease-in-out;
}

p{ margin:0; }

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

li{
  list-style:none;
  position:relative;
}

figure{ margin:0; }
form{ position:relative; }

h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{ font-size:inherit; color:inherit; }
h1:hover a,h2:hover a,h3:hover a,h4:hover a,h5:hover a,h6:hover a{ font-size:inherit; color:inherit; }

hr{ margin:0; padding:0; border-color:#000; }

a,button{ position:relative; }
a:hover,a:focus,button:hover,button:focus{ outline:0; text-decoration:none; }
input,textarea,button{ border:0; }

/* =====================================================
   HOME-NEW: split + collage (come tuo file)
   ===================================================== */

.home-split .card,
.home-split .card-body{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
}

.container-main > .grid-child{ width:100%; }

.container-main > .grid-child > .home-split{
  width:100%;
  margin-left:auto;
  margin-right:auto;
  padding-left:15px;
  padding-right:15px;
}

/* container widths */
@media (min-width:576px){ .container-main > .grid-child > .home-split{ max-width:540px; } }
@media (min-width:768px){ .container-main > .grid-child > .home-split{ max-width:720px; } }
@media (min-width:992px){ .container-main > .grid-child > .home-split{ max-width:960px; } }
@media (min-width:1200px){ .container-main > .grid-child > .home-split{ max-width:1140px; } }
@media (min-width:1400px){ .container-main > .grid-child > .home-split{ max-width:1320px; } }

.home-split{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:40px;
}

.home-split__col{
  flex:1 1 0;
  min-width:0;
}

@media (min-width:992px){
  .home-split__col{
    flex:0 0 calc(50% - 20px);
    max-width:calc(50% - 20px);
  }
}

@media (max-width:991.98px){
  .home-split{ display:block; }
  .home-split__col + .home-split__col{ margin-top:24px; }
}

/* collage */
section.home-collage{
  position:relative;
  overflow:visible;
}

section.home-collage img{
  display:block;
  max-width:100%;
  height:auto;
  border-radius:14px;
  box-shadow:0 14px 40px rgba(0,0,0,.18);
}

@media (min-width:992px){
  section.home-collage{ min-height:420px; }

  .home-collage .collage-img--main{
    position:relative;
    width:60% !important;
    left:93px;
    z-index:1;
    bottom:-30px !important; /* FIX ; */
  }

  .home-collage .collage-img--top{
    position:absolute;
    top:10px;
    left:50px !important;
    width:25% !important;
    z-index:3;
    border:4px solid #fff;
    box-shadow:0 16px 44px rgba(0,0,0,.22);
  }

  .home-collage .collage-img--bottom{
    position:absolute;
    right:50px;
    bottom:20px;
    width:35% !important;
    z-index:4;
    border:4px solid #fff;
    box-shadow:0 16px 44px rgba(0,0,0,.22);
  }
}

@media (max-width:991.98px){
  section.home-collage{ min-height:0; }

  .home-collage .collage-img--top,
  .home-collage .collage-img--bottom{
    display:none !important;
  }

  .home-collage .collage-img--main{
    width:100% !important;
    margin-top:0;
  }
}

.container-main{
  padding-top:50px !important;
  padding-bottom:50px !important;
}

/* =====================================================
   MENU TOP (Joomla markup reale: .mod-menu / .mod-menu__sub)
   - Desktop: orizzontale + dropdown rosso + 3° livello laterale
   - Mobile: collapsible verticale
   ===================================================== */

/* evita che l’header “tagli” i dropdown */
.t-header,
header,
.container-header{
  overflow: visible !important;
}

/* MOBILE (<992) */
@media (max-width: 991px){
  /* hamburger visibile (default), menu verticale */
  ul.mod-menu.mod-list.nav{
    background:#2f3235 !important;
    padding:0 !important;
    margin:0 !important;
  }

  ul.mod-menu.mod-list.nav a{
    color:#fff !important;
    font-weight:600 !important;
  }

  /* sub menu nel flusso */
  ul.mod-menu__sub{
    position:static !important;
    display:block !important;
    background:transparent !important;
    padding-left:16px !important;
    min-width:0 !important;
  }
}

/* DESKTOP (>=992) */
@media (min-width: 992px){

  /* hamburger OFF su desktop */
  .navbar-toggler{
    display:none !important;
  }

  /* collapse sempre visibile su desktop (anche se .collapse non ha .show) */
  .navbar-collapse{
    display:flex !important;
    flex-basis:auto !important;
  }
  .navbar-collapse.collapse:not(.show){
    display:flex !important;
  }

  /* barra menu orizzontale */
  ul.mod-menu.mod-list.nav{
    display:flex !important;
    flex-wrap:nowrap !important;
    gap:0 !important;
    margin:0 !important;
    padding:0 !important;
    list-style:none !important;
    background:#2f3235 !important;
  }

  ul.mod-menu.mod-list.nav > li.nav-item{
    position:relative !important;
  }

  ul.mod-menu.mod-list.nav > li.nav-item > a,
  ul.mod-menu.mod-list.nav > li.nav-item > span.menu-separator{
    display:block !important;
    padding:22px 28px !important;
    color:#fff !important;
    font-weight:700 !important;
    text-decoration:none !important;
    white-space:nowrap !important;
  }

  ul.mod-menu.mod-list.nav > li.nav-item.current > a,
  ul.mod-menu.mod-list.nav > li.nav-item.active > a{
    color:#c83a33 !important;
  }

  /* dropdown 2° livello */
  ul.mod-menu__sub{
    display:none !important;
    position:absolute !important;
    top:100% !important;
    left:0 !important;
    min-width:360px !important;
    margin:0 !important;
    padding:18px 0 !important;
    list-style:none !important;
    background:#c83a33 !important;
    z-index:99999 !important;
  }

  /* apre su hover */
  li.nav-item:hover > ul.mod-menu__sub{
    display:block !important;
  }

  ul.mod-menu__sub > li.nav-item{
    position:relative !important;
  }

  ul.mod-menu__sub > li.nav-item > a,
  ul.mod-menu__sub > li.nav-item > span.menu-separator{
    display:block !important;
    padding:16px 26px !important;
    color:#fff !important;
    font-size:22px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    text-decoration:none !important;
  }

  /* 3° livello laterale */
  ul.mod-menu__sub ul.mod-menu__sub{
    top:0 !important;
    left:100% !important;
  }
}


/* === FIX DROPDOWN: evita clipping e forza hover === */
@media (min-width: 992px){

  /* IMPORTANTISSIMO: niente clipping dei sottomenu */
  .navbar,
  .navbar .navbar-collapse,
  .navbar .collapse,
  .t-header,
  .container-header{
    overflow: visible !important;
  }

  /* spesso Bootstrap mette position/overflow che tagliano i dropdown */
  .navbar .navbar-collapse{
    position: static !important;
  }

  /* assicurati che i parent siano “ancore” per l’assoluto */
  ul.mod-menu.mod-list.nav > li.nav-item{
    position: relative !important;
  }
  ul.mod-menu__sub > li.nav-item{
    position: relative !important;
  }

  /* mostra submenu su hover/focus-within (desktop) */
  li.nav-item.deeper.parent:hover > ul.mod-menu__sub,
  li.nav-item.deeper.parent:focus-within > ul.mod-menu__sub{
    display: block !important;
  }

  /* z-index più alto per stare sopra slider/hero */
  ul.mod-menu__sub{
    z-index: 999999 !important;
  }
}

/* =====================================================
   MENU – FIX ASSOLUTO (indipendente dal layout)
   ===================================================== */

@media (min-width: 992px){
  header ul.mod-menu.mod-list.nav{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    background:#2f3235 !important;
  }

  header ul.mod-menu.mod-list.nav > li{
    position:relative !important;
  }

  header ul.mod-menu.mod-list.nav > li > a,
  header ul.mod-menu.mod-list.nav > li > span.mod-menu__separator{
    display:block !important;
    padding:22px 28px !important;
    color:#fff !important;
    font-weight:700 !important;
    white-space:nowrap !important;
  }

  header ul.mod-menu__sub{
    display:none !important;
    position:absolute !important;
    top:100% !important;
    left:0 !important;
    min-width:360px !important;
    background:#c83a33 !important;
    z-index:999999 !important;
  }

  header li:hover > ul.mod-menu__sub{
    display:block !important;
  }

  header ul.mod-menu__sub ul.mod-menu__sub{
    top:0 !important;
    left:100% !important;
  }
}

@media (max-width: 991px){
  header ul.mod-menu.mod-list.nav{
    display:block !important;
    background:#2f3235 !important;
  }
}

/* =====================================================
   MENU – FORZA DESKTOP SEMPRE (no hamburger / no mobile)
   ===================================================== */

/* nasconde eventuale toggler/collapse se presenti 
.navbar-toggler { display: none !important; }
.navbar-collapse { display: block !important; }*/

/* forza il menu SEMPRE orizzontale ovunque sia stampato */
ul.mod-menu.mod-list.nav{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
  background:#2f3235 !important;
}

ul.mod-menu.mod-list.nav > li{
  position:relative !important;
}

ul.mod-menu.mod-list.nav > li > a,
ul.mod-menu.mod-list.nav > li > span.mod-menu__separator{
  display:block !important;
  padding:22px 28px !important;
  color:#fff !important;
  font-weight:700 !important;
  white-space:nowrap !important;
  text-decoration:none !important;
}

/* evidenzia current/active */
ul.mod-menu.mod-list.nav > li.current > a,
ul.mod-menu.mod-list.nav > li.active > a{
  color:#c83a33 !important;
}

/* dropdown 2° livello */
ul.mod-menu__sub{
  display:none !important;
  position:absolute !important;
  top:100% !important;
  left:0 !important;
  min-width:360px !important;
  margin:0 !important;
  padding:18px 0 !important;
  list-style:none !important;
  background:#c83a33 !important;
  z-index:999999 !important;
}

li:hover > ul.mod-menu__sub{
  display:block !important;
}

/* 3° livello laterale */
ul.mod-menu__sub ul.mod-menu__sub{
  top:0 !important;
  left:100% !important;
}

/* =====================================================
   FIX PAGINE INTERNE: contenuto leggibile
   ===================================================== */

.container-main{
  padding-top: 40px !important;
  padding-bottom: 60px !important;
}

.container-main > .grid-child{
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
/*  padding-left: 18px;
  padding-right: 18px;*/
}

/* titoli meno “giganti” */
.component-content h1{ font-size: 42px; line-height: 1.15; }
.component-content h2{ font-size: 28px; line-height: 1.2; }
.component-content h3{ font-size: 22px; }

/* link */
.component-content a{ text-decoration: underline; }

/* =====================================================
   FOOTER (no SPPB)
   ===================================================== */

.site-footer__top{
  background: var(--secondcolor);
  padding: 60px 0 80px;
}

.site-footer__bottom{
  background: var(--thirdcolor);
  padding: 35px 0;
}

.site-footer__title{
  margin: 0 0 25px;
  color: #fff;
  font-weight: 600;
}

.site-footer__links{
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer__links a{
  margin-top: 8px;
  color: #9dacb8;
  display: block;
  font-size: 15px;
  text-decoration: none;
}

.site-footer__links a:hover{
  color: var(--thirdcolor);
}

/* colonna che nel vecchio aveva empty-space 50px */
.site-footer__spacer{ height: 50px; }
@media (max-width: 1199.98px){ .site-footer__spacer{ height: 40px; } }

/* contatti con icona (replica sppb-media display:flex) */
.site-footer__contact{ margin-top: 5px; color:#9dacb8; }
.site-footer__contact-item{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 10px;
  font-size: 15px;
  line-height: 22px;
}

.site-footer__contact-item i{
  font-size: 15px;
  width: 15px;
  height: 15px;
  line-height: 15px;
  margin-top: 3px;
  font-weight: 300;
  color: var(--maincolor);
}

/* il marker nel vecchio usava var(--mailcolor) */
.site-footer__contact-item:first-child i{
  color: var(--mailcolor);
}

.site-footer__contact-item p{
  margin: 0;
}

.site-footer__contact a{
  color: #9dacb8;
  text-decoration: none;
}
.site-footer__contact a:hover{
  color: var(--thirdcolor);
}

/* bottom */
.site-footer__copyright{
  color:#fff;
  text-align:center;
}
@media (min-width: 768px){
  .site-footer__copyright{ text-align:left; }
}

.site-footer__social a{
  color:#fff;
  font-weight: 500;
  font-size: 16px;
  line-height: 28px;
  text-decoration:none;
}
.site-footer__social a:hover{
  color: var(--secondcolor);
}
/* =====================================================
   FOOTER 2025 – look tipo Transland/Helix
   ===================================================== */

/* reset link blu */
.site-footer, .site-footer *{
  box-sizing: border-box;
}
.site-footer a{
  color: inherit;
  text-decoration: none;
}

/* fascia principale */
.site-footer__top{
  background: var(--secondcolor) !important;
  padding: 60px 0 80px !important;
  color: #9dacb8 !important;
}

/* fascia inferiore */
.site-footer__bottom{
  background: var(--maincolor) !important;
  padding: 35px 0 !important;
  color: #fff !important;
}

/* container “come prima” */
.site-footer .container{
  max-width: 1200px;
}

/* logo footer */
.site-footer__brand img{
  max-width: 240px;
  height: auto;
  display: block;
}


/* =====================================================
   HEADER: allineamento LOGO (below-top) + MENU (container-header)
   Obiettivo: stessa colonna e stessi padding su TUTTE le pagine
   ===================================================== */

/* 1) COLONNA COMUNE: uguale ai container contenuti */
:root{
  --site-maxw: 1200px;
  --site-pad: 12px;
}

/* --- LOGO sopra il menu (position below-top) --- */
.container-below-top{
  max-width: var(--site-maxw) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--site-pad) !important;
  padding-right: var(--site-pad) !important;
  padding-top: 18px !important;
  padding-bottom: 14px !important;
}

.container-below-top .moduletable{
  margin: 0 !important;
}

/* il tuo modulo logo */

#mod-custom228{
  margin: 30px auto !important;
  padding: 0 15px !important;
  text-align: left !important;
}


/* immagine logo */
#mod-custom228 img{
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
}

/* --- MENU (position menu dentro container-header) --- */
.container-header{
  background: #2f3235 !important; /* barra scura */
}

/* stessa colonna del logo e dei contenuti */
.container-header .grid-child{
  max-width: var(--site-maxw) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--site-pad) !important;
  padding-right: var(--site-pad) !important;
}

/* evita “menu ristretto” */
.container-header .container-nav{
  width: 100% !important;
}

/* UL principale */
.container-header ul.mod-menu.mod-list.nav{
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: transparent !important;
}

/* voci livello 1 */
.container-header ul.mod-menu.mod-list.nav > li.nav-item{
  position: relative !important;
  margin: 0 !important;
}

/* link / separatore livello 1 */
.container-header ul.mod-menu.mod-list.nav > li.nav-item > a,
.container-header ul.mod-menu.mod-list.nav > li.nav-item > span.mod-menu__separator{
  display: block !important;
  padding: 20px 26px !important;
  color: #fff !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

/* attivo */
.container-header ul.mod-menu.mod-list.nav > li.active > a{
  color: var(--maincolor, #d04a3a) !important;
}

/* separatore non cliccabile */
.container-header ul.mod-menu.mod-list.nav > li.nav-item > span.mod-menu__separator{
  cursor: default !important;
}

/* 2) DROPDOWN */
.container-header ul.mod-menu__sub{
  display: none !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  min-width: 320px !important;
  background: #c83a33 !important;
  z-index: 999999 !important;
  margin: 0 !important;
  padding: 10px 0 !important;
}

/* mostra dropdown hover */
.container-header li.nav-item:hover > ul.mod-menu__sub{
  display: block !important;
}

/* link dropdown */
.container-header ul.mod-menu__sub li a{
  display: block !important;
  padding: 10px 16px !important;
  color: #fff !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  white-space: normal !important;
}
.container-header ul.mod-menu__sub li a:hover{
  background: rgba(0,0,0,.12) !important;
}

/* 3° livello laterale */
.container-header ul.mod-menu__sub ul.mod-menu__sub{
  top: 0 !important;
  left: 100% !important;
}

/*fine regole logo pagine interne*/

/* titoli colonne */
.site-footer__title{
  margin: 0 0 25px !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  line-height: 22px !important;
}

/* liste link */
.site-footer__links{
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.site-footer__links li + li{
  margin-top: 8px !important;
}
.site-footer__links a{
  color: #9dacb8 !important;
  display: inline-block;
  font-size: 15px !important;
}
.site-footer__links a:hover{
  color: var(--thirdcolor) !important;
}

/* spacer colonna (equivale all’empty space SPPB) */
.site-footer__spacer{ height: 50px; }
@media (max-width: 1199.98px){ .site-footer__spacer{ height: 40px; } }
@media (max-width: 991.98px){ .site-footer__spacer{ height: 40px; } }

/* contatti (icona + testo) */
.site-footer__contact{
  margin-top: 5px !important;
  color:#9dacb8 !important;
}
.site-footer__contact-item{
  display:flex !important;
  align-items:flex-start !important;
  gap:10px !important;
  margin-top: 10px !important;
  font-size: 15px !important;
  line-height: 22px !important;
}
.site-footer__contact-item i{
  font-size: 15px !important;
  width: 15px !important;
  height: 15px !important;
  line-height: 15px !important;
  margin-top: 3px !important;
  font-weight: 300 !important;
  color: var(--maincolor) !important;
}
/* pin mappa nel vecchio usava mailcolor */
.site-footer__contact-item:first-child i{
  color: var(--mailcolor) !important;
}
.site-footer__contact-item p{ margin:0 !important; }
.site-footer__contact a{
  color:#9dacb8 !important;
}
.site-footer__contact a:hover{
  color: var(--thirdcolor) !important;
}

/* copyright + social */
.site-footer__copyright{
  color:#fff !important;
  font-size: 15px !important;
  line-height: 22px !important;
  text-align: center;
}
.site-footer__copyright a{
  color:#fff !important;
  text-decoration: none !important;
}
.site-footer__copyright a:hover{
  color: var(--secondcolor) !important;
}

.site-footer__social{
  text-align: center;
}
@media (min-width: 768px){
  .site-footer__copyright{ text-align: left; }
  .site-footer__social{ text-align: right; }
}

.site-footer__social a{
  color:#fff !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  line-height: 28px !important;
  display: inline-block;
}
.site-footer__social a:hover{
  color: var(--secondcolor) !important;
}

/* =====================================================
   PATCH FOOTER – spaziature/griglia/look (mirato)
   INCOLLA IN FONDO AL FILE
   ===================================================== */

.site-footer{
  font-size: 15px;
  line-height: 22px;
  color: #9dacb8;
}

/* forza container coerente */
.site-footer .container{
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

/* forza griglia (anche se bootstrap non “risponde”) */
.site-footer .row{
  display: flex;
  flex-wrap: wrap;
  margin-left: -12px;
  margin-right: -12px;
  row-gap: 24px;
}
.site-footer .row > [class*="col-"]{
  padding-left: 12px;
  padding-right: 12px;
}

/* fallback responsive simile a col-lg / col-sm */
@media (min-width: 992px){
  .site-footer .col-lg-3{ flex: 0 0 25%; max-width: 25%; }
  .site-footer .col-lg-2{ flex: 0 0 16.6666667%; max-width: 16.6666667%; }
  .site-footer .col-lg-12{ flex: 0 0 100%; max-width: 100%; }
}
@media (min-width: 576px) and (max-width: 991.98px){
  .site-footer .col-sm-6{ flex: 0 0 50%; max-width: 50%; }
  .site-footer .col-sm-4{ flex: 0 0 33.3333333%; max-width: 33.3333333%; }
}
@media (max-width: 575.98px){
  .site-footer .row > [class*="col-"]{ flex: 0 0 100%; max-width: 100%; }
}

/* fasce */
.site-footer__top{
  background: var(--secondcolor) !important;
  padding: 60px 0 80px !important;
}
.site-footer__bottom{
  background: var(--thirdcolor) !important;
  padding: 35px 0 !important;
  color: #fff !important;
}

/* logo come in origine */
.site-footer__brand img,
.site-footer__brand .img-fluid{
  max-width: 240px;
  height: auto;
  display: block;
}

/* titoli */
.site-footer__title{
  margin: 0 0 25px !important;
  color: #fff !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  line-height: 22px !important;
}

/* link list */
.site-footer__links li + li{ margin-top: 8px !important; }
.site-footer__links a{
  color: #9dacb8 !important;
  font-size: 15px !important;
  display: block;
}
.site-footer__links a:hover{ color: var(--thirdcolor) !important; }

/* spacer colonna */
.site-footer__spacer{ height: 50px !important; }
@media (max-width: 1199.98px){ .site-footer__spacer{ height: 40px !important; } }

/* contatti */
.site-footer__contact{ margin-top: 5px !important; }
.site-footer__contact-item{
  display: flex !important;
  gap: 10px !important;
  margin-top: 10px !important;
}
.site-footer__contact-item i{
  margin-top: 3px !important;
  font-size: 15px !important;
  width: 15px !important;
  height: 15px !important;
  line-height: 15px !important;
  font-weight: 300 !important;
  color: var(--maincolor) !important;
}
/* pin mappa */
.site-footer__contact-item:first-child i{ color: var(--mailcolor) !important; }

.site-footer__contact a{ color:#9dacb8 !important; }
.site-footer__contact a:hover{ color: var(--thirdcolor) !important; }

/* bottom: copyright + social allineati */
.site-footer__copyright{
  color:#fff !important;
  font-size: 15px !important;
  line-height: 22px !important;
  text-align: center;
}
.site-footer__social{ text-align: center; }

@media (min-width: 768px){
  .site-footer__copyright{ text-align: left; }
  .site-footer__social{ text-align: right; }
}
.site-footer__copyright a{ color:#fff !important; }
.site-footer__copyright a:hover{ color: var(--secondcolor) !important; }

.site-footer__social a{
  color:#fff !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  line-height: 28px !important;
  display: inline-block;
}
.site-footer__social a:hover{ color: var(--secondcolor) !important; }



/* =====================================================
   PAGE HERO – Pagine interne (Azienda, Portfolio, Contatti…)
   ===================================================== */

.page-hero{
  position: relative;
  padding: clamp(48px, 6vw, 80px) 0 clamp(36px, 4vw, 60px);
  overflow: 
  max-width: 1150px;
padding-left: 65px;
  padding-right: 65px;
}

/* contenitore sempre sopra al testo gigante */
.page-hero .container{
  position: relative;
  z-index: 2;
}

/* testo gigante di sfondo */
.page-hero::before{
  content: attr(data-bg);
  position: absolute;
  left: 67%;
  top: 50%;
  transform: translate(-50%, -55%);
  font-size: clamp(90px, 13vw, 190px);
  line-height: 1;
  font-weight: 1000;
  letter-spacing: .02em;
  color: rgba(47,49,51,.06);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  z-index: 1;
}

/* riga “kicker” */
.page-hero__kicker{
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 30px;
}

.page-hero__line{
  /*width: 80px;*/
  height: 3px;
  background: var(--thirdcolor);
  display: inline-block;
  flex: 0 0 auto;
}

.page-hero__small{
  font-weight: 700;
  color: var(--thirdcolor);
  text-transform: none;
  line-height: 1.3;
}

/* titolo */
.page-hero__title{
  margin: 0;
  font-size: clamp(42px, 6vw, 86px);
  line-height: 1.02;
  font-weight: 800;
  color: #2f3133;
  max-width: 1100px; /* evita righe troppo lunghe su widescreen */
}

.page-hero__title .is-accent{
  color: var(--maincolor);
}

/* mobile */
@media (max-width: 767.98px){
  .page-hero__line{ width: 60px; }
  .page-hero__kicker{ gap: 14px; margin-bottom: 10px; }
  .page-hero::before{
    transform: translate(-50%, -60%);
    opacity: .6; /* più leggero su mobile */
  }
}

/* =====================================================
   AZIENDA – replica look SPPB (solo /azienda)
   ===================================================== */

/*.azienda-page .azienda-section{
  padding: 55px 0;
}*/

.azienda-page .azienda-section .container{
  max-width: 1140px;          /* simile helix */
}

/* layout 2 colonne (indipendente da bootstrap) */
.azienda-page .azienda-section .row{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap: 30px !important;       /* simile g-4 + spacing SPPB */
  margin: 0 !important;
}

@media (min-width: 992px){
  .azienda-page .azienda-section .col-lg-6{
    flex: 0 0 calc(50% - 15px) !important;
    max-width: calc(50% - 15px) !important;
  }
  .azienda-page .azienda-section .order-lg-2{ order:2 !important;}
	
  .azienda-page .azienda-section .order-lg-1{ order:1 !important; }
}
@media (max-width: 991.98px){
  .azienda-page .azienda-section .col-lg-6{
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}

/* immagine */
.azienda-page .azienda-media{
  margin:0 !important;
}
.azienda-page .azienda-media img{
  width:100%;
  height:470px;
  display:block;
  border-radius: 6px;
}

/* box grigio come SPPB */
.azienda-page .azienda-box{
  background: #f3f3f3;
  padding: 45px 32px;
  border-radius: 6px;
}
@media (max-width: 575.98px){
  .azienda-page .azienda-box{ padding: 22px 20px; }
}

/* titolo sezione */
.azienda-page .azienda-box__title{
  margin: 0 0 18px;
  font-weight: 800;
  font-size: 34px;
  line-height: 1.15;
  color: #2f3133;
}

/* testo e lista */
.azienda-page .azienda-box p{
  margin: 0 0 12px;
  color:#666;
  line-height: 28px;
}

.azienda-page .azienda-list{
  margin: 12px 0 0;
  padding-left: 18px;
  color:#666;
}
.azienda-page .azienda-list li{
  margin: 6px 0;
}

/* seconda sezione: stesso stile, solo ritmo */
.azienda-page .azienda-section--alt{
  padding-top: 30px;
}

/* ===== HERO / HOME GALLERY FULL WIDTH (no spazi bianchi laterali) ===== */

/* toglie padding del container solo nella home */
body.home-new .container,
body.home-new .container-fluid,
body.home-new .container-main,
body.home-new .container-header,
body.home-new .grid-child{
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* la gallery deve occupare tutto lo schermo */
body.home-new .mod-homegallery{
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

/* ===== BSGEN: forza griglia bootstrap anche se qualche css ha rotto .row/.col ===== */
.bsgen-gallery.row{
  display: flex !important;
  flex-wrap: wrap !important;        /* IMPORTANTISSIMO: altrimenti non va a capo */
  justify-content: center;
  align-items: stretch;
  gap: 10px 10px;                    /* distanza orizzontale / verticale */
}

/* colonne: non serve flex dentro, ma se vuoi tenere la tua logica ok */
.bsgen-gallery.row > [class*="col-"]{
  display: flex !important;
}

/* immagini */
.bsgen-gallery img{
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

/* se vuoi una spaziatura “extra” interna oltre al gap */
.bsgen-gallery.row > [class*="col-"]{
  padding: 0 !important;             /* evita interferenze */
}



/* BSGEN: forza griglia bootstrap anche se qualche css ha rotto .row/.col */
.bsgen-gallery.row{
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center;
  align-items: stretch;
  gap: 10px 10px;     /* spazio orizzontale / verticale */
}

/* colonne */
.bsgen-gallery.row > [class*="col-"]{
  display: flex !important;
  padding: 0 !important;  /* così gap gestisce tutto */
}

/* immagini */
.bsgen-gallery img{
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

/* ====== QUI LA PARTE CHE GESTISCE LE COLONNE ====== */

/* Mobile: 1 colonna */
.bsgen-gallery.row > [class*="col-"]{
  flex: 0 0 100% !important;
  max-width: 100% !important;
}

/* Tablet (>=768): 2 colonne */
@media (min-width: 768px){
  .bsgen-gallery.row > [class*="col-"]{
    flex: 0 0 calc(50% - 5px) !important;
    max-width: calc(50% - 5px) !important;
  }
}

/* Desktop (>=992): 3 colonne */
@media (min-width: 992px){
  .bsgen-gallery.row > [class*="col-"]{
    flex: 0 0 calc(33.333% - 6.666px) !important;
    max-width: calc(33.333% - 6.666px) !important;
  }
}

/* base: flex + gap */
.bsgen-gallery{
  display:flex !important;
  flex-wrap:wrap !important;
  gap: 10px !important;
  justify-content:center;
}

/* 3 colonne */
.bsgen-gallery.bsgen-cols-3 > [class*="col-"]{
  flex: 0 0 calc((100% - 20px) / 3) !important; /* 2 gap da 10px */
  max-width: calc((100% - 20px) / 3) !important;
}

/* 2 colonne */
.bsgen-gallery.bsgen-cols-2 > [class*="col-"]{
  flex: 0 0 calc((100% - 10px) / 2) !important; /* 1 gap da 10px */
  max-width: calc((100% - 10px) / 2) !important;
}

.bsgen-gallery img{
  width:100% !important;
  height:auto !important;
  display:block !important;
}

/* Griglia blog categoria: mantiene le righe allineate (SOLO com_content) */
.com-content-category-blog__items,
.com-content-category-blog .blog-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3 per riga su desktop */
  gap: 2rem;
}

@media (max-width: 991.98px){
  .com-content-category-blog__items,
  .com-content-category-blog .blog-items {
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2 per riga su tablet */
  }
}

@media (max-width: 575.98px){
  .com-content-category-blog__items,
  .com-content-category-blog .blog-items {
    grid-template-columns: 1fr; /* 1 per riga su mobile */
  }
}

/* ogni item “stira” bene il contenuto */
.com-content-category-blog__item,
.com-content-category-blog .blog-item {
  display: flex;
  flex-direction: column;
}

/* immagine anteprima sempre responsiva */
.com-content-category-blog__item img,
.com-content-category-blog .blog-item img {
  max-width: 100%;
  height: auto;
  display: block;
}


.com-content-category-blog__item .item-content,
.com-content-category-blog .blog-item .item-content {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.com-content-category-blog__item .item-content .readmore,
.blog-item .item-content .readmore {
  margin-top: auto;
}
/*======================================*/
/* css Modulo richiesta | Info Responsive | a scomparsa*/
/*======================================*/
/* Barra e pannello */
/* ===== Modulo Richiesta Contatti - layout 2 colonne (non tutto in riga) ===== */
/* ===== Modulo Richiesta Contatti - BLOCCO PULITO DEFINITIVO ===== */

/* wrapper per centrare e limitare larghezza */
.mod-richiesta-contatti.mrc{
  max-width: 1600px !important;
  margin: 0 auto !important;
/*  padding: 0 65px !important;*/
}

/* SOLO barra rossa (colore template) */
.mod-richiesta-contatti.mrc .mrc-bar{
  background: var(--maincolor, #C13636) !important;
  padding: 3.5px !important;
  border-radius: 6px !important;
  margin: 20px !important !important;
}

/* summary details: rimuove marker */
.mod-richiesta-contatti.mrc .mrc-details > summary{
  list-style: none !important;
}
.mod-richiesta-contatti.mrc .mrc-details > summary::marker{
  content: "" !important;
}
.mod-richiesta-contatti.mrc .mrc-details > summary::-webkit-details-marker{
  display: none !important;
}

/* barra: telefono sx, bottone dx */
.mod-richiesta-contatti.mrc .mrc-bar__inner{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
}

/* bottoni barra (reset locale per evitare “spogliamento” del template) */
.mod-richiesta-contatti.mrc .mrc-phone,
.mod-richiesta-contatti.mrc .mrc-toggle{
  all: unset;
  box-sizing: border-box;
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  padding:10px 14px !important;
  border-radius:6px !important;
  font-weight:800 !important;
  color:#333 !important;
  cursor:pointer !important;
  user-select:none !important;
}
.mod-richiesta-contatti.mrc .mrc-phone{
  background:#cfcfcf !important;
  text-decoration:none !important;
	    padding-top: 2px !important;
    padding-bottom: 2px !important;
}
.mod-richiesta-contatti.mrc .mrc-toggle{
  background:#e1e1e1 !important;
  margin-left:auto !important;
  text-transform:uppercase !important;
		    padding-top: 2px !important;
    padding-bottom: 2px !important;
}
.mod-richiesta-contatti.mrc .mrc-ico{
  width:18px !important;
  display:inline-flex !important;
  justify-content:center !important;
}

/* pannello grigio */
.mod-richiesta-contatti.mrc .mrc-panel{
  background:#e9ecef !important;
  padding:18px 12px 22px !important;
  border-radius: 0 0 6px 6px !important;
}

/* layout: 2 colonne desktop, 1 col mobile */
.mod-richiesta-contatti.mrc .row{
  display:flex !important;
  flex-wrap:wrap !important;
  margin:0 !important;
}
.mod-richiesta-contatti.mrc .col-lg-6{
  flex: 0 0 50% !important;
  max-width: 50% !important;
  padding: 0 12px !important;
  box-sizing:border-box !important;
}
@media (max-width: 991px){
  .mod-richiesta-contatti.mrc .col-lg-6{
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}

/* label + campi */
.mod-richiesta-contatti.mrc .form-label{
  display:block !important;
  margin: 0 0 6px !important;
  font-weight:700 !important;
  color:#555 !important;
}
.mod-richiesta-contatti.mrc .form-control{
  width:100% !important;
  max-width:100% !important;
  display:block !important;
  box-sizing:border-box !important;
  background:#fff !important;
  border:1px solid #ddd !important;
  border-radius:4px !important;
  padding:10px 12px !important;
}
.mod-richiesta-contatti.mrc textarea.form-control{
  min-height: 180px !important;
}

/* colonna destra */
.mod-richiesta-contatti.mrc .mrc-side__title{
  text-align:center !important;
  margin: 6px 0 14px !important;
  font-weight:900 !important;
  color:#666 !important;
  font-size: 32px !important;
}

/* messaggi */
.mod-richiesta-contatti.mrc .alert-success{
  background-color:#d1e7dd !important;
  border:1px solid #badbcc !important;
  color:#0f5132 !important;
}
.mod-richiesta-contatti.mrc .alert-danger{
  background-color:#f8d7da !important;
  border:1px solid #f5c2c7 !important;
  color:#842029 !important;
}

/* ================================ */
/* FIX overflow orizzontale (hero) */
/* ================================ */
html, body{
  overflow-x: hidden !important;
}

/* ===== HOME-NEWS: gallery full-width reale (senza toccare il menu) ===== */

/* Selettore pagina: prova prima questa (di solito Joomla mette classe body = alias menu) */
body.home-news .mod-homegallery,
body.home-news .mod-homegallery *{
  box-sizing: border-box;
}

/* trucco: esce dal container mantenendo layout stabile */
body.home-news .mod-homegallery{
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

/* sicurezza: evita che l’overlay/slide creino micro-scroll orizzontale */
html, body{ overflow-x: hidden !important; }

/* ======================================================
   GLIGHTBOX: pulsante CHIUDI grande e ben visibile
   ====================================================== */

/* contenitore pulsante */
.glightbox-clean .gclose{
  top: 16px !important;
  right: 16px !important;
  width: auto !important;
  height: auto !important;
  background: #C13636 !important;
  border-radius: 6px !important;
  padding: 10px 14px !important;
  opacity: 1 !important;
}

/* X */
.glightbox-clean .gclose svg{
  width: 22px !important;
  height: 22px !important;
  stroke-width: 3 !important;
}

/* testo CHIUDI */
.glightbox-clean .gclose::after{
  content: "CHIUDI";
  margin-left: 10px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #fff;
  vertical-align: middle;
}

/* hover */
.glightbox-clean .gclose:hover{
  background: #6A1C1C !important;
}

/* mobile: ancora più grande */
@media (max-width: 575.98px){
  .glightbox-clean .gclose{
    padding: 14px 18px !important;
  }

  .glightbox-clean .gclose::after{
    font-size: 15px;
  }
}
.glightbox-container .gslide-image > img {
   width: 1100px !important;
    max-width: 100% !important;    
	}


/* ======================================================
   MODULO NEWSFLASH (anteprime articoli) - griglia stabile 3/2/2
   + separatori sopra/sotto
   ====================================================== */

/* se Bootstrap viene sovrascritto, forza la griglia sul wrapper 
.m-newsflash-grid{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
.m-newsflash-grid > [class*="col-"]{
  width: auto !important;
  max-width: none !important;
  flex: initial !important;
}
@media (max-width: 991.98px){
  .m-newsflash-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px){
  .m-newsflash-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
  }
  .m-newsflash-card__img img{ height: 130px; }
  .m-newsflash-card__text{ display: none; }
}



/* separatore sopra e sotto (metti questa classe nel modulo: m-newsflash-sep) 
.m-newsflash-sep{
  border-top: 1px solid rgba(0,0,0,.12);
  border-bottom: 1px solid rgba(0,0,0,.12);
  padding: 24px 0;
  margin: 24px 0;
}

/* se il titolo modulo è attivo ma non si vede, forzalo (solo dentro m-newsflash-sep) 
.m-newsflash-sep > .moduletitle,
.m-newsflash-sep .module-title{
  display: block !important;
}

/* Griglia modulo: 3 desktop, 2 tablet, 2 mobile 
.m-newsflash-grid{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

@media (max-width: 991.98px){
  .m-newsflash-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px){
  .m-newsflash-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
}


/* Separatore modulo (prende sia .moduletable che wrapper interni) 
.moduletable.m-newsflash-sep,
.module.m-newsflash-sep,
.m-newsflash-sep{
  border-top: 2px solid rgba(0,0,0,.12) !important;
  border-bottom: 2px solid rgba(0,0,0,.12)!important;
  padding: 22px 0!important;
  margin: 22px 0!important;
}
*/

/*==============================*/
/* === BOX ICONA LATERALI === */
.side-button {
  position: fixed;
  right: 0;
  border-radius: 6px 0 0 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 9999;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
  width: clamp(30px, 5vw, 50px);
  height: clamp(30px, 5vw, 50px);
  display: none;
}
.side-button svg {
  width: clamp(10px, 60%, 25px);
  height: clamp(10px, 60%, 25px);
  fill: #fff;
}

/* === POSIZIONE E COLORI DEI 3 BOX === */
#btn-mappa       { top: 30%; background-color: #007bff; } /* blu */
#btn-phone       { top: 40%; background-color: #dc3545; } /* rosso */
#btn-preventivo  { top: 50%; background-color: #28a745; } /* verde */

/* === PANNELLI SCORREVOLI === */
.slide-panel {
  position: fixed;
  top: 30%;
  right: 0;
  width: 100%;
  height: 40%;
  background: white;
  z-index: 10000;
  display: none;
  flex-direction: column;
  box-shadow: -3px 0 10px rgba(0,0,0,0.3);
  border-left: 1px solid #ccc;
}

/* === CHIUSURA PANNELLO === */
.slide-close {
  position: absolute;
  top: 10px;
  right: 10px;
  background: #000;
  color: #fff;
  font-size: 16px;
  border: none;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  cursor: pointer;
  z-index: 10001;
}

/* === MAPPA === */
#slide-panel-mappa iframe {
  width: 100%;
  max-height: 300px;
  height: 100%;
  border: 0;
  display: block;
}


/*============= 
colori e css box contatti persone
=========================*/
/* === CONTACT CARDS (look modulo contatti) === */
/* ===== Contact cards (svincolate da Bootstrap / SPPB) ===== */
/* ===== Contact cards cliccabili ===== */
/* ======================================================
   CONTACT CARDS – layout centrato 65px dx/sx
   ====================================================== */

/* wrapper */
.contact-cards-wrap{
  width: 100%;
}

/* contenitore centrato come Bootstrap container */
.contact-cards-inner{
  max-width: 1320px;
  margin: 0 auto;
  padding-left: 65px;
  padding-right: 65px;
  box-sizing: border-box;
}

/* griglia */
.contact-cards-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(260px, 1fr));
  gap: 24px;
}

/* tablet */
@media (max-width: 991px){
  .contact-cards-inner{
    padding-left: 40px;
    padding-right: 40px;
  }

  .contact-cards-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

/* mobile */
@media (max-width: 575px){
  .contact-cards-inner{
    padding-left: 20px;
    padding-right: 20px;
  }

  .contact-cards-grid{
    grid-template-columns: 1fr;
  }
}

/* ======================================================
   CARD
   ====================================================== */

.contact-card-link{
  background: #f1f3f5;
  border-radius: 6px;
  padding: 20px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
  color: inherit;
  transition: transform .2s ease, box-shadow .2s ease;
}

.contact-card-link:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
}

/* top */
.contact-card-link .top-part{
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.contact-card-link h4{
  margin: 0;
  font-size: 20px;
  color: var(--secondcolor);
}

/* icone */
.contact-card-link .icon i{
  font-size: 22px;
  color: var(--secondcolor);
}

/* bottom */
.contact-card-link .bottom-part{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.08);
}

.contact-card-link .info p{
  margin: 0;
  font-weight: 700;
  color: var(--secondcolor);
}

/* icona telefono a destra */
.contact-card-link .bottom-part .icon i{
  color: var(--maincolor);
}


/* MENU MOBILE: aumenta font + altezza (solo mobile) */
@media (max-width: 768px){
  .container-header .navbar-nav .nav-link,
  .container-header ul.mod-menu.mod-list.nav > li > a,
  .container-header ul.mod-menu.mod-list.nav > li > span.mod-menu__separator{
    font-size: 45px !important;
    line-height: 1.25 !important;
    padding: 14px 18px !important; /* aumenta anche "altezza percepita" */
  }
}


/* NASCONDE LA VOCE DI MENU SOLO IN MOBILE (classe messa su "Classe CSS del link") */
/* ===============================
   VISIBILITÀ MENU Pavimenti per esterni  NO---> MOBILE
   =============================== */
/* NASCONDE "Pavimenti per esterni" SOLO IN MOBILE */
@media (max-width: 768px){
  .container-header li.item-55{
	  display: none;
  }
}

/* =========================================================
   Joomla: Prev/Next (pagenavigation) + Readmore standard
   ========================================================= */

/* --- Prev/Next in articolo singolo --- */
.pagenavigation {
  margin: 1.25rem 0;
  padding: 0;
  list-style: none;
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
}

.pagenavigation .pagination{
  display: flex;
  width: 100%;
}

.pagenavigation a.next{
  margin-left: auto;
}
.pagenavigation{
  padding: 0 .75rem;
}

.pagenavigation a {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .15rem .9rem;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: .5rem;
  background: #cfcfcf !important;
	color: #6A1C1C !important;
  text-decoration: none;
  font-weight: 450;
  line-height: 1.0;
}

.pagenavigation a:hover,
.pagenavigation a:focus {
  text-decoration: none;
  border-color: rgba(0,0,0,.25);
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
}

.pagenavigation a .icon-chevron-left,
.pagenavigation a .icon-chevron-right,
.pagenavigation a .fa,
.pagenavigation a svg {
  opacity: .75;
}

/* --- Read more (articoli, blog, moduli) --- */
.readmore,
.mod-articles-category-readmore {
  margin: .75rem 0 0;
}

.readmore a,
.mod-articles-category-readmore a {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .15rem .7rem;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: .5rem;
  background: #cfcfcf !important;
	color: #6A1C1C !important;
  text-decoration: none;
  font-weight: 450;
  line-height: 1.0;
}

.readmore a:hover,
.readmore a:focus,
.mod-articles-category-readmore a:hover,
.mod-articles-category-readmore a:focus {
  text-decoration: none;
  border-color: rgba(0,0,0,.25);
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
}

/* opzionale: rendi il readmore più "call to action" */
.readmore a,
.mod-articles-category-readmore a {
  background: rgba(0,0,0,.03);
}

/* spaziatura coerente sotto titolo/intro */
.newsflash-title + .readmore,
.page-header + .pagenavigation {
  margin-top: 1rem;
}


/* Readmore sopra immagine (basso dx) */
.bp-item-media{
  position: relative;
}

.bp-readmore-onimage{
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 10;
}

.bp-readmore-onimage .readmore{
  margin: 0 !important;
}
.mrc-submit{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .15rem .9rem;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: .5rem;
  background: #cfcfcf !important;
	color: #6A1C1C !important;
  text-decoration: none;
  font-weight: 450;
  line-height: 1.0;
}

.mrc-submit:hover{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .15rem .9rem;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: .5rem;
  background: #000 !important;
	color: #6A1C1C !important;
  text-decoration: none;
  font-weight: 450;
  line-height: 1.0;
}

/* Fascia sopra immagine effetto Hitec */
/* Fascia sopra immagine effetto Hitec */
/* hitrec: overlay titolo su immagine (blog/category + modulo con wrapper .blog-item) */

/* SOLO pagine categoria/blog di com_content (liste articoli) */
.com-content-category-blog .blog-item,
.blog .blog-item{
  position: relative;
}

/* immagine del singolo item (maschera) */
.com-content-category-blog .blog-item .item-image,
.blog .blog-item .item-image{
  position: relative;
  overflow: hidden;
  margin: 0; /* evita gap strani */
}

/* Titolo H2 del singolo item - stile fascia */
.com-content-category-blog .blog-item h2,
.blog .blog-item h2{
  position: relative;
  z-index: 2;
  margin: 0 0 18px 0;        /* default: niente overlay */
  padding: 26px 32px;
  background: rgba(0,0,0,.45);
  color: #fff;
  line-height: 1.1;
  font-weight: 500;
}

/* Overlay SOLO se c'è un'immagine reale */
.com-content-category-blog .blog-item:has(.item-image img) h2,
.blog .blog-item:has(.item-image img) h2{
  margin-top: -130px;          /*sale sopra l’immagine */
}


/* Link nel titolo */
.com-content-category-blog .blog-item h2 a,
.blog .blog-item h2 a{
  color: inherit;
  text-decoration: none;
  display: inline-block;
}

/* Hover fascia (opzionale) */
.com-content-category-blog .blog-item:hover h2,
.blog .blog-item:hover h2{
  background: rgba(0,0,0,.60);
}

/* ======================================================
   BLOG IMMAGINI CON RATIO FISSO (stabili con 2 o 3 colonne)
   ====================================================== */

.com-content-category-blog .blog-item .item-image,
.blog .blog-item .item-image{
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.com-content-category-blog .blog-item .item-image img,
.blog .blog-item .item-image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1) translateY(0);
  transition: transform 0.6s ease;
}

.com-content-category-blog .blog-item:hover .item-image img,
.blog .blog-item:hover .item-image img{
  transform: scale(1.08) translateY(-12px);
}

/* Mobile */
@media (max-width: 767px){
  .com-content-category-blog .blog-item h2,
  .blog .blog-item h2{
    padding: 18px 20px;
    font-size: 24px;
  }

  .com-content-category-blog .blog-item:has(.item-image img) h2,
  .blog .blog-item:has(.item-image img) h2{
    margin-top: -60px;
  }
}

/* ======================================================
   ARTICOLO SINGOLO – stesso effetto hover categoria immagine si muove passando sopra
   ====================================================== */

.com-content-article .item-image,
.com-content-article figure,
.com-content-article .bsgen-gallery a{
  overflow: hidden;
  display: block;
}

.com-content-article .item-image img,
.com-content-article figure img,
.com-content-article .bsgen-gallery img{
  width: 100%;
  height: auto;
  display: block;
  transform: scale(1) translateY(0);
  transition: transform 0.6s ease;
}

.com-content-article .item-image:hover img,
.com-content-article figure:hover img,
.com-content-article .bsgen-gallery a:hover img{
  transform: scale(1.08) translateY(-12px);
}


/* hitrec: titolo sezione (titolo categoria/gruppo del modulo) */
.blog-section-title{
  margin: 3rem 0 1.25rem;
  font-weight: 700;
}


/* hitrec: griglia blog (2/3/4 colonne) per .blog-items masonry-X */
/* (vale sia per categoria blog che per il tuo modulo, perché entrambi usano .blog-items) */
.blog-items{
  display: grid;
  gap: 24px;
}

/* Desktop */
.blog-items.masonry-2{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.blog-items.masonry-3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.blog-items.masonry-4{ grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Tablet */
@media (max-width: 991px){
  .blog-items.masonry-2,
  .blog-items.masonry-3,
  .blog-items.masonry-4{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile */
@media (max-width: 767px){
  .blog-items.masonry-2,
  .blog-items.masonry-3,
  .blog-items.masonry-4{
    grid-template-columns: 1fr;
  }
}

/* Regola per cambiare n° colonne nei modulo personalizzati */
.masonry-4{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
}
@media (max-width:991px){ .masonry-4{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:575px){ .masonry-4{grid-template-columns:1fr;} }

/* Regola per affiancare su 2 colonne blocchi descrizione in category galassia */
.galassia-features{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:40px;
  margin:30px 0;
}

.galassia-features h3{
  margin-bottom:12px;
}

.galassia-features ul{
  padding-left:18px;
  margin:0;
}

@media (max-width:768px){
  .galassia-features{
    grid-template-columns:1fr;
    gap:20px;
  }
}

/* =====================================================
   BLOG (categoria) - ultima riga centrata se dispari
   Mantiene la stessa larghezza delle card (3 colonne)
   ===================================================== */

/* Desktop: 3 colonne con Flex, ultima riga centrata */
@media (min-width: 992px){
  .com-content-category-blog .blog-items.masonry-3,
  .com-content-category-blog__items.blog-items.masonry-3{
    --gap: 24px;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--gap) !important;
    justify-content: center !important; /* <-- centra l'ultima riga */
  }

  .com-content-category-blog .blog-items.masonry-3 > .blog-item,
  .com-content-category-blog__items.blog-items.masonry-3 > .blog-item{
    flex: 0 0 calc((100% - (2 * var(--gap))) / 3) !important; /* 3 card uguali */
    max-width: calc((100% - (2 * var(--gap))) / 3) !important;
    margin: 0 !important;
  }
}

/* Tablet: 2 colonne (restano centrate se 1 solo item) */
@media (max-width: 991.98px) and (min-width: 576px){
  .com-content-category-blog .blog-items.masonry-3,
  .com-content-category-blog__items.blog-items.masonry-3{
    --gap: 24px;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--gap) !important;
    justify-content: center !important;
  }

  .com-content-category-blog .blog-items.masonry-3 > .blog-item,
  .com-content-category-blog__items.blog-items.masonry-3 > .blog-item{
    flex: 0 0 calc((100% - var(--gap)) / 2) !important;
    max-width: calc((100% - var(--gap)) / 2) !important;
  }
}

/* Mobile: 1 colonna */
@media (max-width: 575.98px){
  .com-content-category-blog .blog-items.masonry-3,
  .com-content-category-blog__items.blog-items.masonry-3{
    display: block !important;
  }
  .com-content-category-blog .blog-items.masonry-3 > .blog-item,
  .com-content-category-blog__items.blog-items.masonry-3 > .blog-item{
    max-width: 100% !important;
  }
}

/*Preview  testo articoli Regole */
.box-grigio-chiaro{
  background: #eee;
  padding: 10px 0 3 3;
  margin: 60px 0;
margin-top: -20px !important; margin-bottom: 15px !important; padding: 10px 10px 10px 10px !important; min-height: 300px !important"
}

.box-grigio-chiaro .page-content{
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 65px;
  padding-right: 65px;
}

/* 1) la riga (flex-wrap) deve stretchare i figli nella stessa riga */
.com-content-category-blog .blog-items.masonry-3{
  align-items: stretch !important;
}

/* 2) ogni card deve essere alta quanto la riga */
.com-content-category-blog .blog-items.masonry-3 > .blog-item{
  align-self: stretch !important;
  display: flex !important;
  flex-direction: column !important;
}

/* 3) il blocco sotto immagine/titolo deve diventare “colonna” */
.com-content-category-blog .blog-item .item-content{
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  height: 100% !important;
}

/* 4) SOLO il testo (box grigio) si stira */
.com-content-category-blog .blog-item .item-introtext{
  flex: 1 1 auto !important;
}

/* 5) il readmore resta in basso (se presente) */
.com-content-category-blog .blog-item .readmore{
  margin-top: auto !important;
}

/* ===== CATEGORY BLOG: stessa altezza del GRIGIO per riga (solo desktop) ===== */
@media (min-width: 992px){

  /* il tuo layout flex per centrare l'ultima riga */
  .com-content-category-blog .blog-items.masonry-3{
    align-items: stretch !important;  /* stesso "alto" per ogni riga */
  }

  /* ogni card: colonna e si stira */
  .com-content-category-blog .blog-items.masonry-3 > .blog-item{
    display: flex !important;
    flex-direction: column !important;
    align-self: stretch !important;
  }

  /* blocco contenuti della card: diventa colonna e prende altezza */
  .com-content-category-blog .blog-item .item-content{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  /* SOLO il grigio cresce */
  .com-content-category-blog .blog-item .item-introtext{
    flex: 1 1 auto !important;
    background: #eee !important;
    padding: 14px 16px !important;
  }

  /* readmore resta "in basso" */
  .com-content-category-blog .blog-item .readmore{
    margin-top: auto !important;
  }
}


/* =====================================================
   DNA ARTICOLI SINGOLI – layout uniforme sito
   BLOCCO UNICO PULITO
   ===================================================== */

:root{
  --article-maxw: 1200px;
  --article-pad-x: 64px;
  --article-text-size: 18px;
  --article-line: 28px;
}

/* contenitore articolo */
.com-content-article,
.item-page{
  box-sizing: border-box;
}

.com-content-article .page-content,
.item-page .page-content,
.com-content-article .page-content.article-body,
.item-page .page-content.article-body{
  max-width: var(--article-maxw);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--article-pad-x);
  padding-right: var(--article-pad-x);
  box-sizing: border-box;
}

/* intro articolo */
.item-introtext,
.box-grigio-chiaro{
  max-width: var(--article-maxw);
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--article-pad-x) !important;
  padding-right: var(--article-pad-x) !important;
  box-sizing: border-box;
}

/* fix box grigio chiaro */
.box-grigio-chiaro{
  background: #eee;
  padding-top: 10px !important;
  padding-right: 10px !important;
  padding-bottom: 10px !important;
  padding-left: 10px !important;
  margin-top: -20px !important;
  margin-bottom: 15px !important;
  min-height: 0 !important;
}

/* testo uniforme articoli */
.com-content-article,
.com-content-article p,
.com-content-article li,
.com-content-article span,
.item-page,
.item-page p,
.item-page li,
.item-page span{
  font-size: var(--article-text-size) !important;
  line-height: var(--article-line) !important;
  color: #666 !important;
  font-family: "Roboto", sans-serif !important;
}

/* annulla small/medium inline */
.com-content-article span[style*="font-size"],
.item-page span[style*="font-size"]{
  font-size: inherit !important;
  line-height: inherit !important;
}

/* paragrafi */
.com-content-article p,
.item-page p{
  margin: 0 0 14px 0 !important;
  text-align: justify;
}

/* immagini responsive */
.com-content-article img,
.item-page img{
  max-width: 100% !important;
  height: auto !important;
}

/* paragrafi con float */
.com-content-article .page-content p[style*="overflow: hidden"],
.item-page .page-content p[style*="overflow: hidden"],
.com-content-article .page-content.article-body p,
.item-page .page-content.article-body p{
  overflow: hidden;
}

/* immagini popup */
.article-image-popup{
  text-decoration: none !important;
  border: 0 !important;
}

.article-image-popup img{
  display: block;
}

/* immagine a sinistra */
.com-content-article .page-content img[style*="float: left"],
.item-page .page-content img[style*="float: left"],
.com-content-article .page-content .article-image-popup.article-inline-image-left,
.item-page .page-content .article-image-popup.article-inline-image-left{
  float: left !important;
  display: inline !important;
  width: 400px !important;
  max-width: 50% !important;
  height: auto !important;
  margin-top: 18px !important;
  margin-right: 18px !important;
  margin-bottom: 12px !important;
/*  margin-left: 20px !important;*/
}

/* immagine a destra */
.com-content-article .page-content img[style*="float: right"],
.item-page .page-content img[style*="float: right"],
.com-content-article .page-content .article-image-popup.article-inline-image-right,
.item-page .page-content .article-image-popup.article-inline-image-right{
  float: right !important;
  display: inline !important;
  width: 400px !important;
  max-width: 50% !important;
  height: auto !important;
  margin-top: 26px !important;
  margin-left: 18px !important;
  margin-bottom: 12px !important;
  margin-right: 10px !important;
}

/* video con testo a fianco */
.com-content-article .article-video-float,
.item-page .article-video-float,
.com-content-article .article-video-top,
.item-page .article-video-top{
  float: left !important;
  display: block !important;
  width: 420px !important;
  max-width: 48% !important;
  margin-top: 0 !important;
  margin-right: 18px !important;
  margin-bottom: 12px !important;
  margin-left: 0 !important;
  position: relative;
  text-align: left !important;
}

.com-content-article .article-video-top img,
.item-page .article-video-top img,
.com-content-article .article-video-float img,
.item-page .article-video-float img{
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}

/* se usi ancora row/col nel primo blocco, annulla gli effetti */
.article-top{
  margin-left: 0 !important;
  margin-right: 0 !important;
  display: block !important;
}

.article-top > [class*="col-"]{
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* play button video */
.article-video-play{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 70px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.article-video-play-triangle{
  width: 0;
  height: 0;
  border-top: 14px solid transparent;
  border-bottom: 14px solid transparent;
  border-left: 22px solid #fff;
  margin-left: 4px;
}

/* clearfix */
.article-clear{
  clear: both;
  height: 0;
  overflow: hidden;
}

/* ===== TABLET / SCHERMI MEDI ===== */
@media (max-width: 991.98px){
  :root{
    --article-pad-x: 24px;
  }

  /* video ancora affiancato */
  .com-content-article .article-video-float,
  .item-page .article-video-float,
  .com-content-article .article-video-top,
  .item-page .article-video-top{
    float: left !important;
    width: 320px !important;
    max-width: 46% !important;
    margin: 0 16px 12px 0 !important;
  }

  /* immagini ancora affiancate */
  .com-content-article .page-content img[style*="float: left"],
  .com-content-article .page-content img[style*="float: right"],
  .item-page .page-content img[style*="float: left"],
  .item-page .page-content img[style*="float: right"],
  .com-content-article .page-content .article-image-popup.article-inline-image-left,
  .com-content-article .page-content .article-image-popup.article-inline-image-right,
  .item-page .page-content .article-image-popup.article-inline-image-left,
  .item-page .page-content .article-image-popup.article-inline-image-right{
    display: inline !important;
    height: auto !important;
  }

  .com-content-article .page-content img[style*="float: left"],
  .item-page .page-content img[style*="float: left"],
  .com-content-article .page-content .article-image-popup.article-inline-image-left,
  .item-page .page-content .article-image-popup.article-inline-image-left{
    float: left !important;
    width: 250px !important;
    max-width: 40% !important;
    margin: 16px 14px 10px 14px !important;
  }

  .com-content-article .page-content img[style*="float: right"],
  .item-page .page-content img[style*="float: right"],
  .com-content-article .page-content .article-image-popup.article-inline-image-right,
  .item-page .page-content .article-image-popup.article-inline-image-right{
    float: right !important;
    width: 260px !important;
    max-width: 42% !important;
    margin: 18px 10px 10px 14px !important;
  }
}

/* ===== SOLO MOBILE VERO ===== */
@media (max-width: 575.98px){
  :root{
    --article-pad-x: 18px;
    --article-text-size: 17px;
    --article-line: 27px;
  }

  /* video mezzo schermo */
  .com-content-article .article-video-float,
  .item-page .article-video-float,
  .com-content-article .article-video-top,
  .item-page .article-video-top{
    float: left !important;
    width: 50% !important;
    max-width: 50% !important;
    margin: 0 14px 10px 0 !important;
  }

  /* immagini piccole ma ancora affiancate */
  .com-content-article .page-content img[style*="float: left"],
  .item-page .page-content img[style*="float: left"],
  .com-content-article .page-content .article-image-popup.article-inline-image-left,
  .item-page .page-content .article-image-popup.article-inline-image-left{
    float: left !important;
    width: 46% !important;
    max-width: 46% !important;
    margin: 14px 12px 8px 0 !important;
  }

  .com-content-article .page-content img[style*="float: right"],
  .item-page .page-content img[style*="float: right"],
  .com-content-article .page-content .article-image-popup.article-inline-image-right,
  .item-page .page-content .article-image-popup.article-inline-image-right{
    float: right !important;
    width: 48% !important;
    max-width: 48% !important;
    margin: 14px 0 8px 12px !important;
  }
}

/* ===== SOLO SCHERMI PICCOLISSIMI ===== */
@media (max-width: 420px){
  .com-content-article .article-video-float,
  .item-page .article-video-float,
  .com-content-article .article-video-top,
  .item-page .article-video-top,
  .com-content-article .page-content img[style*="float: left"],
  .com-content-article .page-content img[style*="float: right"],
  .item-page .page-content img[style*="float: left"],
  .item-page .page-content img[style*="float: right"],
  .com-content-article .page-content .article-image-popup.article-inline-image-left,
  .com-content-article .page-content .article-image-popup.article-inline-image-right,
  .item-page .page-content .article-image-popup.article-inline-image-left,
  .item-page .page-content .article-image-popup.article-inline-image-right{
    float: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 14px 0 !important;
  }
}


/* =====================================================
   PATCH 2026 – ALLINEAMENTO FLUIDO UNIFICATO
   Logo + Menu + Titoli + Body articolo
   ===================================================== */

:root{
  --site-maxw: 1200px;
  --site-pad-x: 24px;
  --article-maxw: var(--site-maxw);
  --article-pad-x: var(--site-pad-x);
}

/* colonna comune header + contenuti */
.container-below-top,
.container-header .grid-child,
.container-main > .grid-child,
.com-content-article > .page-header,
.item-page > .page-header,
.com-content-article .page-content,
.item-page .page-content,
.com-content-article .page-content.article-body,
.item-page .page-content.article-body,
.item-introtext,
.box-grigio-chiaro .page-content{
  max-width: var(--site-maxw) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--site-pad-x) !important;
  padding-right: var(--site-pad-x) !important;
  box-sizing: border-box !important;
}

/* header/logo */
.container-below-top{
  padding-top: 18px !important;
  padding-bottom: 14px !important;
}

.container-below-top .moduletable{
  margin: 0 !important;
}

#mod-custom228{
  margin: 30px 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

#mod-custom228 img{
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
}

/* barra menu */
.container-header{
  background: #2f3235 !important;
}

.container-header .container-nav{
  width: 100% !important;
}

/* titolo pagina e titolo articolo allineati al body */
.com-content-article > .page-header,
.item-page > .page-header{
  margin-bottom: 1.5rem !important;
}

.com-content-article > .page-header h1,
.com-content-article > .page-header h2,
.item-page > .page-header h1,
.item-page > .page-header h2{
  margin: 0 0 15px 0 !important;
}

/* box grigio coerente con nuova colonna */
.box-grigio-chiaro{
  max-width: var(--site-maxw) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* breakpoint fluidi unificati */
@media (max-width: 991.98px){
  :root{
    --site-pad-x: 24px;
  }
}

@media (max-width: 575.98px){
  :root{
    --site-pad-x: 18px;
  }
}

/* CSS Cavalluccio Menu Icone HOME*/
/* BOX AREA MARINA PROTETTA - correzione posizione */
.home-icon--amp .home-icon__content {
  position: relative;
  display: block !important;
  width: 100%;
  height: 100%;
  padding: 0 !important;
  box-sizing: border-box;
  text-align: center;
}

/* Cavalluccio */
.home-icon--amp .home-icon__icon--amp {
  position: absolute;
  top:-12px;
  left: 0;
  right: 0;

  display: flex;
  justify-content: center;
  align-items: center;

  margin: 0 !important;
  line-height: 0;
}

.home-icon--amp .home-icon__icon--amp img {
  display: block;
  height: 73px;
  width: auto;
}

/* Testo */
.home-icon--amp .home-icon__title--amp {
	    display: block;
 left: 0;
  right: 0;
  top: 42px;
    font-size: 22px;
    font-weight: bold;
    line-height: 1.15;
text-transform: capitalize;
    transition: all .3s ease-in-out;
	
position: absolute;
 /*  

  display: block;
  width: 100%;

  text-align: center;
  line-height: 1.05;

  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-decoration: none;*/
}


/* Righe testo */
.home-icon--amp .home-icon__title-top,
.home-icon--amp .home-icon__title-bottom {
  display: block;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: 900;
  text-decoration: underline;
}

/* Sposta solo la freccia del box Area Marina Protetta */
.home-icon--amp .home-icon__link--amp {
  translate: 0 -20px;
}
/* Area Marina mouse hover */
/* Cavalluccio bianco solo in mouse over - senza cambiare misure/posizioni */
.home-icon--amp:hover .home-icon__icon--amp img,
.home-icon--amp:focus .home-icon__icon--amp img,
.home-icon--amp:focus-visible .home-icon__icon--amp img,
.home-icon--amp.active .home-icon__icon--amp img,
.home-icon--amp.is-active .home-icon__icon--amp img {
  filter: brightness(0) invert(1);
}

/* MODULO CONTATTI Impostazioni */
 .mrc-contact-box {
  margin-top: 30px;
  margin-bottom: 30px;
}

.mrc-address {
  font-size: 24px !important;
  line-height: 1.3;
  margin: 0 0 20px 0;
  font-weight: 600;
}

.mrc-phone {
  display: inline-flex !important;
  align-items: center;
  gap: 12px;
  line-height: 1;
  font-weight: 700;
  text-decoration: none !important;
}

.mrc-phone-text {
  display: inline-block;
  font-size: 82px !important;
  line-height: 1 !important;
}

.mrc-ico i {
  font-size: 44px !important;
}