.shadow-soft {
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .1);
}

/* Scroll offset per navigazione - lascia spazio extra sopra le sezioni */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 50px; /* Regola questo valore per più/meno spazio */
}

/* Gestione uniforme stroke-width per icone */
svg[stroke] {
  stroke-width: 2;
}

/* Galleria scroll orizzontale */
.no-scrollbar::-webkit-scrollbar { 
  display: none; 
}
.no-scrollbar { 
  -ms-overflow-style: none; 
  scrollbar-width: none; 
}

/* Pulsanti carosello nascosti se non si può scorrere */
.carousel-btn[disabled] { 
  opacity: .25; 
  cursor: default; 
}

/* Mobile Calendar Styles */
#dateModal { 
  transition: opacity .25s ease; 
}
#dateModal.hidden { 
  opacity: 0; 
  pointer-events: none; 
}
#mobileCalendar::-webkit-scrollbar { 
  width: 4px; 
}
#mobileCalendar::-webkit-scrollbar-thumb { 
  background: #cbd5e1; 
  border-radius: 2px; 
}
#mobileCalendar::-webkit-scrollbar-track { 
  background: transparent; 
}

/* Previene zoom calendario desktop */
#dateModal button:focus { 
  outline: none; 
}
#dateModal .grid button:focus { 
  transform: none !important; 
}
#dateModal { 
  scroll-behavior: auto !important; 
}
#mobileCalendar { 
  scroll-behavior: auto !important; 
}
#dateModal button { 
  scroll-behavior: auto !important; 
}
#dateModal * { 
  scroll-behavior: auto !important; 
}

/* Ottimizzazioni per modal immagini e touch */
#imageModal {
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pinch-zoom;
  overscroll-behavior: contain;
}
#imageModal #imageContainer {
  touch-action: pan-x;
  user-select: none;
  -webkit-user-select: none;
}
#imageModal img {
  pointer-events: none;
  -webkit-touch-callout: none;
}

/* Recensioni scrollabili su mobile */
@media (max-width: 768px) {
  .reviews-scroll {
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }
  .reviews-scroll figure {
    scroll-snap-align: start;
  }
}