:root {
  --header-bg: #fff;
  --header-text: #111;
}

/* --- HEADER STICKY --- */
#main-header {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  background: var(--header-bg);
  z-index: 1000;
  box-shadow: 0 1px 2px rgba(0,0,0,.06);
  transition: all .3s ease;
}

.header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: .8rem 2rem;
}

#main-header.shrink .header-inner {
  padding: .4rem 2rem;
}

.logo {
  height: 45px;
  transition: height .3s ease;
}
#main-header.shrink .logo { height: 32px; }

/* --- Menu toggle --- */
.menu-toggle {
  background: none;
  border: none;
  display: flex;
  align-items: center;
  cursor: pointer;
  gap: .6rem;
  font-weight: 600;
  font-size: .9rem;
  text-transform: uppercase;
  color: var(--header-text);
}

.menu-toggle:hover,
.menu-toggle.active {
  color: var(--accent);
}

.hamburger {
  width: 24px;
  height: 18px;
  position: relative;
}
.hamburger::before,
.hamburger::after,
.hamburger div {
  content:"";
  position:absolute;
  left:0; right:0;
  height:2px;
  background: currentColor;
  transition: all .3s ease;
}
.hamburger::before { top:0; }
.hamburger div     { top:8px; }
.hamburger::after  { bottom:0; }

.menu-toggle.active .hamburger div { background:transparent; }
.menu-toggle.active .hamburger::before {
  transform: rotate(45deg);
  top: 8px;
}
.menu-toggle.active .hamburger::after {
  transform: rotate(-45deg);
  bottom: 8px;
}

.header-divider {
  height: 2px;
  background: var(--accent);
  opacity: .8;
}

/* --- Overlay menu --- */
#menu-overlay {
  position: fixed;
  top:0; left:0;
  width:100%; height:100%;
  background: var(--header-bg);
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:center;
  padding-top:6rem;
  opacity:0; visibility:hidden;
  transform:scale(1.05);
  transition: all .35s ease;
  z-index: 999;
}
#menu-overlay.open {
  opacity:1; visibility:visible;
  transform:scale(1);
}

/* --- Menu links --- */
.menu-links {
  list-style:none;
  margin:0;
  padding:1.8rem 0 2.5rem; /* spazio sopra e sotto */
  display:flex;
  flex-direction:column;
  gap:1.2rem;
  text-align:center;
}
.menu-links a,
.submenu-toggle {
  font-size:1.15rem;
  font-weight:600;
  color:var(--header-text);
  text-decoration:none;
  transition:color .25s ease;
  cursor:pointer;
  text-transform:uppercase;
  line-height: 1.6;     /* aggiunto per più aria */
}
.menu-links a:hover,
.submenu-toggle:hover {
  color: var(--accent);
}

/* --- Submenu --- */
.has-submenu {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.submenu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .25rem;
}
.submenu-toggle::after {
  content: "▸";
  font-size: .9rem;
  transition: transform .25s ease;
  margin-left: .25rem;
}
.has-submenu.open .submenu-toggle::after {
  content: "▾";
}

.submenu {
  display:none;
  flex-direction:column;
  gap:.6rem;
  margin-top:.5rem;
}
.submenu a {
  font-size:1rem;
  font-weight:500;
  text-transform:none;
  color: var(--header-text);
  line-height: 1.5;     /* più leggibile */
}
.submenu a:hover {
  color: var(--accent);
}
.has-submenu.open .submenu { display:flex; }

/* --- Footer del menu --- */
.menu-footer {
  margin-top:3rem; /* più aria sopra i loghi */
  display:flex;
  gap:1.5rem;
  justify-content:center;
  align-items:center;
}
.menu-footer img {
  max-height:150px;
  height: auto;
  opacity:.85;
  transition: transform .3s ease, opacity .3s ease;
}

.menu-footer img:hover {
  transform: scale(1.08) translateY(-4px);
  opacity: 1;
}

.menu-footer a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

/* --- Dark mode --- */
@media (prefers-color-scheme: dark) {
  :root {
    --header-bg: #121212;
    --header-text: #eaeaea;
  }
  #main-header {
    box-shadow: 0 1px 2px rgba(0,0,0,.6);
  }
}
