/* ==========================================================================
   NYX Milano - Navbar con sotto-menu a tendina (custom).
   Aggiunge i dropdown alle voci con figli senza dipendere dallo stile
   nativo di Elementor. Colori del brand: scuro #141414, oro #d7a24a,
   testo chiaro #eeeeee.
   ========================================================================== */

/* indicatore (freccia) sulle voci con sotto-menu */
.nyx-caret {
  display: inline-block;
  margin-left: 0.4em;
  width: 0;
  height: 0;
  border: 0.3em solid transparent;
  border-top-color: currentColor;
  border-bottom: 0;
  vertical-align: middle;
  transition: transform 0.25s ease;
}

/* lo scroll verso gli anchor di sezione non finisce sotto l'header sticky */
:target,
.nyx-anchor {
  scroll-margin-top: 7.5rem;
}
.nyx-anchor {
  display: block;
  height: 0;
  visibility: hidden;
}

/* ===================== DESKTOP (menu --main): hover ====================== */
.elementor-nav-menu--main .nyx-has-children {
  position: relative;
}

.elementor-nav-menu--main .nyx-submenu {
  display: block;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 999;
  min-width: 15rem;
  margin: 0;
  padding: 0.5rem 0;
  list-style: none;
  background: #141414;
  border-top: 2px solid #d7a24a;
  border-radius: 0 0 0.4rem 0.4rem;
  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  transform: translateY(0.5rem);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}

.elementor-nav-menu--main .nyx-has-children:hover > .nyx-submenu,
.elementor-nav-menu--main .nyx-has-children:focus-within > .nyx-submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.elementor-nav-menu--main .nyx-has-children:hover > .elementor-item .nyx-caret,
.elementor-nav-menu--main .nyx-has-children:focus-within > .elementor-item .nyx-caret {
  transform: rotate(180deg);
}

.elementor-nav-menu--main .nyx-submenu li {
  margin: 0;
  width: 100%;
}

.elementor-nav-menu--main .nyx-submenu .elementor-sub-item {
  display: block;
  padding: 0.6rem 1.4rem;
  color: #eeeeee;
  font-size: 0.95rem;
  line-height: 1.35;
  white-space: nowrap;
  text-decoration: none;
  border-left: 2px solid transparent;
  transition: color 0.18s ease, background-color 0.18s ease,
    border-color 0.18s ease, padding-left 0.18s ease;
}

.elementor-nav-menu--main .nyx-submenu .elementor-sub-item:hover,
.elementor-nav-menu--main .nyx-submenu .elementor-sub-item:focus {
  color: #d7a24a;
  background-color: rgba(215, 162, 74, 0.1);
  border-left-color: #d7a24a;
  padding-left: 1.7rem;
}

/* ============= MOBILE (menu --dropdown): sotto-menu espanso ============== */
.elementor-nav-menu--dropdown .nyx-submenu {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
  background: rgba(0, 0, 0, 0.18);
}

.elementor-nav-menu--dropdown .nyx-submenu .elementor-sub-item {
  display: block;
  padding: 0.7rem 1rem 0.7rem 2.75rem;
  font-size: 0.95rem;
  text-decoration: none;
  opacity: 0.92;
}

.elementor-nav-menu--dropdown .nyx-submenu .elementor-sub-item::before {
  content: "\2013"; /* trattino come bullet discreto */
  margin-right: 0.5rem;
  opacity: 0.6;
}

/* sul mobile la freccia non serve: i sotto-menu sono gia' espansi */
.elementor-nav-menu--dropdown .nyx-caret {
  display: none;
}

/* =====================================================================
   MENU MOBILE OFF-CANVAS (aperto dall'hamburger)
   Pannello a scomparsa da sinistra con sotto-menu a fisarmonica.
   ===================================================================== */
.nyx-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 100000;
  visibility: hidden;
}
.nyx-mobile-menu.is-open {
  visibility: visible;
}

.nyx-mm-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.nyx-mobile-menu.is-open .nyx-mm-overlay {
  opacity: 1;
}

.nyx-mm-panel {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: min(86vw, 24rem);
  background: #141414;
  color: #eeeeee;
  box-shadow: 0.5rem 0 2rem rgba(0, 0, 0, 0.5);
  transform: translateX(-100%);
  transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 4.75rem 0 2rem;
}
.nyx-mobile-menu.is-open .nyx-mm-panel {
  transform: translateX(0);
}

.nyx-mm-close {
  position: absolute;
  top: 0.9rem;
  right: 0.9rem;
  width: 2.75rem;
  height: 2.75rem;
  background: transparent;
  border: 0;
  color: #eeeeee;
  font-size: 2.2rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.18s ease, transform 0.18s ease;
}
.nyx-mm-close:hover {
  color: #d7a24a;
  transform: rotate(90deg);
}

.nyx-mm-list,
.nyx-mm-sub {
  list-style: none;
  margin: 0;
  padding: 0;
}
.nyx-mm-list > li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.nyx-mm-list a {
  display: block;
  padding: 0.95rem 1.5rem;
  color: #eeeeee;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: color 0.18s ease;
}
.nyx-mm-list a:hover,
.nyx-mm-list a:focus {
  color: #d7a24a;
}

.nyx-mm-row {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
}
.nyx-mm-row > a {
  flex: 1;
}
.nyx-mm-toggle {
  flex: 0 0 3.5rem;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.07);
  color: #eeeeee;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nyx-mm-toggle::before {
  content: "";
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-0.15rem);
  transition: transform 0.25s ease;
}
.nyx-mm-has-children.is-expanded .nyx-mm-toggle {
  color: #d7a24a;
}
.nyx-mm-has-children.is-expanded .nyx-mm-toggle::before {
  transform: rotate(-135deg) translateY(-0.15rem);
}

.nyx-mm-sub {
  max-height: 0;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.28);
  transition: max-height 0.3s ease;
}
.nyx-mm-has-children.is-expanded .nyx-mm-sub {
  max-height: 32rem;
}
.nyx-mm-sub a {
  padding: 0.72rem 1.5rem 0.72rem 2.5rem;
  font-size: 0.97rem;
  font-weight: 500;
  opacity: 0.92;
}
.nyx-mm-sub a::before {
  content: "\2013";
  margin-right: 0.5rem;
  opacity: 0.55;
}

body.nyx-mm-lock {
  overflow: hidden;
}

/* =====================================================================
   RIFINITURE MOBILE / WEBAPP
   ===================================================================== */
/* niente ridimensionamento automatico del testo iOS, tocco coerente */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
a,
button,
.elementor-button,
.elementor-icon {
  -webkit-tap-highlight-color: rgba(215, 162, 74, 0.18);
}

/* scroll fluido verso gli anchor di sezione (rispetta chi preferisce meno animazioni) */
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

/* aree di tocco adeguate su mobile/tablet */
@media (max-width: 1024px) {
  /* icone social del footer: tap target >= 44px */
  a.elementor-social-icon {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  /* link legali e recapiti del footer: piu' alti da toccare */
  .elementor-widget-text-editor a,
  .elementor-widget-icon-list a {
    padding-block: 0.15rem;
  }
}

/* rispetta le aree sicure (notch / home indicator) con viewport-fit=cover */
@supports (padding: env(safe-area-inset-top)) {
  .nyx-mm-panel {
    padding-left: env(safe-area-inset-left);
  }
  .nyx-mm-close {
    top: calc(0.9rem + env(safe-area-inset-top));
    right: calc(0.9rem + env(safe-area-inset-right));
  }
}
