// ── Olivo · Baarerhof — Stammdaten ──────────────────────────────────────────
// Allergen-Kürzel (Schweizer Deklaration, vereinfacht)
const ALLERGENS = {
  G:  "Gluten",
  L:  "Laktose",
  E:  "Ei",
  N:  "Schalenfrüchte",
  F:  "Fisch",
  W:  "Weichtiere",
  K:  "Krebstiere",
  SE: "Sellerie",
  SF: "Senf",
  SU: "Sulfite",
};

// Kategorien in Reihenfolge der Speisekarte
const CATEGORIES = [
  { id: "mittag",    label: "Mittagsmenü",            kicker: "Pranzo · Mo–Fr",
    note: "Schnell & günstig für die Mittagspause — Montag bis Freitag, 11–14 Uhr, inklusive kleinem Saisonsalat." },
  { id: "antipasti", label: "Antipasti & Mezze",      kicker: "Zum Beginnen" },
  { id: "pasta",     label: "Pasta & Risotto",        kicker: "Primi" },
  { id: "pizza",     label: "Pizza",                  kicker: "Dal forno" },
  { id: "grill",     label: "Heisser Stein & Grill",  kicker: "Dalla griglia",
    note: "Vom 400° heissen Lavastein direkt an deinen Tisch — oder frisch vom Grill. Mediterran gewürzt." },
  { id: "secondi",   label: "Mediterrane Hauptgänge", kicker: "Secondi" },
  { id: "dolci",     label: "Dolci",                  kicker: "Süsses" },
  { id: "bevande",   label: "Getränke",               kicker: "Bevande" },
];

// Varianten-Vorlagen
const SIZE_PIZZA = {
  id: "groesse", label: "Grösse", required: true,
  choices: [
    { id: "n", label: "Klassisch · 30 cm", delta: 0 },
    { id: "f", label: "Familie · 40 cm", delta: 6 },
  ],
};
const SIZE_PASTA = {
  id: "portion", label: "Portion", required: true,
  choices: [
    { id: "n", label: "Normal", delta: 0 },
    { id: "g", label: "Grande (+CHF 4)", delta: 4 },
  ],
};
const EXTRA_PARM = {
  id: "extra", label: "Extra", required: false,
  choices: [
    { id: "0", label: "Ohne", delta: 0 },
    { id: "p", label: "Extra Grana Padano", delta: 2.5 },
    { id: "t", label: "Schwarzer Trüffel", delta: 7 },
  ],
};
const BEILAGE = {
  id: "beilage", label: "Beilage", required: true,
  choices: [
    { id: "p", label: "Pommes frites", delta: 0 },
    { id: "r", label: "Djuvec-Reis", delta: 0 },
    { id: "g", label: "Ofengemüse", delta: 0 },
    { id: "s", label: "Gemischter Salat", delta: 0 },
  ],
};

// tone = Farbton (HSL hue) für den getönten Platzhalter
const MENU = [
  // ── MITTAGSMENÜ (Mo–Fr) ──
  { id: "m1", cat: "mittag", name: "Pasta del Giorno", price: 19.5, tone: 40, tags: ["vegi"], allergens: ["G", "E"],
    desc: "Wechselnde Pasta des Tages mit kleinem Saisonsalat. Frag uns einfach, was heute im Topf ist." },
  { id: "m2", cat: "mittag", name: "Tagesteller", price: 23.5, tone: 28, tags: [], allergens: ["SE", "SU"],
    desc: "Fleisch oder Fisch des Tages mit Marktbeilage und kleinem Salat — in 12 Minuten am Tisch." },
  { id: "m3", cat: "mittag", name: "Risotto-Lunch", price: 21.0, tone: 50, tags: ["vegi"], allergens: ["L", "SE", "SU"],
    desc: "Kleines Carnaroli-Risotto nach Tagesart, dazu ein kleiner grüner Salat." },
  { id: "m4", cat: "mittag", name: "Gemüse-Schale", price: 19.5, tone: 86, tags: ["vegi"], allergens: ["L"],
    desc: "Ofengemüse der Saison in der feuerfesten Schale, Feta, Kräuter — leicht und sättigend." },

  // ── ANTIPASTI & MEZZE ──
  { id: "a1", cat: "antipasti", name: "Bruschetta al Pomodoro", price: 12.5, tone: 78, tags: ["vegan"], allergens: ["G"],
    desc: "Geröstetes Sauerteigbrot, San-Marzano-Tomaten, Knoblauch, Basilikum, natives Olivenöl." },
  { id: "a2", cat: "antipasti", name: "Burrata Pugliese", price: 18.5, tone: 64, tags: ["vegi"], allergens: ["L"],
    desc: "Cremige Burrata aus Apulien, Datterini-Tomaten, Taggiasca-Oliven, Basilikumöl." },
  { id: "a3", cat: "antipasti", name: "Saganaki", price: 14.5, tone: 46, tags: ["vegi"], allergens: ["G", "L"],
    desc: "Gebratener Graviera-Käse aus Kreta, Honig, Sesam, Zitrone. Heiss serviert." },
  { id: "a4", cat: "antipasti", name: "Dolmades", price: 13.0, tone: 92, tags: ["vegi"], allergens: ["L"],
    desc: "Gefüllte Weinblätter mit Reis & Kräutern, kühler Joghurt-Minze-Dip." },
  { id: "a5", cat: "antipasti", name: "Pršut & Ajvar", price: 19.0, tone: 18, tags: [], allergens: ["L", "SU"],
    desc: "Luftgetrockneter dalmatinischer Rohschinken, hausgemachtes Ajvar, Schafskäse, Oliven." },
  { id: "a6", cat: "antipasti", name: "Vitello Tonnato", price: 21.0, tone: 38, tags: [], allergens: ["E", "F"],
    desc: "Rosa gegarte Kalbsnuss, samtige Thunfisch-Kapern-Creme, Limone." },
  { id: "a7", cat: "antipasti", name: "Mezze della Casa", price: 24.0, tone: 30, tags: ["vegi"], allergens: ["G", "L", "SE"],
    desc: "Auswahl mediterraner Vorspeisen: Hummus, Tzatziki, Ajvar, Oliven, warmes Fladenbrot — zum Teilen." },

  // ── PASTA & RISOTTO ──
  { id: "p1", cat: "pasta", name: "Tagliatelle al Ragù", price: 26.5, tone: 28, tags: [], allergens: ["G", "E", "SE"], options: [SIZE_PASTA, EXTRA_PARM],
    desc: "Frische Eiernudeln, acht Stunden geschmortes Rindsragù, Soffritto, Grana." },
  { id: "p2", cat: "pasta", name: "Spaghetti alle Vongole", price: 28.0, tone: 44, tags: [], allergens: ["G", "W"], options: [SIZE_PASTA],
    desc: "Venusmuscheln, Weisswein, Knoblauch, Peperoncino, Petersilie." },
  { id: "p3", cat: "pasta", name: "Ravioli Ricotta e Spinaci", price: 25.0, tone: 88, tags: ["vegi"], allergens: ["G", "E", "L"], options: [SIZE_PASTA, EXTRA_PARM],
    desc: "Hausgemachte Ravioli, Ricotta & Spinat, Salbeibutter, Grana Padano." },
  { id: "p4", cat: "pasta", name: "Linguine al Pesto Genovese", price: 23.5, tone: 96, tags: ["vegi"], allergens: ["G", "N", "L"], options: [SIZE_PASTA],
    desc: "Basilikumpesto aus dem Mörser, Pinienkerne, Pecorino, grüne Bohnen." },
  { id: "p5", cat: "pasta", name: "Risotto ai Porcini", price: 27.0, tone: 36, tags: ["vegi"], allergens: ["L", "SE", "SU"], options: [EXTRA_PARM],
    desc: "Carnaroli-Reis, Steinpilze, Weisswein, Grana — glutenfrei, à la minute gerührt." },
  { id: "p6", cat: "pasta", name: "Gnocchi alla Sorrentina", price: 22.5, tone: 16, tags: ["vegi"], allergens: ["G", "L"], options: [SIZE_PASTA],
    desc: "Kartoffelgnocchi, San-Marzano-Sugo, Fior di Latte, Basilikum, im Ofen überbacken." },

  // ── PIZZA ──
  { id: "z1", cat: "pizza", name: "Margherita D.O.P.", price: 18.5, tone: 14, tags: ["vegi"], allergens: ["G", "L"], options: [SIZE_PIZZA],
    desc: "San-Marzano-Tomaten, Fior di Latte, Basilikum, Olivenöl. Die Königin." },
  { id: "z2", cat: "pizza", name: "Diavola", price: 22.0, tone: 10, tags: ["scharf"], allergens: ["G", "L"], options: [SIZE_PIZZA],
    desc: "Scharfe Salami, Tomate, Mozzarella, Peperoncino, Oregano." },
  { id: "z3", cat: "pizza", name: "Quattro Formaggi", price: 23.5, tone: 48, tags: ["vegi"], allergens: ["G", "L", "N"], options: [SIZE_PIZZA],
    desc: "Gorgonzola, Fontina, Grana, Mozzarella, Honigtropfen, Walnuss." },
  { id: "z4", cat: "pizza", name: "Prosciutto e Funghi", price: 23.0, tone: 26, tags: [], allergens: ["G", "L"], options: [SIZE_PIZZA],
    desc: "Cotto-Schinken, frische Champignons, Mozzarella, Tomate." },
  { id: "z5", cat: "pizza", name: "Tartufo", price: 28.0, tone: 32, tags: ["vegi"], allergens: ["G", "L"], options: [SIZE_PIZZA],
    desc: "Trüffelcreme, Steinpilze, Fior di Latte, Ruccola, Grana-Späne." },
  { id: "z6", cat: "pizza", name: "Ortolana", price: 21.0, tone: 84, tags: ["vegi"], allergens: ["G", "L"], options: [SIZE_PIZZA],
    desc: "Grilliertes Marktgemüse der Saison, Tomate, Mozzarella, Basilikum." },

  // ── HEISSER STEIN & GRILL ──
  { id: "g1", cat: "grill", name: "Heisser Stein «Manzo»", price: 49.0, tone: 22, tags: [], allergens: ["L", "SF", "SU"],
    desc: "Tranchen vom Schweizer Rindsfilet, am Tisch auf 400° Lavastein gegart. Drei Saucen, Pommes & Gemüse." },
  { id: "g2", cat: "grill", name: "Heisser Stein «Mediterraneo»", price: 52.0, tone: 16, tags: [], allergens: ["L", "K", "SF", "SU"],
    desc: "Rind, Maispoulet & Scampi gemischt auf dem heissen Stein. Mit Saucen und Beilagen — für Geniesser." },
  { id: "g3", cat: "grill", name: "Ćevapčići", price: 32.0, tone: 24, tags: ["scharf"], allergens: ["SU"], options: [BEILAGE],
    desc: "Gegrillte kroatische Hackröllchen, Ajvar, rohe Zwiebeln, Sauerrahm." },
  { id: "g4", cat: "grill", name: "Pljeskavica", price: 34.0, tone: 20, tags: [], allergens: ["L", "SU"], options: [BEILAGE],
    desc: "Saftiges Hacktätschli vom Grill, gefüllt mit Schafskäse, Ajvar und gerösteten Zwiebeln." },
  { id: "g5", cat: "grill", name: "Souvlaki vom Schwein", price: 33.0, tone: 34, tags: [], allergens: ["G", "L"], options: [BEILAGE],
    desc: "Marinierte Schweinsspiesse vom Grill, Tzatziki, warme Pita, Zitrone." },
  { id: "g6", cat: "grill", name: "Entrecôte «Café de Paris»", price: 46.0, tone: 18, tags: [], allergens: ["L", "SF", "SU"],
    desc: "Schweizer Rinds-Entrecôte, klassische Café-de-Paris-Kräuterbutter, knusprige Pommes frites." },

  // ── MEDITERRANE HAUPTGÄNGE ──
  { id: "s1", cat: "secondi", name: "Branzino al Forno", price: 44.0, tone: 50, tags: [], allergens: ["F", "SE"],
    desc: "Ganzer Wolfsbarsch aus dem Ofen, Mittelmeerkräuter, Zitrone, Ofengemüse." },
  { id: "s2", cat: "secondi", name: "Ossobuco con Gremolata", price: 46.0, tone: 24, tags: [], allergens: ["SE", "L", "SU"],
    desc: "Geschmorte Kalbshaxe, Gremolata, Safran-Risotto Milanese." },
  { id: "s3", cat: "secondi", name: "Saltimbocca alla Romana", price: 42.0, tone: 30, tags: [], allergens: ["L", "SE", "SU"],
    desc: "Kalbsschnitzel, Salbei, Parmaschinken, Marsala-Jus, Kartoffelpüree." },
  { id: "s4", cat: "secondi", name: "Moussaka", price: 34.0, tone: 26, tags: [], allergens: ["L", "E", "G", "SE"],
    desc: "Griechischer Klassiker: Aubergine, würziges Hackfleisch, goldene Béchamel — im Ofen überbacken." },
  { id: "s5", cat: "secondi", name: "Bouillabaisse", price: 39.0, tone: 36, tags: [], allergens: ["F", "W", "K", "G", "SE"],
    desc: "Provenzalische Fischsuppe mit Fisch & Meeresfrüchten, Rouille und geröstetem Brot." },
  { id: "s6", cat: "secondi", name: "Gemüse aus der Schale", price: 29.0, tone: 88, tags: ["vegi"], allergens: ["L"],
    desc: "Saisongemüse in der feuerfesten Schale geschmort, Kräuter, Feta, Olivenöl. Auch vegan möglich." },

  // ── DOLCI ──
  { id: "d1", cat: "dolci", name: "Tiramisù della Casa", price: 12.0, tone: 32, tags: ["vegi"], allergens: ["G", "E", "L"],
    desc: "Mascarpone, Espresso, Savoiardi, Kakao — nach Familienrezept." },
  { id: "d2", cat: "dolci", name: "Panna Cotta ai Frutti", price: 10.5, tone: 20, tags: ["vegi"], allergens: ["L"],
    desc: "Vanille-Panna-Cotta, lauwarmes Waldbeer-Ragout." },
  { id: "d3", cat: "dolci", name: "Baklava", price: 11.0, tone: 40, tags: ["vegi"], allergens: ["G", "N", "L"],
    desc: "Knuspriger Filoteig, Walnüsse & Pistazien, Honigsirup. Dazu ein Klecks Joghurt." },
  { id: "d4", cat: "dolci", name: "Palačinke", price: 11.5, tone: 28, tags: ["vegi"], allergens: ["G", "E", "L", "N"],
    desc: "Kroatische Crêpes mit Walnuss-Schokolade, gerollt und warm serviert." },
  { id: "d5", cat: "dolci", name: "Affogato al Caffè", price: 9.5, tone: 26, tags: ["vegi"], allergens: ["L"],
    desc: "Hausgemachtes Vanilleglace, ertränkt in heissem Espresso." },

  // ── BEVANDE ──
  { id: "b1", cat: "bevande", name: "Aperol Spritz", price: 14.0, tone: 22, tags: [], allergens: ["SU"],
    desc: "Aperol, Prosecco, Soda, Orange. Der Apéro-Klassiker." },
  { id: "b2", cat: "bevande", name: "Plavac Mali", price: 9.5, tone: 12, tags: [], allergens: ["SU"],
    desc: "Kräftiger dalmatinischer Rotwein, 1 dl. Auch flaschenweise erhältlich." },
  { id: "b3", cat: "bevande", name: "Limonata Amalfi", price: 6.5, tone: 56, tags: ["vegan"], allergens: [],
    desc: "Hausgemachte Zitronenlimonade mit Amalfi-Zitronen." },
  { id: "b4", cat: "bevande", name: "San Pellegrino / Panna", price: 5.5, tone: 52, tags: ["vegan"], allergens: [],
    desc: "Mineralwasser mit oder ohne Kohlensäure, 0,5 l." },
  { id: "b5", cat: "bevande", name: "Espresso Italiano", price: 4.5, tone: 26, tags: ["vegan"], allergens: [],
    desc: "Dunkle Röstung, sizilianische Mischung. Doppio +CHF 1.50." },
];

const RESTAURANT = {
  name: "Olivo",
  sub: "Baarerhof",
  full: "Restaurant Olivo · Baarerhof",
  tagline: "Cucina mediterranea · Zug",
  owners: "Rosi & Ivan Grgic",
  phone: "+41 41 556 88 86",
  phoneHref: "tel:+41415568886",
  email: "reservation@olivo-zug.ch",
  address: { street: "Baarerstrasse 65", city: "6300 Zug", country: "Schweiz" },
  hours: [
    { d: "Montag – Freitag", t: "11:00 – 14:00 · 17:00 – 23:00" },
    { d: "Samstag", t: "17:00 – 23:00" },
    { d: "Sonntag", t: "12:00 – 21:00" },
  ],
  takeawayHours: "Täglich · Mittag & Abend",
};

Object.assign(window, { ALLERGENS, CATEGORIES, MENU, RESTAURANT });
