{"id":572,"date":"2025-04-01T08:46:40","date_gmt":"2025-04-01T08:46:40","guid":{"rendered":"https:\/\/dev.kabelstruempfe.de\/?page_id=572"},"modified":"2026-06-05T09:32:52","modified_gmt":"2026-06-05T09:32:52","slug":"product-guide","status":"publish","type":"page","link":"https:\/\/kabelstruempfe.de\/en\/product-guide\/","title":{"rendered":"Product-guide"},"content":{"rendered":"<style>.kb-row-layout-id572_ccc1f4-44 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id572_ccc1f4-44 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id572_ccc1f4-44 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id572_ccc1f4-44 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id572_ccc1f4-44 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id572_ccc1f4-44 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id572_ccc1f4-44 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column572_bffff7-97 > .kt-inside-inner-col,.kadence-column572_bffff7-97 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column572_bffff7-97 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column572_bffff7-97 > .kt-inside-inner-col{flex-direction:column;}.kadence-column572_bffff7-97 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column572_bffff7-97 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column572_bffff7-97{position:relative;}@media all and (max-width: 1024px){.kadence-column572_bffff7-97 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column572_bffff7-97 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column572_bffff7-97\"><div class=\"kt-inside-inner-col\">\n<style>\n  \/* --- CSS Styling --- *\/\n  #produktberater-wrapper {\n    font-family: inherit;\n    \/* max-width: 800px; *\/\n    margin: 0 auto;\n    background: #fff;\n    border: 1px solid #e5e5e5;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 4px 6px rgba(0,0,0,0.05);\n    color: #333;\n    min-height: 300px; \/* Verhindert Springen *\/\n    display: flex;\n    flex-direction: column;\n  }\n\n  .pb-header {\n    margin-bottom: 20px;\n    border-bottom: 1px solid #eee;\n    padding-bottom: 10px;\n  }\n\n  .pb-progress-container {\n    height: 8px;\n    background-color: #f0f0f0;\n    border-radius: 4px;\n    margin-bottom: 10px;\n    overflow: hidden;\n  }\n\n  .pb-progress-bar {\n    height: 100%;\n    background-color: var(--wp--preset--color--primary, #0073aa);\n    width: 0%;\n    transition: width 0.3s ease;\n  }\n\n   \/* Breadcrumbs: mobile-first *\/\n\n  .pb-breadcrumbs {\n    display: flex;\n    flex-wrap: wrap;          \/* darf umbrechen, wenn es eng wird *\/\n    gap: 4px;\n    font-size: 0.78em;        \/* etwas kleiner, spart H\u00f6he *\/\n    line-height: 1.3;\n    color: #888;\n  }\n\n  .pb-crumb,\n  .pb-crumb-separator {\n    white-space: nowrap;\n  }\n\n  .pb-crumb {\n    cursor: pointer;\n    border-bottom: 1px dotted #ccc;\n    transition: color 0.2s;\n  }\n\n  .pb-crumb:hover {\n    color: var(--wp--preset--color--primary, #0073aa);\n    border-bottom-style: solid;\n  }\n\n  .pb-crumb:last-child {\n    font-weight: 600;\n    cursor: default;\n    border: none;\n    color: #333;\n  }\n\n  .pb-crumb-separator {\n    color: #ccc;\n  }\n\n  @media (min-width: 901px) {\n    .pb-breadcrumbs {\n      font-size: 0.8em;\n      line-height: 1.4;\n      gap: 6px;\n    }\n    .pb-breadcrumbs.pb-breadcrumbs--stacked {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      align-items: flex-start;\n      gap: 2px;\n    }\n    .pb-breadcrumbs.pb-breadcrumbs--stacked .pb-crumb-separator {\n      display: none;\n    }\n    .pb-breadcrumbs.pb-breadcrumbs--stacked .pb-crumb {\n      display: block;\n    }\n    .pb-breadcrumbs.pb-breadcrumbs--stacked .pb-crumb:not(:first-of-type)::before {\n      content: '\u203a ';\n      opacity: 0.6;\n    }\n  }\n\n  #pb-content {\n    flex-grow: 1; \n  }\n\n  .pb-question-container {\n    animation: fadeIn 0.4s ease-in-out;\n  }\n\n  .pb-question-text {\n    font-size: 1.3em;\n    font-weight: 600;\n    margin-bottom: 25px;\n    line-height: 1.4;\n    color: #2c3e50;\n  }\n\n  .pb-options-grid {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 12px;\n  }\n  \n  @media (min-width: 600px) {\n    .pb-options-grid {\n      grid-template-columns: 1fr 1fr;\n    }\n  }\n\n  \/* --- BUTTON STYLING ANPASSUNG --- *\/\n  .pb-option-btn {\n    background: #DDDDDD; \/* Standard Hintergrund Grau *\/\n    border: 1px solid #ccc; \/* Etwas dunklerer Rahmen f\u00fcr Kontrast *\/\n    padding: 16px;\n    text-align: left;\n    cursor: pointer;\n    border-radius: 6px;\n    transition: all 0.2s;\n    font-size: 1em;\n    color: #333333 !important; \/* Erzwingt Dunkelgrau, \u00fcberschreibt Theme *\/\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    line-height: 1.3;\n  }\n\n  .pb-option-btn:hover, .pb-option-btn:focus {\n    background: #DDDDDD; \/* Bleibt Grau beim Hover *\/\n    color: #333333 !important; \/* Bleibt Dunkelgrau (kein Wei\u00df!) *\/\n    border-color: var(--wp--preset--color--primary, #0073aa);\n    box-shadow: 0 4px 12px rgba(0,0,0,0.15); \/* Schatten bleibt f\u00fcr 3D Effekt *\/\n    transform: translateY(-2px); \/* Push-up Effekt bleibt *\/\n    outline: none;\n  }\n\n  .pb-option-btn:after {\n    content: '\u2192';\n    opacity: 0.4;\n    margin-left: 10px;\n    font-weight: bold;\n    color: #333333; \/* Pfeil auch dunkel erzwingen *\/\n  }\n\n  .pb-result-container {\n    text-align: center;\n    padding: 30px 20px;\n    background: #f8fbff;\n    border-radius: 8px;\n    border: 1px solid #e1f0fa;\n    animation: fadeIn 0.5s ease;\n  }\n\n  .pb-result-header {\n    font-size: 1.4em;\n    margin-bottom: 20px;\n    font-weight: bold;\n    color: #2c3e50;\n  }\n  \n  #pb-result-list {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 20px;\n    padding: 10px 0;\n  }\n\n  @media (min-width: 600px) {\n    #pb-result-list {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media (min-width: 900px) {\n    #pb-result-list {\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n    }\n  }\n\n  .pb-product-card {\n    background: #fff;\n    border: 1px solid #eee;\n    padding: 20px;\n    margin: 0;\n    border-radius: 8px;\n    box-shadow: 0 4px 6px rgba(0,0,0,0.04);\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    max-width: 400px;\n    transition: transform 0.2s;\n    flex: 1 1 100%;\n  }\n\n  @media (min-width: 600px) {\n    .pb-product-card {\n      flex: 1 1 calc(50% - 20px);\n      max-width: 360px;\n    }\n  }\n\n  @media (min-width: 900px) {\n    .pb-product-card {\n      flex: 1 1 calc(33.333% - 20px);\n      max-width: 360px;\n    }\n  }\n  \n  .pb-product-card:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 6px 12px rgba(0,0,0,0.08);\n  }\n\n  .pb-product-title {\n    font-weight: bold;\n    font-size: 1.1em;\n    margin-bottom: 15px;\n    display: block;\n    color: #333;\n  }\n\n  \/* --- BILDGR\u00d6SSE ANPASSUNG --- *\/\n  .pb-product-img {\n    max-width: 100px; \/* Standard (Mobil): Kompakt bleiben *\/\n    height: auto;\n    margin-bottom: 15px;\n    border-radius: 4px;\n    transition: max-width 0.3s ease;\n  }\n\n  \/* Desktop\/Tablet Anpassung f\u00fcr Bilder *\/\n  @media (min-width: 768px) {\n    .pb-product-img {\n      \/* --- HIER ANPASSEN: Bildgr\u00f6\u00dfe Desktop (Original war 100px) --- *\/\n      max-width: 180px; \n    }\n  }\n\n  \/* --- CTA BUTTON (ZUM PRODUKT) ANPASSUNG --- *\/\n  .pb-cta-btn {\n    display: inline-block;\n    \/* Mobil: Kleiner und dezenter *\/\n    padding: 8px 16px; \n    font-size: 0.9em;\n    \n    background-color: var(--wp--preset--color--primary, #0073aa);\n    color: #fff !important;\n    text-decoration: none;\n    border-radius: 4px;\n    font-weight: bold;\n    transition: background 0.2s, transform 0.1s;\n  }\n  \n  \/* Desktop: Wieder volle Gr\u00f6\u00dfe *\/\n  @media (min-width: 768px) {\n    .pb-cta-btn {\n      padding: 12px 25px;\n      font-size: 1em;\n    }\n  }\n  \n  .pb-cta-btn:hover {\n    background-color: #005177;\n    text-decoration: none;\n  }\n  \n  .pb-cta-secondary {\n    background-color: #6c757d;\n    font-size: 0.9em;\n    margin-top: 10px;\n  }\n\n  .pb-controls {\n    margin-top: 30px;\n    display: flex;\n    justify-content: space-between;\n    border-top: 1px solid #eee;\n    padding-top: 20px;\n  }\n\n  .pb-control-btn {\n    background: transparent;\n    border: none;\n    color: #666;\n    cursor: pointer;\n    font-size: 0.95em;\n    display: inline-flex;\n    align-items: center;\n    padding: 5px 10px;\n    border-radius: 4px;\n  }\n  .pb-control-btn:hover {\n    background-color: #f5f5f5;\n    color: #333;\n  }\n  \n  .pb-loading-copy {\n    margin-top: 10px;\n    color: #666;\n    font-size: 0.95em;\n  }\n\n  .hidden { display: none !important; }\n  \n  .pb-spinner {\n    display: inline-block;\n    width: 24px;\n    height: 24px;\n    border: 3px solid rgba(0,0,0,0.1);\n    border-radius: 50%;\n    border-top-color: var(--wp--preset--color--primary, #0073aa);\n    animation: spin 1s ease-in-out infinite;\n    margin-bottom: 15px;\n  }\n  \n  #pb-debug-info {\n    font-family: monospace;\n    font-size: 10px;\n    color: #aaa;\n    margin-top: 20px;\n    text-align: right;\n    display: none; \n  }\n\n  @keyframes spin { to { transform: rotate(360deg); } }\n  @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\n<\/style>\n\n<div id=\"produktberater-wrapper\">\n  \n  <div class=\"pb-header\">\n    <div class=\"pb-progress-container\">\n      <div id=\"pb-progress\" class=\"pb-progress-bar\"><\/div>\n    <\/div>\n    <div id=\"pb-breadcrumbs\" class=\"pb-breadcrumbs\">\n      <\/div>\n  <\/div>\n\n  <div id=\"pb-content\">\n    \n    <div id=\"pb-loading\" style=\"text-align:center; padding: 40px;\">\n      <div class=\"pb-spinner\"><\/div>\n      <div>Loading product advisor&#8230;<\/div>\n    <\/div>\n\n    <div id=\"pb-question-view\" class=\"hidden pb-question-container\">\n      <div id=\"pb-question-text\" class=\"pb-question-text\">Question?<\/div>\n      <div id=\"pb-options\" class=\"pb-options-grid\">\n        <\/div>\n    <\/div>\n\n    <div id=\"pb-result-view\" class=\"hidden pb-result-container\">\n      <div class=\"pb-result-header\">Intelligent product recommendation(s)<\/div>\n      <div id=\"pb-result-list\"><\/div>\n    <\/div>\n    \n    <div id=\"pb-error-view\" class=\"hidden pb-result-container\">\n      <div class=\"pb-result-header\">Individual consultation required<\/div>\n      <p>We do not have a standard solution directly available for this specific combination.<\/p>\n      <a href=\"https:\/\/kabelstruempfe.de\/en\/your-quote-request\/#tab-specialinquiryviaform\" class=\"pb-cta-btn\">Submit request<\/a>\n    <\/div>\n\n  <\/div>\n\n  <div class=\"pb-controls\">\n    <button id=\"pb-btn-back\" class=\"pb-control-btn hidden\">\u2190 Step back<\/button>\n    <button id=\"pb-btn-reset\" class=\"pb-control-btn\">\u27f2 Restart<\/button>\n  <\/div>\n  \n  <div id=\"pb-debug-info\"><\/div>\n\n<\/div>\n\n<script>\n(function() {\n  \/**\n   * 1. DATENBASIS\n   * Vollst\u00e4ndiger Dump der Textdatei.\n   *\/\n  const RAW_DATA = `\n1 What type of product do you need?\n1a Cable grips\n1a1 What do you want to use the cable grips for?\n1a1a For pulling cables (no domestic installation)\n1a1a1 How many cables should be pulled at the same time?\n1a1a1a One\n1a1a1a1 What material should the cable grip be made of?\n1a1a1a1a Galvanised steel (standard)\n1a1a1a1a1 Is your cable already assembled? (Is it already connected or fitted with a plug?)\n1a1a1a1a1a Yes\n1a1a1a1a1a1 What is the diameter [mm] of the cable?\n1a1a1a1a1a1a 0 - 5\npid produktanfrage\n1a1a1a1a1a1b 6 - 10\npid 3441\n1a1a1a1a1a1c 11 - 15\npid 3443\n1a1a1a1a1a1d 16 - 20\npid 3444\n1a1a1a1a1a1e 21 - 25\npid 3433\n1a1a1a1a1a1f 26 - 30\npid 3434\n1a1a1a1a1a1g 31 - 40\npid 3435\n1a1a1a1a1a1h 41 - 50\npid 3424\n1a1a1a1a1a1i 51 - 60\npid 3425\n1a1a1a1a1a1j 61 - 70\npid 3426\n1a1a1a1a1a1k 71 - 90\npid 3427\n1a1a1a1a1a1l 91 - 110\npid 3428\n1a1a1a1a1a1m 111 - 130\npid 3429\n1a1a1a1a1a1n 131 - 160\npid 3430\n1a1a1a1a1a1o 162 - 200\npid 3431\n1a1a1a1a1b No\n1a1a1a1a1b1 What is the diameter [mm] of the cable?\n1a1a1a1a1b1a 0 - 5\npid produktanfrage\n1a1a1a1a1b1b 6 - 10\npid 3197, 3450\n1a1a1a1a1b1c 11 - 15\npid 3497, 3452\n1a1a1a1a1b1d 16 - 20\npid 3487, 3453\n1a1a1a1a1b1e 21 - 25\npid 3488, 3454\n1a1a1a1a1b1f 26 - 30\npid 3489, 3455\n1a1a1a1a1b1g 31 - 40\npid 3490, 3456\n1a1a1a1a1b1h 41 - 50\npid 3491, 3457\n1a1a1a1a1b1i 51 - 60\npid 3492, 3445\n1a1a1a1a1b1j 61 - 70\npid 3493, 3446\n1a1a1a1a1b1k 71 - 90\npid 3494, 3436\n1a1a1a1a1b1l 91 - 110\npid 3495, 3437\n1a1a1a1a1b1m 111 - 130\npid 3496, 3438\n1a1a1a1a1b1n 131 - 160\npid 3476, 3439\n1a1a1a1a1b1o 162 - 200\npid 3477, 3440\n1a1a1a1b Stainless steel\n1a1a1a1b1 Is your cable already assembled? (Is it already connected or fitted with a plug?)\n1a1a1a1b1a Yes\n1a1a1a1b1a1 What is the diameter [mm] of the cable?\n1a1a1a1b1a1a 0 - 5\npid produktanfrage\n1a1a1a1b1a1b 6 - 10\npid produktanfrage\n1a1a1a1b1a1c 11 - 15\npid produktanfrage\n1a1a1a1b1a1d 16 - 20\npid produktanfrage\n1a1a1a1b1a1e 21 - 25\npid produktanfrage\n1a1a1a1b1a1f 26 - 30\npid produktanfrage\n1a1a1a1b1a1g 31 - 40\npid produktanfrage\n1a1a1a1b1a1h 41 - 50\npid produktanfrage\n1a1a1a1b1a1i 51 - 60\npid produktanfrage\n1a1a1a1b1a1j 61 - 70\npid produktanfrage\n1a1a1a1b1a1k 71 - 90\npid produktanfrage\n1a1a1a1b1a1l 91 - 110\npid produktanfrage\n1a1a1a1b1a1m 111 - 130\npid produktanfrage\n1a1a1a1b1a1n 131 - 160\npid produktanfrage\n1a1a1a1b1a1o 162 - 200\npid produktanfrage\n1a1a1a1b1b No\n1a1a1a1b1b1 What is the diameter [mm] of the cable?\n1a1a1a1b1b1a 0 - 5\npid produktanfrage\n1a1a1a1b1b1b 6 - 10\npid produktanfrage\n1a1a1a1b1b1c 11 - 15\npid produktanfrage\n1a1a1a1b1b1d 16 - 20\npid produktanfrage\n1a1a1a1b1b1e 21 - 25\npid produktanfrage\n1a1a1a1b1b1f 26 - 30\npid produktanfrage\n1a1a1a1b1b1g 31 - 40\npid produktanfrage\n1a1a1a1b1b1h 41 - 50\npid produktanfrage\n1a1a1a1b1b1i 51 - 60\npid produktanfrage\n1a1a1a1b1b1j 61 - 70\npid produktanfrage\n1a1a1a1b1b1k 71 - 90\npid produktanfrage\n1a1a1a1b1b1l 91 - 110\npid produktanfrage\n1a1a1a1b1b1m 111 - 130\npid produktanfrage\n1a1a1a1b1b1n 131 - 160\npid produktanfrage\n1a1a1a1a1b1o 162 - 200\npid produktanfrage\n1a1a1b Three\n1a1a1b1 Is your cable already assembled? (Is it already connected or fitted with a plug?)\n1a1a1b1a Yes\npid produktanfrage\n1a1a1b1b No\n1a1a1b1b1 What is the diameter [mm] of the cable?\n1a1a1b1b1a 0 - 15\npid produktanfrage\n1a1a1b1b1b 16 - 20\npid 3463\n1a1a1b1b1c 21 - 25\npid 3465\n1a1a1b1b1d 26 - 30\npid 3466\n1a1a1b1b1e 31 - 40\npid 3447\n1a1a1b1b1f 41 - 50\npid 3448\n1a1a1b1b1g 51 - 60\npid 3449\n1a1a1b1b1h Larger diameter\npid produktanfrage\n1a1b For strain relief\n1a1b1 What material should the cable grip be made of?\n1a1b1a Galvanised steel (standard)\n1a1b1a1 Is your cable already assembled? Is it already connected or fitted with a plug?\n1a1b1a1a Yes\n1a1b1a1a1 What is the diameter [mm] of the cable?\n1a1b1a1a1a 0 - 3\npid produktanfrage\n1a1b1a1a1b 4 - 5\npid 3370\n1a1b1a1a1c 6\n1a1b1a1a1c1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1c1a up to 0.6\npid 3370\n1a1b1a1a1c1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1c1c No information available\npid produktanfrage\n1a1b1a1a1d 7 - 9\n1a1b1a1a1d1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1d1a up to 1.1\npid 3372\n1a1b1a1a1d1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1d1c No information available\npid produktanfrage\n1a1b1a1a1e 10\n1a1b1a1a1e1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1e1a up to 1.3\npid 3373\n1a1b1a1a1e1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1e1c No information available\npid produktanfrage\n1a1b1a1a1f 11 - 12\n1a1b1a1a1f1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1f1a up to 1.3\npid 3373\n1a1b1a1a1f1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1f1c No information available\npid produktanfrage\n1a1b1a1a1g 13 - 15\n1a1b1a1a1g1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1g1a up to 2.1\npid 3374\n1a1b1a1a1g1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1g1c No information available\npid produktanfrage\n1a1b1a1a1h 16 - 19\n1a1b1a1a1h1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1h1a up to 2.6\npid 3375\n1a1b1a1a1h1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1h1c No information available\npid produktanfrage\n1a1b1a1a1i 20\n1a1b1a1a1i1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1i1a up to 2.6\npid 3360\n1a1b1a1a1i1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1i1c No information available\npid produktanfrage\n1a1b1a1a1j 21 - 25\n1a1b1a1a1j1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1j1a up to 2.6\npid 3360\n1a1b1a1a1j1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1j1c No information available\npid produktanfrage\n1a1b1a1a1k 26 - 30\n1a1b1a1a1k1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1k1a up to 4.0\npid 3376\n1a1b1a1a1k1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1k1c No information available\npid produktanfrage\n1a1b1a1a1l 31 - 40\n1a1b1a1a1l1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1l1a up to 5.8\npid 3377\n1a1b1a1a1l1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1l1c No information available\npid produktanfrage\n1a1b1a1a1m 41 - 50\n1a1b1a1a1m1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1m1a up to 8.0\npid 3378\n1a1b1a1a1m1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1m1c No information available\npid produktanfrage\n1a1b1a1a1n 51 - 60\n1a1b1a1a1n1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1n1a up to 8.0\npid 3379\n1a1b1a1a1n1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1n1c No information available\npid produktanfrage\n1a1b1a1a1o 61 - 70\n1a1b1a1a1o1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1o1a up to 10.6\npid 3359\n1a1b1a1a1o1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1o1c No information available\npid produktanfrage\n1a1b1a1a1p 71 - 90\n1a1b1a1a1p1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1p1a up to 13.9\npid 3361\n1a1b1a1a1p1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1p1c No information available\npid produktanfrage\n1a1b1a1a1q 91 - 110\n1a1b1a1a1q1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1q1a up to 17.4\npid 3362\n1a1b1a1a1q1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1q1c No information available\npid produktanfrage\n1a1b1a1a1r Larger diameter\npid produktanfrage\n1a1b1a1b No\n1a1b1a1b1 What is the diameter [mm] of the cable?\n1a1b1a1b1a 0 - 3\npid produktanfrage\n1a1b1a1b1b 4 - 5\npid 3420, 3402\n1a1b1a1b1c 6\n1a1b1a1b1c1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1c1a up to 0.6\npid 3402\n1a1b1a1b1c1b up to 2.2\npid produktanfrage\n1a1b1a1b1c1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1c1d No information available\npid 3402\n1a1b1a1b1d 7 - 9\n1a1b1a1b1d1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1d1a up to 1.1\npid 3404\n1a1b1a1b1d1b up to 2.2\npid produktanfrage\n1a1b1a1b1d1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1d1d No information available\npid 3404\n1a1b1a1b1e 10\n1a1b1a1b1e1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1e1a up to 1.3\npid 3390\n1a1b1a1b1e1b up to 2.2\npid produktanfrage\n1a1b1a1b1e1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1e1d No information available\npid 3390\n1a1b1a1b1f 11 - 12\n1a1b1a1b1f1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1f1a up to 1.3\npid 3390\n1a1b1a1b1f1b up to 3.4\npid produktanfrage\n1a1b1a1b1f1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1f1d No information available\npid 3390\n1a1b1a1b1g 13 - 15\n1a1b1a1b1g1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1g1a up to 1.3\npid 3380\n1a1b1a1b1g1b up to 3.4\npid produktanfrage\n1a1b1a1b1g1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1g1d No information available\npid 3380\n1a1b1a1b1h 16 - 19\n1a1b1a1b1h1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1h1a up to 2.6\npid 3381\n1a1b1a1b1h1b up to 6.8\npid produktanfrage\n1a1b1a1b1h1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1h1d No information available\npid 3381\n1a1b1a1b1i 20\n1a1b1a1b1i1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1i1a up to 2.6\npid 3382\n1a1b1a1b1i1b up to 6.8\npid produktanfrage\n1a1b1a1b1i1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1i1d No information available\npid 3382\n1a1b1a1b1j 21 - 25\n1a1b1a1b1j1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1j1a up to 2.6\npid 3382\n1a1b1a1b1j1b up to 6.8\npid produktanfrage\n1a1b1a1b1j1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1j1d No information available\npid 3382\n1a1b1a1b1k 26 - 30\n1a1b1a1b1k1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1k1a up to 4.0\npid 3383\n1a1b1a1b1k1b up to 8.1\npid produktanfrage\n1a1b1a1b1k1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1k1d No information available\npid 3383\n1a1b1a1b1l 31 - 40\n1a1b1a1b1l1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1l1a up to 5.8\npid 3384\n1a1b1a1b1l1b up to 11.7\npid produktanfrage\n1a1b1a1b1l1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1l1d No information available\npid 3384\n1a1b1a1b1m 41 - 50\n1a1b1a1b1m1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1m1a up to 8.0\npid 3385\n1a1b1a1b1m1b up to 16.0\npid produktanfrage\n1a1b1a1b1m1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1m1d No information available\npid 3385\n1a1b1a1b1n 51 - 60\n1a1b1a1b1n1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1n1a up to 8.0\npid 3386\n1a1b1a1b1n1b up to 16.0\npid produktanfrage\n1a1b1a1b1n1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1n1d No information available\npid 3386\n1a1b1a1b1o 61 - 70\n1a1b1a1b1o1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1o1a up to 10.6\npid 3387\n1a1b1a1b1o1b up to 21.3\npid 3335\n1a1b1a1b1o1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1o1d No information available\npid 3387\n1a1b1a1b1p 71 - 90\n1a1b1a1b1p1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1p1a up to 13.9\npid 3388\n1a1b1a1b1p1b up to 27.9\npid produktanfrage\n1a1b1a1b1p1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1p1d No information available\npid 3388\n1a1b1a1b1q 91 - 110\n1a1b1a1b1q1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1q1a up to 17.4\npid 3389\n1a1b1a1b1q1b up to 34.9\npid produktanfrage\n1a1b1a1b1q1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1q1d No information available\npid 3389\n1a1b1a1b1r Larger diameter\npid produktanfrage\n1a1b1b Stainless steel\n1a1b1b1 Is your cable already assembled? Is it already connected or fitted with a plug?\n1a1b1b1a Yes\npid produktanfrage\n1a1b1b1b No\n1a1b1b1b1 What is the diameter [mm] of the cable?\n1a1b1b1b1a 0 - 3\npid produktanfrage\n1a1b1b1b1b 4 - 5\npid produktanfrage\n1a1b1b1b1c 6\n1a1b1b1b1c1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1c1a up to 0.36\npid produktanfrage\n1a1b1b1b1c1b up to 1.32\npid 3348\n1a1b1b1b1c1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1c1d No information available.\npid 3348\n1a1b1b1b1d 7 - 9\n1a1b1b1b1d1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1d1a up to 0.66\npid produktanfrage\n1a1b1b1b1d1b up to 1.32\npid 3348\n1a1b1b1b1d1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1d1d No information available\npid 3348\n1a1b1b1b1e 10\n1a1b1b1b1e1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1e1a up to 0.78\npid produktanfrage\n1a1b1b1b1e1b up to 1.32\npid 3348\n1a1b1b1b1e1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1e1d No information available\npid 3348\n1a1b1b1b1f 11 - 12\n1a1b1b1b1f1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1f1a up to 0.78\npid produktanfrage\n1a1b1b1b1f1b up to 2.0\npid 3350\n1a1b1b1b1f1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1f1d No information available\npid 3350\n1a1b1b1b1g 13 - 15\n1a1b1b1b1g1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1g1a up to 1.26\npid produktanfrage\n1a1b1b1b1g1b up to 2.0\npid 3350\n1a1b1b1b1g1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1g1d No information available\npid 3350\n1a1b1b1b1h 16 - 19\n1a1b1b1b1h1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1h1a up to 1.56\npid produktanfrage\n1a1b1b1b1h1b up to 4.08\npid 3351\n1a1b1b1b1h1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1h1d No information available\npid 3351\n1a1b1b1b1i 20\n1a1b1b1b1i1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1i1a up to 1.56\npid produktanfrage\n1a1b1b1b1i1b up to 4.08\npid 3351\n1a1b1b1b1i1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1i1d No information available\npid 3351\n1a1b1b1b1j 21 - 25\n1a1b1b1b1j1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1j1a up to 1.56\npid produktanfrage\n1a1b1b1b1j1b up to 4.08\npid 3352\n1a1b1b1b1j1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1j1d No information available\npid 3352\n1a1b1b1b1k 26 - 30\n1a1b1b1b1k1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1k1a up to 2.4\npid produktanfrage\n1a1b1b1b1k1b up to 4.86\npid 3353\n1a1b1b1b1k1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1k1d No information available\npid 3353\n1a1b1b1b1l 31 - 40\n1a1b1b1b1l1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1l1a up to 3.48\npid produktanfrage\n1a1b1b1b1l1b up to 7.02\npid 3354\n1a1b1b1b1l1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1l1d No information available\npid 3354\n1a1b1b1b1m 41 - 50\n1a1b1b1b1m1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1m1a up to 4.8\npid produktanfrage\n1a1b1b1b1m1b up to 9.6\npid 3333\n1a1b1b1b1m1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1m1d No information available\npid 3333\n1a1b1b1b1n 51 - 60\n1a1b1b1b1n1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1n1a up to 4.8\npid produktanfrage\n1a1b1b1b1n1b up to 9.6\npid 3334\n1a1b1b1b1n1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1n1d No information available\npid 3334\n1a1b1b1b1o 61 - 70\n1a1b1b1b1o1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1o1a up to 6.36\npid produktanfrage\n1a1b1b1b1o1b up to 12.78\npid 3335\n1a1b1b1b1o1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1o1d No information available\npid 3335\n1a1b1b1b1p 71 - 90\n1a1b1b1b1p1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1p1a up to 8.34\npid produktanfrage\n1a1b1b1b1p1b up to 16.74\npid 3336\n1a1b1b1b1p1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1p1d No information available\npid 3336\n1a1b1b1b1q 91 - 110\n1a1b1b1b1q1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1q1a up to 10.44\npid produktanfrage\n1a1b1b1b1q1b up to 20.94\npid 3337\n1a1b1b1b1q1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1q1d No information available\npid 3337\n1a1b1b1b1r Larger diameter\npid produktanfrage\n1a1c For connecting cables\n1a1c1 What material should the cable grip be made of?\n1a1c1a Galvanised steel (standard)\n1a1c1a1 What is the diameter [mm] of the cable?\n1a1c1a1a 0 - 5\npid produktanfrage\n1a1c1a1b 6 - 10\npid 3292\n1a1c1a1c 11 - 15\npid 3293\n1a1c1a1d 16 - 20\npid 3278\n1a1c1a1e 21 - 25\npid 3279\n1a1c1a1f 26 - 30\npid 3280\n1a1c1a1g 31 - 40\npid 3281\n1a1c1a1h 41 - 50\npid 3282\n1a1c1a1i 51 - 60\npid 3283\n1a1c1a1j 61 - 70\npid 3284\n1a1c1a1k 71 - 90\npid 3273\n1a1c1a1l 91 - 110\npid 3274\n1a1c1a1m Larger diameter\npid produktanfrage\n1a1c1b Stainless steel\npid produktanfrage\n1a1d For connecting crane ropes\n1a1d1 What material should the cable grip be made of?\n1a1d1a Galvanised steel (standard)\n1a1d1a1 What is the diameter [mm] of the cable?\n1a1d1a1a 0 - 5\npid produktanfrage\n1a1d1a1b 6 - 10\npid 3292\n1a1d1a1c 11 - 15\npid 3293\n1a1d1a1d 16 - 20\npid 3278\n1a1d1a1e 21 - 25\npid 3279\n1a1d1a1f 26 - 30\npid 3280\n1a1d1a1g 31 - 40\npid 3281\n1a1d1a1h 41 - 50\npid 3282\n1a1d1a1i 51 - 60\npid 3283\n1a1d1a1j 61 - 70\npid 3284\n1a1d1a1k 71 - 90\npid 3273\n1a1d1a1l 91 - 110\npid 3274\n1a1d1a1m Larger diameter\npid produktanfrage\n1a1d1b Stainless steel\npid produktanfrage\n1a1e For pulling in cables in domestic installations\n1a1e1 Should the cable grip have a threaded sleeve (M5) or an eyelet?\n1a1e1a Threaded sleeve (M5)\n1a1e1a1 What is the diameter [mm] of the cable?\n1a1e1a1a 0 - 3\npid produktanfrage\n1a1e1a1b 4 - 6\npid 3305\n1a1e1a1c 7 - 9\npid 3306\n1a1e1a1d 10 - 12\npid 3307\n1a1e1a1e 13 - 15\npid 3308\n1a1e1a1f 16 - 19\npid 3309\n1a1e1a1g 20 - 25\npid 3310\n1a1e1a1h 26 - 31\npid 3311\n1a1e1b Eyelet\n1a1e1b1a 0 - 3\npid produktanfrage\n1a1e1b1b 4 - 6\npid 3312\n1a1e1b1c 7 - 9\npid 3313\n1a1e1b1d 10 - 12\npid 3314\n1a1e1b1e 13 - 15\npid 3294\n1a1e1b1f 16 - 19\npid 3295\n1a1e1b1g 20 - 25\npid 3296\n1a1e1b1h 26 - 31\npid 3297\n1a1e For pulling in cables in domestic installations\n1a1e1 Should the cable grip have a threaded sleeve (M5) or an eyelet?\n1a1e1a Threaded sleeve (M5)\n1a1e1a1 What is the diameter [mm] of the cable?\n1a1e1a1a 0 - 3\npid produktanfrage\n1a1e1a1b 4 - 6\npid 3484\n1a1e1a1c 7 - 9\npid 3486\n1a1e1a1d 10 - 12\npid 3467\n1a1e1a1e 13 - 15\npid 3468\n1a1e1a1f 16 - 19\npid 3469\n1a1e1a1g 20 - 25\npid 3470\n1a1e1a1h 26 - 31\npid 3471\n1a1e1a1i Larger diameter\npid produktanfrage\n1a1e1b Eyelet\n1a1e1b1 What is the diameter [mm] of the cable?\n1a1e1b1a 0 - 3\npid produktanfrage\n1a1e1b1b 4 - 6\npid 3478\n1a1e1b1c 7 - 9\npid 3479\n1a1e1b1d 10 - 12\npid 3480\n1a1e1b1e 13 - 15\npid 3481\n1a1e1b1f 16 - 19\npid 3482\n1a1e1b1g 20 - 25\npid 3483\n1a1e1b1h 26 - 31\npid 3472\n1a1e1b1i Larger diameter\npid produktanfrage\n1a1f For pulling in fiber optic cables\n1a1f1 What is the diameter [mm] of the cable?\n1a1f1a 0 - 5\npid produktanfrage\n1a1f1b 6 - 9\npid 3474\n1a1f1c 10 - 12\npid 3475\n1a1f1d 13 - 15\npid 3458\n1a1f1e 16 - 19\npid 3459\n1a1f1f 20 - 25\npid 3461\n1a1f1g 26 - 31\npid 3462\n1a1f1h Larger diameter\npid produktanfrage\n1a1g For securing hoses\n1a1g1 Should the cable grip have one or two attachment points?\n1a1g1a One attachment point\n1a1g1a1 What material should the cable grip be made of?\n1a1g1a1a Galvanised steel (standard)\n1a1g1a1a1 Is your hose already assembled? Is it already connected or fitted with a screw connection?\n1a1g1a1a1a Yes\n1a1g1a1a1a1 What is the diameter of the hose?\n1a1g1a1a1a1a 0 - 5\npid produktanfrage\n1a1g1a1a1a1b 6 - 10\npid produktanfrage\n1a1g1a1a1a1c 11 - 15\npid produktanfrage\n1a1g1a1a1a1d 16 - 20\npid produktanfrage\n1a1g1a1a1a1e 21 - 25\npid produktanfrage\n1a1g1a1a1a1f 26 - 30\npid produktanfrage\n1a1g1a1a1a1g 31 - 40\npid produktanfrage\n1a1g1a1a1a1h 41 - 50\npid produktanfrage\n1a1g1a1a1a1i 51 - 60\npid produktanfrage\n1a1g1a1a1a1j 61 - 70\npid produktanfrage\n1a1g1a1a1a1k 71 - 90\npid produktanfrage\n1a1g1a1a1a1l 91 - 110\npid produktanfrage\n1a1g1a1a1a1m Larger diameter\npid produktanfrage\n1a1g1a1a1b No\n1a1g1a1a1b1 What is the diameter of the hose?\n1a1g1a1a1b1a 0 - 5\npid produktanfrage\n1a1g1a1a1b1b 6 - 10\npid 3338\n1a1g1a1a1b1c 11 - 15\npid 3340\n1a1g1a1a1b1d 16 - 20\npid 3341\n1a1g1a1a1b1e 21 - 25\npid 3342\n1a1g1a1a1b1f 26 - 30\npid 3343\n1a1g1a1a1b1g 31 - 40\npid 3325\n1a1g1a1a1b1h 41 - 50\npid 3326\n1a1g1a1a1b1i 51 - 60\npid 3327\n1a1g1a1a1b1j 61 - 70\npid 3328\n1a1g1a1a1b1k 71 - 90\npid 3329\n1a1g1a1a1b1l 91 - 110\npid 3330\n1a1g1a1a1b1m Larger diameter\npid produktanfrage\n1a1g1a1b Stainless steel\n1a1g1a1b1 Is your hose already assembled? Is it already connected or fitted with a screw connection?\n1a1g1a1b1a Yes\n1a1g1a1b1a1 What is the diameter of the hose?\n1a1g1a1b1a1a 0 - 5\npid produktanfrage\n1a1g1a1b1a1b 6 - 10\npid produktanfrage\n1a1g1a1b1a1c 11 - 15\npid produktanfrage\n1a1g1a1b1a1d 16 - 20\npid produktanfrage\n1a1g1a1b1a1e 21 - 25\npid produktanfrage\n1a1g1a1b1a1f 26 - 30\npid produktanfrage\n1a1g1a1b1a1g 31 - 40\npid produktanfrage\n1a1g1a1b1a1h 41 - 50\npid produktanfrage\n1a1g1a1b1a1i 51 - 60\npid produktanfrage\n1a1g1a1b1a1j 61 - 70\npid produktanfrage\n1a1g1a1b1a1k 71 - 90\npid produktanfrage\n1a1g1a1b1a1l 91 - 110\npid produktanfrage\n1a1g1a1b1a1m Larger diameter\npid produktanfrage\n1a1g1a1b1b No\n1a1g1a1b1b1 What is the diameter of the hose?\n1a1g1a1b1b1a 0 - 5\npid produktanfrage\n1a1g1a1b1b1b 6 - 10\npid produktanfrage\n1a1g1a1b1b1c 11 - 15\npid produktanfrage\n1a1g1a1b1b1d 16 - 20\npid produktanfrage\n1a1g1a1b1b1e 21 - 25\npid produktanfrage\n1a1g1a1b1b1f 26 - 30\npid produktanfrage\n1a1g1a1b1b1g 31 - 40\npid produktanfrage\n1a1g1a1b1b1h 41 - 50\npid produktanfrage\n1a1g1a1b1b1i 51 - 60\npid produktanfrage\n1a1g1a1b1b1j 61 - 70\npid produktanfrage\n1a1g1a1b1b1k 71 - 90\npid produktanfrage\n1a1g1a1b1b1l 91 - 110\npid produktanfrage\n1a1g1a1b1b1m 111 - 130\npid produktanfrage\n1a1g1a1b1b1n 131 - 160\npid produktanfrage\n1a1g1a1b1b1o 162 - 200\npid produktanfrage\n1a1g1b Two attachment points\n1a1g1b1 What material should the cable grip be made of?\n1a1g1b1a Galvanised steel (standard)\n1a1g1b1a1 Is your hose already assembled? Is it already connected or fitted with a screw connection?\n1a1g1b1a1a Yes\n1a1g1b1a1a1 What is the diameter of the hose?\n1a1g1b1a1a1a 0 - 5\npid produktanfrage\n1a1g1b1a1a1b 6 - 10\npid produktanfrage\n1a1g1b1a1a1c 11 - 15\npid produktanfrage\n1a1g1b1a1a1d 16 - 20\npid produktanfrage\n1a1g1b1a1a1e 21 - 25\npid produktanfrage\n1a1g1b1a1a1f 26 - 30\npid produktanfrage\n1a1g1b1a1a1g 31 - 40\npid produktanfrage\n1a1g1b1a1a1h 41 - 50\npid produktanfrage\n1a1g1b1a1a1i 51 - 60\npid produktanfrage\n1a1g1b1a1a1j 61 - 70\npid produktanfrage\n1a1g1b1a1a1k 71 - 90\npid produktanfrage\n1a1g1b1a1a1l 91 - 110\npid produktanfrage\n1a1g1b1a1a1m Larger diameter\npid produktanfrage\n1a1g1b1a1b No\n1a1g1b1a1b1 What is the diameter of the hose?\n1a1g1b1a1b1a 0 - 5\npid produktanfrage\n1a1g1b1a1b1b 6 - 10\npid 3331\n1a1g1b1a1b1c 11 - 15\npid 3318\n1a1g1b1a1b1d 16 - 20\npid 3319\n1a1g1b1a1b1e 21 - 25\npid 3320\n1a1g1b1a1b1f 26 - 30\npid 3321\n1a1g1b1a1b1g 31 - 40\npid 3322\n1a1g1b1a1b1h 41 - 50\npid 3323\n1a1g1b1a1b1i 51 - 60\npid 3324\n1a1g1b1a1b1j 61 - 70\npid 3315\n1a1g1b1a1b1k 71 - 90\npid 3316\n1a1g1b1a1b1l 91 - 110\npid 3317\n1a1g1b1a1b1m Larger diameter\npid produktanfrage\n1a1g1b1b Stainless steel\n1a1g1b1b1 Is your hose already assembled? Is it already connected or fitted with a screw connection?\n1a1g1b1b1a Yes\n1a1g1b1b1a1 What is the diameter of the hose?\n1a1g1b1b1a1a 0 - 5\npid produktanfrage\n1a1g1b1b1a1b 6 - 10\npid produktanfrage\n1a1g1b1b1a1c 11 - 15\npid produktanfrage\n1a1g1b1b1a1d 16 - 20\npid produktanfrage\n1a1g1b1b1a1e 21 - 25\npid produktanfrage\n1a1g1b1b1a1f 26 - 30\npid produktanfrage\n1a1g1b1b1a1g 31 - 40\npid produktanfrage\n1a1g1b1b1a1h 41 - 50\npid produktanfrage\n1a1g1b1b1a1i 51 - 60\npid produktanfrage\n1a1g1b1b1a1j 61 - 70\npid produktanfrage\n1a1g1b1b1a1k 71 - 90\npid produktanfrage\n1a1g1b1b1a1l 91 - 110\npid produktanfrage\n1a1g1b1b1a1m Larger diameter\npid produktanfrage\n1a1g1b1b1b No\n1a1g1b1b1b1 What is the diameter of the hose?\n1a1g1b1b1b1a 0 - 5\npid produktanfrage\n1a1g1b1b1b1b 6 - 10\npid produktanfrage\n1a1g1b1b1b1c 11 - 15\npid produktanfrage\n1a1g1b1b1b1d 16 - 20\npid produktanfrage\n1a1g1b1b1b1e 21 - 25\npid produktanfrage\n1a1g1b1b1b1f 26 - 30\npid produktanfrage\n1a1g1b1b1b1g 31 - 40\npid produktanfrage\n1a1g1b1b1b1h 41 - 50\npid produktanfrage\n1a1g1b1b1b1i 51 - 60\npid produktanfrage\n1a1g1b1b1b1j 61 - 70\npid produktanfrage\n1a1g1b1b1b1k 71 - 90\npid produktanfrage\n1a1g1b1b1b1l 91 - 110\npid produktanfrage\n1a1g1b1b1b1m Larger diameter\npid produktanfrage\n1a1h No suitable application area included.\npid produktanfrage\n1b Accessories\n1b1 Which accessories do you need?\n1b1a Swivel\n1b1a1 What tensile forces [mm] should be absorbed?\n1b1a1a up to 7\npid 3432\n1b1a1b up to 10\npid 3414\n1b1a1c up to 15\npid 3415\n1b1a1d up to 50\npid 3416\n1b1a1e up to 75\npid 3417\n1b1a1f up to 100\npid 3418\n1b1a1g up to 170\npid 3419\n1b1a1h Larger diameter\npid produktanfrage\n1b1b Overhead line swivels\n1b1b1 What tensile forces [mm] should be absorbed?\n1b1b1a up to 7\npid 3285\n1b1b1b up to 15\npid 3286\n1b1b1c up to 20\npid 3287\n1b1b1d up to 30\npid 3288\n1b1b1e up to 50\npid 3289\n1b1b1f up to 60\npid 3290\n1b1b1g up to 75\npid 3291\n1b1b1h Higher tensile forces\npid produktanfrage\n1b1c Abrasion protection shells\n1b1c1 For which cable grip should the abrasion protection shells be used?\n1b1c1a K 20\/\u2026\npid 3247\n1b1c1b K 25\/\u2026\npid 3248\n1b1c1c K 30\/\u2026\npid 3234\n1b1c1d KV 20\npid 3247\n1b1c1e KV 25\npid 3248\n1b1c1f KV 30\npid 3234\n1b1c1g S 20\/\u2026\npid 3247\n1b1c1h S 25\/\u2026\npid 3248\n1b1c1i S 30\/\u2026\npid 3234\n1b1c1j Other size\npid produktanfrage\n1b1d Insertion band (Fieberflex)\npid 3275, 3276, 3277\n1c Spare parts\n1c1 Which spare part do you need?\n1c1a Binding wire\n1c1a1 What material is your cable grip made of?\n1c1a1a Galvanised steel (standard)\n1c1a1a1 For which type of cable grip do you need the binding wire?\n1c1a1a1a Split cable pulling grips (K \u2026\/2\/G)\n1c1a1a1a1 For which cable grip do you need the binding wire?\n1c1a1a1a1a K 10\/2\/G\npid 3267\n1c1a1a1a1b K 15\/2\/G\npid 3262\n1c1a1a1a1c K 20\/2\/G\npid 3263\n1c1a1a1a1d K 25\/2\/G\npid 3254\n1c1a1a1a1e K 30\/2\/G\npid 3255\n1c1a1a1a1f K 40\/2\/G\npid 3256\n1c1a1a1a1g K 50\/2\/G\npid 3257\n1c1a1a1a1h K 60\/2\/G\npid 3258\n1c1a1a1a1i K 70\/2\/G\npid 3259\n1c1a1a1a1j K 90\/2\/G\npid 3260\n1c1a1a1a1k K 110\/2\/G\npid 3261\n1c1a1a1a1l K 130\/2\/G\npid 3240\n1c1a1a1a1m K 160\/2\/G\npid 3239\n1c1a1a1a1n K 200\/2\/G\npid 3238\n1c1a1a1a1o No suitable option\npid produktanfrage\n1c1a1a1b Split cable mounting grips (M \u2026\/1\/G)\n1c1a1a1b1 For which cable grip do you need the binding wire?\n1c1a1a1b1a M 6\/1\/G\npid 3237\n1c1a1a1b1b M 9\/1\/G\npid 3235\n1c1a1a1b1c M 12\/1\/G\npid 3250\n1c1a1a1b1d M 15\/1\/G\npid 3249\n1c1a1a1b1e M 19\/1\/G\npid 3251\n1c1a1a1b1f M 25\/1\/G\npid 3252\n1c1a1a1b1g M 30\/1\/G\npid 3253\n1c1a1a1b1h M 40\/1\/G\npid 3246\n1c1a1a1b1i M 50\/1\/G\npid 3245\n1c1a1a1b1j M 60\/1\/G\npid 3244\n1c1a1a1b1k M 70\/1\/G\npid 3243\n1c1a1a1b1l M 90\/1\/G\npid 3242\n1c1a1a1b1m M 110\/1\/G\npid 3241\n1c1a1a1b1n No suitable option\npid produktanfrage\n1c1a1a1c No suitable option\npid produktanfrage\n1c1a1b Stainless steel\n1c1a1b1 For which cable grip do you need the binding wire?\n1c1a1b1a Split cable pulling grips (K \u2026\/2\/G\/E)\n1c1a1b1a1 For which cable grip do you need the binding wire?\n1c1a1b1a1a K 10\/2\/G\/E\npid produktanfrage\n1c1a1b1a1b K 15\/2\/G\/E\npid produktanfrage\n1c1a1b1a1c K 20\/2\/G\/E\npid produktanfrage\n1c1a1b1a1d K 25\/2\/G\/E\npid produktanfrage\n1c1a1b1a1e K 30\/2\/G\/E\npid produktanfrage\n1c1a1b1a1f K 40\/2\/G\/E\npid produktanfrage\n1c1a1b1a1g K 50\/2\/G\/E\npid produktanfrage\n1c1a1b1a1h K 60\/2\/G\/E\npid produktanfrage\n1c1a1b1a1i K 70\/2\/G\/E\npid produktanfrage\n1c1a1b1a1j K 90\/2\/G\/E\npid produktanfrage\n1c1a1b1a1k K 110\/2\/G\/E\npid produktanfrage\n1c1a1b1a1l K 130\/2\/G\/E\npid produktanfrage\n1c1a1b1a1m K 160\/2\/G\/E\npid produktanfrage\n1c1a1b1a1n K 200\/2\/G\/E\npid produktanfrage\n1c1a1b1a1o No suitable option\npid produktanfrage\n1c1a1b1b Split cable mounting grips (M \u2026\/1\/G\/E)\n1c1a1b1b1 For which cable grip do you need the binding wire?\n1c1a1b1b1a M 6\/1\/G\/E\npid produktanfrage\n1c1a1b1b1b M 9\/1\/G\/E\npid produktanfrage\n1c1a1b1b1c M 12\/1\/G\/E\npid produktanfrage\n1c1a1b1b1d M 15\/1\/G\/E\npid produktanfrage\n1c1a1b1b1e M 19\/1\/G\/E\npid produktanfrage\n1c1a1b1b1f M 25\/1\/G\/E\npid produktanfrage\n1c1a1b1b1g M 30\/1\/G\/E\npid produktanfrage\n1c1a1b1b1h M 40\/1\/G\/E\npid produktanfrage\n1c1a1b1b1i M 50\/1\/G\/E\npid produktanfrage\n1c1a1b1b1j M 60\/1\/G\/E\npid produktanfrage\n1c1a1b1b1k M 70\/1\/G\/E\npid produktanfrage\n1c1a1b1b1l M 90\/1\/G\/E\npid produktanfrage\n1c1a1b1b1m M 110\/1\/G\/E\npid produktanfrage\n1c1a1b1b1n No suitable option\npid produktanfrage\n1c1a1b1c No suitable option\npid produktanfrage\n1c1a1c No suitable option\npid produktanfrage\n1c1b Closure plate\n1c1b1 For which cable grip do you need the closure plate?\n1c1b1a M 6\/V\npid produktanfrage\n1c1b1b M 9\/V\npid produktanfrage\n1c1b1c M 12\/V\npid produktanfrage\n1c1b1d M 15\/V\npid produktanfrage\n1c1b1e M 19\/V\npid produktanfrage\n1c1b1f M 25\/V\npid produktanfrage\n1c1b1g M 30\/V\npid produktanfrage\n1c1b1h M 40\/V\npid produktanfrage\n1c1b1i M 50\/V\npid produktanfrage\n1c1b1j M 60\/V\npid produktanfrage\n1c1b1k M 70\/V\npid produktanfrage\n1c1b1l M 90\/V\npid produktanfrage\n1c1b1m M 110\/V\npid produktanfrage\n1c1b1n No suitable option\npid produktanfrage\n1c1c No suitable option\npid produktanfrage`;\n\n  \/**\n   * 2. LOGIK UND PARSER\n   *\/\n  const appState = {\n    data: {},\n    currentId: '1',\n    history: [], \/\/ Stack f\u00fcr Breadcrumbs\n    productCache: {} \n  };\n\n  function parseRawData(text) {\n    const lines = text.split(\/\\r?\\n\/).filter(line => line.trim() !== '');\n    const map = {};\n    let lastId = null;\n\n    lines.forEach(line => {\n      line = line.trim();\n      \n      \/\/ Check for Result (PID)\n      if (line.toLowerCase().startsWith('pid')) {\n        const resultVal = line.substring(3).trim();\n        if (lastId && map[lastId]) {\n          map[lastId].result = resultVal;\n        }\n        return;\n      }\n\n      \/\/ Regex: Startet mit Ziffern\/Buchstaben (case insensitive)\n      const match = line.match(\/^([0-9a-zA-Z]+)\\s+(.*)\/);\n      if (match) {\n        let id = match[1].toLowerCase(); \/\/ Normalize ID\n        let content = match[2];\n\n        \/\/ Entferne (Foto ...) f\u00fcr die Anzeige, aber halte es sauber\n        content = content.replace(\/\\(Foto.*?\\)\/gi, '').trim();\n\n        \/\/ ERWEITERTE FRAGE-ERKENNUNG:\n        \/\/ 1. Enth\u00e4lt '?' (egal wo, da manche User \"(Erkl\u00e4rung)\" danach schreiben)\n        \/\/ 2. ID endet auf eine Zahl (Schema: 1, 1a1, 1a1a1 sind Fragen)\n        \/\/ 3. ID endet auf Buchstaben (Schema: 1a, 1a1a sind Antworten)\n        \n        let isQuestion = content.includes('?');\n        \n        \/\/ Fallback aufs ID Schema falls '?' vergessen wurde\n        \/\/ Wenn ID auf Zahl endet, ist es eine Frage.\n        if (!isQuestion && \/[0-9]$\/.test(id)) {\n           isQuestion = true;\n        }\n\n        map[id] = {\n          id: id,\n          text: content,\n          type: isQuestion ? 'question' : 'answer',\n          children: []\n        };\n        lastId = id;\n      }\n    });\n\n    \/\/ Baumstruktur aufbauen\n    Object.keys(map).forEach(id => {\n      const node = map[id];\n      if (node.type === 'answer') {\n        const parentId = id.substring(0, id.length - 1);\n        if (map[parentId]) {\n          map[parentId].children.push(id);\n        }\n      }\n    });\n\n    return map;\n  }\n\n  appState.data = parseRawData(RAW_DATA);\n\n  \/**\n   * 3. UI RENDERING\n   *\/\n  const els = {\n    wrapper: document.getElementById('produktberater-wrapper'),\n    loading: document.getElementById('pb-loading'),\n    questionView: document.getElementById('pb-question-view'),\n    questionText: document.getElementById('pb-question-text'),\n    optionsGrid: document.getElementById('pb-options'),\n    resultView: document.getElementById('pb-result-view'),\n    resultList: document.getElementById('pb-result-list'),\n    errorView: document.getElementById('pb-error-view'),\n    breadcrumbs: document.getElementById('pb-breadcrumbs'),\n    progress: document.getElementById('pb-progress'),\n    btnBack: document.getElementById('pb-btn-back'),\n    btnReset: document.getElementById('pb-btn-reset'),\n    debugInfo: document.getElementById('pb-debug-info')\n  };\n\n  function updateView() {\n    els.loading.classList.add('hidden');\n    els.questionView.classList.add('hidden');\n    els.resultView.classList.add('hidden');\n    els.errorView.classList.add('hidden');\n    \n    \/\/ Debugging\n    els.debugInfo.innerText = `Current Node: ${appState.currentId}`;\n    \n    els.btnBack.classList.toggle('hidden', appState.history.length === 0);\n\n    const currentNode = appState.data[appState.currentId];\n\n    if (!currentNode) {\n      console.warn('Kritischer Fehler: Node nicht gefunden', appState.currentId);\n      \/\/ Wenn wir ganz am Anfang crashen:\n      if(appState.currentId === '1') {\n         els.questionText.innerText = \"Error: Start node '1' not found.\";\n         els.questionView.classList.remove('hidden');\n      } else {\n         showResult('produktanfrage');\n      }\n      return;\n    }\n\n    renderBreadcrumbs();\n    renderProgress();\n\n    \/\/ 1. Ist es eine Antwort mit direktem Resultat?\n    if (currentNode.type === 'answer' && currentNode.result) {\n      showResult(currentNode.result);\n      return;\n    }\n\n    \/\/ 2. Ist es eine Antwort, die zur n\u00e4chsten Frage f\u00fchren soll?\n    if (currentNode.type === 'answer' && !currentNode.result) {\n      \/\/ Schema: N\u00e4chste Frage = ID + '1'\n      const nextId = currentNode.id + '1';\n      \n      if (appState.data[nextId]) {\n        appState.currentId = nextId;\n        updateView(); \/\/ Rekursion zum n\u00e4chsten Schritt\n        return;\n      } else {\n        \/\/ Edge Case: Sackgasse im Baum\n        console.warn('Sackgasse erkannt bei', currentNode.id);\n        els.errorView.classList.remove('hidden');\n        return;\n      }\n    }\n\n    \/\/ 3. Es ist eine Frage -> Anzeigen\n    if (currentNode.type === 'question') {\n      renderQuestion(currentNode);\n    }\n  }\n\n  function renderQuestion(node) {\n    els.questionView.classList.remove('hidden');\n    els.questionText.innerText = node.text;\n    els.optionsGrid.innerHTML = '';\n\n    if (node.children.length === 0) {\n      \/\/ Sollte nicht passieren, aber falls eine Frage keine Antworten hat:\n       const msg = document.createElement('div');\n       msg.innerText = \"No options found.\";\n       els.optionsGrid.appendChild(msg);\n    }\n\n    node.children.forEach(childId => {\n      const childNode = appState.data[childId];\n      if (childNode) {\n        const btn = document.createElement('button');\n        btn.className = 'pb-option-btn';\n        btn.innerText = childNode.text;\n        btn.onclick = () => handleOptionClick(childId);\n        els.optionsGrid.appendChild(btn);\n      }\n    });\n  }\n\n  function handleOptionClick(id) {\n    appState.history.push(appState.currentId);\n    appState.currentId = id;\n    updateView();\n  }\n\n  function goBack() {\n    if (appState.history.length > 0) {\n      appState.currentId = appState.history.pop();\n      updateView();\n    }\n  }\n\n  function resetApp() {\n    appState.currentId = '1';\n    appState.history = [];\n    appState.productCache = {}; \/\/ Cache leeren f\u00fcr frische Daten\n    updateView();\n  }\n\n  \/\/ --- Breadcrumbs & Progress ---\n\n  \/\/ Breakpoint f\u00fcr Mobile\/Tablet vs. Desktop\n  const BREADCRUMB_MOBILE_QUERY = '(max-width: 900px)';\n\n  function isBreadcrumbMobile() {\n    if (!window.matchMedia) return false;\n    return window.matchMedia(BREADCRUMB_MOBILE_QUERY).matches;\n  }\n\n  function renderBreadcrumbs() {\n    if (!els.breadcrumbs) return;\n\n    els.breadcrumbs.innerHTML = '';\n\n    \/\/ Nur echte Fragen im Verlauf anzeigen\n    const visibleHistory = appState.history.filter(\n      id => appState.data[id] && appState.data[id].type === 'question'\n    );\n\n    const isMobile = isBreadcrumbMobile();\n    const MAX_DESKTOP_LENGTH = 80; \/\/ \"leicht\" k\u00fcrzen bei extrem langen Fragen\n\n    visibleHistory.forEach((histId, index) => {\n      const node = appState.data[histId];\n      if (!node) return;\n\n      \/\/ Separator einf\u00fcgen (ab zweitem Eintrag)\n      if (els.breadcrumbs.children.length > 0) {\n        const sep = document.createElement('span');\n        sep.className = 'pb-crumb-separator';\n        sep.innerText = ' \u203a ';\n        els.breadcrumbs.appendChild(sep);\n      }\n\n      const span = document.createElement('span');\n      span.className = 'pb-crumb';\n\n      const fullText = node.text || '';\n      let labelText;\n\n      if (isMobile) {\n        \/\/ Tablet & Mobile: neutrale Schritt-Labels\n        labelText = 'Question ' + (index + 1);\n      } else {\n        \/\/ Desktop: voller Fragetext, bei sehr langen Strings dezent k\u00fcrzen\n        labelText = fullText;\n        if (labelText.length > MAX_DESKTOP_LENGTH) {\n          labelText = labelText.substring(0, MAX_DESKTOP_LENGTH - 1) + '\u2026';\n        }\n      }\n\n      span.innerText = labelText;\n      \/\/ Volltext immer im title, f\u00fcr Hover auf Desktop\n      span.title = fullText;\n\n      \/\/ Index im echten History Array finden\n      const realIndex = appState.history.indexOf(histId);\n      span.onclick = () => jumpToHistory(realIndex);\n\n      els.breadcrumbs.appendChild(span);\n    });\n  }\n\n  function jumpToHistory(index) {\n    const targetId = appState.history[index];\n    appState.history = appState.history.slice(0, index);\n    appState.currentId = targetId;\n    updateView();\n  }\n\n  function renderProgress() {\n    \/\/ Dynamische Berechnung basierend auf Tiefe\n    const depth = appState.currentId.length;\n    \/\/ Ungef\u00e4hre maximale Tiefe im Baum ist 18 Zeichen\n    const pct = Math.min(100, (depth \/ 18) * 100);\n    els.progress.style.width = pct + '%';\n  }\n\n  \/\/ --- Resize-Handling f\u00fcr Breadcrumbs ---\n  let breadcrumbResizeTimeout = null;\n\n  function handleBreadcrumbResize() {\n    \/\/ kleines Debounce, um DOM-Spam beim Ziehen des Fensters zu vermeiden\n    if (breadcrumbResizeTimeout) {\n      clearTimeout(breadcrumbResizeTimeout);\n    }\n    breadcrumbResizeTimeout = setTimeout(() => {\n      renderBreadcrumbs();\n    }, 100);\n  }\n\n  window.addEventListener('resize', handleBreadcrumbResize);\n\n\n  \/**\n   * 4. ERGEBNIS & API\n   *\/\n   \n   const MIN_RESULT_LOADING_MS = 2500;\n\nasync function ensureMinResultLoading(startTime) {\n  const elapsed = Date.now() - startTime;\n  if (elapsed < MIN_RESULT_LOADING_MS) {\n    await new Promise(resolve => setTimeout(resolve, MIN_RESULT_LOADING_MS - elapsed));\n  }\n}\n   \nasync function showResult(pidString) {\n  els.resultView.classList.remove('hidden');\n\n  \/\/ Initialer Loading-State\n  els.resultList.innerHTML = `\n    <div class=\"pb-spinner\"><\/div>\n    <div class=\"pb-loading-copy\">Calculating the product recommendation(s) based on your details<\/div>\n  `;\n\n  const loadingStart = Date.now();\n\n  \/\/ 1. Pr\u00fcfen, ob es \u00fcberhaupt echte Produkt-IDs gibt\n  const isCustomRequest = pidString.includes('produktanfrage');\n  const ids = isCustomRequest\n    ? []\n    : pidString\n        .split(',')\n        .map(s => s.trim())\n        .filter(s => s !== '' && !isNaN(s));\n\n  \/\/ 2. Fall: Fallback \"Produktanfrage\"\n  if (isCustomRequest || ids.length === 0) {\n    \/\/ Sicherstellen, dass Spinner mindestens kurz sichtbar war\n    await ensureMinResultLoading(loadingStart);\n\n    els.resultList.innerHTML = '';\n    renderCustomRequest();\n    return;\n  }\n\n  \/\/ 3. Fall: Es gibt Produkt-IDs -> Daten parallel laden\n  \/\/ Promise.all fires all fetches simultaneously instead of sequentially.\n  \/\/ With the page-fetch approach (one HTTP request per product) this is\n  \/\/ essential \u2014 parallel fetches finish in roughly the time of one request.\n  const products = await Promise.all(\n    ids.map(async id => ({ id, productData: await fetchProductData(id) }))\n  );\n\n  \/\/ 4. Min. Loading-Zeit sicherstellen, bevor der Spinner verschwindet\n  await ensureMinResultLoading(loadingStart);\n\n  \/\/ 5. Loading-State entfernen und Ergebnis anzeigen\n  els.resultList.innerHTML = '';\n\n  if (!products.length) {\n    \/\/ Sicherheitshalber: falls aus irgendeinem Grund nichts geladen wurde -> Fallback\n    renderCustomRequest();\n    return;\n  }\n\n  for (const { id, productData } of products) {\n    renderProductCard(productData, id);\n  }\n}\n\n\n  async function fetchProductData(id) {\n    if (appState.productCache[id]) return appState.productCache[id];\n\n    \/\/ \u2500\u2500 No REST API. No WPML filter. Direct page fetch. \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    \/\/\n    \/\/ How this works:\n    \/\/  1. We build \/en\/?p={id}   \u2190 hardcoded \/en\/ because this IS the EN advisor\n    \/\/  2. Browser GETs that URL  \u2190 normal HTTP, not REST API\n    \/\/  3. WPML reads \/en\/ from the path and sets language = English\n    \/\/     *before* WordPress processes anything. This is WPML's URL routing layer,\n    \/\/     completely separate from (and more reliable than) the REST API filters.\n    \/\/  4. WordPress sees ?p={id} \u2192 canonical redirect \u2192 \/en\/product\/slug\/\n    \/\/  5. resp.url  = the final canonical English permalink after redirect\n    \/\/  6. We parse .product_title from the rendered HTML  \u2192 correct English name\n    \/\/\n    \/\/ Result: title, image and link are all 100 % correct English, with zero\n    \/\/ dependence on WPML REST API, wc\/store\/v1, wp\/v2, lang params or PHP snippets.\n\n    const directLink = `${window.location.origin}\/en\/?p=${id}`;\n\n    try {\n      const resp = await fetch(directLink, { redirect: 'follow' });\n\n      if (resp.ok) {\n        const html = await resp.text();\n        const doc  = new DOMParser().parseFromString(html, 'text\/html');\n\n        \/\/ WooCommerce standard: h1.product_title  (all major themes)\n        const titleEl = doc.querySelector(\n          '.product_title, h1.entry-title, .woocommerce div.product h1, h1'\n        );\n        const title = titleEl?.textContent?.trim() || `Product #${id}`;\n\n        \/\/ resp.url = canonical URL after all redirects, e.g.\n        \/\/ https:\/\/meineseite.tld\/en\/product\/cable-sock-35-50mm\/\n        const link = resp.url || directLink;\n\n        \/\/ Product image \u2014 WooCommerce gallery or featured image\n        const imgEl = doc.querySelector(\n          '.woocommerce-product-gallery__image img, ' +\n          '.woocommerce-product-gallery img, '        +\n          '.wp-post-image, '                          +\n          '.product-image img'\n        );\n        \/\/ Support both eager (src) and lazy-loaded (data-src) images\n        const image = imgEl?.dataset?.src || imgEl?.getAttribute('src') || null;\n\n        const p = { title, link, image };\n        appState.productCache[id] = p;\n        return p;\n      }\n    } catch (_) { \/* network error \u2014 fall through to fallback *\/ }\n\n    \/\/ Fallback: link is still the correct English product URL\n    const p = { title: `Product #${id}`, link: directLink, image: null };\n    appState.productCache[id] = p;\n    return p;\n  }\n\n\n  function renderProductCard(product, id) {\n    const card = document.createElement('div');\n    card.className = 'pb-product-card';\n    \n    let html = '';\n    \n    if (product.image) {\n       html += `<img decoding=\"async\" src=\"${product.image}\" alt=\"${product.title}\" class=\"pb-product-img\">`;\n    }\n    \n    html += `<span class=\"pb-product-title\">${product.title}<\/span>`;\n    \n    if (product.price && typeof product.price === 'string' && !product.price.includes('Object')) {\n       \/\/ Preisanzeige optional, falls API HTML liefert\n       \/\/ html += `<div style=\"margin-bottom:10px; font-weight:bold; color:#555;\">${product.price}<\/div>`;\n    }\n\n    html += `<a href=\"${product.link}\" class=\"pb-cta-btn\" target=\"_blank\">To the product<\/a>`;\n\n    card.innerHTML = html;\n    els.resultList.appendChild(card);\n  }\n\n  function renderCustomRequest() {\n    els.resultList.innerHTML = '';\n    const card = document.createElement('div');\n    card.className = 'pb-product-card';\n    card.style.borderColor = '#b8daff';\n    card.style.backgroundColor = '#f1f8ff';\n    \n    card.innerHTML = `\n      <span class=\"pb-product-title\" style=\"color:#004085;\">Individual request<\/span>\n      <p style=\"margin-bottom:15px; font-size:0.95em; color:#333;\">We would be happy to configure a custom solution for your specific requirements.<\/p>\n      <a href=\"https:\/\/kabelstruempfe.de\/en\/your-quote-request\/#tab-specialinquiryviaform\" class=\"pb-cta-btn\">Submit request now<\/a>\n    `;\n    els.resultList.appendChild(card);\n  }\n\n  \/\/ --- Start ---\n  els.btnBack.addEventListener('click', goBack);\n  els.btnReset.addEventListener('click', resetApp);\n\n  updateView();\n\n})();\n<\/script>\n<\/div><\/div>\n\n<\/div><\/div>\n\n<style>.kb-row-layout-id572_173101-23 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id572_173101-23 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id572_173101-23 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id572_173101-23 > .kt-row-layout-overlay{opacity:0.30;}@media all and (min-width: 1025px){.kb-row-layout-id572_173101-23{display:none !important;}}@media all and (max-width: 1024px){.kb-row-layout-id572_173101-23 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (min-width: 768px) and (max-width: 1024px){.kb-row-layout-id572_173101-23{display:none !important;}}@media all and (max-width: 767px){.kb-row-layout-id572_173101-23 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id572_173101-23{display:none !important;}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id572_173101-23 alignnone kb-v-lg-hidden kb-v-md-hidden kb-v-sm-hidden wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column572_923035-e2 > .kt-inside-inner-col,.kadence-column572_923035-e2 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column572_923035-e2 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column572_923035-e2 > .kt-inside-inner-col{flex-direction:column;}.kadence-column572_923035-e2 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column572_923035-e2 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column572_923035-e2{position:relative;}@media all and (max-width: 1024px){.kadence-column572_923035-e2 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column572_923035-e2 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column572_923035-e2\"><div class=\"kt-inside-inner-col\">\n<style>\n  \/* --- CSS Styling (Optimiert) --- *\/\n  #produktberater-wrapper {\n    font-family: inherit;\n    \/* max-width: 800px; *\/\n    margin: 0 auto;\n    background: #fff;\n    border: 1px solid #e5e5e5;\n    border-radius: 8px;\n    padding: 20px;\n    box-shadow: 0 4px 6px rgba(0,0,0,0.05);\n    color: #333;\n    min-height: 300px; \/* Verhindert Springen *\/\n    display: flex;\n    flex-direction: column;\n  }\n\n  .pb-header {\n    margin-bottom: 20px;\n    border-bottom: 1px solid #eee;\n    padding-bottom: 10px;\n  }\n\n  .pb-progress-container {\n    height: 8px;\n    background-color: #f0f0f0;\n    border-radius: 4px;\n    margin-bottom: 10px;\n    overflow: hidden;\n  }\n\n  .pb-progress-bar {\n    height: 100%;\n    background-color: var(--wp--preset--color--primary, #0073aa);\n    width: 0%;\n    transition: width 0.3s ease;\n  }\n\n   \/* Breadcrumbs: mobile-first *\/\n\n  .pb-breadcrumbs {\n    display: flex;\n    flex-wrap: wrap;          \/* darf umbrechen, wenn es eng wird *\/\n    gap: 4px;\n    font-size: 0.78em;        \/* etwas kleiner, spart H\u00f6he *\/\n    line-height: 1.3;\n    color: #888;\n  }\n\n  .pb-crumb,\n  .pb-crumb-separator {\n    white-space: nowrap;\n  }\n\n  .pb-crumb {\n    cursor: pointer;\n    border-bottom: 1px dotted #ccc;\n    transition: color 0.2s;\n  }\n\n  .pb-crumb:hover {\n    color: var(--wp--preset--color--primary, #0073aa);\n    border-bottom-style: solid;\n  }\n\n  .pb-crumb:last-child {\n    font-weight: 600;\n    cursor: default;\n    border: none;\n    color: #333;\n  }\n\n  .pb-crumb-separator {\n    color: #ccc;\n  }\n\n  @media (min-width: 901px) {\n    .pb-breadcrumbs {\n      font-size: 0.8em;\n      line-height: 1.4;\n      gap: 6px;\n    }\n    .pb-breadcrumbs.pb-breadcrumbs--stacked {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      align-items: flex-start;\n      gap: 2px;\n    }\n    .pb-breadcrumbs.pb-breadcrumbs--stacked .pb-crumb-separator {\n      display: none;\n    }\n    .pb-breadcrumbs.pb-breadcrumbs--stacked .pb-crumb {\n      display: block;\n    }\n    .pb-breadcrumbs.pb-breadcrumbs--stacked .pb-crumb:not(:first-of-type)::before {\n      content: '\u203a ';\n      opacity: 0.6;\n    }\n  }\n\n  #pb-content {\n    flex-grow: 1; \n  }\n\n  .pb-question-container {\n    animation: fadeIn 0.4s ease-in-out;\n  }\n\n  .pb-question-text {\n    font-size: 1.3em;\n    font-weight: 600;\n    margin-bottom: 25px;\n    line-height: 1.4;\n    color: #2c3e50;\n  }\n\n  .pb-options-grid {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 12px;\n  }\n  \n  @media (min-width: 600px) {\n    .pb-options-grid {\n      grid-template-columns: 1fr 1fr;\n    }\n  }\n\n  \/* --- BUTTON STYLING ANPASSUNG --- *\/\n  .pb-option-btn {\n    background: #DDDDDD; \/* Standard Hintergrund Grau *\/\n    border: 1px solid #ccc; \/* Etwas dunklerer Rahmen f\u00fcr Kontrast *\/\n    padding: 16px;\n    text-align: left;\n    cursor: pointer;\n    border-radius: 6px;\n    transition: all 0.2s;\n    font-size: 1em;\n    color: #333333 !important; \/* Erzwingt Dunkelgrau, \u00fcberschreibt Theme *\/\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    line-height: 1.3;\n  }\n\n  .pb-option-btn:hover, .pb-option-btn:focus {\n    background: #DDDDDD; \/* Bleibt Grau beim Hover *\/\n    color: #333333 !important; \/* Bleibt Dunkelgrau (kein Wei\u00df!) *\/\n    border-color: var(--wp--preset--color--primary, #0073aa);\n    box-shadow: 0 4px 12px rgba(0,0,0,0.15); \/* Schatten bleibt f\u00fcr 3D Effekt *\/\n    transform: translateY(-2px); \/* Push-up Effekt bleibt *\/\n    outline: none;\n  }\n\n  .pb-option-btn:after {\n    content: '\u2192';\n    opacity: 0.4;\n    margin-left: 10px;\n    font-weight: bold;\n    color: #333333; \/* Pfeil auch dunkel erzwingen *\/\n  }\n\n  .pb-result-container {\n    text-align: center;\n    padding: 30px 20px;\n    background: #f8fbff;\n    border-radius: 8px;\n    border: 1px solid #e1f0fa;\n    animation: fadeIn 0.5s ease;\n  }\n\n  .pb-result-header {\n    font-size: 1.4em;\n    margin-bottom: 20px;\n    font-weight: bold;\n    color: #2c3e50;\n  }\n  \n  #pb-result-list {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 20px;\n    padding: 10px 0;\n  }\n\n  @media (min-width: 600px) {\n    #pb-result-list {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media (min-width: 900px) {\n    #pb-result-list {\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n    }\n  }\n\n  .pb-product-card {\n    background: #fff;\n    border: 1px solid #eee;\n    padding: 20px;\n    margin: 0;\n    border-radius: 8px;\n    box-shadow: 0 4px 6px rgba(0,0,0,0.04);\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    max-width: 400px;\n    transition: transform 0.2s;\n    flex: 1 1 100%;\n  }\n\n  @media (min-width: 600px) {\n    .pb-product-card {\n      flex: 1 1 calc(50% - 20px);\n      max-width: 360px;\n    }\n  }\n\n  @media (min-width: 900px) {\n    .pb-product-card {\n      flex: 1 1 calc(33.333% - 20px);\n      max-width: 360px;\n    }\n  }\n  \n  .pb-product-card:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 6px 12px rgba(0,0,0,0.08);\n  }\n\n  .pb-product-title {\n    font-weight: bold;\n    font-size: 1.1em;\n    margin-bottom: 15px;\n    display: block;\n    color: #333;\n  }\n\n  \/* --- BILDGR\u00d6SSE ANPASSUNG --- *\/\n  .pb-product-img {\n    max-width: 100px; \/* Standard (Mobil): Kompakt bleiben *\/\n    height: auto;\n    margin-bottom: 15px;\n    border-radius: 4px;\n    transition: max-width 0.3s ease;\n  }\n\n  \/* Desktop\/Tablet Anpassung f\u00fcr Bilder *\/\n  @media (min-width: 768px) {\n    .pb-product-img {\n      \/* --- HIER ANPASSEN: Bildgr\u00f6\u00dfe Desktop (Original war 100px) --- *\/\n      max-width: 180px; \n    }\n  }\n\n  \/* --- CTA BUTTON (ZUM PRODUKT) ANPASSUNG --- *\/\n  .pb-cta-btn {\n    display: inline-block;\n    \/* Mobil: Kleiner und dezenter *\/\n    padding: 8px 16px; \n    font-size: 0.9em;\n    \n    background-color: var(--wp--preset--color--primary, #0073aa);\n    color: #fff !important;\n    text-decoration: none;\n    border-radius: 4px;\n    font-weight: bold;\n    transition: background 0.2s, transform 0.1s;\n  }\n  \n  \/* Desktop: Wieder volle Gr\u00f6\u00dfe *\/\n  @media (min-width: 768px) {\n    .pb-cta-btn {\n      padding: 12px 25px;\n      font-size: 1em;\n    }\n  }\n  \n  .pb-cta-btn:hover {\n    background-color: #005177;\n    text-decoration: none;\n  }\n  \n  .pb-cta-secondary {\n    background-color: #6c757d;\n    font-size: 0.9em;\n    margin-top: 10px;\n  }\n\n  .pb-controls {\n    margin-top: 30px;\n    display: flex;\n    justify-content: space-between;\n    border-top: 1px solid #eee;\n    padding-top: 20px;\n  }\n\n  .pb-control-btn {\n    background: transparent;\n    border: none;\n    color: #666;\n    cursor: pointer;\n    font-size: 0.95em;\n    display: inline-flex;\n    align-items: center;\n    padding: 5px 10px;\n    border-radius: 4px;\n  }\n  .pb-control-btn:hover {\n    background-color: #f5f5f5;\n    color: #333;\n  }\n  \n  .pb-loading-copy {\n    margin-top: 10px;\n    color: #666;\n    font-size: 0.95em;\n  }\n\n  .hidden { display: none !important; }\n  \n  .pb-spinner {\n    display: inline-block;\n    width: 24px;\n    height: 24px;\n    border: 3px solid rgba(0,0,0,0.1);\n    border-radius: 50%;\n    border-top-color: var(--wp--preset--color--primary, #0073aa);\n    animation: spin 1s ease-in-out infinite;\n    margin-bottom: 15px;\n  }\n  \n  #pb-debug-info {\n    font-family: monospace;\n    font-size: 10px;\n    color: #aaa;\n    margin-top: 20px;\n    text-align: right;\n    display: none; \n  }\n\n  @keyframes spin { to { transform: rotate(360deg); } }\n  @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\n<\/style>\n\n<div id=\"produktberater-wrapper\">\n  \n  <div class=\"pb-header\">\n    <div class=\"pb-progress-container\">\n      <div id=\"pb-progress\" class=\"pb-progress-bar\"><\/div>\n    <\/div>\n    <div id=\"pb-breadcrumbs\" class=\"pb-breadcrumbs\">\n      <\/div>\n  <\/div>\n\n  <div id=\"pb-content\">\n    \n    <div id=\"pb-loading\" style=\"text-align:center; padding: 40px;\">\n      <div class=\"pb-spinner\"><\/div>\n      <div>Loading product advisor&#8230;<\/div>\n    <\/div>\n\n    <div id=\"pb-question-view\" class=\"hidden pb-question-container\">\n      <div id=\"pb-question-text\" class=\"pb-question-text\">Question?<\/div>\n      <div id=\"pb-options\" class=\"pb-options-grid\">\n        <\/div>\n    <\/div>\n\n    <div id=\"pb-result-view\" class=\"hidden pb-result-container\">\n      <div class=\"pb-result-header\">Intelligent product recommendation(s)<\/div>\n      <div id=\"pb-result-list\"><\/div>\n    <\/div>\n    \n    <div id=\"pb-error-view\" class=\"hidden pb-result-container\">\n      <div class=\"pb-result-header\">Individual consultation required<\/div>\n      <p>We do not have a standard solution directly available for this specific combination.<\/p>\n      <a href=\"https:\/\/kabelstruempfe.de\/produktanfrage\/\" class=\"pb-cta-btn\">Submit request<\/a>\n    <\/div>\n\n  <\/div>\n\n  <div class=\"pb-controls\">\n    <button id=\"pb-btn-back\" class=\"pb-control-btn hidden\">\u2190 Step back<\/button>\n    <button id=\"pb-btn-reset\" class=\"pb-control-btn\">\u27f2 Restart<\/button>\n  <\/div>\n  \n  <div id=\"pb-debug-info\"><\/div>\n\n<\/div>\n\n<script>\n(function() {\n  \/**\n   * 1. DATENBASIS\n   * Vollst\u00e4ndiger Dump der Textdatei.\n   *\/\n  const RAW_DATA = `\n1 What type of product do you need?\n1a Cable grips\t\n1a1 What do you want to use the cable grips for?\n1a1a For pulling cables (no domestic installation)\n1a1a1 How many cables should be pulled at the same time?\n1a1a1a One\n1a1a1a1 What material should the cable grip be made of?\n1a1a1a1a Galvanised steel (standard)\n1a1a1a1a1 Is your cable already assembled? (Is it already connected or fitted with a plug?)\n1a1a1a1a1a Yes\n1a1a1a1a1a1 What is the diameter [mm] of the cable?\n1a1a1a1a1a1a 0 - 5\npid produktanfrage\n1a1a1a1a1a1b 6 - 10\npid 2053\n1a1a1a1a1a1c 11 - 15\npid 2054\n1a1a1a1a1a1d 16 - 20\npid 2055\n1a1a1a1a1a1e 21 - 25\npid 2056\n1a1a1a1a1a1f 26 - 30\npid 2057\n1a1a1a1a1a1g 31 - 40\npid 2058\n1a1a1a1a1a1h 41 - 50\npid 2059\n1a1a1a1a1a1i 51 - 60\npid 2060\n1a1a1a1a1a1j 61 - 70\npid 2061\n1a1a1a1a1a1k 71 - 90\npid 2062\n1a1a1a1a1a1l 91 - 110\npid 2063\n1a1a1a1a1a1m 111 - 130\npid 2064\n1a1a1a1a1a1n 131 - 160\npid 2065\n1a1a1a1a1a1o 162 - 200\npid 2066\n1a1a1a1a1b No\n1a1a1a1a1b1 What is the diameter [mm] of the cable?\n1a1a1a1a1b1a 0 - 5\npid produktanfrage\n1a1a1a1a1b1b 6 - 10\npid 1999,2039\n1a1a1a1a1b1c 11 - 15\npid 2000,2040\n1a1a1a1a1b1d 16 - 20\npid 2001,2041\n1a1a1a1a1b1e 21 - 25\npid 2002,2042\n1a1a1a1a1b1f 26 - 30\npid 2003,2043\n1a1a1a1a1b1g 31 - 40\npid 2004,2044\n1a1a1a1a1b1h 41 - 50\npid 2005,2045\n1a1a1a1a1b1i 51 - 60\npid 2006,2046\n1a1a1a1a1b1j 61 - 70\npid 2007,2047\n1a1a1a1a1b1k 71 - 90\npid 2008,2048\n1a1a1a1a1b1l 91 - 110\npid 2009,2049\n1a1a1a1a1b1m 111 - 130\npid 2010,2050\n1a1a1a1a1b1n 131 - 160\npid 2011,2051\n1a1a1a1a1b1o 162 - 200\npid 2012,2052\n1a1a1a1b Stainless steel\n1a1a1a1b1 Is your cable already assembled? (Is it already connected or fitted with a plug?)\n1a1a1a1b1a Yes\n1a1a1a1b1a1 What is the diameter [mm] of the cable?\n1a1a1a1b1a1a 0 - 5\npid produktanfrage\n1a1a1a1b1a1b 6 - 10\npid produktanfrage\n1a1a1a1b1a1c 11 - 15\npid produktanfrage\n1a1a1a1b1a1d 16 - 20\npid produktanfrage\n1a1a1a1b1a1e 21 - 25\npid produktanfrage\n1a1a1a1b1a1f 26 - 30\npid produktanfrage\n1a1a1a1b1a1g 31 - 40\npid produktanfrage\n1a1a1a1b1a1h 41 - 50\npid produktanfrage\n1a1a1a1b1a1i 51 - 60\npid produktanfrage\n1a1a1a1b1a1j 61 - 70\npid produktanfrage\n1a1a1a1b1a1k 71 - 90\npid produktanfrage\n1a1a1a1b1a1l 91 - 110\npid produktanfrage\n1a1a1a1b1a1m 111 - 130\npid produktanfrage\n1a1a1a1b1a1n 131 - 160\npid produktanfrage\n1a1a1a1b1a1o 162 - 200\npid produktanfrage\n1a1a1a1b1b No\n1a1a1a1b1b1 What is the diameter [mm] of the cable?\n1a1a1a1b1b1a 0 - 5\npid produktanfrage\n1a1a1a1b1b1b 6 - 10\npid produktanfrage\n1a1a1a1b1b1c 11 - 15\npid produktanfrage\n1a1a1a1b1b1d 16 - 20\npid produktanfrage\n1a1a1a1b1b1e 21 - 25\npid produktanfrage\n1a1a1a1b1b1f 26 - 30\npid produktanfrage\n1a1a1a1b1b1g 31 - 40\npid produktanfrage\n1a1a1a1b1b1h 41 - 50\npid produktanfrage\n1a1a1a1b1b1i 51 - 60\npid produktanfrage\n1a1a1a1b1b1j 61 - 70\npid produktanfrage\n1a1a1a1b1b1k 71 - 90\npid produktanfrage\n1a1a1a1b1b1l 91 - 110\npid produktanfrage\n1a1a1a1b1b1m 111 - 130\npid produktanfrage\n1a1a1a1b1b1n 131 - 160\npid produktanfrage\n1a1a1a1a1b1o 162 - 200\npid produktanfrage\n1a1a1b Three\n1a1a1b1 Is your cable already assembled? (Is it already connected or fitted with a plug?)\n1a1a1b1a Yes\npid produktanfrage\n1a1a1b1b No\n1a1a1b1b1 What is the diameter [mm] of the cable?\n1a1a1b1b1a 0 - 15\npid produktanfrage\n1a1a1b1b1b 16 - 20\npid 2033\n1a1a1b1b1c 21 - 25\npid 2034\n1a1a1b1b1d 26 - 30\npid 2035\n1a1a1b1b1e 31 - 40\npid 2036\n1a1a1b1b1f 41 - 50\npid 2037\n1a1a1b1b1g 51 - 60\npid 2038\n1a1a1b1b1h Larger diameter\npid produktanfrage\n1a1b For strain relief\n1a1b1 What material should the cable grip be made of?\n1a1b1a Galvanised steel (standard)\n1a1b1a1 Is your cable already assembled? Is it already connected or fitted with a plug?\n1a1b1a1a Yes\n1a1b1a1a1 What is the diameter [mm] of the cable?\n1a1b1a1a1a 0 - 3\npid produktanfrage\n1a1b1a1a1b 4 - 5\npid 2100\n1a1b1a1a1c 6\n1a1b1a1a1c1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1c1a up to 0.6\npid 2100\n1a1b1a1a1c1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1c1c No information available\npid produktanfrage\n1a1b1a1a1d 7 - 9\n1a1b1a1a1d1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1d1a up to 1.1\npid 2101\n1a1b1a1a1d1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1d1c No information available\npid produktanfrage\n1a1b1a1a1e 10\n1a1b1a1a1e1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1e1a up to 1.3\npid 2102\n1a1b1a1a1e1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1e1c No information available\npid produktanfrage\n1a1b1a1a1f 11 - 12\n1a1b1a1a1f1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1f1a up to 1.3\npid 2102\n1a1b1a1a1f1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1f1c No information available\npid produktanfrage\n1a1b1a1a1g 13 - 15\n1a1b1a1a1g1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1g1a up to 2.1\npid 2103\n1a1b1a1a1g1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1g1c No information available\npid produktanfrage\n1a1b1a1a1h 16 - 19\n1a1b1a1a1h1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1h1a up to 2.6\npid 2104\n1a1b1a1a1h1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1h1c No information available\npid produktanfrage\n1a1b1a1a1i 20\n1a1b1a1a1i1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1i1a up to 2.6\npid 2105\n1a1b1a1a1i1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1i1c No information available\npid produktanfrage\n1a1b1a1a1j 21 - 25\n1a1b1a1a1j1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1j1a up to 2.6\npid 2105\n1a1b1a1a1j1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1j1c No information available\npid produktanfrage\n1a1b1a1a1k 26 - 30\n1a1b1a1a1k1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1k1a up to 4.0\npid 2106\n1a1b1a1a1k1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1k1c No information available\npid produktanfrage\n1a1b1a1a1l 31 - 40\n1a1b1a1a1l1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1l1a up to 5.8\npid 2107\n1a1b1a1a1l1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1l1c No information available\npid produktanfrage\n1a1b1a1a1m 41 - 50\n1a1b1a1a1m1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1m1a up to 8.0\npid 2108\n1a1b1a1a1m1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1m1c No information available\npid produktanfrage\n1a1b1a1a1n 51 - 60\n1a1b1a1a1n1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1n1a up to 8.0\npid 2109\n1a1b1a1a1n1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1n1c No information available\npid produktanfrage\n1a1b1a1a1o 61 - 70\n1a1b1a1a1o1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1o1a up to 10.6\npid 2110\n1a1b1a1a1o1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1o1c No information available\npid produktanfrage\n1a1b1a1a1p 71 - 90\n1a1b1a1a1p1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1p1a up to 13.9\npid 2111\n1a1b1a1a1p1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1p1c No information available\npid produktanfrage\n1a1b1a1a1q 91 - 110\n1a1b1a1a1q1 What tensile forces [kN] must be absorbed?\n1a1b1a1a1q1a up to 17.4\npid 2112\n1a1b1a1a1q1b Higher tensile forces\npid produktanfrage\n1a1b1a1a1q1c No information available\npid produktanfrage\n1a1b1a1a1r Larger diameter\npid produktanfrage\n1a1b1a1b No\n1a1b1a1b1 What is the diameter [mm] of the cable?\n1a1b1a1b1a 0 - 3\npid produktanfrage\n1a1b1a1b1b 4 - 5\npid 2074,2087\n1a1b1a1b1c 6\n1a1b1a1b1c1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1c1a up to 0.6\npid 2087\n1a1b1a1b1c1b up to 2.2\npid produktanfrage\n1a1b1a1b1c1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1c1d No information available\npid 2087\n1a1b1a1b1d 7 - 9\n1a1b1a1b1d1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1d1a up to 1.1\npid 2088\n1a1b1a1b1d1b up to 2.2\npid produktanfrage\n1a1b1a1b1d1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1d1d No information available\npid 2088\n1a1b1a1b1e 10\n1a1b1a1b1e1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1e1a up to 1.3\npid 2089\n1a1b1a1b1e1b up to 2.2\npid produktanfrage\n1a1b1a1b1e1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1e1d No information available\npid 2089\n1a1b1a1b1f 11 - 12\n1a1b1a1b1f1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1f1a up to 1.3\npid 2089\n1a1b1a1b1f1b up to 3.4\npid produktanfrage\n1a1b1a1b1f1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1f1d No information available\npid 2089\n1a1b1a1b1g 13 - 15\n1a1b1a1b1g1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1g1a up to 1.3\npid 2090\n1a1b1a1b1g1b up to 3.4\npid produktanfrage\n1a1b1a1b1g1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1g1d No information available\npid 2090\n1a1b1a1b1h 16 - 19\n1a1b1a1b1h1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1h1a up to 2.6\npid 2091\n1a1b1a1b1h1b up to 6.8\npid produktanfrage\n1a1b1a1b1h1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1h1d No information available\npid 2091\n1a1b1a1b1i 20\n1a1b1a1b1i1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1i1a up to 2.6\npid 2092\n1a1b1a1b1i1b up to 6.8\npid produktanfrage\n1a1b1a1b1i1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1i1d No information available\npid 2092\n1a1b1a1b1j 21 - 25\n1a1b1a1b1j1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1j1a up to 2.6\npid 2092\n1a1b1a1b1j1b up to 6.8\npid produktanfrage\n1a1b1a1b1j1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1j1d No information available\npid 2092\n1a1b1a1b1k 26 - 30\n1a1b1a1b1k1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1k1a up to 4.0\npid 2093\n1a1b1a1b1k1b up to 8.1\npid produktanfrage\n1a1b1a1b1k1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1k1d No information available\npid 2093\n1a1b1a1b1l 31 - 40\n1a1b1a1b1l1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1l1a up to 5.8\npid 2094\n1a1b1a1b1l1b up to 11.7\npid produktanfrage\n1a1b1a1b1l1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1l1d No information available\npid 2094\n1a1b1a1b1m 41 - 50\n1a1b1a1b1m1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1m1a up to 8.0\npid 2095\n1a1b1a1b1m1b up to 16.0\npid produktanfrage\n1a1b1a1b1m1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1m1d No information available\npid 2095\n1a1b1a1b1n 51 - 60\n1a1b1a1b1n1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1n1a up to 8.0\npid 2096\n1a1b1a1b1n1b up to 16.0\npid produktanfrage\n1a1b1a1b1n1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1n1d No information available\npid 2096\n1a1b1a1b1o 61 - 70\n1a1b1a1b1o1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1o1a up to 10.6\npid 2097\n1a1b1a1b1o1b up to 21.3\npid 2134\n1a1b1a1b1o1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1o1d No information available\npid 2097\n1a1b1a1b1p 71 - 90\n1a1b1a1b1p1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1p1a up to 13.9\npid 2098\n1a1b1a1b1p1b up to 27.9\npid produktanfrage\n1a1b1a1b1p1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1p1d No information available\npid 2098\n1a1b1a1b1q 91 - 110\n1a1b1a1b1q1 What tensile forces [kN] must be absorbed?\n1a1b1a1b1q1a up to 17.4\npid 2099\n1a1b1a1b1q1b up to 34.9\npid produktanfrage\n1a1b1a1b1q1c Higher tensile forces\npid produktanfrage\n1a1b1a1b1q1d No information available\npid 2099\n1a1b1a1b1r Larger diameter\npid produktanfrage\n1a1b1b Stainless steel\n1a1b1b1 Is your cable already assembled? Is it already connected or fitted with a plug?\n1a1b1b1a Yes\npid produktanfrage\n1a1b1b1b No\n1a1b1b1b1 What is the diameter [mm] of the cable?\n1a1b1b1b1a 0 - 3\npid produktanfrage\n1a1b1b1b1b 4 - 5\npid produktanfrage\n1a1b1b1b1c 6\n1a1b1b1b1c1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1c1a up to 0.36\npid produktanfrage\n1a1b1b1b1c1b up to 1.32\npid 2126\n1a1b1b1b1c1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1c1d No information available.\npid 2126\n1a1b1b1b1d 7 - 9\n1a1b1b1b1d1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1d1a up to 0.66\npid produktanfrage\n1a1b1b1b1d1b up to 1.32\npid 2126\n1a1b1b1b1d1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1d1d No information available\npid 2126\n1a1b1b1b1e 10\n1a1b1b1b1e1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1e1a up to 0.78\npid produktanfrage\n1a1b1b1b1e1b up to 1.32\npid 2126\n1a1b1b1b1e1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1e1d No information available\npid 2126\n1a1b1b1b1f 11 - 12\n1a1b1b1b1f1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1f1a up to 0.78\npid produktanfrage\n1a1b1b1b1f1b up to 2.0\npid 2127\n1a1b1b1b1f1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1f1d No information available\npid 2127\n1a1b1b1b1g 13 - 15\n1a1b1b1b1g1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1g1a up to 1.26\npid produktanfrage\n1a1b1b1b1g1b up to 2.0\npid 2127\n1a1b1b1b1g1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1g1d No information available\npid 2127\n1a1b1b1b1h 16 - 19\n1a1b1b1b1h1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1h1a up to 1.56\npid produktanfrage\n1a1b1b1b1h1b up to 4.08\npid 2128\n1a1b1b1b1h1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1h1d No information available\npid 2128\n1a1b1b1b1i 20\n1a1b1b1b1i1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1i1a up to 1.56\npid produktanfrage\n1a1b1b1b1i1b up to 4.08\npid 2128\n1a1b1b1b1i1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1i1d No information available\npid 2128\n1a1b1b1b1j 21 - 25\n1a1b1b1b1j1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1j1a up to 1.56\npid produktanfrage\n1a1b1b1b1j1b up to 4.08\npid 2129\n1a1b1b1b1j1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1j1d No information available\npid 2129\n1a1b1b1b1k 26 - 30\n1a1b1b1b1k1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1k1a up to 2.4\npid produktanfrage\n1a1b1b1b1k1b up to 4.86\npid 2130\n1a1b1b1b1k1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1k1d No information available\npid 2130\n1a1b1b1b1l 31 - 40\n1a1b1b1b1l1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1l1a up to 3.48\npid produktanfrage\n1a1b1b1b1l1b up to 7.02\npid 2131\n1a1b1b1b1l1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1l1d No information available\npid 2131\n1a1b1b1b1m 41 - 50\n1a1b1b1b1m1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1m1a up to 4.8\npid produktanfrage\n1a1b1b1b1m1b up to 9.6\npid 2132\n1a1b1b1b1m1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1m1d No information available\npid 2132\n1a1b1b1b1n 51 - 60\n1a1b1b1b1n1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1n1a up to 4.8\npid produktanfrage\n1a1b1b1b1n1b up to 9.6\npid 2133\n1a1b1b1b1n1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1n1d No information available\npid 2133\n1a1b1b1b1o 61 - 70\n1a1b1b1b1o1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1o1a up to 6.36\npid produktanfrage\n1a1b1b1b1o1b up to 12.78\npid 2134\n1a1b1b1b1o1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1o1d No information available\npid 2134\n1a1b1b1b1p 71 - 90\n1a1b1b1b1p1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1p1a up to 8.34\npid produktanfrage\n1a1b1b1b1p1b up to 16.74\npid 2135\n1a1b1b1b1p1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1p1d No information available\npid 2135\n1a1b1b1b1q 91 - 110\n1a1b1b1b1q1 What tensile forces [kN] must be absorbed?\n1a1b1b1b1q1a up to 10.44\npid produktanfrage\n1a1b1b1b1q1b up to 20.94\npid 2136\n1a1b1b1b1q1c Higher tensile forces\npid produktanfrage\n1a1b1b1b1q1d No information available\npid 2136\n1a1b1b1b1r Larger diameter\npid produktanfrage\n1a1c For connecting cables\n1a1c1 What material should the cable grip be made of?\n1a1c1a Galvanised steel (standard)\n1a1c1a1 What is the diameter [mm] of the cable?\n1a1c1a1a 0 - 5\npid produktanfrage\n1a1c1a1b 6 - 10\npid 2331\n1a1c1a1c 11 - 15\npid 2332\n1a1c1a1d 16 - 20\npid 2333\n1a1c1a1e 21 - 25\npid 2334\n1a1c1a1f 26 - 30\npid 2335\n1a1c1a1g 31 - 40\npid 2336\n1a1c1a1h 41 - 50\npid 2337\n1a1c1a1i 51 - 60\npid 2338\n1a1c1a1j 61 - 70\npid 2339\n1a1c1a1k 71 - 90\npid 2340\n1a1c1a1l 91 - 110\npid 2341\n1a1c1a1m Larger diameter\npid produktanfrage\n1a1c1b Stainless steel\npid produktanfrage\n1a1d For connecting crane ropes\n1a1d1 What material should the cable grip be made of?\n1a1d1a Galvanised steel (standard)\n1a1d1a1 What is the diameter [mm] of the cable?\n1a1d1a1a 0 - 5\npid produktanfrage\n1a1d1a1b 6 - 10\npid 2331\n1a1d1a1c 11 - 15\npid 2332\n1a1d1a1d 16 - 20\npid 2333\n1a1d1a1e 21 - 25\npid 2334\n1a1d1a1f 26 - 30\npid 2335\n1a1d1a1g 31 - 40\npid 2336\n1a1d1a1h 41 - 50\npid 2337\n1a1d1a1i 51 - 60\npid 2338\n1a1d1a1j 61 - 70\npid 2339\n1a1d1a1k 71 - 90\npid 2340\n1a1d1a1l 91 - 110\npid 2341\n1a1d1a1m Larger diameter\npid produktanfrage\n1a1d1b Stainless steel\npid produktanfrage\n1a1e For pulling overhead line ropes\n1a1e1 Should the overhead line grip be pulled around traction sheaves, capstan heads or figure-eight brakes whose diameter is less than 1,000 mm?\n1a1e1a Yes\n1a1e1a1 What is the diameter [mm] of the overhead line rope?\n1a1e1a1a 0 - 5\npid produktanfrage\n1a1e1a1b 6 - 10.9\npid 2169\n1a1e1a1c 11 - 15.9\npid 2170\n1a1e1a1d 16 - 20.9\npid 2171\n1a1e1a1e 21 - 26.9\npid 2172\n1a1e1a1f 27 - 37.9\npid 2173\n1a1e1a1g 38 - 44.9\npid 2174\n1a1e1a1h 45 - 64\npid 2175\n1a1e1b No\n1a1e1b1a 0 - 5\npid produktanfrage\n1a1e1b1b 6 - 10.9\npid 2176\n1a1e1b1c 11 - 15.9\npid 2177\n1a1e1b1d 16 - 20.9\npid 2178\n1a1e1b1e 21 - 26.9\npid 2179\n1a1e1b1f 27 - 37.9\npid 2180\n1a1e1b1g 38 - 44.9\npid 2181\n1a1e1b1h 45 - 64\npid 2182\n1a1e For pulling in cables in domestic installations\n1a1e1 Should the cable grip have a threaded sleeve (M5) or an eyelet?\n1a1e1a Threaded sleeve (M5)\n1a1e1a1 What is the diameter [mm] of the cable?\n1a1e1a1a 0 - 3\npid produktanfrage\n1a1e1a1b 4 - 6\npid 2020\n1a1e1a1c 7 - 9\npid 2021\n1a1e1a1d 10 - 12\npid 2022\n1a1e1a1e 13 - 15\npid 2023\n1a1e1a1f 16 - 19\npid 2024\n1a1e1a1g 20 - 25\npid 2025\n1a1e1a1h 26 - 31\npid 2026\n1a1e1a1i Larger diameter\npid produktanfrage\n1a1e1b Eyelet\n1a1e1b1 What is the diameter [mm] of the cable?\n1a1e1b1a 0 - 3\npid produktanfrage\n1a1e1b1b 4 - 6\npid 2013\n1a1e1b1c 7 - 9\npid 2014\n1a1e1b1d 10 - 12\npid 2015\n1a1e1b1e 13 - 15\npid 2016\n1a1e1b1f 16 - 19\npid 2017\n1a1e1b1g 20 - 25\npid 2018\n1a1e1b1h 26 - 31\npid 2019\n1a1e1b1i Larger diameter\npid produktanfrage\n1a1f For pulling in fiber optic cables\n1a1f1 What is the diameter [mm] of the cable?\n1a1f1a 0 - 5\npid produktanfrage\n1a1f1b 6 - 9\npid 2027\n1a1f1c 10 - 12\npid 2028\n1a1f1d 13 - 15\npid 2029\n1a1f1e 16 - 19\npid 2030\n1a1f1f 20 - 25\npid 2031\n1a1f1g 26 - 31\npid 2032\n1a1f1h Larger diameter\npid produktanfrage\n1a1g For securing hoses\n1a1g1 Should the cable grip have one or two attachment points?\n1a1g1a One attachment point\n1a1g1a1 What material should the cable grip be made of?\n1a1g1a1a Galvanised steel (standard)\n1a1g1a1a1 Is your hose already assembled? Is it already connected or fitted with a screw connection?\n1a1g1a1a1a Yes\n1a1g1a1a1a1 What is the diameter of the hose?\n1a1g1a1a1a1a 0 - 5\npid produktanfrage\n1a1g1a1a1a1b 6 - 10\npid produktanfrage\n1a1g1a1a1a1c 11 - 15\npid produktanfrage\n1a1g1a1a1a1d 16 - 20\npid produktanfrage\n1a1g1a1a1a1e 21 - 25\npid produktanfrage\n1a1g1a1a1a1f 26 - 30\npid produktanfrage\n1a1g1a1a1a1g 31 - 40\npid produktanfrage\n1a1g1a1a1a1h 41 - 50\npid produktanfrage\n1a1g1a1a1a1i 51 - 60\npid produktanfrage\n1a1g1a1a1a1j 61 - 70\npid produktanfrage\n1a1g1a1a1a1k 71 - 90\npid produktanfrage\n1a1g1a1a1a1l 91 - 110\npid produktanfrage\n1a1g1a1a1a1m Larger diameter\npid produktanfrage\n1a1g1a1a1b No\n1a1g1a1a1b1 What is the diameter of the hose?\n1a1g1a1a1b1a 0 - 5\npid produktanfrage\n1a1g1a1a1b1b 6 - 10\npid 2137\n1a1g1a1a1b1c 11 - 15\npid 2138\n1a1g1a1a1b1d 16 - 20\npid 2139\n1a1g1a1a1b1e 21 - 25\npid 2140\n1a1g1a1a1b1f 26 - 30\npid 2141\n1a1g1a1a1b1g 31 - 40\npid 2142\n1a1g1a1a1b1h 41 - 50\npid 2143\n1a1g1a1a1b1i 51 - 60\npid 2144\n1a1g1a1a1b1j 61 - 70\npid 2145\n1a1g1a1a1b1k 71 - 90\npid 2146\n1a1g1a1a1b1l 91 - 110\npid 2147\n1a1g1a1a1b1m Larger diameter\npid produktanfrage\n1a1g1a1b Stainless steel\n1a1g1a1b1 Is your hose already assembled? Is it already connected or fitted with a screw connection?\n1a1g1a1b1a Yes\n1a1g1a1b1a1 What is the diameter of the hose?\n1a1g1a1b1a1a 0 - 5\npid produktanfrage\n1a1g1a1b1a1b 6 - 10\npid produktanfrage\n1a1g1a1b1a1c 11 - 15\npid produktanfrage\n1a1g1a1b1a1d 16 - 20\npid produktanfrage\n1a1g1a1b1a1e 21 - 25\npid produktanfrage\n1a1g1a1b1a1f 26 - 30\npid produktanfrage\n1a1g1a1b1a1g 31 - 40\npid produktanfrage\n1a1g1a1b1a1h 41 - 50\npid produktanfrage\n1a1g1a1b1a1i 51 - 60\npid produktanfrage\n1a1g1a1b1a1j 61 - 70\npid produktanfrage\n1a1g1a1b1a1k 71 - 90\npid produktanfrage\n1a1g1a1b1a1l 91 - 110\npid produktanfrage\n1a1g1a1b1a1m Larger diameter\npid produktanfrage\n1a1g1a1b1b No\n1a1g1a1b1b1 What is the diameter of the hose?\n1a1g1a1b1b1a 0 - 5\npid produktanfrage\n1a1g1a1b1b1b 6 - 10\npid produktanfrage\n1a1g1a1b1b1c 11 - 15\npid produktanfrage\n1a1g1a1b1b1d 16 - 20\npid produktanfrage\n1a1g1a1b1b1e 21 - 25\npid produktanfrage\n1a1g1a1b1b1f 26 - 30\npid produktanfrage\n1a1g1a1b1b1g 31 - 40\npid produktanfrage\n1a1g1a1b1b1h 41 - 50\npid produktanfrage\n1a1g1a1b1b1i 51 - 60\npid produktanfrage\n1a1g1a1b1b1j 61 - 70\npid produktanfrage\n1a1g1a1b1b1k 71 - 90\npid produktanfrage\n1a1g1a1b1b1l 91 - 110\npid produktanfrage\n1a1g1a1b1b1m 111 - 130\npid produktanfrage\n1a1g1a1b1b1n 131 - 160\npid produktanfrage\n1a1g1a1b1b1o 162 - 200\npid produktanfrage\n1a1g1b Two attachment points\n1a1g1b1 What material should the cable grip be made of?\n1a1g1b1a Galvanised steel (standard)\n1a1g1b1a1 Is your hose already assembled? Is it already connected or fitted with a screw connection?\n1a1g1b1a1a Yes\n1a1g1b1a1a1 What is the diameter of the hose?\n1a1g1b1a1a1a 0 - 5\npid produktanfrage\n1a1g1b1a1a1b 6 - 10\npid produktanfrage\n1a1g1b1a1a1c 11 - 15\npid produktanfrage\n1a1g1b1a1a1d 16 - 20\npid produktanfrage\n1a1g1b1a1a1e 21 - 25\npid produktanfrage\n1a1g1b1a1a1f 26 - 30\npid produktanfrage\n1a1g1b1a1a1g 31 - 40\npid produktanfrage\n1a1g1b1a1a1h 41 - 50\npid produktanfrage\n1a1g1b1a1a1i 51 - 60\npid produktanfrage\n1a1g1b1a1a1j 61 - 70\npid produktanfrage\n1a1g1b1a1a1k 71 - 90\npid produktanfrage\n1a1g1b1a1a1l 91 - 110\npid produktanfrage\n1a1g1b1a1a1m Larger diameter\npid produktanfrage\n1a1g1b1a1b No\n1a1g1b1a1b1 What is the diameter of the hose?\n1a1g1b1a1b1a 0 - 5\npid produktanfrage\n1a1g1b1a1b1b 6 - 10\npid 2148\n1a1g1b1a1b1c 11 - 15\npid 2149\n1a1g1b1a1b1d 16 - 20\npid 2150\n1a1g1b1a1b1e 21 - 25\npid 2151\n1a1g1b1a1b1f 26 - 30\npid 2152\n1a1g1b1a1b1g 31 - 40\npid 2153\n1a1g1b1a1b1h 41 - 50\npid 2154\n1a1g1b1a1b1i 51 - 60\npid 2155\n1a1g1b1a1b1j 61 - 70\npid 2156\n1a1g1b1a1b1k 71 - 90\npid 2157\n1a1g1b1a1b1l 91 - 110\npid 2158\n1a1g1b1a1b1m Larger diameter\npid produktanfrage\n1a1g1b1b Stainless steel\n1a1g1b1b1 Is your hose already assembled? Is it already connected or fitted with a screw connection?\n1a1g1b1b1a Yes\n1a1g1b1b1a1 What is the diameter of the hose?\n1a1g1b1b1a1a 0 - 5\npid produktanfrage\n1a1g1b1b1a1b 6 - 10\npid produktanfrage\n1a1g1b1b1a1c 11 - 15\npid produktanfrage\n1a1g1b1b1a1d 16 - 20\npid produktanfrage\n1a1g1b1b1a1e 21 - 25\npid produktanfrage\n1a1g1b1b1a1f 26 - 30\npid produktanfrage\n1a1g1b1b1a1g 31 - 40\npid produktanfrage\n1a1g1b1b1a1h 41 - 50\npid produktanfrage\n1a1g1b1b1a1i 51 - 60\npid produktanfrage\n1a1g1b1b1a1j 61 - 70\npid produktanfrage\n1a1g1b1b1a1k 71 - 90\npid produktanfrage\n1a1g1b1b1a1l 91 - 110\npid produktanfrage\n1a1g1b1b1a1m Larger diameter\npid produktanfrage\n1a1g1b1b1b No\n1a1g1b1b1b1 What is the diameter of the hose?\n1a1g1b1b1b1a 0 - 5\npid produktanfrage\n1a1g1b1b1b1b 6 - 10\npid produktanfrage\n1a1g1b1b1b1c 11 - 15\npid produktanfrage\n1a1g1b1b1b1d 16 - 20\npid produktanfrage\n1a1g1b1b1b1e 21 - 25\npid produktanfrage\n1a1g1b1b1b1f 26 - 30\npid produktanfrage\n1a1g1b1b1b1g 31 - 40\npid produktanfrage\n1a1g1b1b1b1h 41 - 50\npid produktanfrage\n1a1g1b1b1b1i 51 - 60\npid produktanfrage\n1a1g1b1b1b1j 61 - 70\npid produktanfrage\n1a1g1b1b1b1k 71 - 90\npid produktanfrage\n1a1g1b1b1b1l 91 - 110\npid produktanfrage\n1a1g1b1b1b1m Larger diameter\npid produktanfrage\n1a1h No suitable application area included.\npid produktanfrage\n1b Accessories\n1b1 Which accessories do you need?\n1b1a Swivel\n1b1a1 What tensile forces [mm] should be absorbed?\n1b1a1a up to 7\npid 2067\n1b1a1b up to 10\npid 2068\n1b1a1c up to 15\npid 2069\n1b1a1d up to 50\npid 2070\n1b1a1e up to 75\npid 2071\n1b1a1f up to 100\npid 2072\n1b1a1g up to 170\npid 2073\n1b1a1h Larger diameter\npid produktanfrage\n1b1b Overhead line swivels\n1b1b1 What tensile forces [mm] should be absorbed?\n1b1b1a up to 7\npid 2324\n1b1b1b up to 15\npid 2325\n1b1b1c up to 20\npid 2326\n1b1b1d up to 30\npid 2327\n1b1b1e up to 50\npid 2328\n1b1b1f up to 60\npid 2329\n1b1b1g up to 75\npid 2330\n1b1b1h Higher tensile forces\npid produktanfrage\n1b1c Abrasion protection shells\n1b1c1 For which cable grip should the abrasion protection shells be used?\n1b1c1a K 20\/\u2026\npid 2386\n1b1c1b K 25\/\u2026\npid 2800\n1b1c1c K 30\/\u2026\npid 2802\n1b1c1d KV 20\npid 2386\n1b1c1e KV 25\npid 2800\n1b1c1f KV 30\npid 2802\n1b1c1g S 20\/\u2026\npid 2386\n1b1c1h S 25\/\u2026\npid 2800\n1b1c1i S 30\/\u2026\npid 2802\n1b1c1j Other size\npid produktanfrage\n1b1d Insertion band (Fieberflex)\npid 2342, 2343, 2344\n1c Spare parts\n1c1 Which spare part do you need?\n1c1a Binding wire\n1c1a1 What material is your cable grip made of?\n1c1a1a Galvanised steel (standard)\n1c1a1a1 For which type of cable grip do you need the binding wire?\n1c1a1a1a Split cable pulling grips (K \u2026\/2\/G)\n1c1a1a1a1 For which cable grip do you need the binding wire?\n1c1a1a1a1a K 10\/2\/G\npid 2353\n1c1a1a1a1b K 15\/2\/G\npid 2354\n1c1a1a1a1c K 20\/2\/G\npid 2355\n1c1a1a1a1d K 25\/2\/G\npid 2356\n1c1a1a1a1e K 30\/2\/G\npid 2357\n1c1a1a1a1f K 40\/2\/G\npid 2358\n1c1a1a1a1g K 50\/2\/G\npid 2359\n1c1a1a1a1h K 60\/2\/G\npid 2360\n1c1a1a1a1i K 70\/2\/G\npid 2361\n1c1a1a1a1j K 90\/2\/G\npid 2362\n1c1a1a1a1k K 110\/2\/G\npid 2363\n1c1a1a1a1l K 130\/2\/G\npid 2364\n1c1a1a1a1m K 160\/2\/G\npid 2365\n1c1a1a1a1n K 200\/2\/G\npid 2366\n1c1a1a1a1o No suitable option\npid produktanfrage\n1c1a1a1b Split cable mounting grips (M \u2026\/1\/G)\n1c1a1a1b1 For which cable grip do you need the binding wire?\n1c1a1a1b1a M 6\/1\/G\npid 2367\n1c1a1a1b1b M 9\/1\/G\npid 2368\n1c1a1a1b1c M 12\/1\/G\npid 2369\n1c1a1a1b1d M 15\/1\/G\npid 2370\n1c1a1a1b1e M 19\/1\/G\npid 2371\n1c1a1a1b1f M 25\/1\/G\npid 2372\n1c1a1a1b1g M 30\/1\/G\npid 2373\n1c1a1a1b1h M 40\/1\/G\npid 2374\n1c1a1a1b1i M 50\/1\/G\npid 2375\n1c1a1a1b1j M 60\/1\/G\npid 2376\n1c1a1a1b1k M 70\/1\/G\npid 2377\n1c1a1a1b1l M 90\/1\/G\npid 2378\n1c1a1a1b1m M 110\/1\/G\npid 2379\n1c1a1a1b1n No suitable option\npid produktanfrage\n1c1a1a1c No suitable option\npid produktanfrage\t\n1c1a1b Stainless steel\n1c1a1b1 For which cable grip do you need the binding wire?\n1c1a1b1a Split cable pulling grips (K \u2026\/2\/G\/E)\n1c1a1b1a1 For which cable grip do you need the binding wire?\n1c1a1b1a1a K 10\/2\/G\/E\npid produktanfrage\n1c1a1b1a1b K 15\/2\/G\/E\npid produktanfrage\n1c1a1b1a1c K 20\/2\/G\/E\npid produktanfrage\n1c1a1b1a1d K 25\/2\/G\/E\npid produktanfrage\n1c1a1b1a1e K 30\/2\/G\/E\npid produktanfrage\n1c1a1b1a1f K 40\/2\/G\/E\npid produktanfrage\n1c1a1b1a1g K 50\/2\/G\/E\npid produktanfrage\n1c1a1b1a1h K 60\/2\/G\/E\npid produktanfrage\n1c1a1b1a1i K 70\/2\/G\/E\npid produktanfrage\n1c1a1b1a1j K 90\/2\/G\/E\npid produktanfrage\n1c1a1b1a1k K 110\/2\/G\/E\npid produktanfrage\n1c1a1b1a1l K 130\/2\/G\/E\npid produktanfrage\n1c1a1b1a1m K 160\/2\/G\/E\npid produktanfrage\n1c1a1b1a1n K 200\/2\/G\/E\npid produktanfrage\n1c1a1b1a1o No suitable option\npid produktanfrage\n1c1a1b1b Split cable mounting grips (M \u2026\/1\/G\/E)\n1c1a1b1b1 For which cable grip do you need the binding wire?\n1c1a1b1b1a M 6\/1\/G\/E\npid produktanfrage\n1c1a1b1b1b M 9\/1\/G\/E\npid produktanfrage\n1c1a1b1b1c M 12\/1\/G\/E\npid produktanfrage\n1c1a1b1b1d M 15\/1\/G\/E\npid produktanfrage\n1c1a1b1b1e M 19\/1\/G\/E\npid produktanfrage\n1c1a1b1b1f M 25\/1\/G\/E\npid produktanfrage\n1c1a1b1b1g M 30\/1\/G\/E\npid produktanfrage\n1c1a1b1b1h M 40\/1\/G\/E\npid produktanfrage\n1c1a1b1b1i M 50\/1\/G\/E\npid produktanfrage\n1c1a1b1b1j M 60\/1\/G\/E\npid produktanfrage\n1c1a1b1b1k M 70\/1\/G\/E\npid produktanfrage\n1c1a1b1b1l M 90\/1\/G\/E\npid produktanfrage\n1c1a1b1b1m M 110\/1\/G\/E\npid produktanfrage\n1c1a1b1b1n No suitable option\npid produktanfrage\n1c1a1b1c No suitable option\npid produktanfrage\n1c1a1c No suitable option\npid produktanfrage\n1c1b Closure plate\n1c1b1 For which cable grip do you need the closure plate?\n1c1b1a M 6\/V\npid produktanfrage\n1c1b1b M 9\/V\npid produktanfrage\n1c1b1c M 12\/V\npid produktanfrage\n1c1b1d M 15\/V\npid produktanfrage\n1c1b1e M 19\/V\npid produktanfrage\n1c1b1f M 25\/V\npid produktanfrage\n1c1b1g M 30\/V\npid produktanfrage\n1c1b1h M 40\/V\npid produktanfrage\n1c1b1i M 50\/V\npid produktanfrage\n1c1b1j M 60\/V\npid produktanfrage\n1c1b1k M 70\/V\npid produktanfrage\n1c1b1l M 90\/V\npid produktanfrage\n1c1b1m M 110\/V\npid produktanfrage\n1c1b1n No suitable option\npid produktanfrage\n1c1c No suitable option\npid produktanfrage\n`;\n\n  \/**\n   * 2. LOGIK UND PARSER\n   *\/\n  const appState = {\n    data: {},\n    currentId: '1',\n    history: [], \/\/ Stack f\u00fcr Breadcrumbs\n    productCache: {} \n  };\n\n  function parseRawData(text) {\n    const lines = text.split(\/\\r?\\n\/).filter(line => line.trim() !== '');\n    const map = {};\n    let lastId = null;\n\n    lines.forEach(line => {\n      line = line.trim();\n      \n      \/\/ Check for Result (PID)\n      if (line.toLowerCase().startsWith('pid')) {\n        const resultVal = line.substring(3).trim();\n        if (lastId && map[lastId]) {\n          map[lastId].result = resultVal;\n        }\n        return;\n      }\n\n      \/\/ Regex: Startet mit Ziffern\/Buchstaben (case insensitive)\n      const match = line.match(\/^([0-9a-zA-Z]+)\\s+(.*)\/);\n      if (match) {\n        let id = match[1].toLowerCase(); \/\/ Normalize ID\n        let content = match[2];\n\n        \/\/ Entferne (Foto ...) f\u00fcr die Anzeige, aber halte es sauber\n        content = content.replace(\/\\(Foto.*?\\)\/gi, '').trim();\n\n        \/\/ ERWEITERTE FRAGE-ERKENNUNG:\n        \/\/ 1. Enth\u00e4lt '?' (egal wo, da manche User \"(Erkl\u00e4rung)\" danach schreiben)\n        \/\/ 2. ID endet auf eine Zahl (Schema: 1, 1a1, 1a1a1 sind Fragen)\n        \/\/ 3. ID endet auf Buchstaben (Schema: 1a, 1a1a sind Antworten)\n        \n        let isQuestion = content.includes('?');\n        \n        \/\/ Fallback aufs ID Schema falls '?' vergessen wurde\n        \/\/ Wenn ID auf Zahl endet, ist es eine Frage.\n        if (!isQuestion && \/[0-9]$\/.test(id)) {\n           isQuestion = true;\n        }\n\n        map[id] = {\n          id: id,\n          text: content,\n          type: isQuestion ? 'question' : 'answer',\n          children: []\n        };\n        lastId = id;\n      }\n    });\n\n    \/\/ Baumstruktur aufbauen\n    Object.keys(map).forEach(id => {\n      const node = map[id];\n      if (node.type === 'answer') {\n        const parentId = id.substring(0, id.length - 1);\n        if (map[parentId]) {\n          map[parentId].children.push(id);\n        }\n      }\n    });\n\n    return map;\n  }\n\n  appState.data = parseRawData(RAW_DATA);\n\n  \/**\n   * 3. UI RENDERING\n   *\/\n  const els = {\n    wrapper: document.getElementById('produktberater-wrapper'),\n    loading: document.getElementById('pb-loading'),\n    questionView: document.getElementById('pb-question-view'),\n    questionText: document.getElementById('pb-question-text'),\n    optionsGrid: document.getElementById('pb-options'),\n    resultView: document.getElementById('pb-result-view'),\n    resultList: document.getElementById('pb-result-list'),\n    errorView: document.getElementById('pb-error-view'),\n    breadcrumbs: document.getElementById('pb-breadcrumbs'),\n    progress: document.getElementById('pb-progress'),\n    btnBack: document.getElementById('pb-btn-back'),\n    btnReset: document.getElementById('pb-btn-reset'),\n    debugInfo: document.getElementById('pb-debug-info')\n  };\n\n  function updateView() {\n    els.loading.classList.add('hidden');\n    els.questionView.classList.add('hidden');\n    els.resultView.classList.add('hidden');\n    els.errorView.classList.add('hidden');\n    \n    \/\/ Debugging\n    els.debugInfo.innerText = `Current Node: ${appState.currentId}`;\n    \n    els.btnBack.classList.toggle('hidden', appState.history.length === 0);\n\n    const currentNode = appState.data[appState.currentId];\n\n    if (!currentNode) {\n      console.warn('Kritischer Fehler: Node nicht gefunden', appState.currentId);\n      \/\/ Wenn wir ganz am Anfang crashen:\n      if(appState.currentId === '1') {\n         els.questionText.innerText = \"Error: Start node '1' not found.\";\n         els.questionView.classList.remove('hidden');\n      } else {\n         showResult('produktanfrage');\n      }\n      return;\n    }\n\n    renderBreadcrumbs();\n    renderProgress();\n\n    \/\/ 1. Ist es eine Antwort mit direktem Resultat?\n    if (currentNode.type === 'answer' && currentNode.result) {\n      showResult(currentNode.result);\n      return;\n    }\n\n    \/\/ 2. Ist es eine Antwort, die zur n\u00e4chsten Frage f\u00fchren soll?\n    if (currentNode.type === 'answer' && !currentNode.result) {\n      \/\/ Schema: N\u00e4chste Frage = ID + '1'\n      const nextId = currentNode.id + '1';\n      \n      if (appState.data[nextId]) {\n        appState.currentId = nextId;\n        updateView(); \/\/ Rekursion zum n\u00e4chsten Schritt\n        return;\n      } else {\n        \/\/ Edge Case: Sackgasse im Baum\n        console.warn('Sackgasse erkannt bei', currentNode.id);\n        els.errorView.classList.remove('hidden');\n        return;\n      }\n    }\n\n    \/\/ 3. Es ist eine Frage -> Anzeigen\n    if (currentNode.type === 'question') {\n      renderQuestion(currentNode);\n    }\n  }\n\n  function renderQuestion(node) {\n    els.questionView.classList.remove('hidden');\n    els.questionText.innerText = node.text;\n    els.optionsGrid.innerHTML = '';\n\n    if (node.children.length === 0) {\n      \/\/ Sollte nicht passieren, aber falls eine Frage keine Antworten hat:\n       const msg = document.createElement('div');\n       msg.innerText = \"No options found.\";\n       els.optionsGrid.appendChild(msg);\n    }\n\n    node.children.forEach(childId => {\n      const childNode = appState.data[childId];\n      if (childNode) {\n        const btn = document.createElement('button');\n        btn.className = 'pb-option-btn';\n        btn.innerText = childNode.text;\n        btn.onclick = () => handleOptionClick(childId);\n        els.optionsGrid.appendChild(btn);\n      }\n    });\n  }\n\n  function handleOptionClick(id) {\n    appState.history.push(appState.currentId);\n    appState.currentId = id;\n    updateView();\n  }\n\n  function goBack() {\n    if (appState.history.length > 0) {\n      appState.currentId = appState.history.pop();\n      updateView();\n    }\n  }\n\n  function resetApp() {\n    appState.currentId = '1';\n    appState.history = [];\n    appState.productCache = {}; \/\/ Cache leeren f\u00fcr frische Daten\n    updateView();\n  }\n\n  \/\/ --- Breadcrumbs & Progress ---\n\n  \/\/ Breakpoint f\u00fcr Mobile\/Tablet vs. Desktop\n  const BREADCRUMB_MOBILE_QUERY = '(max-width: 900px)';\n\n  function isBreadcrumbMobile() {\n    if (!window.matchMedia) return false;\n    return window.matchMedia(BREADCRUMB_MOBILE_QUERY).matches;\n  }\n\n  function renderBreadcrumbs() {\n    if (!els.breadcrumbs) return;\n\n    els.breadcrumbs.innerHTML = '';\n\n    \/\/ Nur echte Fragen im Verlauf anzeigen\n    const visibleHistory = appState.history.filter(\n      id => appState.data[id] && appState.data[id].type === 'question'\n    );\n\n    const isMobile = isBreadcrumbMobile();\n    const MAX_DESKTOP_LENGTH = 80; \/\/ \"leicht\" k\u00fcrzen bei extrem langen Fragen\n\n    visibleHistory.forEach((histId, index) => {\n      const node = appState.data[histId];\n      if (!node) return;\n\n      \/\/ Separator einf\u00fcgen (ab zweitem Eintrag)\n      if (els.breadcrumbs.children.length > 0) {\n        const sep = document.createElement('span');\n        sep.className = 'pb-crumb-separator';\n        sep.innerText = ' \u203a ';\n        els.breadcrumbs.appendChild(sep);\n      }\n\n      const span = document.createElement('span');\n      span.className = 'pb-crumb';\n\n      const fullText = node.text || '';\n      let labelText;\n\n      if (isMobile) {\n        \/\/ Tablet & Mobile: neutrale Schritt-Labels\n        labelText = 'Question ' + (index + 1);\n      } else {\n        \/\/ Desktop: voller Fragetext, bei sehr langen Strings dezent k\u00fcrzen\n        labelText = fullText;\n        if (labelText.length > MAX_DESKTOP_LENGTH) {\n          labelText = labelText.substring(0, MAX_DESKTOP_LENGTH - 1) + '\u2026';\n        }\n      }\n\n      span.innerText = labelText;\n      \/\/ Volltext immer im title, f\u00fcr Hover auf Desktop\n      span.title = fullText;\n\n      \/\/ Index im echten History Array finden\n      const realIndex = appState.history.indexOf(histId);\n      span.onclick = () => jumpToHistory(realIndex);\n\n      els.breadcrumbs.appendChild(span);\n    });\n  }\n\n  function jumpToHistory(index) {\n    const targetId = appState.history[index];\n    appState.history = appState.history.slice(0, index);\n    appState.currentId = targetId;\n    updateView();\n  }\n\n  function renderProgress() {\n    \/\/ Dynamische Berechnung basierend auf Tiefe\n    const depth = appState.currentId.length;\n    \/\/ Ungef\u00e4hre maximale Tiefe im Baum ist 18 Zeichen\n    const pct = Math.min(100, (depth \/ 18) * 100);\n    els.progress.style.width = pct + '%';\n  }\n\n  \/\/ --- Resize-Handling f\u00fcr Breadcrumbs ---\n  let breadcrumbResizeTimeout = null;\n\n  function handleBreadcrumbResize() {\n    \/\/ kleines Debounce, um DOM-Spam beim Ziehen des Fensters zu vermeiden\n    if (breadcrumbResizeTimeout) {\n      clearTimeout(breadcrumbResizeTimeout);\n    }\n    breadcrumbResizeTimeout = setTimeout(() => {\n      renderBreadcrumbs();\n    }, 100);\n  }\n\n  window.addEventListener('resize', handleBreadcrumbResize);\n\n\n  \/**\n   * 4. ERGEBNIS & API\n   *\/\n   \n   const MIN_RESULT_LOADING_MS = 2500;\n\nasync function ensureMinResultLoading(startTime) {\n  const elapsed = Date.now() - startTime;\n  if (elapsed < MIN_RESULT_LOADING_MS) {\n    await new Promise(resolve => setTimeout(resolve, MIN_RESULT_LOADING_MS - elapsed));\n  }\n}\n   \nasync function showResult(pidString) {\n  els.resultView.classList.remove('hidden');\n\n  \/\/ Initialer Loading-State\n  els.resultList.innerHTML = `\n    <div class=\"pb-spinner\"><\/div>\n    <div class=\"pb-loading-copy\">Calculating the product recommendation(s) based on your details<\/div>\n  `;\n\n  const loadingStart = Date.now();\n\n  \/\/ 1. Pr\u00fcfen, ob es \u00fcberhaupt echte Produkt-IDs gibt\n  const isCustomRequest = pidString.includes('produktanfrage');\n  const ids = isCustomRequest\n    ? []\n    : pidString\n        .split(',')\n        .map(s => s.trim())\n        .filter(s => s !== '' && !isNaN(s));\n\n  \/\/ 2. Fall: Fallback \"Produktanfrage\"\n  if (isCustomRequest || ids.length === 0) {\n    \/\/ Sicherstellen, dass Spinner mindestens kurz sichtbar war\n    await ensureMinResultLoading(loadingStart);\n\n    els.resultList.innerHTML = '';\n    renderCustomRequest();\n    return;\n  }\n\n  \/\/ 3. Fall: Es gibt Produkt-IDs -> Daten laden\n  const products = [];\n\n  for (const id of ids) {\n    const productData = await fetchProductData(id);\n    products.push({ id, productData });\n  }\n\n  \/\/ 4. Min. Loading-Zeit sicherstellen, bevor der Spinner verschwindet\n  await ensureMinResultLoading(loadingStart);\n\n  \/\/ 5. Loading-State entfernen und Ergebnis anzeigen\n  els.resultList.innerHTML = '';\n\n  if (!products.length) {\n    \/\/ Sicherheitshalber: falls aus irgendeinem Grund nichts geladen wurde -> Fallback\n    renderCustomRequest();\n    return;\n  }\n\n  for (const { id, productData } of products) {\n    renderProductCard(productData, id);\n  }\n}\n\n\n  async function fetchProductData(id) {\n    if (appState.productCache[id]) return appState.productCache[id];\n\n    \/\/ Priority List f\u00fcr Endpoints\n    const endpoints = [\n      `\/wp-json\/wc\/store\/v1\/products\/${id}`, \n      `\/wp-json\/wp\/v2\/product\/${id}`,        \n      `\/wp-json\/wc\/v3\/products\/${id}`        \n    ];\n\n    for (const url of endpoints) {\n      try {\n        const res = await fetch(url);\n        if (res.ok) {\n          const data = await res.json();\n          \/\/ Daten normalisieren (unterschiedliche API Strukturen)\n          const p = {\n            title: data.name || data.title?.rendered || `Product #${id}`,\n            link: data.permalink || data.link || `\/?p=${id}`,\n            image: (data.images && data.images[0]) ? (data.images[0].src || data.images[0].url) : null,\n            price: data.prices?.price || data.price_html || '' \n          };\n          appState.productCache[id] = p;\n          return p;\n        }\n      } catch (e) { console.log('API fetch failed for', url); }\n    }\n\n    return {\n      title: `Product ID: ${id}`,\n      link: `\/?p=${id}`, \n      fallback: true\n    };\n  }\n\n  function renderProductCard(product, id) {\n    const card = document.createElement('div');\n    card.className = 'pb-product-card';\n    \n    let html = '';\n    \n    if (product.image) {\n       html += `<img decoding=\"async\" src=\"${product.image}\" alt=\"${product.title}\" class=\"pb-product-img\">`;\n    }\n    \n    html += `<span class=\"pb-product-title\">${product.title}<\/span>`;\n    \n    if (product.price && typeof product.price === 'string' && !product.price.includes('Object')) {\n       \/\/ Preisanzeige optional, falls API HTML liefert\n       \/\/ html += `<div style=\"margin-bottom:10px; font-weight:bold; color:#555;\">${product.price}<\/div>`;\n    }\n\n    html += `<a href=\"${product.link}\" class=\"pb-cta-btn\" target=\"_blank\">To the product<\/a>`;\n\n    card.innerHTML = html;\n    els.resultList.appendChild(card);\n  }\n\n  function renderCustomRequest() {\n    els.resultList.innerHTML = '';\n    const card = document.createElement('div');\n    card.className = 'pb-product-card';\n    card.style.borderColor = '#b8daff';\n    card.style.backgroundColor = '#f1f8ff';\n    \n    card.innerHTML = `\n      <span class=\"pb-product-title\" style=\"color:#004085;\">Individual request<\/span>\n      <p style=\"margin-bottom:15px; font-size:0.95em; color:#333;\">We would be happy to configure a custom solution for your specific requirements.<\/p>\n      <a href=\"https:\/\/kabelstruempfe.de\/en\/your-quote-request\/#tab-specialinquiryviaform\" class=\"pb-cta-btn\">Submit request now<\/a>\n    `;\n    els.resultList.appendChild(card);\n  }\n\n  \/\/ --- Start ---\n  els.btnBack.addEventListener('click', goBack);\n  els.btnReset.addEventListener('click', resetApp);\n\n  updateView();\n\n})();\n<\/script>\n<\/div><\/div>\n\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Loading product advisor&#8230; Question? Intelligent product recommendation(s) Individual consultation required We do not have a standard solution directly available for this specific combination. Submit request \u2190 Step back \u27f2 Restart Loading product advisor&#8230; Question? Intelligent product recommendation(s) Individual consultation required We do not have a standard solution directly available for this specific combination. Submit request&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-572","page","type-page","status-publish","hentry"],"acf":[],"taxonomy_info":[],"featured_image_src_large":false,"author_info":{"display_name":"admin","author_link":"https:\/\/kabelstruempfe.de\/en\/author\/info_ac6uyv1j\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/kabelstruempfe.de\/en\/wp-json\/wp\/v2\/pages\/572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kabelstruempfe.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kabelstruempfe.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kabelstruempfe.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kabelstruempfe.de\/en\/wp-json\/wp\/v2\/comments?post=572"}],"version-history":[{"count":14,"href":"https:\/\/kabelstruempfe.de\/en\/wp-json\/wp\/v2\/pages\/572\/revisions"}],"predecessor-version":[{"id":3508,"href":"https:\/\/kabelstruempfe.de\/en\/wp-json\/wp\/v2\/pages\/572\/revisions\/3508"}],"wp:attachment":[{"href":"https:\/\/kabelstruempfe.de\/en\/wp-json\/wp\/v2\/media?parent=572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}