{
  "version": 3,
  "sources": ["/cdn/shop/t/2/assets/toa-recipes-v1.js?toa_recipes=20260719195626"],
  "sourcesContent": ["(function () {\n  \"use strict\";\n\n  if (window.__toaRecipesV1Loaded) return;\n  window.__toaRecipesV1Loaded = true;\n\n  var HUB_PATH = \"/pages/rezeptideen\";\n  var DETAIL_PREFIX = \"/pages/rezept-\";\n  var ASSET_BASE = window.TOA_RECIPES_ASSET_BASE || \"/cdn/shop/t/2/assets/\";\n  var productCache = {};\n  var searchCache = {};\n  var RECIPE_COUNTRY_NAV = [\n    { label: \"Indische Rezepte\", country: \"Indien\" },\n    { label: \"Thai-Rezepte\", country: \"Thailand\" },\n    { label: \"Chinesische Rezepte\", country: \"China\" },\n    { label: \"Vietnamesische Rezepte\", country: \"Vietnam\" }\n  ];\n\n  function assetImage(name) {\n    return String(ASSET_BASE).replace(/\\/?$/, \"/\") + name;\n  }\n\n  var RECIPES = [\n    {\n      slug: \"butter-chicken\",\n      title: \"Butter Chicken\",\n      country: \"Indien\",\n      image: assetImage(\"toa-recipe-butter-chicken.jpg\"),\n      time: \"45 Min.\",\n      portions: \"3-4\",\n      difficulty: \"Einfach\",\n      heat: \"Mild\",\n      summary: \"Cremiges H\u00E4hnchencurry mit Tomate, Butter, Gew\u00FCrzen und Reis. Sanft, rund und perfekt mit Naan.\",\n      intro: \"Butter Chicken ist ideal, wenn es aromatisch und trotzdem nicht zu scharf sein soll. Die Sauce wird erst w\u00FCrzig anger\u00F6stet und dann mit Butter oder Ghee cremig abgerundet.\",\n      shopIngredients: [\n        { amount: \"1 Packung\", name: \"Butter Chicken W\u00FCrzbasis oder Paste\", handle: \"butter-chicken-mdh-100g-1\", handles: [\"butter-chicken-ahg-50g\", \"butter-chicken-paste-ashoka-285g\", \"butter-chicken-paste-ashoka-300g-1\", \"butter-chicken-paste-ashoka-300g\"], searchTerms: [\"Butter Chicken\"] },\n        { amount: \"250 g\", name: \"Basmati Reis\", handle: \"basmatireis-tilda-5kg\" },\n        { amount: \"1-2 EL\", name: \"Ghee\", handle: \"butter-ghee-khanum-1kg\" },\n        { amount: \"1 TL\", name: \"Garam Masala\", handle: \"garam-masala-schani-100g\" },\n        { amount: \"nach Wunsch\", name: \"Naan zum Servieren\", handle: \"garlic-naan-schani-500g\" }\n      ],\n      freshIngredients: [\n        \"500 g H\u00E4hnchenbrust oder H\u00E4hnchenschenkel ohne Knochen\",\n        \"1 gro\u00DFe Zwiebel, fein gew\u00FCrfelt\",\n        \"2 Knoblauchzehen und etwas Ingwer\",\n        \"250 ml passierte Tomaten\",\n        \"100 ml Sahne oder Kochcreme\",\n        \"Salz, Zucker und frischer Koriander nach Geschmack\"\n      ],\n      steps: [\n        \"H\u00E4hnchen in mundgerechte St\u00FCcke schneiden, leicht salzen und mit etwas Joghurt oder \u00D6l sowie einem Teil der Gew\u00FCrzbasis 15 Minuten marinieren.\",\n        \"Ghee in einer tiefen Pfanne erhitzen. Zwiebel langsam goldbraun anschwitzen, dann Knoblauch und Ingwer kurz mitr\u00F6sten.\",\n        \"H\u00E4hnchen zugeben und bei mittlerer Hitze rundum anbraten, bis die Oberfl\u00E4che Farbe hat.\",\n        \"Passierte Tomaten, restliche W\u00FCrzbasis und einen kleinen Schuss Wasser einr\u00FChren. 12-15 Minuten sanft k\u00F6cheln lassen.\",\n        \"Sahne einr\u00FChren, mit Garam Masala, Salz und einer Prise Zucker abschmecken. Die Sauce soll cremig und leicht s\u00FC\u00DFlich wirken.\",\n        \"Reis parallel garen, Naan erw\u00E4rmen und alles mit Koriander servieren.\"\n      ],\n      tips: [\n        \"F\u00FCr mehr Tiefe das H\u00E4hnchen vor dem Kochen kurz sehr hei\u00DF anr\u00F6sten.\",\n        \"Wenn Kinder mitessen, die Sch\u00E4rfe \u00FCber Chili erst am Tisch erg\u00E4nzen.\"\n      ]\n    },\n    {\n      slug: \"chicken-tikka-masala\",\n      title: \"Chicken Tikka Masala\",\n      country: \"Indien\",\n      image: assetImage(\"toa-recipe-chicken-tikka-masala.jpg\"),\n      time: \"55 Min.\",\n      portions: \"3-4\",\n      difficulty: \"Mittel\",\n      heat: \"Mittel\",\n      summary: \"Gegrillt wirkendes H\u00E4hnchen in kr\u00E4ftiger Masala-Sauce, serviert mit Reis oder Tandoori Naan.\",\n      intro: \"Tikka Masala schmeckt besonders gut, wenn das Fleisch erst mariniert und dann kr\u00E4ftig angebraten wird. Die Sauce bleibt cremig, aber w\u00FCrziger als Butter Chicken.\",\n      shopIngredients: [\n        { amount: \"1 Glas\", name: \"Tikka Masala Paste\", handle: \"tikka-masala-patak-283g-1\" },\n        { amount: \"1-2 TL\", name: \"Tandoori Masala\", handle: \"tandoori-masala-trs-100g-1\" },\n        { amount: \"250 g\", name: \"Basmati Reis\", handle: \"basmatireis-classic-india-gate-5kg\" },\n        { amount: \"1 TL\", name: \"Garam Masala\", handle: \"garam-masala-trs-100g\" },\n        { amount: \"nach Wunsch\", name: \"Tandoori Naan\", handle: \"tandoori-naan-schani-500g-1\" }\n      ],\n      freshIngredients: [\n        \"500 g H\u00E4hnchen\",\n        \"150 g Naturjoghurt\",\n        \"1 Zwiebel, fein gew\u00FCrfelt\",\n        \"2 Knoblauchzehen, gerieben\",\n        \"200 ml passierte Tomaten\",\n        \"100 ml Sahne, Kokosmilch oder Kochcreme\"\n      ],\n      steps: [\n        \"H\u00E4hnchen mit Joghurt, Tandoori Masala, Salz und etwas \u00D6l mischen. Mindestens 20 Minuten ziehen lassen.\",\n        \"Fleisch in einer sehr hei\u00DFen Pfanne portionsweise anbraten, damit R\u00F6staromen entstehen. Herausnehmen und kurz beiseitestellen.\",\n        \"Zwiebel, Knoblauch und Tikka Masala Paste in derselben Pfanne 2 Minuten r\u00F6sten.\",\n        \"Tomaten und etwas Wasser zugeben, aufkochen und die Sauce 10 Minuten s\u00E4mig k\u00F6cheln lassen.\",\n        \"H\u00E4hnchen zur\u00FCck in die Sauce geben und fertig garen. Sahne einr\u00FChren und mit Garam Masala abrunden.\",\n        \"Mit Reis oder Naan servieren. Ein Spritzer Zitrone macht die Sauce frischer.\"\n      ],\n      tips: [\n        \"Wenn die Sauce zu kr\u00E4ftig ist, mit Sahne oder Joghurt weicher machen.\",\n        \"F\u00FCr mehr Streetfood-Geschmack das H\u00E4hnchen kurz unter dem Ofengrill br\u00E4unen.\"\n      ]\n    },\n    {\n      slug: \"palak-paneer\",\n      title: \"Palak Paneer\",\n      country: \"Indien\",\n      image: assetImage(\"toa-recipe-palak-paneer.jpg\"),\n      time: \"40 Min.\",\n      portions: \"3\",\n      difficulty: \"Einfach\",\n      heat: \"Mild\",\n      summary: \"Cremiger Spinat-Curry mit Paneer, warmen Gew\u00FCrzen und Reis oder Naan.\",\n      intro: \"Palak Paneer lebt von einer samtigen Spinatsauce und mildem K\u00E4se. Wenn kein Paneer zur Hand ist, funktioniert das Rezept auch mit festem Tofu oder Halloumi.\",\n      shopIngredients: [\n        { amount: \"1 TL\", name: \"Garam Masala\", handle: \"garam-masala-schani-100g\" },\n        { amount: \"1 TL\", name: \"Kreuzk\u00FCmmel gemahlen\", handle: \"kreuzkummel-gemahlen-trs-100g\" },\n        { amount: \"250 g\", name: \"Basmati Reis\", handle: \"basmatireis-tilda-5kg\" },\n        { amount: \"1 Packung\", name: \"Dal Palak als schnelle Beilage\", handle: \"dal-palak-ashoka-280g\" },\n        { amount: \"nach Wunsch\", name: \"Kulcha Naan\", handle: \"kulcha-naan-schani-500g\" }\n      ],\n      freshIngredients: [\n        \"500 g frischer oder tiefgek\u00FChlter Spinat\",\n        \"250 g Paneer, fester Tofu oder Halloumi\",\n        \"1 Zwiebel, 2 Knoblauchzehen und etwas Ingwer\",\n        \"100 ml Sahne oder Kokosmilch\",\n        \"1 Tomate oder 2 EL passierte Tomaten\",\n        \"Salz und etwas Zitronensaft\"\n      ],\n      steps: [\n        \"Spinat kurz blanchieren oder auftauen, ausdr\u00FCcken und grob p\u00FCrieren.\",\n        \"Paneer w\u00FCrfeln und in wenig \u00D6l goldbraun anbraten. Herausnehmen.\",\n        \"Zwiebel, Knoblauch und Ingwer anschwitzen. Kreuzk\u00FCmmel und Tomate dazugeben und 3 Minuten einkochen.\",\n        \"Spinat einr\u00FChren und mit etwas Wasser 8 Minuten sanft k\u00F6cheln.\",\n        \"Sahne und Garam Masala zugeben. Paneer zur\u00FCck in die Pfanne legen und nur noch kurz erw\u00E4rmen.\",\n        \"Mit Salz und Zitronensaft abschmecken. Mit Reis, Naan oder Dal Palak servieren.\"\n      ],\n      tips: [\n        \"Nicht zu lange kochen, sonst verliert der Spinat seine frische Farbe.\",\n        \"F\u00FCr eine vegane Variante Paneer durch festen Tofu und Sahne durch Kokosmilch ersetzen.\"\n      ]\n    },\n    {\n      slug: \"biryani\",\n      title: \"Biryani\",\n      country: \"Indien\",\n      image: assetImage(\"toa-recipe-biryani.jpg\"),\n      time: \"60 Min.\",\n      portions: \"4\",\n      difficulty: \"Mittel\",\n      heat: \"W\u00FCrzig\",\n      summary: \"Aromatisches Reisgericht mit Basmatireis, warmen Gew\u00FCrzen, Gem\u00FCse und wahlweise H\u00E4hnchen oder Lamm.\",\n      intro: \"Biryani lebt von lockerem Basmatireis, ger\u00F6steten Gew\u00FCrzen und Schichten aus Gem\u00FCse, Kr\u00E4utern und wahlweise Fleisch. Wichtig ist, den Reis nur fast gar zu kochen und das Gericht danach sanft fertig zu d\u00E4mpfen.\",\n      shopIngredients: [\n        { amount: \"300 g\", name: \"Basmati Reis\", handle: \"basmatireis-tilda-5kg\", handles: [\"basmati-reis-india-gate-500g-9460\", \"basmatireis-india-gate-1kg\", \"basmati-reis-tilda-500g-2405\"], searchTerms: [\"Basmati Reis\"] },\n        { amount: \"1 Packung\", name: \"Biryani Masala\", handle: \"pilau-biryani-shan-50g\", handles: [\"mutton-biryani-shan-60g-7069\", \"bombay-biryani-shan-60g-10124\", \"malay-chicken-biryani-shan-60g-7067\"], searchTerms: [\"Biryani Masala\", \"Biryani\"] },\n        { amount: \"1 TL\", name: \"Garam Masala\", handle: \"garam-masala-trs-100g\", handles: [\"garam-masala-schani-100g\", \"garam-masala-patak-283g-2446\"], searchTerms: [\"Garam Masala\"] },\n        { amount: \"1-2 EL\", name: \"Ghee\", handle: \"ghee-ktc-500g\", handles: [\"bio-ghee-bio-asia-250g\", \"butter-ghee-trs-1kg\", \"butter-ghee-khanum-500g-1\"], searchTerms: [\"Ghee\"] },\n        { amount: \"nach Wunsch\", name: \"Naan zum Servieren\", handle: \"garlic-naan-schani-500g\", handles: [\"tandoori-naan-schani-500g-1\", \"kulcha-naan-schani-500g\"], searchTerms: [\"Naan\"] }\n      ],\n      freshIngredients: [\n        \"400-500 g H\u00E4hnchen, Lamm oder gemischtes Gem\u00FCse\",\n        \"2 Zwiebeln, in feinen Streifen\",\n        \"2 Tomaten oder 4 EL Joghurt\",\n        \"2 Knoblauchzehen und ein daumengro\u00DFes St\u00FCck Ingwer\",\n        \"Frischer Koriander oder Minze\",\n        \"Salz, \u00D6l und etwas Zitronensaft\"\n      ],\n      steps: [\n        \"Basmatireis gr\u00FCndlich waschen, 20 Minuten einweichen und in Salzwasser nur zu etwa 70 Prozent garen. Danach abgie\u00DFen.\",\n        \"Zwiebeln in \u00D6l oder Ghee goldbraun braten. Einen Teil als Topping beiseitestellen.\",\n        \"Knoblauch, Ingwer, Biryani Masala und Garam Masala kurz anr\u00F6sten. Gem\u00FCse, H\u00E4hnchen oder Lamm zugeben und kr\u00E4ftig anbraten.\",\n        \"Tomaten oder Joghurt einr\u00FChren und alles 8-12 Minuten schmoren, bis die Basis w\u00FCrzig und nicht mehr w\u00E4ssrig ist.\",\n        \"Reis auf der Masala-Basis verteilen, etwas Wasser zugeben, abdecken und 15 Minuten bei kleiner Hitze d\u00E4mpfen.\",\n        \"Vom Herd nehmen, 10 Minuten ruhen lassen, vorsichtig auflockern und mit R\u00F6stzwiebeln, Kr\u00E4utern und Naan servieren.\"\n      ],\n      tips: [\n        \"Der Reis soll vor dem D\u00E4mpfen noch Biss haben, sonst wird Biryani schnell matschig.\",\n        \"F\u00FCr eine vegetarische Variante passen Kartoffeln, Blumenkohl, Erbsen und Karotten sehr gut.\",\n        \"Wenn du es milder m\u00F6chtest, weniger Biryani Masala nehmen und am Tisch mit Chili nachsch\u00E4rfen.\"\n      ]\n    },\n    {\n      slug: \"chana-masala\",\n      title: \"Chana Masala\",\n      country: \"Indien\",\n      image: assetImage(\"toa-recipe-chana-masala.jpg\"),\n      time: \"35 Min.\",\n      portions: \"3-4\",\n      difficulty: \"Einfach\",\n      heat: \"W\u00FCrzig\",\n      summary: \"W\u00FCrziges Kichererbsencurry mit Tomaten, Zwiebeln und Garam Masala.\",\n      intro: \"Chana Masala ist ein kr\u00E4ftiges, alltagstaugliches Kichererbsencurry. Die Sauce bekommt Tiefe, wenn Zwiebeln, Knoblauch, Ingwer und Gew\u00FCrze erst gut anger\u00F6stet werden, bevor Tomaten und Kichererbsen dazukommen.\",\n      shopIngredients: [\n        { amount: \"1-2 Dosen\", name: \"Gekochte Kichererbsen\", handle: \"kichererbsen-gekocht-schani-400g-1479\", handles: [\"kichererbsen-gekocht-schani-800g-1481\", \"kichererbsen-gekocht-doyal-800g-1952\", \"kichererbsen-trs-500g-2548\"], searchTerms: [\"Kichererbsen\"] },\n        { amount: \"1 Packung\", name: \"Chana Masala oder Garam Masala\", handle: \"chana-dal-masala-mdh-100g-6199\", handles: [\"garam-masala-trs-100g\", \"garam-masala-schani-100g\"], searchTerms: [\"Chana Masala\", \"Garam Masala\"] },\n        { amount: \"1 TL\", name: \"Kreuzk\u00FCmmel\", handle: \"kreuzkuemmel-jeera-powder-ngr-100g\", handles: [\"kreuzkummel-gemahlen-schani-100g\", \"kreuzkummel-gemahlen-trs-100g\", \"kreuzkummel-ganz-trs-100g\"], searchTerms: [\"Kreuzk\u00FCmmel\", \"Jeera\"] },\n        { amount: \"1 TL\", name: \"Kurkuma\", handle: \"kurkuma-trs-100g-1\", handles: [\"kurkuma-ngr-100g-9511\"], searchTerms: [\"Kurkuma\"] },\n        { amount: \"nach Wunsch\", name: \"Naan zum Servieren\", handle: \"garlic-naan-schani-500g\", handles: [\"tandoori-naan-schani-500g-1\", \"kulcha-naan-schani-500g\"], searchTerms: [\"Naan\"] }\n      ],\n      freshIngredients: [\n        \"1 gro\u00DFe Zwiebel, fein gew\u00FCrfelt\",\n        \"2 Knoblauchzehen und etwas Ingwer\",\n        \"2 Tomaten oder 200 ml passierte Tomaten\",\n        \"1 kleine gr\u00FCne Chili, optional\",\n        \"Frischer Koriander\",\n        \"Zitronensaft, Salz und \u00D6l\"\n      ],\n      steps: [\n        \"Zwiebel in \u00D6l langsam goldbraun anschwitzen. Knoblauch und Ingwer kurz mitr\u00F6sten.\",\n        \"Kreuzk\u00FCmmel, Kurkuma und Chana Masala zugeben und 30 Sekunden r\u00F6sten, bis die Gew\u00FCrze duften.\",\n        \"Tomaten einr\u00FChren und 6-8 Minuten einkochen, bis die Sauce dunkler und s\u00E4miger wird.\",\n        \"Kichererbsen samt etwas Wasser zugeben und 15 Minuten sanft k\u00F6cheln lassen.\",\n        \"Einige Kichererbsen leicht zerdr\u00FCcken, damit die Sauce cremiger wird.\",\n        \"Mit Salz, Zitrone und Garam Masala abschmecken. Mit Koriander, Reis oder Naan servieren.\"\n      ],\n      tips: [\n        \"Getrocknete Kichererbsen schmecken sehr gut, m\u00FCssen aber \u00FCber Nacht eingeweicht und vorgekocht werden.\",\n        \"Wenn die Sauce zu kr\u00E4ftig ist, mit etwas Wasser oder einem L\u00F6ffel Joghurt abrunden.\",\n        \"Garam Masala am Ende einr\u00FChren, dann bleibt das Aroma frischer.\"\n      ]\n    },\n    {\n      slug: \"dal-tadka\",\n      title: \"Dal Tadka\",\n      country: \"Indien\",\n      image: assetImage(\"toa-recipe-dal-tadka.jpg\"),\n      time: \"40 Min.\",\n      portions: \"4\",\n      difficulty: \"Einfach\",\n      heat: \"Mild-w\u00FCrzig\",\n      summary: \"Indisches Linsengericht mit Kreuzk\u00FCmmel, Knoblauch, Ingwer und aromatischer Gew\u00FCrzbutter.\",\n      intro: \"Dal Tadka ist cremig, w\u00E4rmend und sehr flexibel. Die Linsen werden weich gekocht, der Geschmack kommt dann durch das hei\u00DFe Tadka aus Ghee, Kreuzk\u00FCmmel, Knoblauch, Ingwer und Chili obendrauf.\",\n      shopIngredients: [\n        { amount: \"250 g\", name: \"Dal oder rote Linsen\", handle: \"masoor-dal-red-lentils-trs-1kg-11145\", handles: [\"toor-dal-trs-1kg-2\", \"mung-dal-gelb-trs-1kg-2670\", \"masoor-dal-red-lentils-trs-500g-17163\"], searchTerms: [\"Dal TRS\", \"Masoor Dal\", \"Toor Dal\"] },\n        { amount: \"1-2 EL\", name: \"Ghee\", handle: \"ghee-ktc-500g\", handles: [\"bio-ghee-bio-asia-250g\", \"butter-ghee-trs-1kg\", \"butter-ghee-khanum-500g-1\"], searchTerms: [\"Ghee\"] },\n        { amount: \"1 TL\", name: \"Kreuzk\u00FCmmel\", handle: \"kreuzkuemmel-jeera-powder-ngr-100g\", handles: [\"kreuzkummel-ganz-trs-100g\", \"kreuzkummel-gemahlen-schani-100g\", \"kreuzkummel-gemahlen-trs-100g\"], searchTerms: [\"Kreuzk\u00FCmmel\", \"Jeera\"] },\n        { amount: \"1 TL\", name: \"Kurkuma\", handle: \"kurkuma-trs-100g-1\", handles: [\"kurkuma-ngr-100g-9511\"], searchTerms: [\"Kurkuma\"] },\n        { amount: \"1 TL\", name: \"Garam Masala\", handle: \"garam-masala-trs-100g\", handles: [\"garam-masala-schani-100g\", \"garam-masala-patak-283g-2446\"], searchTerms: [\"Garam Masala\"] }\n      ],\n      freshIngredients: [\n        \"1 Zwiebel, fein gew\u00FCrfelt\",\n        \"2 Knoblauchzehen, in Scheiben\",\n        \"1 St\u00FCck Ingwer, fein gerieben\",\n        \"1 Tomate, gew\u00FCrfelt\",\n        \"1-2 getrocknete oder frische Chilis, optional\",\n        \"Frischer Koriander, Salz und Zitronensaft\"\n      ],\n      steps: [\n        \"Linsen gr\u00FCndlich waschen und mit Kurkuma, Salz und reichlich Wasser weich kochen. Je nach Sorte dauert das 18-30 Minuten.\",\n        \"Zwiebel, Ingwer und Tomate unter das Dal r\u00FChren und weiterk\u00F6cheln, bis alles cremig wird.\",\n        \"F\u00FCr das Tadka Ghee in einer kleinen Pfanne erhitzen. Kreuzk\u00FCmmel, Knoblauch und Chili darin kurz braten, bis der Knoblauch goldgelb ist.\",\n        \"Das hei\u00DFe Tadka direkt \u00FCber das Dal geben und vorsichtig einr\u00FChren.\",\n        \"Mit Garam Masala, Zitrone und Salz abschmecken. Falls es zu dick ist, etwas hei\u00DFes Wasser erg\u00E4nzen.\",\n        \"Mit Basmatireis oder Naan servieren und mit Koriander bestreuen.\"\n      ],\n      tips: [\n        \"Das Tadka erst kurz vor dem Servieren machen. Genau dort sitzt der Duft.\",\n        \"F\u00FCr vegan einfach neutrales \u00D6l statt Ghee verwenden.\",\n        \"Dal darf cremig sein, aber nicht trocken. Lieber am Ende schluckweise Wasser erg\u00E4nzen.\"\n      ]\n    },\n    {\n      slug: \"pad-thai-garnelen\",\n      title: \"Pad Thai mit Garnelen\",\n      country: \"Thailand\",\n      image: assetImage(\"toa-recipe-pad-thai-garnelen.jpg\"),\n      time: \"35 Min.\",\n      portions: \"2-3\",\n      difficulty: \"Mittel\",\n      heat: \"Mild\",\n      summary: \"Gebratene Reisnudeln mit Tamarinde, Fischsauce, Ei, Sprossen, Limette und Garnelen.\",\n      intro: \"Pad Thai braucht Hitze und Vorbereitung: Sauce mischen, Zutaten bereitlegen und dann schnell im Wok arbeiten. So bleiben Nudeln locker und die Garnelen saftig.\",\n      shopIngredients: [\n        { amount: \"200 g\", name: \"Reisnudeln 3 mm\", handle: \"reisnudeln-3mm-geschlungen-farmer-400g-1\" },\n        { amount: \"2 EL\", name: \"Tamarindenpaste\", handle: \"tamarindenpaste-thai-dancer-435ml\" },\n        { amount: \"1-2 EL\", name: \"Fischsauce\", handle: \"fischsauce-nam-pla-oyster-700ml-5090\" },\n        { amount: \"1 Packung\", name: \"Pad Thai Sauce\", handle: \"pad-thai-woksauce-lobo-120g\" },\n        { amount: \"1 Dose\", name: \"Mungbohnensprossen\", handle: \"mungbohnensprossen-hs-340g-4633\" }\n      ],\n      freshIngredients: [\n        \"250 g Garnelen, H\u00E4hnchen oder Tofu\",\n        \"2 Eier\",\n        \"2 Fr\u00FChlingszwiebeln\",\n        \"1 Limette\",\n        \"2 EL gehackte Erdn\u00FCsse\",\n        \"Etwas Zucker und neutrales \u00D6l\"\n      ],\n      steps: [\n        \"Reisnudeln nach Packungsangabe einweichen, aber nicht zu weich kochen. Sie garen im Wok fertig.\",\n        \"Tamarindenpaste, Fischsauce, Zucker und bei Bedarf etwas Pad-Thai-Sauce verr\u00FChren.\",\n        \"Garnelen in hei\u00DFem \u00D6l kurz anbraten, herausnehmen und beiseitestellen.\",\n        \"Eier in den Wok geben, grob stocken lassen, dann Nudeln und Sauce zugeben.\",\n        \"Alles kr\u00E4ftig wenden, bis die Nudeln gl\u00E4nzen und die Sauce aufgenommen haben. Garnelen, Sprossen und Fr\u00FChlingszwiebeln unterheben.\",\n        \"Mit Limette und Erdn\u00FCssen servieren. Direkt essen, solange die Nudeln locker sind.\"\n      ],\n      tips: [\n        \"Wenn die Nudeln kleben, nicht mehr \u00D6l nehmen, sondern l\u00F6ffelweise Wasser zugeben.\",\n        \"F\u00FCr vegetarisch Fischsauce weglassen und mit Sojasauce plus Limette ausgleichen.\"\n      ]\n    },\n    {\n      slug: \"thai-green-curry-chicken\",\n      title: \"Thai Green Curry Chicken\",\n      country: \"Thailand\",\n      image: assetImage(\"toa-recipe-thai-green-curry-chicken.jpg\"),\n      time: \"35 Min.\",\n      portions: \"3-4\",\n      difficulty: \"Einfach\",\n      heat: \"Scharf\",\n      summary: \"Gr\u00FCnes Thai-Curry mit Kokosmilch, H\u00E4hnchen, Gem\u00FCse und Jasminreis.\",\n      intro: \"Gr\u00FCnes Curry ist schnell fertig, wenn Currypaste und Kokosmilch gut anger\u00F6stet werden. Die Sauce soll duften, leicht \u00F6lig gl\u00E4nzen und dann mit Gem\u00FCse frisch bleiben.\",\n      shopIngredients: [\n        { amount: \"1-2 EL\", name: \"Gr\u00FCne Currypaste\", handle: \"currypaste-gruen-cock-50g\" },\n        { amount: \"400 ml\", name: \"Kokosmilch\", handle: \"bio-kokosmilch-18-bioasia-400ml\" },\n        { amount: \"250 g\", name: \"Jasminreis\", handle: \"jasminreis-royal-tiger-5kg\" },\n        { amount: \"1 EL\", name: \"Fischsauce\", handle: \"fischsauce-nam-pla-oyster-700ml-5090\" },\n        { amount: \"nach Wunsch\", name: \"Bambussprossen\", handle: \"bambussprossen-zhu-xin-250g-15057\" }\n      ],\n      freshIngredients: [\n        \"450 g H\u00E4hnchen oder Tofu\",\n        \"1 Paprika oder gr\u00FCne Bohnen\",\n        \"1 kleine Aubergine oder Zucchini\",\n        \"Thai-Basilikum, falls verf\u00FCgbar\",\n        \"1 TL Zucker\",\n        \"Limette zum Abschmecken\"\n      ],\n      steps: [\n        \"Jasminreis waschen und garen.\",\n        \"Den festen Teil der Kokosmilch in einem Topf erhitzen. Currypaste darin 1-2 Minuten anr\u00F6sten, bis sie stark duftet.\",\n        \"H\u00E4hnchen zugeben und kurz in der Paste wenden.\",\n        \"Restliche Kokosmilch, Fischsauce, Zucker und Gem\u00FCse einr\u00FChren. 10-12 Minuten k\u00F6cheln lassen.\",\n        \"Curry abschmecken: salzig \u00FCber Fischsauce, frisch \u00FCber Limette, runder \u00FCber etwas Zucker.\",\n        \"Mit Reis servieren und Thai-Basilikum erst ganz am Ende zugeben.\"\n      ],\n      tips: [\n        \"Erst mit wenig Currypaste starten. Gr\u00FCne Paste kann deutlich sch\u00E4rfer wirken als rote.\",\n        \"F\u00FCr mehr Sauce eine zweite Dose Kokosmilch oder etwas Br\u00FChe erg\u00E4nzen.\"\n      ]\n    },\n    {\n      slug: \"tom-yum-goong\",\n      title: \"Tom Yum Goong\",\n      country: \"Thailand\",\n      image: assetImage(\"toa-recipe-tom-yum-goong.jpg\"),\n      time: \"30 Min.\",\n      portions: \"3\",\n      difficulty: \"Einfach\",\n      heat: \"Scharf\",\n      summary: \"Scharf-saure Thai-Suppe mit Garnelen, Kaffir-Limette, Chili und Fischsauce.\",\n      intro: \"Tom Yum lebt von Balance: sauer, salzig, scharf und aromatisch. Die Garnelen kommen erst am Ende in die Br\u00FChe, damit sie zart bleiben.\",\n      shopIngredients: [\n        { amount: \"3-4 Bl\u00E4tter\", name: \"Kaffir-Limettenbl\u00E4tter\", handle: \"kaffir-limettenblaetter-cock-10g\" },\n        { amount: \"1-2 EL\", name: \"Fischsauce\", handle: \"fischsauce-nam-pla-oyster-700ml-5090\" },\n        { amount: \"nach Geschmack\", name: \"Chili Crushed\", handle: \"chilli-crushed-extra-hot-trs-100g\" },\n        { amount: \"optional\", name: \"Tom Ka Paste als cremige Thai-Basis\", handle: \"tom-ka-paste-lobo-400g\" },\n        { amount: \"als Beilage\", name: \"Jasminreis\", handle: \"jasminreis-royal-tiger-5kg\" }\n      ],\n      freshIngredients: [\n        \"300 g Garnelen\",\n        \"700 ml Gem\u00FCse- oder H\u00FChnerbr\u00FChe\",\n        \"1 Stange Zitronengras, falls verf\u00FCgbar\",\n        \"150 g Champignons\",\n        \"1-2 Limetten\",\n        \"Frischer Koriander\"\n      ],\n      steps: [\n        \"Br\u00FChe mit Kaffir-Limettenbl\u00E4ttern, Zitronengras und Chili 8 Minuten leise k\u00F6cheln lassen.\",\n        \"Pilze zugeben und 4 Minuten garen.\",\n        \"Garnelen einlegen und nur so lange ziehen lassen, bis sie rosa und fest sind.\",\n        \"Mit Fischsauce salzen und mit Limettensaft deutlich sauer abschmecken.\",\n        \"Wer es cremiger m\u00F6chte, r\u00FChrt wenig Tom-Ka-Paste ein und kocht die Suppe danach nicht mehr stark.\",\n        \"Mit Koriander servieren. Reis passt dazu, wenn die Suppe eine kleine Mahlzeit sein soll.\"\n      ],\n      tips: [\n        \"Limettensaft erst nach dem Kochen zugeben, dann bleibt er frisch.\",\n        \"Die Suppe darf kr\u00E4ftig schmecken; sie wird beim Essen durch Garnelen und Pilze milder.\"\n      ]\n    },\n    {\n      slug: \"pad-kra-pao\",\n      title: \"Pad Kra Pao\",\n      country: \"Thailand\",\n      image: assetImage(\"toa-recipe-pad-kra-pao.jpg\"),\n      time: \"25 Min.\",\n      portions: \"2-3\",\n      difficulty: \"Einfach\",\n      heat: \"Scharf\",\n      summary: \"Scharfes Thai-Basilikum-Wokgericht mit Hackfleisch oder Tofu, Chili, Knoblauch, Jasminreis und Spiegelei.\",\n      intro: \"Pad Kra Pao ist schnelle Thai-Wok-Kueche. Alles wird vorbereitet, dann sehr heiss und kurz gebraten. Das Basilikum kommt erst ganz am Ende dazu, damit es frisch und kraeftig bleibt.\",\n      shopIngredients: [\n        { amount: \"250 g\", name: \"Jasminreis\", handle: \"jasminreis-gold-royal-tiger-5kg\", handles: [\"jasminreis-royal-thai-1kg\", \"jasminreis-aroy-d-5kg\", \"jasminreis-royal-tiger-5kg\"], searchTerms: [\"Jasminreis\"] },\n        { amount: \"1 Packung\", name: \"Thai-Basilikum-Wuerzpaste\", handle: \"wuerzpaste-thail-basilikum-lobo-btl-50g\", searchTerms: [\"Thai Basil\", \"Basilikum LOBO\"] },\n        { amount: \"1-2 EL\", name: \"Austernsauce\", handle: \"austernsauce-maekrua-600ml\", handles: [\"austernsauce-maekrua-300ml-4930\", \"premium-oyster-sauce-lee-kum-kee-510g\"], searchTerms: [\"Austernsauce\", \"Oyster Sauce\"] },\n        { amount: \"1 EL\", name: \"Fischsauce\", handle: \"fischsauce-squid-300ml\", handles: [\"fischsauce-nam-pla-oyster-700ml-5090\", \"fischsauce-megachef-200ml-16026\", \"fischsauce-squid-725ml-5228\"], searchTerms: [\"Fischsauce\"] },\n        { amount: \"1 EL\", name: \"Helle Sojasauce\", handle: \"sojasauce-hell-superior-prb-500ml\", handles: [\"sojasauce-hell-hayin-bridge-610ml\", \"sojasauce-hell-healthy-boy-700ml\"], searchTerms: [\"helle Sojasauce\"] }\n      ],\n      freshIngredients: [\n        \"400 g Hackfleisch, H\u00E4hnchenhack oder fester Tofu\",\n        \"3-4 Knoblauchzehen, fein gehackt\",\n        \"2-4 rote Chilis, nach Geschmack\",\n        \"1 Handvoll Thai-Basilikum oder Basilikum\",\n        \"2-3 Eier fuer Spiegelei\",\n        \"Etwas Zucker, Limette und neutrales Oel\"\n      ],\n      steps: [\n        \"Jasminreis waschen und garen. Alle Zutaten vorher schneiden, weil das Wokgericht sehr schnell geht.\",\n        \"Fischsauce, Austernsauce, helle Sojasauce, etwas Zucker und 2 EL Wasser zu einer Sauce verruehren.\",\n        \"Oel im Wok oder in einer Pfanne sehr heiss werden lassen. Knoblauch und Chili kurz anbraten, bis sie duften.\",\n        \"Hackfleisch, H\u00E4hnchen oder Tofu zugeben und kraeftig braten, bis Roestaromen entstehen.\",\n        \"Sauce und Thai-Basilikum-Wuerzpaste einruehren. Kurz einkochen lassen, bis alles glaenzt und wuerzig duftet.\",\n        \"Basilikum erst zum Schluss unterheben. Parallel Spiegeleier braten und alles auf Jasminreis servieren.\"\n      ],\n      tips: [\n        \"Pad Kra Pao lebt von Hitze. Lieber kurz und kraeftig braten als lange schmoren.\",\n        \"Wenn kein Thai-Basilikum da ist, hilft die Basilikum-Wuerzpaste als solide aromatische Basis.\",\n        \"Mit Spiegelei wird es klassisch und macht das Gericht deutlich runder.\"\n      ]\n    },\n    {\n      slug: \"tom-kha-gai\",\n      title: \"Tom Kha Gai\",\n      country: \"Thailand\",\n      image: assetImage(\"toa-recipe-tom-kha-gai.jpg\"),\n      time: \"30 Min.\",\n      portions: \"3-4\",\n      difficulty: \"Einfach\",\n      heat: \"Mild-wuerzig\",\n      summary: \"Cremige Kokos-Huehnersuppe mit Galgant, Zitronengras, Kaffir-Limette, Pilzen, Fischsauce und Limette.\",\n      intro: \"Tom Kha Gai ist mild, cremig und trotzdem frisch. Kokosmilch, Kaffir-Limettenblaetter, Zitronengras und Limette sorgen fuer die typische Balance aus rund, sauer und aromatisch.\",\n      shopIngredients: [\n        { amount: \"400 ml\", name: \"Kokosmilch\", handle: \"kokosmilch-mae-ploy-400ml-5146\", handles: [\"bio-kokosmilch-18-bioasia-400ml\", \"kokosmilch-aroy-d-500ml\", \"kokosmilch-ampawa-250ml-17985\"], searchTerms: [\"Kokosmilch\"] },\n        { amount: \"1-2 EL\", name: \"Tom-Kha-Paste oder Suppenmix\", handle: \"tom-ka-paste-lobo-400g\", handles: [\"tom-ka-suppenmix-lobo-50g-4894\", \"tom-kha-kai-cock-227g-7133\"], searchTerms: [\"Tom Kha\", \"Tom Ka Paste\"] },\n        { amount: \"3-4 Bl\u00E4tter\", name: \"Kaffir-Limettenblaetter\", handle: \"kaffir-limettenblaetter-cock-10g\", searchTerms: [\"Kaffir Limettenbl\u00E4tter\", \"Kaffir\"] },\n        { amount: \"1 EL\", name: \"Fischsauce\", handle: \"fischsauce-squid-300ml\", handles: [\"fischsauce-nam-pla-oyster-700ml-5090\", \"fischsauce-megachef-200ml-16026\"], searchTerms: [\"Fischsauce\"] },\n        { amount: \"optional\", name: \"Zitronengras gemahlen\", handle: \"zitronengras-gemahlen-asli-30g-4183\", searchTerms: [\"Zitronengras\"] }\n      ],\n      freshIngredients: [\n        \"350-450 g H\u00E4hnchenbrust oder H\u00E4hnchenschenkel ohne Knochen\",\n        \"200 g Champignons oder andere Pilze\",\n        \"1 Stueck Galgant oder Ingwer\",\n        \"1 Stange Zitronengras, falls verfuegbar\",\n        \"1-2 Limetten\",\n        \"Frischer Koriander und Chili nach Geschmack\"\n      ],\n      steps: [\n        \"Kokosmilch mit 300 ml Wasser oder Bruehe in einem Topf erhitzen.\",\n        \"Tom-Kha-Paste, Kaffir-Limettenblaetter, Zitronengras und Galgant oder Ingwer einruehren und 8 Minuten leise ziehen lassen.\",\n        \"H\u00E4hnchen in duenne Stuecke schneiden, in die Suppe geben und 6-8 Minuten sanft garen.\",\n        \"Pilze zugeben und weitere 4 Minuten kochen. Die Suppe soll nicht stark sprudelnd kochen.\",\n        \"Mit Fischsauce salzen und erst am Ende mit Limettensaft frisch abschmecken.\",\n        \"Mit Koriander und Chili servieren. Wer es s\u00E4ttigender m\u00F6chte, reicht Jasminreis dazu.\"\n      ],\n      tips: [\n        \"Limettensaft immer zum Schluss zugeben, sonst verliert er Frische.\",\n        \"Wenn die Suppe zu kraeftig ist, mit etwas Kokosmilch abrunden.\",\n        \"Galgant schmeckt typischer als Ingwer, aber Ingwer ist eine gute Alltagsalternative.\"\n      ]\n    },\n    {\n      slug: \"rotes-thai-curry-gaeng-phed\",\n      title: \"Rotes Thai-Curry - Gaeng Phed\",\n      country: \"Thailand\",\n      image: assetImage(\"toa-recipe-rotes-thai-curry-gaeng-phed.jpg\"),\n      time: \"35 Min.\",\n      portions: \"3-4\",\n      difficulty: \"Einfach\",\n      heat: \"Scharf\",\n      summary: \"Rotes Thai-Curry mit Kokosmilch, roter Currypaste, Gem\u00FCse, H\u00E4hnchen oder Tofu und Jasminreis.\",\n      intro: \"Gaeng Phed ist ein klassisches rotes Thai-Curry. Die Currypaste wird in Kokosmilch angeroestet, dann kommen Fleisch oder Tofu, Gem\u00FCse und am Ende frische Kraeuter dazu.\",\n      shopIngredients: [\n        { amount: \"1-2 EL\", name: \"Rote Currypaste\", handle: \"rote-currypaste-mae-ploy-400g\", handles: [\"currypaste-rot-lobo-400g\", \"currypaste-rot-cock-400g\", \"currypaste-rot-cock-50g-11033\"], searchTerms: [\"Currypaste rot\", \"Rote Currypaste\", \"Red Curry Paste\"] },\n        { amount: \"400 ml\", name: \"Kokosmilch\", handle: \"kokosmilch-mae-ploy-400ml-5146\", handles: [\"bio-kokosmilch-18-bioasia-400ml\", \"kokosmilch-aroy-d-500ml\", \"kokosmilch-ampawa-250ml-17985\"], searchTerms: [\"Kokosmilch\"] },\n        { amount: \"250 g\", name: \"Jasminreis\", handle: \"jasminreis-gold-royal-tiger-5kg\", handles: [\"jasminreis-royal-thai-1kg\", \"jasminreis-aroy-d-5kg\", \"jasminreis-royal-tiger-5kg\"], searchTerms: [\"Jasminreis\"] },\n        { amount: \"1 EL\", name: \"Fischsauce\", handle: \"fischsauce-squid-300ml\", handles: [\"fischsauce-nam-pla-oyster-700ml-5090\", \"fischsauce-megachef-200ml-16026\"], searchTerms: [\"Fischsauce\"] },\n        { amount: \"nach Wunsch\", name: \"Bambussprossen\", handle: \"bambussprossen-zhu-xin-250g-15057\", handles: [\"bambussprossen-lulu-140g-7960\", \"bambussprossen-spitzen-penta-567g-15187\"], searchTerms: [\"Bambussprossen\"] }\n      ],\n      freshIngredients: [\n        \"450 g H\u00E4hnchen, Rind, Garnelen oder Tofu\",\n        \"1 Paprika\",\n        \"1 Handvoll gr\u00FCne Bohnen, Zucchini oder Aubergine\",\n        \"Thai-Basilikum oder Basilikum\",\n        \"1 TL Zucker\",\n        \"Limette zum Abschmecken\"\n      ],\n      steps: [\n        \"Jasminreis waschen und garen.\",\n        \"Den festen Teil der Kokosmilch in einem Topf erhitzen. Rote Currypaste darin 1-2 Minuten anroesten, bis sie duftet und leicht glaenzt.\",\n        \"H\u00E4hnchen, Tofu oder andere Einlage zugeben und kurz in der Paste wenden.\",\n        \"Restliche Kokosmilch, Fischsauce, Zucker und Gem\u00FCse einruehren. 10-12 Minuten sanft kochen.\",\n        \"Bambussprossen nach Wunsch zugeben und kurz erhitzen.\",\n        \"Mit Limette, Fischsauce und etwas Zucker ausbalancieren. Basilikum erst ganz am Ende unterheben und mit Reis servieren.\"\n      ],\n      tips: [\n        \"Die Schaerfe haengt stark von der Currypaste ab. Lieber mit 1 EL starten und nachlegen.\",\n        \"Wenn die Sauce zu dick wird, mit etwas Wasser oder Bruehe strecken.\",\n        \"Rotes Curry funktioniert auch sehr gut vegetarisch mit Tofu und viel Gem\u00FCse.\"\n      ]\n    },\n    {\n      slug: \"sweet-sour-chicken\",\n      title: \"Sweet and Sour Chicken\",\n      country: \"China\",\n      image: assetImage(\"toa-recipe-sweet-sour-chicken.jpg\"),\n      time: \"40 Min.\",\n      portions: \"3\",\n      difficulty: \"Mittel\",\n      heat: \"Mild\",\n      summary: \"Knuspriges H\u00E4hnchen in s\u00FC\u00DF-saurer Sauce mit Paprika, Ananas und Reis.\",\n      intro: \"S\u00FC\u00DF-sauer wird gut, wenn die Sauce nicht zu schwer ist: Reisessig f\u00FCr S\u00E4ure, etwas Zucker f\u00FCr Glanz und die H\u00E4hnchenst\u00FCcke erst am Ende in die Sauce geben.\",\n      shopIngredients: [\n        { amount: \"2 EL\", name: \"Reisessig\", handle: \"rice-wine-vinegar-obento-250ml-9798\" },\n        { amount: \"1 EL\", name: \"Helle Sojasauce\", handle: \"sojasauce-hell-superior-prb-500ml\" },\n        { amount: \"1-2 TL\", name: \"Tapiokamehl zum Binden\", handle: \"tapiokamehl-farmer-400g\" },\n        { amount: \"250 g\", name: \"Jasminreis\", handle: \"jasminreis-royal-tiger-5kg\" },\n        { amount: \"optional\", name: \"Sweet & Sour Udon als schnelle Alternative\", handle: \"sweet-sour-udon-noodle-obento-240g-1\" }\n      ],\n      freshIngredients: [\n        \"450 g H\u00E4hnchen\",\n        \"1 Paprika\",\n        \"1 kleine Zwiebel\",\n        \"150 g Ananasst\u00FCcke\",\n        \"2 EL Ketchup oder Tomatenmark\",\n        \"Zucker, Salz und neutrales \u00D6l\"\n      ],\n      steps: [\n        \"Reis aufsetzen. H\u00E4hnchen in St\u00FCcke schneiden, salzen und d\u00FCnn mit Tapiokamehl best\u00E4uben.\",\n        \"H\u00E4hnchen in hei\u00DFem \u00D6l knusprig anbraten oder frittieren, danach auf K\u00FCchenpapier ablegen.\",\n        \"Paprika, Zwiebel und Ananas kurz im Wok anbraten. Das Gem\u00FCse soll noch Biss haben.\",\n        \"Reisessig, Sojasauce, Ketchup, Zucker und etwas Wasser verr\u00FChren und in den Wok geben.\",\n        \"Sauce kurz einkochen lassen und mit wenig anger\u00FChrtem Tapiokamehl binden.\",\n        \"H\u00E4hnchen erst ganz am Ende unterheben, damit es knusprig bleibt.\"\n      ],\n      tips: [\n        \"Die Sauce soll gl\u00E4nzen und leicht am L\u00F6ffel haften, nicht wie dicke Marmelade wirken.\",\n        \"F\u00FCr mehr Frische etwas Limette oder Fr\u00FChlingszwiebel dar\u00FCbergeben.\"\n      ]\n    },\n    {\n      slug: \"kung-pao-chicken\",\n      title: \"Kung Pao Chicken\",\n      country: \"China\",\n      image: assetImage(\"toa-recipe-kung-pao-chicken.jpg\"),\n      time: \"35 Min.\",\n      portions: \"3\",\n      difficulty: \"Mittel\",\n      heat: \"Scharf\",\n      summary: \"W\u00FCrziges H\u00E4hnchen mit Chili, Erdn\u00FCssen, dunkler Sauce und knackigem Gem\u00FCse.\",\n      intro: \"Kung Pao ist ein schnelles Wokgericht. Die Sauce wird vorbereitet, das H\u00E4hnchen kurz gebraten und alles erst am Ende zusammengezogen.\",\n      shopIngredients: [\n        { amount: \"1 EL\", name: \"Helle Sojasauce\", handle: \"sojasauce-hell-hayin-bridge-610ml\" },\n        { amount: \"1 TL\", name: \"Dunkle Sojasauce\", handle: \"sojasauce-dunkel-premium-lkk-500ml\" },\n        { amount: \"1 EL\", name: \"Schwarzer Chinkiang Essig\", handle: \"schwarzer-essig-chinkiang-gold-plum-550ml-3446\" },\n        { amount: \"nach Geschmack\", name: \"Crispy Chili Oil\", handle: \"crispy-chilli-lgm-210g\" },\n        { amount: \"optional\", name: \"Erdn\u00FCsse\", handle: \"erdnusse-mit-haut-gt-1kg\" }\n      ],\n      freshIngredients: [\n        \"450 g H\u00E4hnchen\",\n        \"1 Paprika oder Sellerie\",\n        \"2 Fr\u00FChlingszwiebeln\",\n        \"2 Knoblauchzehen\",\n        \"1 TL Zucker\",\n        \"1 TL St\u00E4rke oder Tapiokamehl\"\n      ],\n      steps: [\n        \"H\u00E4hnchen w\u00FCrfeln und mit heller Sojasauce, etwas St\u00E4rke und \u00D6l 10 Minuten marinieren.\",\n        \"Sauce aus heller und dunkler Sojasauce, Chinkiang Essig, Zucker und etwas Wasser mischen.\",\n        \"H\u00E4hnchen im hei\u00DFen Wok anbraten, bis es Farbe hat. Herausnehmen.\",\n        \"Knoblauch, Chili Oil und Gem\u00FCse kurz braten. Das Gem\u00FCse soll knackig bleiben.\",\n        \"H\u00E4hnchen zur\u00FCckgeben, Sauce angie\u00DFen und alles 1-2 Minuten glasig binden lassen.\",\n        \"Erdn\u00FCsse und Fr\u00FChlingszwiebeln ganz am Ende unterheben.\"\n      ],\n      tips: [\n        \"Chinkiang Essig gibt dem Gericht die typische dunkle, malzige S\u00E4ure.\",\n        \"Wenn es zu scharf wird, mit Reis und etwas zus\u00E4tzlichem Zucker ausgleichen.\"\n      ]\n    },\n    {\n      slug: \"beef-chow-mein\",\n      title: \"Beef Chow Mein\",\n      country: \"China\",\n      image: assetImage(\"toa-recipe-beef-chow-mein.jpg\"),\n      time: \"30 Min.\",\n      portions: \"2-3\",\n      difficulty: \"Einfach\",\n      heat: \"Mild\",\n      summary: \"Gebratene Nudeln mit Rindfleisch, Gem\u00FCse und herzhafter Wok-Sauce.\",\n      intro: \"Chow Mein ist perfekt f\u00FCr schnelle K\u00FCche: Nudeln vorgaren, Rindfleisch sehr hei\u00DF anbraten und die Sauce nur kurz einziehen lassen.\",\n      shopIngredients: [\n        { amount: \"250 g\", name: \"Mie Nudeln\", handle: \"mie-nudeln-ohne-ei-diamond-250g-1\" },\n        { amount: \"1 EL\", name: \"Helle Sojasauce\", handle: \"sojasauce-hell-superior-prb-500ml\" },\n        { amount: \"1 TL\", name: \"Dunkle Sojasauce\", handle: \"sojasauce-dunkel-premium-lkk-500ml\" },\n        { amount: \"1 TL\", name: \"Sesam\u00F6l ger\u00F6stet\", handle: \"sesam-ol-gerostet-diamond-250ml-1\" },\n        { amount: \"optional\", name: \"Shiitake\", handle: \"shiitake-getrocknet-diamond-100g\" }\n      ],\n      freshIngredients: [\n        \"300 g Rindfleisch in d\u00FCnnen Streifen\",\n        \"1 Karotte\",\n        \"1 kleine Zwiebel\",\n        \"1 Handvoll Kohl oder Pak Choi\",\n        \"1 Knoblauchzehe\",\n        \"Pfeffer und neutrales \u00D6l\"\n      ],\n      steps: [\n        \"Nudeln knapp garen, kalt abschrecken und gut abtropfen lassen.\",\n        \"Rindfleisch d\u00FCnn schneiden und mit heller Sojasauce, Pfeffer und wenig \u00D6l kurz marinieren.\",\n        \"Wok sehr hei\u00DF werden lassen. Fleisch portionsweise schnell anbraten und herausnehmen.\",\n        \"Gem\u00FCse und Knoblauch in derselben Pfanne braten, bis es Farbe bekommt.\",\n        \"Nudeln, Fleisch, helle und dunkle Sojasauce zugeben und alles kr\u00E4ftig wenden.\",\n        \"Zum Schluss Sesam\u00F6l einr\u00FChren und direkt servieren.\"\n      ],\n      tips: [\n        \"Die Nudeln vor dem Braten gut trocknen lassen, dann kleben sie weniger.\",\n        \"Rindfleisch gegen die Faser schneiden, dadurch bleibt es zarter.\"\n      ]\n    },\n    {\n      slug: \"mapo-tofu\",\n      title: \"Mapo Tofu\",\n      country: \"China\",\n      image: assetImage(\"toa-recipe-mapo-tofu.jpg\"),\n      time: \"35 Min.\",\n      portions: \"3-4\",\n      difficulty: \"Einfach\",\n      heat: \"Scharf\",\n      summary: \"Sichuan-Klassiker mit seidigem Tofu, Chili-Bohnenpaste, Sichuanpfeffer und wuerziger Sauce.\",\n      intro: \"Mapo Tofu soll intensiv, leicht prickelnd und saftig sein. Die Basis kommt aus Chili-Bohnenpaste oder fertiger Mapo-Sauce, der typische Sichuan-Charakter durch Pfeffer und Chili Oil.\",\n      shopIngredients: [\n        { amount: \"1 Packung\", name: \"Mapo-Tofu-Sauce oder Chili-Bohnenpaste\", handle: \"ma-po-tofu-baijia-100g-9636\", handles: [\"ma-po-tofu-haidilao-80g\", \"chili-bohnensauce-toban-djan-lkk-368g\", \"sichuan-toban-chilli-sauce-lkk-350g\"], searchTerms: [\"Mapo Tofu\", \"Ma Po Tofu\", \"Toban\"] },\n        { amount: \"1 TL\", name: \"Sichuanpfeffer\", handle: \"sichuan-pfeffer-cock-57g\", searchTerms: [\"Sichuan Pfeffer\"] },\n        { amount: \"nach Geschmack\", name: \"Crispy Chili Oil\", handle: \"crispy-chilli-lgm-210g\", handles: [\"chiu-chow-chilli-oil-lee-kum-kee-335g\"], searchTerms: [\"Chili Oil\", \"Crispy Chili\"] },\n        { amount: \"1 EL\", name: \"Helle Sojasauce\", handle: \"sojasauce-hell-superior-prb-500ml\", handles: [\"sojasauce-hell-hayin-bridge-610ml\", \"sojasauce-hell-healthy-boy-700ml\"], searchTerms: [\"helle Sojasauce\"] },\n        { amount: \"als Beilage\", name: \"Jasminreis\", handle: \"jasminreis-gold-royal-tiger-5kg\", handles: [\"jasminreis-royal-thai-1kg\", \"jasminreis-aroy-d-5kg\"], searchTerms: [\"Jasminreis\"] }\n      ],\n      freshIngredients: [\n        \"500 g weicher oder mittelfester Tofu\",\n        \"150-200 g Hackfleisch oder Pilze als vegetarische Variante\",\n        \"2 Knoblauchzehen und etwas Ingwer\",\n        \"2 Fruehlingszwiebeln\",\n        \"150 ml Wasser oder Bruehe\",\n        \"1 TL Staerke mit etwas Wasser angeruehrt\"\n      ],\n      steps: [\n        \"Tofu vorsichtig in Wuerfel schneiden und in heissem Wasser 2 Minuten ziehen lassen. Dadurch bleibt er stabiler und nimmt Sauce besser auf.\",\n        \"Hackfleisch oder fein gehackte Pilze in etwas Oel kraeftig anbraten.\",\n        \"Knoblauch, Ingwer, Mapo-Sauce oder Chili-Bohnenpaste und etwas Chili Oil zugeben und kurz roesten.\",\n        \"Wasser oder Bruehe angiessen, Tofu einlegen und 5-7 Minuten sanft koecheln lassen.\",\n        \"Mit Sojasauce abschmecken und mit angeruehrter Staerke leicht binden.\",\n        \"Sichuanpfeffer und Fruehlingszwiebeln daruebergeben. Mit Jasminreis servieren.\"\n      ],\n      tips: [\n        \"Tofu nicht wild umruehren, sondern die Pfanne vorsichtig schwenken.\",\n        \"Sichuanpfeffer erst am Ende daruebergeben, dann bleibt das prickelnde Aroma klarer.\",\n        \"Fuer vegetarisch Hackfleisch einfach durch Shiitake, Champignons oder mehr Tofu ersetzen.\"\n      ]\n    },\n    {\n      slug: \"jiaozi\",\n      title: \"Jiaozi\",\n      country: \"China\",\n      image: assetImage(\"toa-recipe-jiaozi.jpg\"),\n      time: \"60 Min.\",\n      portions: \"4\",\n      difficulty: \"Mittel\",\n      heat: \"Mild\",\n      summary: \"Chinesische Teigtaschen mit saftiger Fuellung, knusprig angebraten oder ged\u00E4mpft, dazu Soja-Essig-Dip.\",\n      intro: \"Jiaozi sind ideal zum gemeinsamen Kochen. Die Fuellung wird kraeftig gewuerzt, die Teigtaschen werden gefaltet und danach gebraten, ged\u00E4mpft oder gekocht.\",\n      shopIngredients: [\n        { amount: \"zum Dippen\", name: \"Dumpling-Sauce\", handle: \"sauce-fuer-dumplings-lee-kum-kee-207ml\", searchTerms: [\"Dumpling Sauce\", \"Jiaozi\"] },\n        { amount: \"2 EL\", name: \"Helle Sojasauce\", handle: \"sojasauce-hell-superior-prb-500ml\", handles: [\"sojasauce-hell-hayin-bridge-610ml\", \"sojasauce-hell-healthy-boy-700ml\"], searchTerms: [\"helle Sojasauce\"] },\n        { amount: \"1 EL\", name: \"Schwarzer Chinkiang-Essig\", handle: \"schwarzer-essig-chinkiang-heng-shun-250ml-16950\", handles: [\"reisessig-schwarz-chinkiang-heng-shun-550ml\", \"schwarzer-essig-chinkiang-gold-plum-550ml-3446\"], searchTerms: [\"Chinkiang\", \"Schwarzer Essig\"] },\n        { amount: \"1 TL\", name: \"Ger\u00F6stetes Sesam\u00F6l\", handle: \"sesam-ol-gerostet-diamond-500ml-1\", handles: [\"sesamoel-bibigo-160ml\", \"sesam-ol-lkk-207ml\"], searchTerms: [\"Sesam\u00F6l\"] },\n        { amount: \"optional\", name: \"Chili Oil\", handle: \"crispy-chilli-lgm-210g\", handles: [\"chiu-chow-chilli-oil-lee-kum-kee-335g\"], searchTerms: [\"Chili Oil\"] }\n      ],\n      freshIngredients: [\n        \"30-35 Jiaozi-Teigblaetter oder selbst gemachter Teig\",\n        \"350 g Schweinehack, H\u00E4hnchenhack oder Tofu\",\n        \"250 g Chinakohl oder Weisskohl, fein geschnitten\",\n        \"2 Fruehlingszwiebeln\",\n        \"1 Knoblauchzehe und etwas Ingwer\",\n        \"Salz, Pfeffer und neutrales Oel\"\n      ],\n      steps: [\n        \"Kohl fein schneiden, leicht salzen, 10 Minuten ziehen lassen und gut ausdruecken.\",\n        \"Hackfleisch oder Tofu mit Kohl, Fruehlingszwiebeln, Knoblauch, Ingwer, Sojasauce und Sesamoel mischen.\",\n        \"Je einen Loeffel Fuellung auf ein Teigblatt geben, den Rand befeuchten und die Teigtasche fest verschliessen.\",\n        \"Zum Braten etwas Oel in eine Pfanne geben, Jiaozi mit der flachen Seite anbraten, bis sie goldbraun sind.\",\n        \"Einen kleinen Schuss Wasser zugeben, Deckel aufsetzen und 6-8 Minuten d\u00E4mpfen, bis die Fuellung gar ist.\",\n        \"Mit Dumpling-Sauce oder einem Dip aus Sojasauce, Chinkiang-Essig, Sesam\u00F6l und Chili Oil servieren.\"\n      ],\n      tips: [\n        \"Die Fuellung muss saftig, aber nicht nass sein. Ausgedrueckter Kohl ist wichtig.\",\n        \"Falte nicht zu viel Fuellung hinein, sonst platzen die Jiaozi beim Garen.\",\n        \"Jiaozi lassen sich sehr gut einfrieren und direkt aus dem Tiefkuehler braten.\"\n      ]\n    },\n    {\n      slug: \"dan-dan-nudeln\",\n      title: \"Dan-Dan-Nudeln\",\n      country: \"China\",\n      image: assetImage(\"toa-recipe-dan-dan-nudeln.jpg\"),\n      time: \"35 Min.\",\n      portions: \"2-3\",\n      difficulty: \"Mittel\",\n      heat: \"Scharf\",\n      summary: \"Sichuan-Nudeln mit Sesampaste, Chili Oil, Hackfleisch oder Tofu, Sichuanpfeffer und knackigem Gruen.\",\n      intro: \"Dan-Dan-Nudeln sind wuerzig, nussig, scharf und leicht sauer. Die Sauce wird direkt in der Schale gemischt, dann kommen heisse Nudeln, Topping und etwas Kochwasser dazu.\",\n      shopIngredients: [\n        { amount: \"250 g\", name: \"Weizennudeln\", handle: \"somyun-weizennudeln-sempio-900g-11751\", handles: [\"weizennudeln-chewy-thin-sempio-500g-17692\", \"mie-nudeln-ohne-ei-diamond-250g-1\"], searchTerms: [\"Weizennudeln\", \"Nudeln\"] },\n        { amount: \"2 EL\", name: \"Sesampaste\", handle: \"sesampaste-doyal-300g-1\", handles: [\"sesampaste-sesali-300g-4014\", \"sesampaste-white-sanfeng-454g\", \"sesampaste-cypressa-300g-1\"], searchTerms: [\"Sesampaste\", \"Tahini\"] },\n        { amount: \"nach Geschmack\", name: \"Crispy Chili Oil\", handle: \"crispy-chilli-lgm-210g\", handles: [\"crispy-chilli-lgm-670g\", \"chiu-chow-chilli-oil-lee-kum-kee-335g\"], searchTerms: [\"Crispy Chili\", \"Chili Oil\"] },\n        { amount: \"1 TL\", name: \"Sichuanpfeffer\", handle: \"sichuan-pfeffer-cock-57g\", searchTerms: [\"Sichuan Pfeffer\"] },\n        { amount: \"1 EL\", name: \"Schwarzer Chinkiang-Essig\", handle: \"schwarzer-essig-chinkiang-heng-shun-250ml-16950\", handles: [\"reisessig-schwarz-chinkiang-heng-shun-550ml\", \"schwarzer-essig-chinkiang-gold-plum-550ml-3446\"], searchTerms: [\"Chinkiang\", \"Schwarzer Essig\"] }\n      ],\n      freshIngredients: [\n        \"150-200 g Hackfleisch oder Tofu\",\n        \"1 kleiner Pak Choi oder Spinat\",\n        \"2 Fruehlingszwiebeln\",\n        \"1 Knoblauchzehe\",\n        \"Gehackte Erdnuesse nach Wunsch\",\n        \"Etwas Zucker und neutrales Oel\"\n      ],\n      steps: [\n        \"Nudeln nach Packungsangabe garen. Etwas Nudelwasser auffangen.\",\n        \"Hackfleisch oder zerbroeselten Tofu in Oel kraeftig braten. Mit Sojasauce und etwas Chili Oil wuerzen.\",\n        \"In Schalen Sesampaste, Chili Oil, Chinkiang-Essig, Sojasauce, Zucker, Knoblauch und etwas Nudelwasser cremig verruehren.\",\n        \"Pak Choi oder Spinat kurz im Nudelwasser blanchieren.\",\n        \"Heisse Nudeln in die Sauce geben und gut wenden. Bei Bedarf mehr Nudelwasser zugeben, bis alles cremig wird.\",\n        \"Mit Topping, Sichuanpfeffer, Fruehlingszwiebeln und Erdn\u00FCssen servieren.\"\n      ],\n      tips: [\n        \"Die Sauce soll cremig sein. Nudelwasser ist hier wichtiger als zus\u00E4tzliches Oel.\",\n        \"Sichuanpfeffer sparsam starten und am Tisch nachlegen.\",\n        \"Fuer vegetarisch Tofu oder Pilze als Topping nehmen.\"\n      ]\n    },\n    {\n      slug: \"pho-bo\",\n      title: \"Ph\u1EDF B\u00F2\",\n      country: \"Vietnam\",\n      image: assetImage(\"toa-recipe-pho-bo.jpg\"),\n      time: \"70 Min.\",\n      portions: \"4\",\n      difficulty: \"Mittel\",\n      heat: \"Mild\",\n      summary: \"Vietnamesische Reisnudelsuppe mit Rindfleisch, aromatischer Br\u00FChe, Kr\u00E4utern und Limette.\",\n      intro: \"Ph\u1EDF B\u00F2 lebt von einer klaren, duftenden Br\u00FChe und breiten Reisnudeln. Mit Pho-Paste oder Pho-Gew\u00FCrzbasis bekommt die Suppe auch zuhause schnell Tiefe, frisch wird sie durch Kr\u00E4uter, Limette und Sprossen.\",\n      shopIngredients: [\n        { amount: \"1 Packung\", name: \"Pho-W\u00FCrzpaste oder Pho-Suppenbasis\", handle: \"pho-wuerzpaste-asian-home-gourmet-50g\", handles: [\"pho-soup-paste-flying-goose-195g-5631\", \"pho-bo-mama-65g\", \"pho-bo-mama-10-55g-5374\"], searchTerms: [\"Pho\", \"Pho Bo\", \"Pho Paste\"] },\n        { amount: \"300 g\", name: \"Banh-Pho-Reisnudeln\", handle: \"reisnudeln-banh-pho-tuoi-vifon-400g\", handles: [\"reisnudeln-5mm-geschnitten-farmer-400g\", \"rice-noodle-rose-brand-400g-6529\"], searchTerms: [\"Banh Pho\", \"Reisnudeln Pho\", \"Rice Noodle\"] },\n        { amount: \"2 EL\", name: \"Fischsauce\", handle: \"fischsauce-phu-quoc-650ml-6489\", handles: [\"fischsauce-squid-300ml\", \"fischsauce-megachef-200ml-16026\", \"fischsauce-ca-com-725ml\"], searchTerms: [\"Fischsauce\", \"Fish Sauce\", \"Nuoc Mam\"] },\n        { amount: \"zum Servieren\", name: \"Hoisin Sauce\", handle: \"hoisin-sauce-flying-goose-455ml-1\", handles: [\"hoisin-sauce-lkk-397g-1\", \"hoisin-sauce-deksomboon-250ml-17709\"], searchTerms: [\"Hoisin\"] },\n        { amount: \"nach Geschmack\", name: \"Sriracha oder Chilisauce\", handle: \"sriracha-chilisauce-cholimex-180ml-18731\", handles: [\"sriracha-hot-chilisauce-flying-goose-455ml\", \"sriracha-chilisauce-scharf-suess-flying-goose-200ml\"], searchTerms: [\"Sriracha\", \"Chilisauce\"] }\n      ],\n      freshIngredients: [\n        \"500 g Rindfleisch, z.B. Suppenfleisch plus d\u00FCnn geschnittenes Steak\",\n        \"1 gro\u00DFe Zwiebel und ein St\u00FCck Ingwer\",\n        \"1 Handvoll Mungbohnensprossen\",\n        \"Frische Kr\u00E4uter: Thai-Basilikum, Koriander oder Minze\",\n        \"2 Limetten\",\n        \"Fr\u00FChlingszwiebeln, Chili und Salz nach Geschmack\"\n      ],\n      steps: [\n        \"Zwiebel und Ingwer halbieren und in einer Pfanne ohne \u00D6l dunkel anr\u00F6sten. Das gibt der Br\u00FChe Tiefe.\",\n        \"Rindfleisch f\u00FCr die Br\u00FChe mit Wasser aufsetzen und langsam k\u00F6cheln lassen. Schaum absch\u00F6pfen.\",\n        \"Pho-Paste oder Pho-Suppenbasis, Fischsauce, ger\u00F6stete Zwiebel und Ingwer zugeben. 45-60 Minuten sanft ziehen lassen.\",\n        \"Reisnudeln separat nach Packungsangabe garen, kalt abschrecken und in Schalen verteilen.\",\n        \"D\u00FCnn geschnittenes Rindfleisch roh oder kurz blanchiert auf die Nudeln legen und mit kochend hei\u00DFer Br\u00FChe \u00FCbergie\u00DFen.\",\n        \"Mit Sprossen, Kr\u00E4utern, Limette, Hoisin und Sriracha servieren.\"\n      ],\n      tips: [\n        \"Die Br\u00FChe soll nicht wild kochen, sonst wird sie tr\u00FCb.\",\n        \"F\u00FCr eine schnellere Version Pho-Paste mit guter Br\u00FChe kombinieren und nur 20 Minuten ziehen lassen.\",\n        \"Hoisin und Sriracha am besten am Tisch anbieten, damit jeder selbst w\u00FCrzt.\"\n      ]\n    },\n    {\n      slug: \"bun-cha\",\n      title: \"B\u00FAn Ch\u1EA3\",\n      country: \"Vietnam\",\n      image: assetImage(\"toa-recipe-bun-cha.jpg\"),\n      time: \"45 Min.\",\n      portions: \"3-4\",\n      difficulty: \"Einfach\",\n      heat: \"Mild\",\n      summary: \"Gegrilltes Schweinefleisch mit Reisnudeln, Kr\u00E4utern und einer s\u00FC\u00DF-sauren Fischsauce.\",\n      intro: \"B\u00FAn Ch\u1EA3 ist frisch, rauchig und leicht. Reisnudeln, gegrilltes Fleisch, viele Kr\u00E4uter und ein s\u00FC\u00DF-saurer Nuoc-Cham-Dip werden getrennt serviert und am Tisch kombiniert.\",\n      shopIngredients: [\n        { amount: \"300 g\", name: \"Bun-Reisnudeln oder Vermicelli\", handle: \"reisnudeln-bun-tuoi-thamg-long-500g\", handles: [\"reisnudeln-bun-tuoi-400g\", \"vermicelli-wai-wai-200g-5010\", \"vermicelli-sa-giang-400g-15279\"], searchTerms: [\"Bun Tuoi\", \"Vermicelli\", \"Reisnudeln\"] },\n        { amount: \"3 EL\", name: \"Fischsauce\", handle: \"fischsauce-phu-quoc-650ml-6489\", handles: [\"fischsauce-squid-300ml\", \"fischsauce-pantai-300ml-4975\", \"fischsauce-megachef-200ml-16026\"], searchTerms: [\"Fischsauce\", \"Fish Sauce\", \"Nuoc Mam\"] },\n        { amount: \"1-2 EL\", name: \"Palmzucker\", handle: \"palmzucker-scheiben-cock-454g-7122\", handles: [\"palmzucker-scheiben-cock-200g-7013\", \"palmzucker-scheiben-royal-orient-454g\"], searchTerms: [\"Palmzucker\"] },\n        { amount: \"2 EL\", name: \"Reisessig\", handle: \"reisessig-thai-dancer-700ml-5542\", handles: [\"reisessig-thai-dancer-300ml-5528\", \"reisessig-lee-kum-kee-500ml\"], searchTerms: [\"Reisessig\"] },\n        { amount: \"optional\", name: \"S\u00FC\u00DF-saure Chilisauce\", handle: \"suess-sauer-chilisauce-cholimex-250ml\", handles: [\"sweet-chilli-sauce-mae-ploy-350g-5149\", \"sweet-chilli-sauce-amigo-700ml\"], searchTerms: [\"Sweet Chili\", \"Chilisauce s\u00FC\u00DF\"] }\n      ],\n      freshIngredients: [\n        \"500 g Schweinenacken, Bauch oder Hackfleisch als kleine Patties\",\n        \"1 Karotte und etwas Rettich, fein gestiftet\",\n        \"1 Knoblauchzehe\",\n        \"Frische Kr\u00E4uter: Minze, Koriander, Salat\",\n        \"1 Limette\",\n        \"Chili nach Wunsch\"\n      ],\n      steps: [\n        \"Fleisch mit etwas Fischsauce, Zucker, Knoblauch und Pfeffer marinieren. Mindestens 20 Minuten ziehen lassen.\",\n        \"Reisnudeln garen, kalt abschrecken und gut abtropfen lassen.\",\n        \"F\u00FCr den Dip Fischsauce, Wasser, Palmzucker, Reisessig, Limettensaft, Knoblauch und Chili verr\u00FChren. Karotte und Rettich einlegen.\",\n        \"Fleisch in einer Grillpfanne oder Pfanne kr\u00E4ftig braten, bis es au\u00DFen karamellisiert.\",\n        \"Nudeln, Kr\u00E4uter, Salat und Fleisch getrennt anrichten.\",\n        \"Alles mit dem Dip servieren und nach Geschmack direkt in der Schale mischen.\"\n      ],\n      tips: [\n        \"Das Fleisch darf ruhig kr\u00E4ftig Farbe bekommen, genau das macht B\u00FAn Ch\u1EA3 so gut.\",\n        \"Der Dip soll s\u00FC\u00DF, salzig, sauer und frisch zugleich schmecken.\",\n        \"F\u00FCr eine leichtere Variante H\u00E4hnchen oder Tofu statt Schweinefleisch nehmen.\"\n      ]\n    },\n    {\n      slug: \"banh-mi\",\n      title: \"B\u00E1nh M\u00EC\",\n      country: \"Vietnam\",\n      image: assetImage(\"toa-recipe-banh-mi.jpg\"),\n      time: \"30 Min.\",\n      portions: \"4\",\n      difficulty: \"Einfach\",\n      heat: \"Mild\",\n      summary: \"Knuspriges vietnamesisches Baguette mit Fleisch oder Tofu, eingelegtem Gem\u00FCse und Kr\u00E4utern.\",\n      intro: \"B\u00E1nh M\u00EC verbindet knuspriges Brot mit w\u00FCrziger F\u00FCllung, frischem Koriander, eingelegtem Gem\u00FCse und cremig-scharfer Sauce. Die wichtigsten Asia-Zutaten sind Saucen, Essig und W\u00FCrzbasis.\",\n      shopIngredients: [\n        { amount: \"2 EL\", name: \"Hoisin Sauce\", handle: \"hoisin-sauce-flying-goose-455ml-1\", handles: [\"hoisin-sauce-lkk-397g-1\", \"hoisin-sauce-amoy-460ml\"], searchTerms: [\"Hoisin\"] },\n        { amount: \"1-2 EL\", name: \"Sriracha oder Chilisauce\", handle: \"sriracha-chilisauce-cholimex-180ml-18731\", handles: [\"sriracha-hot-chilisauce-flying-goose-455ml\", \"sriracha-chilisauce-scharf-suess-flying-goose-200ml\"], searchTerms: [\"Sriracha\", \"Chilisauce\"] },\n        { amount: \"nach Wunsch\", name: \"Kewpie Mayonnaise\", handle: \"kewpie-mayonaise-310g\", handles: [\"kewpie-mayonnaise-500g\", \"kewpie-mayonnaise-355ml\", \"sriracha-mayonaise-kewpie-300g-18920\"], searchTerms: [\"Kewpie Mayonnaise\", \"Sriracha Mayonnaise\"] },\n        { amount: \"2 EL\", name: \"Reisessig\", handle: \"reisessig-thai-dancer-700ml-5542\", handles: [\"reisessig-lee-kum-kee-500ml\", \"reisessig-thai-dancer-300ml-5528\"], searchTerms: [\"Reisessig\"] },\n        { amount: \"1 EL\", name: \"Helle Sojasauce\", handle: \"sojasauce-cholimex-500ml-6456\", handles: [\"sojasauce-hell-superior-prb-500ml\", \"sojasauce-cholimex-200ml\"], searchTerms: [\"Sojasauce hell\", \"Cholimex Sojasauce\"] }\n      ],\n      freshIngredients: [\n        \"4 kleine Baguettes oder knusprige Br\u00F6tchen\",\n        \"400 g gegrilltes Fleisch, H\u00E4hnchen, Schweinebauch oder Tofu\",\n        \"1 Karotte und etwas Gurke\",\n        \"Etwas Rettich oder Radieschen\",\n        \"Frischer Koriander\",\n        \"Limette, Salz und etwas Zucker\"\n      ],\n      steps: [\n        \"Karotte und Rettich fein schneiden und mit Reisessig, Zucker, Salz und etwas Wasser 15 Minuten einlegen.\",\n        \"Fleisch oder Tofu mit Sojasauce, Hoisin und etwas Sriracha w\u00FCrzen und hei\u00DF anbraten.\",\n        \"Baguettes aufschneiden und kurz im Ofen oder Toaster knusprig machen.\",\n        \"Innen mit Kewpie oder Sriracha-Mayonnaise bestreichen.\",\n        \"Mit Fleisch oder Tofu, eingelegtem Gem\u00FCse, Gurke und Koriander f\u00FCllen.\",\n        \"Mit Limette, Hoisin und Sriracha abschmecken und sofort servieren.\"\n      ],\n      tips: [\n        \"Das Brot muss knusprig sein, sonst wirkt B\u00E1nh M\u00EC schnell schwer.\",\n        \"Eingelegtes Gem\u00FCse bringt den typischen frischen Kontrast.\",\n        \"F\u00FCr vegetarisch Tofu scharf anbraten und etwas mehr Hoisin verwenden.\"\n      ]\n    },\n    {\n      slug: \"goi-cuon-sommerrollen\",\n      title: \"G\u1ECFi Cu\u1ED1n - Sommerrollen\",\n      country: \"Vietnam\",\n      image: assetImage(\"toa-recipe-goi-cuon-sommerrollen.jpg\"),\n      time: \"35 Min.\",\n      portions: \"4\",\n      difficulty: \"Einfach\",\n      heat: \"Mild\",\n      summary: \"Frische Reispapierrollen mit Reisnudeln, Kr\u00E4utern, Gem\u00FCse und Garnelen oder Tofu.\",\n      intro: \"G\u1ECFi Cu\u1ED1n sind frische Sommerrollen: weich eingeweichtes Reispapier, knackiges Gem\u00FCse, Reisnudeln, Kr\u00E4uter und eine Sauce zum Dippen. Sie sind leicht, frisch und ideal zum Vorbereiten.\",\n      shopIngredients: [\n        { amount: \"1 Packung\", name: \"Reispapier\", handle: \"reispapier-rund-22cm-bamboo-tree-400g\", handles: [\"reispapier-22cm-ricefield-300g-1\", \"reispapier-22cm-exotic-100g-15609\", \"reispapier-viereckig-22cm-bamboo-tree-400g-6528\"], searchTerms: [\"Reispapier\", \"Rice Paper\"] },\n        { amount: \"150 g\", name: \"Reisnudeln oder Vermicelli\", handle: \"reisnudeln-bun-tuoi-400g\", handles: [\"reisnudeln-bun-tuoi-thamg-long-500g\", \"vermicelli-wai-wai-200g-5010\", \"vermicelli-sa-giang-400g-15279\"], searchTerms: [\"Vermicelli\", \"Reisnudeln\"] },\n        { amount: \"zum Dippen\", name: \"Spring-Roll-Dip\", handle: \"spring-roll-dip-cholimex-250ml-11572\", handles: [\"sweet-chilli-sauce-mae-ploy-350g-5149\", \"suess-sauer-chilisauce-cholimex-250ml\"], searchTerms: [\"Spring Roll Dip\", \"Sweet Chili\"] },\n        { amount: \"zum Dippen\", name: \"Hoisin Sauce\", handle: \"hoisin-sauce-flying-goose-455ml-1\", handles: [\"hoisin-sauce-lkk-397g-1\", \"hoisin-sauce-deksomboon-250ml-17709\"], searchTerms: [\"Hoisin\"] },\n        { amount: \"optional\", name: \"Erdnusssauce oder Erdn\u00FCsse\", handle: \"peanut-flavoured-sauce-lkk-226ml\", handles: [\"erdnuesse-misako-500g\", \"erdnuesse-misako-1kg\"], searchTerms: [\"Peanut Sauce\", \"Erdn\u00FCsse\"] }\n      ],\n      freshIngredients: [\n        \"Garnelen, H\u00E4hnchenstreifen oder gebratener Tofu\",\n        \"Salatbl\u00E4tter\",\n        \"Gurke, Karotte und Paprika in feinen Streifen\",\n        \"Frische Minze, Thai-Basilikum oder Koriander\",\n        \"Limette\",\n        \"Eine flache Schale mit lauwarmem Wasser\"\n      ],\n      steps: [\n        \"Reisnudeln garen, kalt abschrecken und abtropfen lassen.\",\n        \"Gem\u00FCse und Kr\u00E4uter vorbereiten. Garnelen, H\u00E4hnchen oder Tofu bereitstellen.\",\n        \"Ein Blatt Reispapier kurz durch lauwarmes Wasser ziehen und auf ein feuchtes Brett legen.\",\n        \"Salat, Nudeln, Gem\u00FCse, Kr\u00E4uter und F\u00FCllung mittig platzieren.\",\n        \"Seitlich einschlagen und fest, aber vorsichtig aufrollen.\",\n        \"Mit Spring-Roll-Dip, Hoisin oder Erdnusssauce servieren.\"\n      ],\n      tips: [\n        \"Reispapier nicht zu lange einweichen; es wird beim Liegen noch weicher.\",\n        \"Rollen mit Salat als erster Schicht rei\u00DFen weniger schnell.\",\n        \"F\u00FCr Meal Prep die Rollen mit Abstand lagern, damit sie nicht zusammenkleben.\"\n      ]\n    },\n    {\n      slug: \"bun-bo-hue\",\n      title: \"B\u00FAn B\u00F2 Hu\u1EBF\",\n      country: \"Vietnam\",\n      image: assetImage(\"toa-recipe-bun-bo-hue.jpg\"),\n      time: \"80 Min.\",\n      portions: \"4\",\n      difficulty: \"Mittel\",\n      heat: \"Scharf\",\n      summary: \"Kr\u00E4ftige, leicht scharfe Nudelsuppe mit Rindfleisch, Zitronengras und Chili.\",\n      intro: \"B\u00FAn B\u00F2 Hu\u1EBF ist w\u00FCrziger und kr\u00E4ftiger als klassische Pho. Dickere Reisnudeln, Zitronengras, Chili und Fischsauce geben der Suppe ihren typischen Charakter.\",\n      shopIngredients: [\n        { amount: \"300 g\", name: \"Bun-Bo-Hue-Reisnudeln\", handle: \"reis-nudeln-bun-bo-hue-rose-brand-300g-15123\", handles: [\"reisnudeln-bun-bo-hue-bamboo-tree-400g-18236\", \"reisnudeln-bun-tuoi-thamg-long-500g\"], searchTerms: [\"Bun Bo Hue\", \"Reisnudeln\"] },\n        { amount: \"2 EL\", name: \"Fischsauce\", handle: \"fischsauce-phu-quoc-650ml-6489\", handles: [\"fischsauce-squid-300ml\", \"fischsauce-ca-com-725ml\", \"fischsauce-megachef-200ml-16026\"], searchTerms: [\"Fischsauce\", \"Fish Sauce\"] },\n        { amount: \"1 TL\", name: \"Zitronengras gemahlen\", handle: \"zitronengras-gemahlen-asli-30g-4183\", searchTerms: [\"Zitronengras\", \"Lemongrass\"] },\n        { amount: \"nach Geschmack\", name: \"Chili Oil oder Sriracha\", handle: \"crispy-chilli-lgm-210g\", handles: [\"sriracha-chilisauce-cholimex-180ml-18731\", \"sriracha-hot-chilisauce-flying-goose-455ml\"], searchTerms: [\"Chili Oil\", \"Sriracha\", \"Chili\"] },\n        { amount: \"optional\", name: \"Mungbohnensprossen\", handle: \"mungbohnensprossen-hs-340g\", handles: [\"mungbohnenkeime-diamond-330g\"], searchTerms: [\"Mungbohnensprossen\", \"Bean Sprouts\"] }\n      ],\n      freshIngredients: [\n        \"600 g Rindfleisch oder Rinderbeinscheiben\",\n        \"1 Zwiebel\",\n        \"2 Stangen frisches Zitronengras, falls verf\u00FCgbar\",\n        \"1 Limette\",\n        \"Frische Kr\u00E4uter und Fr\u00FChlingszwiebeln\",\n        \"Chili und Salz nach Geschmack\"\n      ],\n      steps: [\n        \"Rindfleisch mit Wasser aufsetzen und langsam k\u00F6cheln lassen. Schaum regelm\u00E4\u00DFig absch\u00F6pfen.\",\n        \"Zwiebel anr\u00F6sten und mit Zitronengras, Fischsauce und etwas Chili zur Br\u00FChe geben.\",\n        \"Die Br\u00FChe 60 Minuten sanft ziehen lassen, dann abschmecken. Sie soll kr\u00E4ftig, leicht scharf und zitronig sein.\",\n        \"Bun-Bo-Hue-Nudeln separat garen und in Schalen verteilen.\",\n        \"Rindfleisch in Scheiben schneiden, auf die Nudeln legen und mit hei\u00DFer Br\u00FChe \u00FCbergie\u00DFen.\",\n        \"Mit Sprossen, Kr\u00E4utern, Limette und zus\u00E4tzlichem Chili Oil servieren.\"\n      ],\n      tips: [\n        \"B\u00FAn B\u00F2 Hu\u1EBF vertr\u00E4gt mehr W\u00FCrze als Pho, aber die Br\u00FChe soll trotzdem klar bleiben.\",\n        \"Wenn frisches Zitronengras fehlt, hilft gemahlenes Zitronengras als Basis.\",\n        \"Die Sch\u00E4rfe am Tisch mit Chili Oil steuern.\"\n      ]\n    },\n    {\n      slug: \"com-tam\",\n      title: \"C\u01A1m T\u1EA5m\",\n      country: \"Vietnam\",\n      image: assetImage(\"toa-recipe-com-tam.jpg\"),\n      time: \"45 Min.\",\n      portions: \"3-4\",\n      difficulty: \"Einfach\",\n      heat: \"Mild\",\n      summary: \"Vietnamesischer Bruchreis mit gegrilltem Schweinefleisch, Spiegelei, Gem\u00FCse und Fischsauce.\",\n      intro: \"C\u01A1m T\u1EA5m ist vietnamesischer Bruchreis mit herzhaft gegrilltem Fleisch, Ei, frischem Gem\u00FCse und Nuoc-Cham-Sauce. Wenn kein echter Bruchreis da ist, funktioniert Jasminbruchreis sehr gut.\",\n      shopIngredients: [\n        { amount: \"300 g\", name: \"Jasmin-Bruchreis oder Jasminreis\", handle: \"jasminreis-bruch-royal-thai-1kg-5661\", handles: [\"jasminreis-gold-royal-tiger-1kg\", \"jasminreis-royal-thai-1kg\", \"jasminreis-gold-royal-tiger-5kg\"], searchTerms: [\"Bruchreis\", \"Jasminreis\", \"Broken Rice\"] },\n        { amount: \"3 EL\", name: \"Fischsauce\", handle: \"fischsauce-phu-quoc-650ml-6489\", handles: [\"fischsauce-squid-300ml\", \"fischsauce-pantai-300ml-4975\", \"fischsauce-megachef-200ml-16026\"], searchTerms: [\"Fischsauce\", \"Nuoc Mam\"] },\n        { amount: \"2 EL\", name: \"Reisessig\", handle: \"reisessig-thai-dancer-700ml-5542\", handles: [\"reisessig-thai-dancer-300ml-5528\", \"reisessig-lee-kum-kee-500ml\"], searchTerms: [\"Reisessig\"] },\n        { amount: \"1-2 EL\", name: \"Palmzucker\", handle: \"palmzucker-scheiben-cock-454g-7122\", handles: [\"palmzucker-scheiben-cock-200g-7013\", \"palmzucker-scheiben-royal-orient-454g\"], searchTerms: [\"Palmzucker\"] },\n        { amount: \"nach Geschmack\", name: \"Sriracha oder Chilisauce\", handle: \"sriracha-chilisauce-cholimex-180ml-18731\", handles: [\"sriracha-hot-chilisauce-flying-goose-455ml\", \"suess-sauer-chilisauce-cholimex-250ml\"], searchTerms: [\"Sriracha\", \"Chilisauce\"] }\n      ],\n      freshIngredients: [\n        \"500 g Schweinekotelett, Schweinenacken oder H\u00E4hnchen\",\n        \"3-4 Eier\",\n        \"Gurke, Tomate und Salat\",\n        \"1 Knoblauchzehe\",\n        \"1 Limette\",\n        \"Fr\u00FChlingszwiebeln und neutrales \u00D6l\"\n      ],\n      steps: [\n        \"Bruchreis oder Jasminreis waschen und nach Packungsangabe garen.\",\n        \"Fleisch mit Fischsauce, Knoblauch, etwas Zucker und Pfeffer marinieren.\",\n        \"F\u00FCr Nuoc Cham Fischsauce, Wasser, Reisessig oder Limettensaft, Zucker, Knoblauch und Chili verr\u00FChren.\",\n        \"Fleisch in der Pfanne oder Grillpfanne kr\u00E4ftig braten, bis es karamellisiert.\",\n        \"Spiegeleier braten und Gem\u00FCse in Scheiben schneiden.\",\n        \"Reis mit Fleisch, Ei, Gem\u00FCse und Sauce anrichten. Mit Fr\u00FChlingszwiebel\u00F6l servieren.\"\n      ],\n      tips: [\n        \"Bruchreis nimmt Sauce besonders gut auf; normaler Jasminreis ist aber ein guter Ersatz.\",\n        \"Das Fleisch schmeckt besser, wenn es mindestens 20 Minuten mariniert.\",\n        \"Die Sauce separat servieren, damit jeder selbst dosieren kann.\"\n      ]\n    }\n  ];\n\n  function escapeHtml(value) {\n    return String(value == null ? \"\" : value)\n      .replace(/&/g, \"&amp;\")\n      .replace(/</g, \"&lt;\")\n      .replace(/>/g, \"&gt;\")\n      .replace(/\"/g, \"&quot;\")\n      .replace(/'/g, \"&#039;\");\n  }\n\n  function recipeUrl(recipe) {\n    return DETAIL_PREFIX + recipe.slug;\n  }\n\n  function countryList() {\n    var seen = {};\n    return RECIPES.map(function (recipe) { return recipe.country; }).filter(function (country) {\n      if (seen[country]) return false;\n      seen[country] = true;\n      return true;\n    });\n  }\n\n  function bySlug(slug) {\n    return RECIPES.find(function (recipe) { return recipe.slug === slug; }) || null;\n  }\n\n  function currentSlug() {\n    var match = window.location.pathname.match(/\\/pages\\/rezept-([^/?#]+)/);\n    return match ? decodeURIComponent(match[1]) : \"\";\n  }\n\n  function currentCountry() {\n    try {\n      return new URLSearchParams(window.location.search).get(\"land\") || \"\";\n    } catch (error) {\n      return \"\";\n    }\n  }\n\n  function money(value) {\n    var number = Number(value);\n    if (!Number.isFinite(number)) return \"\";\n    if (number > 100) number = number / 100;\n    return number.toLocaleString(\"de-DE\", { style: \"currency\", currency: \"EUR\" });\n  }\n\n  function normalizeImage(url) {\n    if (!url) return \"\";\n    if (url.indexOf(\"//\") === 0) return window.location.protocol + url;\n    return url;\n  }\n\n  function unique(values) {\n    var seen = {};\n    return values.filter(function (value) {\n      var key = String(value || \"\").trim();\n      if (!key || seen[key]) return false;\n      seen[key] = true;\n      return true;\n    });\n  }\n\n  function handleFromProductUrl(url) {\n    var match = String(url || \"\").match(/\\/products\\/([^/?#]+)/);\n    return match ? decodeURIComponent(match[1]) : \"\";\n  }\n\n  function ingredientHandles(item) {\n    return unique([item.handle].concat(item.handles || []));\n  }\n\n  function ingredientSearchTerms(item) {\n    var configured = item.searchTerms || (item.search ? [item.search] : []);\n    var cleaned = String(item.name || \"\")\n      .replace(/\\s+als\\s+.*$/i, \"\")\n      .replace(/\\s+zum\\s+.*$/i, \"\")\n      .replace(/\\s+zum Servieren\\s*$/i, \"\")\n      .trim();\n    return unique(configured.concat(cleaned));\n  }\n\n  function fetchProduct(handle) {\n    if (!handle) return Promise.resolve(null);\n    if (!productCache[handle]) {\n      productCache[handle] = fetch(\"/products/\" + encodeURIComponent(handle) + \".js\", {\n        credentials: \"same-origin\",\n        headers: { Accept: \"application/json\" }\n      })\n        .then(function (response) {\n          if (!response.ok) throw new Error(\"Produkt nicht erreichbar: \" + handle);\n          return response.json();\n        })\n        .catch(function () { return null; });\n    }\n    return productCache[handle];\n  }\n\n  function fetchSearchHandles(term) {\n    var key = String(term || \"\").trim().toLowerCase();\n    if (!key) return Promise.resolve([]);\n    if (!searchCache[key]) {\n      searchCache[key] = fetch(\"/search/suggest.json?q=\" + encodeURIComponent(term) + \"&resources[type]=product&resources[limit]=6\", {\n        credentials: \"same-origin\",\n        headers: { Accept: \"application/json\" }\n      })\n        .then(function (response) {\n          if (!response.ok) throw new Error(\"Produktsuche nicht erreichbar\");\n          return response.json();\n        })\n        .then(function (payload) {\n          var products = (((payload.resources || {}).results || {}).products) || [];\n          return unique(products.map(function (product) {\n            return product.handle || handleFromProductUrl(product.url);\n          }));\n        })\n        .catch(function () { return []; });\n    }\n    return searchCache[key];\n  }\n\n  function addToCart(variantId, quantity) {\n    return fetch(\"/cart/add.js\", {\n      method: \"POST\",\n      credentials: \"same-origin\",\n      headers: { \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n      body: JSON.stringify({ items: [{ id: variantId, quantity: quantity || 1 }] })\n    }).then(function (response) {\n      if (!response.ok) throw new Error(\"Cart add failed\");\n      return response.json();\n    });\n  }\n\n  function openRecipeCartDrawer() {\n    var drawer = document.querySelector(\".cart-summary\");\n    if (!drawer) return false;\n    drawer.classList.add(\"active\");\n    drawer.setAttribute(\"aria-hidden\", \"false\");\n    document.documentElement.classList.add(\"show-cart-summary\");\n    if (document.body) {\n      document.body.classList.remove(\"show-mobile-nav\");\n      document.body.classList.add(\"show-cart-summary\", \"product-added-to-cart\");\n    }\n    return true;\n  }\n\n  function refreshRecipeCartUi(openDrawer) {\n    var hasThemeRefresh = false;\n    function dispatchCartEvents() {\n      [\"toa:cart:refresh\", \"toa:cart:changed\", \"toa:cart:updated\", \"cart:refresh\", \"cart:updated\", \"theme:cart:updated\"].forEach(function (name) {\n        document.dispatchEvent(new CustomEvent(name));\n        window.dispatchEvent(new CustomEvent(name));\n      });\n      if (window.jQuery) {\n        window.jQuery(window).trigger(\"cc-cart-updated\");\n        window.jQuery(window).trigger(\"theme:cartchanged\");\n      }\n    }\n    function updateThemeCart() {\n      try {\n        if (window.theme && typeof window.theme.updateCartSummaries === \"function\") {\n          window.theme.updateCartSummaries(!!openDrawer, true, false);\n          hasThemeRefresh = true;\n        }\n      } catch (error) {}\n      if (openDrawer) openRecipeCartDrawer();\n      dispatchCartEvents();\n    }\n    updateThemeCart();\n    [180, 650, 1400, 2600].forEach(function (delay) {\n      window.setTimeout(updateThemeCart, delay);\n    });\n    return hasThemeRefresh;\n  }\n\n  function bestVariant(product) {\n    var variants = product && product.variants ? product.variants : [];\n    return variants.find(function (variant) { return variant.available; }) || variants[0] || null;\n  }\n\n  function productIsAvailable(product) {\n    var variant = bestVariant(product);\n    return !!(variant && variant.available);\n  }\n\n  function fallbackFor(item, handle) {\n    var copy = {};\n    Object.keys(item || {}).forEach(function (key) {\n      copy[key] = item[key];\n    });\n    copy.handle = handle || item.handle || \"\";\n    return copy;\n  }\n\n  function resolveIngredientProducts(item) {\n    var explicit = ingredientHandles(item);\n    var explicitMap = {};\n    explicit.forEach(function (handle) { explicitMap[handle] = true; });\n    return Promise.all(ingredientSearchTerms(item).map(fetchSearchHandles)).then(function (searchResults) {\n      var searched = [];\n      searchResults.forEach(function (handles) {\n        searched = searched.concat(handles || []);\n      });\n      var handles = unique(explicit.concat(searched));\n      return Promise.all(handles.map(function (handle, index) {\n        return fetchProduct(handle).then(function (product) {\n          return { handle: handle, product: product, index: index, explicit: !!explicitMap[handle] };\n        });\n      }));\n    }).then(function (entries) {\n      return entries.filter(function (entry) {\n        return !!entry.product;\n      }).sort(function (a, b) {\n        var availableDiff = (productIsAvailable(b.product) ? 1 : 0) - (productIsAvailable(a.product) ? 1 : 0);\n        if (availableDiff) return availableDiff;\n        if (a.explicit !== b.explicit) return a.explicit ? -1 : 1;\n        return a.index - b.index;\n      }).slice(0, 4);\n    });\n  }\n\n  function productCard(product, fallback, extraClass) {\n    var handle = fallback.handle || (product && product.handle) || ingredientHandles(fallback)[0] || \"\";\n    var classes = \"toa-recipe-product\" + (extraClass ? \" \" + extraClass : \"\");\n    if (!product) {\n      return '<a class=\"' + classes + ' toa-recipe-product--fallback\" href=\"' + (handle ? \"/products/\" + escapeHtml(handle) : \"/collections/alle-produkte\") + '\">' +\n        '<div><span>' + escapeHtml(fallback.amount || \"Zutat\") + '</span><strong>' + escapeHtml(fallback.name) + '</strong><p>Aktuell keine passende Shop-Auswahl gefunden</p></div>' +\n        '<em>Suchen</em>' +\n      '</a>';\n    }\n    var variant = bestVariant(product);\n    var available = !!(variant && variant.available);\n    var productHandle = product.handle || handle;\n    var image = normalizeImage(product.featured_image || (product.images && product.images[0]) || \"\");\n    var price = variant ? money(variant.price) : money(product.price);\n    return '<article class=\"' + classes + '\" data-product-handle=\"' + escapeHtml(productHandle) + '\">' +\n      '<a class=\"toa-recipe-product__image\" href=\"' + escapeHtml(product.url || (\"/products/\" + productHandle)) + '\">' +\n        (image ? '<img src=\"' + escapeHtml(image) + '\" alt=\"' + escapeHtml(product.title || fallback.name) + '\" loading=\"lazy\">' : '<span></span>') +\n      '</a>' +\n      '<div class=\"toa-recipe-product__body\">' +\n        '<span>' + escapeHtml(fallback.amount || \"Zutat\") + '</span>' +\n        '<a href=\"' + escapeHtml(product.url || (\"/products/\" + productHandle)) + '\">' + escapeHtml(product.title || fallback.name) + '</a>' +\n        '<p>' + (price ? escapeHtml(price) : \"Preis im Shop\") + (available ? \"\" : \" \u00B7 derzeit ausverkauft\") + '</p>' +\n      '</div>' +\n      '<button type=\"button\" class=\"toa-recipe-product__add\" data-variant-id=\"' + escapeHtml(variant && variant.id ? variant.id : \"\") + '\"' + (available ? \"\" : \" disabled\") + '>' + (available ? \"In den Warenkorb\" : \"Ausverkauft\") + '</button>' +\n    '</article>';\n  }\n\n  function productGroupCard(item, entries) {\n    if (!entries.length) return productCard(null, fallbackFor(item, ingredientHandles(item)[0] || \"\"), \"toa-recipe-product--missing\");\n    var primary = entries[0];\n    var alternatives = entries.slice(1);\n    return '<div class=\"toa-recipe-product-group\" data-ingredient-name=\"' + escapeHtml(item.name) + '\">' +\n      productCard(primary.product, fallbackFor(item, primary.handle), \"toa-recipe-product--primary\") +\n      (alternatives.length ? '<details class=\"toa-recipe-alternatives\"><summary>Alternativen anzeigen</summary><div>' + alternatives.map(function (entry) {\n        return productCard(entry.product, fallbackFor(item, entry.handle), \"toa-recipe-product--alternative\");\n      }).join(\"\") + '</div></details>' : \"\") +\n    '</div>';\n  }\n\n  function recipeMeta(recipe) {\n    return '<div class=\"toa-recipes-meta\">' +\n      '<span>' + escapeHtml(recipe.time) + '</span>' +\n      '<span>' + escapeHtml(recipe.portions) + ' Portionen</span>' +\n      '<span>' + escapeHtml(recipe.difficulty) + '</span>' +\n      '<span>' + escapeHtml(recipe.heat) + '</span>' +\n    '</div>';\n  }\n\n  function heroImage(recipe) {\n    return '<figure class=\"toa-recipes-hero__image\"><img src=\"' + escapeHtml(recipe.image) + '\" alt=\"' + escapeHtml(recipe.title) + '\" loading=\"eager\"></figure>';\n  }\n\n  function renderHub(root, selectedCountry) {\n    var countries = countryList();\n    var groups = countries.map(function (country) {\n      if (selectedCountry && selectedCountry !== country) return \"\";\n      var cards = RECIPES.filter(function (recipe) { return recipe.country === country; }).map(function (recipe) {\n        return '<a class=\"toa-recipe-card\" href=\"' + escapeHtml(recipeUrl(recipe)) + '\">' +\n          '<img src=\"' + escapeHtml(recipe.image) + '\" alt=\"' + escapeHtml(recipe.title) + '\" loading=\"lazy\">' +\n          '<div class=\"toa-recipe-card__body\">' +\n            '<span>' + escapeHtml(recipe.country) + '</span>' +\n            '<h3>' + escapeHtml(recipe.title) + '</h3>' +\n            '<p>' + escapeHtml(recipe.summary) + '</p>' +\n            recipeMeta(recipe) +\n            '<em>Rezept ansehen</em>' +\n          '</div>' +\n        '</a>';\n      }).join(\"\");\n      return '<section class=\"toa-recipes-country\" data-country=\"' + escapeHtml(country) + '\">' +\n        '<div class=\"toa-recipes-country__head\"><span>K\u00FCche</span><h2>' + escapeHtml(country) + '</h2></div>' +\n        '<div class=\"toa-recipes-grid\">' + cards + '</div>' +\n      '</section>';\n    }).join(\"\");\n\n    root.innerHTML = '<section class=\"toa-recipes-hero toa-recipes-hero--hub\">' +\n      '<div class=\"toa-recipes-hero__copy\">' +\n        '<span class=\"toa-recipes-kicker\">Rezepte & Zutaten</span>' +\n        '<h1>Rezepte</h1>' +\n        '<p>Asiatische Rezeptideen nach L\u00E4ndern sortiert. Du siehst direkt, welche wichtigen Zutaten du bei Taste of Asia mitbestellen kannst und was frisch dazu kommt.</p>' +\n        '<div class=\"toa-recipes-filter\" role=\"list\" aria-label=\"Rezepte nach L\u00E4ndern filtern\">' +\n          '<button type=\"button\" class=\"' + (!selectedCountry ? \"is-active\" : \"\") + '\" data-country-filter=\"\">Alle</button>' +\n          countries.map(function (country) {\n            return '<button type=\"button\" class=\"' + (selectedCountry === country ? \"is-active\" : \"\") + '\" data-country-filter=\"' + escapeHtml(country) + '\">' + escapeHtml(country) + '</button>';\n          }).join(\"\") +\n        '</div>' +\n      '</div>' +\n    '</section>' +\n    '<section class=\"toa-recipes-shop-note\"><strong>Vom Rezept zum Warenkorb.</strong><span>W\u00E4hle ein Rezept und lege passende Zutaten direkt in den Warenkorb.</span></section>' +\n    groups;\n\n    root.querySelectorAll(\"[data-country-filter]\").forEach(function (button) {\n      button.addEventListener(\"click\", function () {\n        var country = button.getAttribute(\"data-country-filter\") || \"\";\n        var url = country ? HUB_PATH + \"?land=\" + encodeURIComponent(country) : HUB_PATH;\n        if (window.history && window.history.pushState) window.history.pushState(null, \"\", url);\n        renderHub(root, country);\n      });\n    });\n  }\n\n  function renderIngredientList(title, items, className) {\n    return '<section class=\"' + className + '\">' +\n      '<h2>' + escapeHtml(title) + '</h2>' +\n      '<ul>' + items.map(function (item) {\n        if (typeof item === \"string\") return '<li>' + escapeHtml(item) + '</li>';\n        return '<li><span>' + escapeHtml(item.amount) + '</span>' + escapeHtml(item.name) + '</li>';\n      }).join(\"\") + '</ul>' +\n    '</section>';\n  }\n\n  function renderDetail(root, recipe) {\n    if (!recipe) {\n      root.innerHTML = '<section class=\"toa-recipes-missing\"><h1>Rezept nicht gefunden</h1><p>Dieses Rezept ist noch nicht angelegt.</p><a href=\"' + HUB_PATH + '\">Zur Rezept\u00FCbersicht</a></section>';\n      return;\n    }\n\n    var related = RECIPES.filter(function (item) {\n      return item.country === recipe.country && item.slug !== recipe.slug;\n    }).slice(0, 3);\n\n    root.innerHTML = '<section class=\"toa-recipes-hero toa-recipes-hero--detail\">' +\n      '<div class=\"toa-recipes-hero__copy\">' +\n        '<a class=\"toa-recipes-back\" href=\"' + HUB_PATH + '\">Alle Rezepte</a>' +\n        '<span class=\"toa-recipes-kicker\">' + escapeHtml(recipe.country) + '</span>' +\n        '<h1>' + escapeHtml(recipe.title) + '</h1>' +\n        '<p>' + escapeHtml(recipe.intro) + '</p>' +\n        recipeMeta(recipe) +\n      '</div>' +\n      heroImage(recipe) +\n    '</section>' +\n    '<section class=\"toa-recipe-detail-grid\">' +\n      '<div class=\"toa-recipe-main\">' +\n        renderIngredientList(\"Zutaten aus dem Shop\", recipe.shopIngredients, \"toa-recipe-ingredients\") +\n        renderIngredientList(\"Frisch dazu\", recipe.freshIngredients, \"toa-recipe-ingredients toa-recipe-ingredients--fresh\") +\n        '<section class=\"toa-recipe-steps\"><h2>Zubereitung</h2><ol>' + recipe.steps.map(function (step) { return '<li>' + escapeHtml(step) + '</li>'; }).join(\"\") + '</ol></section>' +\n        '<section class=\"toa-recipe-tips\"><h2>Tipps</h2><ul>' + recipe.tips.map(function (tip) { return '<li>' + escapeHtml(tip) + '</li>'; }).join(\"\") + '</ul></section>' +\n      '</div>' +\n      '<aside class=\"toa-recipe-shop\" aria-label=\"Passende Produkte aus dem Shop\">' +\n        '<div class=\"toa-recipe-shop__head\"><span>Direkt aus dem Shop</span><h2>Wichtige Zutaten</h2></div>' +\n        '<div class=\"toa-recipe-products\" data-recipe-products></div>' +\n        '<button type=\"button\" class=\"toa-recipe-add-all\" data-add-all>Alle verf\u00FCgbaren Zutaten in den Warenkorb</button>' +\n        '<p class=\"toa-recipe-shop__status\" data-shop-status aria-live=\"polite\"></p>' +\n      '</aside>' +\n    '</section>' +\n    (related.length ? '<section class=\"toa-recipes-related\"><h2>Weitere Rezepte aus ' + escapeHtml(recipe.country) + '</h2><div class=\"toa-recipes-grid\">' + related.map(function (item) {\n      return '<a class=\"toa-recipe-card\" href=\"' + escapeHtml(recipeUrl(item)) + '\"><img src=\"' + escapeHtml(item.image) + '\" alt=\"' + escapeHtml(item.title) + '\" loading=\"lazy\"><div class=\"toa-recipe-card__body\"><span>' + escapeHtml(item.country) + '</span><h3>' + escapeHtml(item.title) + '</h3><p>' + escapeHtml(item.summary) + '</p><em>Rezept ansehen</em></div></a>';\n    }).join(\"\") + '</div></section>' : \"\");\n\n    hydrateProducts(root, recipe);\n    injectRecipeSchema(recipe);\n  }\n\n  function hydrateProducts(root, recipe) {\n    var wrap = root.querySelector(\"[data-recipe-products]\");\n    if (!wrap) return;\n    wrap.innerHTML = recipe.shopIngredients.map(function (item) {\n      return '<article class=\"toa-recipe-product toa-recipe-product--loading\"><span></span><div><strong>' + escapeHtml(item.name) + '</strong><p>Produkt wird geladen...</p></div></article>';\n    }).join(\"\");\n\n    Promise.all(recipe.shopIngredients.map(function (item) {\n      return resolveIngredientProducts(item).then(function (entries) {\n        return productGroupCard(item, entries);\n      });\n    })).then(function (cards) {\n      wrap.innerHTML = cards.join(\"\");\n    });\n  }\n\n  function addAll(root, recipe, button) {\n    var status = root.querySelector(\"[data-shop-status]\");\n    button.disabled = true;\n    button.textContent = \"Wird hinzugef\u00FCgt...\";\n    Promise.all(recipe.shopIngredients.map(function (item) {\n      return resolveIngredientProducts(item).then(function (entries) {\n        var entry = entries.find(function (candidate) { return productIsAvailable(candidate.product); });\n        var variant = entry ? bestVariant(entry.product) : null;\n        if (!variant || !variant.available) return null;\n        return variant.id;\n      });\n    })).then(function (ids) {\n      ids = ids.filter(Boolean);\n      if (!ids.length) throw new Error(\"Keine verf\u00FCgbaren Zutaten\");\n      return fetch(\"/cart/add.js\", {\n        method: \"POST\",\n        credentials: \"same-origin\",\n        headers: { \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n        body: JSON.stringify({ items: ids.map(function (id) { return { id: id, quantity: 1 }; }) })\n      });\n    }).then(function (response) {\n      if (!response.ok) throw new Error(\"Cart add failed\");\n      if (status) status.textContent = \"Zutaten wurden in den Warenkorb gelegt.\";\n      button.textContent = \"Hinzugef\u00FCgt\";\n      refreshRecipeCartUi(true);\n      window.setTimeout(function () {\n        button.disabled = false;\n        button.textContent = \"Alle verf\u00FCgbaren Zutaten in den Warenkorb\";\n      }, 1800);\n    }).catch(function () {\n      if (status) status.textContent = \"Das hat gerade nicht geklappt. Bitte einzelne Produkte versuchen.\";\n      button.disabled = false;\n      button.textContent = \"Alle verf\u00FCgbaren Zutaten in den Warenkorb\";\n    });\n  }\n\n  function injectRecipeSchema(recipe) {\n    var old = document.getElementById(\"toa-recipe-schema\");\n    if (old) old.remove();\n    var script = document.createElement(\"script\");\n    script.type = \"application/ld+json\";\n    script.id = \"toa-recipe-schema\";\n    script.textContent = JSON.stringify({\n      \"@context\": \"https://schema.org\",\n      \"@type\": \"Recipe\",\n      name: recipe.title,\n      image: [recipe.image],\n      description: recipe.summary,\n      recipeCuisine: recipe.country,\n      recipeYield: recipe.portions + \" Portionen\",\n      totalTime: recipe.time,\n      recipeIngredient: recipe.shopIngredients.map(function (item) { return item.amount + \" \" + item.name; }).concat(recipe.freshIngredients),\n      recipeInstructions: recipe.steps.map(function (step) { return { \"@type\": \"HowToStep\", text: step }; })\n    });\n    document.head.appendChild(script);\n  }\n\n  function hideNativePageTitle(root, title) {\n    var scope = root.closest(\"main, #content, .main-content, .page, .page-content\") || document;\n    Array.prototype.slice.call(scope.querySelectorAll(\"h1, .page-title, .section-heading\")).forEach(function (node) {\n      if (node === root.querySelector(\"h1\")) return;\n      var text = (node.textContent || \"\").trim();\n      if (text === title || text === \"Rezept: \" + title || text === \"Rezepte\") node.classList.add(\"toa-recipes-native-title-hidden\");\n    });\n  }\n\n  function releaseRecipeRoot(root) {\n    var animated = root.closest && root.closest(\"[data-cc-animate]\");\n    if (animated) {\n      animated.removeAttribute(\"data-cc-animate\");\n      animated.removeAttribute(\"data-cc-animate-delay\");\n      animated.style.opacity = \"1\";\n      animated.style.transform = \"none\";\n    }\n    var section = root.closest && root.closest(\".shopify-section\");\n    var main = document.querySelector(\"main, #content, .main-content\") || document.body;\n    if (main && root.parentNode !== main) {\n      main.appendChild(root);\n      if (section) section.style.display = \"none\";\n    }\n    return root;\n  }\n\n  function ensureRoot() {\n    var root = document.getElementById(\"toa-recipes-root\");\n    if (root) return releaseRecipeRoot(root);\n    var path = window.location.pathname;\n    if (path !== HUB_PATH && path.indexOf(DETAIL_PREFIX) !== 0) return null;\n    root = document.createElement(\"div\");\n    root.id = \"toa-recipes-root\";\n    root.className = \"toa-recipes-root\";\n    var main = document.querySelector(\"main, #content, .main-content\") || document.body;\n    main.appendChild(root);\n    return releaseRecipeRoot(root);\n  }\n\n  function initRecipesPage() {\n    var root = ensureRoot();\n    if (!root) return;\n    root.classList.add(\"toa-recipes-root\");\n    var slug = root.getAttribute(\"data-toa-recipe\") || currentSlug();\n    if (slug) {\n      var recipe = bySlug(slug);\n      renderDetail(root, recipe);\n      hideNativePageTitle(root, recipe ? recipe.title : \"Rezept nicht gefunden\");\n    } else {\n      renderHub(root, currentCountry());\n      hideNativePageTitle(root, \"Rezepte\");\n    }\n  }\n\n  function recipeIcon() {\n    return '<svg viewBox=\"0 0 48 48\" aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M13 9v13\"/><path d=\"M18 9v13\"/><path d=\"M13 16h5\"/><path d=\"M15.5 22v17\"/><path d=\"M31 9c4 3 5.5 8 4.5 14-1 5-3.6 8-7.5 8\"/><path d=\"M28 9v30\"/><path d=\"M10 39h28\"/></svg>';\n  }\n\n  function recipeCountryNavHtml() {\n    var items = [{ label: \"Alle Rezepte\", href: HUB_PATH }].concat(RECIPE_COUNTRY_NAV.map(function (item) {\n      return {\n        label: item.label,\n        href: HUB_PATH + \"?land=\" + encodeURIComponent(item.country)\n      };\n    }));\n    return '<div class=\"toa-recipes-country-menu\" role=\"menu\" aria-label=\"Rezepte nach Laendern\">' +\n      items.map(function (item) {\n        return '<a role=\"menuitem\" href=\"' + escapeHtml(item.href) + '\">' + escapeHtml(item.label) + '</a>';\n      }).join(\"\") +\n      '</div>';\n  }\n\n  function removeHeroRecipeEntry() {\n    var stack = document.querySelector(\".toa-hero-lunch-stack\");\n    if (stack) {\n      Array.prototype.slice.call(stack.querySelectorAll(\".toa-hero-recipes-group,.toa-hero-recipes-strip,.toa-hero-recipes-pill\")).forEach(function (legacy) {\n        legacy.parentNode.removeChild(legacy);\n      });\n      stack.setAttribute(\"aria-label\", \"Mittagstisch und Samstag Highlight\");\n    }\n    Array.prototype.slice.call(document.querySelectorAll(\".toa-hero-recipes-mobile-cta\")).forEach(function (legacy) {\n      legacy.parentNode.removeChild(legacy);\n    });\n  }\n\n  function findMainProductsNavItem() {\n    var nav = document.querySelector(\"nav.main-nav.desktop > ul\") || document.querySelector(\"nav.main-nav > ul\");\n    if (!nav) return null;\n    return Array.prototype.slice.call(nav.children).find(function (item) {\n      var title = item.querySelector(\".nav-item-link-title\") || item.querySelector(\"a\");\n      return title && (title.textContent || \"\").trim().toLowerCase() === \"produkte\";\n    }) || null;\n  }\n\n  function insertMainRecipeNav() {\n    var products = findMainProductsNavItem();\n    if (!products || !products.parentNode || products.parentNode.querySelector(\".toa-main-recipes-nav\")) return;\n    var item = document.createElement(\"li\");\n    item.className = \"nav-item toa-main-recipes-nav\";\n    if ((window.location.pathname || \"\") === HUB_PATH || (window.location.pathname || \"\").indexOf(DETAIL_PREFIX) === 0) {\n      item.className += \" active\";\n    }\n    item.innerHTML = '<a class=\"nav-item-link\" href=\"' + HUB_PATH + '\" aria-haspopup=\"menu\"><span class=\"nav-item-link-title\">Rezepte &amp; Zutaten</span></a>' + recipeCountryNavHtml();\n    products.parentNode.insertBefore(item, products.nextSibling);\n  }\n\n  function insertMobileRecipeQuickAction() {\n    var nav = document.querySelector(\".toa-mobile-quick-actions\");\n    if (!nav || nav.querySelector(\".toa-mobile-quick-actions__item--recipes\")) return;\n    var products = Array.prototype.slice.call(nav.querySelectorAll(\".toa-mobile-quick-actions__item\")).find(function (item) {\n      var href = item.getAttribute(\"href\") || \"\";\n      var text = (item.textContent || \"\").replace(/\\s+/g, \" \").trim().toLowerCase();\n      return href.indexOf(\"/collections/alle-produkte\") !== -1 || text === \"produkte\" || text === \"products\";\n    });\n    if (!products || !products.parentNode) return;\n    var item = document.createElement(\"a\");\n    item.className = \"toa-mobile-quick-actions__item toa-mobile-quick-actions__item--recipes\";\n    item.href = HUB_PATH;\n    item.setAttribute(\"data-toa-mobile-section\", \"recipes\");\n    item.setAttribute(\"aria-label\", \"Rezepte und passende Zutaten ansehen\");\n    item.innerHTML = '<span class=\"toa-mobile-quick-actions__icon-wrap\">' + recipeIcon().replace(\"<svg \", '<svg class=\"toa-mobile-quick-actions__icon\" ') + '</span>' +\n      '<span class=\"toa-mobile-quick-actions__label\">Rezepte</span>';\n    products.parentNode.insertBefore(item, products.nextSibling);\n    nav.classList.add(\"toa-recipes-nav-ready\");\n    if (window.toaUpdateMobileQuickActionsActive) window.toaUpdateMobileQuickActionsActive();\n  }\n\n  function insertRecipeNavigationLinks() {\n    removeHeroRecipeEntry();\n    insertMainRecipeNav();\n    insertMobileRecipeQuickAction();\n  }\n\n  function injectStyles() {\n    if (document.getElementById(\"toa-recipes-v1-style\")) return;\n    var style = document.createElement(\"style\");\n    style.id = \"toa-recipes-v1-style\";\n    style.textContent = [\n      \".toa-recipes-root,.toa-recipes-root *,.toa-recipes-root *:before,.toa-recipes-root *:after{box-sizing:border-box}\",\n      \".toa-recipes-native-title-hidden{display:none!important}\",\n      \".toa-recipes-root{--toa-green:#17381f;--toa-green-2:#285c2a;--toa-red:#b83a31;--toa-cream:#fffaf0;--toa-paper:#fbf7ef;--toa-gold:#d8ad57;--toa-ink:#1f2c22;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);overflow:hidden;color:var(--toa-ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}\",\n      \".toa-recipes-root a{color:inherit}\",\n      \".toa-recipes-hero{width:100%;max-width:100%;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(300px,.96fr);gap:28px;align-items:stretch;margin:0 auto;padding:clamp(32px,5vw,70px) max(20px,calc((100vw - 1180px)/2));background:linear-gradient(115deg,#fffaf0 0%,#f7efe2 52%,#eaf3e7 100%)}\",\n      \".toa-recipes-hero--hub{grid-template-columns:minmax(0,760px);justify-content:start;min-height:0}\",\n      \".toa-recipes-hero--hub .toa-recipes-hero__copy{max-width:760px}\",\n      \".toa-recipes-hero--hub .toa-recipes-hero__tiles{display:none!important}\",\n      \".toa-recipes-kicker,.toa-recipes-country__head span,.toa-recipe-shop__head span{display:block;margin:0 0 10px;color:var(--toa-red);font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}\",\n      \".toa-recipes-hero h1{margin:0;color:#062f1f;font-family:Georgia,'Times New Roman',serif;font-size:clamp(42px,6vw,88px);font-weight:500;letter-spacing:0;line-height:.94}\",\n      \".toa-recipes-hero p{max-width:680px;margin:18px 0 0;color:#334238;font-size:clamp(16px,1.6vw,20px);line-height:1.55}\",\n      \".toa-recipes-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}\",\n      \".toa-recipes-meta span{display:inline-flex;align-items:center;min-height:32px;padding:7px 11px;border:1px solid rgba(23,56,31,.18);border-radius:999px;background:rgba(255,255,255,.68);color:#17381f;font-size:12px;font-weight:850}\",\n      \".toa-recipes-filter{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}\",\n      \".toa-recipes-filter button{min-height:38px;padding:8px 14px;border:1px solid rgba(23,56,31,.22);border-radius:999px;background:#fff;color:#17381f;font-weight:900;cursor:pointer}\",\n      \".toa-recipes-filter button.is-active{background:#17381f;color:#fffaf0;border-color:#17381f}\",\n      \".toa-recipes-hero__tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}\",\n      \".toa-recipes-hero__tiles a,.toa-recipes-hero__image{position:relative;min-height:190px;overflow:hidden;border-radius:8px;background:#e8e0d5;color:#fff;text-decoration:none}\",\n      \".toa-recipes-hero__tiles img,.toa-recipes-hero__image img{width:100%;height:100%;display:block;object-fit:cover}\",\n      \".toa-recipes-hero__tiles span{position:absolute;left:12px;bottom:12px;padding:6px 9px;border-radius:999px;background:rgba(23,56,31,.88);font-size:12px;font-weight:950}\",\n      \".toa-recipes-hero__image{min-height:420px;margin:0;box-shadow:0 22px 54px rgba(23,56,31,.18)}\",\n      \".toa-recipes-shop-note{display:flex;gap:12px;align-items:center;justify-content:center;padding:16px 20px;background:#17381f;color:#fffaf0;text-align:center}\",\n      \".toa-recipes-shop-note strong{font-weight:950}.toa-recipes-shop-note span{opacity:.9}\",\n      \".toa-recipes-country,.toa-recipes-related{width:100%;max-width:100%;padding:clamp(30px,4vw,58px) max(20px,calc((100vw - 1180px)/2));background:#fff}\",\n      \".toa-recipes-country:nth-of-type(even){background:#f7f5ef}\",\n      \".toa-recipes-country__head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}\",\n      \".toa-recipes-country__head h2,.toa-recipes-related h2,.toa-recipe-main h2,.toa-recipe-shop h2{margin:0;color:#062f1f;font-family:Georgia,'Times New Roman',serif;font-size:clamp(28px,3vw,42px);font-weight:500;letter-spacing:0;line-height:1.05}\",\n      \".toa-recipes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}\",\n      \".toa-recipe-card{display:grid;grid-template-rows:220px 1fr;overflow:hidden;border:1px solid rgba(23,56,31,.14);border-radius:8px;background:#fff;text-decoration:none;box-shadow:0 14px 34px rgba(30,35,28,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}\",\n      \".toa-recipe-card:hover{transform:translateY(-2px);border-color:rgba(184,58,49,.34);box-shadow:0 18px 42px rgba(30,35,28,.13)}\",\n      \".toa-recipe-card img{width:100%;height:100%;object-fit:cover;background:#eee}\",\n      \".toa-recipe-card__body{display:grid;align-content:start;gap:9px;padding:16px}\",\n      \".toa-recipe-card__body>span{color:var(--toa-red);font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}\",\n      \".toa-recipe-card h3{margin:0;color:#17381f;font-size:20px;line-height:1.15;letter-spacing:0}\",\n      \".toa-recipe-card p{margin:0;color:#465346;font-size:14px;line-height:1.45}\",\n      \".toa-recipe-card em{margin-top:6px;color:#b83a31;font-style:normal;font-weight:950}\",\n      \".toa-recipe-detail-grid{width:100%;max-width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);gap:28px;align-items:start;padding:clamp(30px,4vw,60px) max(20px,calc((100vw - 1180px)/2));background:#fff}\",\n      \".toa-recipe-main{display:grid;gap:24px}\",\n      \".toa-recipe-ingredients,.toa-recipe-steps,.toa-recipe-tips,.toa-recipe-shop{border:1px solid rgba(23,56,31,.14);border-radius:8px;background:#fff;padding:22px;box-shadow:0 12px 30px rgba(30,35,28,.07)}\",\n      \".toa-recipe-ingredients--fresh{background:#fbf7ef}\",\n      \".toa-recipe-ingredients ul,.toa-recipe-tips ul{display:grid;gap:10px;margin:16px 0 0;padding:0;list-style:none}\",\n      \".toa-recipe-ingredients li,.toa-recipe-tips li{position:relative;padding-left:20px;color:#334238;line-height:1.45}\",\n      \".toa-recipe-ingredients li:before,.toa-recipe-tips li:before{content:'';position:absolute;left:0;top:.7em;width:7px;height:7px;border-radius:999px;background:#b83a31}\",\n      \".toa-recipe-ingredients li span{display:inline-block;min-width:84px;margin-right:8px;color:#17381f;font-weight:950}\",\n      \".toa-recipe-steps ol{display:grid;gap:14px;margin:18px 0 0;padding:0;list-style:none;counter-reset:toaRecipeStep}\",\n      \".toa-recipe-steps li{counter-increment:toaRecipeStep;position:relative;min-height:38px;padding-left:54px;color:#334238;font-size:16px;line-height:1.55}\",\n      \".toa-recipe-steps li:before{content:counter(toaRecipeStep);position:absolute;left:0;top:0;width:36px;height:36px;display:grid;place-items:center;border-radius:999px;background:#17381f;color:#fffaf0;font-weight:950}\",\n      \".toa-recipe-shop{position:sticky;top:24px;display:grid;gap:14px;background:#f8f4ea}\",\n      \".toa-recipe-shop__head p,.toa-recipe-shop__status{margin:8px 0 0;color:#536050;font-size:13px;line-height:1.4}\",\n      \".toa-recipe-products{display:grid;gap:10px}\",\n      \".toa-recipe-product-group{display:grid;gap:7px}\",\n      \".toa-recipe-alternatives{border:1px solid rgba(23,56,31,.12);border-radius:8px;background:rgba(255,255,255,.68);padding:8px}\",\n      \".toa-recipe-alternatives summary{cursor:pointer;color:#b83a31;font-size:12px;font-weight:950;list-style:none}\",\n      \".toa-recipe-alternatives summary::-webkit-details-marker{display:none}\",\n      \".toa-recipe-alternatives summary:after{content:'+';float:right;color:#17381f}\",\n      \".toa-recipe-alternatives[open] summary:after{content:'\u2212'}\",\n      \".toa-recipe-alternatives>div{display:grid;gap:7px;margin-top:8px}\",\n      \".toa-recipe-product{display:grid;grid-template-columns:74px minmax(0,1fr);gap:11px;align-items:center;padding:10px;border:1px solid rgba(23,56,31,.12);border-radius:8px;background:#fff}\",\n      \".toa-recipe-product--alternative{grid-template-columns:58px minmax(0,1fr);gap:9px;padding:8px}\",\n      \".toa-recipe-product__image{width:74px;height:74px;display:block;overflow:hidden;border-radius:6px;background:#f0eee8}\",\n      \".toa-recipe-product--alternative .toa-recipe-product__image{width:58px;height:58px}\",\n      \".toa-recipe-product__image img{width:100%;height:100%;object-fit:contain}\",\n      \".toa-recipe-product__body{min-width:0}.toa-recipe-product__body span{display:block;margin-bottom:3px;color:#b83a31;font-size:11px;font-weight:900}.toa-recipe-product__body a{display:block;color:#17381f;font-size:14px;font-weight:950;line-height:1.2;text-decoration:none}.toa-recipe-product__body p{margin:4px 0 0;color:#536050;font-size:12px}\",\n      \".toa-recipe-product--alternative .toa-recipe-product__body a{font-size:13px}\",\n      \".toa-recipe-product__add,.toa-recipe-add-all{grid-column:1/-1;min-height:38px;border:0;border-radius:6px;background:#2d5b22;color:#fffaf0;font-weight:950;cursor:pointer}\",\n      \".toa-recipe-product--alternative .toa-recipe-product__add{min-height:34px;font-size:12px}\",\n      \".toa-recipe-product__add:disabled,.toa-recipe-add-all:disabled{opacity:.62;cursor:default}\",\n      \".toa-recipe-add-all{width:100%;min-height:44px;background:#b83a31}\",\n      \".toa-recipe-product--loading span{width:74px;height:74px;border-radius:6px;background:#eee}.toa-recipe-product--loading strong{display:block;color:#17381f}.toa-recipe-product--loading p{margin:4px 0 0;color:#536050}\",\n      \".toa-recipe-product--fallback{grid-template-columns:1fr auto;color:#17381f;text-decoration:none}.toa-recipe-product--fallback span{color:#b83a31;font-size:11px;font-weight:950}.toa-recipe-product--fallback strong{display:block}.toa-recipe-product--fallback p{margin:4px 0 0;color:#536050}.toa-recipe-product--fallback em{font-style:normal;font-weight:950;color:#b83a31}\",\n      \".toa-recipes-back{display:inline-flex;width:max-content;margin-bottom:16px;color:#b83a31;font-weight:950;text-decoration:none}\",\n      \".toa-recipes-missing{padding:80px max(20px,calc((100vw - 920px)/2));background:#fffaf0}.toa-recipes-missing h1{font-family:Georgia,'Times New Roman',serif;color:#17381f}.toa-recipes-missing a{color:#b83a31;font-weight:950}\",\n      \"@media (min-width:768px){nav.main-nav>ul>li.toa-main-recipes-nav{position:relative}nav.main-nav>ul>li.toa-main-recipes-nav>a.nav-item-link{color:#b83a31!important;font-weight:950!important;white-space:nowrap}nav.main-nav>ul>li.toa-main-recipes-nav>a.nav-item-link .nav-item-link-title{color:#b83a31!important;font-weight:950!important}nav.main-nav>ul>li.toa-main-recipes-nav>a.nav-item-link:hover .nav-item-link-title,nav.main-nav>ul>li.toa-main-recipes-nav:focus-within>a.nav-item-link .nav-item-link-title{color:#17381f!important}.toa-recipes-country-menu{position:absolute;top:100%;left:50%;z-index:1200;display:grid;gap:4px;min-width:230px;padding:10px;margin-top:8px;border:1px solid rgba(23,56,31,.14);border-radius:8px;background:#fffaf0;box-shadow:0 18px 44px rgba(23,56,31,.18);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,8px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease}.toa-recipes-country-menu:before{content:\\\"\\\";position:absolute;left:0;right:0;top:-10px;height:10px}.toa-main-recipes-nav:hover .toa-recipes-country-menu,.toa-main-recipes-nav:focus-within .toa-recipes-country-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}.toa-recipes-country-menu a{display:block;padding:10px 12px;border-radius:6px;color:#17381f!important;font-size:14px;font-weight:850;line-height:1.15;text-decoration:none;white-space:nowrap}.toa-recipes-country-menu a:hover,.toa-recipes-country-menu a:focus{background:#f4ead9;color:#b83a31!important;outline:none}}\",\n      \"@media (max-width:767px){.toa-recipes-country-menu{display:none!important}}\",\n      \"@media (max-width:767px){html body .toa-mobile-quick-actions.toa-recipes-nav-ready{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;min-width:0!important;left:8px!important;right:auto!important;gap:4px!important;padding:6px!important;box-sizing:border-box!important;border-radius:20px!important}html body .toa-mobile-quick-actions.toa-recipes-nav-ready .toa-mobile-quick-actions__item{flex:1 1 0!important;flex-basis:0!important;inline-size:auto!important;width:auto!important;min-inline-size:0!important;min-width:0!important;max-width:100%!important;min-height:56px!important;padding:5px 2px!important;border-radius:14px!important;font-size:9px!important;overflow:hidden!important}html body .toa-mobile-quick-actions.toa-recipes-nav-ready .toa-mobile-quick-actions__label{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;line-height:1.05!important}.toa-mobile-quick-actions__item--recipes{background:rgba(216,173,87,.18)!important;border-color:rgba(216,173,87,.45)!important}.toa-mobile-quick-actions__item--recipes .toa-mobile-quick-actions__icon{width:20px!important;height:20px!important}.toa-mobile-quick-actions__item--recipes .toa-mobile-quick-actions__icon path{stroke-width:2.5!important}}\",\n      \"@media (max-width:980px){.toa-recipes-hero,.toa-recipes-hero--hub,.toa-recipe-detail-grid{grid-template-columns:1fr}.toa-recipe-shop{position:static}.toa-recipes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}\",\n      \"@media (max-width:767px){.toa-recipes-root{width:auto!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;overflow:hidden!important}.toa-recipes-hero,.toa-recipes-country,.toa-recipes-related,.toa-recipe-detail-grid,.toa-recipes-shop-note{width:min(350px,88vw)!important;max-width:min(350px,88vw)!important;margin-left:0!important;margin-right:0!important}.toa-recipes-hero{padding:30px 16px;gap:18px}.toa-recipes-hero__copy,.toa-recipes-hero__tiles,.toa-recipes-hero__image{min-width:0!important;max-width:100%!important}.toa-recipes-hero h1{max-width:100%;font-size:44px;overflow-wrap:anywhere}.toa-recipes-hero p{max-width:100%;overflow-wrap:anywhere}.toa-recipes-hero__tiles{width:100%!important;grid-template-columns:1fr!important;gap:8px;overflow:hidden!important}.toa-recipes-hero__tiles a{min-width:0!important;max-width:100%!important;min-height:128px}.toa-recipes-hero__tiles img,.toa-recipe-card img{min-width:0!important;max-width:100%!important}.toa-recipes-hero__image{min-height:260px}.toa-recipes-shop-note{display:grid;text-align:left}.toa-recipes-country,.toa-recipes-related,.toa-recipe-detail-grid{padding:28px 16px}.toa-recipes-grid{grid-template-columns:1fr}.toa-recipe-card{min-width:0!important;max-width:100%!important;grid-template-rows:190px 1fr}.toa-recipe-ingredients,.toa-recipe-steps,.toa-recipe-tips,.toa-recipe-shop{padding:17px}.toa-recipe-steps li{padding-left:48px}.toa-recipe-product{grid-template-columns:64px minmax(0,1fr)}.toa-recipe-product__image,.toa-recipe-product--loading span{width:64px;height:64px}}\"\n    ].join(\"\");\n    document.head.appendChild(style);\n  }\n\n  document.addEventListener(\"click\", function (event) {\n    var productButton = event.target.closest && event.target.closest(\".toa-recipe-product__add[data-variant-id]\");\n    if (productButton) {\n      event.preventDefault();\n      var id = productButton.getAttribute(\"data-variant-id\");\n      if (!id || productButton.disabled) return;\n      productButton.disabled = true;\n      productButton.textContent = \"Wird hinzugef\u00FCgt...\";\n      addToCart(id, 1).then(function () {\n        productButton.textContent = \"Hinzugef\u00FCgt\";\n        refreshRecipeCartUi(true);\n        window.setTimeout(function () {\n          productButton.disabled = false;\n          productButton.textContent = \"In den Warenkorb\";\n        }, 1600);\n      }).catch(function () {\n        productButton.disabled = false;\n        productButton.textContent = \"Nochmal versuchen\";\n      });\n      return;\n    }\n\n    var addAllButton = event.target.closest && event.target.closest(\"[data-add-all]\");\n    if (addAllButton) {\n      var recipeRoot = document.getElementById(\"toa-recipes-root\");\n      var slug = currentSlug() || (recipeRoot ? recipeRoot.getAttribute(\"data-toa-recipe\") : \"\");\n      var recipe = bySlug(slug);\n      if (recipe && recipeRoot) addAll(recipeRoot, recipe, addAllButton);\n    }\n  });\n\n  function boot() {\n    injectStyles();\n    initRecipesPage();\n    insertRecipeNavigationLinks();\n  }\n\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", boot);\n  else boot();\n  window.addEventListener(\"load\", boot);\n  window.addEventListener(\"pageshow\", boot);\n  window.addEventListener(\"popstate\", initRecipesPage);\n  [300, 900, 1800, 3600, 7000].forEach(function (delay) {\n    window.setTimeout(function () {\n      injectStyles();\n      insertRecipeNavigationLinks();\n    }, delay);\n  });\n  try {\n    new MutationObserver(function () { window.setTimeout(insertRecipeNavigationLinks, 60); })\n      .observe(document.documentElement, { childList: true, subtree: true });\n  } catch (error) {}\n})();\n"],
  "mappings": "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",
  "names": ["handles", "item"]
}
