.dm2{width:100%;background:var(--dm2-page-bg,#000);color:var(--dm2-text,#fff);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
.dm2 *{box-sizing:border-box}
.dm2-header,.dm2-footer{width:100%}
.dm2-logo{height:auto;display:block;margin:0 auto;padding:18px 12px;width:auto}
.dm2{position:relative;left:50%;right:50%;width:100vw;max-width:100vw;margin-left:-50vw;margin-right:-50vw;min-height:100vh;background-size:cover;background-position:center;background-repeat:no-repeat}.dm2-inner{max-width:1200px;margin:0 auto;padding:18px 0 28px;background:transparent}
.dm2-controls{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:0 18px;flex-wrap:wrap}
.dm2-search-wrap{flex:1;min-width:220px}
.dm2-search{width:100%;padding:14px 14px;border:1px solid var(--dm2-search-border,var(--dm2-border,#fff));border-radius:6px;background:var(--dm2-search-bg,transparent);color:var(--dm2-search-text,var(--dm2-text,#fff));outline:none}
.dm2-search::placeholder{color:var(--dm2-search-placeholder,rgba(255,255,255,.55))}
/* z-index:50 (era 1) — .dm2-lang crea uno stacking context, quindi lo z-index:9999
   del dropdown "+N" vale solo AL SUO INTERNO. Con quota 1 il blocco lingue restava
   sotto .dm2-cats (z-index:5) e il menu a tendina delle bandiere extra spariva dietro
   le categorie in tutti i temi tranne classic/editorial (che avevano un fix scoped). */
.dm2-lang{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;padding:10px !important;margin:0 !important;overflow:visible;box-sizing:border-box;position:relative;z-index:50}
.dm2-lang::-webkit-scrollbar{display:none;}
.dm2-lang button{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--dm2-lang-inactive-border,var(--dm2-border,#fff));border-radius:999px;background:var(--dm2-lang-inactive-bg,transparent);color:var(--dm2-lang-inactive-text,var(--dm2-text,#fff));cursor:pointer;font-size:14px}
.dm2-lang button[aria-pressed="true"]{background:var(--dm2-lang-active-bg,var(--dm2-cat-active-bg,#fff));color:var(--dm2-lang-active-text,var(--dm2-cat-active-text,#000));border-color:var(--dm2-lang-active-border,var(--dm2-cat-active-border,#fff))}
.dm2-flag{font-size:16px;line-height:1}
@media(max-width:640px){.dm2-lang .dm2-lang-name{display:none}}

.dm2-cats{display:flex;gap:10px;overflow-x:auto;white-space:nowrap;padding:14px 18px 10px;scrollbar-width:none;margin-top:0;position:relative;z-index:5;background:inherit;clear:both}
.dm2-cats::-webkit-scrollbar{display:none}
/* Lingue: 10px padding sopra e sotto. Categorie: subito, senza margin extra.
   Z-index 5 sulle categorie per evitare che grafici di bandiere sbordino sopra. */
.dm2-cat-btn{flex:0 0 auto;padding:10px 14px;border-radius:999px;border:1px solid var(--dm2-cat-inactive-border,#444);background:var(--dm2-cat-inactive-bg,#111);color:var(--dm2-cat-inactive-text,#fff);cursor:pointer;font-size:var(--dm2-category-font-size,14px);font-family:var(--dm2-category-font-family,inherit)}
.dm2-cat-btn[aria-selected="true"]{background:var(--dm2-cat-active-bg,#fff);color:var(--dm2-cat-active-text,#000);border-color:var(--dm2-cat-active-border,#fff)}

/* Category thumbnail (optional) */
.dm2-cat-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0}
.dm2-cat-thumb{display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.dm2-cat-thumb img{width:34px;height:34px;object-fit:cover;border-radius:10px;border:1px solid var(--dm2-cat-inactive-border,var(--dm2-border));background:var(--dm2-card-bg)}
.dm2-cat-name{display:block;line-height:1.05;white-space:nowrap}

.dm2-products{padding:10px 18px;display:grid;grid-template-columns:1fr;gap:14px}
.dm2-card{border:1px solid var(--dm2-product-card-border,var(--dm2-border,#fff));background:var(--dm2-card-bg,#0b0b0b);border-radius:12px;overflow:hidden;transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease}
.dm2-card:hover{border-color:var(--dm2-product-card-hover,var(--dm2-product-card-border,var(--dm2-border,#fff)));box-shadow:0 0 0 1px color-mix(in srgb, var(--dm2-product-card-hover,#ff4fa3) 35%, transparent)}
.dm2-card-inner{padding:16px}

.dm2-right{display:flex;flex-direction:column;min-width:0}
.dm2-title{order:10}
.dm2-desc{order:20}
.dm2-unavailable{order:25}
.dm2-allergens{order:30}
.dm2-price{order:40}
.dm2-sizes{order:40}
.dm2-title{font-size:var(--dm2-product-title-font-size,18px);font-family:var(--dm2-product-title-font-family,inherit);font-weight:700;margin:0 0 6px;color:var(--dm2-product-title,var(--dm2-text,#fff))}
.dm2-desc{margin:0 0 10px;color:var(--dm2-product-desc,var(--dm2-muted,#bfbfbf));line-height:1.35}
.dm2-price{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--dm2-price-border,var(--dm2-border,#fff));border-radius:999px;font-weight:800;margin-top:10px;background:var(--dm2-price-bg,transparent);color:var(--dm2-price-text,var(--dm2-text,#fff));font-size:var(--dm2-product-price-size,inherit)}
.dm2-sizes{margin-top:10px;color:var(--dm2-text,#fff);font-weight:700;display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
.dm2-img-hero{width:100%;height:180px;object-fit:cover;display:block}
.dm2-row{display:flex;gap:12px;align-items:flex-start;flex-wrap:nowrap}
.dm2-img-left{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--dm2-border,#fff);flex:0 0 auto}

/* Slightly round product images (inside card) */
.dm2 .dm2-img-left{border-radius:12px;}

.dm2-allergens{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.dm2-allergen{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border:1px solid var(--dm2-allergen-border,rgba(255,255,255,.55));border-radius:8px;color:var(--dm2-allergen-text,#fff);background:var(--dm2-allergen-bg,transparent);font-size:12px;font-weight:800;letter-spacing:.2px}

.dm2-legend{padding:18px 18px 0;opacity:.95}
.dm2-legend-title{font-weight:800;margin:0 0 10px;color:var(--dm2-legend-title,var(--dm2-text,inherit))}
.dm2-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dm2-legend-grid .dm2-allergen,.dm2-legend-grid .dm2-ref{width:100%;justify-content:flex-start}
.dm2-legend-item{display:flex;gap:8px;align-items:center;border:1px solid var(--dm2-allergen-border,var(--dm2-border));border-radius:999px;padding:8px 10px;background:var(--dm2-allergen-bg,transparent);color:var(--dm2-allergen-text,var(--dm2-text))}
.dm2-legend-name{color:var(--dm2-allergen-text,var(--dm2-text));font-size:13px}

.dm2-footer{padding:16px 12px}
.dm2-socials{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.dm2-socials a{display:inline-flex;gap:8px;align-items:center;color:var(--dm2-social-icon-color,var(--dm2-text));text-decoration:none;border:1px solid var(--dm2-social-icon-border,var(--dm2-border));padding:10px 12px;border-radius:999px;background:var(--dm2-social-icon-bg,transparent)}

.dm2-cat-btn:hover{background:var(--dm2-cat-hover-bg,#1a1a1a);color:var(--dm2-cat-hover-text,#fff);border-color:var(--dm2-cat-hover-border,#666)}
.dm2-lang button:hover{background:var(--dm2-lang-hover-bg,#1a1a1a);color:var(--dm2-lang-hover-text,#fff);border-color:var(--dm2-lang-hover-border,#666)}


.dm2-unavailable{display:inline-block;margin:6px 0 8px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);font-weight:700;font-size:13px}

@media(max-width:640px){
  .dm2-lang{flex-wrap:wrap;justify-content:center;padding:12px 8px 16px !important;gap:6px;min-height:56px}
  .dm2-lang::-webkit-scrollbar{height:6px}
  .dm2-lang button{flex:0 0 auto}
}


/* Allergens: icon + code + name */
.dm2-allergens{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.dm2-allergen{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--dm2-allergen-border,var(--dm2-border));border-radius:999px;padding:6px 10px;font-size:12px;line-height:1;color:var(--dm2-allergen-text,var(--dm2-text));background:var(--dm2-allergen-bg,transparent)}
.dm2-allergen-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;opacity:.95}
.dm2-allergen-ico svg{width:16px;height:16px}
.dm2-allergen-code{font-weight:700;opacity:.95}
.dm2-allergen-name{opacity:.9}

/* Languages: centered + horizontal slider on mobile */
.dm2-lang{display:flex;gap:10px;align-items:center;justify-content:center;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.dm2-lang::-webkit-scrollbar{display:none}
.dm2-lang button{flex:0 0 auto}
@media (max-width: 640px){
  .dm2-lang{justify-content:center;padding:0 14px}
  .dm2-lang .dm2-lang-name{display:none}
}


/* Category item (image above name) */
.dm2-cats{ display:flex; gap:10px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:14px 16px; }
.dm2-cat-item{ flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:8px; }
.dm2-cat-img{ width:56px; height:56px; border-radius:14px; border:1px solid var(--dm2-border); overflow:hidden; background:rgba(255,255,255,0.04); display:flex; align-items:center; justify-content:center; }
.dm2-cat-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.dm2-cat-btn{ padding:10px 14px; border-radius:999px; white-space:nowrap; }

/* Allergen & reference chips */
.dm2-allergen, .dm2-ref{ display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border:1px solid var(--dm2-border); border-radius:999px; background:transparent; color:var(--dm2-text); text-decoration:none; }
.dm2-allergen-ico, .dm2-ref-ico{ width:18px; height:18px; display:inline-flex; }
.dm2-allergen-ico svg, .dm2-ref-ico svg{ width:18px; height:18px; }
.dm2-allergen-code{ font-weight:700; }
.dm2-allergen-name{ opacity:0.9; }
.dm2-legend-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
.dm2-legend-grid .dm2-allergen,
.dm2-legend-grid .dm2-ref{ width:100%; justify-content:flex-start; }
.dm2-refs-grid{ margin-top:10px; }

/* Size chips (always on one row, like category slider) */
.dm2-sizes{ display:flex; flex-wrap:nowrap; gap:10px; margin-top:10px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.dm2-sizes::-webkit-scrollbar{ height:6px; }
.dm2-sizechip{ display:inline-flex; align-items:center; gap:10px; padding:10px 14px; border:1px solid var(--dm2-border); border-radius:999px; }
.dm2-sizechip-label{ font-weight:700; }
.dm2-sizechip-price{ opacity:0.95; }

/* Single-price chip (same style as sizes) */
.dm2-price{ display:inline-flex; align-items:center; gap:10px; padding:10px 14px; border:1px solid var(--dm2-border); border-radius:999px; margin-top:10px; font-weight:800; }

@media(max-width:640px){
  .dm2-sizechip{ padding:8px 10px; gap:8px; }
  .dm2-sizes{ gap:8px; }
  .dm2-sizechip-label, .dm2-sizechip-price{ font-size:12px; }
  .dm2-price{ padding:8px 10px; font-size:12px; }
}

/* Make language bar behave like categories on mobile when overflow */
.dm2-langs{ display:flex; gap:10px; overflow-x:auto; -webkit-overflow-scrolling:touch; justify-content:center; padding:14px 16px; }
.dm2-langs::-webkit-scrollbar, .dm2-cats::-webkit-scrollbar{ height:6px; }


/* --- DM2 Final patches (2026-02-24) --- */
.dm2 .dm2-sizes{ display:flex; flex-wrap:nowrap; gap:10px; overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap; }
.dm2-sizechip{ flex:0 0 auto; }
.dm2-row > *{ min-width:0; }

.dm2-has-left .dm2-title{ font-size:16px; margin-bottom:4px; }
.dm2-has-left .dm2-desc{ font-size:12px; margin-bottom:8px; }

@media(max-width:640px){
  .dm2-img-left{ width:84px; height:84px; }
  .dm2 .dm2-sizes{ gap:8px; }
  .dm2-sizechip-label, .dm2-sizechip-price{ font-size:11px; }
}



/* Flag images (uploaded) */
.dm2-flag img{width:18px;height:18px;object-fit:cover;border-radius:50%;display:block}

/* Sizes row below left-image layout */
.dm2-sizes.dm2-sizes-below-left{width:100%;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:6px 0 0 0;margin:0}
.dm2-allergens.dm2-allergens-below-left{width:100%;margin-top:6px}

/* --- DM2 v1.0.12 micro-tuning --- */
/* Make single price chip visually match size chips (smaller/pill) */
.dm2 .dm2-price{
  padding:9px 12px;
  gap:8px;
  font-size:13px;
  font-weight:750;
  line-height:1.2;
}

/* Allergens: icon-only mode (no text, no pill box) */
.dm2 .dm2-allergen.dm2-allergen-icononly{
  border:none;
  padding:0;
  background:transparent;
  border-radius:0;
  gap:0;
}
.dm2 .dm2-allergen.dm2-allergen-icononly .dm2-allergen-ico{
  width:18px;
  height:18px;
}
.dm2 .dm2-allergen.dm2-allergen-icononly .dm2-allergen-ico svg{
  width:18px;
  height:18px;
}

/* Ensure sizes are ALWAYS one row when placed below (left layout) */
.dm2 .dm2-sizes.dm2-sizes-below-left{
  display:flex;
  flex-wrap:nowrap;
  white-space:nowrap;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.dm2 .dm2-sizes.dm2-sizes-below-left .dm2-sizechip{ flex:0 0 auto; }

/* --- DM2 v1.0.14 layout tuning (price chip width + sizes single row, no scroll) --- */
.dm2-pricing-block{margin-top:10px;display:flex;flex-direction:column;gap:8px}

/* Price chip should be only as wide as its content (not full-width) */
.dm2 .dm2-pricing-block .dm2-price{align-self:flex-start;width:auto;max-width:100%}

/* Size chips: always a single row, no scroll; distribute evenly */
.dm2 .dm2-pricing-block .dm2-sizes{overflow:visible;flex-wrap:nowrap;width:100%;gap:8px}
.dm2 .dm2-pricing-block .dm2-sizechip{flex:1 1 0;justify-content:center;white-space:nowrap;min-width:0}
.dm2-sizechip-label,.dm2-sizechip-price{font-size:12px}

@media(max-width:640px){
  .dm2 .dm2-pricing-block .dm2-sizechip{padding:8px 8px;gap:6px}
  .dm2-sizechip-label,.dm2-sizechip-price{font-size:11px}
}


/* Left image column: allow content (e.g., allergens) under the image */
.dm2-has-left .dm2-row { align-items: flex-start; }
.dm2-leftcol{ display:flex; flex-direction:column; align-items:flex-start; gap:8px; flex:0 0 96px; width:96px; max-width:96px; }
.dm2-leftcol .dm2-allergens{ width:100%; justify-content:flex-start; }
.dm2-allergens-under-image{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;margin-top:10px}
.dm2-allergens-under-image .dm2-allergen{ flex:0 0 auto; white-space:nowrap; }

@media(max-width:640px){
  .dm2-leftcol{ flex-basis:84px; width:84px; max-width:84px; }
}

/* === LAYOUT "right_price" (COMPATTO): foto sx | titolo+desc centro | prezzo dx === */
.dm2-layout-right-price .dm2-row{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;     /* DEFAULT (solo titolo): centrato perfetto */
  gap:14px !important;
  width:100%;
}
/* Se c'è descrizione, note, storage O allergeni: prezzo allineato AL TITOLO (in alto).
   Caso "solo titolo + prezzo" (anche con foto/logo): rimane align-items:center → TUTTO
   (foto, titolo, prezzo) perfettamente allineato verticalmente al centro del box.
   NOTA: .dm2-leftcol è stato RIMOSSO dai trigger: la sola presenza della foto non basta
   più a spingere tutto in alto; serve un contenuto testuale sotto il titolo. */
.dm2-layout-right-price .dm2-row:has(.dm2-desc),
.dm2-layout-right-price .dm2-row:has(.dm2-product-note),
.dm2-layout-right-price .dm2-row:has(.dm2-storage-badges),
.dm2-layout-right-price .dm2-row:has(.dm2-allergens-inline){
  align-items:flex-start !important;
}
/* Card: padding simmetrico = contenuto perfettamente centrato anche senza descrizione */
.dm2-layout-right-price .dm2-card-inner{padding:14px 16px !important}
/* === CENTRATURA VERTICALE "AL CENTRO IN ALTEZZA" quando ci sono SOLO titolo+prezzo ===
   La card-inner diventa un flex column con justify-content:center e min-height definita.
   Così titolo+prezzo appaiono esattamente a metà altezza del box, non solo in linea tra loro. */
.dm2-card.dm2-layout-right-price:not(:has(.dm2-leftcol)):not(:has(.dm2-desc)):not(:has(.dm2-product-note)):not(:has(.dm2-storage-badges)):not(:has(.dm2-allergens)):not(:has(.dm2-allergens-under-image)) .dm2-card-inner{
  min-height:72px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
/* Anche il titolo e il prezzo in questo caso si centrano tra loro (baseline visivo ~ stesso center) */
.dm2-layout-right-price .dm2-row:not(:has(.dm2-leftcol)):not(:has(.dm2-desc)):not(:has(.dm2-product-note)):not(:has(.dm2-storage-badges)){
  align-items:center !important;
}
/* Senza foto: colonna testo riempie da sinistra, prezzo sempre a destra */
.dm2-layout-right-price:not(.dm2-has-left) .dm2-row{gap:10px !important}
.dm2-layout-right-price:not(.dm2-has-left) .dm2-right{padding:0 !important}
.dm2-layout-right-price .dm2-leftcol{
  flex:0 0 72px !important;
  width:72px !important;
  max-width:72px !important;
}
.dm2-layout-right-price .dm2-img-left{
  width:72px !important;
  height:72px !important;
  border-radius:10px;
}
/* === Layout "right_price_logo": foto SEMPRE visibile (logo come fallback) ===
   Visivamente identico a right_price; qui gestiamo solo come viene mostrato il LOGO di fallback:
   object-fit:contain per non tagliarlo + sfondo tenue per dargli un box coerente con le altre card. */
.dm2-layout-right-price-logo .dm2-img-left[data-dm2-logo="1"]{
  object-fit:contain !important;
  background:rgba(255,255,255,.04);
  padding:6px;
  box-sizing:border-box;
}
.dm2-layout-right-price-logo .dm2-leftcol[data-dm2-logo="1"]{
  /* Piccolo marker visivo: bordo tratteggiato leggero per distinguere "fallback logo" da foto reale */
  border:1px dashed rgba(255,255,255,.12);
  border-radius:10px;
}
.dm2-layout-right-price .dm2-right{
  flex:1 1 auto !important;
  min-width:0 !important;
  padding:0 6px;
}
/* Titolo e prezzo SENZA margin verticali se sono soli → centratura perfetta.
   Se c'è descrizione, il titolo ha 4px di distanza dalla desc. */
.dm2-layout-right-price .dm2-right > .dm2-title{font-size:16px;margin:0 !important;padding:0;line-height:1.25;display:block}
.dm2-layout-right-price .dm2-right > .dm2-desc{font-size:13px;margin:4px 0 0 0 !important;padding:0;line-height:1.35;opacity:.85;display:block;overflow:visible;-webkit-line-clamp:none;word-wrap:break-word;overflow-wrap:break-word}
.dm2-layout-right-price .dm2-pricing-right{
  flex:0 0 auto !important;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  margin-left:auto;
  padding-left:8px;
}
/* Prezzo: ripristino padding normale del chip (background+bordo), dimensione custom via CSS var */
.dm2-layout-right-price .dm2-pricing-right .dm2-price{margin:0 !important;font-size:var(--dm2-product-price-size,15px);font-weight:700;white-space:nowrap;line-height:1.25}
/* Prezzi multipli ("Piccolo 4€ / Medio 6€ / Grande 8€") in COLONNA ordinata, allineati a destra */
.dm2-layout-right-price .dm2-pricing-right .dm2-sizes{display:flex !important;flex-direction:column !important;gap:4px !important;align-items:flex-end !important;max-width:none !important;min-width:80px}
.dm2-layout-right-price .dm2-pricing-right .dm2-sizechip{display:inline-flex !important;align-items:center;gap:6px;font-size:12px !important;padding:4px 10px !important;white-space:nowrap;min-width:72px;justify-content:space-between;width:auto !important}
.dm2-layout-right-price .dm2-pricing-right .dm2-sizechip-label{font-weight:500;opacity:.85}
.dm2-layout-right-price .dm2-pricing-right .dm2-sizechip-price{font-weight:700}
/* Badge "Popolare/Consigliato" SOPRA il titolo (annulla order:15 globale) */
.dm2-layout-right-price .dm2-right .dm2-badges{order:-1 !important;margin:0 0 6px 0 !important}
/* Il badge (Popolare, Consigliato) sta PRIMO anche nel layout con la foto
   piccola a sinistra. Nel documento e' gia' messo prima del titolo, ma la
   regola generale .dm2-badges{order:15} lo spingeva in fondo: qui la si
   scavalca, come si faceva gia' per il compatto. */
.dm2-row .dm2-right .dm2-badges{order:-1 !important;margin:0 0 6px 0 !important}
.dm2-layout-right-price .dm2-allergens,
.dm2-layout-right-price .dm2-allergens-under-image,
.dm2-layout-right-price .dm2-right .dm2-allergens-inline{margin-top:8px;grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}
/* Allergeni DENTRO .dm2-right (layout right_price): allineati al titolo, sotto descrizione */
.dm2-layout-right-price .dm2-right .dm2-allergens-inline{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px 14px !important;         /* verticale 10px, orizzontale 14px (compensa padding rimosso sul primo) */
  width:100%;
  margin:8px 0 0 0 !important;
  padding-left:0 !important;
  justify-content:flex-start !important;
  order:30;                         /* sempre sotto titolo, desc, note, storage */
}
/* Allineamento FLUSH LEFT: il primo badge azzera il padding-left interno così la sua icona/testo
   parte esattamente alla stessa X del titolo prodotto. */
.dm2-layout-right-price .dm2-right .dm2-allergens-inline > .dm2-allergen:first-child{
  padding-left:0 !important;
  margin-left:0 !important;
}
/* Mobile right_price: mantiene layout orizzontale, foto più piccola */
@media(max-width:640px){
  .dm2-layout-right-price .dm2-leftcol{flex:0 0 60px !important;width:60px !important;max-width:60px !important}
  .dm2-layout-right-price .dm2-img-left{width:60px !important;height:60px !important}
  .dm2-layout-right-price .dm2-title{font-size:14px}
  .dm2-layout-right-price .dm2-desc{font-size:12px;-webkit-line-clamp:none;display:block;overflow:visible}
  .dm2-layout-right-price .dm2-pricing-right .dm2-price{font-size:13px}
  .dm2-layout-right-price .dm2-card-inner{padding:10px 12px !important}
  .dm2-layout-right-price .dm2-row{gap:10px !important}
}

/* --- DM2 v1.0.22: Product allergens as compact grid (max 2-3 per row) --- */
.dm2 .dm2-card-inner .dm2-allergens,
.dm2 .dm2-card-inner .dm2-allergens-under-image{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:8px;
  width:100%;
  overflow:visible;
}
@media(min-width:520px){
  .dm2-card-inner .dm2-allergens,
  .dm2-card-inner .dm2-allergens-under-image{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Make badges fit the cell and avoid overflow */
.dm2-card-inner .dm2-allergen{ min-width:0; justify-content:flex-start; }
.dm2-card-inner .dm2-allergen-name{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Safety: hide code/initial inside product cards (we already remove it in JS) */
.dm2-card-inner .dm2-allergen-code{ display:none; }


/* Hide flags when disabled */
.dm2-hide-flags .dm2-lang .dm2-flag{display:none!important;}

/* When language selector is disabled, hide it completely (no flags and no names). */
.dm2-hide-lang .dm2-lang{display:none!important;}


/* Center language selector and allow horizontal swipe when overflow */
.dm2 .dm2-lang{display:flex;justify-content:center;align-items:center;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 14px;scrollbar-width:none;}
.dm2 .dm2-lang::-webkit-scrollbar{display:none;}
.dm2 .dm2-lang button{flex:0 0 auto;}


@media (max-width: 520px){
  .dm2-controls{flex-direction:column;align-items:center;justify-content:center;gap:10px;}
  .dm2-search-wrap{width:100%;min-width:0;}
  .dm2-lang{max-width:100%;}
}


/* === Google Translate — nascondi COMPLETAMENTE ogni UI Google === */
.goog-te-banner-frame,
.goog-te-banner-frame.skiptranslate,
iframe.goog-te-banner-frame,
.goog-te-balloon-frame,
#goog-gt-tt,
.goog-tooltip,
.goog-tooltip:hover,
.goog-tooltip-popup,
.goog-te-gadget-simple,
.goog-te-gadget-icon,
img.goog-te-gadget-icon,
.goog-te-gadget span,
.goog-te-gadget-simple .goog-te-gadget-icon,
.goog-te-menu-value,
.goog-te-menu-value span,
.goog-logo-link,
.goog-logo-link img,
.skiptranslate iframe,
.skiptranslate > iframe,
.goog-te-spinner-pos,
.VIpgJd-ZVi9od-aZ2wEe-wOHMyf,
.VIpgJd-ZVi9od-aZ2wEe,
.VIpgJd-ZVi9od-ORHb-OEVmcd,
#google_translate_element,
#dm2_google_translate_element {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  max-width: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  position: absolute !important;
  left: -9999px !important;
}
/* Google sposta il body di 40px quando mostra la banner — forziamo il reset */
body { top: 0 !important; position: static !important; }
html { margin-top: 0 !important; }
/* Rimuovi highlight hover Google su testo tradotto */
.goog-text-highlight { background: transparent !important; box-shadow: none !important; border: none !important; }

/* active = hover highlight */
.dm2-active-hover,.is-active,[aria-pressed="true"],[aria-selected="true"]{transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease}

.dm2-cat-btn[aria-selected="true"],.dm2-lang button[aria-pressed="true"]{box-shadow:0 0 0 2px rgba(255,255,255,.25) inset}


/* --- Menu themes (MenuDigitale24h) --- */
.dm2-menu-theme-showcase .dm2-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.dm2-menu-theme-showcase .dm2-card{border-radius:18px;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.dm2-menu-theme-showcase .dm2-card-inner{padding:18px}
.dm2-menu-theme-showcase .dm2-img-hero{height:220px}
.dm2-menu-theme-showcase .dm2-row{display:block}
.dm2-menu-theme-showcase .dm2-img-left{width:100%;height:220px;border-radius:0;border:0;display:block;margin:0 0 14px}
.dm2-menu-theme-showcase .dm2-title{font-size:24px;line-height:1.1;margin-bottom:8px}
.dm2-menu-theme-showcase .dm2-desc{font-size:15px;line-height:1.45}
.dm2-menu-theme-showcase .dm2-price,.dm2-menu-theme-showcase .dm2-sizechip{border-radius:12px}
@media(max-width:900px){.dm2-menu-theme-showcase .dm2-products{grid-template-columns:1fr}}

.dm2-menu-theme-compact .dm2-products{gap:10px}
.dm2-menu-theme-compact .dm2-card{border-radius:10px}
.dm2-menu-theme-compact .dm2-card-inner{padding:12px}
.dm2-menu-theme-compact .dm2-row{gap:14px;align-items:flex-start}
.dm2-menu-theme-compact .dm2-img-left{width:112px;height:112px;border-radius:10px}
.dm2-menu-theme-compact .dm2-title{font-size:17px;margin-bottom:4px;font-weight:700}
.dm2-menu-theme-compact .dm2-desc{font-size:13px;line-height:1.35;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dm2.dm2-menu-theme-compact .dm2-price{padding:8px 11px;font-size:12px}
.dm2.dm2-menu-theme-compact .dm2-sizechip{padding:8px 10px}

.dm2-menu-theme-classic .dm2-products{grid-template-columns:1fr}
/* Tema Classic: header attacca subito sotto (no spazio bianco), ma categorie ben spaziate */
.dm2[data-dm2="menu"].dm2-menu-theme-classic{position:relative;z-index:1;margin-top:0 !important;padding-top:0 !important}
.dm2[data-dm2="menu"].dm2-menu-theme-classic .dm2-inner{padding-top:0 !important;margin-top:0 !important}
.dm2[data-dm2="menu"].dm2-menu-theme-classic .dm2-controls{padding-top:10px}
/* .dm2-lang z-index:50 > .dm2-cats z-index:10 così il dropdown "+N" (bandiere extra) appare
   SOPRA la riga categorie anche nei temi classic/editorial. overflow:visible evita il clipping. */
.dm2[data-dm2="menu"].dm2-menu-theme-classic .dm2-lang,
.dm2[data-dm2="menu"].dm2-menu-theme-editorial .dm2-lang{z-index:50;position:relative;clear:both;padding-bottom:14px !important;overflow:visible}
.dm2[data-dm2="menu"].dm2-menu-theme-classic .dm2-cats,
.dm2[data-dm2="menu"].dm2-menu-theme-editorial .dm2-cats{
  position:relative;
  z-index:10;
  scroll-margin-top:120px;
  clear:both;
  /* Solo per classic ed editorial: padding-top 20px sopra le categorie così i cerchi delle
     bandiere NON coprono le categorie (altri temi non hanno questo problema). */
  padding-top:20px !important;
}
.dm2[data-dm2="menu"].dm2-menu-theme-classic .dm2-products{clear:both;padding-top:8px}
@media(max-width:640px){
  .dm2[data-dm2="menu"].dm2-menu-theme-classic .dm2-controls{padding-top:6px}
  .dm2[data-dm2="menu"].dm2-menu-theme-classic .dm2-lang{padding-bottom:12px !important;min-height:56px}
  /* Mobile: MANTIENI padding-top 20px anche su classic+editorial per evitare sovrapposizione bandiere */
  .dm2[data-dm2="menu"].dm2-menu-theme-classic .dm2-cats,
  .dm2[data-dm2="menu"].dm2-menu-theme-editorial .dm2-cats{padding-top:20px !important;padding-bottom:10px !important}
}

@media(max-width:640px){
  .dm2-menu-theme-showcase .dm2-img-hero,.dm2-menu-theme-showcase .dm2-img-left{height:190px}
  .dm2-menu-theme-showcase .dm2-title{font-size:20px}
  .dm2-menu-theme-compact .dm2-row{display:flex}
  .dm2-menu-theme-compact .dm2-img-left{width:92px;height:92px}
}

/* ===== Additional customer menu themes ===== */
.dm2-menu-theme-grid .dm2-inner,
.dm2-menu-theme-mosaic .dm2-inner{max-width:1280px;padding-top:12px}
.dm2-menu-theme-grid .dm2-cats,
.dm2-menu-theme-mosaic .dm2-cats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  padding:16px 18px 8px;
  overflow:visible;
  white-space:normal;
}
.dm2-menu-theme-grid .dm2-cat-item,
.dm2-menu-theme-mosaic .dm2-cat-item{
  position:relative;
  width:100%;
  min-height:180px;
  border-radius:0;
  overflow:hidden;
  display:block;
  border:1px solid var(--dm2-border,#fff);
  background:var(--dm2-card-bg,#0b0b0b);
}
.dm2-menu-theme-grid .dm2-cat-img,
.dm2-menu-theme-mosaic .dm2-cat-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:none;
  border-radius:0;
  overflow:hidden;
}
.dm2-menu-theme-grid .dm2-cat-img img,
.dm2-menu-theme-mosaic .dm2-cat-img img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.dm2-menu-theme-grid .dm2-cat-img::after,
.dm2-menu-theme-mosaic .dm2-cat-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.06) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,.62) 100%);
}
.dm2-menu-theme-grid .dm2-cat-btn,
.dm2-menu-theme-mosaic .dm2-cat-btn{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  border:none;
  border-radius:0;
  background:transparent;
  color:#fff;
  align-items:flex-end;
  justify-content:flex-start;
  padding:18px;
  text-align:left;
}
.dm2-menu-theme-grid .dm2-cat-btn[aria-selected="true"],
.dm2-menu-theme-mosaic .dm2-cat-btn[aria-selected="true"]{
  background:transparent;
  color:#fff;
  /* RIMOSSO inset box-shadow: causava un bordo colorato 3px solo sulla prima categoria
     (quella attiva di default), creando un'asimmetria visiva indesiderata. La categoria
     attiva è comunque chiaramente identificabile dai prodotti mostrati sotto. */
  box-shadow:none;
}
.dm2-menu-theme-grid .dm2-cat-name,
.dm2-menu-theme-mosaic .dm2-cat-name{
  position:relative;
  z-index:2;
  font-size:clamp(24px,3.1vw,44px);
  line-height:1.05;
  font-weight:800;
  white-space:normal;
  text-shadow:0 2px 16px rgba(0,0,0,.45);
}
.dm2-menu-theme-grid .dm2-products,
.dm2-menu-theme-mosaic .dm2-products{padding-top:14px}
.dm2-menu-theme-mosaic .dm2-cats{grid-template-columns:repeat(3,minmax(0,1fr));}
.dm2-menu-theme-mosaic .dm2-cat-item:nth-child(4n+1){min-height:220px}
.dm2-menu-theme-mosaic .dm2-cat-item:nth-child(4n+2){min-height:220px}
.dm2-menu-theme-grid .dm2-card,
.dm2-menu-theme-mosaic .dm2-card{border-radius:18px}
@media(max-width:900px){
  .dm2-menu-theme-mosaic .dm2-cats{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:640px){
  .dm2-menu-theme-grid .dm2-cats,
  .dm2-menu-theme-mosaic .dm2-cats{grid-template-columns:1fr 1fr;gap:10px;padding:12px 12px 6px}
  .dm2-menu-theme-grid .dm2-cat-item,
  .dm2-menu-theme-mosaic .dm2-cat-item{min-height:150px}
  .dm2-menu-theme-grid .dm2-cat-btn,
  .dm2-menu-theme-mosaic .dm2-cat-btn{padding:12px}
  .dm2-menu-theme-grid .dm2-cat-name,
  .dm2-menu-theme-mosaic .dm2-cat-name{font-size:var(--dm2-category-font-size,30px);font-family:var(--dm2-category-font-family,inherit)}
}

/* ===== Additional theme variants ===== */
.dm2-menu-theme-tiles .dm2-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px 16px}
.dm2-menu-theme-tiles .dm2-cat-item{min-height:160px;border-radius:18px;overflow:hidden;position:relative;background:var(--dm2-card-bg,#111);border:1px solid var(--dm2-cat-inactive-border,#444)}
.dm2-menu-theme-tiles .dm2-cat-img{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0}
.dm2-menu-theme-tiles .dm2-cat-img img{width:100%;height:100%;object-fit:cover}
.dm2-menu-theme-tiles .dm2-cat-btn{position:absolute;inset:auto 12px 12px 12px;border-radius:18px;padding:18px 16px;background:rgba(0,0,0,.34);backdrop-filter:blur(2px);border:1px solid rgba(255,255,255,.18);white-space:normal}
.dm2-menu-theme-tiles .dm2-cat-name{font-size:var(--dm2-category-font-size,34px);font-family:var(--dm2-category-font-family,inherit);font-weight:800;line-height:1.03;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.4)}
.dm2-menu-theme-tiles .dm2-products{padding-top:8px}

.dm2-menu-theme-editorial .dm2-cats{display:flex;gap:12px;overflow-x:auto;padding:16px 18px 10px}
.dm2-menu-theme-editorial .dm2-cat-item{min-width:220px;min-height:120px;border-radius:20px;overflow:hidden;position:relative;border:1px solid var(--dm2-cat-inactive-border,#444);background:var(--dm2-card-bg,#111)}
.dm2-menu-theme-editorial .dm2-cat-img{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0}
.dm2-menu-theme-editorial .dm2-cat-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.58))}
.dm2-menu-theme-editorial .dm2-cat-btn{position:absolute;left:12px;right:12px;bottom:12px;background:transparent;border:0;padding:0;justify-content:flex-start}
.dm2-menu-theme-editorial .dm2-cat-name{font-size:var(--dm2-category-font-size,28px);font-family:var(--dm2-category-font-family,inherit);font-weight:800;line-height:1.02;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.45);white-space:normal}
.dm2-menu-theme-editorial .dm2-card{border-radius:24px}
.dm2-menu-theme-editorial .dm2-card-inner{padding:18px}
.dm2-menu-theme-editorial .dm2-row{gap:18px}
.dm2-menu-theme-editorial .dm2-img-left{width:120px;height:120px;border-radius:16px}
.dm2-menu-theme-editorial .dm2-title{font-size:22px}

.dm2-menu-theme-gallery .dm2-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px}
.dm2-menu-theme-gallery .dm2-cat-item{min-height:180px;border-radius:24px;overflow:hidden;position:relative;background:var(--dm2-card-bg,#111);border:1px solid var(--dm2-cat-inactive-border,#444)}
.dm2-menu-theme-gallery .dm2-cat-img{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0}
.dm2-menu-theme-gallery .dm2-cat-img img{transform:scale(1.01);transition:transform .24s ease}
.dm2-menu-theme-gallery .dm2-cat-item:hover .dm2-cat-img img{transform:scale(1.06)}
.dm2-menu-theme-gallery .dm2-cat-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.55))}
.dm2-menu-theme-gallery .dm2-cat-btn{position:absolute;inset:auto 0 0 0;background:transparent;border:0;padding:18px}
.dm2-menu-theme-gallery .dm2-cat-name{font-size:var(--dm2-category-font-size,32px);font-family:var(--dm2-category-font-family,inherit);font-weight:800;line-height:1.02;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.45);white-space:normal}
.dm2-menu-theme-gallery .dm2-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.dm2-menu-theme-gallery .dm2-card{border-radius:22px}
.dm2-menu-theme-gallery .dm2-row{display:block}
.dm2-menu-theme-gallery .dm2-img-left{width:100%;height:220px;border-radius:18px;margin:0 0 14px;border-width:0}
.dm2-menu-theme-gallery .dm2-card-inner{padding:18px}

@media(max-width:900px){.dm2-menu-theme-gallery .dm2-products{grid-template-columns:1fr}}
@media(max-width:767px){
  .dm2-menu-theme-tiles .dm2-cats,.dm2-menu-theme-gallery .dm2-cats{grid-template-columns:1fr 1fr}
  .dm2-menu-theme-tiles .dm2-cat-item,.dm2-menu-theme-gallery .dm2-cat-item{min-height:150px}
  .dm2-menu-theme-editorial .dm2-cat-item{min-width:180px;min-height:110px}
}


/* --- Menu themes refresh v1.40.3 --- */
.dm2-menu-theme-tiles .dm2-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}
.dm2-menu-theme-tiles .dm2-cat-item{min-height:170px;border-radius:22px;overflow:hidden;position:relative;background:linear-gradient(160deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border:1px solid var(--dm2-cat-inactive-border,#444);box-shadow:0 12px 28px rgba(0,0,0,.18)}
.dm2-menu-theme-tiles .dm2-cat-item:not(:has(.dm2-cat-img)){background:linear-gradient(135deg,var(--dm2-card-bg,#111),color-mix(in srgb, var(--dm2-card-bg,#111) 70%, #fff 30%));}
.dm2-menu-theme-tiles .dm2-cat-btn{display:flex;align-items:flex-end;justify-content:flex-start;text-align:left;min-height:76px}
.dm2-menu-theme-tiles .dm2-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.dm2-menu-theme-tiles .dm2-card{border-radius:22px;overflow:hidden}
.dm2-menu-theme-tiles .dm2-card-inner{padding:18px}
@media(max-width:900px){.dm2-menu-theme-tiles .dm2-products{grid-template-columns:1fr}}

.dm2-menu-theme-editorial .dm2-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.dm2-menu-theme-editorial .dm2-card{border-radius:26px;overflow:hidden;box-shadow:0 14px 30px rgba(0,0,0,.18)}
.dm2-menu-theme-editorial .dm2-card-inner{padding:20px}
.dm2-menu-theme-editorial .dm2-title{font-size:24px;line-height:1.08;margin-bottom:8px}
.dm2-menu-theme-editorial .dm2-desc{font-size:14px;line-height:1.5}
@media(max-width:900px){.dm2-menu-theme-editorial .dm2-products{grid-template-columns:1fr}}

.dm2-menu-theme-gallery .dm2-card{box-shadow:0 16px 32px rgba(0,0,0,.18)}
.dm2-menu-theme-gallery .dm2-title{font-size:22px;line-height:1.08}
.dm2-menu-theme-gallery .dm2-desc{font-size:14px;line-height:1.45}

.dm2-menu-theme-slide .dm2-inner{max-width:1320px;padding-top:10px}
.dm2-menu-theme-slide .dm2-cats{display:flex;gap:14px;overflow-x:auto;padding:14px 18px 10px;scroll-snap-type:x proximity;scrollbar-width:thin}
.dm2-menu-theme-slide .dm2-cat-item{scroll-snap-align:start;flex:0 0 min(82vw,300px);min-height:220px;border-radius:26px;overflow:hidden;position:relative;background:linear-gradient(145deg,var(--dm2-card-bg,#111),color-mix(in srgb,var(--dm2-card-bg,#111) 68%, #fff 32%));border:1px solid var(--dm2-cat-inactive-border,#444);box-shadow:0 18px 36px rgba(0,0,0,.20)}
.dm2-menu-theme-slide .dm2-cat-img{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0}
.dm2-menu-theme-slide .dm2-cat-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.01);transition:transform .28s ease}
.dm2-menu-theme-slide .dm2-cat-item:hover .dm2-cat-img img{transform:scale(1.08)}
.dm2-menu-theme-slide .dm2-cat-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.62))}
.dm2-menu-theme-slide .dm2-cat-btn{position:absolute;left:14px;right:14px;bottom:14px;background:rgba(0,0,0,.22);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:18px 16px;justify-content:flex-start;text-align:left;white-space:normal}
.dm2-menu-theme-slide .dm2-cat-btn[aria-selected="true"]{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.34)}
.dm2-menu-theme-slide .dm2-cat-name{font-size:var(--dm2-category-font-size,36px);font-family:var(--dm2-category-font-family,inherit);font-weight:800;line-height:1;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.42)}
.dm2-menu-theme-slide .dm2-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding-top:12px}
.dm2-menu-theme-slide .dm2-card{border-radius:24px;overflow:hidden;box-shadow:0 16px 30px rgba(0,0,0,.16)}
.dm2-menu-theme-slide .dm2-card-inner{padding:18px}
.dm2-menu-theme-slide .dm2-row{display:block}
.dm2-menu-theme-slide .dm2-img-left,.dm2-menu-theme-slide .dm2-img-hero{width:100%;height:220px;border-radius:18px;margin:0 0 14px;border-width:0;object-fit:cover}
.dm2-menu-theme-slide .dm2-title{font-size:22px;line-height:1.08;margin-bottom:8px}
.dm2-menu-theme-slide .dm2-desc{font-size:14px;line-height:1.45}
@media(max-width:900px){.dm2-menu-theme-slide .dm2-cat-item{flex-basis:min(78vw,260px);min-height:190px}.dm2-menu-theme-slide .dm2-products{grid-template-columns:1fr}.dm2-menu-theme-slide .dm2-img-left,.dm2-menu-theme-slide .dm2-img-hero{height:200px}}


/* v1.40.6 color consistency fixes */
.dm2-menu-theme-tiles .dm2-cat-btn,
.dm2-menu-theme-editorial .dm2-cat-btn,
.dm2-menu-theme-gallery .dm2-cat-btn,
.dm2-menu-theme-slide .dm2-cat-btn{color:var(--dm2-cat-active-text,var(--dm2-text));}
.dm2-menu-theme-tiles .dm2-cat-name,
.dm2-menu-theme-editorial .dm2-cat-name,
.dm2-menu-theme-gallery .dm2-cat-name,
.dm2-menu-theme-slide .dm2-cat-name{color:var(--dm2-cat-active-text,var(--dm2-text));}
.dm2-menu-theme-tiles .dm2-cat-btn,
.dm2-menu-theme-slide .dm2-cat-btn{background:color-mix(in srgb,var(--dm2-cat-active-bg) 22%, transparent);border-color:color-mix(in srgb,var(--dm2-cat-active-border) 55%, transparent);}
.dm2-menu-theme-tiles .dm2-cat-btn[aria-selected="true"],
.dm2-menu-theme-slide .dm2-cat-btn[aria-selected="true"]{background:color-mix(in srgb,var(--dm2-cat-active-bg) 38%, transparent);border-color:var(--dm2-cat-active-border);}
.dm2-menu-theme-editorial .dm2-cat-item,
.dm2-menu-theme-gallery .dm2-cat-item,
.dm2-menu-theme-slide .dm2-cat-item,
.dm2-menu-theme-tiles .dm2-cat-item{border-color:var(--dm2-cat-inactive-border,var(--dm2-border));}
.dm2-menu-theme-editorial .dm2-card,
.dm2-menu-theme-gallery .dm2-card,
.dm2-menu-theme-slide .dm2-card,
.dm2-menu-theme-tiles .dm2-card{border-color:var(--dm2-product-card-border,var(--dm2-border));}
.dm2-menu-theme-editorial .dm2-card:hover,
.dm2-menu-theme-gallery .dm2-card:hover,
.dm2-menu-theme-slide .dm2-card:hover,
.dm2-menu-theme-tiles .dm2-card:hover{border-color:var(--dm2-product-card-hover,var(--dm2-product-card-border,var(--dm2-border)));}
.dm2-menu-theme-editorial .dm2-title,
.dm2-menu-theme-gallery .dm2-title,
.dm2-menu-theme-slide .dm2-title,
.dm2-menu-theme-tiles .dm2-title{color:var(--dm2-product-title,var(--dm2-text));}
.dm2-menu-theme-editorial .dm2-desc,
.dm2-menu-theme-gallery .dm2-desc,
.dm2-menu-theme-slide .dm2-desc,
.dm2-menu-theme-tiles .dm2-desc{color:var(--dm2-product-desc,var(--dm2-muted));}


/* ===== DM2 v1.40.7 color consistency fixes (consolidated into v1.40.8 below) ===== */


/* ===== DM2 v1.40.8 allergen + sizes color hard fix ===== */
.dm2 .dm2-allergen,
.dm2 .dm2-allergen.dm2-allergen-icononly,
.dm2 .dm2-allergens .dm2-allergen,
.dm2 .dm2-allergens-under-image .dm2-allergen,
.dm2 .dm2-legend-item,
.dm2 .dm2-legend-grid .dm2-allergen,
.dm2 .dm2-ref,
.dm2 .dm2-legend-grid .dm2-ref{
  background:var(--dm2-allergen-bg, transparent);
  color:var(--dm2-allergen-text, var(--dm2-text, #fff));
  border-color:var(--dm2-allergen-border, var(--dm2-border, #fff));
}
.dm2 .dm2-allergen .dm2-allergen-ico,
.dm2 .dm2-allergen .dm2-allergen-ico svg,
.dm2 .dm2-legend-item .dm2-allergen-ico,
.dm2 .dm2-legend-item .dm2-allergen-ico svg{
  color:inherit;
  stroke:currentColor;
  fill:none;
}
.dm2 .dm2-allergen .dm2-allergen-code,
.dm2 .dm2-allergen .dm2-allergen-name,
.dm2 .dm2-legend-name{color:inherit;}

.dm2 .dm2-sizechip,
.dm2 .dm2-sizechip *,
.dm2 .dm2-price,
.dm2 .dm2-price *,
.dm2 .dm2-singleprice,
.dm2 .dm2-singleprice *,
.dm2 .dm2-sizes .dm2-sizechip,
.dm2 .dm2-sizes .dm2-sizechip *,
.dm2 .dm2-sizes.dm2-sizes-below-left .dm2-sizechip,
.dm2 .dm2-sizes.dm2-sizes-below-left .dm2-sizechip *{
  background:transparent;
  color:inherit;
}
.dm2 .dm2-sizechip,
.dm2 .dm2-price,
.dm2 .dm2-singleprice,
.dm2 .dm2-sizes .dm2-sizechip,
.dm2 .dm2-sizes.dm2-sizes-below-left .dm2-sizechip,
.dm2 .dm2-sizechip .dm2-sizechip-label,
.dm2 .dm2-sizechip .dm2-sizechip-price,
.dm2 .dm2-singleprice{
  background:var(--dm2-price-bg, transparent);
  color:var(--dm2-price-text, var(--dm2-text, #fff));
  border-color:var(--dm2-price-border, var(--dm2-border, #fff));
}
.dm2.dm2-menu-theme-showcase .dm2-sizechip,
.dm2.dm2-menu-theme-compact .dm2-sizechip,
.dm2.dm2-menu-theme-grid .dm2-sizechip,
.dm2.dm2-menu-theme-mosaic .dm2-sizechip,
.dm2.dm2-menu-theme-tiles .dm2-sizechip,
.dm2.dm2-menu-theme-editorial .dm2-sizechip,
.dm2.dm2-menu-theme-gallery .dm2-sizechip,
.dm2.dm2-menu-theme-slide .dm2-sizechip{
  background:var(--dm2-price-bg, transparent);
  color:var(--dm2-price-text, var(--dm2-text, #fff));
  border-color:var(--dm2-price-border, var(--dm2-border, #fff));
}


/* Popup theme: categories first, products after click */
.dm2-menu-theme-popup .dm2-inner{max-width:1200px}
.dm2-menu-theme-popup .dm2-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-top:16px}
.dm2-menu-theme-popup .dm2-cat-item{min-height:170px;border-radius:24px;overflow:hidden;position:relative;background:linear-gradient(145deg,var(--dm2-card-bg,#111),color-mix(in srgb,var(--dm2-card-bg,#111) 70%, #fff 30%));border:1px solid var(--dm2-cat-inactive-border,var(--dm2-border));box-shadow:0 14px 28px rgba(0,0,0,.18)}
.dm2-menu-theme-popup .dm2-cat-img{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0}
.dm2-menu-theme-popup .dm2-cat-img img{width:100%;height:100%;object-fit:cover}
.dm2-menu-theme-popup .dm2-cat-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.62))}
.dm2-menu-theme-popup .dm2-cat-btn{position:absolute;left:14px;right:14px;bottom:14px;justify-content:flex-start;text-align:left;white-space:normal;background:color-mix(in srgb,var(--dm2-cat-active-bg) 24%, transparent);border-color:color-mix(in srgb,var(--dm2-cat-active-border) 58%, transparent);backdrop-filter:blur(4px);padding:18px 16px;border-radius:20px}
.dm2-menu-theme-popup .dm2-cat-name{font-size:var(--dm2-category-font-size,30px);font-family:var(--dm2-category-font-family,inherit);font-weight:800;line-height:1.02;color:var(--dm2-cat-active-text,var(--dm2-text));text-shadow:0 2px 10px rgba(0,0,0,.35)}
.dm2-menu-theme-popup .dm2-products{grid-template-columns:1fr;gap:18px;padding-top:6px}
.dm2-menu-theme-popup .dm2-card{border-radius:22px;overflow:hidden;box-shadow:0 12px 26px rgba(0,0,0,.12)}
.dm2-popup-back{display:inline-flex;align-items:center;gap:8px;margin:8px 0 14px;padding:12px 16px;border-radius:999px;border:1px solid var(--dm2-primary-btn-border,var(--dm2-border));background:var(--dm2-primary-btn-bg,var(--dm2-card-bg));color:var(--dm2-primary-btn-text,var(--dm2-text));font-weight:700;cursor:pointer}
.dm2-popup-back:hover{filter:brightness(1.05)}
@media(max-width:900px){.dm2-menu-theme-popup .dm2-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dm2-menu-theme-popup .dm2-cat-item{min-height:150px}.dm2-menu-theme-popup .dm2-cat-name{font-size:calc(var(--dm2-category-font-size,30px) * .78)}}


.dm2-cat-pos-left .dm2-cat-btn{justify-content:flex-start;text-align:left;align-items:flex-start}
.dm2-cat-pos-center .dm2-cat-btn{justify-content:center;text-align:center;align-items:center}
.dm2-cat-pos-right .dm2-cat-btn{justify-content:flex-end;text-align:right;align-items:flex-end}
.dm2-cat-pos-top-left .dm2-cat-btn{top:12px;bottom:auto;left:12px;right:12px;justify-content:flex-start;text-align:left;align-items:flex-start}
.dm2-cat-pos-top-center .dm2-cat-btn{top:12px;bottom:auto;left:12px;right:12px;justify-content:center;text-align:center;align-items:center}
.dm2-cat-pos-bottom-left .dm2-cat-btn{justify-content:flex-start;text-align:left;align-items:flex-start}
.dm2-cat-pos-bottom-center .dm2-cat-btn{justify-content:center;text-align:center;align-items:center}
.dm2-cat-pos-center-center .dm2-cat-btn{top:50%;bottom:auto;transform:translateY(-50%);left:12px;right:12px;justify-content:center;text-align:center;align-items:center}

.dm2-socials .dm2-ref-ico{display:inline-flex;align-items:center;justify-content:center;width:var(--dm2-social-icon-size,22px);height:var(--dm2-social-icon-size,22px)}
.dm2-socials .dm2-ref-ico svg{width:var(--dm2-social-icon-size,22px);height:var(--dm2-social-icon-size,22px);display:block;fill:currentColor}

.dm2-back-arrow{position:fixed;bottom:18px;left:18px;z-index:9998;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:0;outline:none;-webkit-appearance:none}
.dm2-back-arrow:hover{background:rgba(255,255,255,.25);transform:scale(1.1)}
.dm2-back-arrow svg{width:20px;height:20px;stroke:#fff;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}

/* Hide Google Translate UI from start - translation works via cookie */
.dm2-gtranslate{height:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;position:absolute!important}
.skiptranslate{display:none!important}
.goog-te-banner-frame{display:none!important}
body{top:0!important}

/* Force overflow visible for language dropdown */
.dm2 .dm2-lang,.dm2 .dm2-controls .dm2-lang{overflow:visible;overflow-x:visible}

/* Flag dropdown menu
   FIX v1.0.34: stacking context + z-index altissimo per evitare che il
   dropdown delle lingue extra (+3) finisca SOTTO le card delle categorie.
   Il fix esistente (riga 467-468) applicava z-index:50 SOLO ai temi classic
   ed editorial. Adesso lo applichiamo al wrapper .dm2-lang in modo GLOBALE,
   così funziona su tutti i temi (grid, showcase, compact, magazine, ecc.). */
.dm2-lang{position:relative;z-index:50;overflow:visible}
.dm2-lang-more-wrap{position:relative;display:inline-flex;align-items:center;z-index:999999;isolation:isolate}
.dm2-lang-more-btn{min-width:44px;height:44px;border-radius:22px;border:1px solid var(--dm2-lang-inactive-border,#fff);background:var(--dm2-lang-inactive-bg,#000);color:var(--dm2-lang-inactive-text,#fff);font-size:14px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
.dm2-lang-more-btn:hover{background:var(--dm2-lang-hover-bg,#1a1a1a)}
.dm2-lang-dropdown{display:none;position:absolute;top:calc(100% + 8px);right:0;z-index:999999 !important;background:#111;border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:8px;min-width:200px;max-height:320px;overflow-y:auto;box-shadow:0 12px 40px rgba(0,0,0,.7);flex-direction:column;gap:4px}
.dm2-lang-dropdown.is-open{display:flex}
.dm2-lang-dropdown button{width:100%;text-align:left;border-radius:10px;padding:10px 14px;font-size:14px;background:transparent;border:1px solid transparent;color:#fff;cursor:pointer;display:flex;align-items:center;gap:8px}
.dm2-lang-dropdown button:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15)}

/* ===== RESTAURANT TEMPLATES ===== */

/* Luxury */
.dm2.dm2-tpl-luxury{font-family:Garamond,"Times New Roman",Georgia,serif;letter-spacing:.01em}
.dm2.dm2-tpl-luxury .dm2-card{border-radius:4px;box-shadow:0 4px 24px rgba(0,0,0,.15)}
.dm2.dm2-tpl-luxury .dm2-title{font-size:22px;font-weight:400;letter-spacing:.04em;text-transform:uppercase}
.dm2.dm2-tpl-luxury .dm2-cat-btn{border-radius:4px;letter-spacing:.08em;text-transform:uppercase;font-size:13px}
.dm2.dm2-tpl-luxury .dm2-price{border-radius:4px}

/* Pizzeria */
.dm2.dm2-tpl-pizzeria{font-family:"Segoe UI",Roboto,Arial,sans-serif}
.dm2.dm2-tpl-pizzeria .dm2-card{border-radius:20px;border-width:2px}
.dm2.dm2-tpl-pizzeria .dm2-title{font-size:20px;font-weight:800}
.dm2.dm2-tpl-pizzeria .dm2-cat-btn{border-radius:16px;font-weight:700;font-size:15px}
.dm2.dm2-tpl-pizzeria .dm2-price{border-radius:16px;font-weight:900}
.dm2.dm2-tpl-pizzeria .dm2-card:hover{transform:scale(1.01)}

/* Trattoria */
.dm2.dm2-tpl-trattoria{font-family:"Palatino Linotype",Palatino,Georgia,serif}
.dm2.dm2-tpl-trattoria .dm2-card{border-radius:14px;border-style:solid}
.dm2.dm2-tpl-trattoria .dm2-title{font-weight:600;font-size:19px}
.dm2.dm2-tpl-trattoria .dm2-cat-btn{border-radius:10px}
.dm2.dm2-tpl-trattoria .dm2-price{border-radius:10px}

/* Bistrot */
.dm2.dm2-tpl-bistrot{font-family:Georgia,"Times New Roman",serif}
.dm2.dm2-tpl-bistrot .dm2-card{border-radius:12px;border-style:dashed}
.dm2.dm2-tpl-bistrot .dm2-title{font-style:italic;font-weight:600}
.dm2.dm2-tpl-bistrot .dm2-cat-btn{border-radius:8px;border-style:dashed}
.dm2.dm2-tpl-bistrot .dm2-price{border-radius:8px}

/* Cocktail Bar */
.dm2.dm2-tpl-cocktail{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.02em}
.dm2.dm2-tpl-cocktail .dm2-card{border-radius:16px;box-shadow:0 0 20px rgba(0,0,0,.2)}
.dm2.dm2-tpl-cocktail .dm2-title{font-weight:300;font-size:22px;letter-spacing:.04em;text-transform:uppercase}
.dm2.dm2-tpl-cocktail .dm2-cat-btn{border-radius:999px;font-weight:300;letter-spacing:.1em;text-transform:uppercase;font-size:12px}
.dm2.dm2-tpl-cocktail .dm2-price{border-radius:999px}
.dm2.dm2-tpl-cocktail .dm2-card:hover{box-shadow:0 0 30px rgba(0,0,0,.3)}

/* Moderno */
.dm2.dm2-tpl-moderno{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,sans-serif}
.dm2.dm2-tpl-moderno .dm2-card{border-radius:18px;box-shadow:0 1px 6px rgba(0,0,0,.06);border:none}
.dm2.dm2-tpl-moderno .dm2-title{font-weight:700;font-size:19px}
.dm2.dm2-tpl-moderno .dm2-cat-btn{border-radius:14px}
.dm2.dm2-tpl-moderno .dm2-price{border-radius:14px}
.dm2.dm2-tpl-moderno .dm2-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.1);transform:translateY(-2px)}

/* Minimal */
.dm2.dm2-tpl-minimal{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}
.dm2.dm2-tpl-minimal .dm2-card{border-radius:6px;border:none;border-bottom:1px solid rgba(128,128,128,.2);box-shadow:none}
.dm2.dm2-tpl-minimal .dm2-card:hover{box-shadow:none}
.dm2.dm2-tpl-minimal .dm2-title{font-weight:500;font-size:17px}
.dm2.dm2-tpl-minimal .dm2-cat-btn{border-radius:0;border:none;border-bottom:2px solid transparent;padding:8px 4px;background:transparent}
.dm2.dm2-tpl-minimal .dm2-cat-btn[aria-selected="true"]{border-bottom-color:currentColor}
.dm2.dm2-tpl-minimal .dm2-price{border-radius:6px}

/* ===== COLOR PALETTES ===== */

/* Nero (default dark) */
.dm2.dm2-pal-nero{--dm2-page-bg:#000;--dm2-card-bg:#0b0b0b;--dm2-text:#fff;--dm2-muted:#bfbfbf;--dm2-border:#fff;--dm2-accent:#fff;--dm2-cat-inactive-bg:#111;--dm2-cat-inactive-text:#fff;--dm2-cat-inactive-border:#444;--dm2-cat-active-bg:#fff;--dm2-cat-active-text:#000;--dm2-cat-active-border:#fff;--dm2-product-card-border:#333;--dm2-product-card-hover:#fff;--dm2-product-title:#fff;--dm2-product-desc:#bfbfbf;--dm2-price-bg:#fff;--dm2-price-text:#000;--dm2-price-border:#fff;--dm2-allergen-text:#fff;--dm2-allergen-border:rgba(255,255,255,.4);--dm2-search-bg:#111;--dm2-search-text:#fff;--dm2-search-border:#444;--dm2-search-placeholder:rgba(255,255,255,.4);--dm2-lang-inactive-bg:#111;--dm2-lang-inactive-text:#fff;--dm2-lang-inactive-border:#444;--dm2-lang-active-bg:#fff;--dm2-lang-active-text:#000;--dm2-lang-active-border:#fff}

/* Bianco */
.dm2.dm2-pal-bianco{--dm2-page-bg:#f8f8f8;--dm2-card-bg:#fff;--dm2-text:#1a1a1a;--dm2-muted:#777;--dm2-border:#ddd;--dm2-accent:#333;--dm2-cat-inactive-bg:#fff;--dm2-cat-inactive-text:#333;--dm2-cat-inactive-border:#ddd;--dm2-cat-active-bg:#1a1a1a;--dm2-cat-active-text:#fff;--dm2-cat-active-border:#1a1a1a;--dm2-product-card-border:#e8e8e8;--dm2-product-card-hover:#333;--dm2-product-title:#1a1a1a;--dm2-product-desc:#777;--dm2-price-bg:#1a1a1a;--dm2-price-text:#fff;--dm2-price-border:#1a1a1a;--dm2-allergen-text:#333;--dm2-allergen-border:#ddd;--dm2-search-bg:#fff;--dm2-search-text:#1a1a1a;--dm2-search-border:#ddd;--dm2-search-placeholder:#aaa;--dm2-lang-inactive-bg:#fff;--dm2-lang-inactive-text:#333;--dm2-lang-inactive-border:#ddd;--dm2-lang-active-bg:#1a1a1a;--dm2-lang-active-text:#fff;--dm2-lang-active-border:#1a1a1a}

/* Rosso */
.dm2.dm2-pal-rosso{--dm2-page-bg:#1a0a0a;--dm2-card-bg:#200e0e;--dm2-text:#f0d0d0;--dm2-muted:#b08080;--dm2-border:#4a1a1a;--dm2-accent:#dc2626;--dm2-cat-inactive-bg:#2a1010;--dm2-cat-inactive-text:#e0a0a0;--dm2-cat-inactive-border:#4a1a1a;--dm2-cat-active-bg:#dc2626;--dm2-cat-active-text:#fff;--dm2-cat-active-border:#dc2626;--dm2-product-card-border:#3a1515;--dm2-product-card-hover:#dc2626;--dm2-product-title:#f5e0e0;--dm2-product-desc:#b08080;--dm2-price-bg:#dc2626;--dm2-price-text:#fff;--dm2-price-border:#dc2626;--dm2-allergen-text:#e0a0a0;--dm2-allergen-border:#4a1a1a;--dm2-search-bg:#200e0e;--dm2-search-text:#f0d0d0;--dm2-search-border:#4a1a1a;--dm2-search-placeholder:#805050;--dm2-lang-inactive-bg:#2a1010;--dm2-lang-inactive-text:#e0a0a0;--dm2-lang-inactive-border:#4a1a1a;--dm2-lang-active-bg:#dc2626;--dm2-lang-active-text:#fff;--dm2-lang-active-border:#dc2626}

/* Oro */
.dm2.dm2-pal-oro{--dm2-page-bg:#0a0a06;--dm2-card-bg:#141410;--dm2-text:#e8e0c8;--dm2-muted:#a89868;--dm2-border:#2a2418;--dm2-accent:#c9a036;--dm2-cat-inactive-bg:#1a1810;--dm2-cat-inactive-text:#c9a036;--dm2-cat-inactive-border:#2a2418;--dm2-cat-active-bg:#c9a036;--dm2-cat-active-text:#0a0a06;--dm2-cat-active-border:#c9a036;--dm2-product-card-border:#2a2418;--dm2-product-card-hover:#c9a036;--dm2-product-title:#f0e8d0;--dm2-product-desc:#a89868;--dm2-price-bg:#c9a036;--dm2-price-text:#0a0a06;--dm2-price-border:#c9a036;--dm2-allergen-text:#c9a036;--dm2-allergen-border:#2a2418;--dm2-search-bg:#141410;--dm2-search-text:#e8e0c8;--dm2-search-border:#2a2418;--dm2-search-placeholder:#6b5d35;--dm2-lang-inactive-bg:#1a1810;--dm2-lang-inactive-text:#c9a036;--dm2-lang-inactive-border:#2a2418;--dm2-lang-active-bg:#c9a036;--dm2-lang-active-text:#0a0a06;--dm2-lang-active-border:#c9a036}

/* Argento */
.dm2.dm2-pal-argento{--dm2-page-bg:#f0f0f2;--dm2-card-bg:#fafafa;--dm2-text:#2a2a2e;--dm2-muted:#8a8a90;--dm2-border:#c8c8cc;--dm2-accent:#6b6b75;--dm2-cat-inactive-bg:#e8e8ec;--dm2-cat-inactive-text:#4a4a50;--dm2-cat-inactive-border:#c8c8cc;--dm2-cat-active-bg:#4a4a50;--dm2-cat-active-text:#fff;--dm2-cat-active-border:#4a4a50;--dm2-product-card-border:#d8d8dc;--dm2-product-card-hover:#6b6b75;--dm2-product-title:#2a2a2e;--dm2-product-desc:#8a8a90;--dm2-price-bg:#4a4a50;--dm2-price-text:#fff;--dm2-price-border:#4a4a50;--dm2-allergen-text:#4a4a50;--dm2-allergen-border:#c8c8cc;--dm2-search-bg:#fff;--dm2-search-text:#2a2a2e;--dm2-search-border:#c8c8cc;--dm2-search-placeholder:#a0a0a5;--dm2-lang-inactive-bg:#e8e8ec;--dm2-lang-inactive-text:#4a4a50;--dm2-lang-inactive-border:#c8c8cc;--dm2-lang-active-bg:#4a4a50;--dm2-lang-active-text:#fff;--dm2-lang-active-border:#4a4a50}

/* Verde */
.dm2.dm2-pal-verde{--dm2-page-bg:#06120a;--dm2-card-bg:#0c1a10;--dm2-text:#d0f0d8;--dm2-muted:#70a878;--dm2-border:#1a3a20;--dm2-accent:#22c55e;--dm2-cat-inactive-bg:#0e2014;--dm2-cat-inactive-text:#80c090;--dm2-cat-inactive-border:#1a3a20;--dm2-cat-active-bg:#22c55e;--dm2-cat-active-text:#06120a;--dm2-cat-active-border:#22c55e;--dm2-product-card-border:#1a3020;--dm2-product-card-hover:#22c55e;--dm2-product-title:#e0f5e4;--dm2-product-desc:#70a878;--dm2-price-bg:#22c55e;--dm2-price-text:#06120a;--dm2-price-border:#22c55e;--dm2-allergen-text:#80c090;--dm2-allergen-border:#1a3a20;--dm2-search-bg:#0c1a10;--dm2-search-text:#d0f0d8;--dm2-search-border:#1a3a20;--dm2-search-placeholder:#3a6840;--dm2-lang-inactive-bg:#0e2014;--dm2-lang-inactive-text:#80c090;--dm2-lang-inactive-border:#1a3a20;--dm2-lang-active-bg:#22c55e;--dm2-lang-active-text:#06120a;--dm2-lang-active-border:#22c55e}

/* Blu */
.dm2.dm2-pal-blu{--dm2-page-bg:#0b1120;--dm2-card-bg:#131b2e;--dm2-text:#c8d6e5;--dm2-muted:#6b7b95;--dm2-border:#1e2d45;--dm2-accent:#2e86de;--dm2-cat-inactive-bg:#0f1828;--dm2-cat-inactive-text:#8eadd4;--dm2-cat-inactive-border:#1e2d45;--dm2-cat-active-bg:#2e86de;--dm2-cat-active-text:#fff;--dm2-cat-active-border:#2e86de;--dm2-product-card-border:#1e2d45;--dm2-product-card-hover:#2e86de;--dm2-product-title:#e4ecf5;--dm2-product-desc:#6b7b95;--dm2-price-bg:#2e86de;--dm2-price-text:#fff;--dm2-price-border:#2e86de;--dm2-allergen-text:#8eadd4;--dm2-allergen-border:#1e2d45;--dm2-search-bg:#131b2e;--dm2-search-text:#c8d6e5;--dm2-search-border:#1e2d45;--dm2-search-placeholder:#4a5d78;--dm2-lang-inactive-bg:#0f1828;--dm2-lang-inactive-text:#8eadd4;--dm2-lang-inactive-border:#1e2d45;--dm2-lang-active-bg:#2e86de;--dm2-lang-active-text:#fff;--dm2-lang-active-border:#2e86de}

/* Arancione */
.dm2.dm2-pal-arancione{--dm2-page-bg:#120a04;--dm2-card-bg:#1c1208;--dm2-text:#f0dcc8;--dm2-muted:#b09070;--dm2-border:#3a2410;--dm2-accent:#f97316;--dm2-cat-inactive-bg:#201408;--dm2-cat-inactive-text:#d0a060;--dm2-cat-inactive-border:#3a2410;--dm2-cat-active-bg:#f97316;--dm2-cat-active-text:#120a04;--dm2-cat-active-border:#f97316;--dm2-product-card-border:#3a2410;--dm2-product-card-hover:#f97316;--dm2-product-title:#f5e8d0;--dm2-product-desc:#b09070;--dm2-price-bg:#f97316;--dm2-price-text:#120a04;--dm2-price-border:#f97316;--dm2-allergen-text:#d0a060;--dm2-allergen-border:#3a2410;--dm2-search-bg:#1c1208;--dm2-search-text:#f0dcc8;--dm2-search-border:#3a2410;--dm2-search-placeholder:#705030;--dm2-lang-inactive-bg:#201408;--dm2-lang-inactive-text:#d0a060;--dm2-lang-inactive-border:#3a2410;--dm2-lang-active-bg:#f97316;--dm2-lang-active-text:#120a04;--dm2-lang-active-border:#f97316}

/* Rosa */
.dm2.dm2-pal-rosa{--dm2-page-bg:#fdf2f8;--dm2-card-bg:#fff;--dm2-text:#3d1f30;--dm2-muted:#a06080;--dm2-border:#f0c0d8;--dm2-accent:#ec4899;--dm2-cat-inactive-bg:#fce8f0;--dm2-cat-inactive-text:#a03068;--dm2-cat-inactive-border:#f0c0d8;--dm2-cat-active-bg:#ec4899;--dm2-cat-active-text:#fff;--dm2-cat-active-border:#ec4899;--dm2-product-card-border:#f5d0e4;--dm2-product-card-hover:#ec4899;--dm2-product-title:#3d1f30;--dm2-product-desc:#a06080;--dm2-price-bg:#ec4899;--dm2-price-text:#fff;--dm2-price-border:#ec4899;--dm2-allergen-text:#a03068;--dm2-allergen-border:#f0c0d8;--dm2-search-bg:#fff;--dm2-search-text:#3d1f30;--dm2-search-border:#f0c0d8;--dm2-search-placeholder:#c090a8;--dm2-lang-inactive-bg:#fce8f0;--dm2-lang-inactive-text:#a03068;--dm2-lang-inactive-border:#f0c0d8;--dm2-lang-active-bg:#ec4899;--dm2-lang-active-text:#fff;--dm2-lang-active-border:#ec4899}

/* Viola */
.dm2.dm2-pal-viola{--dm2-page-bg:#0e0818;--dm2-card-bg:#161020;--dm2-text:#d8c8f0;--dm2-muted:#8868b0;--dm2-border:#2a1840;--dm2-accent:#8b5cf6;--dm2-cat-inactive-bg:#140e22;--dm2-cat-inactive-text:#a888d0;--dm2-cat-inactive-border:#2a1840;--dm2-cat-active-bg:#8b5cf6;--dm2-cat-active-text:#fff;--dm2-cat-active-border:#8b5cf6;--dm2-product-card-border:#2a1840;--dm2-product-card-hover:#8b5cf6;--dm2-product-title:#e8d8f8;--dm2-product-desc:#8868b0;--dm2-price-bg:#8b5cf6;--dm2-price-text:#fff;--dm2-price-border:#8b5cf6;--dm2-allergen-text:#a888d0;--dm2-allergen-border:#2a1840;--dm2-search-bg:#161020;--dm2-search-text:#d8c8f0;--dm2-search-border:#2a1840;--dm2-search-placeholder:#5a4078;--dm2-lang-inactive-bg:#140e22;--dm2-lang-inactive-text:#a888d0;--dm2-lang-inactive-border:#2a1840;--dm2-lang-active-bg:#8b5cf6;--dm2-lang-active-text:#fff;--dm2-lang-active-border:#8b5cf6}

/* Quick Burger (fast food) */
.dm2.dm2-tpl-fastfood{font-family:"Segoe UI",Roboto,Arial,sans-serif}
.dm2.dm2-tpl-fastfood .dm2-card{border-radius:24px;border-width:2px;overflow:hidden}
.dm2.dm2-tpl-fastfood .dm2-card-inner{padding:18px}
.dm2.dm2-tpl-fastfood .dm2-title{font-size:21px;font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.dm2.dm2-tpl-fastfood .dm2-cat-btn{border-radius:999px;font-weight:800;font-size:15px;padding:12px 20px;text-transform:uppercase}
.dm2.dm2-tpl-fastfood .dm2-price{border-radius:999px;font-weight:900;font-size:16px;padding:12px 20px}
.dm2.dm2-tpl-fastfood .dm2-card:hover{transform:scale(1.02);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.dm2.dm2-tpl-fastfood .dm2-desc{font-size:14px;line-height:1.4}

/* Sushi & Japanese */
.dm2.dm2-tpl-sushi{font-family:"Hiragino Mincho ProN",Georgia,"Times New Roman",serif;letter-spacing:.02em}
.dm2.dm2-tpl-sushi .dm2-card{border-radius:4px;border-width:1px}
.dm2.dm2-tpl-sushi .dm2-title{font-size:18px;font-weight:400;letter-spacing:.06em}
.dm2.dm2-tpl-sushi .dm2-cat-btn{border-radius:4px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;font-size:12px;padding:10px 16px}
.dm2.dm2-tpl-sushi .dm2-price{border-radius:4px;font-weight:400}
.dm2.dm2-tpl-sushi .dm2-desc{font-style:italic;font-size:13px}
.dm2.dm2-tpl-sushi .dm2-card:hover{transform:none}

/* Coffee & Bakery */
.dm2.dm2-tpl-cafe{font-family:Georgia,"Palatino Linotype",serif}
.dm2.dm2-tpl-cafe .dm2-card{border-radius:16px;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.dm2.dm2-tpl-cafe .dm2-card-inner{padding:18px}
.dm2.dm2-tpl-cafe .dm2-title{font-size:19px;font-weight:600;font-style:italic}
.dm2.dm2-tpl-cafe .dm2-cat-btn{border-radius:12px;font-style:italic}
.dm2.dm2-tpl-cafe .dm2-price{border-radius:12px}
.dm2.dm2-tpl-cafe .dm2-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1)}

/* Street Food */
.dm2.dm2-tpl-streetfood{font-family:"Arial Black",Impact,"Segoe UI",sans-serif}
.dm2.dm2-tpl-streetfood .dm2-card{border-radius:0;border-width:3px}
.dm2.dm2-tpl-streetfood .dm2-title{font-size:20px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.dm2.dm2-tpl-streetfood .dm2-cat-btn{border-radius:0;font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:13px;border-width:3px}
.dm2.dm2-tpl-streetfood .dm2-price{border-radius:0;font-weight:900;border-width:2px}
.dm2.dm2-tpl-streetfood .dm2-card:hover{transform:rotate(-0.5deg) scale(1.01)}

/* Fine Dining */
.dm2.dm2-tpl-finedining{font-family:Garamond,"Palatino Linotype",Georgia,serif;letter-spacing:.02em}
.dm2.dm2-tpl-finedining .dm2-card{border-radius:0;border:none;border-bottom:1px solid rgba(128,128,128,.15)}
.dm2.dm2-tpl-finedining .dm2-card:hover{border-color:rgba(128,128,128,.3);box-shadow:none;transform:none}
.dm2.dm2-tpl-finedining .dm2-card-inner{padding:20px 0}
.dm2.dm2-tpl-finedining .dm2-title{font-size:18px;font-weight:400;letter-spacing:.08em;text-transform:uppercase}
.dm2.dm2-tpl-finedining .dm2-desc{font-style:italic;font-size:13px;letter-spacing:.01em}
.dm2.dm2-tpl-finedining .dm2-cat-btn{border-radius:0;border:none;border-bottom:1px solid transparent;font-weight:400;letter-spacing:.12em;text-transform:uppercase;font-size:12px;padding:8px 4px;background:transparent}
.dm2.dm2-tpl-finedining .dm2-cat-btn[aria-selected="true"]{border-bottom-color:currentColor}
.dm2.dm2-tpl-finedining .dm2-price{border-radius:0;border:none;font-weight:400;background:transparent;padding:0}
.dm2.dm2-tpl-finedining .dm2-allergen{border-radius:4px}

/* New palettes */
.dm2.dm2-pal-marrone{--dm2-page-bg:#1a1008;--dm2-card-bg:#221810;--dm2-text:#e8d8c8;--dm2-muted:#a08868;--dm2-border:#3a2818;--dm2-accent:#8b5e3c;--dm2-cat-inactive-bg:#2a1c10;--dm2-cat-inactive-text:#c8a880;--dm2-cat-inactive-border:#3a2818;--dm2-cat-active-bg:#8b5e3c;--dm2-cat-active-text:#fff;--dm2-cat-active-border:#8b5e3c;--dm2-product-card-border:#3a2818;--dm2-product-card-hover:#8b5e3c;--dm2-product-title:#f0e0d0;--dm2-product-desc:#a08868;--dm2-price-bg:#8b5e3c;--dm2-price-text:#fff;--dm2-price-border:#8b5e3c;--dm2-allergen-text:#c8a880;--dm2-allergen-border:#3a2818;--dm2-search-bg:#221810;--dm2-search-text:#e8d8c8;--dm2-search-border:#3a2818;--dm2-search-placeholder:#6a5038;--dm2-lang-inactive-bg:#2a1c10;--dm2-lang-inactive-text:#c8a880;--dm2-lang-inactive-border:#3a2818;--dm2-lang-active-bg:#8b5e3c;--dm2-lang-active-text:#fff;--dm2-lang-active-border:#8b5e3c}

.dm2.dm2-pal-giallo{--dm2-page-bg:#1a1800;--dm2-card-bg:#222008;--dm2-text:#f0e8c0;--dm2-muted:#b0a860;--dm2-border:#3a3410;--dm2-accent:#eab308;--dm2-cat-inactive-bg:#2a2808;--dm2-cat-inactive-text:#d4c850;--dm2-cat-inactive-border:#3a3410;--dm2-cat-active-bg:#eab308;--dm2-cat-active-text:#1a1800;--dm2-cat-active-border:#eab308;--dm2-product-card-border:#3a3410;--dm2-product-card-hover:#eab308;--dm2-product-title:#f5f0d0;--dm2-product-desc:#b0a860;--dm2-price-bg:#eab308;--dm2-price-text:#1a1800;--dm2-price-border:#eab308;--dm2-allergen-text:#d4c850;--dm2-allergen-border:#3a3410;--dm2-search-bg:#222008;--dm2-search-text:#f0e8c0;--dm2-search-border:#3a3410;--dm2-search-placeholder:#706820;--dm2-lang-inactive-bg:#2a2808;--dm2-lang-inactive-text:#d4c850;--dm2-lang-inactive-border:#3a3410;--dm2-lang-active-bg:#eab308;--dm2-lang-active-text:#1a1800;--dm2-lang-active-border:#eab308}

.dm2.dm2-pal-azzurro{--dm2-page-bg:#f0f8ff;--dm2-card-bg:#fff;--dm2-text:#1a3040;--dm2-muted:#5a8090;--dm2-border:#b8d8e8;--dm2-accent:#0ea5e9;--dm2-cat-inactive-bg:#e8f4fc;--dm2-cat-inactive-text:#1a6090;--dm2-cat-inactive-border:#b8d8e8;--dm2-cat-active-bg:#0ea5e9;--dm2-cat-active-text:#fff;--dm2-cat-active-border:#0ea5e9;--dm2-product-card-border:#d0e8f4;--dm2-product-card-hover:#0ea5e9;--dm2-product-title:#1a3040;--dm2-product-desc:#5a8090;--dm2-price-bg:#0ea5e9;--dm2-price-text:#fff;--dm2-price-border:#0ea5e9;--dm2-allergen-text:#1a6090;--dm2-allergen-border:#b8d8e8;--dm2-search-bg:#fff;--dm2-search-text:#1a3040;--dm2-search-border:#b8d8e8;--dm2-search-placeholder:#80b0c8;--dm2-lang-inactive-bg:#e8f4fc;--dm2-lang-inactive-text:#1a6090;--dm2-lang-inactive-border:#b8d8e8;--dm2-lang-active-bg:#0ea5e9;--dm2-lang-active-text:#fff;--dm2-lang-active-border:#0ea5e9}

.dm2.dm2-pal-bluscuro{--dm2-page-bg:#060a18;--dm2-card-bg:#0c1228;--dm2-text:#b8c8e0;--dm2-muted:#5a6a88;--dm2-border:#1a2440;--dm2-accent:#1d4ed8;--dm2-cat-inactive-bg:#0e1630;--dm2-cat-inactive-text:#7090c0;--dm2-cat-inactive-border:#1a2440;--dm2-cat-active-bg:#1d4ed8;--dm2-cat-active-text:#fff;--dm2-cat-active-border:#1d4ed8;--dm2-product-card-border:#1a2440;--dm2-product-card-hover:#1d4ed8;--dm2-product-title:#d0d8e8;--dm2-product-desc:#5a6a88;--dm2-price-bg:#1d4ed8;--dm2-price-text:#fff;--dm2-price-border:#1d4ed8;--dm2-allergen-text:#7090c0;--dm2-allergen-border:#1a2440;--dm2-search-bg:#0c1228;--dm2-search-text:#b8c8e0;--dm2-search-border:#1a2440;--dm2-search-placeholder:#3a4a68;--dm2-lang-inactive-bg:#0e1630;--dm2-lang-inactive-text:#7090c0;--dm2-lang-inactive-border:#1a2440;--dm2-lang-active-bg:#1d4ed8;--dm2-lang-active-text:#fff;--dm2-lang-active-border:#1d4ed8}

/* Background image support */
.dm2[style*="--dm2-bg-img"]::before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:var(--dm2-bg-img) center/cover no-repeat;opacity:var(--dm2-bg-opacity,1);z-index:0;pointer-events:none}
.dm2[style*="--dm2-bg-img"] .dm2-inner,.dm2[style*="--dm2-bg-img"] .dm2-header,.dm2[style*="--dm2-bg-img"] .dm2-footer{position:relative;z-index:1}

/* Fix templates that conflict with palettes - ensure all use CSS variables */
.dm2.dm2-tpl-finedining .dm2-card{border-bottom-color:var(--dm2-border,rgba(128,128,128,.15))}
.dm2.dm2-tpl-finedining .dm2-cat-btn[aria-selected="true"]{border-bottom-color:var(--dm2-cat-active-border,currentColor)}
.dm2.dm2-tpl-minimal .dm2-cat-btn[aria-selected="true"]{border-bottom-color:var(--dm2-cat-active-border,currentColor)}
.dm2.dm2-tpl-streetfood .dm2-card{border-color:var(--dm2-product-card-border,var(--dm2-border))}
.dm2.dm2-tpl-cocktail .dm2-card{box-shadow:0 0 20px rgba(0,0,0,.15)}

/* Storage badges (congelato/decongelato) - separated from allergens */
.dm2-storage-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;order:21}
.dm2-storage-tag{font-size:12px;color:var(--dm2-muted,#999);display:inline-flex;align-items:center;gap:2px;white-space:nowrap}
/* Emoji allergen style */
.dm2-allergen-emoji .dm2-emoji{font-size:18px;line-height:1}
.dm2-allergen-emoji{background:transparent;border-color:var(--dm2-border,rgba(255,255,255,.3))}

/* Product badges */
.dm2-badges{display:flex !important;gap:6px;flex-wrap:wrap;margin:4px 0 8px;order:15;visibility:visible !important}
.dm2-badge{display:inline-flex !important;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;visibility:visible !important;opacity:1 !important}
.dm2-badge-nuovo{background:rgba(59,130,246,.15);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.dm2-badge-popolare{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.dm2-badge-consigliato{background:rgba(234,179,8,.15);color:#eab308;border:1px solid rgba(234,179,8,.3)}
.dm2-badge-vegano{background:rgba(34,197,94,.15);color:#22c55e;border:1px solid rgba(34,197,94,.3)}
.dm2-badge-vegetariano{background:rgba(34,197,94,.1);color:#16a34a;border:1px solid rgba(34,197,94,.2)}
.dm2-badge-senzaglutine{background:rgba(168,85,247,.1);color:#a855f7;border:1px solid rgba(168,85,247,.2)}

/* Product notes */
.dm2-product-note{font-size:12px;color:var(--dm2-muted,#999);margin-top:16px;font-style:italic;order:22}

/* Dietary filters */
.dm2-filters{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;margin-bottom:8px}
.dm2-filter-btn{padding:6px 14px;border-radius:999px;border:1px solid var(--dm2-border,rgba(255,255,255,.2));background:var(--dm2-cat-inactive-bg,rgba(255,255,255,.06));color:var(--dm2-cat-inactive-text,#ccc);font-size:13px;cursor:pointer;transition:all .15s}
.dm2-filter-btn.active{background:var(--dm2-cat-active-bg,#fff);color:var(--dm2-cat-active-text,#000);border-color:var(--dm2-cat-active-border,#fff)}
.dm2-filter-btn:hover{opacity:.85}
.dm2-filter-clear{background:transparent;border-style:dashed;opacity:.7}

.dm2-desc{margin-bottom:8px}

/* Loading skeleton */
.dm2-skeleton{padding:16px}
.dm2-skeleton-bar{height:16px;background:linear-gradient(90deg,var(--dm2-card-bg,#111) 25%,rgba(255,255,255,.06) 50%,var(--dm2-card-bg,#111) 75%);background-size:200% 100%;animation:dm2-shimmer 1.5s infinite;border-radius:8px;margin-bottom:10px}
.dm2-skeleton-bar.w60{width:60%}
.dm2-skeleton-bar.w80{width:80%}
.dm2-skeleton-bar.w40{width:40%}
.dm2-skeleton-card{height:80px;background:var(--dm2-card-bg,#111);border-radius:12px;margin-bottom:12px;padding:16px;border:1px solid var(--dm2-border,rgba(255,255,255,.1))}
@keyframes dm2-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Fade-in products */
.dm2-card{animation:dm2-fadeIn .3s ease}
@keyframes dm2-fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Lazy load images */
.dm2-img-hero,.dm2-img-left{content-visibility:auto}

/* Very small screens */
@media(max-width:380px){
  .dm2 .dm2-products{grid-template-columns:1fr}
  .dm2-card-inner{padding:12px}
  .dm2-title{font-size:16px}
  .dm2-price{font-size:14px;padding:8px 14px}
  .dm2-cat-btn{padding:8px 12px;font-size:12px}
}

/* ===== Tema Fullpage (categorie a schermo intero tile-style) ===== */
.dm2-menu-theme-fullpage .dm2-inner{max-width:1400px;padding:0}
.dm2-menu-theme-fullpage .dm2-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}
.dm2-menu-theme-fullpage .dm2-cat-item{position:relative;min-height:240px;border-radius:20px;overflow:hidden;background:var(--dm2-card-bg,#111);border:1px solid var(--dm2-cat-inactive-border,var(--dm2-border));cursor:pointer;transition:transform .3s ease, box-shadow .3s ease;box-shadow:0 10px 26px rgba(0,0,0,.22)}
.dm2-menu-theme-fullpage .dm2-cat-item:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(0,0,0,.38)}
.dm2-menu-theme-fullpage .dm2-cat-img{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;overflow:hidden}
.dm2-menu-theme-fullpage .dm2-cat-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.dm2-menu-theme-fullpage .dm2-cat-item:hover .dm2-cat-img img{transform:scale(1.06)}
.dm2-menu-theme-fullpage .dm2-cat-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.78) 100%)}
/* Tutto il tile è cliccabile: button copre l'intera area (non solo il bottom) */
.dm2-menu-theme-fullpage .dm2-cat-btn{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;text-align:center;background:transparent;border:0;padding:14px 12px 16px;border-radius:0;white-space:normal !important;overflow:hidden;z-index:2}
.dm2-menu-theme-fullpage .dm2-cat-btn[aria-selected="true"]{background:transparent;border:0;box-shadow:none}
/* Titolo: usa il colore dal pannello, ombra solo se c'è un'immagine */
.dm2-menu-theme-fullpage .dm2-cat-name{width:100%;box-sizing:border-box;font-size:var(--dm2-category-font-size,16px);font-family:var(--dm2-category-font-family,inherit);font-weight:700;line-height:1.18;color:var(--dm2-cat-inactive-text,var(--dm2-text,#000));text-transform:uppercase;letter-spacing:.01em;text-shadow:none;white-space:normal !important;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
/* Se il tile ha immagine (c'è .dm2-cat-img prima del button), applica ombra e colore chiaro per leggibilità sull'overlay scuro */
.dm2-menu-theme-fullpage .dm2-cat-img ~ .dm2-cat-btn .dm2-cat-name{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.55)}
.dm2-menu-theme-fullpage .dm2-products{grid-template-columns:1fr;gap:16px;padding:10px 16px 24px}
.dm2-menu-theme-fullpage .dm2-card{border-radius:18px;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.12)}
.dm2-menu-theme-fullpage .dm2-popup-back{display:inline-flex;align-items:center;gap:8px;margin:14px 16px 6px;padding:12px 20px;border-radius:999px;border:1px solid var(--dm2-primary-btn-border,var(--dm2-border));background:var(--dm2-primary-btn-bg,var(--dm2-card-bg));color:var(--dm2-primary-btn-text,var(--dm2-text));font-weight:700;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.15)}
.dm2-menu-theme-fullpage .dm2-popup-back::before{content:"←";font-size:18px;margin-right:2px}
.dm2-menu-theme-fullpage .dm2-popup-back:hover{filter:brightness(1.06);transform:translateY(-1px)}
@media(min-width:901px){
  .dm2-menu-theme-fullpage .dm2-cats{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:24px}
  .dm2-menu-theme-fullpage .dm2-cat-item{min-height:280px}
}
@media(min-width:1200px){
  .dm2-menu-theme-fullpage .dm2-cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
  .dm2-menu-theme-fullpage .dm2-cat-item{min-height:320px}
}
@media(max-width:640px){
  .dm2-menu-theme-fullpage .dm2-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}
  .dm2-menu-theme-fullpage .dm2-cat-item{min-height:180px;border-radius:16px}
  .dm2-menu-theme-fullpage .dm2-cat-btn{padding:10px 8px 12px}
  .dm2-menu-theme-fullpage .dm2-cat-name{font-size:var(--dm2-category-font-size,14px);line-height:1.15}
}

/* Override per tema popup/fullpage: batte il !important di dm2-frontend-modern.css */
.dm2[data-dm2="menu"].dm2-menu-theme-popup.dm2-popup-open .dm2-cats,
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage.dm2-popup-open .dm2-cats,
.dm2[data-dm2="menu"].dm2-menu-theme-popup .dm2-cats.dm2-cats--hidden,
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cats.dm2-cats--hidden{
  display:none !important;
}
/* Forza il layout a griglia quando le categorie sono visibili (batte il flex!important del modern) */
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cats:not(.dm2-cats--hidden){
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  flex-wrap:initial !important;
  overflow:visible !important;
  white-space:normal !important;
  padding:18px !important;
  gap:14px !important;
}
@media(min-width:901px){
  .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cats:not(.dm2-cats--hidden){grid-template-columns:repeat(3,minmax(0,1fr)) !important;padding:24px !important;gap:18px !important}
}
@media(min-width:1200px){
  .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cats:not(.dm2-cats--hidden){grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:20px !important}
}
/* Anche popup aveva lo stesso bug: riparo in stile */
.dm2[data-dm2="menu"].dm2-menu-theme-popup .dm2-cats:not(.dm2-cats--hidden){
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  flex-wrap:initial !important;
  overflow:visible !important;
  white-space:normal !important;
}

/* Override universale: nasconde categorie al click quando attiva la modalità hideCatsOnClick */
.dm2[data-dm2="menu"].dm2-popup-open .dm2-cats,
.dm2[data-dm2="menu"] .dm2-cats.dm2-cats--hidden{
  display:none !important;
}
/* Stile del pulsante "Torna alle categorie" quando appare con temi diversi da popup/fullpage */
.dm2[data-dm2="menu"] .dm2-popup-back{
  display:inline-flex;align-items:center;gap:8px;
  margin:14px 16px 6px;padding:10px 18px;
  border-radius:999px;
  border:1px solid var(--dm2-primary-btn-border,var(--dm2-border,#fff));
  background:var(--dm2-primary-btn-bg,var(--dm2-card-bg,#111));
  color:var(--dm2-primary-btn-text,var(--dm2-text,#fff));
  font-weight:700;cursor:pointer;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.dm2[data-dm2="menu"] .dm2-popup-back::before{content:"←";margin-right:4px;font-size:16px}
.dm2[data-dm2="menu"] .dm2-popup-back:hover{filter:brightness(1.08)}


/* ===== HIDE-CATS MODE — stili puliti (display gestito via JS inline !important) ===== */
.dm2[data-dm2="menu"].dm2-hide-cats-mode .dm2-popup-back{
  align-items:center;gap:8px;
  margin:14px 16px 6px;padding:10px 18px;
  border-radius:999px;
  border:1px solid var(--dm2-border,#ccc);
  background:var(--dm2-card-bg,#fff);
  color:var(--dm2-text,#000);
  font-weight:700;cursor:pointer;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.dm2[data-dm2="menu"].dm2-hide-cats-mode .dm2-popup-back::before{content:"←";margin-right:4px;font-size:16px}
.dm2[data-dm2="menu"].dm2-hide-cats-mode .dm2-popup-back:hover{filter:brightness(1.08)}

/* ===== Bulletproof hide categories quando popup aperto ===== */
body.dm2-menu-popup-open .dm2[data-dm2="menu"] .dm2-cats,
body.dm2-menu-popup-open .dm2[data-dm2="menu"] .dm2-cat-item,
html body.dm2-menu-popup-open .dm2[data-dm2="menu"] .dm2-cats,
html body.dm2-menu-popup-open .dm2[data-dm2="menu"] .dm2-cat-item{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  max-height:0 !important;
  overflow:hidden !important;
  padding:0 !important;
  margin:0 !important;
}

/* Spazio tra header e selettore lingue (solo per temi che lo richiedono) */
.dm2[data-dm2="menu"] .dm2-lang{margin-top:18px}
@media(max-width:640px){
  .dm2[data-dm2="menu"] .dm2-lang{margin-top:14px}
}

/* ===== Tema Square (come Fullpage ma quadrato, senza bordi arrotondati) ===== */
.dm2-menu-theme-square .dm2-inner{max-width:1400px;padding:0}
.dm2-menu-theme-square .dm2-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:16px 14px 12px}
.dm2-menu-theme-square .dm2-cat-item{position:relative;min-height:220px;border-radius:0;overflow:hidden;background:var(--dm2-card-bg,#111);border:1px solid var(--dm2-cat-inactive-border,var(--dm2-border));cursor:pointer;transition:transform .25s ease, box-shadow .25s ease;box-shadow:none}
.dm2-menu-theme-square .dm2-cat-item:hover{box-shadow:0 6px 20px rgba(0,0,0,.25)}
.dm2-menu-theme-square .dm2-cat-img{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;overflow:hidden}
.dm2-menu-theme-square .dm2-cat-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.dm2-menu-theme-square .dm2-cat-item:hover .dm2-cat-img img{transform:scale(1.04)}
.dm2-menu-theme-square .dm2-cat-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.78) 100%)}
.dm2-menu-theme-square .dm2-cat-btn{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;text-align:center;background:transparent;border:0;padding:12px 10px 14px;border-radius:0;white-space:normal !important;overflow:hidden;z-index:2}
.dm2-menu-theme-square .dm2-cat-btn[aria-selected="true"]{background:transparent;border:0;box-shadow:none}
.dm2-menu-theme-square .dm2-cat-name{width:100%;box-sizing:border-box;font-size:var(--dm2-category-font-size,15px);font-family:var(--dm2-category-font-family,inherit);font-weight:700;line-height:1.15;color:var(--dm2-cat-inactive-text,var(--dm2-text,#000));text-transform:uppercase;letter-spacing:.01em;text-shadow:none;white-space:normal !important;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
.dm2-menu-theme-square .dm2-cat-img ~ .dm2-cat-btn .dm2-cat-name{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.55)}
.dm2-menu-theme-square .dm2-products{grid-template-columns:1fr;gap:14px;padding:10px 14px 20px}
.dm2-menu-theme-square .dm2-card{border-radius:0;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.dm2-menu-theme-square .dm2-popup-back{display:inline-flex;align-items:center;gap:8px;margin:14px 14px 6px;padding:10px 18px;border-radius:0;border:1px solid var(--dm2-primary-btn-border,var(--dm2-border));background:var(--dm2-primary-btn-bg,var(--dm2-card-bg));color:var(--dm2-primary-btn-text,var(--dm2-text));font-weight:700;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.15)}
.dm2-menu-theme-square .dm2-popup-back::before{content:"←";font-size:16px;margin-right:2px}
@media(min-width:901px){
  .dm2-menu-theme-square .dm2-cats{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .dm2-menu-theme-square .dm2-cat-item{min-height:260px}
}
@media(min-width:1200px){
  .dm2-menu-theme-square .dm2-cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  .dm2-menu-theme-square .dm2-cat-item{min-height:300px}
}
@media(max-width:640px){
  .dm2-menu-theme-square .dm2-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:12px 10px 8px}
  .dm2-menu-theme-square .dm2-cat-item{min-height:160px;border-radius:0}
  .dm2-menu-theme-square .dm2-cat-btn{padding:8px 6px 10px}
  .dm2-menu-theme-square .dm2-cat-name{font-size:var(--dm2-category-font-size,13px);line-height:1.12}
}

/* ===== Tema Tris (3 categorie per riga, stile Fullpage con bordi arrotondati) ===== */
.dm2-menu-theme-tris .dm2-inner{max-width:1400px;padding:0}
.dm2-menu-theme-tris .dm2-cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}
.dm2-menu-theme-tris .dm2-cat-item{position:relative;min-height:200px;border-radius:16px;overflow:hidden;background:var(--dm2-card-bg,#111);border:1px solid var(--dm2-cat-inactive-border,var(--dm2-border));cursor:pointer;transition:transform .3s ease, box-shadow .3s ease;box-shadow:0 8px 18px rgba(0,0,0,.18)}
.dm2-menu-theme-tris .dm2-cat-item:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.3)}
.dm2-menu-theme-tris .dm2-cat-img{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;overflow:hidden}
.dm2-menu-theme-tris .dm2-cat-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.dm2-menu-theme-tris .dm2-cat-item:hover .dm2-cat-img img{transform:scale(1.05)}
.dm2-menu-theme-tris .dm2-cat-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.78) 100%)}
.dm2-menu-theme-tris .dm2-cat-btn{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;text-align:center;background:transparent;border:0;padding:12px 10px 14px;border-radius:0;white-space:normal !important;overflow:hidden;z-index:2}
.dm2-menu-theme-tris .dm2-cat-btn[aria-selected="true"]{background:transparent;border:0;box-shadow:none}
.dm2-menu-theme-tris .dm2-cat-name{width:100%;box-sizing:border-box;font-size:var(--dm2-category-font-size,14px);font-family:var(--dm2-category-font-family,inherit);font-weight:700;line-height:1.15;color:var(--dm2-cat-inactive-text,var(--dm2-text,#000));text-transform:uppercase;letter-spacing:.01em;text-shadow:none;white-space:normal !important;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
.dm2-menu-theme-tris .dm2-cat-img ~ .dm2-cat-btn .dm2-cat-name{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.55)}
.dm2-menu-theme-tris .dm2-products{grid-template-columns:1fr;gap:14px;padding:10px 14px 20px}
.dm2-menu-theme-tris .dm2-card{border-radius:16px;overflow:hidden;box-shadow:0 8px 18px rgba(0,0,0,.1)}
.dm2-menu-theme-tris .dm2-popup-back{display:inline-flex;align-items:center;gap:8px;margin:14px 14px 6px;padding:10px 18px;border-radius:999px;border:1px solid var(--dm2-primary-btn-border,var(--dm2-border));background:var(--dm2-primary-btn-bg,var(--dm2-card-bg));color:var(--dm2-primary-btn-text,var(--dm2-text));font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.dm2-menu-theme-tris .dm2-popup-back::before{content:"←";font-size:16px;margin-right:2px}
@media(min-width:901px){
  .dm2-menu-theme-tris .dm2-cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:18px}
  .dm2-menu-theme-tris .dm2-cat-item{min-height:240px}
}
@media(min-width:1200px){
  .dm2-menu-theme-tris .dm2-cats{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
  .dm2-menu-theme-tris .dm2-cat-item{min-height:260px}
}
@media(max-width:640px){
  .dm2-menu-theme-tris .dm2-cats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px}
  .dm2-menu-theme-tris .dm2-cat-item{min-height:130px;border-radius:12px}
  .dm2-menu-theme-tris .dm2-cat-btn{padding:8px 6px 10px}
  .dm2-menu-theme-tris .dm2-cat-name{font-size:var(--dm2-category-font-size,12px);line-height:1.1}
}

/* ===== Tema Trisquare (3 categorie per riga, quadrato senza bordi arrotondati) ===== */
.dm2-menu-theme-trisquare .dm2-inner{max-width:1400px;padding:0}
.dm2-menu-theme-trisquare .dm2-cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:16px 14px 12px}
.dm2-menu-theme-trisquare .dm2-cat-item{position:relative;min-height:180px;border-radius:0;overflow:hidden;background:var(--dm2-card-bg,#111);border:1px solid var(--dm2-cat-inactive-border,var(--dm2-border));cursor:pointer;transition:transform .25s ease, box-shadow .25s ease;box-shadow:none}
.dm2-menu-theme-trisquare .dm2-cat-item:hover{box-shadow:0 6px 20px rgba(0,0,0,.25)}
.dm2-menu-theme-trisquare .dm2-cat-img{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;overflow:hidden}
.dm2-menu-theme-trisquare .dm2-cat-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.dm2-menu-theme-trisquare .dm2-cat-item:hover .dm2-cat-img img{transform:scale(1.04)}
.dm2-menu-theme-trisquare .dm2-cat-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.78) 100%)}
.dm2-menu-theme-trisquare .dm2-cat-btn{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;text-align:center;background:transparent;border:0;padding:10px 8px 12px;border-radius:0;white-space:normal !important;overflow:hidden;z-index:2}
.dm2-menu-theme-trisquare .dm2-cat-btn[aria-selected="true"]{background:transparent;border:0;box-shadow:none}
.dm2-menu-theme-trisquare .dm2-cat-name{width:100%;box-sizing:border-box;font-size:var(--dm2-category-font-size,14px);font-family:var(--dm2-category-font-family,inherit);font-weight:700;line-height:1.15;color:var(--dm2-cat-inactive-text,var(--dm2-text,#000));text-transform:uppercase;letter-spacing:.01em;text-shadow:none;white-space:normal !important;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
.dm2-menu-theme-trisquare .dm2-cat-img ~ .dm2-cat-btn .dm2-cat-name{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.55)}
.dm2-menu-theme-trisquare .dm2-products{grid-template-columns:1fr;gap:14px;padding:10px 14px 20px}
.dm2-menu-theme-trisquare .dm2-card{border-radius:0;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.dm2-menu-theme-trisquare .dm2-popup-back{display:inline-flex;align-items:center;gap:8px;margin:14px 14px 6px;padding:10px 18px;border-radius:0;border:1px solid var(--dm2-primary-btn-border,var(--dm2-border));background:var(--dm2-primary-btn-bg,var(--dm2-card-bg));color:var(--dm2-primary-btn-text,var(--dm2-text));font-weight:700;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.15)}
.dm2-menu-theme-trisquare .dm2-popup-back::before{content:"←";font-size:16px;margin-right:2px}
@media(min-width:901px){
  .dm2-menu-theme-trisquare .dm2-cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:18px}
  .dm2-menu-theme-trisquare .dm2-cat-item{min-height:220px}
}
@media(min-width:1200px){
  .dm2-menu-theme-trisquare .dm2-cats{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
  .dm2-menu-theme-trisquare .dm2-cat-item{min-height:240px}
}
@media(max-width:640px){
  .dm2-menu-theme-trisquare .dm2-cats{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:12px 10px 8px}
  .dm2-menu-theme-trisquare .dm2-cat-item{min-height:120px;border-radius:0}
  .dm2-menu-theme-trisquare .dm2-cat-btn{padding:6px 4px 8px}
  .dm2-menu-theme-trisquare .dm2-cat-name{font-size:var(--dm2-category-font-size,12px);line-height:1.1}
}

/* ===== Forza visibilità allergeni e storage badges sui prodotti ===== */
.dm2[data-dm2="menu"] .dm2-card .dm2-allergens,
.dm2[data-dm2="menu"] .dm2-card .dm2-allergens-under-image{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:4px !important;
  margin-top:6px !important;
}
.dm2[data-dm2="menu"] .dm2-card .dm2-allergen{
  display:inline-flex !important;
  visibility:visible !important;
  align-items:center !important;
}
.dm2[data-dm2="menu"] .dm2-card .dm2-allergen-name{
  display:inline !important;
  visibility:visible !important;
}
/* Se l'utente ha scelto stile "icon only" o "emoji icon" mostra l'icona (il modern CSS di default la nasconde) */
.dm2[data-dm2="menu"] .dm2-card .dm2-allergen-icononly .dm2-allergen-ico,
.dm2[data-dm2="menu"] .dm2-card .dm2-allergen.dm2-allergen-emoji .dm2-allergen-ico{
  display:inline-flex !important;
  visibility:visible !important;
}
/* Storage badges (Congelato/Decongelato) */
.dm2[data-dm2="menu"] .dm2-card .dm2-storage-badges{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  margin-top:8px !important;
}
.dm2[data-dm2="menu"] .dm2-card .dm2-storage-tag{
  display:inline-flex !important;
  visibility:visible !important;
  align-items:center !important;
  gap:2px !important;
  font-size:12px !important;
  white-space:nowrap !important;
}

/* ===== Override finale: forza TUTTI i badge allergeni visibili (icone + nomi) ===== */
.dm2[data-dm2="menu"] .dm2-card-inner .dm2-allergen-ico,
.dm2[data-dm2="menu"] .dm2-card .dm2-allergen-ico{
  display:inline-flex !important;
  visibility:visible !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  height:auto !important;
  min-width:14px !important;
}
.dm2[data-dm2="menu"] .dm2-card-inner .dm2-allergen-name,
.dm2[data-dm2="menu"] .dm2-card .dm2-allergen-name{
  display:inline !important;
  visibility:visible !important;
  color:inherit !important;
}
.dm2[data-dm2="menu"] .dm2-card-inner .dm2-allergens,
.dm2[data-dm2="menu"] .dm2-card-inner .dm2-allergens-under-image,
.dm2[data-dm2="menu"] .dm2-card .dm2-allergens,
.dm2[data-dm2="menu"] .dm2-card .dm2-allergens-under-image{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px !important;
  margin-top:6px !important;
  opacity:1 !important;
  visibility:visible !important;
}
.dm2[data-dm2="menu"] .dm2-card-inner .dm2-allergen,
.dm2[data-dm2="menu"] .dm2-card .dm2-allergen{
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
  align-items:center !important;
  gap:4px !important;
  padding:2px 8px !important;
}

/* ===== Posizione testo categorie per i nuovi temi (fullpage/square/tris/trisquare) ===== */
/* Il button copre tutto il tile con inset:0; qui regoliamo align-items e justify-content. */

/* Tre position base: left, center, right (fondo verticale di default) */
.dm2-menu-theme-fullpage .dm2-cat-pos-left .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-left .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-left .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-left .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-start !important;text-align:left !important;
}
.dm2-menu-theme-fullpage .dm2-cat-pos-center .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-center .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-center .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-center .dm2-cat-btn{
  align-items:flex-end !important;justify-content:center !important;text-align:center !important;
}
.dm2-menu-theme-fullpage .dm2-cat-pos-right .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-right .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-right .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-right .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-end !important;text-align:right !important;
}

/* In alto a sinistra/centro */
.dm2-menu-theme-fullpage .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-top-left .dm2-cat-btn{
  align-items:flex-start !important;justify-content:flex-start !important;text-align:left !important;
  padding-top:14px !important;
}
.dm2-menu-theme-fullpage .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-top-center .dm2-cat-btn{
  align-items:flex-start !important;justify-content:center !important;text-align:center !important;
  padding-top:14px !important;
}

/* In basso a sinistra (default effetto) / centro */
.dm2-menu-theme-fullpage .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-bottom-left .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-start !important;text-align:left !important;
}
.dm2-menu-theme-fullpage .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-bottom-center .dm2-cat-btn{
  align-items:flex-end !important;justify-content:center !important;text-align:center !important;
}

/* Centro centro (verticalmente e orizzontalmente) */
.dm2-menu-theme-fullpage .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-center-center .dm2-cat-btn{
  align-items:center !important;justify-content:center !important;text-align:center !important;
}

/* ===== Spazio extra tra prodotti/allergeni e footer ===== */
.dm2[data-dm2="menu"] .dm2-products{padding-bottom:36px !important}
.dm2[data-dm2="menu"] .dm2-legend{margin-top:18px;padding-top:24px}
.dm2[data-dm2="menu"] .dm2-footer{margin-top:22px;padding-top:22px;padding-bottom:24px}

/* Forza il button a coprire tutto il tile per i nuovi temi anche con classi pos-* */
.dm2-menu-theme-fullpage .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2-menu-theme-fullpage .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2-menu-theme-fullpage .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2-menu-theme-fullpage .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2-menu-theme-fullpage .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2-menu-theme-fullpage .dm2-cat-pos-left .dm2-cat-btn,
.dm2-menu-theme-fullpage .dm2-cat-pos-center .dm2-cat-btn,
.dm2-menu-theme-fullpage .dm2-cat-pos-right .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-left .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-center .dm2-cat-btn,
.dm2-menu-theme-square .dm2-cat-pos-right .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-left .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-center .dm2-cat-btn,
.dm2-menu-theme-tris .dm2-cat-pos-right .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-left .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-center .dm2-cat-btn,
.dm2-menu-theme-trisquare .dm2-cat-pos-right .dm2-cat-btn{
  top:0 !important;
  bottom:0 !important;
  left:0 !important;
  right:0 !important;
  inset:0 !important;
  transform:none !important;
  width:100% !important;
  height:100% !important;
}

/* ===== Posizione testo categorie con specificità MAGGIORE (batte dm2-frontend-modern.css) ===== */
/* Aggiungiamo .dm2[data-dm2="menu"] al selettore per avere specificità (0,4,0) vs modern (0,3,0) */

/* In alto a sinistra / centro */
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-top-left .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-top-left .dm2-cat-btn{
  align-items:flex-start !important;justify-content:flex-start !important;text-align:left !important;
}
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-top-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-top-center .dm2-cat-btn{
  align-items:flex-start !important;justify-content:center !important;text-align:center !important;
}
/* In basso a sinistra / centro (default) */
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-bottom-left .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-bottom-left .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-start !important;text-align:left !important;
}
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-bottom-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-bottom-center .dm2-cat-btn{
  align-items:flex-end !important;justify-content:center !important;text-align:center !important;
}
/* Centro verticale + orizzontale */
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-center-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-center-center .dm2-cat-btn{
  align-items:center !important;justify-content:center !important;text-align:center !important;
}
/* Sinistra / Centro / Destra (orizzontale con default bottom) */
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-left .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-left .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-left .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-left .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-start !important;text-align:left !important;
}
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-center .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-center .dm2-cat-btn{
  align-items:flex-end !important;justify-content:center !important;text-align:center !important;
}
.dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-right .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-right .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-right .dm2-cat-btn,
.dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-right .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-end !important;text-align:right !important;
}

/* ===== Override FINALE con html body (specificità massima) ===== */
html body .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-top-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-top-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-top-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-top-left .dm2-cat-btn{
  align-items:flex-start !important;justify-content:flex-start !important;text-align:left !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-top-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-top-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-top-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-top-center .dm2-cat-btn{
  align-items:flex-start !important;justify-content:center !important;text-align:center !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-bottom-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-bottom-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-bottom-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-bottom-left .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-start !important;text-align:left !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-bottom-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-bottom-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-bottom-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-bottom-center .dm2-cat-btn{
  align-items:flex-end !important;justify-content:center !important;text-align:center !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-center-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-center-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-center-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-center-center .dm2-cat-btn{
  align-items:center !important;justify-content:center !important;text-align:center !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-left .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-start !important;text-align:left !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-center .dm2-cat-btn{
  align-items:flex-end !important;justify-content:center !important;text-align:center !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-fullpage .dm2-cat-pos-right .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-square .dm2-cat-pos-right .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-tris .dm2-cat-pos-right .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-trisquare .dm2-cat-pos-right .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-end !important;text-align:right !important;
}

/* ===== Posizione testo categorie anche per Mosaic e Grid ===== */
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-pos-top-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-grid .dm2-cat-pos-top-left .dm2-cat-btn{
  align-items:flex-start !important;justify-content:flex-start !important;text-align:left !important;
  top:0 !important;bottom:0 !important;left:0 !important;right:0 !important;inset:0 !important;transform:none !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-pos-top-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-grid .dm2-cat-pos-top-center .dm2-cat-btn{
  align-items:flex-start !important;justify-content:center !important;text-align:center !important;
  top:0 !important;bottom:0 !important;left:0 !important;right:0 !important;inset:0 !important;transform:none !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-pos-bottom-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-grid .dm2-cat-pos-bottom-left .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-start !important;text-align:left !important;
  top:0 !important;bottom:0 !important;left:0 !important;right:0 !important;inset:0 !important;transform:none !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-pos-bottom-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-grid .dm2-cat-pos-bottom-center .dm2-cat-btn{
  align-items:flex-end !important;justify-content:center !important;text-align:center !important;
  top:0 !important;bottom:0 !important;left:0 !important;right:0 !important;inset:0 !important;transform:none !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-pos-center-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-grid .dm2-cat-pos-center-center .dm2-cat-btn{
  align-items:center !important;justify-content:center !important;text-align:center !important;
  top:0 !important;bottom:0 !important;left:0 !important;right:0 !important;inset:0 !important;transform:none !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-pos-left .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-grid .dm2-cat-pos-left .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-start !important;text-align:left !important;
  top:0 !important;bottom:0 !important;left:0 !important;right:0 !important;inset:0 !important;transform:none !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-pos-center .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-grid .dm2-cat-pos-center .dm2-cat-btn{
  align-items:flex-end !important;justify-content:center !important;text-align:center !important;
  top:0 !important;bottom:0 !important;left:0 !important;right:0 !important;inset:0 !important;transform:none !important;
}
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-pos-right .dm2-cat-btn,
html body .dm2[data-dm2="menu"].dm2-menu-theme-grid .dm2-cat-pos-right .dm2-cat-btn{
  align-items:flex-end !important;justify-content:flex-end !important;text-align:right !important;
  top:0 !important;bottom:0 !important;left:0 !important;right:0 !important;inset:0 !important;transform:none !important;
}

/* ===== Normalizza dimensioni tile mosaic (rimuove il "primo più grande") ===== */
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-item:nth-child(4n+1),
html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-item:nth-child(4n+2){
  min-height:180px !important;
}
@media(max-width:640px){
  html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-item:nth-child(4n+1),
  html body .dm2[data-dm2="menu"].dm2-menu-theme-mosaic .dm2-cat-item:nth-child(4n+2){
    min-height:150px !important;
  }
}

/* ===== Header sottocategoria (quando una categoria madre ha sottocategorie) ===== */
.dm2[data-dm2="menu"] .dm2-subcat-header{
  grid-column:1 / -1 !important;
  font-size:var(--dm2-subcat-title-size,17px);
  font-family:var(--dm2-product-title-font-family,inherit);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--dm2-subcat-title,var(--dm2-text,#fff));
  padding:16px 18px 8px;
  margin:14px 0 4px;
  border-bottom:2px solid var(--dm2-subcat-border,var(--dm2-border,rgba(255,255,255,.3)));
  opacity:.95;
}
.dm2[data-dm2="menu"] .dm2-subcat-header .dm2-subcat-desc{
  display:block;
  font-size:calc(var(--dm2-subcat-title-size,17px) * 0.72);
  font-weight:400;
  text-transform:none;
  letter-spacing:.01em;
  color:var(--dm2-subcat-desc,var(--dm2-muted,#bfbfbf));
  margin-top:6px;
  line-height:1.35;
  opacity:.9;
}
.dm2[data-dm2="menu"] .dm2-subcat-header:first-child{margin-top:4px}
@media(max-width:640px){
  .dm2[data-dm2="menu"] .dm2-subcat-header{padding:12px 14px 6px}
}

/* ===== Override v2.5.4: variabili CSS tile (ombra, sfondo, righe titolo, font mobile) ===== */
.dm2-menu-theme-fullpage .dm2-cat-item,
.dm2-menu-theme-square .dm2-cat-item,
.dm2-menu-theme-tris .dm2-cat-item,
.dm2-menu-theme-trisquare .dm2-cat-item{
  box-shadow:var(--dm2-tile-shadow,0 10px 26px rgba(0,0,0,.22)) !important;
  background:var(--dm2-tile-bg,var(--dm2-card-bg,#111)) !important;
}
/* Applica righe max titolo tile */
.dm2-menu-theme-fullpage .dm2-cat-name,
.dm2-menu-theme-square .dm2-cat-name,
.dm2-menu-theme-tris .dm2-cat-name,
.dm2-menu-theme-trisquare .dm2-cat-name{
  -webkit-line-clamp:var(--dm2-tile-title-clamp,2);
  line-clamp:var(--dm2-tile-title-clamp,2);
}
/* Font size mobile custom */
@media(max-width:640px){
  .dm2-menu-theme-fullpage .dm2-cat-name,
  .dm2-menu-theme-square .dm2-cat-name,
  .dm2-menu-theme-tris .dm2-cat-name,
  .dm2-menu-theme-trisquare .dm2-cat-name{
    font-size:var(--dm2-category-font-size-mobile, var(--dm2-category-font-size,14px)) !important;
  }
}

/* ===== Coperto banner ===== */
/* FIX v1.0.1 (#1): position:relative + z-index:1 per stare SOPRA al pseudo-element
   `::before` dell'immagine sfondo pagina (.dm2[style*="--dm2-bg-img"]::before),
   che è position:fixed con z-index:0. Senza questi 2 statement il banner del coperto
   risultava parzialmente o completamente coperto dall'immagine di sfondo, soprattutto
   con opacity > 50%. Vedi anche cat-banner che ha lo stesso problema potenziale. */
.dm2[data-dm2="menu"] .dm2-coperto-banner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:18px 16px;
  padding:14px 18px;
  background:var(--dm2-coperto-bg,var(--dm2-card-bg,#111));
  color:var(--dm2-coperto-text,var(--dm2-text,#fff));
  border:1px solid var(--dm2-coperto-border,var(--dm2-accent,#d9901f));
  border-left:4px solid var(--dm2-coperto-border,var(--dm2-accent,#d9901f));
  border-radius:10px;
  font-weight:600;
  font-size:15px;
  box-shadow:0 4px 12px rgba(0,0,0,.1);
}
.dm2[data-dm2="menu"] .dm2-coperto-banner .dm2-coperto-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:14px;
}
.dm2[data-dm2="menu"] .dm2-coperto-banner .dm2-coperto-icon{
  font-size:18px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  margin-right:4px;
}
.dm2[data-dm2="menu"] .dm2-coperto-banner .dm2-coperto-price{
  font-weight:800;
  font-size:17px;
  padding:4px 12px;
  border-radius:999px;
  border:1px solid var(--dm2-coperto-border,var(--dm2-accent,#d9901f));
  /* FIX v1.0.1 (#3): fallback rgba per browser vecchi che non supportano color-mix
     (Safari < 16.2, FF < 113, Chrome < 111). Senza il fallback la pillola del prezzo
     restava trasparente del tutto su tablet datati (frequenti nei ristoranti).
     Browser moderni applicano il color-mix sotto, ignorando il fallback. */
  background:rgba(217,144,31,0.2);
  background:color-mix(in srgb,var(--dm2-coperto-border,#d9901f) 20%,transparent);
}
@media(max-width:640px){
  .dm2[data-dm2="menu"] .dm2-coperto-banner{margin:14px 12px;padding:12px 14px;font-size:14px}
  .dm2[data-dm2="menu"] .dm2-coperto-banner .dm2-coperto-label{font-size:12px}
  .dm2[data-dm2="menu"] .dm2-coperto-banner .dm2-coperto-price{font-size:15px}
}

/* ===== Banner categoria attiva (modalità hide-cats) ===== */
.dm2[data-dm2="menu"] .dm2-cat-banner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:14px 16px 10px;
  padding:14px 20px;
  background:var(--dm2-cat-banner-bg,var(--dm2-card-bg,#1a1a1a));
  color:var(--dm2-cat-banner-text,var(--dm2-text,#fff));
  border:1px solid var(--dm2-cat-banner-border,var(--dm2-accent,#d9901f));
  border-left:4px solid var(--dm2-cat-banner-border,var(--dm2-accent,#d9901f));
  border-radius:12px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}
.dm2[data-dm2="menu"] .dm2-cat-banner .dm2-cat-banner-title{
  font-size:var(--dm2-cat-banner-font-size,22px);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  line-height:1.15;
}
.dm2[data-dm2="menu"] .dm2-cat-banner .dm2-cat-banner-icon{
  font-size:calc(var(--dm2-cat-banner-font-size,22px) * 1.05);
  line-height:1;
  display:inline-flex;
  align-items:center;
}
@media(max-width:640px){
  .dm2[data-dm2="menu"] .dm2-cat-banner{margin:12px 12px 8px;padding:12px 14px}
  .dm2[data-dm2="menu"] .dm2-cat-banner .dm2-cat-banner-title{font-size:calc(var(--dm2-cat-banner-font-size,22px) * 0.85)}
}

/* ===== Banner categoria: stile "sottolineato" (niente box/sfondo/ombra) ===== */
.dm2[data-dm2="menu"] .dm2-cat-banner.dm2-cat-banner--underline{
  background:transparent !important;
  border:0 !important;
  border-left:0 !important;
  box-shadow:none !important;
  padding:10px 16px 14px !important;
  /* Stessa larghezza dei prodotti: 18px margin a sinistra/destra (come .dm2-products padding) */
  margin:16px 18px 12px !important;
  max-width:none !important;
  width:auto !important;
  display:block !important;
  text-align:center !important;
  position:relative !important;
  border-radius:0 !important;
}
.dm2[data-dm2="menu"] .dm2-cat-banner.dm2-cat-banner--underline .dm2-cat-banner-title,
.dm2[data-dm2="menu"] .dm2-cat-banner.dm2-cat-banner--underline .dm2-cat-banner-icon{
  display:inline-block !important;
  vertical-align:middle !important;
}
.dm2[data-dm2="menu"] .dm2-cat-banner.dm2-cat-banner--underline::after{
  content:'' !important;
  position:absolute !important;
  /* Linea FISSA al 50% del banner (stessa larghezza dei prodotti), sempre centrata */
  left:50% !important;
  bottom:0 !important;
  transform:translateX(-50%) !important;
  width:50% !important;
  right:auto !important;
  top:auto !important;
  height:2px !important;
  background:var(--dm2-cat-banner-border,var(--dm2-accent,#d9901f)) !important;
  border-radius:2px !important;
}
@media(max-width:640px){
  .dm2[data-dm2="menu"] .dm2-cat-banner.dm2-cat-banner--underline{margin:14px 18px 10px !important;padding:8px 12px 12px !important}
}
.dm2[data-dm2="menu"] .dm2-cat-banner.dm2-cat-banner--underline .dm2-cat-banner-title{
  color:var(--dm2-cat-banner-text,var(--dm2-text,#fff));
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.1em;
  text-align:center;
}

/* ===== Pulsanti azione in fondo ai prodotti (back + torna su) — simmetrici via GRID ===== */
/* FIX v1.0.3: position:relative + z-index:1 per stare SOPRA al pseudo-element ::before
   dell'immagine sfondo pagina (.dm2[style*="--dm2-bg-img"]::before) che è position:fixed
   con z-index:0. Senza questo, l'immagine di sfondo passava sopra ai pulsanti dando
   l'impressione che fossero trasparenti. Stesso identico bug fixato in v1.0.1 per il
   banner del coperto, ma allora non avevo applicato il fix anche qui. */
.dm2[data-dm2="menu"] .dm2-popup-actions{
  position:relative;
  z-index:1;
  display:none; /* JS imposta display:grid !important quando visibile */
  grid-template-columns:1fr 1fr !important;
  grid-auto-rows:1fr !important;
  gap:12px;
  margin:18px 16px 24px;
  align-items:stretch;
}
.dm2[data-dm2="menu"] .dm2-popup-actions[style*="display:flex"],
.dm2[data-dm2="menu"] .dm2-popup-actions[style*="display: flex"]{
  display:grid !important;
}
.dm2[data-dm2="menu"] .dm2-popup-actions .dm2-popup-back,
.dm2[data-dm2="menu"] .dm2-popup-actions .dm2-popup-top{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  flex:unset !important;
  margin:0 !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 16px !important;
  height:52px !important;
  min-height:52px !important;
  border-radius:999px !important;
  /* FIX v1.0.2: stile base condiviso (regola "tutti e due"). I selettori specifici
     dedicati subito sotto applicano i colori CUSTOM per back/top separati. */
  border:1px solid var(--dm2-primary-btn-border,var(--dm2-border,#ccc)) !important;
  background:var(--dm2-primary-btn-bg,var(--dm2-card-bg,#fff)) !important;
  color:var(--dm2-primary-btn-text,var(--dm2-text,#000)) !important;
  font-weight:700 !important;
  font-size:14px !important;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
  transition:filter .18s ease, transform .18s ease;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  box-sizing:border-box !important;
  line-height:1.2 !important;
}
/* FIX v1.0.2: personalizzazione SEPARATA di "Torna alle categorie" e "Torna su".
   Le CSS vars `--dm2-back-btn-*` e `--dm2-top-btn-*` vengono settate dal JS frontend
   SOLO se l'utente ha esplicitamente valorizzato i nuovi color picker nell'admin.
   Se non configurate → fallback alle primary_btn_* esistenti → comportamento attuale invariato.
   Specificity più alta della regola condivisa sopra grazie all'ordine + stesso selector. */
.dm2[data-dm2="menu"] .dm2-popup-actions .dm2-popup-back{
  background:    var(--dm2-back-btn-bg,     var(--dm2-primary-btn-bg,     var(--dm2-card-bg,#fff))) !important;
  color:         var(--dm2-back-btn-text,   var(--dm2-primary-btn-text,   var(--dm2-text,#000))) !important;
  border-color:  var(--dm2-back-btn-border, var(--dm2-primary-btn-border, var(--dm2-border,#ccc))) !important;
}
.dm2[data-dm2="menu"] .dm2-popup-actions .dm2-popup-top{
  background:    var(--dm2-top-btn-bg,     var(--dm2-primary-btn-bg,     var(--dm2-card-bg,#fff))) !important;
  color:         var(--dm2-top-btn-text,   var(--dm2-primary-btn-text,   var(--dm2-text,#000))) !important;
  border-color:  var(--dm2-top-btn-border, var(--dm2-primary-btn-border, var(--dm2-border,#ccc))) !important;
}
.dm2[data-dm2="menu"] .dm2-popup-actions .dm2-popup-back:hover,
.dm2[data-dm2="menu"] .dm2-popup-actions .dm2-popup-top:hover{
  filter:brightness(1.07);
  transform:translateY(-1px);
}
@media(max-width:640px){
  .dm2[data-dm2="menu"] .dm2-popup-actions{margin:14px 12px 20px;gap:8px}
  .dm2[data-dm2="menu"] .dm2-popup-actions .dm2-popup-back,
  .dm2[data-dm2="menu"] .dm2-popup-actions .dm2-popup-top{padding:12px 10px !important;font-size:13px !important;height:48px !important;min-height:48px !important}
}

/* ===== Sottocategorie: stili Box e Underline (il "simple" usa le regole base esistenti) ===== */
/* Icon */
.dm2[data-dm2="menu"] .dm2-subcat-header .dm2-subcat-icon{
  display:inline-flex;
  align-items:center;
  margin-right:6px;
  line-height:1;
  font-size:calc(var(--dm2-subcat-title-size,17px) * 0.9);
}
/* Stile SIMPLE (default): mantiene le regole originali, nessuna modifica */

/* Stile UNDERLINE: testo centrato + linea sotto (larghezza = stesso spazio dei prodotti) */
.dm2[data-dm2="menu"] .dm2-subcat-header.dm2-subcat-header--underline{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:14px 0 10px !important;
  margin:16px 0 10px !important;
  max-width:none !important;
  width:100% !important;
  display:block !important;
  text-align:center !important;
  position:relative;
  border-radius:0 !important;
  grid-column:1 / -1 !important;
}
.dm2[data-dm2="menu"] .dm2-subcat-header.dm2-subcat-header--underline::after{
  content:'';
  position:absolute;
  /* Linea FISSA al 50% del contenitore, centrata — indipendente dalla lunghezza del testo */
  left:50%;
  bottom:4px;
  transform:translateX(-50%);
  width:50%;
  right:auto;
  height:2px;
  background:var(--dm2-subcat-border,var(--dm2-border,#fff));
  border-radius:2px;
}
.dm2[data-dm2="menu"] .dm2-subcat-header.dm2-subcat-header--underline .dm2-subcat-title{
  display:inline-block !important;
  color:var(--dm2-subcat-title,var(--dm2-text,#fff));
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.1em;
  line-height:1.2;
}
.dm2[data-dm2="menu"] .dm2-subcat-header.dm2-subcat-header--underline .dm2-subcat-desc{
  display:block;
  margin-top:6px;
  opacity:.9;
}

/* Stile BOX: pulsante con sfondo + bordo (larghezza = stesso spazio dei prodotti) */
.dm2[data-dm2="menu"] .dm2-subcat-header.dm2-subcat-header--box{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:10px !important;
  margin:16px 0 12px !important;
  padding:12px 18px !important;
  width:100% !important;
  box-sizing:border-box !important;
  background:var(--dm2-subcat-bg,var(--dm2-card-bg,#1a1a1a)) !important;
  color:var(--dm2-subcat-title,var(--dm2-text,#fff)) !important;
  border:1px solid var(--dm2-subcat-border,var(--dm2-border,#fff)) !important;
  border-left:4px solid var(--dm2-subcat-border,var(--dm2-border,#fff)) !important;
  border-radius:10px !important;
  box-shadow:0 4px 12px rgba(0,0,0,.12) !important;
  grid-column:1 / -1 !important;
  flex-direction:column !important;
}
.dm2[data-dm2="menu"] .dm2-subcat-header.dm2-subcat-header--box .dm2-subcat-title{
  color:var(--dm2-subcat-title,var(--dm2-text,#fff));
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.05em;
  line-height:1.2;
  font-size:var(--dm2-subcat-title-size,17px);
}
.dm2[data-dm2="menu"] .dm2-subcat-header.dm2-subcat-header--box .dm2-subcat-desc{
  display:block;
  margin-top:6px;
  font-weight:400;
  text-transform:none;
  letter-spacing:.01em;
  color:var(--dm2-subcat-desc,var(--dm2-muted,#bfbfbf));
}
@media(max-width:640px){
  /* Mobile: sottocategorie allineate e larghe come i prodotti (niente margin orizzontale) */
  .dm2[data-dm2="menu"] .dm2-subcat-header.dm2-subcat-header--box{margin:12px 0 10px !important;padding:10px 14px !important;width:100% !important;box-sizing:border-box !important}
  .dm2[data-dm2="menu"] .dm2-subcat-header.dm2-subcat-header--underline{margin:12px 0 8px !important;padding:10px 12px 8px !important;width:100% !important;box-sizing:border-box !important}
}
