/* ═══════════════════════════════════════════════════════════
  DIGITAL HOSPITALITY — Menu Digitale Standalone
  Plugin indipendente dal tema.
  ═══════════════════════════════════════════════════════════ */

/* ─── FONT ─── */
@font-face{font-family:'Optima';src:url('../fonts/OptimaLTPro-Roman.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Optima';src:url('../fonts/OptimaLTPro-DemiBold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Optima';src:url('../fonts/OptimaLTPro-Italic.woff') format('woff');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Optima';src:url('../fonts/OptimaLTPro-DemiBoldItalic.woff') format('woff');font-weight:500;font-style:italic;font-display:swap}

/* ─── VARIABILI ─── */
:root{
/* Colori fallback (sovrascritti da Style.php). Safety net. */
--bianco:#FFF;
--terra:#4D4B36;
--tufo:#BEBA9F;
--carrara:#F2EEE2;
--cenere:#D9D9D0;
--grafite:#30302A;
--tufo-testo:#8F8B76;
--font:'Optima','Georgia',serif;
--dh-logo-h:28px;
--dh-logo-h-desk:36px;
}

/* ─── RESET MENU ─── */
.mp *,.mp *::before,.mp *::after,
.mp-cover *,.mp-cover *::before,.mp-cover *::after{
margin:0;padding:0;box-sizing:border-box;
-webkit-tap-highlight-color:transparent;
-webkit-touch-callout:none;
outline:none;
}
.mp{-webkit-font-smoothing:antialiased}
.mp img:not(.mp-home-logo):not(.mp-cover-logo){display:block;max-width:100%;height:auto}
.mp-home-logo{display:block;height:var(--dh-logo-h);width:auto;filter:brightness(10);margin-left:20px}
.mp-cover-logo{display:block;width:60%;max-width:300px;height:auto;filter:brightness(10);margin:0 auto}
.mp a{text-decoration:none}
.mp button{cursor:pointer}

/* ═══════════════════════════════════════
  CONTENITORE MENU
  ═══════════════════════════════════════ */
.mp{
position:fixed;top:0;left:0;right:0;height:100dvh;
z-index:200;
font-family:var(--font);
transform:translateX(100%);
transition:transform var(--dur-slow) var(--ease),visibility 0s var(--dur-slow);
-webkit-user-select:none;user-select:none;
visibility:hidden;
pointer-events:none;
}
.mp.aperto{transform:translateX(0);visibility:visible;pointer-events:auto;transition:transform var(--dur-slow) var(--ease),visibility 0s 0s}

.seo-nascosto{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.valuta-conv{font-size:.75em;opacity:.6}

.mp-home-consiglio{display:none}
.mp-home-cats{order:2}
.mp-home-footer{order:5}

/* ═══════════════════════════════════════
  COVER MENU
  ═══════════════════════════════════════ */
.mp-cover[data-style="illustrazione"]::before {
display: none;
}
.mp-cover-contenuto{position:relative;z-index:2;width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between}
.mp-cover-top {
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 padding: calc(max(20vh, env(safe-area-inset-top)) + 8px) 8px 16px;
}

/* 📱 Schermi corti (iPhone SE 1st/2nd, Android piccoli): logo respira */
@media (max-height: 650px) {
 .mp-cover-top {
     padding-top: calc(max(8vh, env(safe-area-inset-top)) + 8px);
 }
 .mp-cover-logo {
     max-height: 18vh;
     width: 50%;
 }
}

/* 📱 Schermi alti (iPhone Pro Max, Android grandi, tablet): più aria */
@media (min-height: 850px) {
 .mp-cover-top {
     padding-top: calc(max(28vh, env(safe-area-inset-top)) + 8px);
 }
}
.mp-cover-logo{width:60%;max-width:300px;height:auto;filter:brightness(10);margin:0 auto}
.mp-cover-bottom{padding:32px 24px calc(0px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.mp-cover-frase{font-weight:400;font-style:italic;font-size:var(--fs-lg);line-height:var(--lh-loose);color:var(--carrara);max-width:500px;opacity:0;transform:translateY(12px);animation:coverFraseIn .6s .3s var(--ease) forwards}
.mp-cover-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font);font-weight:500;font-size:var(--fs-base);letter-spacing:.05em;color:var(--grafite);background:var(--carrara);border:none;cursor:pointer;white-space:nowrap;align-self:center;height:56px;border-radius:28px;padding:0 40px;opacity:0;transform:translateY(12px);animation:coverFraseIn .5s .6s var(--ease) forwards;transition:transform var(--dur-fast) var(--ease)}
.mp-cover-btn:active{transform:scale(.97)}
@keyframes coverFraseIn{to{opacity:1;transform:translateY(0)}}

/* Cover — Modalità FOTO (default) */
.mp-cover {
position: fixed;
inset: 0;
z-index: 201;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
padding: var(--sp-5) var(--sp-3) calc(env(safe-area-inset-bottom, 0px) + var(--sp-5));
background-color: var(--terra);  /* ⭐ AGGIUNTO: fallback marrone */
background-size: cover;
background-position: center;
opacity: 0;
pointer-events: none;
transition: opacity .6s ease;
}
.mp-cover.visibile { opacity: 1; pointer-events: auto; }
.mp-cover.nascosto { opacity: 0; pointer-events: none; }
.mp-cover-desc {
position: relative;
z-index: 1;
font-family: var(--font);
font-size: var(--fs-xs);
letter-spacing: .15em;
color: rgba(255,255,255,.7);
text-align: center;
margin-top: 12px;
}
.mp-cover[data-style="illustrazione"] .mp-cover-desc {
color: var(--tufo);
}

/* Velo scuro (solo foto) */
.mp-cover::before {
content: '';
position: absolute;
inset: 0;
background: rgba(0,0,0,.10);
z-index: 0;
}
.mp-cover[data-style="illustrazione"]::before {
display: none;
}

/* Logo cover */
.mp-cover-logo {
position: relative;
z-index: 1;
width: 60%;
max-width: 280px;
margin-bottom: var(--sp-4);
filter: brightness(10);
}
.mp-cover[data-style="illustrazione"] .mp-cover-logo {
filter: none;
}

/* Frase */
.mp-cover-frase {
position: relative;
z-index: 1;
color: #fff;
text-align: center;
font-size: var(--fs-lg);
margin-bottom: var(--sp-3);
}
.mp-cover[data-style="illustrazione"] .mp-cover-frase {
color: var(--terra);
}

/* Bottone */
.mp-cover-btn {
position: relative;
z-index: 1;
background: #fff;
color: var(--terra);
border: none;
padding: var(--sp-2) var(--sp-4);
border-radius: 100px;
font-size: var(--fs-base);
cursor: pointer;
}
.mp-cover[data-style="illustrazione"] .mp-cover-btn {
background: var(--terra);
color: var(--carrara);
}

/* ═══════════════════════════════════════
  HOME MENU
  ═══════════════════════════════════════ */
.mp-home{position:absolute;inset:0;background:var(--terra);display:flex;flex-direction:column;z-index:1;transition:top .3s var(--ease)}
.mp-home-top{display:flex;justify-content:space-between;align-items:center;padding:calc(max(32px, env(safe-area-inset-top)) + 8px) 8px 16px}
.mp-home-logo{height:var(--dh-logo-h);width:auto;filter:brightness(10);margin-left:20px}
.mp-home-top {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
gap: 8px;
}

.mp-home-top .mp-home-filtri {
flex: 1;
min-width: 0;
padding: 0px 0 0 12px;
margin: 0;
}

.mp-home-top .mp-filtri {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.mp-chiudi{padding:8px;flex-shrink:0;position:relative;width:38px;height:26px;display:flex;align-items:center;justify-content:center;margin-left:auto}
.mp-chiudi::before,.mp-chiudi::after{content:'';position:absolute;width:30px;height:1px;background:var(--carrara)}
.mp-chiudi::before{transform:rotate(45deg)}
.mp-chiudi::after{transform:rotate(-45deg)}

.mp-home-filtri{padding:8px 24px 16px}
.mp-home-filtri .mp-filtri{display:flex;flex-wrap:wrap;gap:6px;padding:0;max-width:80%}
.mp-filtro{flex-shrink:0;font-family:var(--font);font-size:var(--fs-xs);border-radius:20px;padding:6px 16px;cursor:pointer;white-space:nowrap;transition:all var(--dur-fast) var(--ease)}
.mp-home .mp-filtro{color:var(--carrara);background:transparent;border:1px solid var(--tufo)}
.mp-home .mp-filtro.attivo{color:var(--terra);background:var(--tufo);border-color:var(--tufo)}

.mp-home-consiglio{padding:0}
.consiglio-label{font-size:var(--fs-xs);font-style:italic;color:var(--tufo-testo);margin-bottom:8px}
.consiglio-btn{background:none;border:none;font-family:var(--font);font-size:var(--fs-md);color:var(--carrara);cursor:pointer;text-align:left;padding:0}
.consiglio-btn:active{opacity:.7}
.consiglio-btn span{font-size:var(--fs-sm);color:var(--tufo-testo);margin-left:8px}

.mp-home-cats{flex:1;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;padding:0 24px env(safe-area-inset-bottom);gap:2px; padding-bottom:32px}
.mp-home-cat{background:none;border:none;font-family:var(--font);font-size:var(--fs-xl);font-weight:400;color:var(--carrara);text-align:right;cursor:pointer;padding:2px 0;line-height:1.0;transition:color var(--dur-base) var(--ease),opacity var(--dur-base) var(--ease)}
.mp-home-cat:active{opacity:.7}
.mp-home-cat.spento{opacity:.2;pointer-events:none}
.mp-home-cat sup{font-size:.45em;vertical-align:super;color:var(--tufo);margin-left:3px}
.mp-home-footer{padding:8px 24px calc(24px + env(safe-area-inset-bottom))}
.mp-esci{background:none;border:none;font-family:var(--font);font-size:var(--fs-base);font-style:italic;color:var(--carrara);cursor:pointer;padding:0;opacity:.6}

.mp-tools-home{margin-left:auto}
.mp-home .mp-tools-home span{background:var(--carrara)}

/* ═══════════════════════════════════════
  VISTA PIATTO
  ═══════════════════════════════════════ */
.mp-vista{position:absolute;inset:0;background:var(--bianco);display:flex;flex-direction:column;z-index:2;transform:translateX(100%);transition:transform .4s var(--ease)}
.mp-vista.aperto{transform:translateX(0)}

.mp-vista-header{display:flex;align-items:center;position:relative;padding:calc(max(32px, env(safe-area-inset-top)) + 8px) 8px 16px}
#mp-vista-contatore{position:absolute;left:50%;transform:translateX(-50%)}
.mp-vista-header .mp-tools,.mp-vista-header .mp-tools-home{position:absolute;right:0}

.mp-indietro{width:40px;height:40px;position:relative;font-size:0;flex-shrink:0}
.mp-indietro::before,.mp-indietro::after{content:'';position:absolute;left:12px;top:50%;width:12px;height:1px;background:var(--terra);transform-origin:0% 50%}
.mp-indietro::before{transform:rotate(-35deg)}
.mp-indietro::after{transform:rotate(35deg)}

.mp-vista-contatore{flex:1;text-align:center;font-family:var(--font);font-size:var(--fs-base);color:var(--terra);letter-spacing:.05em}
.mp-tools{width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:50%;flex-shrink:0}
.mp-tools:active{background:rgba(77,75,54,.06)}
.mp-tools span{display:block;width:4px;height:4px;border-radius:50%;background:var(--terra)}

/* ─── Pulsante Allergeni (vista header) ─── */
.mp-aller-btn {
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
font-family: var(--font);
font-size: var(--fs-base);
font-style: italic;
font-weight: 500;
color: var(--terra);
background: none;
border: 1px solid var(--carrara);
cursor: pointer;
flex-shrink: 0;
position: absolute;
right: 48px;
}
.mp-home .mp-aller-btn {
color: var(--carrara);
border-color: var(--carrara);
}
.mp-home .mp-aller-btn:active {
background: rgba(255,255,255,.1);
}

.mp-vista-corpo.lista-mode {
overscroll-behavior-y: contain;
}
.mp-vista-corpo{flex:1;overflow-y:auto;display:flex;align-items:center;justify-content:center;padding:0 20% 15vh}
.mp-vista-corpo.lista-mode{align-items:flex-start;padding-top:0vh}
.mp-vista-card{width:100%;max-width:420px;will-change:transform,opacity}

.vista-prezzo{font-family:var(--font);font-size:var(--fs-lg);color:var(--terra);text-align:right;margin-bottom:8vh}
.vista-nome{font-family:var(--font);font-weight:400;font-size:var(--fs-lg);color:var(--terra);line-height:var(--lh-tight);margin-bottom:8px}
.vista-sotto{font-size:var(--fs-xs);color:var(--terra);line-height:var(--lh-base);margin-bottom:24px}
.vista-desc{font-size:var(--fs-base);line-height:var(--lh-base);color:var(--terra);margin-bottom:24px}
.vista-allergeni{margin-bottom:40px}
.vista-all-label{font-weight:700;font-size:var(--fs-xs);color:var(--grafite);margin-bottom:2px}
.vista-all-testo{font-size:var(--fs-xs);color:var(--terra)}

.vista-somm{font-family:var(--font);font-style:italic;font-size:var(--fs-lg);line-height:var(--lh-base);color:var(--terra);margin-top:32px;animation:sommFadeIn .6s var(--ease)}
.vista-somm strong{font-weight:400;color:var(--grafite)}
.vista-somm-add{background:none;border:1px solid var(--carrara);color:var(--terra);width:24px;height:24px;border-radius:50%;font-size:.8rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-left:6px;transition:all var(--dur-fast) var(--ease)}
.vista-somm-add:active{background:var(--terra);color:var(--bianco)}
@keyframes sommFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

@keyframes slideOutSx{to{transform:translateX(-50%);opacity:0}}
@keyframes slideOutDx{to{transform:translateX(50%);opacity:0}}
@keyframes slideInSx{from{transform:translateX(-40%);opacity:0}}
@keyframes slideInDx{from{transform:translateX(40%);opacity:0}}
.vista-out-sx{animation:slideOutSx .2s ease forwards}
.vista-out-dx{animation:slideOutDx .2s ease forwards}
.vista-in-sx{animation:slideInSx .3s ease}
.vista-in-dx{animation:slideInDx .3s ease}

/* ─── Piede vista ─── */
.mp-vista-piede{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:24px;padding:16px 24px calc(24px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bianco) 25%);z-index:3}
.mp-badge{font-family:var(--font);font-size:var(--fs-base);font-style:italic;color:var(--terra);background:none;border:none;cursor:pointer;padding:0;display:inline-flex;max-height:0;opacity:0;overflow:hidden;transition:max-height .4s var(--ease),opacity .3s var(--ease),padding .4s var(--ease)}
.mp-badge.visibile{max-height:50px;opacity:1;padding:0 0 8px}
.mp-cam{font-family:var(--font);font-weight:500;font-size:var(--fs-base);letter-spacing:.03em;color:var(--bianco);background:var(--terra);white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;height:56px;min-width:200px;border-radius:28px;padding:0 40px;transition:all var(--dur-base) var(--ease)}
.mp-cam:active{transform:scale(.97)}

/* ─── Vista lista ─── */
.piatto-lista{display:flex;flex-direction:column;gap:32px}
.piatto-lista-item{padding-bottom:32px}
.piatto-lista-item:last-child{border-bottom:none}
.lista-aggiungi{background:none;border:1px solid var(--terra);color:var(--terra);font-family:var(--font);font-size:var(--fs-xs);border-radius:20px;padding:6px 16px;cursor:pointer;margin-top:16px;transition:all var(--dur-fast) var(--ease)}
.lista-aggiungi:hover{background:var(--terra);color:var(--bianco)}
.lista-aggiunto{background:var(--terra);color:var(--bianco);border-color:var(--terra)}

/* ─── Maitre nel menu ─── */
.maitre-frase{font-weight:400;font-style:italic;font-size:var(--fs-lg);line-height:var(--lh-base);color:var(--carrara);max-width:500px}
.maitre-vino-piede{text-align:center;padding:32px 0 0;animation:sommFadeIn .6s var(--ease)}
.maitre-vino-piede .maitre-frase{font-size:var(--fs-lg);color:var(--terra);max-width:80%;text-align:center;margin-bottom:8px}
.maitre-vino-nome{font-family:var(--font);font-size:var(--fs-sm);color:var(--terra);text-align:center}
.maitre-vino-nome strong{font-weight:400;color:var(--terra)}

/* ─── Presenta / Note ─── */
.presenta-note{width:100%;font-family:var(--font);font-size:var(--fs-sm);color:var(--grafite);border:1px solid var(--tufo);border-radius:8px;padding:10px;resize:none;margin-top:24px;background:transparent}
.presenta-note::placeholder{color:var(--tufo);font-style:italic}
.presenta-note:focus{border-color:var(--terra)}
.presenta-trad{margin-top:16px;text-align:center}
.presenta-trad-btn{font-family:var(--font);font-size:var(--fs-xs);color:var(--terra);background:none;border:1px solid var(--tufo);border-radius:16px;padding:6px 14px;cursor:pointer;display:none;margin:0 auto;transition:opacity var(--dur-base) var(--ease)}
.presenta-trad-btn:active{opacity:.6}
.presenta-trad-btn.visibile{display:inline-flex}
.presenta-trad-risultato{font-family:var(--font);font-size:var(--fs-sm);color:var(--grafite);font-style:italic;margin-top:8px;min-height:1.2em}

/* ─── Lista — Divisore sottocategoria ─── */
.lista-divisore {
   padding: 20px 0 10px;
   margin-bottom: 4px;
   border-bottom: 1px solid var(--carrara);
   position: sticky;
   top: 0;
   background: var(--bianco);
   z-index: 2;
}
.lista-divisore:first-child {
   padding-top: 0;
}
.lista-divisore-label {
   font-family: var(--font);
   font-size: var(--fs-xs);
   font-weight: 500;
   letter-spacing: .12em;
   text-transform: uppercase;
   color: var(--tufo-testo);
}

/* ═══════════════════════════════════════
  OVERLAY — COMANDA
  ═══════════════════════════════════════ */
.com-overlay{position:absolute;inset:0;z-index:50;opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease)}
.com-overlay.aperto{display:block;opacity:1;pointer-events:auto}
.com-backdrop{position:absolute;inset:0;background:rgba(48,48,42,.2)}
.com-sheet{position:absolute;bottom:0;left:0;right:0;max-height:80vh;background:var(--bianco);border-radius:16px 16px 0 0;box-shadow:0 -4px 30px rgba(48,48,42,.08);padding:16px 24px calc(40px + env(safe-area-inset-bottom));display:flex;flex-direction:column;transform:translateY(100%);transition:transform .4s var(--ease)}
.com-overlay.aperto .com-sheet{transform:translateY(0)}
.com-handle{width:36px;height:4px;border-radius:2px;background:var(--tufo);margin:0 auto 24px;cursor:pointer}
.com-titolo{font-weight:400;font-size:var(--fs-md);color:var(--grafite);text-align:center;margin-bottom:24px;margin-top:32px}
.com-lista{list-style:none;overflow-y:auto;flex:1;margin-bottom:16px;max-height:30vh}
.com-lista li{display:flex;align-items:center;padding:8px 0;font-size:var(--fs-sm)}
.com-lista .com-nome{flex:1;color:var(--terra)}
.com-lista .com-prezzo{color:var(--terra);margin:0 16px}
.com-lista .com-rimuovi{background:none;border:none;color:var(--terra);font-size:var(--fs-sm);cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.com-totale{display:flex;justify-content:space-between;padding:16px 0;border-top:1px solid var(--carrara);font-size:var(--fs-sm);color:var(--terra)}
.com-totale strong{color:var(--terra);font-size:var(--fs-md)}
.com-upsell{text-align:center;padding:16px 0}
.com-upsell-testo{font-style:italic;font-size:var(--fs-lg);color:var(--terra);margin-bottom:16px}
.com-upsell-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.com-upsell-btn{font-family:var(--font);font-size:var(--fs-xs);color:var(--grafite);background:transparent;border:1px solid var(--tufo);border-radius:20px;padding:8px 16px;cursor:pointer}
.com-mostra{width:100%;font-family:var(--font);font-size:var(--fs-base);font-weight:500;color:var(--bianco);background:var(--grafite);border:none;border-radius:28px;min-height:48px;flex-shrink:0;cursor:pointer;margin-top:16px}
.com-mostra:active{transform:scale(.97)}
.com-svuota{display:block;margin:16px auto 0;background:none;border:none;font-family:var(--font);font-size:var(--fs-xs);color:var(--tufo);cursor:pointer;text-decoration:underline;text-underline-offset:3px;flex-shrink:0}

/* ═══════════════════════════════════════
  OVERLAY — TENDINA STRUMENTI
  ═══════════════════════════════════════ */
.mp-tendina{position:absolute;top:0;left:0;right:0;z-index:40;background:var(--carrara);box-shadow:0 4px 20px rgba(48,48,42,.06);transform:translateY(-100%);transition:transform .4s var(--ease)}
.mp-tendina.aperto{display:block;transform:translateY(0)}
.mp-tendina-corpo{padding:48px 24px 24px;display:flex;flex-direction:column;gap:8px;max-width:400px;margin:0 auto}
.mp-tend-voce{background:none;border:none;color:var(--terra);font-family:var(--font);font-size:var(--fs-base);padding:16px 0;cursor:pointer;text-align:left}
.mp-tend-voce:active{color:var(--terra)}
.mp-tend-voce:disabled{opacity:.4}
.mp-tend-problema{color:var(--terra);font-size:var(--fs-sm)}
.mp-tend-msg{font-size:var(--fs-sm);color:var(--terra);font-style:italic;text-align:center;min-height:1.2em}
.mp-tend-chiudi{align-self:center;background:none;border:none;color:var(--terra);font-size:1.1rem;cursor:pointer}

/* ═══════════════════════════════════════
  OVERLAY — ALLERGENI & WIFI
  ═══════════════════════════════════════ */
.mp-aller-ov,.mp-wifi-ov{position:absolute;inset:0;z-index:60;background:rgba(48,48,42,.15);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease)}
.mp-aller-ov.aperto,.mp-wifi-ov.aperto{display:flex;opacity:1;pointer-events:auto}
.mp-aller-card,.mp-wifi-card{width:88%;max-width:360px;background:var(--bianco);border-radius:16px;padding:40px 32px;text-align:center;box-shadow:0 8px 30px rgba(48,48,42,.08)}
.mp-aller-card h3,.mp-wifi-card h3{font-weight:400;font-size:var(--fs-md);color:var(--grafite);margin-bottom:24px}
.mp-aller-griglia{display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:left;margin-bottom:24px}
.mp-aller-griglia span{font-size:var(--fs-sm);color:var(--terra)}
.mp-aller-info{margin-bottom:24px}
.mp-aller-info p{font-size:var(--fs-xs);color:var(--terra);line-height:var(--lh-base);opacity:.7}
.mp-aller-chiudi{font-family:var(--font);font-size:var(--fs-sm);color:var(--bianco);background:var(--grafite);border:none;border-radius:20px;padding:10px 28px;cursor:pointer}
.mp-wifi-card{max-width:320px;display:flex;flex-direction:column;gap:16px}
.mp-wifi-card p{font-size:var(--fs-sm);color:var(--terra)}
.mp-wifi-card strong{color:var(--grafite)}
.mp-wifi-copia{font-family:var(--font);font-size:var(--fs-sm);color:var(--bianco);background:var(--grafite);border:none;border-radius:20px;padding:10px 20px;cursor:pointer}
.mp-wifi-chiudi{font-family:var(--font);font-size:var(--fs-xs);color:var(--tufo);background:none;border:none;cursor:pointer}

/* ═══════════════════════════════════════
  OVERLAY — PRESENTA AL CAMERIERE
  ═══════════════════════════════════════ */
.mp-presenta{position:absolute;inset:0;z-index:70;background:var(--bianco);align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease)}
.mp-presenta.aperto{display:flex;opacity:1;pointer-events:auto}
.presenta-card{width:90%;max-width:400px;text-align:center;padding:40px 24px;max-height:85vh;display:flex;flex-direction:column;overflow-y:auto;margin:auto;min-height:0}
.presenta-tavolo{font-size:var(--fs-xs);letter-spacing:.15em;text-transform:uppercase;color:var(--tufo-testo);margin-bottom:32px}
.presenta-titolo{font-weight:400;font-size:var(--fs-lg);color:var(--grafite);margin-bottom:40px}
.presenta-lista{list-style:none;text-align:left;margin-bottom:32px;flex:1;min-height:0;overflow-y:auto}


.presenta-lista li{display:flex;justify-content:space-between;padding:8px 0;font-size:var(--fs-base);color:var(--grafite)}
.presenta-lista .pre-nome{flex:1}
.presenta-lista .pre-prezzo{color:var(--terra)}
.presenta-totale{display:flex;justify-content:space-between;padding:24px 0;border-top:1px solid var(--tufo);font-size:var(--fs-md);font-weight:500;color:var(--grafite)}
.presenta-inviato{font-size:var(--fs-sm);color:var(--terra);font-style:italic;margin-top:24px;min-height:1.2em}
.presenta-hint{font-size:var(--fs-xs);color:var(--tufo-testo);margin-top:40px;letter-spacing:.05em}

/* ═══════════════════════════════════════
  OVERLAY — RECENSIONE
  ═══════════════════════════════════════ */
.mp-rec-ov{position:absolute;inset:0;z-index:65;background:rgba(48,48,42,.15);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease)}
.mp-rec-ov.aperto{display:flex;opacity:1;pointer-events:auto}
.mp-rec-card{width:90%;max-width:400px;background:var(--bianco);border-radius:16px;padding:40px 32px;box-shadow:0 8px 30px rgba(48,48,42,.08);text-align:center}
.rec-titolo{font-weight:400;font-size:var(--fs-md);color:var(--grafite);margin-bottom:24px}
.rec-textarea{width:100%;font-family:var(--font);font-size:var(--fs-sm);color:var(--grafite);border:1px solid var(--tufo);border-radius:12px;padding:14px;resize:vertical;min-height:100px;margin-bottom:24px;background:var(--bianco)}
.rec-textarea::placeholder{color:var(--tufo)}
.rec-textarea:focus{border-color:var(--terra)}
.rec-msg{font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--terra);margin-bottom:32px}
.rec-btn-invia{width:100%;font-family:var(--font);font-size:var(--fs-sm);font-weight:500;color:var(--bianco);background:var(--grafite);border:none;border-radius:24px;height:48px;cursor:pointer;margin-bottom:16px}
.rec-btn-invia:disabled{opacity:.4}
.rec-btn-chiudi{background:none;border:none;font-family:var(--font);font-size:var(--fs-xs);color:var(--tufo);cursor:pointer}
.rec-links{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}
.rec-link{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-family:var(--font);font-size:var(--fs-sm);font-weight:500;padding:14px;border-radius:12px}
.rec-google{color:var(--grafite);background:rgba(251,188,4,.12);border:1px solid rgba(251,188,4,.3)}
.rec-ta{color:#00AF87;background:rgba(0,175,135,.08);border:1px solid rgba(0,175,135,.2)}
.rec-copiato{font-size:var(--fs-xs);color:var(--terra);font-style:italic;margin-top:8px}

/* ═══════════════════════════════════════
  A11Y
  ═══════════════════════════════════════ */
.mp-aller-ov :focus-visible,
.mp-wifi-ov :focus-visible,
.mp-rec-ov :focus-visible,
.com-overlay :focus-visible,
.mp-presenta :focus-visible,
.mp-tendina :focus-visible{
outline:2px solid var(--tufo);
outline-offset:2px;
border-radius:4px;
}

/* ═══════════════════════════════════════
  SWIPE HINT
  ═══════════════════════════════════════ */
.swipe-hint{display:flex;align-items:center;justify-content:center;gap:16px;padding:32px 0;pointer-events:none;animation:swipeHintFade 3.5s var(--ease) forwards}
.swipe-hint span{font-family:var(--font);font-size:var(--fs-xs);color:var(--terra);letter-spacing:.1em;text-transform:uppercase}
.swipe-hint-arrow{display:inline-block;font-size:1.2rem;color:var(--tufo);animation:swipeHintSlide 1.5s var(--ease) infinite}
.swipe-hint-arrow.sx{animation-direction:reverse}
@keyframes swipeHintSlide{0%,100%{transform:translateX(0);opacity:.3}50%{transform:translateX(6px);opacity:1}}
@keyframes swipeHintFade{0%{opacity:1}70%{opacity:1}100%{opacity:0;visibility:hidden}}

/* ═══════════════════════════════════════
  OFFLINE BANNER
  ═══════════════════════════════════════ */
.offline-banner{position:fixed;top:0;left:0;right:0;background:var(--terra);color:var(--carrara);font-family:var(--font);font-size:var(--fs-xs);text-align:center;padding:10px 16px;z-index:9999;transform:translateY(-100%);transition:transform .4s var(--ease)}
.offline-banner.visibile{transform:translateY(0)}
.mp.aperto .offline-banner{display:none}

/* ═══════════════════════════════════════
  RESPONSIVE — Tablet
  ═══════════════════════════════════════ */
@media(min-width:768px){
.mp-vista-card{max-width:480px}
.com-sheet{max-width:500px;margin:0 auto}
}

/* ═══════════════════════════════════════
  RESPONSIVE — Desktop
  ═══════════════════════════════════════ */
@media(min-width:1200px){
.mp-vista-card{max-width:520px}
.mp-home-logo{height:var(--dh-logo-h-desk)}
.mp-cover-frase{font-size:1.6rem;max-width:700px}
.mp-cover-bottom{padding:48px 64px 64px;align-items: center;
        text-align: center;}
.mp-cover-btn{height:60px;border-radius:30px;font-size:var(--fs-md)}
}

/* ═══════════════════════════════════════
  REDUCED MOTION
  ═══════════════════════════════════════ */
@media(prefers-reduced-motion:reduce){
.mp *,.mp *::before,.mp *::after,.mp-cover *{
animation-duration:0.01ms;
animation-iteration-count:1;
transition-duration:0.01ms;
}
}

/* ═══════════════════════════════════════
  PRINT
  ═══════════════════════════════════════ */
@media print{
.mp,.mp-cover,.offline-banner{display:none}
}

/* v9 — Cross-sell prezzo scontato */
.com-upsell-btn.has-sconto {
background: linear-gradient(135deg, rgba(255,193,7,0.12), rgba(40,167,69,0.08));
border-color: #28a745;
}
.prezzo-barrato {
text-decoration: line-through;
opacity: 0.6;
margin-right: 6px;
font-size: 0.9em;
}

/* ═══════════════════════════════════════════════════════════════
* v10.0.1 — COM-ACTIONS (Mostra + Invia Comanda)
* ═══════════════════════════════════════════════════════════════ */

.com-actions {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 16px;
}

.com-invia {
width: 100%;
font-family: var(--font);
font-size: var(--fs-base);
font-weight: 500;
color: var(--bianco);
background: var(--terra);
border: none;
border-radius: 28px;
min-height: 48px;
cursor: pointer;
transition: transform var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);
}

.com-invia:active { transform: scale(.97); }
.com-invia:disabled { opacity: .5; cursor: wait; }

.com-invia.is-sent {
background: #008a20;
}

/* ═══════════════════════════════════════════════════════════════
* v10.0.1 — ORDER SENT OVERLAY
* ═══════════════════════════════════════════════════════════════ */

.dh-order-sent-ov {
position: absolute;
inset: 0;
z-index: 80;
background: rgba(48, 48, 42, .20);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
display: none;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity var(--dur-base) var(--ease);
}

.dh-order-sent-ov.aperto {
display: flex;
opacity: 1;
pointer-events: auto;
}

.dh-order-sent-card {
width: 88%;
max-width: 380px;
background: var(--bianco);
border-radius: 16px;
padding: 40px 32px;
text-align: center;
box-shadow: 0 8px 30px rgba(48, 48, 42, .12);
animation: dhOrderSentPop .4s var(--ease);
}

@keyframes dhOrderSentPop {
0%   { transform: scale(.85); opacity: 0; }
60%  { transform: scale(1.04); }
100% { transform: scale(1); opacity: 1; }
}

.dh-order-sent-icon {
font-size: 56px;
line-height: 1;
margin-bottom: 16px;
animation: dhOrderSentIcon 1.2s var(--ease);
}

@keyframes dhOrderSentIcon {
0%, 100% { transform: translateY(0); }
40%      { transform: translateY(-8px); }
}

.dh-order-sent-title {
font-family: var(--font);
font-weight: 400;
font-size: var(--fs-lg);
color: var(--grafite);
margin-bottom: 12px;
}

.dh-order-sent-msg {
font-size: var(--fs-sm);
color: var(--terra);
line-height: var(--lh-base);
margin-bottom: 16px;
}

.dh-order-sent-meta {
font-size: var(--fs-xs);
color: var(--tufo-testo);
font-style: italic;
margin-bottom: 24px;
min-height: 1.2em;
}

.dh-order-sent-close {
font-family: var(--font);
font-size: var(--fs-sm);
color: var(--bianco);
background: var(--grafite);
border: none;
border-radius: 20px;
padding: 10px 28px;
cursor: pointer;
}

.dh-order-sent-close:active { transform: scale(.97); }

/* ═══════════════════════════════════════════════════════════
  v10.0.5 — Upsell cards (quadrate stondate, scroll orizzontale)
  ═══════════════════════════════════════════════════════════ */

.com-upsell-cards {
display: flex;
gap: var(--sp-2, 10px);
padding: 0 var(--sp-2, 10px) 6px;
margin-top: var(--sp-2, 10px);
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}

.com-upsell-cards::-webkit-scrollbar {
display: none;
}

.com-upsell-card {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 6px;
padding: var(--sp-3, 14px) var(--sp-2, 10px);
background: rgba(255,255,255,0.5);
border: 1.5px solid var(--carrara);
border-radius: 14px;
cursor: pointer;
transition: all 0.2s ease;
text-align: center;
min-height: 90px;
font-family: inherit;
flex: 0 0 calc(50% - 5px);
min-width: calc(50% - 5px);
max-width: calc(50% - 5px);
scroll-snap-align: start;
aspect-ratio: 1;
overflow: hidden;
}

.com-upsell-card:hover,
.com-upsell-card:active {
background: rgba(77,75,54,0.06);
border-color: var(--carrara, #4d4b36);
transform: translateY(-1px);
}

.com-upsell-card.has-sconto {
border-color: #5a7a3e;
background: rgba(90,122,62,0.05);
}

.com-upsell-card-icon {
font-size: 22px;
line-height: 1;
}

.com-upsell-card-nome {
font-size: var(--fs-sm, 13px);
color: var(--terra, #1d2327);
font-weight: 500;
line-height: 1.2;
word-break: break-word;
}

.com-upsell-card-prezzo {
font-size: var(--fs-sm, 13px);
color: var(--terra, #4d4b36);
font-weight: 600;
}

.com-upsell-card .prezzo-barrato {
text-decoration: line-through;
color: var(--terra, #aaa);
font-weight: 400;
font-size: 12px;
margin-right: 4px;
}
.vista-somm-no-anim {
animation: none;
}
/* ── Schermata "Mostra al cameriere": sfondo primario + testo adattivo ── */
.mp-presenta{background:var(--dh-menu-primary,var(--terra))!important;}
.presenta-titolo{color:var(--dh-on-primary,#fff)!important;}
.presenta-tavolo{color:var(--dh-on-primary,#fff)!important;opacity:.65;}
.presenta-lista li{color:var(--dh-on-primary,#fff)!important;}
.presenta-lista .pre-prezzo{color:var(--dh-on-primary,#fff)!important;opacity:.85;}
.presenta-totale{color:var(--dh-on-primary,#fff)!important;border-top-color:color-mix(in srgb,var(--dh-on-primary,#fff) 30%,transparent)!important;}
.presenta-inviato{color:var(--dh-on-primary,#fff)!important;opacity:.85;}
.presenta-hint{color:var(--dh-on-primary,#fff)!important;opacity:.55;}
.presenta-note{color:var(--dh-on-primary,#fff)!important;border-color:color-mix(in srgb,var(--dh-on-primary,#fff) 35%,transparent)!important;background:transparent!important;}
.presenta-note::placeholder{color:var(--dh-on-primary,#fff)!important;opacity:.5;}

/* ════════ CARRELLO FULLSCREEN ════════ */
.com-overlay{background:var(--bianco);}
.com-backdrop{display:none!important;}
.com-handle{display:none!important;}
.com-svuota{display:none!important;}
.com-sheet{
position:absolute!important;inset:0!important;
width:100%!important;max-height:none!important;margin:0!important;
border-radius:0!important;box-shadow:none!important;
padding:0 24px calc(24px + env(safe-area-inset-bottom))!important;
display:flex!important;flex-direction:column!important;overflow-y:auto;
}
/* Header: freccia sx + Ricomincia dx */
.com-header{display:flex;align-items:center;justify-content:space-between;padding:calc(max(32px,env(safe-area-inset-top)) + 8px) 0 8px;position:sticky;top:0;background:var(--bianco);z-index:2;flex-shrink:0;}
.com-indietro{width:40px;height:40px;position:relative;flex-shrink:0;font-size:0;background:none;border:none;cursor:pointer;}
.com-indietro::before,.com-indietro::after{content:'';position:absolute;left:12px;top:50%;width:12px;height:1px;background:var(--terra);transform-origin:0 50%;}
.com-indietro::before{transform:rotate(-35deg);}
.com-indietro::after{transform:rotate(35deg);}
.com-ricomincia{background:none;border:none;font-family:var(--font);font-size:var(--fs-sm);color:var(--terra);cursor:pointer;flex-shrink:0;padding:8px 0;}
.com-ricomincia:active{opacity:.6;}
/* Titolo: sotto header, a sinistra */
.com-titolo{text-align:left!important;font-size:var(--fs-lg)!important;color:var(--grafite);margin:32px 0 16px!important;flex-shrink:0;}
/* Lista: riempie lo spazio, spinge il blocco basso in fondo */
.com-lista{flex:1 1 auto!important;max-height:none!important;overflow-y:auto;margin-bottom:0!important;}
.com-totale,.com-upsell,.com-actions{flex-shrink:0;}
/* Entrata morbida (fade + rise) */
.com-overlay.aperto .com-sheet{animation:comSheetIn .38s var(--ease) both;}
@keyframes comSheetIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}

/* Allinea freccia carrello alla vista piatto (annulla padding sheet) */
.com-header{margin-left:-24px!important;margin-right:-24px!important;padding-left:8px!important;padding-right:8px!important;}

/* Home: categorie piu compatte */
body.dh-menu-fullscreen .mp-home-cats{gap:8px!important;}
/* Home: categorie scrollabili + esci bottom-left fisso */
.mp-home-cats{overflow-y:auto!important;min-height:0!important;justify-content:flex-start!important;scrollbar-width:none;}
.mp-home-cats::-webkit-scrollbar{display:none;}
.mp-home-cats>:first-child{margin-top:auto!important;}
.mp-home-footer{flex-shrink:0;text-align:left;}
.mp-esci{text-align:left;}

/* Filtri: stessa altezza del cerchio "i" (32px) */
body.dh-menu-fullscreen .mp-filtro{height:32px!important;padding:0 16px!important;display:inline-flex!important;align-items:center!important;line-height:1!important;}
.com-nota-coperto{font-size:var(--fs-xs);color:var(--tufo-testo);font-style:italic;text-align:right;margin:-8px 0 12px}

/* COVER padding-top per stile (foto vs illustrazione) — valori fissi */
.mp-cover[data-style="foto"] .mp-cover-top{padding-top:calc(max(35vh,env(safe-area-inset-top)) + 8px)!important}
.mp-cover[data-style="illustrazione"] .mp-cover-top{padding-top:calc(max(5vh,env(safe-area-inset-top)) + 8px)!important}
