/* ES Informatica — navigazione F2 (dropdown Servizi + hamburger mobile).
   Caricato su TUTTE le viste; si sovrappone al layout header di base/home. */

/* --- top level --- */
.menu .menu-item{position:relative;display:flex;align-items:center}
.menu .menu-link{display:inline-flex;align-items:center;gap:6px;position:relative;padding:6px 0;color:var(--ink-2);font-weight:500;font-size:15px}
.menu .menu-link::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--blue);border-radius:2px;transition:width .25s}
.menu .menu-link:hover{color:var(--blue)}
.menu .menu-link:hover::after,.menu .menu-link.on::after{width:100%}
.menu .menu-link.on{color:var(--blue)}
.menu .chev{transition:transform .2s ease}

/* header solo-mark (F3): il mark è più alto senza wordmark */
.logo--mark-only .logo-mark{height:40px}

/* --- dropdown Servizi --- */
.has-dropdown .dropdown{
  position:absolute;top:100%;left:-14px;margin-top:12px;min-width:236px;
  background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 44px -18px rgba(20,50,120,.28);
  padding:8px;z-index:60;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
  transition-delay:.15s; /* tolleranza chiusura hover */
}
/* bridge invisibile per non perdere l'hover nel gap */
.has-dropdown .dropdown::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.has-dropdown:hover .dropdown,
.has-dropdown:focus-within .dropdown{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.has-dropdown:hover .menu-top .chev,
.has-dropdown:focus-within .menu-top .chev,
.menu-top[aria-expanded="true"] .chev{transform:rotate(180deg)}

.dropdown a::after{display:none !important}

/* --- mega-dropdown Servizi (F3) --- */
.dropdown.mega{width:620px;left:-16px;padding:0;border-radius:18px;box-shadow:0 24px 48px -16px rgba(20,50,120,.18);overflow:hidden}
.dropdown.mega::after{content:"";position:absolute;top:-7px;left:34px;width:13px;height:13px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.mega .mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:14px}
.mega .mega-item{display:flex;align-items:flex-start;gap:13px;padding:11px 12px;border-radius:12px;transition:background .15s}
.mega .mega-item:hover{background:var(--bg-soft)}
.mega .mega-ic{flex:none;width:40px;height:40px;border-radius:11px;background:var(--bg-soft);display:grid;place-items:center;color:var(--blue);transition:background .18s,color .18s}
.mega .mega-ic svg{width:22px;height:22px}
.mega .mega-item:hover .mega-ic{background:var(--blue);color:#fff}
.mega .mega-tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.mega .mega-tx b{font-size:14px;font-weight:700;color:var(--ink);line-height:1.25;transition:color .15s}
.mega .mega-tx small{font-size:12px;color:var(--muted);line-height:1.3}
.mega .mega-item:hover .mega-tx b{color:var(--blue)}
.mega .mega-foot{display:flex;align-items:center;gap:8px;padding:13px 22px;background:var(--bg-soft);border-top:1px solid var(--line);font-weight:700;font-size:14px;color:var(--blue)}
.mega .mega-foot svg{transition:transform .2s}
.mega .mega-foot:hover svg{transform:translateX(4px)}

/* --- selettore lingua --- */
.lang.has-dropdown{position:relative}
.lang-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:none;cursor:pointer;font-size:14px;font-weight:600;color:var(--ink-2);padding:6px 2px;font-family:inherit}
.lang-btn:hover{color:var(--blue)}
.lang.has-dropdown .dropdown.lang-dd{left:auto;right:-10px;min-width:158px;width:auto;padding:8px}
.lang-dd a{display:block;padding:9px 12px;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;transition:background .15s,color .15s}
.lang-dd a::after{display:none !important}
.lang-dd a:hover{background:var(--bg-soft);color:var(--blue)}
.lang-dd a.on{color:var(--blue)}

/* --- hamburger --- */
.hamburger{display:none;width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:11px;cursor:pointer;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:5px;transition:.2s}
.hamburger:hover{border-color:var(--blue)}
.hamburger span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .2s ease}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* --- drawer mobile --- */
.es-drawer{
  position:fixed;left:0;right:0;top:60px;z-index:49;
  background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  box-shadow:0 24px 40px -20px rgba(20,50,120,.28);
  padding:14px 24px 22px;
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
  max-height:calc(100vh - 60px);overflow-y:auto;
}
.es-drawer.open{opacity:1;visibility:visible;transform:none}
.es-drawer__nav{display:flex;flex-direction:column;gap:2px}
.es-drawer a,.drawer-acc{font-size:16.5px;font-weight:600;color:var(--ink);text-align:left}
.drawer-acc{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:none;border:none;padding:14px 4px;cursor:pointer;border-bottom:1px solid var(--line)}
.drawer-acc .chev{transition:transform .2s ease}
.drawer-acc[aria-expanded="true"] .chev{transform:rotate(180deg)}
.drawer-sub{display:flex;flex-direction:column;padding:6px 0 10px 8px;border-bottom:1px solid var(--line)}
.drawer-sub[hidden]{display:none}
.drawer-sub a{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:600;color:var(--ink-2);padding:9px 4px}
.drawer-sub .mega-ic{flex:none;width:36px;height:36px;border-radius:10px;background:var(--bg-soft);display:grid;place-items:center;color:var(--blue)}
.drawer-sub .mega-ic svg{width:20px;height:20px}
.drawer-sub__all{color:var(--blue);font-weight:700}
.drawer-sub a:hover,.es-drawer a:hover{color:var(--blue)}
.drawer-link{padding:14px 4px;border-bottom:1px solid var(--line)}
.drawer-cta{justify-content:center;margin-top:16px;width:100%}
.drawer-lang{font-size:13px;color:var(--muted);margin-top:14px;font-weight:600}
.drawer-lang strong{color:var(--ink-2)}

/* body lock quando drawer aperto */
body.es-drawer-open{overflow:hidden}

/* --- responsive switch --- */
/* specificità rinforzata: home.css (e altri css di pagina) caricano DOPO nav.css
   e il loro `.menu{display:flex}` base vincerebbe sulla media query (stessa
   specificità, ordine successivo). `.nav .menu` (0-2-0) vince sempre. */
@media(max-width:860px){
  .nav .menu{display:none}
  .nav-right .lang,.nav-right .es-cta{display:none}
  .nav .hamburger{display:inline-flex}
}
@media(min-width:861px){
  body .es-drawer{display:none}
}
