/* ============================================================
 * Header navigation — desktop megabar + mobile accordion
 *
 * Tutto scopato a `header.wp-block-template-part .animated-header
 * .wp-block-navigation` per non toccare altri menu.
 *
 * DESKTOP (>= 768px):
 *   - 2° livello = barra full-width fissa SOTTO l'header bar
 *     `top: var(--main-header-height)` (no gap)
 *     slide-down: `transform: translateY(-12px) → 0` + opacity 0 → 1
 *   - 3° livello = barra full-width `position: absolute; top: 100%` del 2°
 *     stesso slide-down 12px
 *   - NESSUN ponte ::before (bloccavano l'hover sul 1° livello quando attivi)
 *   - Open state: classe `.coima-mega-open` su <li>
 *
 * MOBILE (< 768px):
 *   - Overlay full-screen, accordion con chevron toggle
 *   - Classe `.coima-acc-open` su <li>, max-height inline da JS
 * ============================================================ */

/* ============================================================
 * DESKTOP (>= 768px)
 * ============================================================ */
/* WP core piazza un inline `style="font-size: clamp(14px, ..., 16px)"` su
 * OGNI <li> della navigazione (top-level e submenu) per via di un setting
 * di typography sul blocco navigation. Quel clamp interpola tra 14 e 16 col
 * viewport (~15.264px a desktop tipico), risultando più grande dei 14px fissi
 * della .sub-nav-bar shortcode. Per uniformare TUTTI gli item della nav
 * (header bar top-level + submenu hover) a 14px fissi, override !important
 * sul <li> qui — fuori dal media query così vale anche su mobile. */
header.wp-block-template-part
  .animated-header
  .wp-block-navigation
  .wp-block-navigation-item {
  font-size: 14px !important;
}

@media (min-width: 768px) {
  /* Top-level <li.has-child>: position relative — ancoraggio per ::after. */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__container
    > .wp-block-navigation-item.has-child {
    position: relative !important;
  }

  /* PONTE invisibile sotto il <li> top-level — copre il gap fra il bottom
   * della label (a metà header bar, dove finisce il <li> in layout) e il
   * top della 2° barra (a livello del bottom dell'header). Essendo `::after`
   * del <li>, l'area conta come parte del <li> per mouseenter/mouseleave →
   * il cursore in transito non scatena un close indesiderato.
   *
   * Scope sul <li>'s x-range (`left:0; right:0` rispetto al <li>), così non
   * blocca i fratelli del 1° livello come facevano i ponti full-width della
   * versione precedente. Pointer-events ATTIVO solo quando il menu è aperto:
   * a menu chiuso il ponte non deve catturare niente (non c'è gerarchia da
   * mantenere). */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__container
    > .wp-block-navigation-item.has-child::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 120px;
    background: transparent;
    pointer-events: none;
  }
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__container
    > .wp-block-navigation-item.has-child.coima-mega-open::after {
    pointer-events: auto;
  }

  /* Nested <li.has-child> (dentro un submenu): position STATIC, perché il
   * submenu 3° livello dev'essere `position: absolute` ancorato al 2° (fixed),
   * non al <li> intermedio. */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item.has-child {
    position: static !important;
  }

  /* 2° livello: barra full-width fissa, attaccata al bottom dell'header bar.
   * Slide-down: `transform: translateY(-12px) → 0` + fade. Box rimane di
   * altezza naturale (no max-height animation), così il 3° livello che è
   * `top: 100%` del 2° non insegue un'altezza che cambia. */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container {
    position: fixed !important;
    top: var(--main-header-height, 80px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    box-sizing: border-box !important;

    /* CRITICO: WP core (wp-includes/blocks/navigation/style.css L93-115)
     * imposta `height:0; width:0; visibility:hidden; overflow:hidden` di
     * default e li riporta a valori normali SOLO su `.has-child:hover`.
     * Questo significa che appena il cursore lascia la label il submenu
     * collassa a 0×0 — sparisce dall'hit-area del <li> e mouseleave parte
     * subito. Override permanente qui sotto: l'hit-area resta stabile,
     * la visibilità è controllata via opacity/pointer-events della MIA
     * classe `.coima-mega-open`, non da `:hover` di core. */
    height: auto !important;
    width: 100vw !important;
    visibility: visible !important;
    overflow: visible !important;

    background: #ffffff;
    border-bottom: 1px solid var(--color-neutral-200, #d8d8d8);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);

    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    padding: 14px 24px !important;
    margin: 0 !important;
    list-style: none;
    z-index: 99;

    /* Stato CHIUSO + TRANSIZIONE UNICA. Solo fade (no slide) — feedback
     * design: animazione più semplice e veloce (180ms). */
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
  }

  /* Pointer-events INHERIT chirurgico — solo sui <li> di navigazione e
   * sui loro link/contenuti, NON sui submenu annidati (che restano governati
   * dalle proprie regole `.coima-mega-open`). Senza questo, i <li>/<a> dentro
   * il submenu — che hanno `pointer-events: auto` di default — catturano il
   * cursore anche quando il container ha `pointer-events: none` (chiuso),
   * estendendo l'hit-area del <li> top-level e bloccando mouseleave.
   *
   * Selettori `.navigation-item` e `.navigation-item__content` SENZA puntare
   * a `.submenu-container` annidato → il 3° livello mantiene la propria
   * visibilità indipendente dal 2°. */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item,
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item__content,
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item__content * {
    pointer-events: inherit;
  }

  /* Admin bar: il submenu fixed (TOP-LEVEL, direct child di .has-child del
   * navigation__container) scende di +admin-bar-height. Selettore ristretto
   * a `> .has-child > .submenu` per NON matchare il 3°-livello — altrimenti
   * il 3° riceveva top: calc(32+115) (stesso del 2°) e si sovrapponeva. */
  body.admin-bar
    header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__container
    > .has-child
    > .wp-block-navigation__submenu-container {
    top: calc(
      var(--wp-admin--admin-bar--height, 32px) +
      var(--main-header-height, 80px)
    ) !important;
  }

  /* Stato APERTO — solo opacity + pointer-events. */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .has-child.coima-mega-open
    > .wp-block-navigation__submenu-container {
    opacity: 1;
    pointer-events: auto;
  }

  /* Stile voci dentro la megabar (mimica .sub-nav-bar) */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item {
    /* Override DELL'INLINE `style="font-size: clamp(14px, ..., 16px)"` che WP
     * core mette sul <li>. Il clamp dava ~15.264px a viewport medio. Forzando
     * 14px qui, tutta la catena <li>→<a>→<span> eredita correttamente. */
    font-size: 14px !important;
    margin: 0 !important;
    background: transparent !important;
    color: inherit !important;
  }
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item__content {
    /* Allineato a .sub-nav-bar (shortcode [coima_subnav]): stesso font-size
     * 14px FIXED — niente clamp ereditato dal <nav> — così le voci della
     * megabar hover hanno la stessa misura delle sub-nav in-flow. */
    font-size: 14px !important;
    padding: 6px 0 !important;
    border-bottom: 2px solid transparent;
    color: var(--color-neutral-700, #3b3b3b) !important;
    text-decoration: none !important;
    white-space: nowrap;
    background: transparent !important;
    display: inline-block;
    transition:
      color 0.2s ease,
      border-color 0.2s ease;
  }
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item__content:hover {
    color: var(--color-primary-500, #0e4ca1) !important;
  }
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item__content[aria-current="page"] {
    color: var(--color-primary-500, #0e4ca1) !important;
    border-bottom-color: var(--color-primary-500, #0e4ca1);
    font-weight: 600;
  }

  /* 3° livello — barra full-width attaccata sotto il 2°. `position: absolute;
   * top: 100%` si ancora al 2° (fixed) perché i <li> nested sono static.
   * Stesso slide-down 12px. NO admin-bar offset (è già relativo al 2°). */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .wp-block-navigation__submenu-container
    .wp-block-navigation__submenu-container {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    background: var(--color-neutral-50, #fafafa) !important;
    border-top: 1px solid var(--color-neutral-200, #d8d8d8);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
  }

  /* Marker visivo sul parent aperto */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .has-child.coima-mega-open
    > .wp-block-navigation-item__content {
    color: var(--color-primary-500, #0e4ca1);
  }

  /* Toggle accordion mobile nascosto su desktop */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .coima-acc-toggle {
    display: none !important;
  }
}

/* ============================================================
 * MOBILE (< 768px)
 * ============================================================ */
@media (max-width: 767px) {
  /* Overlay container. Apre SOTTO la fascia grigia superiore (topbar
   * COIMA/SGR/REM/RES) così la band resta visibile a menu aperto invece di
   * essere coperta dall'overlay full-screen. Il bottone di chiusura (X) è
   * `position: absolute; top/right:0` dentro questo container: padding-top
   * (calc dai var --main-header-height / --coima-topbar-height) lo centra nella
   * riga logo, padding-right (var --coima-nav-right = inset destro
   * dell'hamburger) lo allinea in orizzontale — per-sito, le misure variano. */
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open {
    top: var(--coima-topbar-height, 34px) !important;
    bottom: 0 !important;
    height: auto !important;
    max-height: calc(100vh - var(--coima-topbar-height, 34px)) !important;
    overflow-y: auto !important;
    padding: calc((var(--main-header-height, 84px) - var(--coima-topbar-height, 34px)) / 2 - 12px) var(--coima-nav-right, 30px) 24px 20px !important;
    background: #ffffff !important;
  }

  /* Admin bar: l'overlay scende di admin-bar + topbar. */
  body.admin-bar
    header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open {
    top: calc(
      var(--wp-admin--admin-bar--height, 46px) +
      var(--coima-topbar-height, 34px)
    ) !important;
    max-height: calc(
      100vh - var(--wp-admin--admin-bar--height, 46px) -
      var(--coima-topbar-height, 34px)
    ) !important;
  }

  /* Layout colonna stretch full-width per OGNI <ul>, sia top-level che nested. */
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container,
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container {
    display: block !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    gap: 0 !important;
  }
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container {
    padding: 0 !important;
  }

  /* TUTTI i <li> in overlay → position: relative (per il chevron absolute)
   * + reset background/text-align. Vale sia per top-level che nested. */
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item {
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    background: transparent !important;
  }

  /* Nessuna riga separatrice — la gerarchia è data dall'indentazione. */
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item {
    border: 0 !important;
  }

  /* Link content — block full-width, padding-right per il chevron 48px.
   * Padding verticale ridotto (8px) ora che sfondi/linee sono spariti. */
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item__content {
    display: block !important;
    padding: 8px 56px 8px 0 !important;
    color: var(--color-neutral-800, #212121) !important;
    text-decoration: none !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
    width: 100% !important;
    text-align: left !important;
    background: transparent !important;
  }

  /* Chevron toggle — absolute relative al <li>, allineato al link */
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .coima-acc-toggle {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: 48px !important;
    height: 36px !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--color-neutral-700, #3b3b3b) !important;
    z-index: 2;
  }
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .coima-acc-toggle
    svg {
    width: 14px !important;
    height: 14px !important;
    transition: transform 0.25s ease !important;
  }
  header.wp-block-template-part
    .animated-header
    .wp-block-navigation
    .has-child.coima-acc-open
    > .coima-acc-toggle
    svg {
    transform: rotate(180deg) !important;
  }

  /* Submenu accordion: invisibile via max-height 0 + overflow hidden.
   * Inline `max-height: NNNpx` settato da JS via scrollHeight in apertura. */
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container {
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    max-height: 0 !important;
    background: transparent !important;
    transition: max-height 0.3s ease !important;
  }

  /* Fallback per quando inline max-height non c'è (es. prima dell'apertura JS). */
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .has-child.coima-acc-open
    > .wp-block-navigation__submenu-container {
    max-height: 3000px !important;
  }

  /* Voci 2° livello — indent + font slightly minore + padding compatto */
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item__content {
    padding: 6px 56px 6px 20px !important;
    font-size: 15px !important;
    color: var(--color-neutral-700, #3b3b3b) !important;
  }

  /* 3° livello — solo indent maggiore (no sfondo). */
  header.wp-block-template-part
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item__content {
    padding-left: 36px !important;
    font-size: 14px !important;
  }
}

/* ============================================================
 * Voci del menu (1° livello, barra desktop): underline animata su
 * hover — stessa animazione dei coima-content-link (1px, riempie da
 * sinistra). Submenu megabar e menu mobile NON la prendono: le loro
 * regole impostano `background: transparent !important`, che azzera
 * anche il background-image.
 * ============================================================ */
header.wp-block-template-part
  .animated-header
  .wp-block-navigation
  .wp-block-navigation-item__content {
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0 1px;
  transition: background-size 0.3s ease;
}
header.wp-block-template-part
  .animated-header
  .wp-block-navigation
  .wp-block-navigation-item__content:hover {
  background-size: 100% 1px;
}

/* Voce di 1° livello attiva, o antenata della pagina che stai guardando: la stessa
 * underline dell'hover, ma NIENTE cambio di colore — il blu resta ai submenu e alla
 * sub-nav bar. `current-menu-item`/`current-menu-ancestor` le mette WordPress per le
 * voci curate e Coima_Nav_Active per il 3° livello iniettato e per l'EN. */
header.wp-block-template-part
  .animated-header
  .wp-block-navigation
  li.current-menu-item
  > .wp-block-navigation-item__content,
header.wp-block-template-part
  .animated-header
  .wp-block-navigation
  li.current-menu-ancestor
  > .wp-block-navigation-item__content {
  background-size: 100% 1px;
}
