{"id":19989,"date":"2026-06-12T21:20:35","date_gmt":"2026-06-12T18:20:35","guid":{"rendered":"https:\/\/zeolife.gr\/?page_id=19989"},"modified":"2026-10-19T23:57:11","modified_gmt":"2026-10-19T20:57:11","slug":"dosierungsratgeber-fuer-effektive-mikroorganismen-em","status":"publish","type":"page","link":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/","title":{"rendered":"Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM"},"content":{"rendered":"\n<!-- ==========================================================\n     \u039f\u03b4\u03b7\u03b3\u03cc\u03c2 \u0394\u03bf\u03c3\u03bf\u03bb\u03bf\u03b3\u03af\u03b1\u03c2 \u0395\u03bd\u03b5\u03c1\u03b3\u03ce\u03bd \u039c\u03b9\u03ba\u03c1\u03bf\u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03ce\u03bd (EM-Active + FKE)  (\u039a\u0391\u0398\u0391\u03a1\u039f)\n     Path: \/em-doseologia-ipologistis\/\n     ----------------------------------------------------------\n     \u03a7\u03a9\u03a1\u0399\u03a3 <style>\/<link> (AMP safe) \u2014 \u03c4\u03bf \u03c3\u03c4\u03c5\u03bb \u03ad\u03c1\u03c7\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd\n     \u03a0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03b3\u03ad\u03b1, sections \u00a716 \u2192 \u00a716\u03b5 .zlcalc (\u03ba\u03bf\u03b9\u03bd\u03ac \u03b3\u03b9\u03b1 \u03cc\u03bb\u03bf\u03c5\u03c2\n     \u03c4\u03bf\u03c5\u03c2 \u03bf\u03b4\u03b7\u03b3\u03bf\u03cd\u03c2 \u03c4\u03bf\u03c5 \/ergaleia\/).\n     \u03a4\u03bf JS \u03bc\u03ad\u03bd\u03b5\u03b9 \u03b5\u03b4\u03ce, \u03c3\u03b5 IIFE. Root hook \u03b3\u03b9\u03b1 \u03c4\u03bf JS: id=\"emCalc\".\n\n     v2 (\u03b4\u03b9\u03bf\u03c1\u03b8\u03ce\u03c3\u03b5\u03b9\u03c2):\n      \u2022 \u03a0\u03c1\u03bf\u03c3\u03c4\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03a0\u0395\u03a1\u0399\u03a3\u03a4\u0395\u03a1\u0399\u0391 \u03c3\u03c4\u03b7\u03bd \u03ba\u03c4\u03b7\u03bd\u03bf\u03c4\u03c1\u03bf\u03c6\u03af\u03b1 (FKE) \u2014 \u03c4\u03c1\u03bf\u03c6\u03ae & \u03bd\u03b5\u03c1\u03cc.\n      \u2022 \u039d\u03ad\u03bf: \u03c5\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03cc\u03c2 \u00abml FKE \u03b1\u03bd\u03ac \u03bb\u03af\u03c4\u03c1\u03bf \u03c0\u03cc\u03c3\u03b9\u03bc\u03bf\u03c5 \u03bd\u03b5\u03c1\u03bf\u03cd\u00bb + \u03c3\u03c5\u03bd\u03c4\u03b1\u03b3\u03ae \u03b7\u03bc\u03ad\u03c1\u03b1\u03c2.\n      \u2022 Fix: markdown link \u03c3\u03c4\u03bf print header \u2192 \u03ba\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03cc <a>.\n      \u2022 Fix: isPositive() \u03b4\u03b5\u03c7\u03cc\u03c4\u03b1\u03bd \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf (NaN <= 0 === false).\n      \u2022 Fix: \u03bb\u03b5\u03ba\u03c4\u03b9\u03ba\u03cc water-route \u03b3\u03b9\u03b1 \u03c0\u03bf\u03c5\u03bb\u03b5\u03c1\u03b9\u03ba\u03ac (\u03af\u03b4\u03b9\u03b1 \u03b4\u03cc\u03c3\u03b7 \u03c4\u03c1\u03bf\u03c6\u03ae\u03c2\/\u03bd\u03b5\u03c1\u03bf\u03cd).\n      \u2022 Fix: \u03b4\u03c5\u03bd\u03b1\u03bc\u03b9\u03ba\u03ad\u03c2 \u03b5\u03c4\u03b9\u03ba\u03ad\u03c4\u03b5\u03c2 \u03c0\u03bf\u03c3\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03b1\u03bd\u03ac \u03c5\u03c0\u03bf-\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae (\u03c0\u03bf\u03c5\u03bb\u03b9\u03ac\/\u03b6\u03ce\u03b1\/\u03c3\u03b7\u03bc\u03b5\u03af\u03b1).\n      \u2022 Fix: guard \u03c3\u03c4\u03bf smartPackaging, each() helper \u03b3\u03b9\u03b1 \u03c0\u03b1\u03bb\u03b9\u03ac NodeList.\n      \u2022 Fix: --muted \u2192 --em-muted \u03bc\u03b5 fallback.\n     ========================================================== -->\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"WebApplication\",\n      \"name\": \"Dosierungsratgeber f\u00fcr Aktive Mikroorganismen EM\",\n      \"alternateName\": \"Ratgeber f\u00fcr Aktive Mikroorganismen (EM)\",\n      \"url\": \"https:\/\/zeolife.gr\/em-doseologia-ipologistis\/\",\n      \"description\": \"Kostenloser Dosierungsratgeber f\u00fcr Aktive Mikroorganismen EM-Active und FKE f\u00fcr Landwirtschaft, Tierhaltung, Gefl\u00fcgel- und Taubenzucht, Kompostierung, Haushalt und Stallhygiene. Smart Packaging.\",\n      \"applicationCategory\": \"AgricultureApplication\",\n      \"operatingSystem\": \"Any (web)\",\n      \"inLanguage\": \"el\",\n      \"isAccessibleForFree\": true,\n      \"publisher\": { \"@type\": \"Organization\", \"name\": \"Zeolife\", \"url\": \"https:\/\/zeolife.gr\/\" }\n    }\n  ]\n}\n<\/script>\n<div class=\"zl zlcalc\" id=\"emCalc\">\n<div class=\"intro\">\n<h2>\ud83e\udda0 Dosierungsratgeber f\u00fcr Effektive Mikroorganismen (EM)<\/h2>\n<p>W\u00e4hlen Sie die Verwendung und sehen Sie genau, wie viel <strong>EM-Active<\/strong> oder <strong>FKE<\/strong> Sie ben\u00f6tigen, mit Smart Packaging. Die ideale Erg\u00e4nzung zum <strong>Zeolith<\/strong> f\u00fcr synergistische Ergebnisse.<\/p>\n<div class=\"badges\">\n<span class=\"badge\">\ud83d\udccb Ratgeber in 4 Schritten<\/span>\n<span class=\"badge\">EM-Active (Landwirtschaft\/Haushalt)<\/span>\n<span class=\"badge\">FKE (Tierhaltung)<\/span>\n<span class=\"badge\">\ud83d\udc26 Gefl\u00fcgel &amp; Tauben<\/span>\n<span class=\"badge\">Multikraft\u00ae<\/span>\n<span class=\"badge\">Mit Bio-Anbau vereinbar<\/span>\n<\/div>\n<\/div>\n<div class=\"progress\" aria-hidden=\"true\"><div class=\"progress-bar\" id=\"emProgress\"><\/div><\/div>\n<div id=\"emProgressSpacer\" aria-hidden=\"true\" style=\"height:0\"><\/div>\n<!-- STEP 1: USE CASE -->\n<div class=\"step active\" data-step=\"1\">\n<h3><span class=\"step-num\">1<\/span>Verwendung w\u00e4hlen<\/h3>\n<div class=\"options cols-3\">\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"crops\">\n<span class=\"opt-title\">\ud83c\udf3e Kulturen<\/span>\n<span class=\"opt-desc\">Stremma \u2014 Gem\u00fcse, Getreide usw.<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"trees\">\n<span class=\"opt-title\">\ud83c\udf33 Baumkulturen<\/span>\n<span class=\"opt-desc\">Olive, Weinrebe, Obst<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"garden\">\n<span class=\"opt-title\">\ud83e\udeb4 Garten\/T\u00f6pfe<\/span>\n<span class=\"opt-desc\">Gem\u00fcsegarten, T\u00f6pfe, Garten<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"compost\">\n<span class=\"opt-title\">\ud83c\udf31 Kompostierung<\/span>\n<span class=\"opt-desc\">Bokashi, Kompost m\u00b3<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"livestock\">\n<span class=\"opt-title\">\ud83d\udc04 Tierhaltung (FKE)<\/span>\n<span class=\"opt-desc\">Tiere, Gefl\u00fcgel, Tauben \u2014 Futter oder Wasser<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"hygiene\">\n<span class=\"opt-title\">\ud83d\udc14 Stallhygiene<\/span>\n<span class=\"opt-desc\">m\u00b2 von St\u00e4llen, H\u00fchnerst\u00e4llen, Taubenschl\u00e4gen<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"home\">\n<span class=\"opt-title\">\ud83c\udfe0 Haushalt\/Reinigung<\/span>\n<span class=\"opt-desc\">Ger\u00fcche, Waschen, Reinigung<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"ensilage\">\n<span class=\"opt-title\">\ud83c\udf3d Silierung<\/span>\n<span class=\"opt-desc\">Gras, Heu, Mais (m\u00b3)<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"spray\">\n<span class=\"opt-title\">\ud83d\udca8 Spritzung in der Landwirtschaft<\/span>\n<span class=\"opt-desc\">Verd\u00fcnnung 1\u20134 % alle 7\u201330 Tage<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"useCase\" value=\"other\">\n<span class=\"opt-title\">\u2795 Fragen Sie uns<\/span>\n<span class=\"opt-desc\">Ihre Verwendung nicht dabei? Fragen Sie uns<\/span>\n<\/label>\n<\/div>\n<\/div>\n<!-- STEP 2: SUB-USE CASE -->\n<div class=\"step\" data-step=\"2\">\n<h3><span class=\"step-num\">2<\/span>Details zur Verwendung<\/h3>\n<div id=\"emSubContainer\">\n<p style=\"color:var(--em-muted,#6b6a64);font-style:italic;\">W\u00e4hlen Sie zuerst in Schritt 1 eine Verwendung.<\/p>\n<\/div>\n<\/div>\n<!-- STEP 3: QUANTITY -->\n<div class=\"step\" data-step=\"3\">\n<h3><span class=\"step-num\">3<\/span>Menge\/Fl\u00e4che<\/h3>\n<div id=\"emQtyContainer\">\n<p style=\"color:var(--em-muted,#6b6a64);font-style:italic;\">W\u00e4hlen Sie zuerst eine Verwendung.<\/p>\n<\/div>\n<\/div>\n<!-- STEP 4: DURATION -->\n<div class=\"step\" data-step=\"4\">\n<h3><span class=\"step-num\">4<\/span>Dauer<\/h3>\n<div class=\"options cols-4\">\n<label class=\"option\"><input type=\"radio\" name=\"duration\" value=\"30\">\n<span class=\"opt-title\">\ud83d\udcc5 1 Monat<\/span>\n<span class=\"opt-desc\">30 Tage<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"duration\" value=\"90\">\n<span class=\"opt-title\">\ud83d\udcc5 3 Monate<\/span>\n<span class=\"opt-desc\">90 Tage<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"duration\" value=\"180\">\n<span class=\"opt-title\">\ud83d\udcc5 6 Monate<\/span>\n<span class=\"opt-desc\">180 Tage<\/span>\n<\/label>\n<label class=\"option\"><input type=\"radio\" name=\"duration\" value=\"365\">\n<span class=\"opt-title\">\ud83d\udcc5 1 Jahr<\/span>\n<span class=\"opt-desc\">365 Tage<\/span>\n<\/label>\n<\/div>\n<div style=\"margin-top:0.85rem;\">\n<label class=\"qty-label\" for=\"emCustomDays\">Oder genaue Tage:<\/label>\n<input type=\"number\" id=\"emCustomDays\" class=\"qty-input\" min=\"1\" placeholder=\"z. B. 60\">\n<\/div>\n<p class=\"sublabel\" id=\"emDurationNote\">\ud83d\udca1 Die Dauer bestimmt, wie viele Anwendungen n\u00f6tig sind.<\/p>\n<\/div>\n<!-- STEP (conditional): \u0391\u0399\u03a4\u0397\u039c\u0391 \u0393\u0399\u0391 \u0391\u039b\u039b\u0397 \u03a7\u03a1\u0397\u03a3\u0397 \u2014 \u03b5\u03bc\u03c6\u03b1\u03bd\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03bc\u03cc\u03bd\u03bf \u03cc\u03c4\u03b1\u03bd \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03b5\u03af \u00ab\u03a1\u03ce\u03c4\u03b7\u03c3\u03ad \u03bc\u03b1\u03c2\u00bb -->\n<div class=\"step\" id=\"emOtherStep\" style=\"display:none\">\n<button type=\"button\" class=\"btn btn-secondary\" id=\"emOtherBack\" style=\"padding:.5rem 1.1rem;font-size:.9rem;margin-bottom:1rem\">\u2190 Zur\u00fcck zum Ratgeber<\/button>\n<h3><span class=\"step-num\">\u2795<\/span>Sagen Sie uns, was Sie brauchen<\/h3>\n<p style=\"margin:.2rem 0 1rem;color:var(--em-muted,#6b6a64)\">Ihre Verwendung oder Kultur nicht in der Liste gefunden? Schreiben Sie uns, und unser Team empfiehlt Ihnen <strong>kostenlos<\/strong> die genaue Dosierung der Effektiven Mikroorganismen.<\/p>\n<label class=\"qty-label\" for=\"emOtherCrop\">Welche Verwendung \/ Kultur m\u00f6chten Sie?<\/label>\n<input type=\"text\" id=\"emOtherCrop\" class=\"qty-input\" placeholder=\"z. B. Bienenv\u00f6lker, Fischzucht, Sonderkultur\u2026\" autocomplete=\"off\">\n<div style=\"margin-top:1rem\">\n<label class=\"qty-label\" for=\"emOtherDetails\">Details <span style=\"font-weight:400;color:var(--em-muted,#6b6a64)\">(optional)<\/span><\/label>\n<textarea id=\"emOtherDetails\" class=\"qty-input\" rows=\"3\" placeholder=\"z. B. Fl\u00e4che\/Anzahl der Tiere, Ziel, Anwendungsh\u00e4ufigkeit\u2026\"><\/textarea>\n<\/div>\n<div class=\"contact-box\">\n<strong class=\"ttl\">\ud83d\udce9 Senden Sie uns Ihre Anfrage<\/strong>\n<span class=\"opt-desc\" style=\"margin-bottom:.25rem\">Sie erhalten einen individuellen Dosierungsvorschlag f\u00fcr Ihren Fall.<\/span>\n<div class=\"contact-btns\">\n<a id=\"emOtherWhatsapp\" href=\"https:\/\/wa.me\/306985838343\" class=\"btn btn-secondary\" target=\"_blank\" rel=\"noopener\">\ud83d\udcac WhatsApp<\/a>\n<a id=\"emOtherViber\" href=\"viber:\/\/chat?number=306985838343\" class=\"btn btn-secondary\">\ud83d\udfe3 Viber<\/a>\n<a id=\"emOtherEmail\" href=\"mailto:info@zeolife.gr\" class=\"btn btn-secondary\">\u2709\ufe0f Email<\/a>\n<a href=\"tel:+302311295520\" class=\"btn btn-secondary\">\ud83d\udcde 2311 29 55 20<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"actions\">\n<button type=\"button\" class=\"btn\" id=\"emCalculate\" disabled>\ud83d\udccb Dosierung ansehen<\/button>\n<button type=\"button\" class=\"btn btn-secondary\" id=\"emReset\">\ud83d\udd04 Zur\u00fccksetzen<\/button>\n<button type=\"button\" class=\"btn btn-print\" id=\"emPrint\">\ud83d\udda8\ufe0f Drucken<\/button>\n<\/div>\n<!-- RESULT -->\n<div class=\"result\" id=\"emResult\">\n<div class=\"print-only\" style=\"text-align:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #2a9ca0;\">\n<img decoding=\"async\" src=\"https:\/\/zeolife.gr\/wp-content\/uploads\/2019\/11\/logo-zeolife-hor.svg\" alt=\"Zeolife.gr\" data-no-lazy=\"1\" class=\"skip-lazy\" style=\"max-width:280px;height:auto;margin:0 auto 0.5rem;display:block;\">\n<h2 style=\"color:#26231e;margin:0;font-size:1.2rem;\">Programm der Effektiven Mikroorganismen<\/h2>\n<p style=\"margin:0.3rem 0 0;font-size:0.9rem;color:#6b6a64;\"><a href=\"https:\/\/zeolife.gr\/de\/\">www.<span translate=\"no\" data-zgt-g=\"1\">Zeolife.gr<\/span><\/a> \u00b7 \u260e 2311 29 55 20 \u00b7 \u2709 info@<span translate=\"no\" data-zgt-g=\"1\">Zeolife.gr<\/span><\/p>\n<p style=\"margin:0.3rem 0 0;font-size:0.8rem;color:#6b6a64;font-style:italic;\">Berechnungsdatum: <span id=\"emPrintDate\"><\/span><\/p>\n<\/div>\n<h3>Ihre individuelle Empfehlung<\/h3>\n<div id=\"emResultBody\"><\/div>\n<\/div>\n<\/div>\n<script>\n(function(){\n  \/\/ ===== PRODUCTS =====\n  \/\/ Both EM-Active and FKE have same 3-tier pricing\n  var products = {\n    em_active: {\n      name: 'EM-Active',\n      brand: 'Multikraft\u00ae',\n      desc: 'Effektive Mikroorganismen f\u00fcr Landwirtschaft, Garten, Kompost, Haushalt und Stallhygiene. Nat\u00fcrlicher Bodenverst\u00e4rker mit lebenden Kulturen.',\n      url: 'https:\/\/shop.zeolife.gr\/product\/em-active\/',\n      packages: [\n        { lit: 1,  price: 10,  label: '1 Liter',   pricePerLit: 10 },\n        { lit: 5,  price: 36,  label: '5 Liter',  pricePerLit: 7.20 },\n        { lit: 25, price: 125, label: '25 Liter', pricePerLit: 5.00 }\n      ]\n    },\n    fke: {\n      name: 'FKE (EM + Kr\u00e4uter)',\n      brand: 'Multikraft\u00ae',\n      desc: 'Fl\u00fcssiges Futtererg\u00e4nzungsmittel mit Effektiven Mikroorganismen und Extrakten aus 10 Bio-Kr\u00e4utern. F\u00fcr Rinder, Schweine, Schafe und Ziegen, Pferde, Gefl\u00fcgel und Tauben. Wird \u00fcber das Futter oder das Trinkwasser verabreicht. Zertifiziert f\u00fcr die \u00f6kologische Tierhaltung.',\n      url: 'https:\/\/shop.zeolife.gr\/product\/fke\/',\n      packages: [\n        { lit: 1,  price: 10,  label: '1 Liter',   pricePerLit: 10 },\n        { lit: 5,  price: 36,  label: '5 Liter',  pricePerLit: 7.20 },\n        { lit: 25, price: 125, label: '25 Liter', pricePerLit: 5.00 }\n      ]\n    }\n  };\n  \/\/ ===== USE CASE CONFIG =====\n  \/\/ For each use case: which product, sub-options, qty inputs, dosage calculation\n  var useCases = {\n    crops: {\n      product: 'em_active',\n      title: '\ud83c\udf3e Kulturen',\n      subOptions: [\n        { value: 'low_organic',  label: 'Niedriger Gehalt an organischer Substanz (toter Boden)', litPerStremmaWeek: 3 },\n        { value: 'med_organic',  label: 'Mittlerer Gehalt an organischer Substanz', litPerStremmaWeek: 2 },\n        { value: 'high_organic', label: 'Hoher Gehalt an organischer Substanz (reich)', litPerStremmaWeek: 1 }\n      ],\n      qty: { label: 'Fl\u00e4che (Stremma)', placeholder: 'z. B. 5', unit: 'Stremma' },\n      applyEvery: 7, \/\/ weekly\n      durationLabel: 'Spritzzeitraum (Tage)'\n    },\n    trees: {\n      product: 'em_active',\n      title: '\ud83c\udf33 Baumkulturen',\n      subOptions: [\n        { value: 'low',  label: 'Wenige Anwendungen (4\u00d7\/Jahr)', litPerStremmaApp: 2, appsPerYear: 4 },\n        { value: 'high', label: 'Viele Anwendungen (6\u00d7\/Jahr)', litPerStremmaApp: 1.5, appsPerYear: 6 }\n      ],\n      qty: { label: 'Fl\u00e4che (Stremma)', placeholder: 'z. B. 10', unit: 'Stremma' },\n      durationLabel: 'Zeitraum (in der Regel 365 Tage = 1 Jahr)'\n    },\n    garden: {\n      product: 'em_active',\n      title: '\ud83e\udeb4 Garten\/Topfpflanzen',\n      subOptions: [\n        { value: 'weekly',  label: 'W\u00f6chentlich (1:200) \u2014 50 ml\/10 L Wasser', mlPerWeek: 50, applyEvery: 7 },\n        { value: 'each',    label: 'Bei jedem Gie\u00dfen (1:1000) \u2014 10 ml\/10 L Wasser', mlPerWeek: 10, applyEvery: 3, note: 'Etwa alle 3 Tage' }\n      ],\n      qty: { label: 'Liter Gie\u00dfwasser pro Anwendung', placeholder: 'z. B. 50', unit: 'Liter Wasser' },\n      durationLabel: 'Gie\u00dfdauer (Tage)'\n    },\n    compost: {\n      product: 'em_active',\n      title: '\ud83c\udf31 Kompostierung',\n      subOptions: [\n        { value: 'initial',  label: 'Erstes Ansetzen \u2014 1 L\/m\u00b3 Kompost', litPerM3: 1, oneTime: true, qtyLabel: 'Kompostvolumen (m\u00b3)', qtyUnit: 'm\u00b3' },\n        { value: 'refresh',  label: 'Auffrischung \u2014 0,1 L pro Materialzugabe', litPerAddition: 0.1, perAddition: true, qtyLabel: 'Anzahl der Materialzugaben', qtyUnit: 'Zugaben' }\n      ],\n      qty: { label: 'Kompostvolumen (m\u00b3) oder Anzahl der Zugaben', placeholder: 'z. B. 2', unit: '' },\n      durationLabel: 'Keine Dauer erforderlich \u2014 eine Anwendung'\n    },\n    livestock: {\n      product: 'fke',\n      title: '\ud83d\udc04 Tierhaltung (FKE)',\n      \/\/ route: 'feed' (\u03c3\u03c4\u03b7\u03bd \u03c4\u03c1\u03bf\u03c6\u03ae) \u03ae 'water' (\u03c3\u03c4\u03bf \u03c0\u03cc\u03c3\u03b9\u03bc\u03bf \u03bd\u03b5\u03c1\u03cc).\n      \/\/  - \u0396\u03ce\u03b1 \u03bc\u03b5 \u03b4\u03cc\u03c3\u03b7 \u03b1\u03bd\u03ac \u03b6\u03ce\u03bf\/\u03b7\u03bc\u03ad\u03c1\u03b1 (\u03b2\u03bf\u03bf\u03b5\u03b9\u03b4\u03ae, \u03c0\u03c1\u03cc\u03b2\u03b1\u03c4\u03b1, \u03ac\u03bb\u03bf\u03b3\u03b1): \u0399\u0394\u0399\u0391 \u03c0\u03bf\u03c3\u03cc\u03c4\u03b7\u03c4\u03b1 \u03ba\u03b1\u03b9 \u03c3\u03c4\u03bf\u03c5\u03c2 \u03b4\u03cd\u03bf \u03c4\u03c1\u03cc\u03c0\u03bf\u03c5\u03c2.\n      \/\/  - \u03a7\u03bf\u03af\u03c1\u03bf\u03b9: \u03c4\u03c1\u03bf\u03c6\u03ae 7 L\/\u03c4\u03cc\u03bd\u03bf \u2192 \u03bd\u03b5\u03c1\u03cc 3 L\/\u03c4\u03cc\u03bd\u03bf (litPerTonFeedWater).\n      \/\/  - \u03a0\u03bf\u03c5\u03bb\u03b5\u03c1\u03b9\u03ba\u03ac & \u03c0\u03b5\u03c1\u03b9\u03c3\u03c4\u03ad\u03c1\u03b9\u03b1: \u0399\u0394\u0399\u0391 \u03b4\u03cc\u03c3\u03b7 \u03c3\u03b5 \u03c4\u03c1\u03bf\u03c6\u03ae & \u03bd\u03b5\u03c1\u03cc (5-7 L\/\u03c4\u03cc\u03bd\u03bf \u03c4\u03c1\u03bf\u03c6\u03ae\u03c2).\n      \/\/  - waterLPerAnimalDay: \u03bc\u03ad\u03c3\u03b7 \u03b7\u03bc\u03b5\u03c1\u03ae\u03c3\u03b9\u03b1 \u03ba\u03b1\u03c4\u03b1\u03bd\u03ac\u03bb\u03c9\u03c3\u03b7 \u03bd\u03b5\u03c1\u03bf\u03cd \u03b1\u03bd\u03ac \u03b6\u03ce\u03bf \u2014 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03b5\u03cd\u03b5\u03b9 \u039c\u039f\u039d\u039f\n      \/\/    \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b5\u03af\u03be\u03bf\u03c5\u03bc\u03b5 \u03c4\u03b7\u03bd \u03c0\u03c1\u03b1\u03ba\u03c4\u03b9\u03ba\u03ae \u03b1\u03bd\u03b1\u03bb\u03bf\u03b3\u03af\u03b1 \u00abml FKE \u03b1\u03bd\u03ac \u03bb\u03af\u03c4\u03c1\u03bf \u03c0\u03cc\u03c3\u03b9\u03bc\u03bf\u03c5 \u03bd\u03b5\u03c1\u03bf\u03cd\u00bb.\n      hasRoute: true,\n      subOptions: [\n        { value: 'cattle_dairy',  label: '\ud83d\udc04 Milchk\u00fche (75 ml\/Tier\/Tag)', mlPerAnimalDay: 75, waterLPerAnimalDay: 80, unitNoun: 'K\u00fche' },\n        { value: 'cattle_dairy_start', label: '\ud83d\udc04 Milchk\u00fche \u2014 Start im 1. Monat (150 ml\/Tier\/Tag)', mlPerAnimalDay: 150, waterLPerAnimalDay: 80, unitNoun: 'K\u00fche' },\n        { value: 'cattle_young', label: '\ud83d\udc2e Jungk\u00fche (45 ml\/Tier\/Tag)', mlPerAnimalDay: 45, waterLPerAnimalDay: 40, unitNoun: 'K\u00fche' },\n        { value: 'pigs',         label: '\ud83d\udc16 Schweine \u2014 Futter 7 \/ Wasser 3 L pro Tonne Futter', litPerTonFeed: 7, litPerTonFeedWater: 3, feedPerAnimalKg: 2.5, waterLPerAnimalDay: 8, unitNoun: 'Schweine' },\n        { value: 'poultry_meat', label: '\ud83d\udc14 Masth\u00fchner (5\u20137 L\/Tonne Futter)', litPerTonFeed: 6, feedPerAnimalKg: 0.12, waterLPerAnimalDay: 0.25, qtyLabel: 'Anzahl der Tiere', qtyUnit: 'Tiere', unitNoun: 'Tiere' },\n        { value: 'poultry_egg',  label: '\ud83d\udc13 Legehennen (5\u20137 L\/Tonne Futter)', litPerTonFeed: 6, feedPerAnimalKg: 0.13, waterLPerAnimalDay: 0.25, qtyLabel: 'Anzahl der Hennen', qtyUnit: 'Hennen', unitNoun: 'Hennen' },\n        { value: 'pigeons',      label: '\ud83d\udc26 Tauben (5\u20137 L\/Tonne Futter)', litPerTonFeed: 6, feedPerAnimalKg: 0.03, waterLPerAnimalDay: 0.05, qtyLabel: 'Anzahl der Tauben', qtyUnit: 'Tauben', unitNoun: 'Tauben' },\n        { value: 'sheep_goats',  label: '\ud83d\udc11 Schafe\/Ziegen (30 ml\/Tier\/Tag)', mlPerAnimalDay: 30, waterLPerAnimalDay: 6, unitNoun: 'Tiere' },\n        { value: 'horses',       label: '\ud83d\udc0e Pferde (50 ml\/Pferd\/Tag)', mlPerAnimalDay: 50, waterLPerAnimalDay: 30, unitNoun: 'Pferde' }\n      ],\n      qty: { label: 'Anzahl der Tiere', placeholder: 'z. B. 50', unit: 'Tiere' },\n      durationLabel: 'Dauer der Verabreichung (Tage)'\n    },\n    ensilage: {\n      product: 'fke',\n      title: '\ud83c\udf3d Silierung',\n      subOptions: [\n        { value: 'grass',   label: 'Gras\/Heu \u2014 1 L FKE\/m\u00b3', litPerM3: 1 },\n        { value: 'corn',    label: 'Mais \u2014 2 L FKE\/m\u00b3', litPerM3: 2 }\n      ],\n      qty: { label: 'Silagevolumen (m\u00b3)', placeholder: 'z. B. 50', unit: 'm\u00b3' },\n      durationLabel: 'Nicht erforderlich \u2014 eine Anwendung pro Silierung'\n    },\n    hygiene: {\n      product: 'em_active',\n      title: '\ud83d\udc14 Stallhygiene',\n      \/\/ \u03a0\u03a1\u039f\u03a3\u039f\u03a7\u0397: \u03c4\u03bf mlSolutionPerM2 \u03b5\u03af\u03bd\u03b1\u03b9 \u0395\u03a4\u039f\u0399\u039c\u039f \u0394\u0399\u0391\u039b\u03a5\u039c\u0391 (\u03bd\u03b5\u03c1\u03cc + EM), \u03cc\u03c7\u03b9 \u03ba\u03b1\u03b8\u03b1\u03c1\u03cc EM-Active.\n      \/\/ \u03a4\u03bf \u03ba\u03b1\u03b8\u03b1\u03c1\u03cc EM-Active = \u03b4\u03b9\u03ac\u03bb\u03c5\u03bc\u03b1 \u00d7 pctDilution (\u03c0.\u03c7. 100 ml\/m\u00b2 \u00d7 2% = 2 ml EM-Active\/m\u00b2).\n      subOptions: [\n        { value: 'low',   label: 'Leichte Desinfektion (1 % Verd\u00fcnnung) \u2014 50 ml L\u00f6sung\/m\u00b2', pctDilution: 0.01, mlSolutionPerM2: 50 },\n        { value: 'med',   label: 'Mittlere Desinfektion (2 % Verd\u00fcnnung) \u2014 100 ml L\u00f6sung\/m\u00b2', pctDilution: 0.02, mlSolutionPerM2: 100 },\n        { value: 'high',  label: 'Intensive Desinfektion (4 % Verd\u00fcnnung) \u2014 200 ml L\u00f6sung\/m\u00b2', pctDilution: 0.04, mlSolutionPerM2: 200 }\n      ],\n      qty: { label: 'Fl\u00e4che (m\u00b2)', placeholder: 'z. B. 200', unit: 'm\u00b2' },\n      applyEvery: 14, \/\/ bi-weekly typical\n      durationLabel: 'H\u00e4ufigkeit\/Dauer \u2014 Anwendung alle 2 Wochen'\n    },\n    home: {\n      product: 'em_active',\n      title: '\ud83c\udfe0 Haushalt \/ Reinigung',\n      subOptions: [\n        { value: 'air',         label: 'Raumklima \/ Ger\u00fcche \u2014 20 ml auf 1 L Wasser', mlPerLNeeded: 20, perL: 1, qtyLabel: 'Anzahl der Anwendungen', qtyUnit: 'Anwendungen' },\n        { value: 'furniture',   label: 'M\u00f6bel\/B\u00f6den\/Fliesen \u2014 10 ml auf 5 L Wasser', mlPerLNeeded: 10, perL: 5, qtyLabel: 'Anzahl der Anwendungen', qtyUnit: 'Anwendungen' },\n        { value: 'dust',        label: 'Staubbindung (antistatisch) \u2014 20 ml auf 5 L', mlPerLNeeded: 20, perL: 5, qtyLabel: 'Anzahl der Anwendungen', qtyUnit: 'Anwendungen' },\n        { value: 'odors',       label: 'Unangenehme Ger\u00fcche \u2014 20 ml auf 10 L', mlPerLNeeded: 20, perL: 10, qtyLabel: 'Anzahl der Anwendungen', qtyUnit: 'Anwendungen' },\n        { value: 'laundry',     label: 'W\u00e4sche waschen \u2014 10 ml\/Ladung', mlPerLoad: 10, isLoad: true, qtyLabel: 'Anzahl der Waschg\u00e4nge', qtyUnit: 'Waschg\u00e4nge' },\n        { value: 'drains',      label: 'Abflussrohre \u2014 unverd\u00fcnnt, 100 ml\/Monat', mlDirect: 100, monthly: true, qtyLabel: 'Anzahl der Abfl\u00fcsse', qtyUnit: 'Abfl\u00fcsse' }\n      ],\n      qty: { label: 'Anzahl der Anwendungen oder Liter Wasser', placeholder: 'z. B. 20', unit: '' },\n      durationLabel: 'Anwendungszeitraum (Tage)'\n    },\n    spray: {\n      product: 'em_active',\n      title: '\ud83d\udca8 Blattspritzung',\n      subOptions: [\n        { value: 'low',   label: '1 % Verd\u00fcnnung (10 ml\/L Wasser) \u2014 vorbeugend', pctDilution: 0.01 },\n        { value: 'med',   label: '2 % Verd\u00fcnnung (20 ml\/L Wasser) \u2014 nach einem Problem', pctDilution: 0.02 },\n        { value: 'high',  label: '4 % Verd\u00fcnnung (40 ml\/L Wasser) \u2014 intensiver Einsatz', pctDilution: 0.04 }\n      ],\n      qty: { label: 'Liter Spritzl\u00f6sung', placeholder: 'z. B. 200', unit: 'Liter L\u00f6sung' },\n      applyEvery: 14, \/\/ 7-30 days, average 14\n      durationLabel: 'Spritzzeitraum (in der Regel 90\u2013180 Tage Kulturdauer)'\n    }\n  };\n  \/\/ ===== NO VOLUME DISCOUNT \u03b3\u03b9\u03b1 EM \u03c0\u03c1\u03bf\u03ca\u03cc\u03bd\u03c4\u03b1 =====\n  function getVolumeDiscount(n20L) { return 0; }\n  \/\/ ===== ELEMENTS =====\n  var calc = document.getElementById('emCalc');\n  if (!calc) { return; }\n  var steps = calc.querySelectorAll('.step:not(#emOtherStep)');\n  var otherStep = document.getElementById('emOtherStep');\n  var actionsRow = calc.querySelector('.actions');\n  var tankSection = calc.querySelector('.tank-section'); \/\/ \u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc, \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03bc\u03b7\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9\n  var progressBar = document.getElementById('emProgress');\n  var calcBtn = document.getElementById('emCalculate');\n  var resetBtn = document.getElementById('emReset');\n  var printBtn = document.getElementById('emPrint');\n  var resultBox = document.getElementById('emResult');\n  var resultBody = document.getElementById('emResultBody');\n  var subContainer = document.getElementById('emSubContainer');\n  var qtyContainer = document.getElementById('emQtyContainer');\n  var customDaysInput = document.getElementById('emCustomDays');\n  var durationNote = document.getElementById('emDurationNote');\n  var MUTED = 'var(--em-muted,#6b6a64)';\n  \/\/ ===== HELPERS =====\n  function each(list, fn) { Array.prototype.forEach.call(list, fn); }\n  \/\/ FIX: \u03c4\u03bf \u03c0\u03b1\u03bb\u03b9\u03cc isPositive \u03b4\u03b5\u03c7\u03cc\u03c4\u03b1\u03bd \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u2014 Number('abc') <= 0 \u03b5\u03af\u03bd\u03b1\u03b9 false (NaN).\n  function isPositive(v) {\n    if (v === null || v === undefined || v === '') return false;\n    var n = Number(v);\n    if (!isFinite(n)) { return false; }\n    return n > 0;\n  }\n  function getChecked(name) {\n    var el = calc.querySelector('input[name=\"' + name + '\"]:checked');\n    return el ? el.value : null;\n  }\n  function getVal(id) {\n    var el = document.getElementById(id);\n    return el ? el.value : null;\n  }\n  \/\/ \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ae \u03bc\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd (\u03c5\u03c0\u03bf\u03b4\u03b9\u03b1\u03c3\u03c4\u03bf\u03bb\u03ae \u03bc\u03b5 \u03ba\u03cc\u03bc\u03bc\u03b1, \u03c7\u03c9\u03c1\u03af\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c4\u03c4\u03ac \u03bc\u03b7\u03b4\u03b5\u03bd\u03b9\u03ba\u03ac)\n  function fmtNum(n, dec) {\n    if (dec === undefined || dec === null) dec = 2;\n    var s = Number(n).toFixed(dec);\n    if (s.indexOf('.') !== -1) { s = s.replace(\/(\\.\\d*?)0+$\/, '$1').replace(\/\\.$\/, ''); }\n    return s.replace('.', ',');\n  }\n  function fmtL(ml) {\n    if (ml >= 1000) return fmtNum(ml \/ 1000, 2) + ' L';\n    return fmtNum(ml, ml < 10 ? 2 : 0) + ' ml';\n  }\n  function fmtEuro(n) {\n    return '\u20ac' + n.toFixed(2).replace('.', ',');\n  }\n  function getSubData(uc, sub) {\n    var ucData = useCases[uc];\n    if (!ucData || !sub) return null;\n    for (var i = 0; i < ucData.subOptions.length; i++) {\n      if (ucData.subOptions[i].value === sub) return ucData.subOptions[i];\n    }\n    return null;\n  }\n  \/\/ ===== \"FRAGEN SIE UNS\" \u2014 MODE \u0391\u0399\u03a4\u0397\u039c\u0391\u03a4\u039f\u03a3 =====\n  function updateOtherLinks() {\n    var cropEl = document.getElementById('emOtherCrop');\n    var detEl = document.getElementById('emOtherDetails');\n    var cropName = cropEl ? cropEl.value.trim() : '';\n    var details = detEl ? detEl.value.trim() : '';\n    var msg = 'Guten Tag! Ich h\u00e4tte gern einen individuellen Dosierungsvorschlag f\u00fcr Effektive Mikroorganismen (EM) f\u00fcr: ' + (cropName || '[Anwendung\/Kultur eintragen]');\n    if (details) { msg += '. Weitere Angaben: ' + details; }\n    var wa = document.getElementById('emOtherWhatsapp');\n    var vb = document.getElementById('emOtherViber');\n    var em = document.getElementById('emOtherEmail');\n    if (wa) { wa.href = 'https:\/\/wa.me\/306985838343?text=' + encodeURIComponent(msg); }\n    if (vb) { vb.href = 'viber:\/\/chat?number=' + encodeURIComponent('306985838343') + '&#038;text=' + encodeURIComponent(msg); }\n    if (em) { em.href = 'mailto:info@zeolife.gr?subject=' + encodeURIComponent('EM-Dosierungsanfrage' + (cropName ? (' \u2013 ' + cropName) : '')) + '&#038;body=' + encodeURIComponent(msg); }\n  }\n  function enterOtherMode() {\n    each(steps, function(s) { s.style.display = 'none'; s.classList.remove('active'); });\n    if (actionsRow) { actionsRow.style.display = 'none'; }\n    if (tankSection) { tankSection.style.display = 'none'; }\n    resultBox.classList.remove('show');\n    if (otherStep) {\n      otherStep.style.display = '';\n      otherStep.classList.add('active');\n      otherStep.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    }\n    progressBar.style.width = '100%';\n    calcBtn.disabled = true;\n    updateOtherLinks();\n  }\n  function exitOtherMode() {\n    each(steps, function(s) { s.style.display = ''; });\n    if (actionsRow) { actionsRow.style.display = ''; }\n    if (tankSection) { tankSection.style.display = ''; }\n    if (otherStep) { otherStep.style.display = 'none'; otherStep.classList.remove('active'); }\n  }\n  \/\/ ===== RENDER SUB-OPTIONS =====\n  function renderSubStep(uc) {\n    if (!uc) {\n      subContainer.innerHTML = '<p style=\"color:' + MUTED + ';font-style:italic;\">W\u00e4hlen Sie zuerst in Schritt 1 eine Anwendung aus.<\/p>';\n      return;\n    }\n    var ucData = useCases[uc];\n    if (!ucData) return;\n    var html = '<div class=\"options cols-2\">';\n    for (var i = 0; i < ucData.subOptions.length; i++) {\n      var s = ucData.subOptions[i];\n      html += '<label class=\"option\"><input type=\"radio\" name=\"subOption\" value=\"' + s.value + '\">';\n      html += '<span class=\"opt-title\">' + s.label.split(' \u2014 ')[0] + '<\/span>';\n      var descPart = s.label.indexOf(' \u2014 ') !== -1 ? s.label.split(' \u2014 ')[1] : '';\n      if (descPart) html += '<span class=\"opt-desc\">' + descPart + '<\/span>';\n      html += '<\/label>';\n    }\n    html += '<\/div>';\n    \/\/ \u03a5\u03b3\u03b9\u03b5\u03b9\u03bd\u03ae \u03b5\u03ba\u03c4\u03c1\u03bf\u03c6\u03b5\u03af\u03c9\u03bd: \u03be\u03b5\u03ba\u03b1\u03b8\u03b1\u03c1\u03af\u03b6\u03bf\u03c5\u03bc\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03b1 ml\/m\u00b2 \u03b1\u03c6\u03bf\u03c1\u03bf\u03cd\u03bd \u0395\u03a4\u039f\u0399\u039c\u039f \u0394\u0399\u0391\u039b\u03a5\u039c\u0391\n    if (uc === 'hygiene') {\n      html += '<p class=\"sublabel\">\ud83d\udca7 Die ml\/m\u00b2 beziehen sich auf die <strong>gebrauchsfertige (verd\u00fcnnte) L\u00f6sung<\/strong>. Das reine EM-Active ist der Verd\u00fcnnungsanteil darin \u2014 z. B. 100 ml L\u00f6sung\/m\u00b2 bei 2 % = <strong>2 ml EM-Active\/m\u00b2<\/strong>.<\/p>';\n    }\n    \/\/ ===== \u03a4\u03a1\u039f\u03a0\u039f\u03a3 \u03a7\u039f\u03a1\u0397\u0393\u0397\u03a3\u0397\u03a3 (\u03bc\u03cc\u03bd\u03bf \u039a\u03c4\u03b7\u03bd\u03bf\u03c4\u03c1\u03bf\u03c6\u03af\u03b1): \u03c4\u03c1\u03bf\u03c6\u03ae \u03ae \u03c0\u03cc\u03c3\u03b9\u03bc\u03bf \u03bd\u03b5\u03c1\u03cc =====\n    if (ucData.hasRoute) {\n      html += '<div style=\"margin-top:1.1rem\">';\n      html += '<label class=\"qty-label\">\ud83d\udca7 Art der FKE-Verabreichung<\/label>';\n      html += '<div class=\"options cols-2\">';\n      html += '<label class=\"option\"><input type=\"radio\" name=\"feedRoute\" value=\"feed\">';\n      html += '<span class=\"opt-title\">\ud83e\udd63 Im Futter<\/span><span class=\"opt-desc\">Aufspr\u00fchen\/Untermischen ins Futter<\/span><\/label>';\n      html += '<label class=\"option\"><input type=\"radio\" name=\"feedRoute\" value=\"water\">';\n      html += '<span class=\"opt-title\">\ud83d\udca7 Im Trinkwasser<\/span><span class=\"opt-desc\">Im Tageswasser aufl\u00f6sen<\/span><\/label>';\n      html += '<\/div>';\n      html += '<p class=\"sublabel\">Beide Arten sind offiziell (Multikraft\u00ae) \u2014 w\u00e4hlen Sie die, die zu Ihrem Betrieb passt. Bei Gefl\u00fcgel und Tauben ist die Dosis bei beiden Arten <strong>gleich<\/strong>.<\/p>';\n      html += '<\/div>';\n    }\n    subContainer.innerHTML = html;\n    each(subContainer.querySelectorAll('input'), function(inp) {\n      inp.addEventListener('change', function() {\n        \/\/ \u039f\u03b9 \u03b5\u03c4\u03b9\u03ba\u03ad\u03c4\u03b5\u03c2 \u03c0\u03bf\u03c3\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03b1\u03bb\u03bb\u03ac\u03b6\u03bf\u03c5\u03bd \u03b1\u03bd\u03ac \u03c5\u03c0\u03bf-\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae (\u03c0.\u03c7. \u00ab\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03b9\u03ce\u03bd\u00bb)\n        renderQtyStep(getChecked('useCase'), getChecked('subOption'));\n        updateProgress();\n      });\n    });\n  }\n  function renderQtyStep(uc, sub) {\n    if (!uc) {\n      qtyContainer.innerHTML = '<p style=\"color:' + MUTED + ';font-style:italic;\">W\u00e4hlen Sie zuerst eine Anwendung aus.<\/p>';\n      return;\n    }\n    var ucData = useCases[uc];\n    var subData = getSubData(uc, sub);\n    var label = (subData ? subData.qtyLabel : false) ? subData.qtyLabel : ucData.qty.label;\n    var unit  = (subData ? (subData.qtyUnit !== undefined) : false) ? subData.qtyUnit  : ucData.qty.unit;\n    var prevEl = document.getElementById('emQty');\n    var prevVal = prevEl ? prevEl.value : '';\n    var html = '<label class=\"qty-label\" for=\"emQty\">' + label + '<\/label>';\n    html += '<input type=\"number\" id=\"emQty\" class=\"qty-input\" min=\"0\" step=\"0.1\" placeholder=\"' + ucData.qty.placeholder + '\">';\n    if (unit) html += '<p class=\"sublabel\">Einheit: ' + unit + '<\/p>';\n    qtyContainer.innerHTML = html;\n    var inp = document.getElementById('emQty');\n    if (inp) {\n      if (prevVal) inp.value = prevVal; \/\/ \u03ba\u03c1\u03b1\u03c4\u03ac\u03bc\u03b5 \u03cc,\u03c4\u03b9 \u03ad\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7 \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03ae\u03c3\u03b5\u03b9 \u03bf \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2\n      inp.addEventListener('input', updateProgress);\n    }\n    \/\/ Update duration note\n    if (durationNote ? ucData.durationLabel : false) {\n      durationNote.innerHTML = '\ud83d\udca1 ' + ucData.durationLabel;\n    }\n  }\n  \/\/ ===== VALIDATION =====\n  function isFormValid() {\n    var uc = getChecked('useCase');\n    if (!uc) return false;\n    if (uc === 'other') return false;\n    if (!getChecked('subOption')) return false;\n    \/\/ \u039a\u03c4\u03b7\u03bd\u03bf\u03c4\u03c1\u03bf\u03c6\u03af\u03b1: \u03b1\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03ba\u03b1\u03b9 \u03bf \u03c4\u03c1\u03cc\u03c0\u03bf\u03c2 \u03c7\u03bf\u03c1\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 (\u03c4\u03c1\u03bf\u03c6\u03ae\/\u03bd\u03b5\u03c1\u03cc)\n    if ((useCases[uc] ? useCases[uc].hasRoute : false) ? !getChecked('feedRoute') : false) return false;\n    if (!isPositive(getVal('emQty'))) return false;\n    \/\/ Duration not required for one-time use cases\n    if (uc === 'compost' || uc === 'ensilage') return true;\n    if (!getChecked('duration')) {\n      if (!isPositive(getVal('emCustomDays'))) return false;\n    }\n    return true;\n  }\n  \/\/ ===== PROGRESS =====\n  function updateProgress() {\n    var uc = getChecked('useCase');\n    \/\/ \u00ab\u03a1\u03ce\u03c4\u03b7\u03c3\u03ad \u03bc\u03b1\u03c2\u00bb \u2192 mode \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2, \u03cc\u03c7\u03b9 \u03c5\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03cc\u03c2. \u03a4\u03bf \u03c7\u03b5\u03b9\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03c4\u03bf enterOtherMode().\n    if (uc === 'other') { return; }\n    var needsRoute = !!(uc ? (useCases[uc] ? useCases[uc].hasRoute : false) : false);\n    var filled = 0;\n    if (uc) filled++;\n    \/\/ \u03a4\u03bf \u0392\u03ae\u03bc\u03b1 2 \u03bc\u03b5\u03c4\u03c1\u03ac\u03b5\u03b9 \u03c9\u03c2 \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03c9\u03bc\u03ad\u03bd\u03bf \u03bc\u03cc\u03bd\u03bf \u03cc\u03c4\u03b1\u03bd \u03ad\u03c7\u03b5\u03b9 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03b5\u03af \u03c5\u03c0\u03bf-\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae\n    \/\/ \u039a\u0391\u0399 (\u03b3\u03b9\u03b1 \u03ba\u03c4\u03b7\u03bd\u03bf\u03c4\u03c1\u03bf\u03c6\u03af\u03b1) \u03bf \u03c4\u03c1\u03cc\u03c0\u03bf\u03c2 \u03c7\u03bf\u03c1\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2.\n    var subOk = !!getChecked('subOption');\n    if (needsRoute ? !getChecked('feedRoute') : false) subOk = false;\n    if (subOk) filled++;\n    if (isPositive(getVal('emQty'))) filled++;\n    if (uc === 'compost' || uc === 'ensilage') {\n      \/\/ No duration needed\n      if (filled === 3) filled = 4;\n    } else {\n      if (getChecked('duration') || isPositive(getVal('emCustomDays'))) filled++;\n    }\n    progressBar.style.width = (filled \/ 4 * 100) + '%';\n    each(steps, function(s, i) {\n      var isActive = (i === filled) || (i === filled - 1);\n      s.classList.toggle('active', isActive);\n    });\n    calcBtn.disabled = !isFormValid();\n  }\n  \/\/ ===== LISTENERS =====\n  each(calc.querySelectorAll('input[name=\"useCase\"]'), function(r) {\n    r.addEventListener('change', function() {\n      if (r.value === 'other') {\n        enterOtherMode();\n      } else {\n        exitOtherMode();\n        renderSubStep(r.value);\n        renderQtyStep(r.value, null);\n      }\n      updateProgress();\n    });\n  });\n  each(calc.querySelectorAll('input[name=\"duration\"]'), function(r) {\n    r.addEventListener('change', function() {\n      if (customDaysInput) customDaysInput.value = '';\n      updateProgress();\n    });\n  });\n  if (customDaysInput) {\n    customDaysInput.addEventListener('input', function() {\n      if (isPositive(customDaysInput.value)) {\n        each(calc.querySelectorAll('input[name=\"duration\"]'), function(r) { r.checked = false; });\n      }\n      updateProgress();\n    });\n  }\n  \/\/ Live-update \u03c4\u03c9\u03bd \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03c9\u03bd WhatsApp\/Viber\/Email \u03ba\u03b1\u03b8\u03ce\u03c2 \u03b3\u03c1\u03ac\u03c6\u03b5\u03b9 \u03bf \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7\u03c2\n  each(['emOtherCrop', 'emOtherDetails'], function(id) {\n    var el = document.getElementById(id);\n    if (el) { el.addEventListener('input', updateOtherLinks); }\n  });\n  \/\/ \u00ab\u2190 \u03a0\u03af\u03c3\u03c9 \u03c3\u03c4\u03bf\u03bd \u03bf\u03b4\u03b7\u03b3\u03cc\u00bb\n  var otherBackBtn = document.getElementById('emOtherBack');\n  if (otherBackBtn) {\n    otherBackBtn.addEventListener('click', function() {\n      var otherRadio = calc.querySelector('input[name=\"useCase\"][value=\"other\"]');\n      if (otherRadio) { otherRadio.checked = false; }\n      exitOtherMode();\n      updateProgress();\n      steps[0].classList.add('active');\n      steps[0].scrollIntoView({ behavior: 'smooth', block: 'start' });\n    });\n  }\n  resetBtn.addEventListener('click', function() {\n    each(calc.querySelectorAll('input[type=\"radio\"]'), function(r) { r.checked = false; });\n    each(calc.querySelectorAll('input[type=\"number\"]'), function(r) { r.value = ''; });\n    var oc = document.getElementById('emOtherCrop'); if (oc) oc.value = '';\n    var od = document.getElementById('emOtherDetails'); if (od) od.value = '';\n    exitOtherMode();\n    subContainer.innerHTML = '<p style=\"color:' + MUTED + ';font-style:italic;\">W\u00e4hlen Sie zuerst in Schritt 1 eine Anwendung aus.<\/p>';\n    qtyContainer.innerHTML = '<p style=\"color:' + MUTED + ';font-style:italic;\">W\u00e4hlen Sie zuerst eine Anwendung aus.<\/p>';\n    resultBox.classList.remove('show');\n    updateProgress();\n    steps[0].classList.add('active');\n    steps[0].scrollIntoView({ behavior: 'smooth', block: 'start' });\n  });\n  printBtn.addEventListener('click', function() {\n    if (!resultBox.classList.contains('show')) {\n      alert('Bitte berechnen Sie zuerst die Dosierung.');\n      return;\n    }\n    var dateEl = document.getElementById('emPrintDate');\n    if (dateEl) {\n      var now = new Date();\n      dateEl.textContent = now.toLocaleDateString('el-GR', { day: '2-digit', month: 'long', year: 'numeric' });\n    }\n    window.print();\n  });\n  \/\/ ===== SMART PACKAGING (1L + 5L + 25L combo) =====\n  \/\/ Find cheapest combo that covers totalLit\n  function smartPackaging(totalLit, productKey) {\n    var p = products[productKey];\n    var pkgs = p.packages; \/\/ [1L, 5L, 25L]\n    var p1 = pkgs[0];\n    var p5 = pkgs[1];\n    var p20 = pkgs[2];\n    var best = null;\n    var max20 = Math.ceil(totalLit \/ p20.lit) + 1;\n    for (var n20 = 0; n20 <= max20; n20++) {\n      var after20 = totalLit - n20 * p20.lit;\n      if (after20 < 0) after20 = 0;\n      var max5 = Math.ceil(after20 \/ 5) + 1;\n      for (var n5 = 0; n5 <= max5; n5++) {\n        var after5 = after20 - n5 * 5;\n        if (after5 < 0) after5 = 0;\n        var n1 = Math.ceil(after5 - 1e-9);\n        if (n1 < 0) n1 = 0;\n        var coveredLit = n20 * p20.lit + n5 * 5 + n1;\n        if (coveredLit < totalLit - 1e-9) continue;\n        if (n20 + n5 + n1 === 0) continue;\n        var discount = getVolumeDiscount(n20);\n        var cost = n20 * p20.price * (1 - discount) + n5 * p5.price + n1 * p1.price;\n        if (!best || cost < best.cost) {\n          var combo = [];\n          if (n20 > 0) combo.push({ pkg: p20, qty: n20, discount: discount, lineCost: n20 * p20.price * (1 - discount), baseCost: n20 * p20.price });\n          if (n5 > 0)  combo.push({ pkg: p5,  qty: n5,  discount: 0,        lineCost: n5 * p5.price,  baseCost: n5 * p5.price });\n          if (n1 > 0)  combo.push({ pkg: p1,  qty: n1,  discount: 0,        lineCost: n1 * p1.price,  baseCost: n1 * p1.price });\n          best = { combo: combo, cost: cost, coveredLit: coveredLit, n20: n20, discount: discount };\n        }\n      }\n    }\n    \/\/ \u0391\u03c3\u03c6\u03ac\u03bb\u03b5\u03b9\u03b1: \u03b1\u03bd \u03b3\u03b9\u03b1 \u03bf\u03c0\u03bf\u03b9\u03bf\u03bd\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03bb\u03cc\u03b3\u03bf \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5 \u03c3\u03c5\u03bd\u03b4\u03c5\u03b1\u03c3\u03bc\u03cc\u03c2, \u03c0\u03ad\u03c6\u03c4\u03bf\u03c5\u03bc\u03b5 \u03c3\u03b5 1\u00d7 1L.\n    if (!best) {\n      best = { combo: [{ pkg: p1, qty: 1, discount: 0, lineCost: p1.price, baseCost: p1.price }], cost: p1.price, coveredLit: 1, n20: 0, discount: 0 };\n    }\n    var baseTotal = 0;\n    for (var i = 0; i < best.combo.length; i++) baseTotal += best.combo[i].baseCost;\n    return {\n      product: p,\n      productKey: productKey,\n      totalLit: totalLit,\n      combo: best.combo,\n      coveredLit: best.coveredLit,\n      basePrice: baseTotal,\n      discount: best.discount,\n      finalPrice: best.cost,\n      n20: best.n20\n    };\n  }\n  \/\/ ===== CALCULATE TOTAL LITERS NEEDED =====\n  function calculateTotalLit(uc, sub, qty, days, route) {\n    var ucData = useCases[uc];\n    var subData = getSubData(uc, sub);\n    if (!subData) return { totalLit: 0, breakdown: '' };\n    var totalLit = 0;\n    var breakdown = '';\n    var extra = null; \/\/ \u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac \u03b5\u03c0\u03b9\u03c0\u03bb\u03ad\u03bf\u03bd \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 (\u03c0.\u03c7. \u03c3\u03c5\u03bd\u03c4\u03b1\u03b3\u03ae \u03b1\u03c1\u03b1\u03af\u03c9\u03c3\u03b7\u03c2)\n    if (uc === 'crops') {\n      var weeks = Math.ceil(days \/ 7);\n      totalLit = qty * subData.litPerStremmaWeek * weeks;\n      breakdown = qty + ' Stremma \u00d7 ' + fmtNum(subData.litPerStremmaWeek, 1) + ' L\/Woche \u00d7 ' + weeks + ' Wochen = <strong>' + fmtNum(totalLit, 1) + ' L<\/strong>';\n    } else if (uc === 'trees') {\n      var apps = subData.appsPerYear;\n      \/\/ Scale by days proportional to year (365)\n      var actualApps = Math.max(1, Math.round(apps * days \/ 365));\n      totalLit = qty * subData.litPerStremmaApp * actualApps;\n      breakdown = qty + ' Stremma \u00d7 ' + fmtNum(subData.litPerStremmaApp, 1) + ' L\/Anwendung \u00d7 ' + actualApps + ' Anwendungen (statt ' + apps + '\/Jahr, angepasst an ' + days + ' Tage) = <strong>' + fmtNum(totalLit, 1) + ' L<\/strong>';\n    } else if (uc === 'garden') {\n      var appsG = Math.ceil(days \/ subData.applyEvery);\n      var mlPerApp = qty * subData.mlPerWeek \/ 10; \/\/ qty = lit \u03bd\u03b5\u03c1\u03bf\u03cd, dosage is ml per 10L water\n      totalLit = (mlPerApp * appsG) \/ 1000; \/\/ ml to L\n      breakdown = qty + ' L Wasser \u00d7 ' + subData.mlPerWeek + ' ml pro 10 L \u00d7 ' + appsG + ' Anwendungen = <strong>' + fmtNum(totalLit, 2) + ' L EM-Active<\/strong>';\n    } else if (uc === 'compost') {\n      if (subData.oneTime) {\n        totalLit = qty * subData.litPerM3;\n        breakdown = qty + ' m\u00b3 \u00d7 ' + fmtNum(subData.litPerM3, 1) + ' L\/m\u00b3 = <strong>' + fmtNum(totalLit, 1) + ' L<\/strong>';\n      } else {\n        totalLit = qty * subData.litPerAddition;\n        breakdown = qty + ' Zugaben \u00d7 ' + fmtNum(subData.litPerAddition, 2) + ' L\/Zugabe = <strong>' + fmtNum(totalLit, 2) + ' L<\/strong>';\n      }\n    } else if (uc === 'livestock') {\n      \/\/ \u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03c4\u03c1\u03cc\u03c0\u03bf\u03c5 \u03c7\u03bf\u03c1\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2: 'feed' (\u03c4\u03c1\u03bf\u03c6\u03ae) \u03ae 'water' (\u03c0\u03cc\u03c3\u03b9\u03bc\u03bf \u03bd\u03b5\u03c1\u03cc).\n      var isWater = (route === 'water');\n      var routeLabel = isWater ? 'im Wasser' : 'im Futter';\n      \/\/ \u039e\u03b5\u03ba\u03b9\u03bd\u03ac\u03bc\u03b5 \u03b1\u03c0\u03cc \u03c4\u03bf\u03c5\u03c2 \u03c3\u03c5\u03bd\u03c4\u03b5\u03bb\u03b5\u03c3\u03c4\u03ad\u03c2 \u03c4\u03b7\u03c2 \u03a4\u03a1\u039f\u03a6\u0397\u03a3 \u03ba\u03b1\u03b9, \u03b1\u03bd \u03b5\u03af\u03bc\u03b1\u03c3\u03c4\u03b5 \u03c3\u03b5 \u03bd\u03b5\u03c1\u03cc,\n      \/\/ \u03c4\u03bf\u03c5\u03c2 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03b8\u03b9\u03c3\u03c4\u03bf\u03cd\u03bc\u03b5 \u03bc\u03b5 \u03c4\u03bf\u03c5\u03c2 \u03b5\u03c0\u03af\u03c3\u03b7\u03bc\u03bf\u03c5\u03c2 \u03c3\u03c5\u03bd\u03c4\u03b5\u03bb\u03b5\u03c3\u03c4\u03ad\u03c2 \u03bd\u03b5\u03c1\u03bf\u03cd \u03cc\u03c0\u03bf\u03c5 \u03b4\u03b9\u03b1\u03c6\u03ad\u03c1\u03bf\u03c5\u03bd.\n      var mlDay = (subData.mlPerAnimalDay != null) ? subData.mlPerAnimalDay : null;   \/\/ ml\/\u03b6\u03ce\u03bf\/\u03b7\u03bc\u03ad\u03c1\u03b1 (\u03bc\u03b7\u03c1\u03c5\u03ba\u03b1\u03c3\u03c4\u03b9\u03ba\u03ac\/\u03ac\u03bb\u03bf\u03b3\u03b1)\n      var litTon = (subData.litPerTonFeed != null) ? subData.litPerTonFeed : null;    \/\/ L\/\u03c4\u03cc\u03bd\u03bf \u03c4\u03c1\u03bf\u03c6\u03ae\u03c2 (\u03c7\u03bf\u03af\u03c1\u03bf\u03b9\/\u03c0\u03bf\u03c5\u03bb\u03b5\u03c1\u03b9\u03ba\u03ac\/\u03c0\u03b5\u03c1\u03b9\u03c3\u03c4\u03ad\u03c1\u03b9\u03b1)\n      var noun = subData.unitNoun || 'Tiere';\n      var nounSing = (noun === 'Tauben') ? 'Taube' : (noun === 'Tiere' ? 'Tier' : (noun === 'Hennen' ? 'Henne' : 'Tier'));\n      var sameDoseBothRoutes = false;\n      if (isWater) {\n        if (subData.mlPerAnimalDayWater != null) {        \/\/ \u03b5\u03b9\u03b4\u03b9\u03ba\u03ae \u03b4\u03cc\u03c3\u03b7 \u03bd\u03b5\u03c1\u03bf\u03cd \u03b1\u03bd\u03ac \u03b6\u03ce\u03bf\n          mlDay = subData.mlPerAnimalDayWater; litTon = null;\n        } else if (subData.litPerTonFeedWater != null) {  \/\/ \u03c7\u03bf\u03af\u03c1\u03bf\u03b9: 3 L\/\u03c4\u03cc\u03bd\u03bf \u03c4\u03c1\u03bf\u03c6\u03ae\u03c2\n          litTon = subData.litPerTonFeedWater; mlDay = null;\n        } else {\n          sameDoseBothRoutes = true;                      \/\/ \u03bc\u03b7\u03c1\u03c5\u03ba\u03b1\u03c3\u03c4\u03b9\u03ba\u03ac\/\u03ac\u03bb\u03bf\u03b3\u03b1\/\u03c0\u03bf\u03c5\u03bb\u03b5\u03c1\u03b9\u03ba\u03ac\/\u03c0\u03b5\u03c1\u03b9\u03c3\u03c4\u03ad\u03c1\u03b9\u03b1\n        }\n      }\n      var mlPerAnimalDay = null;\n      if (mlDay != null) {\n        mlPerAnimalDay = mlDay;\n        totalLit = (qty * mlDay * days) \/ 1000;\n        breakdown = qty + ' ' + noun + ' \u00d7 ' + fmtNum(mlDay, 2) + ' ml\/' + nounSing + '\/Tag (' + routeLabel + ') \u00d7 ' + days + ' Tage = <strong>' + fmtNum(totalLit, 2) + ' L FKE<\/strong>';\n      } else if (litTon != null) {\n        var dailyFeedTons = (qty * subData.feedPerAnimalKg) \/ 1000;\n        mlPerAnimalDay = litTon * subData.feedPerAnimalKg; \/\/ L\/t \u00d7 kg = ml\/\u03b6\u03ce\u03bf\/\u03b7\u03bc\u03ad\u03c1\u03b1\n        totalLit = dailyFeedTons * litTon * days;\n        breakdown = qty + ' ' + noun + ' \u00d7 ' + fmtNum(subData.feedPerAnimalKg * 1000, 0) + ' g Futter\/Tag \u00d7 ' + days + ' Tage = ' + fmtNum(dailyFeedTons * days, 2) + ' t Futter \u00d7 ' + fmtNum(litTon, 1) + ' L\/t (' + routeLabel + ') = <strong>' + fmtNum(totalLit, 2) + ' L FKE<\/strong>';\n      }\n      if (sameDoseBothRoutes) {\n        breakdown += '<br>\u2139\ufe0f Die Dosis ist bei Futter und Wasser <strong>gleich<\/strong> \u2014 es \u00e4ndert sich nur die Art der Verabreichung.';\n      }\n      \/\/ \u03a0\u03c1\u03b1\u03ba\u03c4\u03b9\u03ba\u03ae \u03b1\u03bd\u03b1\u03bb\u03bf\u03b3\u03af\u03b1 \u03c3\u03c4\u03bf \u03c0\u03cc\u03c3\u03b9\u03bc\u03bf \u03bd\u03b5\u03c1\u03cc (ml FKE \u03b1\u03bd\u03ac \u03bb\u03af\u03c4\u03c1\u03bf \u03bd\u03b5\u03c1\u03bf\u03cd)\n      if ((isWater ? mlPerAnimalDay != null : false) ? subData.waterLPerAnimalDay : false) {\n        var concMlPerL = mlPerAnimalDay \/ subData.waterLPerAnimalDay;\n        extra = {\n          water: true,\n          mlPerAnimalDay: mlPerAnimalDay,\n          dailyMlTotal: qty * mlPerAnimalDay,\n          dailyWaterL: qty * subData.waterLPerAnimalDay,\n          waterLPerAnimalDay: subData.waterLPerAnimalDay,\n          concMlPerL: concMlPerL,\n          noun: noun,\n          nounSing: nounSing\n        };\n        breakdown += '<br>\ud83d\udca7 Praktisch: <strong>\u2248 ' + fmtNum(concMlPerL, 2) + ' ml FKE pro Liter Trinkwasser<\/strong> (\u2248 ' + fmtNum(concMlPerL \/ 10, 2) + '% Verd\u00fcnnung), basierend auf ca. ' + fmtNum(subData.waterLPerAnimalDay, 2) + ' L Wasser\/' + nounSing + '\/Tag.';\n      }\n    } else if (uc === 'ensilage') {\n      totalLit = qty * subData.litPerM3;\n      breakdown = qty + ' m\u00b3 \u00d7 ' + fmtNum(subData.litPerM3, 1) + ' L\/m\u00b3 = <strong>' + fmtNum(totalLit, 1) + ' L FKE<\/strong>';\n    } else if (uc === 'hygiene') {\n      \/\/ \u03a0\u03a1\u039f\u03a3\u039f\u03a7\u0397: \u03c4\u03b1 ml\/m\u00b2 \u03b1\u03c6\u03bf\u03c1\u03bf\u03cd\u03bd \u03c4\u03bf \u0395\u03a4\u039f\u0399\u039c\u039f (\u03b1\u03c1\u03b1\u03b9\u03c9\u03bc\u03ad\u03bd\u03bf) \u03b4\u03b9\u03ac\u03bb\u03c5\u03bc\u03b1.\n      \/\/ \u03a4\u03bf \u03ba\u03b1\u03b8\u03b1\u03c1\u03cc EM-Active \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03cc\u03bd\u03bf \u03c4\u03bf \u03c0\u03bf\u03c3\u03bf\u03c3\u03c4\u03cc \u03b1\u03c1\u03b1\u03af\u03c9\u03c3\u03b7\u03c2 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03bf \u03b4\u03b9\u03ac\u03bb\u03c5\u03bc\u03b1.\n      var apps2 = Math.ceil(days \/ ucData.applyEvery);\n      var pct = subData.pctDilution;                                 \/\/ \u03c0.\u03c7. 0.02 \u03b3\u03b9\u03b1 2%\n      var solutionMlPerApp = qty * subData.mlSolutionPerM2;          \/\/ ml \u03ad\u03c4\u03bf\u03b9\u03bc\u03bf\u03c5 \u03b4\u03b9\u03b1\u03bb\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2 \u03b1\u03bd\u03ac \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\n      var emMlPerApp = solutionMlPerApp * pct;                       \/\/ \u03ba\u03b1\u03b8\u03b1\u03c1\u03cc EM-Active \u03b1\u03bd\u03ac \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\n      var waterMlPerApp = solutionMlPerApp - emMlPerApp;             \/\/ \u03bd\u03b5\u03c1\u03cc \u03b1\u03bd\u03ac \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\n      totalLit = (emMlPerApp * apps2) \/ 1000;\n      var solLitPerApp = solutionMlPerApp \/ 1000;\n      breakdown =\n        '\u2460 Spritzl\u00f6sung: ' + qty + ' m\u00b2 \u00d7 ' + subData.mlSolutionPerM2 + ' ml\/m\u00b2 = <strong>' + fmtNum(solLitPerApp, 1) + ' L gebrauchsfertige L\u00f6sung<\/strong> pro Anwendung<br>' +\n        '\u2461 Reines EM-Active: ' + fmtNum(solLitPerApp, 1) + ' L \u00d7 ' + fmtNum(pct * 100, 0) + '% = <strong>' + fmtL(emMlPerApp) + ' EM-Active<\/strong> pro Anwendung<br>' +\n        '\u2462 Gesamt: ' + fmtL(emMlPerApp) + ' \u00d7 ' + apps2 + ' Anwendungen (alle 2 Wochen) = <strong>' + fmtNum(totalLit, 2) + ' L EM-Active<\/strong>';\n      extra = {\n        hygiene: true,\n        solLitPerApp: solLitPerApp,\n        emMlPerApp: emMlPerApp,\n        waterLitPerApp: waterMlPerApp \/ 1000,\n        apps: apps2,\n        pct: pct\n      };\n    } else if (uc === 'home') {\n      if (subData.monthly) {\n        var months = Math.max(1, Math.ceil(days \/ 30));\n        totalLit = (qty * subData.mlDirect * months) \/ 1000;\n        breakdown = qty + ' Abfl\u00fcsse \u00d7 ' + subData.mlDirect + ' ml \u00d7 ' + months + ' Monate = <strong>' + fmtNum(totalLit, 2) + ' L<\/strong>';\n      } else if (subData.isLoad) {\n        totalLit = (qty * subData.mlPerLoad) \/ 1000;\n        breakdown = qty + ' Waschladungen \u00d7 ' + subData.mlPerLoad + ' ml = <strong>' + fmtNum(totalLit, 2) + ' L<\/strong>';\n      } else {\n        \/\/ qty = number of applications\n        totalLit = (qty * subData.mlPerLNeeded) \/ 1000;\n        breakdown = qty + ' Anwendungen \u00d7 ' + subData.mlPerLNeeded + ' ml EM auf ' + subData.perL + ' L Wasser = <strong>' + fmtNum(totalLit, 2) + ' L EM-Active<\/strong>';\n      }\n    } else if (uc === 'spray') {\n      var apps3 = Math.ceil(days \/ ucData.applyEvery);\n      var mlPerSpray = qty * 1000 * subData.pctDilution; \/\/ qty = L \u03b4\u03b9\u03b1\u03bb\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2 \u2192 EM = % \u03c4\u03bf\u03c5 \u03b4\u03b9\u03b1\u03bb\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2\n      totalLit = (mlPerSpray * apps3) \/ 1000;\n      breakdown = qty + ' L L\u00f6sung \u00d7 ' + fmtNum(subData.pctDilution * 100, 0) + '% \u00d7 ' + apps3 + ' Spritzungen = <strong>' + fmtNum(totalLit, 2) + ' L EM-Active<\/strong>';\n    }\n    return { totalLit: totalLit, breakdown: breakdown, extra: extra };\n  }\n  \/\/ ===== APPLICATION INSTRUCTIONS =====\n  function getApplicationInstructions(uc, sub, route) {\n    \/\/ \u039a\u03c4\u03b7\u03bd\u03bf\u03c4\u03c1\u03bf\u03c6\u03af\u03b1: \u03bf\u03b9 \u03bf\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b1\u03bb\u03bb\u03ac\u03b6\u03bf\u03c5\u03bd \u03b1\u03bd\u03ac\u03bb\u03bf\u03b3\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03c4\u03c1\u03cc\u03c0\u03bf \u03c7\u03bf\u03c1\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2.\n    if (uc === 'livestock') {\n      var isBird = (sub === 'pigeons' || sub === 'poultry_meat' || sub === 'poultry_egg');\n      if (route === 'water') {\n        var txt = '\ud83d\udca7 Geben Sie die Tagesdosis in das <strong>saubere Trinkwasser<\/strong> des Tages (am besten ungechlort \u2014 lassen Sie Leitungswasser eine Nacht offen stehen oder filtern Sie es). Gut umr\u00fchren und daf\u00fcr sorgen, dass die Tiere es <strong>noch am selben Tag<\/strong> aufnehmen; Tr\u00e4nken\/Leitungen sauber halten (Biofilm). Beginnen Sie zun\u00e4chst 3\u20134 Tage lang mit der halben Dosis, bis sich die Tiere an den Geschmack gew\u00f6hnt haben.';\n        if (isBird) {\n          txt += '<br><br>\ud83d\udc26 <strong>Gefl\u00fcgel &amp; Tauben:<\/strong> jeden Tag frische L\u00f6sung und die Tr\u00e4nke reinigen \u2014 bei kleinen V\u00f6geln g\u00e4rt die L\u00f6sung schnell. Nicht zusammen mit Antibiotika oder Wasserdesinfektionsmitteln (Chlor) verabreichen; geben Sie FKE <strong>nach<\/strong> Abschluss der Behandlung, wenn es beim Wiederaufbau der Darmflora am meisten hilft. Achten Sie im hei\u00dfen Sommer darauf, dass der Wasserverbrauch nicht sinkt.';\n        }\n        return txt;\n      }\n      var txtF = '\ud83e\udd63 Bespr\u00fchen oder mischen Sie die Tagesdosis in das <strong>Futter<\/strong>. Bei pelletiertem Futter erst nach dem Abk\u00fchlen (&lt;40 \u00b0C) aufspr\u00fchen, damit die Mikroorganismen nicht zerst\u00f6rt werden. Gut vermischen f\u00fcr eine gleichm\u00e4\u00dfige Verteilung.';\n      if (isBird) {\n        txtF += '<br><br>\ud83d\udc26 <strong>Gefl\u00fcgel &amp; Tauben:<\/strong> Dosis auf das Korn\/Futter spr\u00fchen, umr\u00fchren und sofort verf\u00fcttern \u2014 bereiten Sie kein bespr\u00fchtes Futter f\u00fcr mehrere Tage im Voraus vor.';\n      }\n      return txtF;\n    }\n    var instructions = {\n      crops:    'Mit Bew\u00e4sserungswasser verd\u00fcnnen. W\u00f6chentlich mit der Gie\u00dfkanne oder \u00fcber das Bew\u00e4sserungssystem ausbringen. <strong>Innerhalb von 1\u20132 Tagen nach dem Verd\u00fcnnen verwenden.<\/strong>',\n      trees:    'An der Wurzel mit Bew\u00e4sserungswasser ausbringen, 4\u20136-mal im Jahr. Beste Zeit: Fr\u00fchling + Sommer.',\n      garden:   'In Gie\u00dfwasser verd\u00fcnnen. Mit der Gie\u00dfkanne oder dem Spr\u00fchger\u00e4t ausbringen. F\u00fcr den \u00f6kologischen Anbau geeignet.',\n      compost:  '1:10 mit Wasser verd\u00fcnnt auf die organischen Materialien spr\u00fchen. Bei Zugabe neuer Materialien wiederholen (jeweils 0,1 L EM-Active).',\n      ensilage: 'Gleichm\u00e4\u00dfig beim Verdichten der Silage aufspr\u00fchen. Bessere G\u00e4rung + geringere N\u00e4hrstoffverluste.',\n      hygiene:  'Zuerst die L\u00f6sung ansetzen (EM-Active + Wasser im Verd\u00fcnnungsverh\u00e4ltnis) und als Nebel auf B\u00f6den, W\u00e4nde, Nester, Sitzstangen und Ger\u00e4te spr\u00fchen. Alle 2 Wochen wiederholen. In Kombination mit Zeolith in der Einstreu verringern sich Ammoniak und Feuchtigkeit deutlich.',\n      home:     'Entsprechend den Verh\u00e4ltnissen verd\u00fcnnen. Bei Ger\u00fcchen: gleichm\u00e4\u00dfig aufspr\u00fchen. Zur Reinigung: als Reiniger verwenden.',\n      spray:    'Die Bl\u00e4tter fr\u00fch am Morgen oder sp\u00e4t am Nachmittag bespr\u00fchen. Je nach Bedarf alle 7\u201330 Tage wiederholen.'\n    };\n    return instructions[uc] || 'Mit Wasser verd\u00fcnnen und gem\u00e4\u00df Anleitung anwenden.';\n  }\n  \/\/ ===== RENDER PRODUCT CARD =====\n  function renderProductCard(packaging) {\n    var p = packaging.product;\n    var html = '<div class=\"product-card\">';\n    html += '<div class=\"badge-pos\">\u2b50 EMPFEHLUNG<\/div>';\n    html += '<h5>' + p.name + '<\/h5>';\n    html += '<p class=\"desc\">' + p.desc + '<\/p>';\n    html += '<div class=\"combo-list\">';\n    html += '<p class=\"combo-title\">\ud83d\udce6 Optimale Verpackung<\/p>';\n    for (var i = 0; i < packaging.combo.length; i++) {\n      var c = packaging.combo[i];\n      html += '<div class=\"combo-line\">';\n      html += '<div><a href=\"' + p.url + '\" target=\"_blank\" rel=\"noopener\">' + c.qty + '\u00d7 ' + c.pkg.label + '<\/a>';\n      html += ' <span class=\"ppl\">(' + fmtEuro(c.pkg.pricePerLit) + '\/L)<\/span>';\n      html += '<\/div>';\n      html += '<div class=\"price\">' + fmtEuro(c.lineCost) + '<\/div>';\n      html += '<\/div>';\n    }\n    html += '<\/div>';\n    html += '<div class=\"total\">';\n    html += '<strong>' + fmtEuro(packaging.finalPrice) + '<\/strong>';\n    html += '<span class=\"per\">Verf\u00fcgbar: ' + fmtNum(packaging.coveredLit, 1) + ' L \u00b7 Deckt ab: ' + fmtNum(packaging.totalLit, 2) + ' L<\/span>';\n    html += '<\/div>';\n    html += '<a href=\"' + p.url + '\" class=\"cta-btn\" target=\"_blank\" rel=\"noopener\">\ud83d\uded2 Bestellen ' + p.name + ' \u2192<\/a>';\n    html += '<\/div>';\n    return html;\n  }\n  \/\/ ===== CALCULATE =====\n  function calculate() {\n    var uc = getChecked('useCase');\n    var sub = getChecked('subOption');\n    var route = getChecked('feedRoute'); \/\/ 'feed' | 'water' | null (\u03bc\u03cc\u03bd\u03bf \u03b3\u03b9\u03b1 \u03ba\u03c4\u03b7\u03bd\u03bf\u03c4\u03c1\u03bf\u03c6\u03af\u03b1)\n    var qty = Number(getVal('emQty'));\n    var duration = getChecked('duration');\n    var customDays = getVal('emCustomDays');\n    var days = duration ? Number(duration) : (isPositive(customDays) ? Number(customDays) : 30);\n    var ucData = useCases[uc];\n    \/\/ \u03a0\u03a1\u039f\u03a3\u039f\u03a7\u0397: \u03bb\u03ad\u03b3\u03b5\u03c4\u03b1\u03b9 \u00abdose\u00bb, \u039f\u03a7\u0399 \u00abcalc\u00bb \u2014 \u03c4\u03bf \u00abcalc\u00bb \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03bf root element \u03c4\u03bf\u03c5 \u03bf\u03b4\u03b7\u03b3\u03bf\u03cd.\n    var dose = calculateTotalLit(uc, sub, qty, days, route);\n    if (!(dose.totalLit > 0)) {\n      resultBody.innerHTML = '<p style=\"color:#a12b2b;\">\u26a0\ufe0f Die Berechnung ergab keine Menge. Pr\u00fcfen Sie die Angaben.<\/p>';\n      resultBox.classList.add('show');\n      return;\n    }\n    var packaging = smartPackaging(dose.totalLit, ucData.product);\n    var html = '';\n    \/\/ ===== SUMMARY =====\n    var durSub;\n    if (uc === 'compost' || uc === 'ensilage') {\n      durSub = 'Eine Anwendung';\n    } else {\n      durSub = days + ' Tage';\n      if (uc === 'livestock') { durSub += ' \u00b7 ' + (route === 'water' ? '\ud83d\udca7 im Wasser' : '\ud83e\udd63 im Futter'); }\n    }\n    html += '<div class=\"summary-grid\">';\n    html += '<div class=\"summary-card\">';\n    html += '<div class=\"label\">\ud83e\udda0 Gesamtbedarf<\/div>';\n    html += '<div class=\"value\">' + fmtNum(dose.totalLit, 2) + ' L<\/div>';\n    html += '<div class=\"sub\">' + products[ucData.product].name + '<\/div>';\n    html += '<\/div>';\n    html += '<div class=\"summary-card\">';\n    html += '<div class=\"label\">\ud83c\udfaf Anwendung<\/div>';\n    html += '<div class=\"value\">' + ucData.title + '<\/div>';\n    html += '<div class=\"sub\">' + durSub + '<\/div>';\n    html += '<\/div>';\n    html += '<\/div>';\n    \/\/ ===== BREAKDOWN =====\n    html += '<h4>\ud83d\udcca So wurde berechnet<\/h4>';\n    html += '<div class=\"schedule\"><strong>Aufschl\u00fcsselung der Dosierung<\/strong>';\n    html += dose.breakdown;\n    html += '<\/div>';\n    \/\/ ===== \u03a3\u03a5\u039d\u03a4\u0391\u0393\u0397 \u0397\u039c\u0395\u03a1\u0391\u03a3 (\u039a\u03c4\u03b7\u03bd\u03bf\u03c4\u03c1\u03bf\u03c6\u03af\u03b1 \u2192 \u03c0\u03cc\u03c3\u03b9\u03bc\u03bf \u03bd\u03b5\u03c1\u03cc) =====\n    if ((uc === 'livestock' ? dose.extra : false) ? dose.extra.water : false) {\n      var e = dose.extra;\n      html += '<h4>\ud83e\uddea Tagesrezept im Trinkwasser<\/h4>';\n      html += '<div class=\"recipe\">';\n      html += '<h5>Tagesdosis f\u00fcr ' + fmtNum(qty, 0) + ' ' + (e.noun || 'Tiere') + '<\/h5>';\n      html += '<div class=\"recipe-step\"><div class=\"num\">1<\/div><div>Messen Sie <strong>' + fmtL(e.dailyMlTotal) + ' FKE<\/strong> (\u2248 ' + fmtNum(e.mlPerAnimalDay, 2) + ' ml pro ' + (e.nounSing || 'Tier') + '\/Tag) ab.<\/div><\/div>';\n      html += '<div class=\"recipe-step\"><div class=\"num\">2<\/div><div>L\u00f6sen Sie es im Tageswasser auf \u2014 gesch\u00e4tzter Verbrauch <strong>ca. ' + fmtNum(e.dailyWaterL, 1) + ' L<\/strong>. Verh\u00e4ltnis: <strong>\u2248 ' + fmtNum(e.concMlPerL, 2) + ' ml pro Liter Wasser<\/strong>.<\/div><\/div>';\n      html += '<div class=\"recipe-step\"><div class=\"num\">3<\/div><div>Jeden Tag frische L\u00f6sung, saubere Tr\u00e4nken, Wasser ohne Chlor. Beginnen Sie 3\u20134 Tage lang mit der halben Dosis.<\/div><\/div>';\n      html += '<p class=\"sublabel\">\ud83d\udca1 Der Wasserverbrauch ist eine Sch\u00e4tzung (Temperatur, Alter und Futterart ver\u00e4ndern ihn). Halten Sie die <strong>Dosis pro ' + (e.nounSing || 'Tier') + '<\/strong> konstant und passen Sie das Wasser an.<\/p>';\n      html += '<\/div>';\n    }\n    \/\/ ===== \u03a3\u03a5\u039d\u03a4\u0391\u0393\u0397 \u0391\u03a1\u0391\u0399\u03a9\u03a3\u0397\u03a3 (\u03a5\u03b3\u03b9\u03b5\u03b9\u03bd\u03ae \u03b5\u03ba\u03c4\u03c1\u03bf\u03c6\u03b5\u03af\u03c9\u03bd) =====\n    if ((uc === 'hygiene' ? dose.extra : false) ? dose.extra.hygiene : false) {\n      html += '<h4>\ud83e\uddea Verd\u00fcnnungsrezept pro Anwendung<\/h4>';\n      html += '<div class=\"recipe\">';\n      html += '<h5>F\u00fcr ' + qty + ' m\u00b2 ben\u00f6tigen Sie ' + fmtNum(dose.extra.solLitPerApp, 1) + ' L gebrauchsfertige L\u00f6sung<\/h5>';\n      html += '<div class=\"recipe-step\"><div class=\"num\">1<\/div><div>Geben Sie <strong>' + fmtL(dose.extra.emMlPerApp) + ' EM-Active<\/strong> in den Spritzbeh\u00e4lter.<\/div><\/div>';\n      html += '<div class=\"recipe-step\"><div class=\"num\">2<\/div><div>F\u00fcllen Sie mit <strong>' + fmtNum(dose.extra.waterLitPerApp, 1) + ' L Wasser<\/strong> (ohne Chlor) bis auf ' + fmtNum(dose.extra.solLitPerApp, 1) + ' L auf \u2014 Verd\u00fcnnung ' + fmtNum(dose.extra.pct * 100, 0) + '%.<\/div><\/div>';\n      html += '<div class=\"recipe-step\"><div class=\"num\">3<\/div><div>Gleichm\u00e4\u00dfig \u00fcber die gesamte Fl\u00e4che spr\u00fchen. Alle 2 Wochen wiederholen (insgesamt ' + dose.extra.apps + ' Anwendungen).<\/div><\/div>';\n      html += '<p class=\"sublabel\">\ud83d\udca7 Gesamtwassermenge f\u00fcr alle Anwendungen: ca. ' + fmtNum(dose.extra.waterLitPerApp * dose.extra.apps, 0) + ' L<\/p>';\n      html += '<\/div>';\n    }\n    \/\/ ===== PRODUCT CARD =====\n    html += '<h4>\ud83d\udce6 Empfohlene Bestellung<\/h4>';\n    html += renderProductCard(packaging);\n    \/\/ ===== INSTRUCTIONS =====\n    html += '<h4>\ud83d\udca1 Anwendungshinweise<\/h4>';\n    html += '<div class=\"recipe\">';\n    html += '<p>' + getApplicationInstructions(uc, sub, route) + '<\/p>';\n    html += '<\/div>';\n    \/\/ ===== CROSS-SELL ZEOLITE =====\n    html += '<div class=\"cross-sell\">';\n    html += '<h5>\ud83e\udea8 Kombinieren Sie mit Zeolith f\u00fcr doppelte Wirkung<\/h5>';\n    html += '<p>Effektive Mikroorganismen arbeiten <strong>synergistisch<\/strong> mit Zeolith: Der Zeolith liefert die \u201eStruktur\u201c (ein Mikro-Zuhause f\u00fcr die Mikroorganismen) und verbessert die F\u00e4higkeit, N\u00e4hrstoffe zu speichern.<\/p>';\n    if (uc === 'livestock' || uc === 'ensilage' || uc === 'hygiene') {\n      html += '<p>\ud83d\udccb <a href=\"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-zeolith-in-der-tierhaltung\/\">Dosierungsratgeber Zeolith f\u00fcr die Tierhaltung<\/a><\/p>';\n    } else if (uc === 'crops' || uc === 'trees' || uc === 'spray') {\n      html += '<p>\ud83d\udccb <a href=\"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-zeolith-in-der-landwirtschaft\/\">Dosierungsratgeber Zeolith f\u00fcr die Landwirtschaft<\/a> \u00b7 \ud83c\udf31 <a href=\"https:\/\/zeolife.gr\/de\/dosierungsratgeber-ecoplant-kostenloses-tool-zeolife\/\">EcoPlant\u00ae-Dosierungsratgeber<\/a> \u00b7 \ud83d\udca8 <a href=\"https:\/\/zeolife.gr\/de\/dosierungsratgeber-zete\/\">ZeTe-Dosierungsratgeber<\/a><\/p>';\n    } else {\n      html += '<p>\ud83d\udccb <a href=\"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-zeolith-in-der-landwirtschaft\/\">Dosierungsratgeber Zeolith f\u00fcr die Landwirtschaft<\/a><\/p>';\n    }\n    html += '<\/div>';\n    \/\/ ===== WARNING =====\n    html += '<div class=\"warning\"><strong>\u26a0\ufe0f Wichtige Hinweise<\/strong>';\n    html += '\ud83d\udd50 <strong>Innerhalb von 1\u20132 Tagen nach dem Verd\u00fcnnen verwenden<\/strong> (die lebenden Mikroorganismen verlieren an Wirksamkeit) \u2014 im Trinkwasser jeden Tag frische L\u00f6sung.<br>';\n    html += '\ud83d\udeab Nicht zusammen mit Antibiotika oder Desinfektionsmitteln\/gechlortem Wasser.<br>';\n    html += '\ud83c\udf21\ufe0f An einem schattigen und k\u00fchlen Ort lagern.<br>';\n    html += '\u2600\ufe0f Vermeiden Sie beim Spritzen direktes Sonnenlicht.<br>';\n    html += '\ud83d\udc3e Sicher f\u00fcr Tiere und Haustiere \u2014 mit der \u00f6kologischen Produktion vereinbar.';\n    html += '<\/div>';\n    \/\/ ===== DISCLAIMER =====\n    html += '<p class=\"disclaimer\"><strong>Hinweis:<\/strong> Dosierungen nach den offiziellen Anleitungen von Multikraft\u00ae (\u00d6sterreich). Es handelt sich um ein Erg\u00e4nzungsmittel\/eine Verbesserung der Haltungsbedingungen \u2014 es ersetzt keine tier\u00e4rztliche Behandlung. Passen Sie es an die Bedingungen und den Bedarf der Kultur\/des Tieres an. F\u00fcr Sonderf\u00e4lle: 2311 29 55 20.<\/p>';\n    resultBody.innerHTML = html;\n    resultBox.classList.add('show');\n    resultBox.scrollIntoView({ behavior: 'smooth', block: 'start' });\n  }\n  calcBtn.addEventListener('click', calculate);\n  \/\/ ===== STICKY PROGRESS BAR (JS-driven position:fixed, WordPress-safe) =====\n  \/\/ \u039a\u03c1\u03b1\u03c4\u03ac\u03b5\u03b9 \u03c4\u03b7 \u03bc\u03c0\u03ac\u03c1\u03b1 \u03ba\u03b1\u03c1\u03c6\u03b9\u03c4\u03c3\u03c9\u03bc\u03ad\u03bd\u03b7 \u0391\u039a\u03a1\u0399\u0392\u03a9\u03a3 \u03ba\u03ac\u03c4\u03c9 \u03b1\u03c0\u03cc \u03c4\u03bf sticky \u03bc\u03b5\u03bd\u03bf\u03cd \u03c4\u03bf\u03c5 Kadence (+ WP admin bar).\n  \/\/ \u039c\u03b5\u03c4\u03c1\u03ac\u03b5\u03b9 \u03b4\u03c5\u03bd\u03b1\u03bc\u03b9\u03ba\u03ac \u03c3\u03b5 \u03ba\u03ac\u03b8\u03b5 scroll \u2014 desktop\/\u03ba\u03b9\u03bd\u03b7\u03c4\u03cc, \u03bc\u03b5 \u03ae \u03c7\u03c9\u03c1\u03af\u03c2 admin bar. \u039f \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9\n  \/\/ \u03b3\u03c1\u03b1\u03bc\u03bc\u03ad\u03bd\u03bf\u03c2 WordPress-safe \u03ce\u03c3\u03c4\u03b5 \u03bf editor \u03c4\u03b7\u03c2 WP \u03bd\u03b1 \u03bc\u03b7\u03bd \u03c7\u03b1\u03bb\u03ac\u03b5\u03b9 \u03c4\u03b7 \u03c3\u03cd\u03b3\u03ba\u03c1\u03b9\u03c3\u03b7 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7.\n  var progressEl = calc.querySelector('.progress');\n  var progressSpacer = document.getElementById('emProgressSpacer');\n  var progFlowHeight = 0;\n  function emMeasure() {\n    if (!progressEl) return;\n    var cs = window.getComputedStyle(progressEl);\n    var mt = parseFloat(cs.marginTop) || 0;\n    var mb = parseFloat(cs.marginBottom) || 0;\n    progFlowHeight = progressEl.offsetHeight + mt + mb;\n  }\n  var EM_EXTRA_OFFSET = 0; \/\/ \u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03b5\u03c0\u03b9\u03c0\u03bb\u03ad\u03bf\u03bd \u03ba\u03b5\u03bd\u03cc \u03c3\u03b5 px (\u03c0.\u03c7. 6) \u03b1\u03bd \u03b8\u03b5\u03c2 \u03bb\u03af\u03b3\u03bf \u03b1\u03ad\u03c1\u03b1\n  function emFixedTopBottom(el) {\n    if (!el) return 0;\n    var cs = window.getComputedStyle(el);\n    if (cs.position !== 'fixed') return 0;\n    if (cs.display === 'none') return 0;\n    if (cs.visibility === 'hidden') return 0;\n    var r = el.getBoundingClientRect();\n    if (r.height === 0) return 0;\n    if (r.top > 300) return 0;   \/\/ \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u00ab\u03ba\u03ac\u03b8\u03b5\u03c4\u03b1\u03b9\u00bb \u03c3\u03c4\u03b7\u03bd \u03ba\u03bf\u03c1\u03c5\u03c6\u03ae, \u03cc\u03c7\u03b9 \u03ba\u03ac\u03c0\u03bf\u03c5 \u03c7\u03b1\u03bc\u03b7\u03bb\u03ac\n    if (r.bottom <= 0) return 0;\n    return r.bottom;\n  }\n  function emTopOffset() {\n    var offset = 0;\n    var ab = emFixedTopBottom(document.getElementById('wpadminbar'));\n    if (ab > offset) { offset = ab; }\n    var heads = document.querySelectorAll('.kadence-sticky-header');\n    for (var i = 0; i < heads.length; i++) {\n      var hb = emFixedTopBottom(heads[i]);\n      if (hb > offset) { offset = hb; }\n    }\n    return offset + EM_EXTRA_OFFSET;\n  }\n  var emPinned = false;\n  function emUpdateSticky() {\n    if (!progressEl) return;\n    var offset = emTopOffset();\n    var rect = calc.getBoundingClientRect();\n    var shouldPin = false;\n    if (offset >= rect.top) {\n      if (rect.bottom > (offset + 24)) { shouldPin = true; }\n    }\n    if (shouldPin) {\n      var s = progressEl.style;\n      s.position = 'fixed'; s.top = offset + 'px'; s.left = rect.left + 'px';\n      s.width = rect.width + 'px'; s.zIndex = '99999';\n      progressEl.classList.add('em-stuck');\n      if (progressSpacer) progressSpacer.style.height = progFlowHeight + 'px';\n      emPinned = true;\n    } else if (emPinned || progressEl.style.position === 'fixed') {\n      var s2 = progressEl.style;\n      s2.position = ''; s2.top = ''; s2.left = ''; s2.width = ''; s2.zIndex = '';\n      progressEl.classList.remove('em-stuck');\n      if (progressSpacer) progressSpacer.style.height = '0px';\n      emPinned = false;\n    }\n  }\n  emMeasure();\n  window.addEventListener('load', function() { emMeasure(); emUpdateSticky(); });\n  window.addEventListener('scroll', emUpdateSticky, { passive: true });\n  window.addEventListener('resize', function() { emMeasure(); emUpdateSticky(); });\n  emUpdateSticky();\n  updateProgress();\n})();\n<\/script>\n<!-- ==== ZL PRINT: \u03b5\u03ba\u03c4\u03c5\u03c0\u03ce\u03bd\u03b5\u03b9 \u039c\u039f\u039d\u039f \u03c4\u03bf \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03bf\u03b4\u03b7\u03b3\u03bf\u03cd (\u03c7\u03c9\u03c1\u03af\u03c2 header\/\u03bc\u03b5\u03bd\u03bf\u03cd\/\u03c4\u03af\u03c4\u03bb\u03bf\/footer\/newsletter\/ZeoBot) ==== -->\n<script>\n(function(){\n  if (window.zlPrintOnlyResult) { return; }\n  window.zlPrintOnlyResult = true;\n  var zlHidden = null;\n  function zlHide(el) {\n    if (el.tagName === 'SCRIPT') { return; }\n    if (el.tagName === 'STYLE') { return; }\n    if (el.tagName === 'LINK') { return; }\n    zlHidden.push([el, el.style.getPropertyValue('display'), el.style.getPropertyPriority('display')]);\n    el.style.setProperty('display', 'none', 'important');\n  }\n  function zlStyle(el, prop, val) {\n    zlHidden.push([el, el.style.getPropertyValue(prop), el.style.getPropertyPriority(prop), prop]);\n    el.style.setProperty(prop, val, 'important');\n  }\n  function zlPrintPrep() {\n    if (zlHidden) { return; }\n    var res = document.querySelector('.zlcalc .result.show');\n    if (!res) { return; }\n    zlHidden = [];\n    var node = res;\n    while (node.parentElement) {\n      var parent = node.parentElement;\n      var sibs = parent.children;\n      for (var i = 0; i !== sibs.length; i++) {\n        if (sibs[i] !== node) { zlHide(sibs[i]); }\n      }\n      if (parent === document.body) { break; }\n      zlStyle(parent, 'margin', '0');\n      zlStyle(parent, 'padding', '0');\n      zlStyle(parent, 'border', '0');\n      zlStyle(parent, 'box-shadow', 'none');\n      zlStyle(parent, 'max-width', 'none');\n      node = parent;\n    }\n  }\n  function zlPrintRestore() {\n    if (!zlHidden) { return; }\n    for (var i = zlHidden.length - 1; i !== -1; i--) {\n      var h = zlHidden[i];\n      var prop = h[3] ? h[3] : 'display';\n      if (h[1]) { h[0].style.setProperty(prop, h[1], h[2]); } else { h[0].style.removeProperty(prop); }\n    }\n    zlHidden = null;\n  }\n  window.addEventListener('beforeprint', zlPrintPrep);\n  window.addEventListener('afterprint', zlPrintRestore);\n  if (window.matchMedia) {\n    var mq = window.matchMedia('print');\n    var onChange = function(e) { if (e.matches) { zlPrintPrep(); } else { zlPrintRestore(); } };\n    if (mq.addEventListener) { mq.addEventListener('change', onChange); } else if (mq.addListener) { mq.addListener(onChange); }\n  }\n})();\n<\/script>\n\n\n<script id=\"zl-deeplink\">\n\/* zl-deeplink v2 \u00b7 Zeolife \u00b7 \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b1\u03c0\u03b1\u03bd\u03c4\u03ae\u03c3\u03b5\u03c9\u03bd \u03b1\u03c0\u03cc \u03c4\u03bf URL (\u03c0.\u03c7. ?crop=olive \u03ba\u03b1\u03b9 soil=light) + \u03ba\u03bf\u03c5\u03bc\u03c0\u03af \u00ab\u03a0\u03af\u03c3\u03c9 \u03c3\u03c4\u03bf \u03c0\u03c1\u03bf\u03ca\u03cc\u03bd\u00bb. \u03a7\u03c9\u03c1\u03af\u03c2 ampersand \u03c3\u03c4\u03bf\u03bd \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1: \u03c4\u03bf WordPress \u03c4\u03bf\u03bd \u03bc\u03b5\u03c4\u03b1\u03c4\u03c1\u03ad\u03c0\u03b5\u03b9 \u03c3\u03b5 HTML entity. *\/\n(function () {\n  if (window.__zlDeeplink) { return; }\n  window.__zlDeeplink = 1;\n  var en = location.pathname.indexOf('\/en\/') === 0;\n  var qs;\n  try { qs = new URLSearchParams(location.search); } catch (e) { return; }\n  var SKIP = \/^(utm_[a-z_]+|from|fbclid|gclid|_ga|ref|lang)$\/;\n\n  function esc(s) {\n    if (window.CSS) { if (CSS.escape) { return CSS.escape(s); } }\n    return String(s).replace(\/[\"\\\\]\/g, function (c) { return '\\\\' + c; });\n  }\n\n  function backButton() {\n    var target = '';\n    var from = qs.get('from') || '';\n    if (\/^\\\/(en\\\/)?product\\\/[a-z0-9%\\-_.\\\/]+$\/i.test(from)) {\n      target = 'https:\/\/shop.zeolife.gr' + from;\n    } else if (\/^https:\\\/\\\/shop\\.zeolife\\.gr\\\/(en\\\/)?product\\\/\/.test(document.referrer || '')) {\n      target = document.referrer.split('#')[0];\n    }\n    if (!target) { return; }\n    var a = document.createElement('a');\n    a.href = target;\n    a.className = 'zl-back-to-product';\n    a.textContent = en ? '\u2190 Back to the product' : '\u2190 Zur\u00fcck zum Produkt';\n    a.setAttribute('style', 'position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:99990;' +\n      'display:inline-flex;align-items:center;gap:6px;padding:11px 18px;border-radius:999px;text-decoration:none;' +\n      'background:linear-gradient(120deg,#0098d2 0%,#2a9ca0 52%,#7ba341 100%);color:#fff;' +\n      \"font:700 14px\/1.2 'Manrope',system-ui,sans-serif;box-shadow:0 12px 26px -10px rgba(0,152,210,.6)\");\n    document.body.appendChild(a);\n  }\n\n  function preselect() {\n    var pairs = [];\n    qs.forEach(function (v, k) {\n      if (SKIP.test(k)) { return; }\n      if (v === '') { return; }\n      pairs.push([k, v]);\n    });\n    if (!pairs.length) { return; }\n    var applied = 0, i = 0;\n    function next(tries) {\n      if (i >= pairs.length) { finish(); return; }\n      var k = pairs[i][0], v = pairs[i][1];\n      var el = document.querySelector('input[name=\"' + esc(k) + '\"][value=\"' + esc(v) + '\"]');\n      if (!el) {\n        if (tries < 10) { setTimeout(function () { next(tries + 1); }, 80); return; }\n      }\n      i++;\n      if (el) {\n        if (!el.checked) { el.click(); }\n        applied++;\n      }\n      setTimeout(function () { next(0); }, 80);\n    }\n    next(0);\n\n    function finish() {\n      if (!applied) { return; }\n      var steps = document.querySelectorAll('.step');\n      var target = null;\n      for (var s = 0; s < steps.length; s++) {\n        var st = steps[s];\n        if (st.offsetParent === null) { continue; }\n        if (!st.querySelector('input[type=\"radio\"]')) { continue; }\n        if (!st.querySelector('input[type=\"radio\"]:checked')) { target = st; break; }\n      }\n      if (!target) { target = document.querySelector('.actions'); }\n      if (target) {\n        var y = target.getBoundingClientRect().top + window.pageYOffset - 110;\n        window.scrollTo({ top: Math.max(0, y), behavior: 'smooth' });\n      }\n    }\n  }\n\n  function start() { backButton(); setTimeout(preselect, 150); }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', start); } else { start(); }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\ud83e\udda0 Dosierungsratgeber f\u00fcr Effektive Mikroorganismen (EM) W\u00e4hlen Sie die Verwendung und sehen Sie genau, wie viel EM-Active oder FKE Sie ben\u00f6tigen, mit Smart Packaging. Die ideale Erg\u00e4nzung zum Zeolith f\u00fcr synergistische Ergebnisse. \ud83d\udccb Ratgeber in 4 Schritten EM-Active (Landwirtschaft\/Haushalt) FKE (Tierhaltung) \ud83d\udc26 Gefl\u00fcgel &amp; Tauben Multikraft\u00ae Mit Bio-Anbau vereinbar 1Verwendung w\u00e4hlen \ud83c\udf3e Kulturen Stremma \u2014&#8230;<\/p>\n","protected":false},"author":7,"featured_media":17413,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"content-type":"","_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"hide","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-19989","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM<\/title>\n<meta name=\"description\" content=\"Kostenloser Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM-Active und FKE: Landwirtschaft, Tierhaltung, Kompost, Haushalt, Stallhygiene.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM\" \/>\n<meta property=\"og:description\" content=\"Kostenloser Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM-Active und FKE: Landwirtschaft, Tierhaltung, Kompost, Haushalt, Stallhygiene.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/\" \/>\n<meta property=\"og:site_name\" content=\"Griechischer Zeolith &amp; Industrieminerale \u2013 Anwendungen &amp; Informationen | Zeolife.gr\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/zeolifegr\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-19T20:57:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/zeolife.gr\/wp-content\/uploads\/2025\/04\/Effective-Microorganisms-1lit.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ZeolifeGr\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\\\/\",\"url\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\\\/\",\"name\":\"Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/zeolife.gr\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Effective-Microorganisms-1lit.jpg\",\"datePublished\":\"2026-06-12T18:20:35+00:00\",\"dateModified\":\"2026-10-19T20:57:11+00:00\",\"description\":\"Kostenloser Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM-Active und FKE: Landwirtschaft, Tierhaltung, Kompost, Haushalt, Stallhygiene.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zeolife.gr\\\/de\\\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\\\/#primaryimage\",\"url\":\"https:\\\/\\\/zeolife.gr\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Effective-Microorganisms-1lit.jpg\",\"contentUrl\":\"https:\\\/\\\/zeolife.gr\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Effective-Microorganisms-1lit.jpg\",\"width\":900,\"height\":900},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/\",\"name\":\"Griechischer Zeolith & Industrieminerale \u2013 Anwendungen & Informationen | Zeolife.gr\",\"description\":\"Wissenschaftliche Informationen \u00fcber Zeolith und andere Industrieminerale. Eigenschaften und Anwendungen in Landwirtschaft, Umwelt und Gesundheit \u2013 f\u00fcr Fachleute und Verbraucher.\",\"publisher\":{\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/#organization\"},\"alternateName\":\"Griechischer Zeolith: Eigenschaften, Anwendungen & Produkte | Zeolife.gr\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/#organization\",\"name\":\"Zeolife\",\"alternateName\":\"Zeolife.gr\",\"url\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/zeolife.gr\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/icon-color-square.png\",\"contentUrl\":\"https:\\\/\\\/zeolife.gr\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/icon-color-square.png\",\"width\":1200,\"height\":1200,\"caption\":\"Zeolife\"},\"image\":{\"@id\":\"https:\\\/\\\/zeolife.gr\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/zeolifegr\",\"https:\\\/\\\/x.com\\\/ZeolifeGr\",\"https:\\\/\\\/www.instagram.com\\\/zeolife.gr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/zeolifegr\",\"https:\\\/\\\/www.pinterest.com\\\/zeolifegr\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCUR1v-vb6vutCU3uvnu98WQ\",\"https:\\\/\\\/zeolifegr.tumblr.com\\\/\",\"https:\\\/\\\/www.tiktok.com\\\/@zeolifegr\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM","description":"Kostenloser Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM-Active und FKE: Landwirtschaft, Tierhaltung, Kompost, Haushalt, Stallhygiene.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/","og_locale":"de_DE","og_type":"article","og_title":"Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM","og_description":"Kostenloser Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM-Active und FKE: Landwirtschaft, Tierhaltung, Kompost, Haushalt, Stallhygiene.","og_url":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/","og_site_name":"Griechischer Zeolith & Industrieminerale \u2013 Anwendungen & Informationen | Zeolife.gr","article_publisher":"https:\/\/www.facebook.com\/zeolifegr","article_modified_time":"2026-10-19T20:57:11+00:00","og_image":[{"width":900,"height":900,"url":"https:\/\/zeolife.gr\/wp-content\/uploads\/2025\/04\/Effective-Microorganisms-1lit.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@ZeolifeGr","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/","url":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/","name":"Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM","isPartOf":{"@id":"https:\/\/zeolife.gr\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/#primaryimage"},"image":{"@id":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/#primaryimage"},"thumbnailUrl":"https:\/\/zeolife.gr\/wp-content\/uploads\/2025\/04\/Effective-Microorganisms-1lit.jpg","datePublished":"2026-06-12T18:20:35+00:00","dateModified":"2026-10-19T20:57:11+00:00","description":"Kostenloser Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM-Active und FKE: Landwirtschaft, Tierhaltung, Kompost, Haushalt, Stallhygiene.","breadcrumb":{"@id":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/#primaryimage","url":"https:\/\/zeolife.gr\/wp-content\/uploads\/2025\/04\/Effective-Microorganisms-1lit.jpg","contentUrl":"https:\/\/zeolife.gr\/wp-content\/uploads\/2025\/04\/Effective-Microorganisms-1lit.jpg","width":900,"height":900},{"@type":"BreadcrumbList","@id":"https:\/\/zeolife.gr\/de\/dosierungsratgeber-fuer-effektive-mikroorganismen-em\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zeolife.gr\/de\/"},{"@type":"ListItem","position":2,"name":"Dosierungsratgeber f\u00fcr Effektive Mikroorganismen EM"}]},{"@type":"WebSite","@id":"https:\/\/zeolife.gr\/de\/#website","url":"https:\/\/zeolife.gr\/de\/","name":"Griechischer Zeolith & Industrieminerale \u2013 Anwendungen & Informationen | Zeolife.gr","description":"Wissenschaftliche Informationen \u00fcber Zeolith und andere Industrieminerale. Eigenschaften und Anwendungen in Landwirtschaft, Umwelt und Gesundheit \u2013 f\u00fcr Fachleute und Verbraucher.","publisher":{"@id":"https:\/\/zeolife.gr\/de\/#organization"},"alternateName":"Griechischer Zeolith: Eigenschaften, Anwendungen & Produkte | Zeolife.gr","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zeolife.gr\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/zeolife.gr\/de\/#organization","name":"Zeolife","alternateName":"Zeolife.gr","url":"https:\/\/zeolife.gr\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/zeolife.gr\/de\/#\/schema\/logo\/image\/","url":"https:\/\/zeolife.gr\/wp-content\/uploads\/2019\/11\/icon-color-square.png","contentUrl":"https:\/\/zeolife.gr\/wp-content\/uploads\/2019\/11\/icon-color-square.png","width":1200,"height":1200,"caption":"Zeolife"},"image":{"@id":"https:\/\/zeolife.gr\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/zeolifegr","https:\/\/x.com\/ZeolifeGr","https:\/\/www.instagram.com\/zeolife.gr\/","https:\/\/www.linkedin.com\/in\/zeolifegr","https:\/\/www.pinterest.com\/zeolifegr\/","https:\/\/www.youtube.com\/channel\/UCUR1v-vb6vutCU3uvnu98WQ","https:\/\/zeolifegr.tumblr.com\/","https:\/\/www.tiktok.com\/@zeolifegr"]}]}},"taxonomy_info":[],"featured_image_src_large":["https:\/\/zeolife.gr\/wp-content\/uploads\/2025\/04\/Effective-Microorganisms-1lit.jpg",900,900,false],"author_info":{"display_name":"Chrysovalantis Chatzigeorgiou","author_link":"https:\/\/zeolife.gr\/de\/author\/valantis\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/zeolife.gr\/de\/wp-json\/wp\/v2\/pages\/19989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zeolife.gr\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zeolife.gr\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zeolife.gr\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/zeolife.gr\/de\/wp-json\/wp\/v2\/comments?post=19989"}],"version-history":[{"count":6,"href":"https:\/\/zeolife.gr\/de\/wp-json\/wp\/v2\/pages\/19989\/revisions"}],"predecessor-version":[{"id":20477,"href":"https:\/\/zeolife.gr\/de\/wp-json\/wp\/v2\/pages\/19989\/revisions\/20477"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zeolife.gr\/de\/wp-json\/wp\/v2\/media\/17413"}],"wp:attachment":[{"href":"https:\/\/zeolife.gr\/de\/wp-json\/wp\/v2\/media?parent=19989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}