{"id":2793,"date":"2026-03-27T03:20:52","date_gmt":"2026-03-27T03:20:52","guid":{"rendered":"https:\/\/kitech-recycling.com\/?page_id=2793"},"modified":"2026-03-27T03:22:42","modified_gmt":"2026-03-27T03:22:42","slug":"tool-1-model-selector","status":"publish","type":"page","link":"https:\/\/kitech-recycling.com\/es\/plastic-shredder\/tool-1-model-selector\/","title":{"rendered":"Herramienta-1-Modelo-Selector"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-b633368\" data-block-id=\"b633368\"><style>.stk-b633368 {margin-bottom:0px !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-b633368-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-345185c\" data-v=\"4\" data-block-id=\"345185c\"><style>.stk-345185c-container{margin-top:var(--stk--preset--spacing--60, 2.25rem) !important;margin-right:var(--stk--preset--spacing--60, 2.25rem) !important;margin-bottom:var(--stk--preset--spacing--60, 2.25rem) !important;margin-left:var(--stk--preset--spacing--60, 2.25rem) !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-345185c-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-345185c-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-978b11d\" data-block-id=\"978b11d\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-978b11d-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-60ba17f\" data-v=\"4\" data-block-id=\"60ba17f\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-60ba17f-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-60ba17f-inner-blocks\">\n<!--\n  Tool 1: Shredder Model Selector Calculator\n  Kitech AGF Granulator & AGS Single Shaft Shredder Series\n  Self-contained interactive HTML widget\n-->\n<section id=\"bx-model-selector-v1\">\n  <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;600&display=swap');\n\n    #bx-model-selector-v1 {\n      max-width: 1120px;\n      margin: 0 auto;\n      padding: 0;\n      box-sizing: border-box;\n      color: #1a1a1a;\n      line-height: 1.6;\n    }\n    #bx-model-selector-v1 *,\n    #bx-model-selector-v1 *::before,\n    #bx-model-selector-v1 *::after {\n      box-sizing: border-box;\n    }\n\n    \/* Headings *\/\n    #bx-model-selector-v1 h2,\n    #bx-model-selector-v1 h3,\n    #bx-model-selector-v1 h4 {\n      font-family: inherit !important;\n      color: #004878;\n      margin: 0 0 0.5em;\n    }\n    #bx-model-selector-v1 h2 {\n      margin-bottom: 0.25em;\n    }\n\n    \/* Subtitle *\/\n    #bx-model-selector-v1 .bx-subtitle {\n      color: #787878;\n      margin: 0 0 2rem;\n      font-size: 1rem;\n    }\n\n    \/* Form layout *\/\n    #bx-model-selector-v1 .bx-form-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr 1fr;\n      gap: 1.25rem;\n      margin-bottom: 1.5rem;\n    }\n    #bx-model-selector-v1 .bx-field label {\n      display: block;\n      font-weight: 600;\n      margin-bottom: 0.375rem;\n      font-size: 0.9rem;\n      color: #003078;\n    }\n    #bx-model-selector-v1 .bx-field select {\n      width: 100%;\n      height: 44px;\n      padding: 0 2.25rem 0 0.75rem;\n      border: 2px solid #c8d0d8;\n      border-radius: 0;\n      background-color: #fff;\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23787878' d='M1 1l5 5 5-5'\/%3E%3C\/svg%3E\");\n      background-repeat: no-repeat;\n      background-position: right 0.75rem center;\n      background-size: 12px 8px;\n      appearance: none;\n      -webkit-appearance: none;\n      -moz-appearance: none;\n      font-size: 0.95rem;\n      color: #1a1a1a;\n      cursor: pointer;\n      transition: border-color 0.2s;\n    }\n    #bx-model-selector-v1 .bx-field select:focus {\n      outline: none;\n      border-color: #004878;\n    }\n    #bx-model-selector-v1 .bx-field select option {\n      color: #000018;\n      background: #FFFFFF;\n    }\n\n    \/* Button *\/\n    #bx-model-selector-v1 .bx-btn-row {\n      margin-bottom: 2rem;\n    }\n    #bx-model-selector-v1 .bx-btn-primary {\n      display: inline-block;\n      padding: 0.75rem 2rem;\n      background: #004878;\n      color: #fff;\n      border: none;\n      border-radius: 0;\n      font-size: 1rem;\n      font-weight: 600;\n      cursor: pointer;\n      transition: background 0.2s;\n    }\n    #bx-model-selector-v1 .bx-btn-primary:hover {\n      background: #003078;\n    }\n\n    \/* Result area *\/\n    #bx-model-selector-v1 .bx-result-area {\n      display: none;\n    }\n    #bx-model-selector-v1 .bx-result-area.is-visible {\n      display: block;\n    }\n\n    \/* Divider *\/\n    #bx-model-selector-v1 .bx-divider {\n      border: none;\n      border-top: 2px solid #e0e4e8;\n      margin: 0 0 1.5rem;\n    }\n\n    \/* Fit badge *\/\n    #bx-model-selector-v1 .bx-fit-badge {\n      display: inline-block;\n      padding: 0.25rem 0.875rem;\n      font-size: 0.8rem;\n      font-weight: 700;\n      letter-spacing: 0.03em;\n      text-transform: uppercase;\n      color: #fff;\n      margin-bottom: 1rem;\n    }\n    #bx-model-selector-v1 .bx-fit-badge--excellent { background: #1a8a3f; }\n    #bx-model-selector-v1 .bx-fit-badge--good { background: #b8960c; }\n    #bx-model-selector-v1 .bx-fit-badge--upgrade { background: #d27519; }\n    #bx-model-selector-v1 .bx-fit-badge--custom { background: #c0392b; }\n\n    \/* Model card *\/\n    #bx-model-selector-v1 .bx-model-cards {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 1.25rem;\n      margin-bottom: 1.5rem;\n    }\n    #bx-model-selector-v1 .bx-model-card {\n      flex: 1 1 320px;\n      border: 2px solid #004878;\n      padding: 1.5rem;\n      background: #f7f9fb;\n    }\n    #bx-model-selector-v1 .bx-model-card h3 {\n      margin: 0 0 0.125rem;\n      font-size: 1.3rem;\n    }\n    #bx-model-selector-v1 .bx-model-card .bx-series-label {\n      display: inline-block;\n      font-size: 0.78rem;\n      font-weight: 600;\n      color: #fff;\n      background: #003078;\n      padding: 0.125rem 0.5rem;\n      margin-bottom: 0.875rem;\n      letter-spacing: 0.04em;\n      text-transform: uppercase;\n    }\n    #bx-model-selector-v1 .bx-spec-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-bottom: 1rem;\n    }\n    #bx-model-selector-v1 .bx-spec-table td {\n      padding: 0.375rem 0;\n      border-bottom: 1px solid #e0e4e8;\n      font-size: 0.9rem;\n      vertical-align: top;\n    }\n    #bx-model-selector-v1 .bx-spec-table td:first-child {\n      color: #787878;\n      width: 42%;\n      padding-right: 0.75rem;\n    }\n    #bx-model-selector-v1 .bx-spec-table td:last-child {\n      font-family: 'IBM Plex Mono', monospace;\n      font-weight: 600;\n      color: #003078;\n    }\n    #bx-model-selector-v1 .bx-best-for {\n      font-size: 0.85rem;\n      color: #787878;\n      margin: 0;\n      font-style: italic;\n    }\n\n    \/* Recommendation note *\/\n    #bx-model-selector-v1 .bx-rec-note {\n      background: #eef3f7;\n      border-left: 4px solid #004878;\n      padding: 1rem 1.25rem;\n      margin-bottom: 1.5rem;\n      font-size: 0.92rem;\n      line-height: 1.7;\n    }\n    #bx-model-selector-v1 .bx-rec-note strong {\n      color: #003078;\n    }\n\n    \/* CTA *\/\n    #bx-model-selector-v1 .bx-cta-row {\n      margin-top: 0.5rem;\n    }\n    #bx-model-selector-v1 .bx-cta-btn {\n      display: inline-block;\n      padding: 0.8rem 2rem;\n      background: #004878;\n      color: #fff;\n      border: none;\n      border-radius: 0;\n      font-size: 1rem;\n      font-weight: 600;\n      cursor: pointer;\n      text-decoration: none;\n      transition: background 0.2s;\n    }\n    #bx-model-selector-v1 .bx-cta-btn:hover {\n      background: #003078;\n      color: #fff;\n    }\n\n    \/* Two-stage note *\/\n    #bx-model-selector-v1 .bx-two-stage-note {\n      display: flex;\n      align-items: flex-start;\n      gap: 0.625rem;\n      background: #fff8e6;\n      border: 1px solid #e6d590;\n      padding: 0.875rem 1rem;\n      margin-bottom: 1.25rem;\n      font-size: 0.88rem;\n    }\n    #bx-model-selector-v1 .bx-two-stage-note .bx-icon-info {\n      flex-shrink: 0;\n      width: 20px;\n      height: 20px;\n      fill: #b8960c;\n      margin-top: 1px;\n    }\n\n    \/* Mobile *\/\n    @media (max-width: 860px) {\n      #bx-model-selector-v1 .bx-form-grid {\n        grid-template-columns: 1fr;\n        gap: 1rem;\n      }\n      #bx-model-selector-v1 .bx-model-cards {\n        flex-direction: column;\n      }\n      #bx-model-selector-v1 .bx-model-card {\n        flex: 1 1 100%;\n      }\n    }\n  <\/style>\n\n  <h2>Shredder Model Selector<\/h2>\n  <p class=\"bx-subtitle\">Select your material, throughput, and application to find the best Kitech shredder or granulator for your line.<\/p>\n\n  <div class=\"bx-form-grid\">\n    <div class=\"bx-field\">\n      <label for=\"bx-sel-material\">Material Type<\/label>\n      <select id=\"bx-sel-material\">\n        <option value=\"\">&#8212; Select &#8212;<\/option>\n        <option value=\"pet-bottles\">PET Bottles<\/option>\n        <option value=\"pe-pp-film\">PE\/PP Film<\/option>\n        <option value=\"rigid-hdpe-pp\">Rigid HDPE\/PP<\/option>\n        <option value=\"pvc-pipe\">PVC Pipe<\/option>\n        <option value=\"mixed-plastics\">Mixed Plastics<\/option>\n        <option value=\"e-waste\">E-Waste<\/option>\n        <option value=\"other\">Other<\/option>\n      <\/select>\n    <\/div>\n    <div class=\"bx-field\">\n      <label for=\"bx-sel-throughput\">Target Throughput<\/label>\n      <select id=\"bx-sel-throughput\">\n        <option value=\"\">&#8212; Select &#8212;<\/option>\n        <option value=\"0.3-0.5\">0.3 &ndash; 0.5 T\/hr<\/option>\n        <option value=\"0.5-1.0\">0.5 &ndash; 1.0 T\/hr<\/option>\n        <option value=\"1.0-1.5\">1.0 &ndash; 1.5 T\/hr<\/option>\n        <option value=\"1.5-2.0\">1.5 &ndash; 2.0 T\/hr<\/option>\n        <option value=\"2.0-3.0\">2.0 &ndash; 3.0 T\/hr<\/option>\n        <option value=\"3.0+\">3.0+ T\/hr<\/option>\n      <\/select>\n    <\/div>\n    <div class=\"bx-field\">\n      <label for=\"bx-sel-form\">Input Material Form<\/label>\n      <select id=\"bx-sel-form\">\n        <option value=\"\">&#8212; Select &#8212;<\/option>\n        <option value=\"loose\">Loose \/ Unbaled<\/option>\n        <option value=\"baled\">Baled<\/option>\n        <option value=\"large-rigid\">Large Rigid Parts<\/option>\n        <option value=\"film-rolls\">Film Rolls<\/option>\n        <option value=\"pre-shredded\">Pre-shredded<\/option>\n      <\/select>\n    <\/div>\n  <\/div>\n\n  <div class=\"bx-btn-row\">\n    <button class=\"bx-btn-primary\" type=\"button\" id=\"bx-btn-recommend\">Find My Model<\/button>\n  <\/div>\n\n  <div class=\"bx-result-area\" id=\"bx-result-area\">\n    <hr class=\"bx-divider\">\n    <div id=\"bx-result-content\"><\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  'use strict';\n\n  \/* \u2500\u2500 Product Data \u2500\u2500 *\/\n  var AGF = [\n    {\n      model: 'AGF500\/700', series: 'AGF Granulator',\n      rotor: '\\u03A6500 mm', chamber: '700 mm', motor: '37\\u201355 kW',\n      throughput: '0.3\\u20130.5 T\/hr', tMin: 0.3, tMax: 0.5,\n      knives: null,\n      bestFor: 'Film, bottles (small scale)'\n    },\n    {\n      model: 'AGF700\/1000', series: 'AGF Granulator',\n      rotor: '\\u03A6700 mm', chamber: '1000 mm', motor: '75 kW',\n      throughput: '0.5\\u20131.0 T\/hr', tMin: 0.5, tMax: 1.0,\n      knives: null,\n      bestFor: 'Film, bottles (medium)'\n    },\n    {\n      model: 'AGF700\/1200', series: 'AGF Granulator',\n      rotor: '\\u03A6700 mm', chamber: '1160 mm', motor: '90 kW',\n      throughput: '1.2\\u20131.5 T\/hr', tMin: 1.2, tMax: 1.5,\n      knives: null,\n      bestFor: 'Film, bottles, pre-shredded rigid'\n    },\n    {\n      model: 'AGF800\/1200', series: 'AGF Granulator',\n      rotor: '\\u03A6800 mm', chamber: '1160 mm', motor: '132 kW',\n      throughput: '1.5\\u20132.0 T\/hr', tMin: 1.5, tMax: 2.0,\n      knives: null,\n      bestFor: 'High-volume film\/bottle lines'\n    },\n    {\n      model: 'AGF800\/1600', series: 'AGF Granulator',\n      rotor: '\\u03A6800 mm', chamber: '1560 mm', motor: '160 kW',\n      throughput: '2.0\\u20133.0 T\/hr', tMin: 2.0, tMax: 3.0,\n      knives: null,\n      bestFor: 'Max capacity film\/bottle lines'\n    }\n  ];\n\n  var AGS = [\n    {\n      model: 'AGS850', series: 'AGS Single Shaft Shredder',\n      rotor: '\\u03A6457 mm', chamber: '840 \\u00d7 1570 mm', motor: '37\\u201355 kW',\n      throughput: 'Light duty', tMin: 0.3, tMax: 0.8,\n      knives: 60,\n      bestFor: 'Light rigid, small pipes'\n    },\n    {\n      model: 'AGS1200', series: 'AGS Single Shaft Shredder',\n      rotor: '\\u03A6457 mm', chamber: '1120 \\u00d7 1570 mm', motor: '55 kW',\n      throughput: 'Medium duty', tMin: 0.5, tMax: 1.2,\n      knives: 81,\n      bestFor: 'Rigid plastics, crates'\n    },\n    {\n      model: 'AGS1500', series: 'AGS Single Shaft Shredder',\n      rotor: '\\u03A6457 mm', chamber: '1400 \\u00d7 1570 mm', motor: '75 kW',\n      throughput: 'Medium\\u2013heavy duty', tMin: 1.0, tMax: 1.8,\n      knives: 102,\n      bestFor: 'Mixed rigid, baled material'\n    },\n    {\n      model: 'AGS1600', series: 'AGS Single Shaft Shredder',\n      rotor: '\\u03A6590 mm', chamber: '1600 \\u00d7 1570 mm', motor: '110 kW',\n      throughput: 'Heavy duty', tMin: 1.5, tMax: 2.5,\n      knives: 76,\n      bestFor: 'Heavy-duty mixed plastics'\n    },\n    {\n      model: 'AGS2000', series: 'AGS Single Shaft Shredder',\n      rotor: '\\u03A6457 mm', chamber: '1960 \\u00d7 1570 mm', motor: '2\\u00d755 \/ 2\\u00d775 kW',\n      throughput: 'Max capacity', tMin: 2.0, tMax: 3.5,\n      knives: 144,\n      bestFor: 'Maximum throughput, mixed industrial'\n    }\n  ];\n\n  \/* \u2500\u2500 Helpers \u2500\u2500 *\/\n  function parseThroughput(val) {\n    if (val === '3.0+') return { min: 3.0, max: 99 };\n    var parts = val.split('-');\n    return { min: parseFloat(parts[0]), max: parseFloat(parts[1]) };\n  }\n\n  function overlaps(modelMin, modelMax, needMin, needMax) {\n    return modelMax >= needMin && modelMin <= needMax;\n  }\n\n  function fitScore(modelMin, modelMax, needMin, needMax) {\n    \/\/ How well does the model range cover the need range?\n    var overlapMin = Math.max(modelMin, needMin);\n    var overlapMax = Math.min(modelMax, needMax);\n    if (overlapMax < overlapMin) return 0;\n    var overlapSize = overlapMax - overlapMin;\n    var needSize = needMax - needMin || 0.1;\n    return overlapSize \/ needSize;\n  }\n\n  function pickBest(pool, needMin, needMax) {\n    var candidates = [];\n    for (var i = 0; i < pool.length; i++) {\n      var m = pool[i];\n      if (overlaps(m.tMin, m.tMax, needMin, needMax)) {\n        candidates.push({ model: m, score: fitScore(m.tMin, m.tMax, needMin, needMax) });\n      }\n    }\n    if (candidates.length === 0) {\n      \/\/ Pick closest by tMax\n      var best = null, bestDist = Infinity;\n      for (var j = 0; j < pool.length; j++) {\n        var dist = Math.abs(pool[j].tMax - needMin);\n        if (dist < bestDist) { bestDist = dist; best = pool[j]; }\n      }\n      return { model: best, fit: 'upgrade' };\n    }\n    candidates.sort(function (a, b) { return b.score - a.score; });\n    var top = candidates[0];\n    if (top.score >= 0.8) return { model: top.model, fit: 'excellent' };\n    if (top.score >= 0.4) return { model: top.model, fit: 'good' };\n    return { model: top.model, fit: 'upgrade' };\n  }\n\n  function renderCard(item) {\n    var m = item.model;\n    var specRows = '';\n    specRows += '<tr><td>Rotor<\/td><td>' + m.rotor + '<\/td><\/tr>';\n    specRows += '<tr><td>Chamber<\/td><td>' + m.chamber + '<\/td><\/tr>';\n    specRows += '<tr><td>Motor Power<\/td><td>' + m.motor + '<\/td><\/tr>';\n    if (m.knives) {\n      specRows += '<tr><td>Knives<\/td><td>' + m.knives + '<\/td><\/tr>';\n    }\n    specRows += '<tr><td>Throughput<\/td><td>' + m.throughput + '<\/td><\/tr>';\n    return '<div class=\"bx-model-card\">' +\n      '<h3>' + m.model + '<\/h3>' +\n      '<span class=\"bx-series-label\">' + m.series + '<\/span>' +\n      '<table class=\"bx-spec-table\"><tbody>' + specRows + '<\/tbody><\/table>' +\n      '<p class=\"bx-best-for\">Best for: ' + m.bestFor + '<\/p>' +\n      '<\/div>';\n  }\n\n  function badgeHTML(fit) {\n    var map = {\n      excellent: { cls: 'bx-fit-badge--excellent', text: 'Excellent Match' },\n      good: { cls: 'bx-fit-badge--good', text: 'Good Match' },\n      upgrade: { cls: 'bx-fit-badge--upgrade', text: 'Consider Upgrade' },\n      custom: { cls: 'bx-fit-badge--custom', text: 'Requires Custom Solution' }\n    };\n    var b = map[fit] || map.custom;\n    return '<span class=\"bx-fit-badge ' + b.cls + '\">' + b.text + '<\/span>';\n  }\n\n  function twoStageNote() {\n    return '<div class=\"bx-two-stage-note\">' +\n      '<svg class=\"bx-icon-info\" viewBox=\"0 0 20 20\"><circle cx=\"10\" cy=\"10\" r=\"9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10 9v5M10 6.5v.01\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/><\/svg>' +\n      '<span><strong>Two-stage system recommended.<\/strong> A single-shaft shredder (AGS) first reduces large or mixed material, then a granulator (AGF) produces uniform output size. This combination maximizes throughput and output quality for mixed or rigid feedstock.<\/span>' +\n      '<\/div>';\n  }\n\n  \/* \u2500\u2500 Core Algorithm \u2500\u2500 *\/\n  function recommend(material, throughputVal, form) {\n    var tp = parseThroughput(throughputVal);\n    var needMin = tp.min, needMax = tp.max;\n\n    var isFilmBottle = (material === 'pet-bottles' || material === 'pe-pp-film');\n    var isRigid = (material === 'rigid-hdpe-pp' || material === 'pvc-pipe' || material === 'e-waste');\n    var isMixed = (material === 'mixed-plastics' || material === 'other');\n\n    var formFavorsAGF = (form === 'loose' || form === 'film-rolls' || form === 'pre-shredded');\n    var formFavorsAGS = (form === 'baled' || form === 'large-rigid');\n\n    var useTwoStage = false;\n    var pool, secondPool;\n\n    if (isMixed) {\n      \/\/ Mixed always gets two-stage recommendation\n      useTwoStage = true;\n      pool = AGS;\n      secondPool = AGF;\n    } else if (isFilmBottle && formFavorsAGF) {\n      pool = AGF;\n    } else if (isFilmBottle && formFavorsAGS) {\n      \/\/ Baled film \u2192 need shredder first, then granulator\n      useTwoStage = true;\n      pool = AGS;\n      secondPool = AGF;\n    } else if (isRigid && formFavorsAGS) {\n      pool = AGS;\n    } else if (isRigid && formFavorsAGF) {\n      \/\/ Pre-shredded rigid \u2192 granulator OK; loose rigid \u2192 shredder\n      if (form === 'pre-shredded') {\n        pool = AGF;\n      } else {\n        pool = AGS;\n      }\n    } else if (isRigid) {\n      pool = AGS;\n    } else {\n      \/\/ Fallback: film\/bottle default to AGF\n      pool = AGF;\n    }\n\n    \/\/ 3.0+ T\/hr special handling\n    if (needMin >= 3.0 && !useTwoStage) {\n      \/\/ Check if any model in pool can reach it\n      var maxCap = 0;\n      for (var k = 0; k < pool.length; k++) {\n        if (pool[k].tMax > maxCap) maxCap = pool[k].tMax;\n      }\n      if (maxCap < needMin) {\n        \/\/ Exceeds all models\n        return {\n          twoStage: false,\n          primary: { model: pool[pool.length - 1], fit: 'custom' },\n          secondary: null\n        };\n      }\n    }\n\n    var primary = pickBest(pool, needMin, needMax);\n\n    if (useTwoStage) {\n      var secondary = pickBest(secondPool, needMin, Math.min(needMax, 3.0));\n      \/\/ Overall fit: worst of both\n      var fits = ['excellent', 'good', 'upgrade', 'custom'];\n      var worstIdx = Math.max(fits.indexOf(primary.fit), fits.indexOf(secondary.fit));\n      return {\n        twoStage: true,\n        primary: primary,\n        secondary: secondary,\n        overallFit: fits[worstIdx]\n      };\n    }\n\n    return {\n      twoStage: false,\n      primary: primary,\n      secondary: null\n    };\n  }\n\n  \/* \u2500\u2500 Render \u2500\u2500 *\/\n  function render(result) {\n    var html = '';\n    var fit = result.twoStage ? (result.overallFit || result.primary.fit) : result.primary.fit;\n    html += badgeHTML(fit);\n\n    if (result.twoStage) {\n      html += twoStageNote();\n    }\n\n    var recNote = '';\n    if (fit === 'excellent') {\n      recNote = 'This model is an <strong>ideal match<\/strong> for your material type and throughput requirements.';\n    } else if (fit === 'good') {\n      recNote = 'This model <strong>covers your needs well<\/strong>. Actual throughput may vary with material density and condition.';\n    } else if (fit === 'upgrade') {\n      recNote = 'Your throughput target is near or beyond this model\\'s rated range. <strong>Contact our engineers<\/strong> for a tailored solution or consider the next size up.';\n    } else {\n      recNote = 'Your requirements <strong>exceed our standard model range<\/strong>. Our engineering team can design a custom solution. Please reach out for a consultation.';\n    }\n    html += '<div class=\"bx-rec-note\">' + recNote + '<\/div>';\n\n    html += '<div class=\"bx-model-cards\">';\n    html += renderCard(result.primary);\n    if (result.twoStage && result.secondary) {\n      html += renderCard(result.secondary);\n    }\n    html += '<\/div>';\n\n    \/\/ CTA\n    var ctaLabel = result.twoStage\n      ? 'Get a Quote for ' + result.primary.model.model + ' + ' + result.secondary.model.model\n      : 'Get a Quote for ' + result.primary.model.model;\n    html += '<div class=\"bx-cta-row\">' +\n      '<a class=\"bx-cta-btn\" href=\"#ct-popup-684\">' + ctaLabel + '<\/a>' +\n      '<\/section>';\n\n    return html;\n  }\n\n  \/* \u2500\u2500 Event Binding \u2500\u2500 *\/\n  var btn = document.getElementById('bx-btn-recommend');\n  btn.addEventListener('click', function () {\n    var material = document.getElementById('bx-sel-material').value;\n    var throughput = document.getElementById('bx-sel-throughput').value;\n    var form = document.getElementById('bx-sel-form').value;\n\n    if (!material || !throughput || !form) {\n      alert('Please select all three options to get a recommendation.');\n      return;\n    }\n\n    var result = recommend(material, throughput, form);\n    var container = document.getElementById('bx-result-content');\n    container.innerHTML = render(result);\n\n    var area = document.getElementById('bx-result-area');\n    area.classList.add('is-visible');\n\n    \/\/ Smooth scroll to result\n    area.scrollIntoView({ behavior: 'smooth', block: 'start' });\n  });\n\n})();\n<\/script>\n\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Shredder Model Selector Select your material, throughput, and application to find the best Kitech shredder or granulator for your line. Material Type &#8212; Select &#8212;PET BottlesPE\/PP FilmRigid HDPE\/PPPVC PipeMixed PlasticsE-WasteOther Target Throughput &#8212; Select &#8212;0.3 &ndash; 0.5 T\/hr0.5 &ndash; 1.0 T\/hr1.0 &ndash; 1.5 T\/hr1.5 &ndash; 2.0 T\/hr2.0 &ndash; 3.0 T\/hr3.0+ T\/hr Input Material Form &#8212; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2233,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-2793","page","type-page","status-publish","hentry"],"blocksy_meta":{"has_hero_section":"disabled","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/kitech-recycling.com\/es\/wp-json\/wp\/v2\/pages\/2793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kitech-recycling.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kitech-recycling.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kitech-recycling.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kitech-recycling.com\/es\/wp-json\/wp\/v2\/comments?post=2793"}],"version-history":[{"count":0,"href":"https:\/\/kitech-recycling.com\/es\/wp-json\/wp\/v2\/pages\/2793\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/kitech-recycling.com\/es\/wp-json\/wp\/v2\/pages\/2233"}],"wp:attachment":[{"href":"https:\/\/kitech-recycling.com\/es\/wp-json\/wp\/v2\/media?parent=2793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}