/* Shared responsive navigation */
.nav-toggle{
  display:none;
  -webkit-appearance:none;
  appearance:none;
  background:none;
  border:0;
  padding:0;
  font:inherit;
  cursor:pointer;
  position:relative;
  z-index:103;
  width:52px;
  height:44px;
  align-items:center;
  justify-content:center;
  color:var(--text,var(--white));
}
.nav-toggle::before,
.nav-toggle::after{
  position:absolute;
  left:50%;
  width:30px;
  height:1px;
  background:currentColor;
  content:"";
  transform:translateX(-50%);
  transition:top .3s ease,width .3s ease,transform .3s ease;
}
.nav-toggle::before{top:11px}
.nav-toggle::after{top:33px}
.nav-toggle-label{
  position:absolute;
  top:18px;
  left:50%;
  transform:translateX(-50%);
  font-size:8px;
  font-weight:700;
  line-height:1;
  letter-spacing:.14em;
}
.nav-toggle[aria-expanded="true"]::before,
.nav-toggle[aria-expanded="true"]::after{top:22px;width:45px}
.nav-toggle[aria-expanded="true"]::before{transform:translateX(-50%) rotate(45deg)}
.nav-toggle[aria-expanded="true"]::after{transform:translateX(-50%) rotate(-45deg)}

@media(max-width:900px){
  body.nav-open{overflow:hidden}
  .nav{padding:16px 18px}
  .nav-brand{position:relative;z-index:103}
  .nav-toggle{display:inline-flex;flex:0 0 auto}
  .nav-links{
    position:fixed;
    inset:0;
    z-index:102;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:18px;
    padding:96px max(28px,8vw) 48px;
    background:var(--bg);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-16px);
    transition:opacity .25s ease,visibility .25s ease,transform .35s ease;
  }
  .nav-links a,
  .nav-links a[data-nav-secondary]:not(.on),
  .nav-links a:not(.on):not([data-nav-mobile]):not(.lang){
    display:block;
    color:var(--text,var(--white));
    font-size:clamp(25px,7vw,38px);
    line-height:1.08;
    letter-spacing:0;
    opacity:.68;
  }
  .nav-links a.on{opacity:1}
  .nav-links a::after{bottom:-4px}
  .nav-links .lang{
    margin:10px 0 0;
    padding:22px 0 0;
    width:100%;
    border-left:0;
    border-top:1px solid var(--line);
    font-size:14px;
    letter-spacing:.16em;
  }
  .nav.nav-open .nav-links{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
}

/* Menu aperto: sempre su fondo scuro, su tutte le pagine (come Studio) */
@media(max-width:900px){
  .nav.nav-open{
    background:transparent!important;
    border-bottom-color:transparent!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .nav-links{background:#040728!important}
  .nav.nav-open .nav-brand,
  .nav.nav-open .nav-toggle{color:#EEF0FA!important}
  .nav.nav-open .nav-brand svg path{fill:#7B96FF!important}
  .nav.nav-open .nav-brand .sub{color:rgba(238,240,250,.45)!important}
  .nav-links a,
  .nav-links a[data-nav-secondary]:not(.on),
  .nav-links a:not(.on):not([data-nav-mobile]):not(.lang){color:#EEF0FA!important}
  .nav-links a::after{background:#7B96FF}
  .nav-links .lang{border-top-color:rgba(238,240,250,.16)!important}
}

/* Scelta della lingua fuori dal menu su mobile */
.nav-lang-mobile{display:none}
@media(max-width:900px){
  .nav-links .lang{display:none!important}
  .nav-lang-mobile{
    display:inline-flex;
    align-items:center;
    position:relative;
    z-index:103;
    margin-left:auto;
    margin-right:6px;
    padding:10px 8px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.16em;
    color:var(--text,var(--white));
    opacity:.7;
  }
  .nav-lang-mobile::after{display:none!important}
  .nav.nav-open .nav-lang-mobile{color:#EEF0FA!important;opacity:.8}
}

@media(prefers-reduced-motion:reduce){
  .nav-toggle-label,.nav-toggle::before,.nav-toggle::after,.nav-links{transition:none}
}
