/* MP Menu - barra orizzontale desktop (sostituisce ets_megamenu da 992px in su).
   Misure prese dal menu ets: barra 60px #084c95, voci 14px/700 maiuscole bianche
   (hover #ffe580), tendina bianca a tutta larghezza con bordo #e7e7e7, foto 208x104. */

.mpn {
  display: none;
  /* stessa palette delle card di mpsubcategories, così menu e pagine categoria
     hanno lo stesso linguaggio grafico */
  --mpn-blue: #084c95;
  --mpn-border: #e3ebf5;
  --mpn-cielo: #eef4fb;
  --mpn-cielo2: #f4f8fd;
  --mpn-surface: #eef1f6; /* fondo tendina, come il drawer mobile */
}

@media (min-width: 992px) {
  .mpn {
    display: block;
    position: relative;
  }

  .mpn-bar {
    background: #084c95;
  }

  /* La barra esce dal flusso: teniamo lo spazio per non far saltare la pagina. */
  .mpn.is-stuck {
    height: var(--mpn-h, 60px);
  }

  .mpn.is-stuck .mpn-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1040; /* come la vecchia .ets_mm_megamenu.scroll_heading */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  }

  .mpn-list {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap; /* meglio due righe che una barra che sborda dallo schermo */
    max-width: 1500px;
    margin: 0 auto;
    padding: 0 6px;
    list-style: none;
  }

  .mpn-li {
    display: flex;
    align-items: stretch;
    position: static; /* la tendina si ancora alla barra, non alla voce */
  }

  .mpn-top {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 60px;
    padding: 0 10px;
    border: 0;
    background: transparent;
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
  }

  .mpn-arrow {
    display: inline-flex;
    align-items: center;
    height: 60px;
    padding: 0 8px 0 0;
    margin-left: -8px;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
  }

  .mpn-top:hover,
  .mpn-top:focus-visible,
  .mpn-li.is-open .mpn-top,
  .mpn-li.is-open .mpn-arrow {
    color: #ffe580;
    text-decoration: none;
  }

  /* messa a fuoco da tastiera: il contorno nero di default sul blu non si legge */
  .mpn-top:focus-visible,
  .mpn-arrow:focus-visible {
    outline: 2px solid #ffe580;
    outline-offset: -4px;
    border-radius: 8px;
  }

  .mpn-tile:focus-visible {
    outline: 2px solid var(--mpn-blue);
    outline-offset: 2px;
  }

  .mpn-top__caret,
  .mpn-arrow svg {
    transition: transform 0.15s ease;
  }

  .mpn-li.is-open .mpn-top__caret,
  .mpn-li.is-open .mpn-arrow svg {
    transform: rotate(180deg);
  }

  /* ---------- tendina ---------- */

  .mpn-panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1030; /* sopra la colonna riepilogo sticky di carrello/checkout (1020) */
    visibility: hidden;
    opacity: 0;
    background: var(--mpn-surface);
    border-bottom: 1px solid var(--mpn-border);
    border-radius: 0 0 18px 18px;
    box-shadow: 0 18px 34px rgba(8, 76, 149, 0.12);
    transform: translateY(-6px);
    transition: opacity 0.16s ease, transform 0.16s ease;
  }

  .mpn-li.is-open .mpn-panel {
    transform: translateY(0);
  }

  .mpn-li.is-open .mpn-panel {
    visibility: visible;
    opacity: 1;
  }

  /* Le colonne le decide il modulo in base a quanti blocchi ci sono (4, 5 o 6), così
     l'ultima riga resta il più piena possibile e non restano celle sfalsate. */
  .mpn-panel__inner {
    display: grid;
    grid-template-columns: repeat(var(--mpn-cols, 6), minmax(0, 1fr));
    align-items: start;
    gap: 16px;
    max-width: 1500px;
    margin: 0 auto;
    padding: 20px 16px 24px; /* 16px = allineato alla prima voce della barra (6 + 10) */
  }

  .mpn-cell {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  /* Card come quelle delle sottocategorie: foto in alto, nome su fondo celestino. */
  .mpn-tile {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--mpn-border);
    border-radius: 16px;
    color: inherit;
    text-decoration: none;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
  }

  .mpn-tile:hover,
  .mpn-tile:focus-visible {
    border-color: #c6d8f0;
    box-shadow: 0 10px 26px rgba(8, 76, 149, 0.16);
    transform: translateY(-3px);
    color: inherit;
    text-decoration: none;
  }

  .mpn-tile__media {
    display: block;
    overflow: hidden;
    aspect-ratio: 2 / 1;
    background: var(--mpn-cielo);
  }

  .mpn-tile__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
  }

  .mpn-tile:hover .mpn-tile__img {
    transform: scale(1.06);
  }

  .mpn-tile__body {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    /* due righe di spazio riservate: le card della stessa riga restano alte uguali
       anche quando un nome va a capo */
    min-height: 60px;
    padding: 11px 12px 11px 14px;
    background: var(--mpn-cielo2);
    border-top: 1px solid #e2ecf8;
  }

  /* card senza foto (es. Pasqua): stessa altezza anche se un nome va a capo */
  .mpn-tile--noimg .mpn-tile__body {
    min-height: 70px;
    border-top: 0;
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .mpn-tile__name {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--mpn-blue);
    /* max due righe: certi nomi di catalogo tradotti ne occupano tre e sfalserebbero
       le card della stessa riga (es. in ES "Pozos-Puentes-Rios...") */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .mpn-tile__chevron {
    flex: 0 0 auto;
    color: #9fb6d4;
    transition: transform 0.2s ease, color 0.2s ease;
  }

  .mpn-tile:hover .mpn-tile__chevron {
    color: var(--mpn-blue);
    transform: translateX(3px);
  }

  /* Sottocategorie: continuano la card, non galleggiano sotto. La card perde gli
     angoli e il bordo in basso, l'elenco li riprende: sembra un pezzo solo. */
  .mpn-cell--sub .mpn-tile {
    border-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }

  .mpn-cell--sub .mpn-tile__body {
    min-height: 0;
    padding-bottom: 9px;
    border-bottom: 1px solid #e2ecf8; /* stacca il titolo dall'elenco */
  }

  .mpn-sub {
    margin: 0;
    padding: 2px 12px 10px;
    list-style: none;
    background: var(--mpn-cielo2);
    border: 1px solid var(--mpn-border);
    border-top: 0;
    border-radius: 0 0 16px 16px;
  }

  .mpn-cell--sub:hover .mpn-sub {
    border-color: #c6d8f0;
  }

  .mpn-sub__link {
    display: block;
    padding: 4px 0 4px 12px;
    position: relative;
    color: #4a5a6e;
    font-size: 13px;
    line-height: 1.3;
    text-decoration: none;
    transition: color 0.15s ease, padding-left 0.15s ease;
  }

  /* trattino di elenco disegnato: allinea i nomi e non usa un carattere di lista */
  .mpn-sub__link::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 50%;
    width: 5px;
    height: 1px;
    background: #b6c6da;
    transition: background 0.15s ease;
  }

  .mpn-sub__link:hover,
  .mpn-sub__link:focus-visible {
    color: var(--mpn-blue);
    padding-left: 16px;
    text-decoration: none;
  }

  .mpn-sub__link:hover::before,
  .mpn-sub__link:focus-visible::before {
    background: var(--mpn-blue);
  }

  /* Laptop stretti: 10 voci lunghe, si stringono per restare su una riga.
     Stesse soglie già tarate sul menu ets in custom.css. */
  @media (max-width: 1366.98px) {
    .mpn-top {
      font-size: 13px;
      padding: 0 8px;
    }
  }

  @media (max-width: 1319.98px) {
    .mpn-top {
      font-size: 12px;
      padding: 0 6px;
    }
  }
}
