{"product_id":"rueckwandgitter-monkeymesh-kit","title":"MantaMESH Rückwandgitter MonkeyMESH — Komplett-KIT (Paneel + 2 Halter)","description":"\n\u003cp\u003e\u003cstrong\u003eRückwandsystem MonkeyMESH (KIT)\u003c\/strong\u003e — Komplett-Set aus 1 Paneel + 2 Haltern. Sichere Lagerung in Hochregalen, verhindert das Durchfallen von Paletten\/Kartons in den Nebengang.\u003c\/p\u003e\n\u003cp\u003eKonfiguriere die passende Variante: \u003cstrong\u003ePaneel-Breite × Höhe × Wandabstand\u003c\/strong\u003e. 6 Paneel-Größen × 3 Abstände (25 \/ 125 \/ 225 mm) = 18 Standard-Kombinationen.\u003c\/p\u003e\n\n\u003cstyle\u003e\n.bs24-prod-staffel { font-family: inherit; margin: 1.25rem 0 1rem; }\n.bs24-prod-staffel h3 { font-size: 1.2rem; margin: 0 0 .35rem; color: #153156; }\n.bs24-prod-staffel .hint { font-size: .85rem; color: #6b7280; margin: 0 0 .75rem; }\n\n\/* Schnell\/Günstig Toggle *\/\n.bs24-mode-toggle { display: inline-flex; gap: 0; border: 1.5px solid #E5E5E5; border-radius: 10px; overflow: hidden; margin: 0 0 .85rem; }\n.bs24-mode-toggle button { background: #fff; border: 0; padding: .5rem .9rem; font-size: .88rem; cursor: pointer; color: #6b7280; font-weight: 600; line-height: 1.2; }\n.bs24-mode-toggle button.active { background: #153156; color: #fff; }\n\n\/* Staffel-Tabelle *\/\n.bs24-prod-staffel table { width: 100%; border-collapse: collapse; font-size: .95rem; }\n.bs24-prod-staffel thead th { background: #153156; color: #fff; font-weight: 600; padding: .5rem .75rem; text-align: left; }\n.bs24-prod-staffel thead th:nth-child(n+2) { text-align: right; }\n.bs24-prod-staffel tbody td { padding: .45rem .75rem; border-bottom: 1px solid #E5E5E5; }\n.bs24-prod-staffel tbody td:nth-child(n+2) { text-align: right; font-variant-numeric: tabular-nums; }\n.bs24-prod-staffel tbody tr.bs24-active { background: #FFF1E5; }\n.bs24-prod-staffel tbody tr.bs24-active td { font-weight: 600; color: #153156; }\n.bs24-prod-staffel tbody tr.bs24-active td:first-child::after { content: \"  ← Deine Menge\"; font-size: .75rem; color: #FF7A00; font-weight: 600; margin-left: .35rem; }\n.bs24-prod-staffel .savings { display: inline-block; background: #6b7280; color: #fff; font-size: .75rem; font-weight: 600; padding: .1rem .45rem; border-radius: 99px; margin-left: .35rem; }\n\n\/* Dein-Preis-Block — prominent below table *\/\n.bs24-current-price { background: linear-gradient(135deg, #FFF1E5 0%, #FFE0C7 100%); border: 1.5px solid #FF7A00; border-radius: 10px; padding: .85rem 1rem; margin: 1rem 0 .5rem; }\n.bs24-current-price .cp-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; color: #153156; }\n.bs24-current-price .cp-main { font-size: 1.5rem; font-weight: 800; color: #153156; line-height: 1.1; margin: .2rem 0; letter-spacing: -.01em; }\n.bs24-current-price .cp-main .suffix { font-size: .95rem; font-weight: 500; }\n.bs24-current-price .cp-total { font-size: .95rem; color: #153156; font-weight: 600; }\n.bs24-current-price .cp-total strong { color: #FF7A00; }\n.bs24-current-price .cp-brutto { font-size: .8rem; color: #6b7280; margin-top: .15rem; }\n\n.bs24-prod-staffel .ref-link { display: inline-block; margin-top: .75rem; background: #153156; color: #fff; padding: .5rem 1rem; border-radius: 6px; text-decoration: none; font-size: .9rem; font-weight: 600; }\n.bs24-prod-staffel .ref-link:hover { filter: brightness(1.1); }\n\u003c\/style\u003e\n\n\n\n\n\n\u003ch3\u003eEigenschaften\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMaterial: verzinkter Stahldraht\u003c\/li\u003e\n\u003cli\u003eLieferumfang KIT: 1 Paneel + 2 Halter (komplett montagebereit)\u003c\/li\u003e\n\u003cli\u003eWandabstand: 25 mm (Standard), 125 mm (mittel), 225 mm (max.)\u003c\/li\u003e\n\u003cli\u003ePaneel und Halter auch einzeln als Ersatz erhältlich (auf Anfrage)\u003c\/li\u003e\n\u003cli\u003eLieferung Schnell: ca. 3 Werktage. Günstig: ca. 35 Werktage\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cdiv class=\"bs24-prod-staffel\"\u003e\n  \u003ch3\u003eStaffelpreise \u0026amp; Lieferung\u003c\/h3\u003e\n  \u003cp class=\"hint\"\u003eWähle Lieferart + Menge — Dein aktueller Preis aktualisiert sich automatisch.\u003c\/p\u003e\n  \u003cdiv class=\"bs24-mode-toggle\" data-bs24-mode-toggle role=\"group\" aria-label=\"Liefermodus\"\u003e\n    \u003cbutton type=\"button\" data-mode=\"schnell\" class=\"active\"\u003e⚡ Schnell (~3 Werktage)\u003c\/button\u003e\n    \u003cbutton type=\"button\" data-mode=\"guenstig\"\u003e💰 Günstig (ca. 35 Werktage)\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003ctable\u003e\n    \u003cthead\u003e\n      \u003ctr\u003e\n        \u003cth\u003eMenge ab\u003c\/th\u003e\n        \u003cth\u003eSchnell (~3 Werktage)\u003c\/th\u003e\n        \u003cth data-bs24-col-guenstig\u003eGünstig (ca. 35 Werktage)\u003c\/th\u003e\n      \u003c\/tr\u003e\n    \u003c\/thead\u003e\n    \u003ctbody\u003e\u003c\/tbody\u003e\n  \u003c\/table\u003e\n  \u003cdiv class=\"bs24-current-price\"\u003e\n    \u003cdiv class=\"cp-label\"\u003eDein aktueller Preis (gewählte Menge + Modus)\u003c\/div\u003e\n    \u003cdiv class=\"cp-main\"\u003e\n\u003cspan data-bs24-unit-price\u003e—\u003c\/span\u003e\u003cspan class=\"suffix\"\u003e \/ KIT netto\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"cp-total\"\u003e\n\u003cspan data-bs24-qty\u003e1\u003c\/span\u003e KIT × \u003cspan data-bs24-unit-2\u003e—\u003c\/span\u003e = \u003cstrong data-bs24-total\u003e—\u003c\/strong\u003e netto\u003c\/div\u003e\n    \u003cdiv class=\"cp-brutto\"\u003eInkl. 19 % MwSt.: \u003cspan data-bs24-brutto\u003e—\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003ca href=\"\/pages\/regalzubehor\" class=\"ref-link\"\u003eIm Konfigurator vergleichen + bestellen →\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if (!window.BS24_PROD_STAFFEL) window.BS24_PROD_STAFFEL = {};\n  Object.assign(window.BS24_PROD_STAFFEL, {\"56912634773882\": {\"t\": [[1, 64.9, 59.0], [12, 64.9, 59.0], [96, 64.9, 59.0], [288, 63.6, 57.8], [504, 62.9, 57.2], [1008, 60.4, 54.9]], \"a\": 3}, \"56912634806650\": {\"t\": [[1, 84.7, 77.0], [12, 84.7, 77.0], [96, 84.7, 77.0], [288, 83.0, 75.4], [504, 80.4, 73.1], [1008, 76.2, 69.3]], \"a\": 3}, \"56912634839418\": {\"t\": [[1, 114.4, 104.0], [12, 114.4, 104.0], [96, 113.2, 103.0], [288, 110.9, 100.9], [504, 107.6, 97.8], [1008, 100.7, 91.5]], \"a\": 3}, \"56912634872186\": {\"t\": [[1, 71.3, 64.8], [12, 71.3, 64.8], [96, 71.3, 64.8], [288, 69.9, 63.6], [504, 68.5, 62.2], [1008, 65.6, 59.7]], \"a\": 3}, \"56912634904954\": {\"t\": [[1, 91.1, 82.8], [12, 91.1, 82.8], [96, 90.2, 82.0], [288, 88.4, 80.4], [504, 86.6, 78.7], [1008, 81.1, 73.7]], \"a\": 3}, \"56912634937722\": {\"t\": [[1, 120.8, 109.8], [12, 120.8, 109.8], [96, 119.6, 108.8], [288, 117.2, 106.6], [504, 113.6, 103.3], [1008, 105.1, 95.6]], \"a\": 3}, \"56912634970490\": {\"t\": [[1, 82.2, 74.8], [12, 82.2, 74.8], [96, 81.4, 74.0], [288, 79.8, 72.5], [504, 78.1, 71.0], [1008, 74.0, 67.3]], \"a\": 3}, \"56912635003258\": {\"t\": [[1, 102.0, 92.8], [12, 102.0, 92.8], [96, 101.0, 91.8], [288, 99.0, 90.0], [504, 95.9, 87.2], [1008, 88.8, 80.7]], \"a\": 3}, \"56912635036026\": {\"t\": [[1, 131.7, 119.8], [12, 131.7, 119.8], [96, 130.4, 118.6], [288, 126.5, 115.0], [504, 122.5, 111.4], [1008, 112.0, 101.8]], \"a\": 3}, \"56912635068794\": {\"t\": [[1, 91.3, 83.0], [12, 91.3, 83.0], [96, 90.4, 82.2], [288, 88.5, 80.5], [504, 85.8, 78.0], [1008, 80.3, 73.0]], \"a\": 3}, \"56912635101562\": {\"t\": [[1, 111.1, 101.0], [12, 111.1, 101.0], [96, 110.0, 100.0], [288, 106.6, 97.0], [504, 103.3, 93.9], [1008, 95.5, 86.8]], \"a\": 3}, \"56912635134330\": {\"t\": [[1, 140.8, 128.0], [12, 140.8, 128.0], [96, 139.4, 126.7], [288, 135.2, 122.9], [504, 129.5, 117.8], [1008, 118.2, 107.5]], \"a\": 3}, \"56912635167098\": {\"t\": [[1, 99.9, 90.8], [12, 99.9, 90.8], [96, 98.9, 89.9], [288, 96.9, 88.1], [504, 93.9, 85.4], [1008, 86.9, 79.0]], \"a\": 3}, \"56912635199866\": {\"t\": [[1, 119.7, 108.8], [12, 119.7, 108.8], [96, 118.5, 107.8], [288, 114.9, 104.5], [504, 110.2, 100.1], [1008, 100.5, 91.4]], \"a\": 3}, \"56912635232634\": {\"t\": [[1, 149.4, 135.8], [12, 149.4, 135.8], [96, 147.9, 134.5], [288, 142.0, 129.0], [504, 137.5, 125.0], [1008, 122.5, 111.4]], \"a\": 3}, \"56912635265402\": {\"t\": [[1, 111.6, 101.4], [12, 111.6, 101.4], [96, 110.5, 100.4], [288, 107.2, 97.4], [504, 103.8, 94.3], [1008, 94.8, 86.2]], \"a\": 3}, \"56912635298170\": {\"t\": [[1, 131.4, 119.4], [12, 131.4, 119.4], [96, 130.1, 118.3], [288, 124.8, 113.5], [504, 120.9, 109.9], [1008, 107.7, 98.0]], \"a\": 3}, \"56912635330938\": {\"t\": [[1, 161.1, 146.4], [12, 161.1, 146.4], [96, 159.5, 145.0], [288, 153.0, 139.1], [504, 148.2, 134.7], [1008, 132.1, 120.1]], \"a\": 3}});\n  if (window.__bs24StaffelInitialized) return;\n  window.__bs24StaffelInitialized = true;\n\n  var MWST = 0.19;\n  var currentMode = 'schnell'; \/\/ 'schnell' | 'guenstig'\n\n  function eur(n){ return n.toLocaleString('de-DE',{minimumFractionDigits:2,maximumFractionDigits:2}) + ' €'; }\n  function currentVariantId(){\n    var m = (location.search||'').match(\/[?\u0026]variant=(\\d+)\/);\n    if (m) return m[1];\n    var inp = document.querySelector('form[action*=\"\/cart\/add\"] [name=\"id\"]');\n    if (inp \u0026\u0026 inp.value) return inp.value;\n    return null;\n  }\n  function currentQty(){\n    var qty = document.querySelector('form[action*=\"\/cart\/add\"] [name=\"quantity\"]');\n    return qty ? Math.max(1, parseInt(qty.value)||1) : 1;\n  }\n  function pickTierIdx(qty, tiers){\n    var idx = -1;\n    for (var j=0; j\u003ctiers.length; j++) if (qty \u003e= tiers[j][0]) idx = j;\n    return idx;\n  }\n  function isMultiMode(tiers){\n    for (var i=0; i\u003ctiers.length; i++) if (Math.abs(tiers[i][1] - tiers[i][2]) \u003e 0.005) return true;\n    return false;\n  }\n  function unitPriceForState(tiers, qty, mode){\n    var idx = pickTierIdx(qty, tiers);\n    if (idx \u003c 0) return tiers[0][mode === 'guenstig' ? 2 : 1];\n    return tiers[idx][mode === 'guenstig' ? 2 : 1];\n  }\n  \/\/ Backward-compatible accessors fuer altes (Array) und neues ({t,a}) Format\n  function getTiers(entry){ return Array.isArray(entry) ? entry : (entry \u0026\u0026 entry.t) || []; }\n  function getAtSchnell(entry){ return Array.isArray(entry) ? null : (entry \u0026\u0026 entry.a); }\n\n  \/\/ ===== Staffel-Tabelle vor Cart-Form verschieben =====\n  function moveStaffelNearCart(){\n    var toggle = document.querySelector('.bs24-prod-staffel [data-bs24-mode-toggle]');\n    if (!toggle) return false;\n    if (toggle.dataset.bs24Moved === '1') return true;\n    var btn = document.querySelector('form[action*=\"\/cart\/add\"] button[type=\"submit\"], form[action*=\"\/cart\/add\"] [name=\"add\"]');\n    if (!btn) return false;\n    var anchor = btn.closest('.product-form__buttons, .product-form__cart, [class*=\"product-form__buttons\"]') || btn;\n    if (!anchor.parentNode) return false;\n    var wrap = document.createElement('div');\n    wrap.className = 'bs24-mode-toggle-floating';\n    wrap.style.cssText = 'margin: .75rem 0 1rem;';\n    var hint = document.createElement('div');\n    hint.style.cssText = 'font-size:.85rem;margin-bottom:.4rem;color:#153156;font-weight:600;';\n    hint.textContent = 'Lieferung wählen:';\n    wrap.appendChild(hint);\n    wrap.appendChild(toggle);\n    anchor.parentNode.insertBefore(wrap, anchor);\n    toggle.dataset.bs24Moved = '1';\n    return true;\n  }\n  function ensureStaffelPosition(){\n    if (moveStaffelNearCart()) return;\n    var attempts = 0;\n    var t = setInterval(function(){\n      if (moveStaffelNearCart() || ++attempts \u003e 20) clearInterval(t);\n    }, 250);\n  }\n\n  \/\/ ===== Brutto-Element im Theme (z.B. \"62,00 € inkl. 19% MwSt.\") aktualisieren =====\n  function updateBruttoDisplay(bruttoUnit){\n    var formatted = eur(bruttoUnit) + ' inkl. 19% MwSt.';\n    var form = document.querySelector('form[action*=\"\/cart\/add\"]');\n    var searchArea = document;\n    if (form) {\n      searchArea = form.closest('section, article, .product, .product-info, .product__info, .product-form, [class*=\"product\"]') || form.parentNode || document;\n    }\n    var pattern = \/^\\s*\\S*\\s*\\d+[.,]\\d+\\s*€?\\s*inkl\\.\\s*\\d+\\s*%?\\s*MwSt\\.\\s*$\/i;\n    var nodes = searchArea.querySelectorAll('p, span, div, td, small, em, strong, b');\n    for (var i = 0; i \u003c nodes.length; i++) {\n      var el = nodes[i];\n      if (el.children.length \u003e 0) continue;\n      var t = (el.textContent || '').trim();\n      if (!pattern.test(t)) continue;\n      el.textContent = formatted;\n      el.dataset.bs24Brutto = '1';\n    }\n  }\n\n  \/\/ ===== Top-Netto-Preis (Theme-Element neben Titel) aktualisieren =====\n  \/\/ Sucht Elemente mit reinem \"€XX,XX\" \/ \"XX,XX €\" Text und ueberschreibt sie mit\n  \/\/ dem aktuellen Tier-Preis. Schliesst Brutto-Elemente (mit \"inkl. MwSt.\") und\n  \/\/ unsere eigenen Bs24-Boxen aus.\n  function updateNettoDisplay(unitNetto){\n    var formatted = eur(unitNetto);\n    var form = document.querySelector('form[action*=\"\/cart\/add\"]');\n    var searchArea = document;\n    if (form) {\n      searchArea = form.closest('section, article, .product, .product-info, .product__info, .product-form, [class*=\"product\"]') || form.parentNode || document;\n    }\n    var pureNettoPattern = \/^\\s*€?\\s*\\d{1,5}[.,]\\d{2}\\s*€?\\s*$\/i;\n    var nodes = searchArea.querySelectorAll('p, span, div, h1, h2, h3, h4, b, strong, em');\n    for (var i = 0; i \u003c nodes.length; i++) {\n      var el = nodes[i];\n      if (el.children.length \u003e 0) continue;\n      if (el.closest \u0026\u0026 el.closest('.bs24-prod-staffel')) continue;\n      if (el.closest \u0026\u0026 el.closest('.bs24-current-price')) continue;\n      var t = (el.textContent || '').trim();\n      if (!pureNettoPattern.test(t)) continue;\n      \/\/ Brutto erkennen: Parent-Text enthaelt \"inkl.\" oder \"MwSt.\" (dann Brutto, nicht Netto-Anchor)\n      var p = el.parentElement;\n      var inBrutto = false;\n      while (p \u0026\u0026 p !== searchArea) {\n        var pt = (p.textContent || '');\n        if (pt.indexOf('inkl.') !== -1) { inBrutto = true; break; }\n        p = p.parentElement;\n      }\n      if (inBrutto) continue;\n      if (!el.dataset.bs24OrigNetto) el.dataset.bs24OrigNetto = t;\n      el.textContent = formatted;\n      el.dataset.bs24Netto = '1';\n    }\n  }\n\n  \/\/ ===== Theme-Lieferzeit (z.B. \"Lieferzeit: 2-4 Werktage\") dynamisch ueberschreiben =====\n  \/\/ Schnell-Modus: variant-spezifische at_schnell.  Guenstig-Modus: \"ca. 35 Werktage\".\n  \/\/ Walked alle Text-Nodes (auch in Hilfs-Spans) und ersetzt das Muster gezielt.\n  function updateLieferzeitDisplay(atSchnell){\n    var value;\n    if (currentMode === 'guenstig') value = 'ca. 35 Werktage';\n    else if (atSchnell)             value = atSchnell + ' Werktage';\n    else return;\n\n    var fullPattern  = \/Lieferzeit\\s*:\\s*[\\d\\-\\u2013\\s]+\\s*Werktage?\/gi; \/\/ \"Lieferzeit: 2-4 Werktage\"\n    var valueOnlyPat = \/([\\d\\u2013]+(?:\\s*[\\-\\u2013]\\s*[\\d\\u2013]+)?)\\s*Werktage?\/i; \/\/ nur \"2-4 Werktage\"\n    var newFull   = 'Lieferzeit: ' + value;\n    var newValue  = value;\n\n    if (!document.body || !document.createTreeWalker) return;\n    var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false);\n    var nodes = [];\n    var n;\n    while ((n = walker.nextNode())) nodes.push(n);\n\n    for (var i = 0; i \u003c nodes.length; i++) {\n      var node = nodes[i];\n      var parent = node.parentNode;\n      if (!parent || parent.closest \u0026\u0026 parent.closest('.bs24-prod-staffel')) continue;\n      if (parent.closest \u0026\u0026 parent.closest('.bs24-current-price')) continue;\n      var t = node.nodeValue || '';\n      if (!t.trim()) continue;\n      \/\/ Variante 1: ganzes \"Lieferzeit: 2-4 Werktage\" im selben Text\n      if (fullPattern.test(t)) {\n        fullPattern.lastIndex = 0;\n        node.nodeValue = t.replace(fullPattern, newFull);\n        continue;\n      }\n      \/\/ Variante 2: nur \"2-4 Werktage\" im Text (Label in Geschwister-Element)\n      \/\/ Nur aktiv wenn ein Geschwister\/Nachbar \"Lieferzeit\" enthaelt\n      if (valueOnlyPat.test(t)) {\n        var pTxt = (parent.textContent || '');\n        if (\/Lieferzeit\/i.test(pTxt) || (parent.parentNode \u0026\u0026 \/Lieferzeit\/i.test(parent.parentNode.textContent || ''))) {\n          node.nodeValue = t.replace(valueOnlyPat, newValue);\n        }\n      }\n    }\n  }\n\n  \/\/ ===== Cart-Button-Text mit Gesamtpreis aktualisieren =====\n  function updateCartButton(totalNetto){\n    var btn = document.querySelector('form[action*=\"\/cart\/add\"] button[type=\"submit\"], form[action*=\"\/cart\/add\"] [name=\"add\"]');\n    if (!btn) return;\n    if (!btn.dataset.bs24Base) {\n      var orig = (btn.textContent || '').trim();\n      \/\/ Strip vorhandenen Preisteil weg\n      var stripped = orig.replace(\/\\s*[-–•|]?\\s*€?\\s*\\d{1,5}[.,]\\d{2}\\s*€?\\s*$\/, '').trim();\n      btn.dataset.bs24Base = stripped || orig;\n    }\n    btn.textContent = btn.dataset.bs24Base + ' – ' + eur(totalNetto);\n  }\n\n  \/\/ ===== Hidden Input fuer cart-property \"Lieferung\" =====\n  function updateLieferungInput(){\n    var form = document.querySelector('form[action*=\"\/cart\/add\"]');\n    if (!form) return;\n    var input = form.querySelector('input[name=\"properties[Lieferung]\"]');\n    if (!input) {\n      input = document.createElement('input');\n      input.type = 'hidden';\n      input.name = 'properties[Lieferung]';\n      form.appendChild(input);\n    }\n    input.value = currentMode === 'guenstig' ? 'Günstig (ca. 35 Werktage)' : 'Schnell (2–10 Werktage)';\n  }\n\n  function setText(sel, val){\n    var el = document.querySelector(sel);\n    if (el) el.textContent = String(val);\n  }\n\n  \/\/ ===== Haupt-Render =====\n  function render(){\n    var vid = currentVariantId();\n    var entry = window.BS24_PROD_STAFFEL \u0026\u0026 window.BS24_PROD_STAFFEL[vid];\n    var tiers = getTiers(entry);\n    var atSchnell = getAtSchnell(entry);\n    var container = document.querySelector('.bs24-prod-staffel');\n    if (!container || !tiers || !tiers.length) return;\n    var qty = currentQty();\n    var multi = isMultiMode(tiers);\n    var activeIdx = pickTierIdx(qty, tiers);\n\n    \/\/ Toggle-Sichtbarkeit + Günstig-Spalte\n    var toggle = container.querySelector('[data-bs24-mode-toggle]');\n    if (toggle) toggle.style.display = multi ? '' : 'none';\n    var guenstigCol = container.querySelector('[data-bs24-col-guenstig]');\n    if (guenstigCol) guenstigCol.style.display = multi ? '' : 'none';\n\n    \/\/ Tabelle rendern\n    var rowsHtml = tiers.map(function(t, idx){\n      var active = idx === activeIdx ? ' class=\"bs24-active\"' : '';\n      var savings = '';\n      if (idx \u003e 0) {\n        var savePct = Math.round((1 - t[1]\/tiers[0][1]) * 100);\n        if (savePct \u003e 0) savings = ' \u003cspan class=\"savings\"\u003e-' + savePct + '%\u003c\/span\u003e';\n      }\n      var guenstigCell = multi ? ('\u003ctd\u003e'+eur(t[2])+'\u003c\/td\u003e') : '';\n      return '\u003ctr'+active+'\u003e'\n        + '\u003ctd\u003eab '+t[0]+' Stk'+savings+'\u003c\/td\u003e'\n        + '\u003ctd\u003e'+eur(t[1])+'\u003c\/td\u003e'\n        + guenstigCell\n        + '\u003c\/tr\u003e';\n    }).join('');\n    container.querySelector('tbody').innerHTML = rowsHtml;\n\n    \/\/ Dein-Preis-Block\n    var unitNetto = unitPriceForState(tiers, qty, currentMode);\n    var totalNetto = unitNetto * qty;\n    var bruttoUnit = unitNetto * (1 + MWST);\n    var bruttoTotal = totalNetto * (1 + MWST);\n    setText('[data-bs24-unit-price]', eur(unitNetto));\n    setText('[data-bs24-unit-2]', eur(unitNetto));\n    setText('[data-bs24-qty]', qty);\n    setText('[data-bs24-total]', eur(totalNetto));\n    setText('[data-bs24-brutto]', eur(bruttoTotal));\n\n    \/\/ Theme-Elemente aktualisieren\n    updateCartButton(totalNetto);\n    updateBruttoDisplay(bruttoUnit);\n    updateNettoDisplay(unitNetto);\n    updateLieferzeitDisplay(atSchnell);\n\n    \/\/ Cart-Property Lieferung setzen\n    updateLieferungInput();\n  }\n\n  \/\/ ===== Initial =====\n  ensureStaffelPosition();\n  render();\n\n  \/\/ MutationObserver: bei Theme-Rerender Staffel wieder an die richtige Stelle ziehen\n  if (window.MutationObserver) {\n    var mo = new MutationObserver(function(){\n      moveStaffelNearCart();\n    });\n    mo.observe(document.body, { childList: true, subtree: true });\n  }\n\n  \/\/ Mode-Toggle-Buttons\n  document.querySelectorAll('[data-bs24-mode-toggle] button').forEach(function(b){\n    b.addEventListener('click', function(){\n      currentMode = b.dataset.mode;\n      document.querySelectorAll('[data-bs24-mode-toggle] button').forEach(function(bb){\n        bb.classList.toggle('active', bb.dataset.mode === currentMode);\n      });\n      render();\n    });\n  });\n\n  \/\/ Re-render bei Variant-\/Mengen-Wechsel\n  document.addEventListener('change', function(e){\n    var t = e.target; if (!t) return;\n    if (t.name === 'id' || t.name === 'quantity') { setTimeout(render, 30); return; }\n    if (t.closest \u0026\u0026 t.closest('form[action*=\"\/cart\/add\"]')) setTimeout(render, 60);\n  });\n  document.addEventListener('input', function(e){\n    var t = e.target;\n    if (t \u0026\u0026 t.name === 'quantity') setTimeout(render, 30);\n  });\n  window.addEventListener('popstate', render);\n\n  \/\/ Polling-Fallback + Lieferzeit-Watchdog (Theme rendert evtl. lazy)\n  var lastVid = currentVariantId();\n  var lastQty = currentQty();\n  setInterval(function(){\n    var v = currentVariantId();\n    var q = currentQty();\n    if (v !== lastVid || q !== lastQty) { lastVid = v; lastQty = q; render(); }\n    \/\/ Lieferzeit auch ohne Variant-Wechsel oft genug ausprobieren,\n    \/\/ falls das Theme das Element spaeter rendert \/ aktualisiert.\n    var entry = window.BS24_PROD_STAFFEL \u0026\u0026 window.BS24_PROD_STAFFEL[v];\n    var atSchnell = getAtSchnell(entry);\n    if (atSchnell) updateLieferzeitDisplay(atSchnell);\n  }, 600);\n\n  \/\/ Mehrfache Initial-Versuche fuer Theme-lazy-Render\n  [200, 700, 1500, 3000, 5000].forEach(function(delay){\n    setTimeout(function(){\n      var entry = window.BS24_PROD_STAFFEL \u0026\u0026 window.BS24_PROD_STAFFEL[currentVariantId()];\n      var atSchnell = getAtSchnell(entry);\n      if (atSchnell) updateLieferzeitDisplay(atSchnell);\n    }, delay);\n  });\n})();\n\u003c\/script\u003e\n\u003cp style=\"font-size:.9rem;color:#666\"\u003eBrauchst Du eine Sondergröße oder besondere Halter? \u003ca href=\"\/pages\/contact\" style=\"color:#0B61CD\"\u003eBeratung anfragen\u003c\/a\u003e.\u003c\/p\u003e","brand":"MantaMESH","offers":[{"title":"1825 mm \/ 1200 mm \/ 25 mm","offer_id":56912634773882,"sku":"MM-24+41","price":64.9,"currency_code":"EUR","in_stock":true},{"title":"1825 mm \/ 1200 mm \/ 125 mm","offer_id":56912634806650,"sku":"MM-24+42","price":84.7,"currency_code":"EUR","in_stock":true},{"title":"1825 mm \/ 1200 mm \/ 225 mm","offer_id":56912634839418,"sku":"MM-24+40","price":114.4,"currency_code":"EUR","in_stock":true},{"title":"1825 mm \/ 1500 mm \/ 25 mm","offer_id":56912634872186,"sku":"MM-56+41","price":71.3,"currency_code":"EUR","in_stock":true},{"title":"1825 mm \/ 1500 mm \/ 125 mm","offer_id":56912634904954,"sku":"MM-56+42","price":91.1,"currency_code":"EUR","in_stock":true},{"title":"1825 mm \/ 1500 mm \/ 225 mm","offer_id":56912634937722,"sku":"MM-56+40","price":120.8,"currency_code":"EUR","in_stock":true},{"title":"2700 mm \/ 1200 mm \/ 25 mm","offer_id":56912634970490,"sku":"MM-55+41","price":82.2,"currency_code":"EUR","in_stock":true},{"title":"2700 mm \/ 1200 mm \/ 125 mm","offer_id":56912635003258,"sku":"MM-55+42","price":102.0,"currency_code":"EUR","in_stock":true},{"title":"2700 mm \/ 1200 mm \/ 225 mm","offer_id":56912635036026,"sku":"MM-55+40","price":131.7,"currency_code":"EUR","in_stock":true},{"title":"2700 mm \/ 1500 mm \/ 25 mm","offer_id":56912635068794,"sku":"MM-58+41","price":91.3,"currency_code":"EUR","in_stock":true},{"title":"2700 mm \/ 1500 mm \/ 125 mm","offer_id":56912635101562,"sku":"MM-58+42","price":111.1,"currency_code":"EUR","in_stock":true},{"title":"2700 mm \/ 1500 mm \/ 225 mm","offer_id":56912635134330,"sku":"MM-58+40","price":140.8,"currency_code":"EUR","in_stock":true},{"title":"3600 mm \/ 1200 mm \/ 25 mm","offer_id":56912635167098,"sku":"MM-189+41","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"3600 mm \/ 1200 mm \/ 125 mm","offer_id":56912635199866,"sku":"MM-189+42","price":119.7,"currency_code":"EUR","in_stock":true},{"title":"3600 mm \/ 1200 mm \/ 225 mm","offer_id":56912635232634,"sku":"MM-189+40","price":149.4,"currency_code":"EUR","in_stock":true},{"title":"3600 mm \/ 1500 mm \/ 25 mm","offer_id":56912635265402,"sku":"MM-190+41","price":111.6,"currency_code":"EUR","in_stock":true},{"title":"3600 mm \/ 1500 mm \/ 125 mm","offer_id":56912635298170,"sku":"MM-190+42","price":131.4,"currency_code":"EUR","in_stock":true},{"title":"3600 mm \/ 1500 mm \/ 225 mm","offer_id":56912635330938,"sku":"MM-190+40","price":161.1,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0921\/8306\/9050\/files\/padded_86c0be83-427f-4641-9db2-4df2b36a0808.png?v=1779470671","url":"https:\/\/betriebsschutz24.com\/products\/rueckwandgitter-monkeymesh-kit","provider":"Betriebsschutz24","version":"1.0","type":"link"}