/* ===============================================================
   MENU DA TELEFONO

   Sotto i 700 px il menu del disegno originale veniva nascosto e
   basta: dal telefono non c'era modo di cambiare pagina. Qui c'è il
   pulsante che lo riapre a tutta pagina.

   In quella larghezza non ci stanno insieme logo, lingue, "Prenota
   ora" e menu: il selettore delle lingue viene spostato dentro al
   pannello, dove ha spazio per respirare.
   =============================================================== */

/* ── il pulsante ─────────────────────────────────────────────── */
.tv-menu-tasto {
  display: none;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-left: 6px;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #fff;
  cursor: pointer;
  flex: 0 0 auto;
  /* sopra le foto chiare il bianco sparirebbe */
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .55));
}

/* Il tema di base colora di rosa ogni pulsante toccato o sorvolato
   (regola button:hover di Hello Elementor): qui non deve succedere. */
.tv-menu-tasto:hover,
.tv-menu-tasto:focus { background: transparent; outline: none; }
.tv-menu-tasto:focus-visible { box-shadow: 0 0 0 2px rgba(255, 255, 255, .6); }

nav.solid .tv-menu-tasto,
nav.scrolled .tv-menu-tasto { color: #023B52; filter: none; }
nav.solid .tv-menu-tasto:focus-visible,
nav.scrolled .tv-menu-tasto:focus-visible { box-shadow: 0 0 0 2px rgba(2, 59, 82, .4); }

/* col menu aperto la barra è bianca: il colore lo decide la regola più sotto */
body.tv-menu-aperto .tv-menu-tasto { filter: none; }

.tv-menu-tasto span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  position: relative;
  transition: background .2s;
}
.tv-menu-tasto span::before,
.tv-menu-tasto span::after {
  content: '';
  position: absolute;
  left: 0;
  width: 22px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform .25s, top .25s;
}
.tv-menu-tasto span::before { top: -7px; }
.tv-menu-tasto span::after  { top:  7px; }

/* aperto: le tre righe diventano una croce */
body.tv-menu-aperto .tv-menu-tasto span { background: transparent; }
body.tv-menu-aperto .tv-menu-tasto span::before { top: 0; transform: rotate(45deg); }
body.tv-menu-aperto .tv-menu-tasto span::after  { top: 0; transform: rotate(-45deg); }

/* ── da telefono ─────────────────────────────────────────────── */
@media (max-width: 700px) {

  .tv-menu-tasto { display: inline-flex; }

  nav .tv-lingue { display: none; }

  body.tv-menu-aperto { overflow: hidden; }

  body.tv-menu-aperto nav .tv-nav-links,
  body.tv-menu-aperto nav .nav-links {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    position: fixed;
    top: var(--tv-barra, 64px);
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0;
    padding: 10px 24px 40px;
    background: #023B52;
    overflow-y: auto;
    z-index: 350;
  }

  body.tv-menu-aperto nav .tv-nav-links > li {
    width: 100%;
    border-bottom: 1px solid rgba(255, 255, 255, .10);
  }
  body.tv-menu-aperto nav .tv-nav-links > li > a {
    display: block;
    padding: 17px 2px;
    font-size: .98rem;
    letter-spacing: .06em;
    color: #fff;
  }

  /* le sotto-voci restano aperte: sul telefono non c'è il passaggio del mouse */
  body.tv-menu-aperto nav .tv-nav-links .sub-menu {
    position: static !important;
    display: block !important;
    transform: none !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    min-width: 0;
    margin: 0 0 10px 16px !important;
    padding: 0 !important;
  }
  body.tv-menu-aperto nav .tv-nav-links .sub-menu a {
    padding: 12px 2px;
    font-size: .88rem;
    color: rgba(255, 255, 255, .72);
  }

  /* il selettore delle lingue, ospitato nel pannello */
  body.tv-menu-aperto .tv-menu-lingue { display: block; padding: 22px 2px 0; }
  body.tv-menu-aperto .tv-menu-lingue .tv-lingue { display: block; }
  body.tv-menu-aperto .tv-menu-lingue > p {
    margin: 0 0 10px;
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .45);
  }

  /* La barra sopra il pannello diventa bianca: così il logo si vede sempre,
     anche senza aver caricato una versione chiara. */
  body.tv-menu-aperto nav {
    background: #ffffff !important;
    box-shadow: 0 1px 16px rgba(2, 59, 82, .12);
    z-index: 400;
  }
  body.tv-menu-aperto .nav-logo { color: #023B52 !important; }
  body.tv-menu-aperto .tv-menu-tasto { color: #023B52; }
  body.tv-menu-aperto .tv-menu-tasto:focus-visible { box-shadow: 0 0 0 2px rgba(2, 59, 82, .4); }
}
