{
  box-sizing: border-box;
}
body {
  height: 100vh;
  background-color: #D1DADF;
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
}

/* Banner in alto - Logo a sinistra, titolo centrato */
.banner {
  position: fixed; /* Mantieni fixed per il banner */
  top: 0;
  left: 0;
  width: 100%;
  height: 120px; /* Altezza totale del banner */
  background: #0000DE;  
  color: white;
  display: flex;
  flex-direction: column;
  z-index: 1000;
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

/* Riga superiore del banner (logo + titolo) */
.banner-top {
  display: flex;
  align-items: center;
  width: 100%;
  height: 80px; /* Altezza per logo e titolo */
  position: relative;
}

/* Logo posizionato a sinistra */
.logo-left {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  height: 70px;
  display: flex;
  align-items: center;
}

/* Titolo perfettamente centrato */
.title-center {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: auto;
  text-align: center;
}

.banner h1 {
  margin: 0;
  font-size: 50px;
  font-family: "Oswald", "Helvetica Neue", Helvetica, sans-serif;
  text-align: center;
  white-space: nowrap;
}


/* Stile dei pulsanti di navigazione */
.nav-btn {
  background: rgba(255, 255, 255, 0.15);
  color: white;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 4px;
  padding: 8px 18px;
  font-family: "Lato", "Helvetica Neue", Helvetica, sans-serif;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 150px !important;
  min-width: 110px;  
  height: 30px;
}

.nav-btn:hover {
  background: rgba(255, 255, 255, 0.25);
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}


.menu-button {
  top: 100px; /* Posizionato più in basso per il banner più alto */
}

.content {
  padding-top: 120px; /* Regolato per il nuovo banner */
}

/* Responsive per schermi più piccoli */
@media (max-width: 1024px) {
  .banner h1 {
    font-size: 26px;
  }
  
  .nav-btn {
    min-width: 90px;
    padding: 6px 12px;
    font-size: 13px;
  }
}

@media (max-width: 768px) {
  .banner {
    height: 120px;
  }
  
  .banner-header {
    height: 60px;
  }
  
  .banner h1 {
    font-size: 24px;
  }
  
  .logo-container img {
    height: 50px;
  }
  
  .banner-nav {
    height: 40px;
    overflow-x: auto; /* Permette scrolling orizzontale su mobile */
    justify-content: flex-start;
    padding: 0 5px;
    gap: 5px;
  }
  
  .nav-btn {
    min-width: 80px;
    padding: 5px 8px;
    font-size: 12px;
    flex-shrink: 0; /* Impedisce ai pulsanti di ridursi troppo */
  }
  
  .nav-btn i {
    font-size: 14px;
  }
  
  .menu-wrap {
    top: 121px;
    height: calc(100% - 120px);
  }
  
  .menu-button {
    top: 85px;
	 z-index: 10001 !important;
  }
    
  .content {
    padding-top: 130px;
  }
}

@media (max-width: 480px) {
  .banner {
    height: 110px;
    padding: 0 10px;
  }
  
  .banner-header {
    height: 50px;
    gap: 10px;
  }
  
  .banner h1 {
    font-size: 20px;
  }
  
  .logo-container img {
    height: 40px;
  }
  
  .banner-nav {
    height: 40px;
  }
  
  .nav-btn span {
    display: none; /* Nasconde il testo sui mobile piccoli */
  }
  
  .nav-btn {
    min-width: 40px;
    width: 40px;
    border-radius: 50%;
    padding: 0;
  }
  
  .nav-btn i {
    font-size: 16px;
    margin: 0;
  }
}


/* MODIFICA CRUCIALE: menu-wrap deve partire IMMEDIATAMENTE sotto il banner */
.menu-wrap {
  position: fixed; /* Mantieni fixed */
  left: 0;
  z-index: 11000; /* Un po' più basso del banner ma sopra al contenuto */
  width: 305px;
  height: calc(100vh - 130px); /* Usa viewport height meno altezza banner */
  top: 121px; /* Inizia esattamente sotto il banner */
  padding: 0px 10px;
  background-color: #FFFFFF;  
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
  transition: all 0.5s cubic-bezier(0.7,0,0.3,1);
  transform: translate3d(-100%, 0, 0);
  overflow-y: auto; /* Permette scrolling se il menu è troppo lungo */
}

.menu-wrap.active {
  transform: translate3d(0, 0, 0);
}

/* Quando il menu è chiuso, il contenuto occupa più spazio */
.menu-wrap:not(.active) + .content {
  padding-left: 20px;
}
/* Pulsante menu - posizionato vicino al logo */
.menu-button {
  position: fixed;
  top: 80px; /* Allineato con la metà del banner */
  left: 10px;
  width: 60px;
  height: 40px;
  background: linear-gradient(45deg, #667eea, #764ba2);
  color: white;
  font-size: 18px;
  font-weight: bold;
  border: none;
  border-radius: 6px !important;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(0,0,0,0.3);
  z-index: 1001; /* Sopra al menu-wrap ma sotto al banner */
  transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Quando il menu è attivo, il pulsante si sposta */
.menu-button.active {
  left: 270px;
  background: linear-gradient(45deg, #ff4757, #ff6b81);
  border-radius: 6px !important;
}

.menu-wrap .menu .icon-list a {
  position: relative;
  font-family: "Oswald", "Helvetica Neue", Helvetica, sans-serif;
  display: block;
  padding: 0px 0px;
  text-decoration: none;
  color: #0000DA;
  
  font-size: 18px;
  transition: all 0.3s ease;
  border-bottom: 1px solid #333;
}
.menu-wrap .menu .icon-list a:last-child {
  border-bottom: none;
}
.menu-wrap .menu .icon-list a::before {
  position: absolute;
  content: "";
  width: 0%;
  height: 2px;
  top: 80%;
  left: 5px;
  transition: all 0.3s ease;
}
.menu-wrap .menu .icon-list a:hover {
  color: blue;
  padding-left: 5px;
}
.menu-wrap .menu .icon-list a:hover::before {
  width: 50%;
  background-color: #DC0000;
}


/* Icona menu (hamburger) */
.menu-icon {
  display: block;
  transition: all 0.3s ease;
  position: absolute;
}

/* Icona chiusura (X) */
.close-icon {
  display: block;
  transform: translateY(-100%);
  opacity: 0;
  transition: all 0.3s ease;
  position: absolute;
}


.menu-button.active .menu-icon {
  transform: translateY(100%);
  opacity: 0;
}

.menu-button.active .close-icon {
  transform: translateY(0);
  opacity: 1;
}

/* Effetto hover */
.menu-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}

.menu-button.active:hover {
  transform: translateY(-2px);
}

/* Il contenuto principale deve avere margine per il banner FIXED */
.content {
  text-align: center;
  padding: 140px 20px 20px 320px; /* 160px = 140px (banner) + 20px margine */
  max-width: none; /* Rimuovi il max-width per usare tutto lo spazio */
  margin: 0;
  min-height: 100vh;
  transition: padding 0.5s cubic-bezier(0.7,0,0.3,1);
}

.content h2 {
  position: relative;
  text-transform: uppercase;
  margin-bottom: 30px;
  font-size: 35px;
  font-family: "Oswald", "Helvetica Neue", Helvetica, sans-serif;
}
.content h2::after {
  position: absolute;
  content: "";
  width: 100px;
  height: 2px;
  /*background-color: #222;*/
  bottom: -15px;
  left: 50%;
  margin-left: -50px;
}
.content p {
  width: 80%;
  margin: 20px auto;
  line-height: 1.85;
  /*color: #444;*/
  font-family: "Lato", "Helvetica Neue", Helvetica, sans-serif;
}

/* box dialogo */
boxviewer {
  position: absolute;
  top: 120;  
	
}

/* Stile corretto per SplitButton */
        .splitbutton-container {
            display: inline-flex;
            position: relative;
            margin: 10px 5px;
        }
        .splitbutton-main {
            border-top-right-radius: 0 !important;
            border-bottom-right-radius: 0 !important;
            margin-right: 0 !important;
			width: 100px;
        }
        .splitbutton-menu1-trigger {
            border-top-left-radius: 0 !important;
            border-bottom-left-radius: 0 !important;
            padding: 0.5rem !important;
            border-left: 1px solid rgba(255, 255, 255, 0.3) !important;
        }
		 .splitbutton-menu2-trigger {
            border-top-left-radius: 0 !important;
            border-bottom-left-radius: 0 !important;
            padding: 0.5rem !important;
            border-left: 1px solid rgba(255, 255, 255, 0.3) !important;
        }
        
        /* Stile per il menu - SEMPLIFICATO */
        .splitbutton-menu1 {
            position: absolute;
            top: 100%;
            left: 0;
            width: 46%;
            background: white;
            border-radius: 4px;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
            z-index: 1000;
            display: none;
            margin-top: 2px;
        }
		.splitbutton-menu2 {
            position: absolute;
            top: 100%;
            left: 135px;
            width: 48%;
            background: white;
            border-radius: 4px;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
            z-index: 1000;
            display: none;
            margin-top: 2px;
        }
        .splitbutton-menu1.visible {
            display: block;
        }
		.splitbutton-menu2.visible {
            display: block;
        }
        .menu-list {
            list-style: none;
            margin: 0;
            padding: 0.5rem 0;
        }	
			
        .menu-item {
            padding: 0.5rem 1rem;
            cursor: pointer;
        }		
        .menu-item:hover {
            background-color: #f8f9fa;
        }
        
        @media (max-width: 768px) {
            .demo-title {
                font-size: 1.8rem;
            }
        }

/* Stile per finestra popup */
	
        .no-close .ui-dialog-titlebar-close {
			display: none;
		}
				
        .controls {
            margin: 15px 0;
            display: flex;
            justify-content: center;
            gap: 10px;
            flex-wrap: wrap;
        }
        
        .control-btn {
            padding: 8px 15px;
            border: 1px solid #ddd;
            background: white;
            border-radius: 5px;
            cursor: pointer;
        }
        
        .control-btn:hover {
            background: #f0f0f0;
        }
        
        .zoom-info {
            margin-top: 10px;
            font-size: 14px;
            color: #666;
        }
		    .w2ui-image-container {
            width: 100%;
            height: 350px;
            border: 1px solid #ddd;
            background: #f9f9f9;
            position: relative;
            overflow: hidden;
        }
        .w2ui-zoom-image {
            position: absolute;
            cursor: move;
            transition: transform 0.2s ease;
            transform-origin: 0 0;
        }
        .w2ui-controls {
            padding: 15px;
            text-align: center;
            background: #fff;
            border-top: 1px solid #ddd;
        }
        .w2ui-controls button {
            margin: 0 5px;
            padding: 8px 16px;
            cursor: pointer;
        }
        .w2ui-zoom-info {
            margin-top: 10px;
            font-weight: bold;
        }
	

		#boxpage {
			padding: 20;
			margin: 20;
			overflow: hidden;
		}
		#boxhelp {
			padding: 20;
			margin: 20;
			overflow: hidden;
		}

		#imageViewerContainer {
			width: 100% !important;
			height: 100% !important;
			position: relative;			
		}
						
		.ui-dialog .ui-dialog-content {
			padding: 0 !important;
		/*	overflow: hidden !important; */
		}

		.loadingDialog {
			padding: 0 !important;
		}

		.loadingDialog .ui-dialog-content {
			padding: 0 !important;
		}
		.ui-dialog .ui-dialog-buttonpane {
		text-align: center;
		padding: 10px !important;
		}

		.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
		float: none;
		width: 100%;
		display: flex;
		justify-content: space-between;
		}

		.ui-dialog .ui-dialog-buttonpane button {
		margin: 0 5px;
		flex: 1;
		max-width: 150px;
		}
		
		#imageViewerContainer img {
		transition: none !important;
		}

		.vsiv__container {
		transition: none !important;
		}

		.vsiv__image {
		transition: none !important;
		}
		
		/* Stile per i pulsanti navigazione */
		.btn_nav {
		  color: white !important;	
		  background-color: #2E50A2 !important;	
		  width: 200px !important;
		  border-width: 2px;
		  border-style: solid;
		  border-color: #E0E000 !important;
		  font-weight: bold !important;
		}
		.btn_nav_stop {
		  color: white !important;	
		  width: 140px !important;
		  background-color: #980000 !important;	
		  border-width: 2px;
		  border-style: solid;
		  border-color: #E0E000 !important;
		  font-weight: bold !important;
		}
		
		/* Stile per il pulsante Indici */
		.ui-dialog .ui-dialog-buttonpane .indices-button {
		background-color: #28a745 !important;
		color: white !important;
		border-color: #28a745 !important;
		font-weight: bold !important;
		}
		
		/* Stile per il pulsante Indici */
		.ui-dialog .ui-dialog-buttonpane .nav-button {
		background-color: #000000 !important;
		color: red !important;
		border-color: #28a745 !important;
		font-weight: bold !important;
		}

		.ui-dialog .ui-dialog-buttonpane .indices-button:hover {
		background-color: #218838 !important;
		border-color: #1e7e34 !important;
		}

		.ui-dialog .ui-dialog-buttonpane .indices-button:disabled {
		background-color: #6c757d !important;
		border-color: #6c757d !important;
		opacity: 0.6 !important;
		}

		/* Stile per la combobox degli indici */
		.indices-combobox {
		font-size: 14px;
		}

		.indices-combobox option {
		padding: 8px;
		}
		
		/* Il contenitore principale deve essere relativo per fare da riferimento */
		.content {
		position: relative;
		width: 100%;
		min-height: 600px;
		}

		/* La mappa rimane nel flusso */
		#mappa_compartimenti {
		display: block;
		margin: 0 auto;
		}

		/* Forza il dialog di jQuery UI a stare sopra a tutto */
		.ui-dialog {
			z-index: 9999 !important;
		}
		#boxpage {
			display: none; /* Nasconde il div finché non diventa un dialog */
		}
		#boxhelp {
			display: none; /* Nasconde il div finché non diventa un dialog */
		}


/* Responsive */
@media (max-width: 768px) {
  .banner {
    height: 130px;
  }
  
  .menu-wrap {
    top: 130px;
    height: calc(100vh - 130px);
    width: 250px;
  }
  
  .menu-button {
    top: 75px; /* Adattato alla nuova altezza del banner */
  }
  
  .menu-button.active {
    left: 220px;
  }
  
  .content {
    padding: 150px 20px 20px 270px; /* Adattato alle nuove dimensioni */
  }
  
  .menu-wrap:not(.active) + .content {
    padding-left: 20px;
  }
}

@media (max-width: 480px) {
  .banner {
    height: 120px;
  }
  
  .menu-wrap {
    top: 120px;
    height: calc(100vh - 120px);
    width: 250px;
  }
  
  .menu-button {
    top: 75px;
    left: 10px;
    width: 50px;
    height: 35px;
  }
  
  .menu-button.active {
    left: 210px;
  }
  
  .content {
    padding: 140px 15px 15px 265px;
  }
  
  .menu-wrap:not(.active) + .content {
    padding-left: 15px;
  }
}

/* Barra di navigazione con pulsanti - SPOSTATA A DESTRA */
.banner-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 40px;
  background-color: rgba(255, 255, 255, 0.1);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding: 0 20px 0 35px; /* 15px extra a sinistra per spostare a destra */
  gap: 15px;
  margin-left: 15px; /* Sposta tutta la barra a destra */
}

/* Pulsante menu - posizionato vicino al logo */
.menu-button {
  position: fixed;
  top: 82px; /* Allineato con la metà del banner */
  left: 20px;
  width: 60px;
  height: 38px;
  background: linear-gradient(45deg, #667eea, #764ba2);
  color: white;
  font-size: 18px;
  font-weight: bold;
  border: none;
  border-radius: 6px !important;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(0,0,0,0.3);
  z-index: 1001;
  transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Quando il menu è attivo, il pulsante si sposta a DESTRA del menu */
.menu-button.active {
  left: 240px; 
  background: linear-gradient(45deg, #ff4757, #ff6b81);
  border-radius: 6px !important;
}

/* Responsive - manteniamo lo spostamento anche su schermi piccoli */
@media (max-width: 1200px) {
  .banner-nav {
    padding-left: 30px; /* Riduci leggermente lo spostamento */
    margin-left: 10px;
    gap: 12px;
  }
}

@media (max-width: 992px) {
  .banner-nav {
    padding-left: 25px;
    margin-left: 8px;
    gap: 10px;
 