/* ==========================================================
   ST0CCO – Overlay Mega Menu (SCOPED)
   Tutto è limitato a #om per non “rompere” il tema WP.
   ========================================================== */

/* Utilities (scoped) */
#om, #om * { box-sizing: border-box; }
#om a { color: inherit; }
#om button { font: inherit; }

#om .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;
}

/* Overlay base */
#om[hidden]{ display:none; }

#om{
  position:fixed;
  inset:0;
  z-index:9999;
  z-index: 2147483647; 
  /* Smooth open/close */
  opacity:0;
  pointer-events:none;
  transition: opacity .28s ease;
}
html.om-lock .om-trigger,
body.om-lock .om-trigger{
  visibility: hidden !important;
  pointer-events: none !important;
}
#om.is-open{
  opacity:1;
  pointer-events:auto;
}

/* Backdrop */
#om .om__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.92);

  opacity:0;
  transition: opacity .28s ease;
}

#om.is-open .om__backdrop{
  opacity:1;
}

/* Panel */
#om .om__panel{
  position:relative;
  width:100%;
  height:100%;
  padding:36px 40px;
  color:#fff;
  overflow:hidden;

  transform: translateY(8px) scale(.985);
  opacity:0;
  transition: transform .32s ease, opacity .32s ease;
}

#om.is-open .om__panel{
  transform: translateY(0) scale(1);
  opacity:1;
}

/* Close button */
#om .om__close{
  position:absolute;
  top:24px;
  left:0;

  width:88px;
  height:88px;

  border:0;
  cursor:pointer;
  background:#c98276;
  color:#fff;
  font-size:34px;
  line-height:1;

  display:grid;
  place-items:center;
}

#om .om__close:hover{ filter:brightness(1.05); }

/* Top row: back + languages */
#om .om__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-left:96px; /* spazio vicino al close */
  gap:16px;
}

/* Back (mobile) */
#om .om__back{
  display:none; /* mostrato solo <900px */

  border:0;
  background:transparent;
  color:#fff;

  font-size:16px;
  cursor:pointer;
  opacity:.9;

  align-items:center;
  gap:10px;

  padding:10px 10px;
  border-radius:12px;
}

#om .om__back:hover{
  opacity:1;
  background:rgba(255,255,255,.06);
}

#om .om__back[aria-hidden="true"]{ visibility:hidden; }

/* Languages */
#om .om__langs{
  display:flex;
  gap:16px;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

#om .om__lang{
  opacity:.85;
  text-decoration:none;
}

#om .om__lang:hover{ opacity:1; }

/* Nav container */
#om .om__nav{
  height:calc(100% - 90px);
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Desktop mega grid */
#om .om__grid{
  list-style:none;
  display:grid;
  grid-auto-flow:column;
  gap:64px;
  align-items:start;
  padding:0;
  margin:0;
}

#om .om__col{ min-width:140px; }

#om .om__title{
  display:inline-block;
  font-weight:600;
  font-size:28px;
  color:#fff;
  text-decoration:none;
  margin-bottom:14px;
}

#om .om__title:hover{ opacity:.95; }

#om .om__list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}

#om .om__list a{
  text-decoration:none;
  font-size:18px;
  opacity:.85;
}

#om .om__list a:hover{ opacity:1; }

/* Mobile host (il drilldown viene iniettato dal JS) */
#om .om__mobile[hidden]{ display:none; }

#om .om__mobile{
  display:block;
  width:100%;
  max-width:560px;
  margin:0 auto;
}

/* Drilldown Mobile UI (injected) */
#om .omM{
  position:relative;
  overflow:hidden;
}

#om .omM__track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:100%;
  width:100%;
  transform:translateX(var(--x, 0%));
  transition:transform .22s ease;
  will-change: transform;
}

#om .omM__panel{
  width:100%;
  padding:18px 4px 0 4px;
}

#om .omM__h{
  font-size:22px;
  font-weight:600;
  margin:6px 0 14px;
}

#om .omM__ul{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

#om .omM__a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  text-decoration:none;
  font-size:20px;
  padding:12px 10px;
  border-radius:14px;
  background:transparent;
}

#om .omM__a:hover{ background:rgba(255,255,255,.06); }

#om .omM__chev{ opacity:.8; }

/* Responsive switch */
@media (max-width: 900px){
  #om .om__panel{ padding:22px 18px; }
  #om .om__close{
    top:14px;
	top:0;
    left:14px;
	left:0;
    width:52px;
	width:88px;
    height:52px;
	height:88px;
  }
  #om .om__top{ margin-left:70px; }
  #om .om__nav{
    align-items:stretch;
    justify-content:flex-start;
    padding-top:14px;
  }

  /* hide desktop / show mobile */
  #om .om__grid{ display:none; }
  #om .om__mobile{ display:block; }
  #om .om__back{ display:inline-flex; }
  html.om-lock .om-trigger,
    body.om-lock .om-trigger{
      visibility: hidden !important;
      pointer-events: none !important;
    }
}

@media (min-width: 901px){
  #om .om__mobile{ display:none !important; }
}

/* Lock scroll when overlay open (safe, non rompe layout) */
html.om-lock,
body.om-lock{
  overflow:hidden !important;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce){
  #om,
  #om .om__panel,
  #om .om__backdrop{
    transition:none !important;
  }
}

/* ==========================================================
   OPTIONAL: stile del trigger (se usi un bottone dedicato)
   Se NON vuoi toccare l’header del tema, puoi cancellare
   questo blocco.
   ========================================================== */
.om-trigger{
  border:0;
  cursor:pointer;
  width:88px;
  height:88px;
  padding-left:25px;
  background:#c98276;
  color:#fff;
  font-size:40px;
  line-height:1;
  display:grid;
  place-items:center;
}
.om-trigger:hover{ filter:brightness(1.05); }
/* porta header + hamburger sopra eventuali overlay */
header, .site-header, .elementor-location-header {
  position: relative;
  z-index: 1000;
}

.om-trigger, .om-trigger * {
  pointer-events: auto !important;
}

.om-trigger{
  position: relative;
  z-index: 1000000;
}