/* ============================================
   HEADER MENU - FISSO IN BASSO A DESTRA
   ============================================ */

header .wp-block-bs-library-blocks-header-menu {
    position: fixed;
    right: 6rem;
    bottom: 2rem;
    z-index: 1001;
  }

@media screen and (max-width: 1024px) {

header .wp-block-bs-library-blocks-header-menu {
      right: 5rem;
      top: 2rem;
      bottom: auto;
  }
    }

/* Override: hamburger sempre visibile, anche in desktop */

:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container {
      display: block !important;
      background: var(--wp--preset--color--contrast);
      width: 3.5rem;
      height: 3.5rem;
      position: relative;
      z-index: 1002;
    }

:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button {
        display: flex !important;
        width: 100%;
        height: 100%;
        align-items: center;
        justify-content: center;
        color: var(--wp--preset--color--base);
        transition: transform 0.2s ease;
      }

:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button):hover {
          transform: scale(1.05);
        }

:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-hamburger {
          width: 2rem;
          height: 2rem;
          display: block !important;
        }

:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-close {
          display: none !important;
          /* X nascosta, non usata in questa versione */
        }

/* Animazione hamburger: 3 linee → 1 linea centrale */

:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-hamburger line {
          transition:
            transform 0.3s ease,
            opacity 0.3s ease;
          transform-origin: center;
        }

/* Stato chiuso: icona hamburger visibile, X nascosta */

:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-hamburger {
          opacity: 1;
          transition: opacity 0.3s ease;
        }

:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-close {
          opacity: 0;
          position: absolute;
          transition: opacity 0.3s ease;
        }

/* Stato aperto: le 3 linee convergono al centro */

.menu-open:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-hamburger {
            opacity: 1;
            /* Mantiene hamburger visibile */
          }

.menu-open:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-close {
            opacity: 0;
            /* X sempre nascosta */
            pointer-events: none;
          }

.menu-open:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-hamburger line:nth-child(1) {
            transform: translateY(6px);
            /* Porta la prima linea (y=6) al centro (y=12) */
          }

.menu-open:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-hamburger line:nth-child(2) {
            transform: translateY(0);
            /* Linea centrale rimane ferma */
          }

.menu-open:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .menu-button-container) button) .icon-hamburger line:nth-child(3) {
            transform: translateY(-6px);
            /* Porta la terza linea (y=18) al centro (y=12) */
          }

/* ============================================
           MENU A SINISTRA DEL BOTTONE
           ============================================ */

:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul {
      /* Override: sempre position fixed */
      position: fixed !important;
      bottom: 2rem;
      right: 8rem;
    }

@media screen and (max-width: 1024px) {

:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul {
        top: 2rem;
        bottom: auto;
    }
      }

:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul {

      /* Layout orizzontale */
      display: flex;
      flex-direction: row;
      gap: 0;

      /* Stato iniziale: nascosto */
      opacity: 0;
      visibility: hidden;
      pointer-events: none;

      /* Animazione combinata: slide + espansione */
      transition:
        opacity 0.3s ease,
        visibility 0.3s ease,
        transform 0.3s ease;
      transform: translateX(2rem) scaleX(0);
      transform-origin: right center;
      /* Si apre da destra verso sinistra */

      /* Stile visivo */
      background: var(--wp--preset--color--contrast);
      margin: 0;
      padding: 0;
      list-style: none;
      /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); */
      overflow: hidden;

      /* Stato aperto: scorre e si espande */
    }

.active-menu:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translateX(0) scaleX(1);
      }

/* ============================================
               VOCI MENU
               ============================================ */

:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item {
        position: relative;
        margin: 0;
        padding: 0;
      }

:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) a {
          display: block;
          padding: 0.6em 1em;
          color: var(--wp--preset--color--contrast-3);
          text-decoration: none;
          font-size: var(--wp--preset--font-size--large);
          font-weight: 700;
          text-transform: uppercase;
          letter-spacing: 0.05em;
          white-space: nowrap;
          transition: color 0.2s ease;
        }

:is(:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) a):hover,:is(:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) a):focus {
            color: var(--wp--preset--color--base);
          }

.current-menu-item:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) a {
          color: var(--wp--preset--color--base);
        }

/* ============================================
                   SOTTOMENU
                   ============================================ */

.has-children:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) .sub-menu-toggle {
            position: absolute;
            right: 0.25rem;
            top: 50%;
            transform: translateY(-50%);
            padding: 0.25rem;
            width: 1.5rem;
            height: 1.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--wp--preset--color--base);
          }

:is(.has-children:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) .sub-menu-toggle) .icon-chevron {
              width: 1rem;
              height: 1rem;
            }

.has-children:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) .sub-menu {
            position: absolute;
            bottom: 100%;
            left: 0;
            margin-bottom: 0.5rem;
            background: var(--wp--preset--color--contrast);
            border-radius: 0.5rem;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
            min-width: 12rem;
            padding: 0.5rem 0;
          }

:is(.has-children:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) .sub-menu) li {
              border-right: none;
            }

:is(:is(.has-children:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) .sub-menu) li) a {
                padding: 0.75rem 1.25rem;
                font-size: 0.85rem;
              }

/* ============================================
           RESPONSIVE: TABLET E MOBILE
           ============================================ */

@media screen and (max-width: 1199px) {
      :is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul {
        /* In tablet/mobile: menu verticale a tutta altezza */
        flex-direction: column;
        max-height: calc(100vh - 10rem);
        overflow-y: auto;
        width: auto;
        min-width: 15rem;
      }
          :is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) a {
            padding: 1.25rem 1.5rem;
          }
            .has-children:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) .sub-menu {
              position: static;
              margin: 0;
              box-shadow: none;
              border-radius: 0;
              background: rgba(0, 0, 0, 0.2);
              padding: 0;
            }

              :is(.has-children:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) .sub-menu) li a {
                padding-left: 2.5rem;
              }

            .has-children:is(:is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item) .sub-menu-toggle {
              right: 1rem;
            }
    }

@media screen and (max-width: 640px) {
      /* Mobile: menu più compatto */
      :is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul {
        min-width: 12rem;
        right: 6.5rem;
      }

        :is(:is(header .wp-block-bs-library-blocks-header-menu) .primary-menu-container > ul) li.menu-item a {
          padding: 1rem 1.25rem;
          font-size: 0.85rem;
        }
    }
