/* ===============================
   STILE TEMA BASE SPOT
   Autore: Studio SPOT
   Descrizione: Stili personalizzati del tema
   =============================== */


.SVILUPPO{
border:2px solid red;
}
.SVILUPPO-ALL *{
border:2px solid blue;
}
*{
z-index:0;
}
body{
overflow-x: hidden!important;
max-width: 100vw;
}
html{
overflow-x: hidden!important;
max-width: 100vw;    
font-size:10px;
font-weight:500;
}

a{
text-decoration:none;
transition:color 0.3s ease;
}
a:hover{
color:var(--color-primary);
transition:color 0.3s ease;
}
:root {
  --fonttitolo: "Yantramanav";
  --fonttesto: "Yantramanav";
  --color-primary: #083585;
  --color-primary-light: #2554A8;
  --color-primary-dark: #062255;
  --color-secondary: #0E7E48;
  --color-secondary-light: #2BA76B;
  --color-secondary-dark: #065C32;
  --color-neutral: #C9C9C9;
  --color-neutral-light: #F7F7F7;
  --color-neutral-dark: #767676;
}


/*UTILITY*/
.hero{
background-size:cover;
background-position:center;
}
.min-w-100{
min-width:100%;
}
.min-w-80{
min-width:80%;
}
.vh100{
min-height:100vh;
}
.vh70{
min-height:70vh;
height:70vh;
}
.vh60{
min-height:60vh;
height:60vh;
}
.vh50{
min-height:50vh;
}
.vh30{
min-height:30vh;
}
.vh20{
min-height:20vh;
}
.vh10{
min-height:10vh;
}
.vh5{
min-height:5vh;
}
.separatore{
display:block;
position:relative;
}
.container.container-big{
width: 1700px;
max-width: 90%;
}
/* Ratio 1500x1000 ≈ 3:2 */
.ratio-1500x1000{
--bs-aspect-ratio: 66.666%; /* (1000 / 1500) * 100 */
}
.container-titolo-outline{
position:relative;
}
.container-titolo-outline .titolo{
/*margin-top:60px;*/
}
.sez-img-txt{
background: linear-gradient(90deg,transparent 35%, var(--color-neutral-light) 35%);
}


/*TESTI*/
.titolo,.titolo *{
font-family:var(--fonttitolo);
}
.testo,.testo *{
font-family:var(--fonttesto);
}
.outline{
font-family:var(--fonttesto);
color:transparent;
font-weight:800;
line-height:0;
position: absolute;
top: -5%;
left: -5%;
z-index:-1;
}
.outline-primary{
-webkit-text-stroke: 1px var(--color-primary);
text-stroke: 1px var(--color-primary); /* futuro */
}
.outline-secondary{
-webkit-text-stroke: 1px var(--color-secondary);
text-stroke: 1px var(--color-secondary); /* futuro */
}
.outline-white{
-webkit-text-stroke: 1px #fff;
text-stroke: 1px #fff; /* futuro */
}
.XXL,.XXL *{
font-size:10.3rem;
}
.XL,.XL *{
font-size:6.3rem;
}
.L,.L *{
font-size:5rem;
}
.M,.M *{
font-size:3.8rem;
line-height: 4rem;
}
.S,.S *{
font-size:1.8rem;
line-height: 2.7rem;
}
.XS,.XS *{
font-size:1.5rem;
line-height: 2rem;
}
.extrabold,.extrabold *{
font-weight:700;
}
.bold,.bold *{
font-weight:600;
}
.normal,.normal *{
font-weight:500;
}
.light,.light *{
font-weight:300;
}

.S strong,.M strong,.L strong,.XL strong{
font-size: inherit;
font-weight: bolder;
}
.XL strong{
font-weight:800;
}
.L strong{
font-weight:700;
}
.M strong{
font-weight:600;
}
.S strong{
font-weight:500;
}

.text-left *{
text-align:left;
}
.text-center *{
text-align:center;
}
.text-right *{
text-align:right;
}
.caps,.caps *{
text-transform:uppercase;
}


/*COLORI*/
.black,.black *{
color:#000;
}
.white,.white *{
color:#fff;
}
.color-primary,.color-primary *{
color:var(--color-primary);
}
.color-primary-light,.color-primary-light *{
color:var(--color-primary-light);
}
.color-primary-dark,.color-primary-dark *{
color:var(--color-primary-dark);
}

.color-secondary,.color-secondary *{
color:var(--color-secondary);
}
.color-secondary-light,.color-secondary-light *{
color:var(--color-secondary-light);
}
.color-secondary-dark,.color-secondary-dark *{
color:var(--color-secondary-dark);
}

.color-neutral,.color-neutral *{
color:var(--color-neutral);
}
.color-neutral-light,.color-neutral-light *{
color:var(--color-neutral-light);
}
.color-neutral-dark,.color-neutral-dark *{
color:var(--color-neutral-dark);
}

/*PULSANTI*/
.pulsante {
display:block;
padding:10px 40px 12px;
font-family:var(--fonttesto);
text-decoration: none;
font-weight:500;
line-height:normal;
max-width:fit-content;
border-radius:2px;
transition:all 0.3s ease;
}
.pulsante:hover{
transition:all 0.3s ease;
}
.pulsante-1{
background-color:var(--color-primary);
color:#fff;
}
.pulsante-1:hover{
background-color:var(--color-secondary);
color:#fff;
}
.pulsante-2{
background-color:var(--color-secondary);
color:#fff;
}
.pulsante-2:hover{
background-color:var(--color-primary);
color:#fff;
}
/*SFONDI*/

/*SOCIAL*/
.icona-social{
position:relative;
}
.icona-social:before {
}

.icona-social a {
width: 100%;
height: 100%;
}

.icona-social img{
transition:all 0.3s ease;
}
.icona-social:hover img{
transition:all 0.3s ease;
}


/*GALLERY*/

/* ===== Masonry base con colonne CSS ===== */
.masonry {
  column-count: 3;          /* 3 colonne su desktop */
  column-gap: 1.5rem;       /* spazio tra le colonne */
}

.masonry-item {
  display: block;
  break-inside: avoid;      /* evita che l'immagine venga spezzata tra colonne */
  margin-bottom: 1.5rem;
}

.masonry-item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.75rem;
  object-fit: cover;
}


/*HEADER*/
.header{
z-index:999;
position: absolute;
background: #fff;
}
.fascia-alta-header{
background-color:#fff;
border-bottom:1px solid var(--color-neutral);
padding:5px 0;
}
.contenuti-fascia-alta{
gap:15px;
}
.contatti-fascia-alta,.lingua-social-fascia-alta{
display:flex;
flex-direction:row;
gap:0;
}
.contatti-fascia-alta .blur-contatti{
margin:0;
}
.contatti-fascia-alta .blur-contatti:nth-child(1),.lingua-header{
padding-right:15px;
border-right:1px solid var(--color-secondary);
}
.contatti-fascia-alta .blur-contatti:nth-child(2),.social-header{
padding-left:15px;
border-left:1px solid var(--color-secondary);
}
.social-header{
padding-left:15px;
}
.social-header{
margin: auto 0;
}
.social-header .container-social .icona-social{
max-width:fit-content;
}
.social-header img{
max-height: 18px;
width: auto;
}
.social-header .icona-youtube img {
height: 15px;
}
.container.container-big.main-content-header{
padding-top:25px;
}
.header-desktop{
display: flex;
flex-wrap: wrap;
flex-direction: row;
align-items: center;
padding: 0;
position:relative;
}
.container-logo-header{
margin:auto;
}
.logo-header {
max-width: 170px!important;
}
.menu-header {
display: flex;
align-items: center;
justify-content: space-around;
gap: 0;
margin: 0 0 0 auto;
padding: 0;
width: calc(100% - 350px);
}

/* ==========================
   MENU HEADER BASE
   ========================== */

/* LI di primo livello */
.menu-header > li {
position: relative;
list-style: none;
border:solid #fff;
border-width:0  0.5px 0 0.5px ;
height: 100%;
width: 100%;
display: flex;
}
.menu-header > li:last-child{
border-width:0 0 0 0.5px;
}
/* Link primo livello */
.menu-header > li > a {
display: flex;
text-decoration: none;
color: #fff;
background:var(--color-primary);
letter-spacing: 2px;
margin: auto;
width: 100%;
min-height:60px;
height: 100%;
align-items: center;
justify-content: center;
transition: all .2s ease;
}
.menu-header > li.current-menu-item  > a{
background:var(--color-neutral-light);
color: var(--color-primary);
}

.menu-header > li > a:hover,.menu-header > li.current-menu-item  > a:hover {
color: #fff;
background:var(--color-secondary);
transition: all 0.3s ease; 
}
.menu-header > .mega-menu >a:after{
content:">";
display: flex;
margin-left: 5%;
transform: scaleX(1.8) rotate(90deg);
font-weight: 300;
margin-top: 2px;
color: inherit;
line-height: 10px;
transition: transform 0.2s ease;
}
.menu-header > .mega-menu:hover >a:after{
transform: scaleX(1.8) rotate(270deg);
font-weight: 300;
margin-top: 0;
transition: transform 0.2s ease;
}

/* =========================================
   MEGA MENU — STRUTTURA APERTURA/CHIUSURA
   ========================================= */

/* Il <li> NON deve contenere fisicamente il pannello */
.menu-header > li.mega-menu {
  position: static; /* fondamentale */
}

/* Pannello overlay sganciato */
.menu-header > li.mega-menu > .sub-menu {
position: absolute;
  /* ancorato all'header */
top: 100%;
left:0;
right:0;
width: 100vw;
  /* stato chiuso */
opacity: 0;
visibility: hidden;
pointer-events: none;
transition: 
opacity .25s ease,
transform .25s ease,
visibility 0s linear .25s;
z-index: 999;
}

/* Apertura corretta */
/* Aperto quando hover su LI */
.menu-header > li.mega-menu:hover > .sub-menu,
.menu-header > li.mega-menu > .sub-menu:hover {
opacity: 1;
visibility: visible;
pointer-events: auto;
background: var(--color-neutral-light);
transition:
opacity .25s ease,
visibility 0s;
}

/* ESTETICA BASE*/
.menu-header > li.mega-menu > .sub-menu {
  padding: 60px 3%;
  box-shadow: 0 20px 40px rgba(0,0,0,.08);
  display: flex;
  justify-content: center; /* centra le colonne */
  align-items: flex-start;
}
.menu-header > li.mega-menu > .sub-menu > li {
  flex: 0 0 16.6665%;
  max-width: 16.6665%;
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.menu-header > li.mega-menu > .sub-menu > li > a,.menu-header > li.mega-menu > .sub-menu > li > a :not(p):not(p *) {
font-size: 3.4rem;
font-weight: 700;
color: var(--color-primary);
margin-bottom: 20px;
text-decoration: none;
padding: 0;
}
.main-cat-menu > a{
text-transform:uppercase;
}


.menu-header > li.mega-menu > .sub-menu > li > a:hover {
color: var(--color-secondary);
}

.menu-header > li.mega-menu > .sub-menu > li > ul.sub-menu {
padding-left:0;
}
.menu-header > li.mega-menu > .sub-menu > li > .sub-menu li {
list-style: none;
margin-bottom: 10px;
}

.menu-header > li.mega-menu > .sub-menu > li > .sub-menu li a {
font-size: 1.8rem;
color: var(--color-secondary);
text-decoration: none;
transition: color .2s ease;
display:flex;
align-items: center;
}
.menu-header > li.mega-menu > .sub-menu > li > .sub-menu li a:before{
content:"+";
color: var(--color-primary);
margin-right:10px;
font-weight: 300;
font-size:3rem;
transition:all 0.3s ease;
}

.menu-header > li.mega-menu > .sub-menu > li > .sub-menu li a:hover {
  color: var(--color-primary);
}
.menu-header > li.mega-menu > .sub-menu > li > .sub-menu li a:hover:before {
margin-right:20px;
transition:all 0.3s ease;
}
/* Immagine categoria */
.img-cat-menu{
padding-right:25px!important;
}
.img-cat-menu a{
margin-bottom:0!important;
}
.img-cat-menu img{
max-width:100%;
}

@media (max-width: 1450px) {
    .menu-header .img-cat-menu{
    display:none!important;
    }
    .menu-header > li.mega-menu > .sub-menu > li{
    flex: 0 0 33.333%;
    max-width: 33.333%;
    }
}

/*HEADER MOBILE*/
.header-mobile{
display:none;
}

.logo-header-mobile{
max-width:150px!important;
}
.apri-menu-lat,.chiudi-menu-lat{
cursor:pointer;
}
.hamburger *{
transition:all 0.3s ease;
}
.hamburger{
display:flex;
flex-direction:column;
justify-content:space-between;
align-items: flex-end;
width:32px;
height:18px;
}
.hamburger .linea{
background:var(--color-primary);
width:100%;
height:2px;
}
.hamburger .linea.linea-mid{
max-width:80%;
}
.hamburger:hover .linea.linea-mid{
max-width:100%;
}
/*MENU LATERALE*/
.container-menu-lat{
display:flex;
flex-direction:column;
align-items: flex-start;
position:fixed;
top:0;
right:0;
bottom:0;
width:100%;
max-width:0;
height:100vh;
background-color:#fff;
  /* CHIUSURA: prima fade-out interni (0s), poi chiudi dopo 0.25s */
transition: max-width .30s ease .25s, padding   .30s ease .25s;
z-index:100;
overflow:hidden;
padding:0; /* chiuso = nessun padding */
box-shadow: 0 0px 20px #0000003d;
}

.container-menu-lat.aperto{
padding:6rem 3rem 9rem;
max-width:100vw;
/* APERTURA: nessun delay, si apre subito */
transition: max-width .30s ease 0s, padding   .30s ease 0s;
}
/* --- ELEMENTI INTERNI: fade-in dopo l’apertura, fade-out prima della chiusura --- */
/* Elenco degli “elementi contenuto” che vuoi far sfumare */
.container-menu-lat .chiudi-menu-lat, .container-menu-lat .logo-menu-lat, .container-menu-lat .navigazione-lat, .container-menu-lat .social-menu-lat{
opacity:0;
transform: translateY(6px);        /* leggero slide piacevole */
transition: opacity   .22s ease 0s,          /* CHIUSURA: subito a 0 */
transform .22s ease 0s;
}

/* In stato aperto: comparsa dopo che il pannello è entrato (delay ~0.20-0.25s) */
.container-menu-lat.aperto .chiudi-menu-lat, .container-menu-lat.aperto .logo-menu-lat, .container-menu-lat.aperto .navigazione-lat,.container-menu-lat.aperto .social-menu-lat{
opacity:1;
transform: translateY(0);
transition:opacity   .22s ease .20s,/* APERTURA: ritarda un po’ per aspettare il pannello */transform .22s ease .20s;
}


.container-logo-chiudi{
width:100%;
display:flex;
flex-direction:row;
align-items: center;
justify-content: space-between;
margin-bottom: 35px;
}

.chiudi-menu-lat *{
transition:all 0.3s ease;
}
.chiudi-menu-lat{
display: flex;
flex-direction: row;
align-items: center;
max-width: fit-content;
gap: 20px;
}
.chiudi-menu-lat .chiudi{
display:block;
height: 23px;
width: 23px;
background: linear-gradient(to top left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) calc(50% - 2px), #000 50%, rgba(0, 0, 0, 0) calc(50% + 2px), rgba(0, 0, 0, 0) 100%), linear-gradient(to top right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) calc(50% - 2px), #000 50%, rgba(0, 0, 0, 0) calc(50% + 2px), rgba(0, 0, 0, 0) 100%)
}
.chiudi-menu-lat:hover .chiudi{
transform:rotate(90deg);
}
.logo-menu-lat{
max-width:250px;
margin: 10px auto 10px 0;
}

/* =========================
LAYOUT GENERALE
========================= */

.col-menu-lat{
  display:flex;
  flex-direction:row;
  gap:60px; /* più respiro tra le due colonne */
  flex-wrap:nowrap;
  width:100%;
}

/* colonna sinistra */
.navigazione-lat:first-child{
  width: fit-content;
  margin-right: auto;
}

/* colonna destra */
.navigazione-lat:last-child{
  width: 65%;
}

/* =========================
MENU PRINCIPALE SINISTRA
========================= */

.navigazione-lat ul{
  display:flex;
  flex-direction:column;
  align-items: flex-start;
  gap:25px;
}

.navigazione-lat a{
  display:block;
  color:var(--color-primary);
  font-size:2.6rem;
  font-weight:700;
  line-height:1.2;
}

.navigazione-lat a:hover{
  color:var(--color-secondary);
}

/* =========================
BLOCCHI CATEGORIA (CARD)
========================= */

.navigazione-lat-menu-categorie .menu-mobile > li.img-cat-menu{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:40px; /* spazio tra immagine e contenuto */
  margin-bottom:60px; /* spazio tra blocchi */
}
.navigazione-lat-menu-categorie .menu-mobile > li.img-cat-menu:last-child{
margin-bottom:0;
}

/* =========================
IMMAGINE
========================= */

.img-cat-menu > a{
  flex:0 0 40%; /* dimensione fissa colonna immagine */
  display:block;
}

.img-cat-menu img{
  width:100%;
  height:auto;
  display:block;
}

/* =========================
CONTENUTO TESTO
========================= */

.img-cat-menu > .sub-menu{
  flex:1;
  padding:0;
  margin:0;
}

/* rimuovo il livello inutile visivamente */
.img-cat-menu > .sub-menu > li{
  list-style:none;
}

/* =========================
TITOLO + LABEL
========================= */

.main-cat-menu > a{
  display:flex;
  flex-direction:column;
  gap:5px;
  text-decoration:none;
}

/* LINEA */
.main-cat-menu .linea{
  font-size:1.2rem;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--color-primary);
  margin:0;
}

/* TITOLO */
.main-cat-menu > a:not(.linea){
  font-size:3.2rem;
  font-weight:700;
  color:var(--color-primary);
  text-transform:uppercase;
  line-height:1.1;
}

/* =========================
SOTTOCATEGORIE
========================= */

.main-cat-menu > .sub-menu{
  margin-top:15px;
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:0;
}

.main-cat-menu > .sub-menu li{
  list-style:none;
}

/* link figli */
.main-cat-menu > .sub-menu li a{
  display:flex;
  align-items:center;
  font-size:1.8rem;
  color:var(--color-secondary);
  text-decoration:none;
  transition: all .2s ease;
}

/* icona + */
.main-cat-menu > .sub-menu li a:before{
  content:"+";
  color:var(--color-primary);
  margin-right:10px;
  font-size:2.2rem;
  font-weight:300;
}

/* hover */
.main-cat-menu > .sub-menu li a:hover{
  color:var(--color-primary);
}

.menu-categorie-mobile {
    max-height: 80vh;
    overflow-y: scroll;
}

/* CHROME, EDGE, SAFARI */
.menu-categorie-mobile::-webkit-scrollbar {
  width: 8px;
}

.menu-categorie-mobile::-webkit-scrollbar-track {
  background: var(--color-neutral-light);
}

.menu-categorie-mobile::-webkit-scrollbar-thumb {
  background: var(--color-primary);
  border-radius: 10px;
  transition: background .2s ease;
}

.menu-categorie-mobile::-webkit-scrollbar-thumb:hover {
  background: var(--color-secondary);
}

/* FIREFOX */
.menu-categorie-mobile {
  scrollbar-width: thin;
  scrollbar-color: var(--color-primary) var(--color-neutral-light);
}



.navigazione-lat .prodotti-menu-mobile{
display:none;
}

.navigazione-lat .prodotti-menu-mobile a:before {
content: "+";
margin-right:5px;
}
.navigazione-lat.navigazione-lat-menu-categorie .prodotti-menu-mobile{
display:none;    
}
.navigazione-lat.navigazione-lat-menu-categorie .prodotti-menu-mobile a:before {
content: "<";
transform: scaleX(1.8);
margin-right:5px;
font-weight:300;
}


.social-menu-lat{
margin-top:50px;
display:none;
flex-direction: column;
align-items: center;
width: 100%;
margin-right: 0;
}

.social-menu-lat .container-social{
justify-content: center;
}
.social-menu-lat .container-social img{
max-width:30px;
}
.social-menu-lat .testo.S{
font-size:2rem;
}

/*LINGUA*/
.fascia-alta-header div.skiptranslate.goog-te-gadget{
display:none!important;
}
ul.ui-sortable{
display:flex;
gap:5px;
margin-bottom:3px!important;
}
#flags{
width:fit-content!important;
}
#flags li{
max-height:16px!important;
}
#flags a {
background: transparent !important;
position:relative;
}
#flags a:after {
content: "";
display: flex;
font-family: var(--fonttesto);
letter-spacing: 1px;
color: var(--color-primary);
font-size:14px;
text-transform: uppercase;
position: absolute;
top: 6px;
bottom: auto;
height: auto;
width: 100%;
line-height: 11px;
margin: auto;
text-align: center;
justify-content: center;
transition:all 0.3s ease;
z-index:1;
}
#flags a:hover:after {
color: var(--color-secondary);
transition:all 0.3s ease;
}
#flags li#English a:after {
content: "EN";
}
#flags li#Italian a:after {
content: "IT";
}
/*FOOTER*/
.container-footer{
background:var(--color-neutral-light);
}

img.logo-footer.img-fluid{
max-width:250px;
}
.blur-contatti{
display:flex;
flex-direction:row;
width:100%;
margin-bottom:15px;
}
.blur-contatti:last-child{
margin-bottom:0px;
}
.blur-contatti .icona-contatti{
min-width: 18px;
width: 18px;
margin-right: 18px;
margin-top: 5px;
}
ul.menu-footer {
display: flex !important;
flex-direction:column;
width: fit-content;
margin: 0;
padding: 0;
}

.menu-footer > li {
break-inside: avoid;
-webkit-column-break-inside: avoid;
margin-bottom: .5rem;
list-style: none;            /* equivalente a list-unstyled */
width: fit-content;
}

.menu-footer *{
text-decoration:none;
color:var(--color-primary);
font-size:1.8rem;
font-weight:500;
transition:all 0.3s ease;
}
.menu-footer *:hover{
color:var(--color-secondary);
transition:all 0.3s ease;
}



.container-social{
display:flex;
flex-direction:row;
width:100%;   
gap:15px;
}

footer .container-social .icona-social{
max-width:fit-content;
}
footer .icona-social img{
max-height: 20px;
width: auto;
}
footer .icona-social.icona-youtube img{
max-height: 15px;
width: auto;
}

footer .icona-social img{
transition:all 0.3s ease;
}
footer .icona-social:hover img{
transition:all 0.3s ease;
}


.fascia-bassa-footer{
padding:15px 35px;
background:var(--color-primary);
}
.fascia-bassa-footer .S *,.fascia-bassa-footer .S{
font-size: 1.5rem;

}

/* necessario per l'ancoraggio */
footer {
    position: relative;
}

.container-pulsante-back-to-top {
position: fixed;
right: 50px;
bottom: 50px;
width: 50px;
height: 50px;
background: var(--color-secondary);
border: 0;
border-radius: 3px;
display: flex;
cursor: pointer;
z-index: 10;
opacity: 0;
pointer-events: none;
transform: translateY(20px);
transition: opacity .3s ease, background .3s ease;
}
.container-pulsante-back-to-top:hover{
background: var(--color-primary);
}
.container-pulsante-back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
}

/* stato bloccato sopra il footer */
.container-pulsante-back-to-top.is-stopped {
    position: absolute;
    bottom: calc(100% + 50px);
}

.container-pulsante-back-to-top svg {
    margin: auto;
    fill: #fff;
}


/*PAGINE*/
/*HOME*/
.slider-hero {
    position: relative;
    overflow: hidden;
}

.slider-hero .slide-hero {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.6s ease;
}

/* slide attiva */
.slider-hero .slide-hero.attiva {
    opacity: 1;
    z-index: 2;
}    
.video-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.slider-apertura {
    position: relative;
    overflow: hidden;
}

.contenuto-slider {
    position: relative;
    z-index: 2;
}
.slider-apertura .slider-dots .slider-dot.is-active,.slider-apertura .slider-dots .slider-dot{
background-color:#fff;
}
.container-slider-dots{
position: absolute;
bottom: 50px;
z-index: 99999;
display: block;
left: 0;
right: 0;
}

/*CARTE*/
.carta-loop-cat,.carta-loop-news{
display:flex;
flex-direction:column;
position:relative;
}
.carta-loop-cat:after,.carta-loop-news:after{
content:"";
display:flex;
width:100%;
height:5px;
background-color:var(--color-secondary);
border-radius:50px;
margin-top:20px;
}
.carta-loop-cat  .img-carta,.carta-loop-news  .img-carta{
margin-bottom:20px;
}
.carta-loop-cat:hover  .img-carta-bg,.carta-loop-news:hover  .img-carta-bg{
transform: translateY(-10px);
transition:all 0.3s ease;
}
.carta-loop-cat  .img-carta-bg,.carta-loop-news  .img-carta-bg{
transition:all 0.3s ease;
}
.carta-loop-cat .titolo{
display:flex;
}
.carta-loop-cat .titolo:after{
content:'+';
max-width:20%;
display:flex;
color:var(--color-secondary);
margin-left:auto;
font-weight: 300;
transition:all 0.3s ease;
}
.carta-loop-cat:hover .titolo:after{
transform:rotate(90deg);
}
.img-carta-bg {
width: 100%;
aspect-ratio: 35 / 26;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
margin-bottom:15px;
}

.sez-3-col{
background:var(--color-primary);
}
.container-titolo-numero{
display: flex;
align-items: center;
justify-content: center;
min-height:200px;
}
.container-titolo-numero .XXL.outline {
opacity:0.3;
font-size:20rem;
top:0;
left:-50px;
right:auto;
bottom:0;
margin:auto;
}
.container-titolo-numero .M{
line-height:3.4rem;
margin-left:20px;
}
/*CAROSELLO CARTE*/
.slider-dots {
    width: 100%;
    z-index:99999;
}

/* Singolo puntino */
.slider-dots .slider-dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border-radius: 50%;
    border: none;
    background-color: var(--color-primary);
    cursor: pointer;
    transition: 
        background-color 0.3s ease,
        transform 0.3s ease;
}

/* Puntino attivo */
.slider-dots .slider-dot.is-active {
    background-color: var(--color-primary);
    transform: scale(1.4);
}

/* Hover / focus */
.slider-dots .slider-dot:hover,
.slider-dots .slider-dot:focus-visible {
    background-color: var(--color-primary);
    outline: none;
}

/* ================================
   SPAZIO TRA LE CARD – SLIDER NEWS
   ================================ */

.slider-news .slide {
    padding-right: 3rem; /* equivalente a g-5 */
}

.slider-news .slide:last-child {
    padding-right: 0;
}
.slider-news .slider-track {
    margin-right: -3rem;
}
/* Spazio maggiore su mobile */
@media (max-width: 767px) {
    .slider-dots {
        gap: 12px;
    }
}



/*PRODUZIONE*/
.txt-2-col{
column-count:2;
column-gap: 5%;
}

/*WOOCOMMERCE*/
.woocommerce .woocommerce-notices-wrapper .woocommerce-message {
border: 2px solid #93B22A;
border-radius: 5px;
padding: 15px 20px;
background:transparent;
max-width:90%;
margin:auto;
font-size:1.2rem;
}
.woocommerce-message::before{
top: 1.5em;
left: 0.5em; 
}

.woocommerce .woocommerce-message .button{
color: #fff;
border: 2px solid #93B22A;
padding:8px 15px;
background-color: #93B22A;
transition: all 0.3s ease;
}
.woocommerce .woocommerce-message .button:hover{
color: #93B22A;
background-color: #fff;
transition: all 0.3s ease;
}
/*LOOP PRODOTTI*/
.carta-loop-prodotto.sez-img-txt{
background: linear-gradient(90deg, transparent 15%, var(--color-neutral-light) 15%);
}

/*LAYOUT PRODOTTO E CARRELLO*/
/*REGOLE STILE GENERALE*/
.container-contenuti-apertura{
background: var(--color-neutral-light);
}
.product-slider {
  max-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.product-slider-main {
  position: relative;
  flex: 1;
  overflow: hidden;
}

.product-slider-main .slider-track {
  display: flex;
  align-items:center;
  transition: transform .4s ease;
  height: 100%;
}

.product-slider-main .slide {
  min-width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-slider-main img {
  max-height: 100vh;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Puntini */
.product-slider-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 15px 0;
}

.product-slider-dots .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ccc;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}

.product-slider-dots .dot.active {
  background: var(--color-primary);
  transform: scale(1.2);
}
/* Thumbnails */
.product-slider-thumbs {
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 15px 0;
}

.product-slider-thumbs .thumb {
  cursor: pointer;
  opacity: .6;
  transition: opacity .2s ease;
}

.product-slider-thumbs .thumb.active {
  opacity: 1;
}

.product-slider-thumbs img {
  height: 70px;
  width: auto;
}

.tax-product_cat .sez-cat-prod .XXL.outline{
line-height:9rem;
top:-185%;
}

.apertura-prodotto .XXL.outline{
position: relative;
line-height: 12rem;
font-size: 11rem;
margin-bottom: -45px;
}
.contenuti-apertura, .dati-tecnici-apertura{
max-width:650px;
}
.separatore-contenuti-apertura{
background:#fff;
height:7px;
margin: 3rem 0;
}



.container-loop-sezioni > .sez-img-txt:first-child{
margin-top:75px;
}
.container-loop-sezioni > .sez-img-txt{
margin-bottom:75px;
}
.container-loop-sezioni > .sez-img-txt:last-child{
margin-bottom:0;
}

.container-loop-sezioni > .sez-img-txt .col-txt{
display: flex;
flex-direction: column;
}

/*SEZIONI DISPARI (1,3,5...)*/
.container-loop-sezioni > .sez-img-txt:nth-child(odd) .col-img{
order: 1 !important;
}
.container-loop-sezioni > .sez-img-txt:nth-child(odd) .col-txt{
order: 2 !important;
align-items: flex-start;
text-align: left;
}

/* SEZIONI PARI (2,4,6...) */
.container-loop-sezioni > .sez-img-txt:nth-child(even){
 background: linear-gradient(270deg,transparent 35%, var(--color-neutral-light) 35%);
}

.container-loop-sezioni > .sez-img-txt:nth-child(even) .col-img{
order: 2 !important;
}
.container-loop-sezioni > .sez-img-txt:nth-child(even) .col-txt{
order: 1 !important;
align-items: flex-end;
text-align: right;
}

@media (max-width: 991px) {
    .container-loop-sezioni > .sez-img-txt:nth-child(even) .col-img{
    order: 1 !important;
    }
    .container-loop-sezioni > .sez-img-txt:nth-child(even) .col-txt{
    order: 2 !important;    
    }
    .carta-loop-prodotto.sez-img-txt{
    background:var(--color-neutral-light);
    }
}






/*PULSANTI WOOCOMEMRCE*/
.container-pulsante-add-to-cart button.single_add_to_cart_button.button, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt{
font-family: var(--fonttesto);
font-size:1.5rem;
padding: 5px 34px 7px;
text-decoration: none;
font-weight: 500;
line-height: normal;
max-width: fit-content;
letter-spacing: 0;
text-transform: none;
color: #fff;
border: 2px solid #93B22A;
background-color: #93B22A;
border-radius:0;
transition: all 0.3s ease;
}
.container-pulsante-add-to-cart button.single_add_to_cart_button.button:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:hover{
color:#93B22A;
background-color: transparent;
transition: all 0.3s ease;
}

:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt{
 max-width: 100%!important;
}
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) .container-pulsante-add-to-cart button.button.alt.disabled{
background-color: #93B22A;
}

.woocommerce-cart table.cart td.actions .coupon .input-text{
padding:10px 10px 8px;
min-width:171px;
}
.container-pulsante-add-to-cart .variations{
width: 100%;
display: flex;
flex-direction: column;
gap:15px;
align-items: flex-end;
font-size: 14px;
margin-bottom:20px;
}
.container-pulsante-add-to-cart .variations tr{
display:flex;
flex-direction:column;
}
.container-pulsante-add-to-cart .variations select{
min-width:100%;
}


.woocommerce .container-pulsante-add-to-cart .quantity .qty{
display:none;
}
.container-pulsante-add-to-cart .quantity{
display:none;
}

.container-pulsante-add-to-cart .woocommerce-Price-amount.amount{
font-family: var(--fonttitolo);
font-weight: 300;
font-size: 3rem;
display:block;
margin-bottom:20px;
}
.container-pulsante-add-to-cart .reset_variations{
color:#93B22A;
}
.carrello-checkout-custom .restore-item a,.carrello-checkout-custom .product-name a{
color:#93B22A;
}


.carrello-checkout-custom *{
font-size:1.4rem;
}

.woocommerce-info{
border-color:#93B22A;
}
.woocommerce-info::before{
color:#93B22A; 
}
.woocommerce-info a,.woocommerce-privacy-policy-link{
color:#93B22A; 
}
:focus-visible{
border-color:#93B22A!important; 
}
.woocommerce-error a {
    color: #b81c23;
}


/*CONTATTI*/
.sezione-mappa {
  position: relative;
  overflow: hidden;
}

.mappa-wrapper {
  position: absolute;
  inset: 0;
}

.mappa-wrapper iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 120vw;
  height: 120vh;
  transform: translate(-50%, -50%);
  border: 0;
}


.container-contatti .container-social .icona-social{
max-width:fit-content;
}
.container-contatti .icona-social img{
max-height: 30px;
width: auto;
}

.container-contatti .icona-social img{
filter:brightness(1);
transition:all 0.3s ease;
}
.container-contatti .icona-social:hover img{
filter:brightness(0);
transition:all 0.3s ease;
}
.container-contatti .icona-social.icona-tripadvisor{
display:none;
}

.form-contatto .ff-default .ff-el-form-control{
border-radius:2px;
padding:16px;
font-size:1.2rem;
border:1px solid var(--color-neutral);
}
.form-contatto .ff-default .ff-el-form-control:focus{
border:1px solid #000;
}
.form-contatto .fluentform .ff-el-group.checkbox{
margin-bottom:0;
font-size:1.2rem;
}
.form-contatto .pulsante.pulsante-form{
border-width:0!important;
margin-left:auto;
}

.form-contatto .container-radio .ff-el-input--content{
display: flex;
justify-content: space-between;
accent-color:var(--color-primary);
}
.form-contatto .container-radio .ff-el-input--content span{
color:var(--color-primary);
font-size:2.1rem;
margin-left:6px;
}
/*404*/
.mod-404 .XL,.mod-404 .XL * {
    font-size: 11rem;
}
.mod-404 .M,.mod-404 .M * {
    font-size: 2.7rem;
}
/*RESIZE*/

/*XXL*/
@media (max-width: 1400px) {

}

/*XL*/
@media (max-width: 1200px) {
    .header-desktop{
    display:none;
    }
    .header-mobile{
    display:block;
    }
    .carta-loop-cat .L,.carta-loop-news .L{
    font-size:3rem;
    }
    .container-titolo-numero .XXL.outline{
    font-size:12rem;
    }
    .woocommerce ul.products.columns-2 li.product, .woocommerce-page ul.products.columns-2 li.product{
    width:100%;
    }
}
/*LG*/
@media (max-width: 992px) {
    .container-titolo-numero{
    flex-direction:column;
    text-align:center;
    }
    .container-titolo-numero .M{
    margin-left:0;
    }
    .container-titolo-numero .XXL.outline {
    left: 0;
    right: 0;
    position: relative;
    top: 30px;
    margin: 0;
    bottom: 0;
    }
}

/*MD*/
@media (max-width: 768px) {
  .container-titolo-numero .M {
    line-height: 2.9rem;
    font-size: 2.7rem; 
  }
  .container-titolo-numero.XL {
    font-size: 5rem;
    }
  .container-titolo-numero .XXL.outline{
    font-size:9rem;
    top: 20px;
  }
    .contatti-fascia-alta{
    display:none;
    }
    .lingua-social-fascia-alta{
    margin-left:auto;
    }
    .container-menu-lat.aperto{
    max-width:100%;
    }
    .social-menu-lat{
    display:flex;
    }
    .img-cat-menu > a {
    display: none;
    }
    .txt-2-col{
    column-count:1;
    }
}
/*SM*/
@media (max-width: 576px) {
    .XXL, .XXL *,.apertura-prodotto .XXL.outline {
    font-size:clamp(23px, 13vw, 8.3rem);
    }
    .tax-product_cat .sez-cat-prod .XXL.outline {
    line-height: 5rem;
    top: -105%;
    }
    .navigazione-lat .prodotti-menu-mobile{
    display:block;
    }
    .navigazione-lat.navigazione-lat-menu-categorie .prodotti-menu-mobile{
    display:block;    
    }
    .navigazione-lat.navigazione-lat-menu-categorie{
    width: 100%;
    min-width: 100%;
    max-width: 10vw;
    position: absolute;
    background: #fff;
    padding: 0 3rem;
    left: 0;
    right: 0;
    transform: translate(100%, 0)!important;
    }
    .navigazione-lat.navigazione-lat-menu-categorie.aperto{
    width: 100%;
    min-width: 100%;
    max-width: 10vw;
    position: absolute;
    background: #fff;
    padding: 0 3rem;
    left: 0;
    right: 0;
    transform: translate(0, 0)!important;
    }
    .contenuti-apertura, .dati-tecnici-apertura {
    padding: 0 !important;
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
    }
}
@media (max-width: 450px) {
    .sez-3-col .col-4{
    width: 100%;
    }
    .tax-product_cat .sez-cat-prod .XXL.outline {
    line-height: 5rem;
    top: -65%;
    }
}


/* === ANIMAZIONI === */
/* === BASE === */
.anim {
  opacity: 0;
  transition: all .7s cubic-bezier(0.25, 0.1, 0.25, 1);
  will-change: transform, opacity;
  transition-delay:0.2s;
}

/* === FADE UP (sale verso l’alto) === */
.fade-up {
  transform: translateY(40px);
}
.fade-up.visibile {
  opacity: 1;
  transform: translateY(0);
}

/* === FADE DOWN (scende dall’alto) === */
.fade-down {
  transform: translateY(-40px);
}
.fade-down.visibile {
  opacity: 1;
  transform: translateY(0);
}

/* === FADE LEFT (entra da sinistra) === */
.fade-left {
  transform: translateX(-40px);
}
.fade-left.visibile {
  opacity: 1;
  transform: translateX(0);
}

/* === FADE RIGHT (entra da destra) === */
.fade-right {
  transform: translateX(40px);
}
.fade-right.visibile {
  opacity: 1;
  transform: translateX(0);
}

/* === FADE IN (solo opacity) === */
.fade-in {
  opacity: 0;
}
.fade-in.visibile {
  opacity: 1;
}