/* ===============================
   STILE TEMA BASE SPOT
   Autore: Studio SPOT
   Descrizione: Stili personalizzati del tema
   =============================== */
   
@font-face {
  font-family: "Moonstone";
  src:
    url("../fonts/Moonstone-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/*
.SVILUPPO{
border:2px solid red;
}
*/
body{
overflow-x: hidden;
max-width: 100vw;
}
html{
font-size:10px;
font-weight:500;
}

a{
text-decoration:none;
transition:color 0.3s ease;
}
a:hover{
color:#93B22A;
transition:color 0.3s ease;
}
:root {
  --fonttitolo: "Poppins";
  --fonttesto: "Poppins";
  --fontscript: "Moonstone";
}

/*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;
}
.separatore{
display:block;
position:relative;
}
.container.container-big{
width: 1600px;
max-width: 90%;
}
.container-xl{
width: 1920px;
max-width: 100%;
}

/* Ratio 1500x1000 ≈ 3:2 */
.ratio-1500x1000{
  --bs-aspect-ratio: 66.666%; /* (1000 / 1500) * 100 */
}

/*TESTI*/
.titolo,.titolo *{
font-family:var(--fonttitolo);
}
.testo,.testo *{
font-family:var(--fonttesto);
}
.font-script,.font-script *{
font-family:var(--fontscript);
}
.XL,.XL *{
font-size:6rem;
}
.L,.L *{
font-size:4rem;
}
.l,.l *{
font-size:3rem;
}
.M,.M *{
font-size:1.7rem;
}
.S,.S *{
font-size:1.7rem;
line-height: 2.7rem;
}
.font-script.XL,.font-script.XL *{
font-size: 10rem;
}
.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;
}
.virgolettato{
position:relative;
}
.virgolettato:before,.virgolettato:after{
font-size: 205px;
position: absolute;
line-height: 80px;
z-index:-1;
}

.virgolettato:before{
content:"“";
top: -20px;
left: -100px;
}
.virgolettato:after{
content:"”";
bottom:-90px;
right:-60px;
}
.virgolettato-verde:before,.virgolettato-verde:after{
color:#93B22A;
}

/*COLORI*/
.bianco,.bianco *{
color:#fff;
}
.nero,.nero *{
color:#000;
}
.verde,.verde *{
color:#919A48;
}
.verde-chiaro,.verde-chiaro *{
color:#93B22A;
}
/*PULSANTI*/
.pulsante {
padding: 7px 40px 9px;
font-family:var(--fonttesto);
text-decoration: none;
font-weight:500;
font-size:1.6em;
line-height:normal;
max-width:fit-content;
transition:all 0.3s ease;
}
.pulsante-1{
color:#fff;
background-color:#93B22A;
border:2px solid #93B22A ;
}
.pulsante.pulsante-1:hover{
color:#93B22A;
background-color:transparent;
border:2px solid #93B22A;
transition:all 0.3s ease;
}


/*SFONDI*/
.bg-bianco{
background:#fff;
}
.bg-texture:before{
content: "";
position: absolute;
background-image:url('../img/sfondi/texture-bg.png');
background-size:350px;
background-position:center;
background-repeat:repeat;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: -10;
}
.bg-texture.bg-texture-rosa:before{
background-color: #FAF5F0;
background-image:url('../img/sfondi/texture-bg.png');
}
.bg-boxed:before{
width:100%;
max-width:1320px!important;
}
.bg-texture.bg-off-right:before{
left: 10%;
right: -10%;
}
.bg-boxed.bg-texture.bg-off-right:before {
left: 25%;
right: -25%;
bottom: 25%;
top: 10%;
}

.bg-texture.bg-left-60:before {
content: "";
left: 0;
right: 0;
top: 10%;
bottom: 0;
max-width: 60%;
z-index: 0;
height: 120%;
display: flex;
}
.bg-texture.bg-right-60:before {
content: "";
left: 0;
right: 0;
top: 10%;
bottom: 0;
max-width: 60%;
height: 100%;
display: flex;
margin-left:auto;
z-index: -1;
}
.bg-texture.bg-right-60.ristorante-mod:before {
top: -10%;
bottom: -10%;
height: auto;
}
.bg-texture.bg-left-60.container-artigianato-mod:before{
top:0;
bottom:0;
}

.bg-texture.bg-collage-tre-immagini{
padding-bottom:5%;
}
.bg-texture.bg-collage-tre-immagini:before{
width:80%;
margin:auto;
top:5%;
}

.bg-strappo:before {
content: "";
position: absolute;
left: -5%;
right: -5%;
top: 0;
bottom: 0;
z-index: -1;
height: 100%;
background-image: url('../img/sfondi/strappo-bg.png');
background-repeat: no-repeat;
background-position: center center;
background-size: 100% auto; /* stretch orizzontale, altezza proporzionale */
}

.sez-menu .bg-strappo:before{
background-size: 100% 80%; /* stretch orizzontale, altezza proporzionale */
}


.bg-footer:before{
content: "";
position: absolute;
background-color: #FAF5F0;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index:-1;
width:30vw;
}


.bg-footer-col:before{
content: "";
position: absolute;
background-color: #FAF5F0;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index:-1;
}
/*SOCIAL*/
.icona-social a {
width: 100%;
height: 100%;
}
.icona-social img{
filter:brightness(0);
transition:all 0.3s ease;
}
.icona-social:hover img{
filter:brightness(1);
transition:all 0.3s ease;
}

/*HOME*/
.container-fluid.container-collage{
max-width: 100vw;
overflow-x: hidden;
}
.container-collage .col-contenuto{
min-width: 500px;
max-width: 100%;
}
.container-collage .col-img{
overflow:visible;
max-height:fit-content;
}
.container-img-quad{
width:350px;
max-width:100%;
z-index:1;
border:10px solid #fff;
}
.container-img-quad.img-quad-absolute{
position:absolute;
}
.container-img-quad.img-quad-lb{
top:auto;
bottom:-25%;
left:-5%;
right:auto;
}
.container-img-quad.img-quad-rb{
top:auto;
bottom:-25%;
right:-5%;
left:auto;
}

.icona {
max-width: 120px;
}
.slider-recensioni {
  position: relative;
  min-height: 6em;          /* così il box non “salta” se le frasi hanno lunghezze diverse */
  min-width:100%;
}

.slider-recensioni .slide-recensione {
  position: absolute;
  inset: 0;                 /* top:0; right:0; bottom:0; left:0; */
  opacity: 0;
  transition: opacity .5s ease;
  pointer-events: none;
}

.slider-recensioni .slide-recensione.attiva {
  opacity: 1;
  pointer-events: auto;
}

/* SLIDER RECENSIONI */
.slider-recensioni {
  position: relative;
  min-height: 90px; /* evita salti di altezza tra recensioni */
}

.slider-recensioni .slide-recensione {
 
  opacity: 0;
  transition: opacity .4s ease;
  pointer-events: none;
}

.slider-recensioni .slide-recensione.attiva {
  opacity: 1;
  pointer-events: auto;
}

/* PALLINI */
.slider-recensioni-dots {
  margin-top: 3rem;
  display: flex;
  justify-content: center;
  gap: .5rem;
}

.slider-recensioni-dots .dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: none;
  padding: 0;
  background: #ccc;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}

.slider-recensioni-dots .dot.attiva {
  background: #93B22A;
  transform: scale(1.15);
}

/* === SLIDER IMMAGINI MOBILE (COLLAGE) === */

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

/* Track che scorre orizzontalmente */
.slider-mobile-track {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform .4s ease;
}

/* Ogni slide occupa il 100% del contenitore */
.slider-mobile .slide-mobile {
  flex: 0 0 100%;
}

/* Frecce */
.slider-mobile-prev,
.slider-mobile-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  font-size: 31px;
  line-height: 1;
  border-radius: 999px;
  background: transparent;
  color: #93B22A;
  border:2px solid #93B22A; 
  padding-bottom:6px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  transition: background .2s ease, transform .2s ease;
}

.slider-mobile-prev {
  left: 10px;
}

.slider-mobile-next {
  right: 10px;
}
.slider-mobile-prev:hover, .slider-mobile-next:hover{
background:#93B22A;
color:#fff;
transition: background .2s ease, transform .2s ease;
}


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

.slider-hero-inner {
  position: relative;
  width: 100%;
  height: 100%;
}

.slide-hero {
  position: absolute;
  inset: 0;                /* top:0; right:0; bottom:0; left:0 */
  opacity: 0;
  transition: opacity .6s ease;
  pointer-events: none;
}

.slide-hero.attiva {
  opacity: 1;
  pointer-events: auto;
}

/* Frecce slider hero */
.slider-hero-nav {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  pointer-events: none; /* nav non blocca il mouse sull'immagine */
  padding: 0 1.5rem;
}

.slider-hero-arrow {
  pointer-events: auto;   /* riattivo click sulle frecce */
  width: 42px;
  height: 42px;
  font-size: 31px;
  line-height: 1;
  border-radius: 999px;
  background: transparent;
  color: #93B22A;
  border:2px solid #93B22A; 
  padding-bottom:6px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}

.slider-hero-arrow:hover {
background:#93B22A;
color:#fff;
transition: background .2s ease, transform .2s ease;
}

/* Se vuoi nasconderle su mobile molto stretto, ad esempio <576px */
@media (max-width: 575.98px) {
  .slider-hero-nav {
    padding: 0 .75rem;
  }
  .slider-hero-arrow {
    width: 32px;
    height: 32px;
    font-size: 1.4rem;
  }
}


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

.slider-ristorante-track {
    display: flex;
    gap: 0;
    transition: transform .4s ease;
}

/* Ogni slide prende 1/3 della larghezza visibile */
.slider-ristorante .slide-ristorante {
    flex: 0 0 calc((100% - 0rem) / 3); /* 3 colonne con gap 2rem */
    width:auto!important;
    max-width:auto!important;
}

/* Frecce */
.slider-ristorante-prev,
.slider-ristorante-next {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: #ffffffcc;
border: none;
padding:4px 14px 9px;
font-size: 26px;
cursor: pointer;
z-index: 20;
border-radius: 50%;
line-height: 1;
transition: background .2s ease;
}

.slider-ristorante-prev:hover,
.slider-ristorante-next:hover {
    background: #fff;
}

.slider-ristorante-prev { left: 15px; }
.slider-ristorante-next { right: 15px; }
/*CHI SIAMO*/

/*AZIENDA AGRICOLA*/
.container-tre-immagini{
width:90%;
margin-left: auto;
margin-right: auto;
display:flex;
flex-direction:column;
align-items:center;
}
.container-tre-immagini .container-img-quad,.container-tre-immagini .container-img-orizz{
border:0;
}
.container-tre-immagini .container-img-quad  {
flex: 0 0 25%;
}
.container-tre-immagini .container-img-orizz {
flex: 0 0 50%;
max-width:45%;
}


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

/* Contenitore delle slide */
.slider-hero-inner {
  position: absolute;
  inset: 0;              /* top:0; right:0; bottom:0; left:0 */
  width: 100%;
  height: 100%;
  z-index: 0;            /* sotto al titolo */
}

/* Singola slide */
.slide-hero {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 0.7s ease;
}

/* Slide visibile */
.slide-hero.attiva {
  opacity: 1;
}
/* NAVIGAZIONE */
.slider-hero-nav {
  position: absolute;
  bottom: 20px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: 1rem;
  z-index: 3;
}

.slider-hero-prev{left:10px;}
.slider-hero-next{right:10px;}

.slider-hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  font-size: 31px;
  line-height: 1;
  border-radius: 999px;
  background: transparent;
  color: #93B22A;
  border:2px solid #93B22A; 
  padding-bottom:6px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  transition: background .2s ease, transform .2s ease;
}



.slider-hero-arrow:hover {
background:#93B22A;
color:#fff;
transition: background .2s ease, transform .2s ease;
}




/*APPARTAMENTI*/

.sez-uso-esclusivo{
border-top:1px solid #000;
border-bottom:1px solid #000;
padding:15px 0;
}
.blur-persone{
display:flex;
flex-direction:row;
width:fit-content;
align-items: center;
}
.blur-persone .icona-persone{
min-width: 15px;
width: 15px;
margin-right: 5px;
margin-top:-2px;
}

/*LOOP APPARTAMENTI*/
/* Permette lo scroll verticale naturale ma cattura lo swipe orizzontale */
.sez-loop-appartamenti .slider-viewport{
  touch-action: pan-y;
  cursor: grab;
}
.sez-loop-appartamenti .is-dragging{
  cursor: grabbing;
  user-select: none;
}

.ratio-3x4{
--bs-aspect-ratio: 133.333%;
}
.ratio-img-carta{
--bs-aspect-ratio: 150%;
}

.carta-loop-appartamenti{
width:20%;
min-width:320px;
}
.container-img-carta:after{
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin-top: auto;
display: flex;
height: 50%;
background: linear-gradient(0deg, rgb(0 0 0 / 58%) 0%, rgba(0, 0, 0, 0) 100%);
}

.carta-loop-appartamenti .bg-strappo:before {
left: 0;
right: 0;
background-size: 100% 100%;
}
.sez-loop-appartamenti .slider-viewport{
  overflow: hidden;
  position: relative;
  width: 100%;
}

/* Track: flex orizzontale con gap gestito via CSS var */
.sez-loop-appartamenti .slider-track{
  --gap: 2rem;               /* gap fra card */
  display: flex;
  align-items: stretch;
  column-gap: var(--gap);
  transform: translateX(0);
  transition: transform .35s ease;
  will-change: transform;
}

/* Card: 5 per schermo (considerando gap) */
.sez-loop-appartamenti .carta-loop-appartamenti{
  flex: 0 0 calc((100% - (var(--gap) * 4)) / 5);
  min-width: 0; /* evita overflow di contenuti interni */
}

/* Bottoni frecce */
.sez-loop-appartamenti .carousel-btn{
  position: absolute;
  top: 40%;
  z-index: 2;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  padding-bottom:5px;
  border-radius: 50%;
  border: 2px solid #93B22A;
  background: #fff;
  color: #93B22A;
  font-size: 31px;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: all .2s ease;
}
.sez-loop-appartamenti .carousel-btn:hover{
  background:#93B22A; color:#fff;
}
.sez-loop-appartamenti .carousel-btn.prev{ left: -4%; }
.sez-loop-appartamenti .carousel-btn.next{ right: -4%; }

/* Mantieni le tue regole esistenti utili */
.sez-loop-appartamenti .container.container-big{
  width: 1750px;
  max-width: 90%;
  position: relative; /* necessario per posizionare le frecce */
}

/* Le tue ratio e gradient restano invariati */
.ratio-img-carta{ --bs-aspect-ratio: 150%; }
.container-img-carta:after{
  content: "";
  position:absolute;
  inset:0 auto auto 0;
  height:50%;
  background: linear-gradient(0deg, rgb(0 0 0 / 58%) 0%, rgba(0,0,0,0) 100%);
}
.carta-loop-appartamenti .bg-strappo:before {
  left: 0; right: 0; background-size: 100% 100%;
}
.sez-loop-appartamenti .slider-track{
  --gap: 2rem;
  display: flex;
  align-items: stretch;
  column-gap: var(--gap);
  transform: translateX(0);
  transition: transform .35s ease;
  will-change: transform;
}


/*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{
position:fixed;
z-index:999;
background:linear-gradient(180deg, rgb(0 0 0 / 68%) 0%, rgba(0, 0, 0, 0) 100%);
}
.fascia-alta-header{
background-color:#fff;
}
.contenuti-fascia-alta{
gap: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-tripadvisor img {
height: 15px;
}
.container.container-big.main-content-header{
padding-top:25px;
}
.logo-header{
padding:0;
margin:0 10%;
}
.logo-header img {
width: 200px;
}
.menu-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1.25rem;
margin: 0;
padding: 0;
}

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

/* LI di primo livello */
.menu-header > li {
  position: relative;               /* serve per il dropdown */
  list-style: none;
}

/* Link primo livello */
.menu-header > li > a {
  display: block;
  text-decoration: none;
  color: #fff;
  letter-spacing: 2px;
  transition: color .2s ease;
}

.menu-header > li > a:hover {
  color: #93B22A;
  transition: all 0.3s ease; 
}

/* Pulsante Booking */
.pulsante-booking {
  margin-top: -7px;
}

li.pulsante-booking > a {
  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;
  transition: all 0.3s ease;
}

li.pulsante-booking > a:hover {
  color: #93B22A;
  border-color: #fff;
  background-color: #FFF;
  transition: all 0.3s ease;
}

/* ==========================
   SUBMENU CON TRANSIZIONE FLUIDA
   ========================== */

/* Stato iniziale: nascosto ma presente (così è animabile) */
.menu-header > li > .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 8px); /* leggera discesa iniziale */
  min-width: 220px;
  background: #fff;
  border-radius: .75rem;
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
  padding: 1rem;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;            /* evita click quando nascosto */
  transition: 
    opacity .22s ease,
    transform .22s ease,
    visibility 0s linear .22s;     /* ritarda il toggle di visibility */
  z-index: 1000;
  will-change: transform, opacity;
}

/* Mostra su hover e focus-within */
.menu-header > li.menu-item-has-children:hover > .sub-menu,
.menu-header > li.menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);   /* risale dolcemente */
  transition: 
    opacity .22s ease,
    transform .22s ease,
    visibility 0s;
}

/* ==========================
   VOCI SUBMENU
   ========================== */
.sub-menu > li {
  list-style: none;
}

.sub-menu > li > a {
  display: block;
  padding: .5rem 1rem;
  color: #1b1b1b;
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease;
}

.sub-menu > li > a:hover {
  color: #93B22A;
}

/* ==========================
   ACCESSIBILITÀ
   ========================== */
@media (prefers-reduced-motion: reduce) {
  .menu-header > li > .sub-menu {
    transition: none;
    transform: translate(-50%, 0);
  }
}


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

.logo-header-mobile{
max-width:150px;
}

.pulsante-booking-mobile {
padding: 5px 34px 7px;
text-decoration: none;
font-weight: 500;
line-height: normal;
max-width: fit-content;
letter-spacing: 0;
text-transform: none;
color: #000;
border: 2px solid #fff;
background-color: #fff;
transition: all 0.3s ease;
}

.pulsante-booking-mobile:hover {
color: #fff;
border-color: #93B22A;
background-color: #93B22A;
transition: all 0.3s ease;
}
.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:#fff;
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-end;
position:fixed;
top:0;
right:0;
bottom:0;
width:100%;
max-width:0;
height:100vh;
background-color:#FAF5F0;
background-image:url('../img/sfondi/texture-bg.png');
background-size:350px;
background-position:center;
background-repeat:repeat;
  /* 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:9rem 3rem;
max-width:400px;
/* 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;
}




.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;
}

.navigazione-lat{
margin-top:30px;
}
.navigazione-lat *{
transition:all 0.3s ease;
}
.navigazione-lat ul{
display:flex;
flex-direction:column;
align-items: flex-end;
gap:20px;
margin-right:45px;
}
.navigazione-lat a{
display:block;
color:#000;
font-size:2rem;
}
.navigazione-lat a:hover{
color:#93B22A;

}
.navigazione-lat .pulsante-booking.pulsante-booking-menu-lat{
margin-top:10px;    
}


.navigazione-lat li.pulsante-booking > a {
  padding: 5px 40px 7px;
  font-weight: 300;
  line-height: normal;
  max-width: fit-content;
  letter-spacing: 1px;
  text-transform: none;
  color: #fff;
  border: 2px solid #93B22A;
  background-color: #93B22A;
  transition: all 0.3s ease;
}

.navigazione-lat li.pulsante-booking > a:hover {
  color: #93B22A;
  border-color: #93B22A;
  background-color: transparent;
  transition: all 0.3s ease;
}
.social-menu-lat{
margin-top:50px;
margin-right:45px;
display: flex;
flex-direction: column;
align-items: flex-end;
}
.social-menu-lat .icona-social img {
filter: brightness(1);
max-height: 30px;
}
.social-menu-lat .icona-social img:hover {
filter:brightness(0);
}
.social-menu-lat .icona-tripadvisor{
display:none;
}
.social-menu-lat .container-social{
justify-content: end;
}
/*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: #000;
font-size:14px;
text-transform: uppercase;
position: absolute;
top: auto;
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: #93B22A;
transition:all 0.3s ease;
}
#flags li#English a:after {
content: "EN";
}
#flags li#Italian a:after {
content: "IT";
}
/*FOOTER*/
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: block !important;   /* assicura che NON sia flex */
width: fit-content;
margin: 0;
padding: 0;
column-count: 2;             /* <- qui fai le 2 colonne */
column-gap: 13rem;
}

.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:#000;
font-size:1.8rem;
transition:all 0.3s ease;
}
.menu-footer *:hover{
color:#93B22A;
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: 30px;
width: auto;
}

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

.fascia-bassa-footer{
border-top:2px solid #93B22A;
}
.fascia-bassa-footer .S *,.fascia-bassa-footer .S{
font-size: 1.2rem;
}
/*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*/
.ratio-img-carta-prodotti{
 --bs-aspect-ratio: 120%;
}
.woocommerce ul.products li.product .titolo.l {
  font-size: 3rem; /* tuo valore */
  line-height: 1.3;
}

.carta-loop-prodotti .bg-strappo:before {
  left: 0; right: 0; background-size: 100% 100%;
}


/*LAYOUT PRODOTTO E CARRELLO*/
/*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*/
.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:0;
padding:16px;
font-size:1.2rem;
border:1px solid #93B22A;
}
.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;
}
/*404*/
.mod-404 .XL,.mod-404 .XL * {
    font-size: 11rem;
}
.mod-404 .M,.mod-404 .M * {
    font-size: 2.7rem;
}
/*RESIZE*/
@media (min-width: 1920px) {
  .container-fluid.container-collage,.container-xl {
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
  }
}
/*XXL*/
@media (max-width: 1400px) {
    .bg-texture.bg-left-60:before,.bg-texture.bg-right-60:before {
    max-width: 100%;
    height: 100%;
    }
}
@media (max-width: 1300px) {
    .header-mobile{
    display:block;
    }
    .header-desktop{
    display:none;
    }
    .container.container-big.main-content-header {
    padding-top: 15px;
    }
}
/*XL*/
@media (max-width: 1200px) {
	.container-collage .col-contenuto:before{
	content: "";
	position: absolute;
	background-color: #FAF5F0;
	background-image:url('../img/sfondi/texture-bg.png');
	background-size:350px;
	background-position:center;
	background-repeat:repeat;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	z-index: -10;
	}
	.bg-footer:before{
	width:100%;
	}
	.bg-strappo-3-col:before{
    display:none;    
    }
    .sez-loop-appartamenti .carta-loop-appartamenti{
    flex: 0 0 calc((100% - (var(--gap) * 2)) / 3);
    }
}
/*LG*/
@media (max-width: 992px) {
    .masonry {
    column-count: 2;
    }
    .bg-strappo-2-col:before{
    display:none;    
    }
}

/*MD*/
@media (max-width: 768px) {
    .bg-strappo-6-col:before{
    display:none;    
    }
    .container-collage .col-contenuto{
    min-width:auto;
    }
}
/*SM*/
@media (max-width: 576px) {
    .masonry {
    column-count: 1;
    }
    .container-menu-lat.aperto{
    max-width:100%;
    }
    .virgolettato:before, .virgolettato:after{
    font-size: 135px;
    }
    .virgolettato:before{
    left:-50px;
    }
    .virgolettato:after{
    right:-10px;
    }
    .sez-loop-appartamenti .carta-loop-appartamenti{
    flex: 0 0 100%;
    padding: 10%
    }
}
@media (max-width: 450px) {
    .XL, .XL *{
    font-size:5rem;
    }
    .font-script.XL, .font-script.XL * {
    font-size: 7rem;
    }
    .slider-recensioni{
    min-height: 160px;
    }
    .container-menu-lat{
    height: 100vh;
    }
    .container-menu-lat.aperto{
    padding:3rem;
    }
    .logo-menu-lat{
    max-width:180px;
    margin-right: 45px;
    }
    .navigazione-lat ul{
    gap:10px;
    }
    
}


/* === 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;
}