/*
 * Menu a tutto schermo (burger) — stile coerente con meliodika-ui.css.
 * Il menu viene generato da blocs.min.js copiando la <ul class="site-navigation">
 * della pagina dentro .blocsapp-special-menu > blocsnav.
 * Le prime 3 voci (Home, Fares, Start) sono le principali e vengono mostrate più grandi.
 */
.blocsapp-special-menu blocsnav.nav-special.fullscreen-nav {
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(900px 520px at 88% -8%, rgba(242, 161, 69, 0.22), transparent 62%),
    radial-gradient(800px 480px at -8% 108%, rgba(66, 133, 230, 0.18), transparent 60%),
    rgba(232, 238, 247, 0.97);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  transition: opacity .25s ease, transform .3s cubic-bezier(.2, .8, .2, 1);
}
.blocsapp-special-menu blocsnav.nav-special.fullscreen-nav.open-left { transform: translateX(-40px); }
.blocsapp-special-menu blocsnav.nav-special.fullscreen-nav.open.open-left { transform: none; }

/* Elenco */
.blocsapp-special-menu .nav-special.fullscreen-nav .site-navigation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 32px;
  row-gap: 2px;
  width: 100%;
  /* Blocs forza max-width:100%!important: qui serve una colonna centrata */
  max-width: 720px !important;
  margin: auto !important;
  padding: 88px 24px 48px;
  text-align: left;
}
.blocsapp-special-menu .nav-special.fullscreen-nav .site-navigation > li { width: auto; }
.blocsapp-special-menu .nav-special.fullscreen-nav .site-navigation > li:nth-child(-n+3) { grid-column: 1 / -1; }
.blocsapp-special-menu .nav-special.fullscreen-nav .site-navigation > li:nth-child(3) {
  padding-bottom: 22px;
  margin-bottom: 18px;
  border-bottom: 1px solid rgba(28, 28, 28, 0.1) !important;
}

/* Voci */
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  margin-left: -16px;
  border-radius: 14px;
  font-family: "Plus Jakarta Sans", "Open Sans", sans-serif;
  font-size: clamp(17px, 1.8vw, 20px);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  text-align: left;
  color: #3A3B3C;
  transition: color .2s ease, background .2s ease;
}
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li:nth-child(-n+3) > a.nav-link {
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: #1C1C1C;
}
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link::after {
  content: "\2192";
  font-weight: 700;
  color: #E56125;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity .2s ease, transform .2s ease;
}
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link:hover,
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link:focus-visible {
  color: #E56125;
  background: rgba(255, 255, 255, 0.65);
}
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link:hover::after,
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link:focus-visible::after {
  opacity: 1;
  transform: none;
}

/* Pagina corrente: Blocs scrive href="." (o "./" nella home) per la pagina aperta */
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link[href="."],
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link[href="./"] {
  color: #E56125;
}
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link[href="."]::before,
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link[href="./"]::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #F2A145;
  box-shadow: 0 0 0 4px rgba(242, 161, 69, 0.22);
  flex-shrink: 0;
}

/* Entrata delle voci: più rapida dell'originale */
.blocsapp-special-menu .nav-special.fullscreen-nav .nav > li.animated {
  animation-name: ml-nav-in;
  animation-duration: .45s;
  animation-timing-function: cubic-bezier(.2, .8, .2, 1);
}
.blocsapp-special-menu .nav > li:nth-child(1) { animation-delay: 40ms !important; }
.blocsapp-special-menu .nav > li:nth-child(2) { animation-delay: 80ms !important; }
.blocsapp-special-menu .nav > li:nth-child(3) { animation-delay: 120ms !important; }
.blocsapp-special-menu .nav > li:nth-child(4) { animation-delay: 170ms !important; }
.blocsapp-special-menu .nav > li:nth-child(5) { animation-delay: 190ms !important; }
.blocsapp-special-menu .nav > li:nth-child(6) { animation-delay: 210ms !important; }
.blocsapp-special-menu .nav > li:nth-child(7) { animation-delay: 230ms !important; }
.blocsapp-special-menu .nav > li:nth-child(8) { animation-delay: 250ms !important; }
.blocsapp-special-menu .nav > li:nth-child(9) { animation-delay: 270ms !important; }
.blocsapp-special-menu .nav > li:nth-child(10) { animation-delay: 290ms !important; }
.blocsapp-special-menu .nav > li:nth-child(n+11) { animation-delay: 310ms !important; }
@keyframes ml-nav-in {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

/* Pulsante di chiusura */
.blocsapp-special-menu .nav-special.fullscreen-nav .close-special-menu {
  position: absolute;
  top: 18px;
  right: 20px;
  left: auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #fff;
  box-shadow: 0 1px 2px rgba(28, 28, 28, 0.04), 0 8px 28px rgba(28, 28, 28, 0.1);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.blocsapp-special-menu .nav-special.fullscreen-nav .close-special-menu .close-icon {
  width: 20px;
  height: 2px;
  margin: 0;
  border-radius: 2px;
  background: #1C1C1C;
}
.blocsapp-special-menu .nav-special.fullscreen-nav .close-special-menu:hover {
  background: #1C1C1C;
  transform: rotate(90deg);
}
.blocsapp-special-menu .nav-special.fullscreen-nav .close-special-menu:hover .close-icon { background: #fff; }

@media (max-width: 640px) {
  .blocsapp-special-menu .nav-special.fullscreen-nav .site-navigation {
    grid-template-columns: 1fr;
    padding: 84px 20px 40px;
  }
  .blocsapp-special-menu .nav-special.fullscreen-nav .site-navigation > li:nth-child(3) {
    padding-bottom: 14px;
    margin-bottom: 10px;
  }
  .blocsapp-special-menu .nav-special.fullscreen-nav .nav > li > a.nav-link { padding: 7px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .blocsapp-special-menu .nav-special.fullscreen-nav .nav > li.animated { animation: none; }
  .blocsapp-special-menu .nav-special.fullscreen-nav .close-special-menu:hover { transform: none; }
}

/* ======================================================================
 * Header (barra sticky) — stesso stile delle card del sito
 * ==================================================================== */
.bloc.ml-header {
  background: rgba(255, 255, 255, 0.72) !important;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(28, 28, 28, 0.06);
}
.bloc.ml-header.sticky {
  background: rgba(255, 255, 255, 0.82) !important;
  box-shadow: 0 1px 2px rgba(28, 28, 28, 0.04), 0 8px 28px rgba(28, 28, 28, 0.08);
}

/* Burger: pulsante rotondo bianco */
.ml-header .ui-navbar-toggler.navbar-toggler {
  width: 44px;
  height: 44px;
  border-radius: 50% !important;
  background: #fff;
  box-shadow: 0 1px 2px rgba(28, 28, 28, 0.06), 0 4px 14px rgba(28, 28, 28, 0.08);
  display: inline-grid;
  place-items: center;
  transition: transform .2s ease, box-shadow .2s ease;
}
.ml-header .ui-navbar-toggler.navbar-toggler:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(28, 28, 28, 0.06), 0 8px 20px rgba(28, 28, 28, 0.12); }
.ml-header .ui-navbar-toggler .navbar-toggler-icon { width: 22px; height: 22px; }

/* Carrello: pillola con icona e totale */
.ml-header .navbar-content-area { display: flex; justify-content: center; }
.ml-header .navbar-content-area .button-checkout {
  left: 0 !important;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 4px 6px 4px 6px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(28, 28, 28, 0.06), 0 4px 14px rgba(28, 28, 28, 0.08);
  letter-spacing: 0;
  transition: box-shadow .2s ease, transform .2s ease;
}
.ml-header .navbar-content-area .button-checkout:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(28, 28, 28, 0.06), 0 8px 20px rgba(28, 28, 28, 0.12); }
.ml-header button-checkout,
.ml-header price-counter {
  margin: 0;
  padding: 6px 10px;
  border-radius: 999px;
  color: #1C1C1C;
  font-size: 17px;
  letter-spacing: 0;
  transition: color .2s ease, background .2s ease;
}
.ml-header price-counter {
  font-family: "Plus Jakarta Sans", "Open Sans", sans-serif;
  font-weight: 800;
  font-size: 16px;
  padding-left: 4px;
  padding-right: 14px;
}
.ml-header button-checkout:hover,
.ml-header price-counter:hover { color: #E56125; }
.ml-header .mc-count { top: -9px; }

/* Logo */
.ml-header .navbar-brand img { height: 44px; width: auto; transition: transform .3s ease; }
.ml-header .navbar-brand:hover img { transform: rotate(-8deg); }

/* ======================================================================
 * Footer
 * ==================================================================== */
.bloc.ml-footer {
  background: #fff;
  border-top: 1px solid rgba(28, 28, 28, 0.06);
  padding: 56px 24px 28px;
  font-family: "Open Sans", sans-serif;
  color: #3A3B3C;
}
.ml-footer-grid {
  display: grid;
  /* brand a sinistra, le due colonne di link spinte verso destra: niente vuoto a destra */
  grid-template-columns: minmax(0, 1fr) auto auto;
  column-gap: 72px;
  row-gap: 32px;
  max-width: 1080px;
  margin: 0 auto;
}
.ml-footer a { text-decoration: none; }
.ml-footer-logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #1C1C1C;
  font-family: "Plus Jakarta Sans", "Open Sans", sans-serif;
  font-weight: 800;
  font-size: 19px;
  letter-spacing: -0.01em;
}
.ml-footer-logo:hover { color: #1C1C1C; }
.ml-footer-logo img { width: 44px; height: 44px; }
.ml-footer-brand p {
  margin: 14px 0 18px;
  max-width: 340px;
  font-size: 15px;
  line-height: 1.6;
  color: #6B6E73;
}
.ml-footer-social { display: flex; gap: 10px; }
.ml-footer-social a {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 17px;
  color: #1C1C1C;
  background: #E8EEF7;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.ml-footer-social a:hover { background: #F2A145; color: #fff; transform: translateY(-2px); }
.ml-footer-col { display: flex; flex-direction: column; gap: 10px; }
.ml-footer-col h4 {
  margin: 4px 0 6px;
  font-family: "Plus Jakarta Sans", "Open Sans", sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #E56125;
}
.ml-footer-col a {
  width: fit-content;
  font-size: 15px;
  font-weight: 600;
  color: #1C1C1C;
  transition: color .2s ease;
}
.ml-footer-col a:hover { color: #E56125; }
.ml-footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 22px;
  max-width: 1080px;
  margin: 44px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(28, 28, 28, 0.08);
  font-size: 13px;
  color: #6B6E73;
}
.ml-footer-bottom a { color: #6B6E73; text-decoration: underline; text-underline-offset: 2px; }
.ml-footer-bottom a:hover { color: #E56125; }

@media (max-width: 767px) {
  .ml-footer-grid { grid-template-columns: 1fr 1fr; column-gap: 24px; }
  .ml-footer-brand { grid-column: 1 / -1; }
  .bloc.ml-footer { padding: 44px 20px 24px; }
}

/* Header: carrello sempre al centro esatto della barra, barra più bassa */
.ml-header .container-fluid { position: relative; }
.ml-header .navbar-content-area {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: auto;
  max-width: none;
  padding: 0;
  flex: none;
}
.ml-header > .container.bloc-sm { padding-top: 12px; padding-bottom: 12px; }

/* Header: accesso all'area riservata, nella stessa pillola del carrello */
.ml-header .ml-account-link {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  margin-left: 2px;
  border-radius: 50%;
  border-left: 0;
  color: #1C1C1C;
  font-size: 16px;
  text-decoration: none;
  background: #E8EEF7;
  transition: background .2s ease, color .2s ease;
}
.ml-header .ml-account-link:hover { background: #F2A145; color: #fff; }

/* Header: cambio lingua (IT / EN), stessa forma del pulsante area riservata */
.ml-header .ml-lang-link {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  margin-left: 2px;
  border-radius: 50%;
  color: #1C1C1C;
  font-family: "Plus Jakarta Sans", "Open Sans", sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
  text-decoration: none;
  background: #E8EEF7;
  transition: background .2s ease, color .2s ease;
}
.ml-header .ml-lang-link:hover { background: #F2A145; color: #fff; }
