{"id":10863,"date":"2026-07-28T14:45:07","date_gmt":"2026-07-28T14:45:07","guid":{"rendered":"https:\/\/nispel.athene.wpspace.me\/angebotsanfrage\/"},"modified":"2026-07-28T14:45:07","modified_gmt":"2026-07-28T14:45:07","slug":"angebotsanfrage","status":"publish","type":"page","link":"https:\/\/nispel.com\/en\/angebotsanfrage\/","title":{"rendered":"Request for quotation"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Sie brauchen ein schriftliches Angebot, einen Staffelpreis oder sind unsicher, welches Teil zu Ihrem Ger&auml;t passt? Schicken Sie uns Ihre Anfrage &ndash; unverbindlich und kostenfrei.<\/p>\n\t<div class=\"nsp-rfq-hof\" id=\"nsp-rfq\">\n\t<form class=\"nsp-rfq\" method=\"post\" action=\"https:\/\/nispel.com\/wp-admin\/admin-post.php\">\n\t\t<input type=\"hidden\" id=\"nispel_rfq_nonce\" name=\"nispel_rfq_nonce\" value=\"0d1479ca2e\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/10863\" \/>\t\t<input type=\"hidden\" name=\"action\" value=\"nispel_rfq\">\n\t\t<input type=\"hidden\" name=\"zeit\" value=\"1793099048\">\n\t\t<input type=\"hidden\" name=\"artikel_zurueck\" value=\"0\">\n\t\t<p class=\"nsp-rfq-falle\" style=\"position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none\" aria-hidden=\"true\"><label>Bitte nicht ausf\u00fcllen <input type=\"text\" name=\"webseite\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/p>\n\n\t\t\n\t\t<div class=\"nsp-rfq-raster\">\n\t\t<div class=\"nsp-rfq-links\">\n\t\t<section class=\"nsp-rfq-block\" data-block=\"positionen\" aria-labelledby=\"nsp-rfq-h-pos\">\n\t\t\t<h2 id=\"nsp-rfq-h-pos\"><span class=\"nsp-rfq-nr\" aria-hidden=\"true\">1<\/span>Ihre Positionen<\/h2>\n\t\t\t<ul class=\"nsp-rfq-liste\" data-naechster=\"0\">\n\t\t\t\t\t\t<\/ul>\n\t\t\t<p class=\"nsp-rfq-leer\">Noch keine Position gew\u00e4hlt. Suchen Sie unten nach Artikelnummer oder Bezeichnung oder beschreiben Sie Ihren Bedarf im Feld \u201eIhre Nachricht\u201c.<\/p>\n\t\t\t<p class=\"nsp-rfq-ansage\" aria-live=\"polite\"><\/p>\n\t\t\t\t\t\t<div class=\"nsp-rfq-zufuegen\" data-quelle=\"https:\/\/nispel.com\/en\/wp-json\/nispel\/v1\/suchindex\" hidden>\n\t\t\t\t<label for=\"nsp-rfq-suche\">Weiteren Artikel hinzuf\u00fcgen<\/label>\n\t\t\t\t<div class=\"nsp-rfq-suchfeld\">\n\t\t\t\t\t<input type=\"search\" id=\"nsp-rfq-suche\" autocomplete=\"off\" spellcheck=\"false\"\n\t\t\t\t\t\tplaceholder=\"Artikelnummer oder Bezeichnung \u2026\" aria-describedby=\"nsp-rfq-suchhilfe\">\n\t\t\t\t\t<ul class=\"nsp-rfq-vorschlaege\" hidden><\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t<p class=\"nsp-rfq-suchhilfe\" id=\"nsp-rfq-suchhilfe\">Ab zwei Zeichen durchsuchen wir das gesamte Sortiment.\n\t\t\t\t\t<button type=\"button\" class=\"nsp-rfq-freitaste\">Artikel nicht dabei? Position frei beschreiben<\/button><\/p>\n\t\t\t<\/div>\n\t\t\t<p class=\"nsp-rfq-hinweis\">Listenpreise netto zzgl. gesetzlicher Mehrwertsteuer. Ihr Angebot kann mengen- und kundenabh\u00e4ngig davon abweichen.<\/p>\n\t\t<\/section>\n\n\t\t<section class=\"nsp-rfq-block\" data-block=\"angaben\" aria-labelledby=\"nsp-rfq-h-ang\">\n\t\t\t<h2 id=\"nsp-rfq-h-ang\"><span class=\"nsp-rfq-nr\" aria-hidden=\"true\">2<\/span>Ihre Angaben<\/h2>\n\t\t\t<p class=\"nsp-rfq-pflicht-hinweis\">Felder mit <span class=\"nsp-rfq-pflicht\">*<\/span> brauchen wir f\u00fcr das Angebot, die \u00fcbrigen helfen uns beim Pr\u00fcfen.<\/p>\n\t\t\t<div class=\"nsp-rfq-felder\">\n\t\t\t\t<div class=\"nsp-rfq-feld\"><label for=\"nsp-firma\">Firma \/ Einrichtung <span class=\"nsp-rfq-pflicht\" aria-hidden=\"true\">*<\/span><\/label><input id=\"nsp-firma\" name=\"firma\" type=\"text\" required autocomplete=\"organization\"><\/div>\n\t\t\t\t<div class=\"nsp-rfq-feld\"><label for=\"nsp-person\">Ansprechpartner <span class=\"nsp-rfq-pflicht\" aria-hidden=\"true\">*<\/span><\/label><input id=\"nsp-person\" name=\"person\" type=\"text\" required autocomplete=\"name\"><\/div>\n\t\t\t\t<div class=\"nsp-rfq-feld\"><label for=\"nsp-mail\">E-Mail <span class=\"nsp-rfq-pflicht\" aria-hidden=\"true\">*<\/span><\/label><input id=\"nsp-mail\" name=\"mail\" type=\"email\" required autocomplete=\"email\" spellcheck=\"false\"><\/div>\n\t\t\t\t<div class=\"nsp-rfq-feld\"><label for=\"nsp-tel\">Telefon<\/label><input id=\"nsp-tel\" name=\"tel\" type=\"tel\" autocomplete=\"tel\"><\/div>\n\t\t\t\t<div class=\"nsp-rfq-feld\"><label for=\"nsp-knr\">Kundennummer <span class=\"nsp-rfq-opt\">(falls vorhanden)<\/span><\/label><input id=\"nsp-knr\" name=\"knr\" type=\"text\" autocomplete=\"off\"><\/div>\n\t\t\t\t<div class=\"nsp-rfq-feld\"><label for=\"nsp-geraet\">Ger\u00e4t \/ Modell <span class=\"nsp-rfq-opt\">(hilft bei der Kompatibilit\u00e4t)<\/span><\/label><input id=\"nsp-geraet\" name=\"geraet\" type=\"text\" autocomplete=\"off\"><\/div>\n\t\t\t\t<div class=\"nsp-rfq-feld nsp-rfq-breit\"><label for=\"nsp-text\">Ihre Nachricht <span class=\"nsp-rfq-pflicht\" aria-hidden=\"true\">*<\/span><\/label><textarea id=\"nsp-text\" name=\"text\" rows=\"3\" required placeholder=\"Zum Beispiel Menge, gew\u00fcnschter Liefertermin oder Fragen zu Ihrem Ger\u00e4t.\"><\/textarea><\/div>\n\t\t\t<\/div>\n\t\t<\/section>\n\t\t<\/div>\n\n\t\t<aside class=\"nsp-rfq-kaufblock\" id=\"nsp-rfq-block\" aria-labelledby=\"nsp-rfq-zus\">\n\t\t\t<div class=\"nsp-rfq-kb-kopf\">\n\t\t\t\t<div><h2 id=\"nsp-rfq-zus\">Ihre Anfrage<\/h2><span class=\"nsp-rfq-zus-pos\">Noch keine Position<\/span><\/div>\n\t\t\t\t<div class=\"nsp-rfq-kb-summe\"><b class=\"nsp-rfq-ges\"><span class=\"woocommerce-Price-amount amount\">0,00&nbsp;<span class=\"woocommerce-Price-currencySymbol\" dir=\"auto\">&euro;<\/span><\/span><\/b><span>netto<\/span><\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"nsp-rfq-kb-rumpf\">\n\t\t\t\t<div class=\"nsp-rfq-stand\"><div class=\"nsp-rfq-stand-text\"><span>Ihr Stand<\/span><b>Noch 6 Angaben<\/b><\/div>\n\t\t\t\t\t<div class=\"nsp-rfq-segmente\" aria-hidden=\"true\"><i><b><\/b><\/i><i><b><\/b><\/i><i><b><\/b><\/i><i><b><\/b><\/i><i><b><\/b><\/i><i><b><\/b><\/i><\/div><\/div>\n\t\t\t\t<ul class=\"nsp-rfq-stand-liste\">\n\t\t\t\t\t<li data-feld=\"positionen\"><a class=\"nsp-rfq-sprung\" href=\"#nsp-rfq-suche\" data-sprung><span class=\"nsp-rfq-ring\" aria-hidden=\"true\"><\/span><span class=\"nsp-rfq-sname\"><small>Positionen<\/small><span class=\"nsp-rfq-wert\"><span class=\"nsp-rfq-zus-pos\">Noch keine Position<\/span><\/span><\/span><span class=\"nsp-rfq-tun\">hinzuf\u00fcgen<\/span><\/a><\/li><li data-feld=\"firma\"><a class=\"nsp-rfq-sprung\" href=\"#nsp-firma\" data-sprung><span class=\"nsp-rfq-ring\" aria-hidden=\"true\"><\/span><span class=\"nsp-rfq-sname\"><small>Firma \/ Einrichtung<\/small><span class=\"nsp-rfq-wert\" data-wert=\"firma\"><span class=\"nsp-rfq-offen\">noch offen<\/span><\/span><\/span><span class=\"nsp-rfq-tun\">eintragen<\/span><\/a><\/li><li data-feld=\"person\"><a class=\"nsp-rfq-sprung\" href=\"#nsp-person\" data-sprung><span class=\"nsp-rfq-ring\" aria-hidden=\"true\"><\/span><span class=\"nsp-rfq-sname\"><small>Ansprechpartner<\/small><span class=\"nsp-rfq-wert\" data-wert=\"person\"><span class=\"nsp-rfq-offen\">noch offen<\/span><\/span><\/span><span class=\"nsp-rfq-tun\">eintragen<\/span><\/a><\/li><li data-feld=\"mail\"><a class=\"nsp-rfq-sprung\" href=\"#nsp-mail\" data-sprung><span class=\"nsp-rfq-ring\" aria-hidden=\"true\"><\/span><span class=\"nsp-rfq-sname\"><small>E-Mail<\/small><span class=\"nsp-rfq-wert\" data-wert=\"mail\"><span class=\"nsp-rfq-offen\">noch offen<\/span><\/span><\/span><span class=\"nsp-rfq-tun\">eintragen<\/span><\/a><\/li><li data-feld=\"text\"><a class=\"nsp-rfq-sprung\" href=\"#nsp-text\" data-sprung><span class=\"nsp-rfq-ring\" aria-hidden=\"true\"><\/span><span class=\"nsp-rfq-sname\"><small>Ihre Nachricht<\/small><span class=\"nsp-rfq-wert\" data-wert=\"text\"><span class=\"nsp-rfq-offen\">noch offen<\/span><\/span><\/span><span class=\"nsp-rfq-tun\">eintragen<\/span><\/a><\/li>\t\t\t\t\t<li data-feld=\"einwilligung\"><label class=\"nsp-rfq-einw\" for=\"nsp-einw\"><input id=\"nsp-einw\" type=\"checkbox\" name=\"einwilligung\" value=\"1\" required><span>Ich bin einverstanden, dass meine Angaben zur Bearbeitung dieser Anfrage gespeichert und verwendet werden. Hinweise dazu in der <a href=\"https:\/\/nispel.com\/en\/datenschutz\/\">Datenschutzerkl\u00e4rung<\/a>.<\/span><\/label><\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t<button type=\"submit\" class=\"nsp-rfq-senden\">Angebot anfordern<\/button>\n\t\t\t\t<p class=\"nsp-rfq-sicher\"><svg viewBox=\"0 0 20 20\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"M10 2l6 2.5v5c0 4-2.7 6.8-6 8.5C6.7 16.3 4 13.5 4 9.5v-5z\" fill=\"none\" stroke=\"#1d7a46\" stroke-width=\"1.6\" stroke-linejoin=\"round\"\/><path d=\"M7.2 10l2 2 3.6-3.8\" fill=\"none\" stroke=\"#1d7a46\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span>Unverbindlich und kostenfrei. Mit der Anfrage bestellen Sie noch nichts.<\/span><\/p>\n\t\t\t\t<p class=\"nsp-rfq-weg-info\">Ihre Anfrage geht an <a href=\"mailto:shop@nispel.com\">shop@nispel.com<\/a>. Lieber telefonieren? <a class=\"nsp-rfq-tel nsp-ohne-symbol\" href=\"tel:+49236336630\"><svg viewBox=\"0 0 20 20\" width=\"15\" height=\"15\" aria-hidden=\"true\"><path d=\"M6.5 2.5l2 4-1.6 1.2a9 9 0 0 0 5.4 5.4l1.2-1.6 4 2-.8 3a2 2 0 0 1-2 1.5C8.3 17.7 2.3 11.7 2 5.3A2 2 0 0 1 3.5 3.3z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\/><\/svg>02363&nbsp;3663-0<\/a><br>\n\t\t\t\t\t<span class=\"nsp-rfq-zeit\">Mo\u2013Do 7:45\u201316:30 Uhr, Fr 7:45\u201313:00 Uhr \u00b7 nur f\u00fcr Fachkreise (B2B)<\/span><\/p>\n\t\t\t<\/div>\n\t\t<\/aside>\n\t\t<\/div>\n\t<\/form>\n\t<div class=\"nsp-rfq-leiste\"><span class=\"nsp-rfq-l-text\"><span class=\"nsp-rfq-ges\"><span class=\"woocommerce-Price-amount amount\">0,00&nbsp;<span class=\"woocommerce-Price-currencySymbol\" dir=\"auto\">&euro;<\/span><\/span><\/span> netto<b>Noch 6 Angaben<\/b><\/span><a class=\"nsp-rfq-l-knopf\" href=\"#nsp-rfq-block\">Zum Absenden<\/a><\/div>\n\t<\/div>\n\t<style id=\"nsp-rfq-css\">\n#nsp-rfq{--n:#1F3A68;--r:#C0000E;--g:#3a4a68;--l:#5b6a85;--li:#d7dde8;--fl:#f4f6fa;--gr:#1d7a46;\n --haken:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\");\n --haken-gruen:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='9' fill='%231d7a46'\/%3E%3Cpath d='M5.8 10.4l2.8 2.8 5.6-6' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\");\n color:var(--n);font-size:16px;line-height:1.5}\n#nsp-rfq *{box-sizing:border-box}\n#nsp-rfq p{margin:0}\n#nsp-rfq h2{margin:0;padding:0;letter-spacing:0}\n#nsp-rfq h2::before,#nsp-rfq h2::after{display:none;content:none}\n#nsp-rfq a{color:var(--n);text-decoration:underline;text-underline-offset:3px}\n#nsp-rfq a:hover{color:var(--r)}\n#nsp-rfq :focus-visible{outline:2px solid var(--r);outline-offset:2px}\n#nsp-rfq button,#nsp-rfq a{-webkit-tap-highlight-color:rgba(31,58,104,.12)}\n#nsp-rfq h2{text-wrap:balance}\n#nsp-rfq .nsp-rfq-kaufblock,#nsp-rfq input,#nsp-rfq textarea{scroll-margin-top:24px;scroll-margin-bottom:96px}\n\/* Widget block-40 (nsp-rfq-v1, ueber Snippet 44 im Kopf) setzt .nsp-rfq{max-width:920px} aus der alten Fassung;\n   im Hof wuerde das Raster sonst auf 920 px gedrueckt und Namen brechen mitten im Wort (F-2026-10-08-d). *\/\n#nsp-rfq form.nsp-rfq{max-width:none;width:100%}\n#nsp-rfq .nsp-rfq-raster{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:40px;align-items:start}\n#nsp-rfq .nsp-rfq-fehler{background:#fdeeee;border:1px solid #f3c9c9;color:#8a1414;border-radius:8px;padding:12px 14px;margin:0 0 20px;font-size:15px}\n#nsp-rfq .nsp-rfq-block{margin:0 0 32px}\n#nsp-rfq .nsp-rfq-block h2{display:flex;align-items:center;gap:10px;font-size:22px;line-height:1.25;font-weight:600;color:var(--n);margin:0 0 16px}\n#nsp-rfq .nsp-rfq-nr{flex:none;width:28px;height:28px;border-radius:50%;background:var(--n);color:#fff;font-size:15px;display:grid;place-items:center}\n#nsp-rfq .nsp-rfq-block.fertig .nsp-rfq-nr{background:var(--gr) var(--haken) center\/18px no-repeat;color:transparent}\n#nsp-rfq .nsp-rfq-liste{list-style:none;margin:0;padding:0;border-top:1px solid var(--li)}\n#nsp-rfq .nsp-rfq-zeile{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto 44px;gap:16px;align-items:center;padding:14px 0;margin:0;border-bottom:1px solid var(--li)}\n#nsp-rfq .nsp-rfq-bild{display:block;width:64px;height:64px;border:1px solid var(--li);border-radius:4px;background:#fff;overflow:hidden}\n#nsp-rfq .nsp-rfq-bild img{display:block;width:100%;height:100%;object-fit:contain}\n#nsp-rfq .nsp-rfq-bild-platz{display:block;width:100%;height:100%;background:#eaf0f9}\n#nsp-rfq .nsp-rfq-info{min-width:0;display:flex;flex-direction:column}\n#nsp-rfq a.nsp-rfq-name,#nsp-rfq span.nsp-rfq-name{font-weight:600;color:var(--n);text-decoration:none;overflow-wrap:anywhere}\n#nsp-rfq a.nsp-rfq-name:hover{text-decoration:underline;color:var(--r)}\n#nsp-rfq .nsp-rfq-art{font-size:13px;color:var(--l)}\n#nsp-rfq .nsp-rfq-fahne{align-self:flex-start;margin:2px 0 1px;padding:1px 8px;border-radius:999px;background:#e8eef8;color:var(--n);font-size:12px;font-weight:600}\n#nsp-rfq .nsp-rfq-stepper{display:flex;align-items:stretch;border:1px solid #b8c3d6;border-radius:6px;overflow:hidden;height:46px}\n#nsp-rfq .nsp-rfq-stepper button{width:42px;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:var(--fl);color:var(--n);font:inherit;font-size:20px;line-height:1;cursor:pointer;touch-action:manipulation}\n#nsp-rfq .nsp-rfq-stepper button:hover{background:#e3e8f1}\n#nsp-rfq .nsp-rfq-stepper input{width:52px;height:auto;min-height:0;margin:0;padding:0;border:0;border-left:1px solid var(--li);border-right:1px solid var(--li);border-radius:0;text-align:center;font:inherit;color:var(--n);background:#fff;-moz-appearance:textfield}\n#nsp-rfq .nsp-rfq-stepper input::-webkit-inner-spin-button,#nsp-rfq .nsp-rfq-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n#nsp-rfq .nsp-rfq-preise{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums;min-width:118px;text-align:right}\n#nsp-rfq .nsp-rfq-einzel{font-size:13px;color:var(--l)}\n#nsp-rfq .nsp-rfq-summe{font-size:17px;font-weight:700;color:var(--n)}\n#nsp-rfq .nsp-rfq-entfernen{width:44px;height:44px;display:grid;place-items:center;padding:0;margin:0;border:0;border-radius:6px;background:none;color:var(--l);line-height:0;text-decoration:none;cursor:pointer;touch-action:manipulation}\n#nsp-rfq .nsp-rfq-entfernen svg{display:block}\n#nsp-rfq .nsp-rfq-entfernen:hover{color:var(--r);background:#fbecec}\n#nsp-rfq .nsp-rfq-leer{margin:0;padding:16px;border:1px solid var(--li);border-radius:8px;background:var(--fl);color:var(--g)}\n#nsp-rfq .nsp-rfq-leer[hidden]{display:none}\n#nsp-rfq .nsp-rfq-zeile.geht{opacity:0;transform:translateX(16px);transition:opacity .2s ease,transform .2s ease}\n#nsp-rfq .nsp-rfq-ansage{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n#nsp-rfq .nsp-rfq-zufuegen{margin-top:16px}\n#nsp-rfq .nsp-rfq-zufuegen[hidden]{display:none}\n#nsp-rfq .nsp-rfq-zufuegen>label,#nsp-rfq .nsp-rfq-feld label{display:block;font-size:13px;font-weight:600;color:var(--g);margin:0 0 5px}\n#nsp-rfq .nsp-rfq-suchfeld{position:relative}\n#nsp-rfq input[type=search],#nsp-rfq .nsp-rfq-feld input,#nsp-rfq .nsp-rfq-feld textarea,#nsp-rfq .nsp-rfq-freifeld{width:100%;min-height:44px;margin:0;padding:10px 12px;border:1px solid #b8c3d6;border-radius:6px;font:inherit;font-size:16px;color:var(--n);background:#fff;box-shadow:none}\n#nsp-rfq .nsp-rfq-feld textarea{resize:vertical;min-height:80px}\n#nsp-rfq input:hover,#nsp-rfq textarea:hover{border-color:#8796b0}\n#nsp-rfq input:focus,#nsp-rfq textarea:focus{border-color:var(--n);outline:2px solid rgba(31,58,104,.25);outline-offset:0}\n#nsp-rfq .nsp-rfq-vorschlaege{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--li);border-radius:8px;box-shadow:0 10px 26px rgba(24,34,52,.14);max-height:320px;overflow:auto;overscroll-behavior:contain}\n#nsp-rfq .nsp-rfq-vorschlaege[hidden]{display:none}\n#nsp-rfq .nsp-rfq-vorschlaege li{margin:0}\n#nsp-rfq .nsp-rfq-vorschlag{display:flex;flex-direction:column;gap:2px;width:100%;min-height:44px;text-align:left;border:0;background:none;padding:8px 10px;border-radius:6px;cursor:pointer;font:inherit;color:var(--n)}\n#nsp-rfq .nsp-rfq-vorschlag:hover,#nsp-rfq .nsp-rfq-vorschlag:focus-visible{background:#eef3fb}\n#nsp-rfq .nsp-rfq-v-name{font-size:14px;font-weight:600;line-height:1.3}\n#nsp-rfq .nsp-rfq-v-meta{font-size:12px;color:var(--l)}\n#nsp-rfq .nsp-rfq-suchhilfe{margin:6px 0 0;font-size:13px;color:var(--l);display:flex;flex-wrap:wrap;gap:0 14px;align-items:center}\n#nsp-rfq .nsp-rfq-freitaste{border:0;background:none;color:var(--n);font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0;margin:0;box-shadow:none}\n#nsp-rfq .nsp-rfq-freitaste:hover{color:var(--r)}\n#nsp-rfq .nsp-rfq-hinweis{margin:14px 0 0;font-size:13px;color:var(--l)}\n#nsp-rfq .nsp-rfq-pflicht-hinweis{margin:-6px 0 14px;font-size:13px;color:var(--l)}\n#nsp-rfq .nsp-rfq-felder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}\n#nsp-rfq .nsp-rfq-breit{grid-column:1\/-1}\n#nsp-rfq .nsp-rfq-pflicht{color:var(--r)}\n#nsp-rfq .nsp-rfq-opt{font-weight:400;color:var(--l)}\n\n\/* Block \u201eIhre Anfrage\u201c rechts *\/\n#nsp-rfq .nsp-rfq-kaufblock{position:sticky;top:20px;border:1px solid var(--li);border-radius:12px;background:#fff;box-shadow:0 12px 32px rgba(31,58,104,.12);overflow:hidden}\n#nsp-rfq .nsp-rfq-kb-kopf{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:18px 22px 16px;background:var(--n);color:#fff;border-bottom:3px solid var(--r);font-variant-numeric:tabular-nums}\n#nsp-rfq .nsp-rfq-kb-kopf h2{margin:0;font-size:19px;line-height:1.25;font-weight:600;color:#fff}\n#nsp-rfq .nsp-rfq-kb-kopf .nsp-rfq-zus-pos{display:block;font-size:14px;color:rgba(255,255,255,.85)}\n#nsp-rfq .nsp-rfq-kb-summe{text-align:right;line-height:1.15}\n#nsp-rfq .nsp-rfq-kb-summe b{display:block;font-size:24px;white-space:nowrap;color:#fff}\n#nsp-rfq .nsp-rfq-kb-summe b *{color:inherit}\n#nsp-rfq .nsp-rfq-kb-summe span{font-size:13px;color:rgba(255,255,255,.85)}\n#nsp-rfq .nsp-rfq-kb-rumpf{padding:20px 22px 22px}\n#nsp-rfq .nsp-rfq-stand{margin:0 0 10px}\n#nsp-rfq .nsp-rfq-stand-text{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;color:var(--g);margin-bottom:8px}\n#nsp-rfq .nsp-rfq-stand-text b{color:var(--n);font-size:15px}\n#nsp-rfq .bereit .nsp-rfq-stand-text b{color:var(--gr)}\n#nsp-rfq .nsp-rfq-segmente{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}\n#nsp-rfq .nsp-rfq-segmente i{display:block;height:6px;border-radius:3px;background:#e3e8f1;overflow:hidden}\n#nsp-rfq .nsp-rfq-segmente b{display:block;height:100%;background:var(--n);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.8,.2,1),background-color .3s}\n#nsp-rfq .nsp-rfq-segmente i.voll b{transform:none}\n#nsp-rfq .bereit .nsp-rfq-segmente b{background:var(--gr)}\n#nsp-rfq .nsp-rfq-stand-liste{list-style:none;margin:0 0 16px;padding:0}\n#nsp-rfq .nsp-rfq-stand-liste>li{margin:0;border-bottom:1px solid var(--li)}\n#nsp-rfq a.nsp-rfq-sprung{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 0;color:var(--n);text-decoration:none}\n#nsp-rfq a.nsp-rfq-sprung:hover{color:var(--n)}\n#nsp-rfq a.nsp-rfq-sprung:hover .nsp-rfq-tun{color:var(--r)}\n#nsp-rfq .nsp-rfq-ring{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid #b8c3d6;background:#fff}\n#nsp-rfq .da>.nsp-rfq-sprung .nsp-rfq-ring{border:0;background:var(--haken-gruen) center\/22px no-repeat}\n#nsp-rfq .nsp-rfq-sname{flex:1;min-width:0;overflow-wrap:anywhere}\n#nsp-rfq .nsp-rfq-sname small{display:block;font-size:13px;line-height:1.3;color:var(--l)}\n#nsp-rfq .nsp-rfq-wert{display:block;font-weight:600;line-height:1.35}\n#nsp-rfq .nsp-rfq-offen{font-weight:400;color:var(--l)}\n#nsp-rfq .nsp-rfq-tun{flex:none;font-size:14px;color:var(--n);text-decoration:underline;text-underline-offset:3px}\n#nsp-rfq .da .nsp-rfq-tun{display:none}\n#nsp-rfq .nsp-rfq-einw{display:flex;gap:12px;align-items:flex-start;padding:12px 0 14px;margin:0;font-size:14px;font-weight:400;line-height:1.5;color:var(--g);cursor:pointer}\n#nsp-rfq .nsp-rfq-einw input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--gr)}\n#nsp-rfq .nsp-rfq-senden{display:block;width:100%;min-height:52px;padding:12px 20px;margin:0;border:0;border-radius:6px;background:var(--r);color:#fff;font:inherit;font-size:16px;font-weight:600;line-height:1.3;cursor:pointer;touch-action:manipulation;box-shadow:0 3px 0 #8c000a}\n#nsp-rfq .nsp-rfq-senden:hover{background:#a8000c}\n#nsp-rfq .nsp-rfq-senden:active{transform:translateY(2px);box-shadow:0 1px 0 #8c000a}\n#nsp-rfq .nsp-rfq-sicher{margin:10px 0 0;font-size:14px;color:var(--g);display:flex;gap:8px;align-items:flex-start}\n#nsp-rfq .nsp-rfq-sicher svg{flex:none;margin-top:2px}\n#nsp-rfq .nsp-rfq-weg-info{font-size:14px;color:var(--g);margin:16px 0 0;padding-top:14px;border-top:1px solid var(--li)}\n\/* klasse-bewusst: nsp-ohne-symbol (Abschaltklasse aus 397). 397 setzt vor jedes a[href^=tel:] ein Hoerer-::before; hier traegt das eigene SVG (F-2026-10-08-g) *\/\n#nsp-rfq .nsp-rfq-tel{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}\n#nsp-rfq .nsp-rfq-zeit{display:inline-block;margin-top:4px;font-size:13px;color:var(--l)}\n\/* Ohne Skript zaehlt nichts mit: Stand, Ringe und Werte blenden sich aus,\n   die Liste bleibt als Wegweiser zu den Feldern. *\/\n#nsp-rfq:not(.mit-js) .nsp-rfq-stand,#nsp-rfq:not(.mit-js) .nsp-rfq-ring,#nsp-rfq:not(.mit-js) li:not([data-feld=\"positionen\"]) .nsp-rfq-wert,#nsp-rfq:not(.mit-js) .nsp-rfq-l-text b{display:none}\n@media (prefers-reduced-motion:no-preference){\n#nsp-rfq .nsp-rfq-block.fertig .nsp-rfq-nr,#nsp-rfq.mit-js .da>.nsp-rfq-sprung .nsp-rfq-ring{animation:nsp-rfq-pop .3s cubic-bezier(.3,1.6,.5,1)}\n#nsp-rfq .bereit .nsp-rfq-senden{animation:nsp-rfq-anstoss .5s cubic-bezier(.3,1.6,.5,1) .15s}\n}\n@keyframes nsp-rfq-pop{from{transform:scale(.5)}to{transform:none}}\n@keyframes nsp-rfq-anstoss{0%{transform:none}40%{transform:scale(1.03)}100%{transform:none}}\n@media (prefers-reduced-motion:reduce){#nsp-rfq .nsp-rfq-segmente b,#nsp-rfq .nsp-rfq-zeile.geht,#nsp-rfq .nsp-rfq-leiste,#nsp-rfq .nsp-rfq-leiste.verdeckt{transition:none}}\n\n\/* Leiste am Telefon: zeigt Summe und Stand, solange der Block nicht im Bild ist *\/\n#nsp-rfq .nsp-rfq-leiste{display:none}\n@media (max-width:999px){\n#nsp-rfq .nsp-rfq-raster{grid-template-columns:minmax(0,1fr);gap:24px}\n#nsp-rfq .nsp-rfq-kaufblock{position:static}\n#nsp-rfq .nsp-rfq-leiste{display:flex;position:sticky;bottom:0;z-index:5;gap:12px;align-items:center;justify-content:space-between;margin-top:24px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--li);box-shadow:0 -4px 14px rgba(31,58,104,.1);font-variant-numeric:tabular-nums;transition:transform .25s ease,opacity .25s ease,visibility 0s}\n#nsp-rfq .nsp-rfq-leiste.verdeckt{transform:translateY(100%);opacity:0;visibility:hidden;transition:transform .2s ease,opacity .2s ease,visibility 0s linear .2s}\n#nsp-rfq .nsp-rfq-l-text{font-size:14px;color:var(--g);line-height:1.3}\n#nsp-rfq .nsp-rfq-l-text b{display:block;color:var(--n);font-size:16px}\n#nsp-rfq .nsp-rfq-leiste.bereit .nsp-rfq-l-text b{color:var(--gr)}\n#nsp-rfq a.nsp-rfq-l-knopf{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:6px;background:var(--r);color:#fff;font-weight:600;text-decoration:none}\n#nsp-rfq a.nsp-rfq-l-knopf:hover{background:#a8000c;color:#fff}\n}\n@media (max-width:767px){\n#nsp-rfq .nsp-rfq-zeile{grid-template-columns:56px auto minmax(0,1fr) 44px;grid-template-areas:\"bild text text weg\" \"menge menge preis preis\";row-gap:10px}\n#nsp-rfq .nsp-rfq-bild{grid-area:bild;width:56px;height:56px}\n#nsp-rfq .nsp-rfq-info{grid-area:text}\n#nsp-rfq .nsp-rfq-stepper{grid-area:menge;width:max-content}\n#nsp-rfq .nsp-rfq-preise{grid-area:preis;min-width:0;justify-self:end}\n#nsp-rfq .nsp-rfq-entfernen{grid-area:weg}\n#nsp-rfq .nsp-rfq-felder{grid-template-columns:minmax(0,1fr)}\n#nsp-rfq .nsp-rfq-block h2{font-size:20px}\n#nsp-rfq .nsp-rfq-kb-kopf,#nsp-rfq .nsp-rfq-kb-rumpf{padding-left:18px;padding-right:18px}\n}\n<\/style>\n\t<script id=\"nsp-rfq-js\">\n(function(){\n var hof = document.getElementById('nsp-rfq');\n var form = hof && hof.querySelector('form.nsp-rfq');\n var liste = form && form.querySelector('.nsp-rfq-liste');\n if(!liste){ return; }\n hof.classList.add('mit-js');\n var LAGER = 'nspRfqEigene';\n var EIMER = \"<svg viewBox=\\\"0 0 20 20\\\" width=\\\"18\\\" height=\\\"18\\\" aria-hidden=\\\"true\\\"><path d=\\\"M4 6h12M8 6V4h4v2M6 6l1 10h6l1-10\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.6\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"\\\/><\\\/svg>\";\n \/* Saetze mit Name, Zahl oder Preis kommen als Vorlage vom Server (Gettext, Domain nispel).\n    TranslatePress uebersetzt jede Vorlage auf \/en\/ einmal; vorher entstand je Wert ein neuer Rest. *\/\n var T = {\"pos1\":\"%d Position\",\"posN\":\"%d Positionen\",\"noch1\":\"Noch %d Angabe\",\"nochN\":\"Noch %d Angaben\",\"artnr\":\"Art.-Nr. %s\",\"stueck\":\"%s \\\/ St\\u00fcck\",\"netto\":\"%s netto\",\"entfernen\":\"Aus der Anfrage entfernen\",\"menge\":\"%1$s: Menge jetzt %2$s\",\"dazu\":\"%s hinzugef\\u00fcgt\",\"weg\":\"%s entfernt\"};\n function satz(v){ var w = Array.prototype.slice.call(arguments, 1), k = 0;\n  return String(v).replace(\/%(?:(\\d)\\$)?[sd]\/g, function(m, n){ var x = n ? w[n - 1] : w[k++]; return x === undefined ? '' : String(x); }); }\n var PFLICHT = ['positionen','firma','person','mail','text','einwilligung'];\n var block = form.querySelector('.nsp-rfq-kaufblock');\n var leiste = hof.querySelector('.nsp-rfq-leiste');\n var ansage = form.querySelector('.nsp-rfq-ansage');\n var leer = form.querySelector('.nsp-rfq-leer');\n var zufuegen = form.querySelector('.nsp-rfq-zufuegen');\n var suche = form.querySelector('#nsp-rfq-suche');\n var warBereit = null;\n var ruhig = window.matchMedia && matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n function euro(n){\n  try{ return n.toLocaleString('de-DE',{minimumFractionDigits:2,maximumFractionDigits:2})+'\u00a0\u20ac'; }\n  catch(e){ return n.toFixed(2)+' \u20ac'; }\n }\n function sagen(t){ ansage.textContent = ''; setTimeout(function(){ ansage.textContent = t; }, 30); }\n function feld(name){ return name === 'positionen' ? suche : form.querySelector('[name=\"'+name+'\"]'); }\n function bedarf(){ return form.querySelector('[name=\"text\"]').value.trim(); }\n function zeilen(){ return liste.querySelectorAll('.nsp-rfq-zeile'); }\n \/* Positionen gelten als erledigt, wenn mindestens eine Zeile da ist ODER\n    die Nachricht den Bedarf beschreibt - genau so prueft es der Server. *\/\n function ok(name){\n  if(name === 'positionen'){ return zeilen().length > 0 || bedarf() !== ''; }\n  var el = feld(name);\n  if(!el){ return false; }\n  return el.type === 'checkbox' ? el.checked : (el.value.trim() !== '' && el.checkValidity());\n }\n\n function summe(){\n  var s = 0, n = 0;\n  zeilen().forEach(function(z){\n   var i = z.querySelector('input[type=\"number\"]');\n   var m = Math.max(1, parseInt(i.value,10) || 1);\n   if(String(m) !== i.value){ i.value = m; }\n   var netto = parseFloat(z.dataset.netto || '0');\n   s += netto * m; n++;\n   var ziel = z.querySelector('.nsp-rfq-summe');\n   if(ziel){ ziel.textContent = netto > 0 ? euro(netto * m) : 'auf Anfrage'; }\n  });\n  var t = n ? satz(n === 1 ? T.pos1 : T.posN, n) : (bedarf() ? 'Bedarf beschrieben' : 'Noch keine Position');\n  hof.querySelectorAll('.nsp-rfq-ges').forEach(function(e){ e.textContent = euro(s); });\n  hof.querySelectorAll('.nsp-rfq-zus-pos').forEach(function(e){ e.textContent = t; });\n  if(leer){ leer.hidden = n > 0; }\n  form.querySelector('[data-block=\"positionen\"]').classList.toggle('fertig', n > 0);\n }\n\n function stand(){\n  var rest = 0, da = 0;\n  PFLICHT.forEach(function(name){\n   var gut = ok(name);\n   if(gut){ da++; } else { rest++; }\n   form.querySelectorAll('[data-feld=\"'+name+'\"]').forEach(function(li){ li.classList.toggle('da', gut); });\n   form.querySelectorAll('[data-wert=\"'+name+'\"]').forEach(function(w){\n    if(gut){ w.textContent = name === 'text' ? 'eingetragen' : feld(name).value.trim(); }\n    else if(!w.querySelector('.nsp-rfq-offen')){ w.innerHTML = '<span class=\"nsp-rfq-offen\">noch offen<\/span>'; }\n   });\n  });\n  form.querySelector('[data-block=\"angaben\"]').classList.toggle('fertig', ok('firma') && ok('person') && ok('mail'));\n  var text = rest ? satz(rest === 1 ? T.noch1 : T.nochN, rest) : 'Bereit zum Absenden';\n  hof.querySelectorAll('.nsp-rfq-stand-text b,.nsp-rfq-l-text b').forEach(function(b){ b.textContent = text; });\n  form.querySelectorAll('.nsp-rfq-segmente i').forEach(function(i, k){ i.classList.toggle('voll', k < da); });\n  var bereit = rest === 0;\n  if(bereit !== warBereit){ block.classList.toggle('bereit', bereit); leiste.classList.toggle('bereit', bereit); warBereit = bereit; }\n }\n function alles(){ summe(); stand(); merken(); }\n\n \/* --- Selbst gesetzte Zeilen -------------------------------------------\n    Sie sind reine Formularfelder ohne Serverzustand. Damit sie Neuladen\n    und Validierungsfehler ueberleben, liegen sie in sessionStorage.\n    Geleert wird der Speicher NUR in der Erfolgsansicht (?gesendet=1),\n    nie bei einem gewoehnlichen Aufruf (F-2026-10-07-ai). *\/\n function naechster(){\n  var n = parseInt(liste.dataset.naechster,10) || 0;\n  liste.dataset.naechster = n + 1;\n  return n;\n }\n function verborgen(name, wert){\n  var e = document.createElement('input');\n  e.type = 'hidden'; e.name = name; e.value = wert;\n  return e;\n }\n function merken(){\n  var eigene = [];\n  liste.querySelectorAll('.nsp-rfq-zeile[data-eigen]').forEach(function(z){\n   var bez = z.querySelector('[name^=\"bez\"]'), sku = z.querySelector('[name^=\"sku\"]');\n   eigene.push({sku: sku ? sku.value : '', name: bez ? bez.value : '',\n    netto: parseFloat(z.dataset.netto) || 0, menge: parseInt(z.querySelector('input[type=\"number\"]').value,10) || 1,\n    bild: z.dataset.bild || '', link: z.dataset.link || '', frei: z.dataset.frei === '1'});\n  });\n  try{ sessionStorage.setItem(LAGER, JSON.stringify(eigene)); }catch(e){}\n }\n function vorhanden(sku){\n  if(!sku){ return null; }\n  var treffer = null;\n  liste.querySelectorAll('input[name^=\"sku\"]').forEach(function(f){ if(!treffer && f.value === sku){ treffer = f.closest('.nsp-rfq-zeile'); } });\n  return treffer;\n }\n function zeileBauen(a){\n  var i = naechster();\n  var li = document.createElement('li');\n  li.className = 'nsp-rfq-zeile';\n  li.dataset.netto = String(a.netto || 0);\n  li.dataset.eigen = '1';\n  if(a.bild){ li.dataset.bild = a.bild; }\n  if(a.link){ li.dataset.link = a.link; }\n  if(a.frei){ li.dataset.frei = '1'; }\n\n  var bild = document.createElement('span');\n  bild.className = 'nsp-rfq-bild';\n  if(a.bild){\n   var img = document.createElement('img');\n   img.src = a.bild; img.alt = ''; img.loading = 'lazy'; img.width = 64; img.height = 64;\n   bild.appendChild(img);\n  } else {\n   var pl = document.createElement('span');\n   pl.className = 'nsp-rfq-bild-platz'; pl.setAttribute('aria-hidden','true');\n   bild.appendChild(pl);\n  }\n\n  var info = document.createElement('div');\n  info.className = 'nsp-rfq-info';\n  if(a.frei){\n   var eingabe = document.createElement('input');\n   eingabe.type = 'text'; eingabe.className = 'nsp-rfq-freifeld';\n   eingabe.name = 'bez[' + i + ']'; eingabe.value = a.name || '';\n   eingabe.placeholder = 'Was ben\u00f6tigen Sie? Hersteller, Ger\u00e4t, Teil \u2026';\n   eingabe.setAttribute('aria-label','Bezeichnung der Position');\n   eingabe.id = 'nsp-rfq-name-' + i;\n   info.appendChild(eingabe);\n   info.appendChild(verborgen('sku[' + i + ']',''));\n  } else {\n   var name = document.createElement(a.link ? 'a' : 'span');\n   name.className = 'nsp-rfq-name';\n   name.id = 'nsp-rfq-name-' + i;\n   if(a.link){ name.href = a.link; }\n   name.textContent = a.name;\n   info.appendChild(name);\n   var art = document.createElement('span');\n   art.className = 'nsp-rfq-art';\n   art.textContent = satz(T.artnr, a.sku || '\u2013');\n   info.appendChild(art);\n   info.appendChild(verborgen('sku[' + i + ']', a.sku || ''));\n   info.appendChild(verborgen('bez[' + i + ']', a.name || ''));\n  }\n\n  var st = document.createElement('div');\n  st.className = 'nsp-rfq-stepper';\n  var minus = document.createElement('button');\n  minus.type = 'button'; minus.dataset.richtung = '-1'; minus.setAttribute('aria-label','Menge verringern'); minus.textContent = '\u2212';\n  var zahl = document.createElement('input');\n  zahl.type = 'number'; zahl.min = '1'; zahl.step = '1'; zahl.inputMode = 'numeric';\n  zahl.name = 'menge[' + i + ']'; zahl.value = String(Math.max(1, parseInt(a.menge,10) || 1));\n  zahl.setAttribute('aria-label','Menge');\n  var plus = document.createElement('button');\n  plus.type = 'button'; plus.dataset.richtung = '1'; plus.setAttribute('aria-label','Menge erh\u00f6hen'); plus.textContent = '+';\n  st.appendChild(minus); st.appendChild(zahl); st.appendChild(plus);\n\n  var pr = document.createElement('div');\n  pr.className = 'nsp-rfq-preise';\n  var einzel = document.createElement('span');\n  einzel.className = 'nsp-rfq-einzel';\n  einzel.textContent = a.netto > 0 ? satz(T.stueck, euro(a.netto)) : 'Preis auf Anfrage';\n  var sum = document.createElement('b');\n  sum.className = 'nsp-rfq-summe';\n  pr.appendChild(einzel); pr.appendChild(sum);\n\n  var weg = document.createElement('button');\n  weg.type = 'button'; weg.className = 'nsp-rfq-entfernen';\n  weg.setAttribute('aria-label', T.entfernen);\n  \/* Name = festes Label + sichtbarer Produktname: eindeutig je Zeile, beide Teile uebersetzbar. *\/\n  weg.id = 'nsp-rfq-weg-' + i;\n  weg.setAttribute('aria-labelledby', weg.id + ' nsp-rfq-name-' + i);\n  weg.innerHTML = EIMER;\n\n  li.appendChild(bild); li.appendChild(info); li.appendChild(st); li.appendChild(pr); li.appendChild(weg);\n  liste.appendChild(li);\n  return li;\n }\n \/* Dieselbe Artikelnummer zweimal gewaehlt: die Menge steigt, keine zweite Zeile. *\/\n function zufuegenArtikel(a){\n  var da = vorhanden(a.sku);\n  if(da){\n   var m = da.querySelector('input[type=\"number\"]');\n   m.value = (parseInt(m.value,10) || 1) + 1;\n   alles();\n   sagen(satz(T.menge, a.name || 'Artikel', m.value));\n   return da;\n  }\n  var li = zeileBauen(a);\n  alles();\n  sagen(satz(T.dazu, a.name || 'Position'));\n  return li;\n }\n\n \/* --- Entfernen: immer nur diese eine Zeile, ohne Neuladen ---------------\n    Warenkorb-Zeilen gehen zusaetzlich am Server aus dem Warenkorb (der\n    Verweis bleibt der Weg ohne Skript); die ?artikel-Zeile faellt aus der\n    Adresse. Der Fokus springt in die Suche, damit er nicht verloren geht. *\/\n function entfernen(zeile){\n  if(zeile.dataset.geht){ return; } zeile.dataset.geht = '1'; \/* Doppelklick waehrend der Ausblendung *\/\n  var name = (zeile.querySelector('.nsp-rfq-name,.nsp-rfq-freifeld') || {}).textContent || '';\n  if(!name){ var ff = zeile.querySelector('.nsp-rfq-freifeld'); name = ff ? ff.value : 'Position'; }\n  var weiter = function(){\n   zeile.remove();\n   alles();\n   sagen(satz(T.weg, name || 'Position'));\n   if(suche && zufuegen && !zufuegen.hidden){ suche.focus({preventScroll:true}); }\n  };\n  if(ruhig){ weiter(); } else { zeile.classList.add('geht'); setTimeout(weiter, 200); }\n }\n liste.addEventListener('click', function(e){\n  var weg = e.target.closest('.nsp-rfq-entfernen');\n  if(weg){\n   e.preventDefault();\n   \/* Korbzeile wartet noch auf den Server: zweiter Klick schickt keinen zweiten Abruf *\/\n   if(weg.getAttribute('aria-disabled') === 'true'){ return; }\n   var zeile = weg.closest('.nsp-rfq-zeile');\n   var herkunft = zeile.dataset.herkunft;\n   if(herkunft === 'korb'){\n    var ziel = weg.getAttribute('href');\n    weg.setAttribute('aria-disabled','true');\n    fetch(ziel, {credentials:'same-origin', cache:'no-store'})\n     .then(function(r){\n      if(!r.ok){ throw new Error(r.status); }\n      entfernen(zeile);\n      document.body.dispatchEvent(new CustomEvent('nispel:korb-geaendert',{bubbles:true,detail:{}}));\n     })\n     .catch(function(){ location.href = ziel; });\n    return;\n   }\n   if(herkunft === 'artikel'){\n    try{\n     var u = new URL(location.href); u.searchParams.delete('artikel');\n     history.replaceState(null, '', u.pathname + u.search + u.hash);\n    }catch(x){}\n    var zur = form.querySelector('[name=\"artikel_zurueck\"]');\n    if(zur){ zur.value = '0'; }\n   }\n   entfernen(zeile);\n   return;\n  }\n  var knopf = e.target.closest('.nsp-rfq-stepper button');\n  if(!knopf){ return; }\n  var eingabe = knopf.parentElement.querySelector('input[type=\"number\"]');\n  eingabe.value = Math.max(1, (parseInt(eingabe.value,10) || 1) + (knopf.dataset.richtung === '1' ? 1 : -1));\n  alles();\n });\n\n \/* --- Sprungverweise in der Liste rechts und Pruefung vor dem Senden ------ *\/\n block.addEventListener('click', function(e){\n  var a = e.target.closest('a[data-sprung]');\n  if(!a){ return; }\n  var ziel = form.querySelector(a.getAttribute('href'));\n  if(ziel && ziel.offsetParent !== null){ e.preventDefault(); ziel.focus({preventScroll:true}); ziel.scrollIntoView({block:'center'}); }\n });\n \/* Am Klick des Knopfs, nicht am submit: Snippet 324 sperrt beim submit den\n    Knopf fuer 45 s. Fehlt etwas, kommt es gar nicht erst zum submit. *\/\n form.querySelector('.nsp-rfq-senden').addEventListener('click', function(e){\n  var fehlt = PFLICHT.filter(function(n){ return !ok(n); })[0];\n  if(!fehlt){ merken(); return; }\n  e.preventDefault();\n  var el = feld(fehlt);\n  if(fehlt === 'positionen'){\n   sagen('Bitte w\u00e4hlen Sie mindestens einen Artikel oder beschreiben Sie Ihren Bedarf im Feld \u201eIhre Nachricht\u201c.');\n  }\n  if(el){\n   el.focus({preventScroll:true});\n   el.scrollIntoView({block:'center'});\n   if(fehlt !== 'positionen' && el.reportValidity){ el.reportValidity(); }\n  }\n });\n form.addEventListener('input', function(e){\n  if(e.target === suche){ return; }\n  alles();\n });\n form.addEventListener('change', stand);\n\n \/* --- Suche im Sortiment (Suchindex aus Schnipsel 65) -------------------- *\/\n if(zufuegen && suche){\n  zufuegen.hidden = false;\n  var vorschlaege = zufuegen.querySelector('.nsp-rfq-vorschlaege');\n  var freitaste = zufuegen.querySelector('.nsp-rfq-freitaste');\n  var index = null, holt = null;\n  var indexHolen = function(){\n   if(index){ return Promise.resolve(index); }\n   if(!holt){\n    holt = fetch(zufuegen.dataset.quelle, {credentials:'same-origin'})\n     .then(function(r){ return r.json(); })\n     .then(function(d){ index = d; return d; })\n     .catch(function(){ holt = null; return null; });\n   }\n   return holt;\n  };\n  var treffer = function(text){\n   if(!index || !index.p){ return []; }\n   var q = text.trim().toLowerCase();\n   if(q.length < 2){ return []; }\n   var a = [], b = [], d = [];\n   for(var i = 0; i < index.p.length; i++){\n    var p = index.p[i];\n    var sku = (p[1] || '').toLowerCase(), nm = (p[0] || '').toLowerCase();\n    if(sku.indexOf(q) === 0){ a.push(p); }\n    else if(sku.indexOf(q) > -1){ b.push(p); }\n    else if(nm.indexOf(q) > -1){ d.push(p); }\n    if(a.length >= 8){ break; }\n   }\n   return a.concat(b, d).slice(0, 8);\n  };\n  var zeigen = function(tr){\n   vorschlaege.textContent = '';\n   if(!tr.length){ vorschlaege.hidden = true; return; }\n   tr.forEach(function(p){\n    var li = document.createElement('li');\n    var k = document.createElement('button');\n    k.type = 'button'; k.className = 'nsp-rfq-vorschlag';\n    var n1 = document.createElement('span'); n1.className = 'nsp-rfq-v-name'; n1.textContent = p[0];\n    var n2 = document.createElement('span'); n2.className = 'nsp-rfq-v-meta';\n    var preis = parseFloat(p[3]) || 0;\n    n2.textContent = (p[1] ? satz(T.artnr, p[1]) : 'ohne Artikelnummer') + (preis > 0 ? ' \u00b7 ' + satz(T.netto, euro(preis)) : '');\n    k.appendChild(n1); k.appendChild(n2);\n    k.addEventListener('click', function(){\n     zufuegenArtikel({sku: p[1], name: p[0], netto: preis,\n      bild: p[6] ? (index.b + p[6]) : '', link: index.pb + p[2] + '\/'});\n     suche.value = ''; zeigen([]); suche.focus();\n    });\n    li.appendChild(k); vorschlaege.appendChild(li);\n   });\n   vorschlaege.hidden = false;\n  };\n  suche.addEventListener('input', function(){\n   var wert = suche.value;\n   if(wert.trim().length < 2){ zeigen([]); return; }\n   indexHolen().then(function(){ if(suche.value === wert){ zeigen(treffer(wert)); } });\n  });\n  suche.addEventListener('keydown', function(e){\n   if(e.key === 'Escape'){ zeigen([]); }\n   if(e.key === 'Enter'){\n    e.preventDefault();\n    var erster = vorschlaege.querySelector('.nsp-rfq-vorschlag');\n    if(erster){ erster.click(); }\n   }\n  });\n  document.addEventListener('click', function(e){\n   if(!zufuegen.contains(e.target)){ zeigen([]); }\n  });\n  freitaste.addEventListener('click', function(){\n   var li = zeileBauen({sku:'', name: suche.value.trim(), netto: 0, frei: true});\n   suche.value = ''; zeigen([]);\n   alles();\n   var f2 = li.querySelector('.nsp-rfq-freifeld');\n   if(f2){ f2.focus(); }\n  });\n }\n\n \/* Gemerkte Zeilen bei JEDEM Aufruf zurueckholen; was schon (aus Warenkorb\n    oder ?artikel) dasteht, kommt nicht doppelt. *\/\n try{\n  JSON.parse(sessionStorage.getItem(LAGER) || '[]').forEach(function(z){\n   if(z && (z.frei || !vorhanden(z.sku))){ zeileBauen(z); }\n  });\n }catch(e){}\n\n \/* Die Leiste am Telefon verschwindet, solange der Block mit demselben Knopf im Bild ist. *\/\n if('IntersectionObserver' in window){\n  new IntersectionObserver(function(e){ leiste.classList.toggle('verdeckt', e[0].isIntersecting); }, {rootMargin:'0px 0px -60px 0px'}).observe(block);\n }\n alles();\n})();\n\t<\/script>\n\t\n","protected":false},"excerpt":{"rendered":"<p>Do you need a written quote, a tiered price, or are you unsure which part fits your device? Send us your inquiry \u2013 no obligation and free of charge.<\/p>","protected":false},"author":603,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-10863","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/nispel.com\/en\/wp-json\/wp\/v2\/pages\/10863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nispel.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nispel.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nispel.com\/en\/wp-json\/wp\/v2\/users\/603"}],"replies":[{"embeddable":true,"href":"https:\/\/nispel.com\/en\/wp-json\/wp\/v2\/comments?post=10863"}],"version-history":[{"count":0,"href":"https:\/\/nispel.com\/en\/wp-json\/wp\/v2\/pages\/10863\/revisions"}],"wp:attachment":[{"href":"https:\/\/nispel.com\/en\/wp-json\/wp\/v2\/media?parent=10863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}