:root{
  --ml-blue: #6f95ff;
  --ml-text: #111;
  --ml-menu-item: #000;
  --ml-muted: #666;
  --ml-bg: #fff;
  --ml-overlay: rgba(0,0,0,.12);
}

.ml-sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}

/* blocca scroll pagina */
.ml-no-scroll{ overflow: hidden; }

/* Bottone hamburger (adatta al tuo header) */
.ml-menu-toggle{
  appearance:none;
  border:0;
  background:transparent;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}

/* Overlay (parte da sotto la testata) */
.ml-mobile-overlay{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  top: var(--ml-offset-top, var(--ml-header-h, 64px));
  height: calc(100vh - var(--ml-offset-top, var(--ml-header-h, 64px)));
  background:transparent;
  pointer-events:none;
  z-index:30;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility 0s linear .25s, background .3s ease;
}

.ml-mobile-overlay.ml-is-open{
  background:var(--ml-overlay);
  pointer-events:auto;
  opacity: 1;
  visibility: visible;
  transition: opacity .25s ease, visibility 0s, background .3s ease;
}

/* Pannello off-canvas (apertura dall'alto) */
.ml-mobile-panel{
  position:absolute;
  top:0;
  left:0;
  right:0;
  width:100%;
  height:100%;
  background:var(--ml-bg);
  -webkit-clip-path: inset(0 0 100% 0);
  clip-path: inset(0 0 100% 0);
  transition: clip-path .35s cubic-bezier(0.25, 0.8, 0.4, 1), -webkit-clip-path .35s cubic-bezier(0.25, 0.8, 0.4, 1);
  padding:30px 18px;
  display:flex;
  flex-direction:column;
  gap:0;
  will-change: clip-path;
}

.ml-mobile-overlay.ml-is-open .ml-mobile-panel{
  -webkit-clip-path: inset(0 0 0 0);
  clip-path: inset(0 0 0 0);
}

/* Top bar */
.ml-mobile-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.ml-mobile-brand{
  font-weight:800;
  letter-spacing:.4px;
}

.ml-mobile-close{
  appearance:none;
  width:40px;
  height:40px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  border-radius:10px;
  cursor:pointer;
  font-size:20px;
  line-height:1;
}

/* Titolo Menu */
.ml-mobile-title{
  color:var(--ml-blue);
  font-weight:800;
  font-size:28px;
  line-height:1.15;
  margin:0 0 30px 0;
  display:block;
}

/* Lista principale */
.ml-mobile-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:25px;
}

.ml-item-row {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  max-width:100%;
}

.ml-item-link{
  color:var(--ml-text);
  text-decoration:none;
  font-weight:800;
  font-size:28px;
  line-height:1.15;
  display:inline-block;
  flex:1 1 auto;
  min-width:0;
}

.ml-mobile-nav li.ml-menu-icon > .ml-item-row > a::after{
  content:"";
  display:inline-block;
  width:24px;
  height:24px;
  margin-left:6px;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  vertical-align:middle;
}

.ml-mobile-nav li.ml-menu-icon-sviluppo-app > .ml-item-row > a::after{
  background-image:url("../images/servizi/sviluppo-app-icon.png");
}

.ml-mobile-nav li.ml-menu-icon-virtual-tour > .ml-item-row > a::after{
  background-image:url("../images/servizi/virtual-tour-icon.png");
}

.ml-mobile-nav li.ml-menu-icon-serious-game > .ml-item-row > a::after{
  background-image:url("../images/servizi/serious-game-icon.png");
}

.ml-mobile-nav li.ml-menu-icon-opere-tattili > .ml-item-row > a::after{
  background-image:url("../images/servizi/opere-tattili-icon.png");
}

/* Bottone che apre submenu */
.ml-subtoggle{
  appearance:none;
  border:0;
  background:transparent;
  cursor:pointer;
  padding:0;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

.ml-chevron{
  width:19px;
  height:9px;
  display:block;
  background-image:url("../images/arrow-down.svg");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  font-size:0;
  line-height:0;
}

/* Ruota la chevron quando aperto */
li.ml-is-expanded > .ml-item-row .ml-chevron{
  transform:rotate(180deg);
}

/* Submenu */
.ml-submenu {
  list-style:none;
  padding:30px 0 0 15px;
  margin:0;
  display:none;
}

.ml-submenu > li {
  margin-top:0px;
  margin-bottom:30px;
}

.ml-submenu > li:last-of-type {
  margin-bottom:10px;
}

.ml-subitem-link{
  color:var(--ml-menu-item);
  text-decoration:none;
  font-weight:600;
  font-size:16px;
  display:inline-block;
  flex:1 1 auto;
  min-width:0;
}

.ml-subitem-link:hover,
.ml-subitem-link:active,
.ml-subitem-link:focus{
  color:var(--ml-blue);
}

@media (min-width: 992px){
  /* su desktop nascondi questo componente */
  .ml-mobile-overlay{ display:none; }
}
