{"id":2620,"date":"2026-04-22T07:15:56","date_gmt":"2026-04-22T07:15:56","guid":{"rendered":"https:\/\/bbpmfg.com\/?page_id=2620"},"modified":"2026-04-22T07:19:33","modified_gmt":"2026-04-22T07:19:33","slug":"pump-selector","status":"publish","type":"page","link":"https:\/\/bbpmfg.com\/ar\/sewage-pumps\/submersible\/pump-selector\/","title":{"rendered":"\u0645\u062d\u062f\u062f \u0627\u0644\u0645\u0636\u062e\u0629"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-6962be2\" data-block-id=\"6962be2\"><style>.stk-6962be2 {margin-bottom:0px !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-6962be2-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-e5f9ff7\" data-v=\"4\" data-block-id=\"e5f9ff7\"><style>.stk-e5f9ff7-container{margin-top:var(--stk--preset--spacing--50, 1.5rem) !important;margin-right:var(--stk--preset--spacing--50, 1.5rem) !important;margin-bottom:var(--stk--preset--spacing--50, 1.5rem) !important;margin-left:var(--stk--preset--spacing--50, 1.5rem) !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-e5f9ff7-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-e5f9ff7-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-5f72c0d\" data-block-id=\"5f72c0d\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-5f72c0d-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-a36d52f\" data-v=\"4\" data-block-id=\"a36d52f\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-a36d52f-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-a36d52f-inner-blocks\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>BBP Submersible Sewage Pump Selection Tool<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;500;600;700&#038;family=IBM+Plex+Sans:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n  *, *::before, *::after {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0;\n  }\n\n  :root {\n    --primary: #1848C0;\n    --primary-dark: #0f2f8a;\n    --primary-light: #2558d4;\n    --accent: #F0C018;\n    --accent-dark: #c9a010;\n    --white: #ffffff;\n    --gray-50: #f8f9fc;\n    --gray-100: #eef0f5;\n    --gray-200: #d8dce8;\n    --gray-300: #b0b8cc;\n    --gray-500: #6b7694;\n    --gray-700: #3a4260;\n    --gray-900: #1a1f36;\n    --success: #16a34a;\n    --border: 1px solid var(--gray-200);\n    --shadow: 0 2px 8px rgba(24, 72, 192, 0.10);\n    --shadow-lg: 0 8px 32px rgba(24, 72, 192, 0.16);\n  }\n\n  body {\n    font-family: 'IBM Plex Sans', -apple-system, sans-serif;\n    background: var(--gray-50);\n    color: var(--gray-900);\n    min-height: 100vh;\n    padding: 32px 16px 64px;\n    line-height: 1.6;\n  }\n\n  .container {\n    max-width: 860px;\n    margin: 0 auto;\n  }\n\n  \/* Header *\/\n  .tool-header {\n    background: var(--primary);\n    color: var(--white);\n    padding: 32px 40px;\n    border-radius: 0;\n    margin-bottom: 0;\n    border-bottom: 4px solid var(--accent);\n  }\n\n  .header-eyebrow {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11px;\n    font-weight: 600;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n    color: var(--accent);\n    margin-bottom: 10px;\n  }\n\n  .tool-header h1 {\n    font-family: 'IBM Plex Sans', sans-serif;\n    font-size: 26px;\n    font-weight: 700;\n    line-height: 1.25;\n    margin-bottom: 10px;\n    color: var(--white);\n  }\n\n  .tool-header p {\n    font-size: 14px;\n    color: rgba(255,255,255,0.75);\n    max-width: 560px;\n  }\n\n  \/* BBP badge *\/\n  .bbp-badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    background: rgba(255,255,255,0.12);\n    border: 1px solid rgba(255,255,255,0.20);\n    padding: 6px 14px;\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11px;\n    font-weight: 700;\n    letter-spacing: 0.08em;\n    color: var(--accent);\n    margin-bottom: 18px;\n  }\n\n  .bbp-badge::before {\n    content: '';\n    display: inline-block;\n    width: 8px;\n    height: 8px;\n    background: var(--accent);\n  }\n\n  \/* Form section *\/\n  .form-card {\n    background: var(--white);\n    border: var(--border);\n    border-top: none;\n    padding: 36px 40px;\n    box-shadow: var(--shadow);\n  }\n\n  .form-section-title {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11px;\n    font-weight: 700;\n    letter-spacing: 0.10em;\n    text-transform: uppercase;\n    color: var(--primary);\n    border-bottom: 2px solid var(--accent);\n    padding-bottom: 8px;\n    margin-bottom: 28px;\n    display: inline-block;\n  }\n\n  .form-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 24px 32px;\n  }\n\n  .form-group {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n  }\n\n  .form-group.full-width {\n    grid-column: 1 \/ -1;\n  }\n\n  label {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11px;\n    font-weight: 600;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    color: var(--gray-700);\n  }\n\n  label span.unit {\n    font-weight: 400;\n    color: var(--gray-500);\n    text-transform: none;\n    letter-spacing: 0;\n  }\n\n  input[type=\"number\"],\n  select {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 15px;\n    font-weight: 500;\n    color: var(--gray-900);\n    background: var(--gray-50);\n    border: 1.5px solid var(--gray-200);\n    border-radius: 0;\n    padding: 11px 14px;\n    width: 100%;\n    appearance: none;\n    -webkit-appearance: none;\n    outline: none;\n    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;\n  }\n\n  input[type=\"number\"]:focus,\n  select:focus {\n    border-color: var(--primary);\n    background: var(--white);\n    box-shadow: 0 0 0 3px rgba(24, 72, 192, 0.10);\n  }\n\n  input[type=\"number\"]::placeholder {\n    color: var(--gray-300);\n  }\n\n  .select-wrapper {\n    position: relative;\n  }\n\n  .select-wrapper::after {\n    content: '\u25be';\n    position: absolute;\n    right: 14px;\n    top: 50%;\n    transform: translateY(-50%);\n    color: var(--primary);\n    font-size: 14px;\n    pointer-events: none;\n  }\n\n  \/* Radio group for material *\/\n  .radio-group {\n    display: flex;\n    gap: 0;\n    border: 1.5px solid var(--gray-200);\n  }\n\n  .radio-option {\n    flex: 1;\n    position: relative;\n  }\n\n  .radio-option input[type=\"radio\"] {\n    position: absolute;\n    opacity: 0;\n    width: 0;\n    height: 0;\n  }\n\n  .radio-option label {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    padding: 11px 14px;\n    cursor: pointer;\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 12px;\n    font-weight: 600;\n    letter-spacing: 0.05em;\n    text-transform: uppercase;\n    color: var(--gray-500);\n    background: var(--gray-50);\n    border-right: 1.5px solid var(--gray-200);\n    transition: all 0.15s;\n    width: 100%;\n  }\n\n  .radio-option:last-child label {\n    border-right: none;\n  }\n\n  .radio-option input[type=\"radio\"]:checked + label {\n    background: var(--primary);\n    color: var(--white);\n  }\n\n  .radio-option label:hover {\n    background: var(--gray-100);\n    color: var(--primary);\n  }\n\n  .radio-option input[type=\"radio\"]:checked + label:hover {\n    background: var(--primary-light);\n    color: var(--white);\n  }\n\n  \/* Submit button *\/\n  .btn-submit {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 10px;\n    width: 100%;\n    padding: 16px 32px;\n    background: var(--primary);\n    color: var(--white);\n    border: none;\n    border-radius: 0;\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 14px;\n    font-weight: 700;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    cursor: pointer;\n    margin-top: 32px;\n    transition: background 0.15s, transform 0.1s;\n    border-bottom: 3px solid var(--primary-dark);\n  }\n\n  .btn-submit:hover {\n    background: var(--primary-light);\n    transform: translateY(-1px);\n  }\n\n  .btn-submit:active {\n    transform: translateY(0);\n    background: var(--primary-dark);\n  }\n\n  .btn-submit svg {\n    width: 18px;\n    height: 18px;\n    flex-shrink: 0;\n  }\n\n  \/* Results section *\/\n  .results-section {\n    margin-top: 24px;\n    display: none;\n  }\n\n  .results-section.visible {\n    display: block;\n  }\n\n  .result-card {\n    background: var(--white);\n    border: 1.5px solid var(--primary);\n    border-top: 4px solid var(--primary);\n    box-shadow: var(--shadow-lg);\n  }\n\n  .result-header {\n    background: var(--primary);\n    padding: 20px 32px;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    flex-wrap: wrap;\n    gap: 12px;\n  }\n\n  .result-header-left h2 {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 13px;\n    font-weight: 700;\n    letter-spacing: 0.10em;\n    text-transform: uppercase;\n    color: var(--accent);\n    margin-bottom: 4px;\n  }\n\n  .result-model {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 28px;\n    font-weight: 700;\n    color: var(--white);\n    line-height: 1;\n  }\n\n  .result-tier-badge {\n    background: var(--accent);\n    color: var(--primary-dark);\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11px;\n    font-weight: 700;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    padding: 5px 12px;\n    align-self: flex-start;\n  }\n\n  .result-body {\n    padding: 28px 32px;\n  }\n\n  .spec-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 1px;\n    background: var(--gray-200);\n    border: 1px solid var(--gray-200);\n    margin-bottom: 28px;\n  }\n\n  .spec-item {\n    background: var(--white);\n    padding: 18px 20px;\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n  }\n\n  .spec-label {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 10px;\n    font-weight: 700;\n    letter-spacing: 0.10em;\n    text-transform: uppercase;\n    color: var(--gray-500);\n  }\n\n  .spec-value {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 18px;\n    font-weight: 700;\n    color: var(--primary);\n    line-height: 1.2;\n  }\n\n  .spec-sub {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 10px;\n    color: var(--gray-500);\n    margin-top: 2px;\n  }\n\n  \/* Recommendations *\/\n  .recommendations {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    margin-bottom: 28px;\n  }\n\n  .rec-item {\n    display: flex;\n    gap: 14px;\n    align-items: flex-start;\n    padding: 14px 16px;\n    background: var(--gray-50);\n    border-left: 3px solid var(--primary);\n  }\n\n  .rec-icon {\n    width: 32px;\n    height: 32px;\n    background: var(--primary);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n  }\n\n  .rec-icon svg {\n    width: 16px;\n    height: 16px;\n    fill: var(--white);\n  }\n\n  .rec-content {\n    flex: 1;\n  }\n\n  .rec-label {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 10px;\n    font-weight: 700;\n    letter-spacing: 0.10em;\n    text-transform: uppercase;\n    color: var(--gray-500);\n    margin-bottom: 3px;\n  }\n\n  .rec-value {\n    font-family: 'IBM Plex Sans', sans-serif;\n    font-size: 14px;\n    font-weight: 600;\n    color: var(--gray-900);\n    line-height: 1.4;\n  }\n\n  .rec-note {\n    font-size: 12px;\n    color: var(--gray-500);\n    margin-top: 2px;\n    font-weight: 400;\n  }\n\n  \/* Input summary *\/\n  .input-summary {\n    background: var(--gray-100);\n    border: 1px solid var(--gray-200);\n    padding: 14px 18px;\n    margin-bottom: 20px;\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px 24px;\n  }\n\n  .summary-chip {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11px;\n    color: var(--gray-700);\n  }\n\n  .summary-chip strong {\n    color: var(--primary);\n    font-weight: 700;\n  }\n\n  \/* CTA button *\/\n  .btn-cta {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 10px;\n    width: 100%;\n    padding: 18px 32px;\n    background: var(--accent);\n    color: var(--primary-dark);\n    text-decoration: none;\n    border: none;\n    border-radius: 0;\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 14px;\n    font-weight: 700;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    cursor: pointer;\n    transition: background 0.15s, transform 0.1s;\n    border-bottom: 3px solid var(--accent-dark);\n  }\n\n  .btn-cta:hover {\n    background: #f5cc30;\n    transform: translateY(-1px);\n  }\n\n  .btn-cta:active {\n    transform: translateY(0);\n  }\n\n  .btn-cta svg {\n    width: 18px;\n    height: 18px;\n    flex-shrink: 0;\n  }\n\n  \/* Engineer note section *\/\n  .engineer-note {\n    background: var(--white);\n    border: var(--border);\n    border-top: 3px solid var(--gray-200);\n    padding: 28px 40px;\n    margin-top: 24px;\n    box-shadow: var(--shadow);\n  }\n\n  .engineer-note-title {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 12px;\n    font-weight: 700;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    color: var(--primary);\n    margin-bottom: 14px;\n  }\n\n  .engineer-note-title::before {\n    content: '';\n    display: inline-block;\n    width: 20px;\n    height: 3px;\n    background: var(--accent);\n    flex-shrink: 0;\n  }\n\n  .engineer-note p {\n    font-size: 14px;\n    color: var(--gray-700);\n    line-height: 1.7;\n  }\n\n  .engineer-note p + p {\n    margin-top: 10px;\n  }\n\n  \/* Error state *\/\n  .field-error {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11px;\n    color: #dc2626;\n    margin-top: 4px;\n    display: none;\n  }\n\n  .input-error {\n    border-color: #dc2626 !important;\n    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.10) !important;\n  }\n\n  \/* Warning banner *\/\n  .warning-banner {\n    display: none;\n    align-items: flex-start;\n    gap: 12px;\n    background: #fffbeb;\n    border: 1.5px solid #f59e0b;\n    border-left: 4px solid #f59e0b;\n    padding: 14px 18px;\n    margin-top: 16px;\n    font-size: 13px;\n    color: #92400e;\n    line-height: 1.5;\n  }\n\n  .warning-banner.visible {\n    display: flex;\n  }\n\n  .warning-banner svg {\n    width: 18px;\n    height: 18px;\n    fill: #f59e0b;\n    flex-shrink: 0;\n    margin-top: 1px;\n  }\n\n  \/* Footer strip *\/\n  .footer-strip {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 14px 32px;\n    background: var(--primary-dark);\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  .footer-strip span {\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11px;\n    color: rgba(255,255,255,0.50);\n  }\n\n  .footer-strip .brand {\n    color: var(--accent);\n    font-weight: 700;\n    font-size: 12px;\n  }\n\n  \/* Divider *\/\n  .divider {\n    height: 1px;\n    background: var(--gray-200);\n    margin: 28px 0;\n  }\n\n  \/* Responsive *\/\n  @media (max-width: 600px) {\n    body {\n      padding: 16px 12px 48px;\n    }\n    .tool-header {\n      padding: 24px 20px;\n    }\n    .form-card {\n      padding: 24px 20px;\n    }\n    .form-grid {\n      grid-template-columns: 1fr;\n    }\n    .form-group.full-width {\n      grid-column: 1;\n    }\n    .spec-grid {\n      grid-template-columns: 1fr 1fr;\n    }\n    .result-body {\n      padding: 20px 20px;\n    }\n    .result-header {\n      padding: 16px 20px;\n    }\n    .engineer-note {\n      padding: 20px 20px;\n    }\n    .footer-strip {\n      padding: 12px 20px;\n    }\n  }\n\n  @media (max-width: 400px) {\n    .spec-grid {\n      grid-template-columns: 1fr;\n    }\n  }\n<\/style>\n<\/head>\n<body>\n\n<div class=\"container\">\n\n  <!-- Header -->\n  <div class=\"tool-header\">\n    <div class=\"bbp-badge\">BBP Engineering Tool<\/div>\n    <h1>Submersible Sewage Pump<br>Selection Tool<\/h1>\n    <p>Enter your application parameters below to receive an ASW model recommendation, power estimate, and installation guidance based on BBP engineering specifications.<\/p>\n  <\/div>\n\n  <!-- Form -->\n  <div class=\"form-card\">\n    <div class=\"form-section-title\">Application Parameters<\/div>\n\n    <div class=\"form-grid\">\n\n      <!-- Application type -->\n      <div class=\"form-group full-width\">\n        <label for=\"app-type\">Application Type<\/label>\n        <div class=\"select-wrapper\">\n          <select id=\"app-type\">\n            <option value=\"\">\u2014 Select application type \u2014<\/option>\n            <option value=\"municipal\">Municipal Sewage Station<\/option>\n            <option value=\"industrial\">Industrial Wastewater<\/option>\n            <option value=\"building\">Building Drainage<\/option>\n            <option value=\"construction\">Construction Dewatering<\/option>\n            <option value=\"mining\">Mining \/ Heavy Industry<\/option>\n          <\/select>\n        <\/div>\n        <span class=\"field-error\" id=\"err-app-type\">Please select an application type.<\/span>\n      <\/div>\n\n      <!-- Flow rate -->\n      <div class=\"form-group\">\n        <label for=\"flow-rate\">Required Flow Rate <span class=\"unit\">(m\u00b3\/h)<\/span><\/label>\n        <input type=\"number\" id=\"flow-rate\" min=\"1\" max=\"10000\" step=\"1\" placeholder=\"e.g. 450\">\n        <span class=\"field-error\" id=\"err-flow-rate\">Enter a valid flow rate (1 \u2013 10,000 m\u00b3\/h).<\/span>\n      <\/div>\n\n      <!-- Total head -->\n      <div class=\"form-group\">\n        <label for=\"total-head\">Total Dynamic Head <span class=\"unit\">(m)<\/span><\/label>\n        <input type=\"number\" id=\"total-head\" min=\"1\" max=\"200\" step=\"0.5\" placeholder=\"e.g. 18\">\n        <span class=\"field-error\" id=\"err-total-head\">Enter a valid head value (1 \u2013 200 m).<\/span>\n      <\/div>\n\n      <!-- Solid size -->\n      <div class=\"form-group\">\n        <label for=\"solid-size\">Solid Particle Size<\/label>\n        <div class=\"select-wrapper\">\n          <select id=\"solid-size\">\n            <option value=\"\">\u2014 Select solid size \u2014<\/option>\n            <option value=\"lt20\">Less than 20 mm<\/option>\n            <option value=\"20-40\">20 \u2013 40 mm<\/option>\n            <option value=\"40-60\">40 \u2013 60 mm<\/option>\n            <option value=\"60-80\">60 \u2013 80 mm<\/option>\n          <\/select>\n        <\/div>\n        <span class=\"field-error\" id=\"err-solid-size\">Please select solid particle size.<\/span>\n      <\/div>\n\n      <!-- Material -->\n      <div class=\"form-group\">\n        <label>Material Preference<\/label>\n        <div class=\"radio-group\">\n          <div class=\"radio-option\">\n            <input type=\"radio\" id=\"mat-cast-iron\" name=\"material\" value=\"cast-iron\" checked>\n            <label for=\"mat-cast-iron\">Cast Iron<\/label>\n          <\/div>\n          <div class=\"radio-option\">\n            <input type=\"radio\" id=\"mat-stainless\" name=\"material\" value=\"stainless\">\n            <label for=\"mat-stainless\">Stainless Steel<\/label>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div><!-- \/form-grid -->\n\n    <!-- Warning -->\n    <div class=\"warning-banner\" id=\"warn-banner\">\n      <svg viewBox=\"0 0 20 20\"><path d=\"M10 2a8 8 0 100 16A8 8 0 0010 2zm0 3a1 1 0 011 1v4a1 1 0 11-2 0V6a1 1 0 011-1zm0 8a1 1 0 100 2 1 1 0 000-2z\"\/><\/svg>\n      <span id=\"warn-text\"><\/span>\n    <\/div>\n\n    <button class=\"btn-submit\" onclick=\"runSelector()\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\n      Find Your Pump\n    <\/button>\n\n  <\/div><!-- \/form-card -->\n\n  <!-- Results -->\n  <div class=\"results-section\" id=\"results-section\">\n    <div class=\"result-card\">\n\n      <div class=\"result-header\">\n        <div class=\"result-header-left\">\n          <h2>Recommended Model Range<\/h2>\n          <div class=\"result-model\" id=\"res-model\">\u2014<\/div>\n        <\/div>\n        <div class=\"result-tier-badge\" id=\"res-tier\">\u2014<\/div>\n      <\/div>\n\n      <div class=\"result-body\">\n\n        <!-- Input summary -->\n        <div class=\"input-summary\" id=\"res-summary\"><\/div>\n\n        <!-- Spec grid -->\n        <div class=\"spec-grid\">\n          <div class=\"spec-item\">\n            <span class=\"spec-label\">Power Range<\/span>\n            <span class=\"spec-value\" id=\"res-power\">\u2014<\/span>\n            <span class=\"spec-sub\">Motor Output (kW)<\/span>\n          <\/div>\n          <div class=\"spec-item\">\n            <span class=\"spec-label\">Impeller Type<\/span>\n            <span class=\"spec-value\" id=\"res-impeller\" style=\"font-size:15px; padding-top:4px;\">\u2014<\/span>\n            <span class=\"spec-sub\" id=\"res-impeller-sub\"><\/span>\n          <\/div>\n          <div class=\"spec-item\">\n            <span class=\"spec-label\">Installation Method<\/span>\n            <span class=\"spec-value\" id=\"res-install\" style=\"font-size:14px; padding-top:4px;\">\u2014<\/span>\n            <span class=\"spec-sub\" id=\"res-install-sub\"><\/span>\n          <\/div>\n        <\/div>\n\n        <!-- Detail recommendations -->\n        <div class=\"recommendations\" id=\"res-recommendations\"><\/div>\n\n        <div class=\"divider\"><\/div>\n\n        <!-- CTA -->\n        <a href=\"#ct-popup-820\" class=\"btn-cta\" onclick=\"handleCTAClick(event)\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 9.81 19.79 19.79 0 01.01 1.18 2 2 0 012 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.91 7.91a16 16 0 006.18 6.18l1.28-1.28a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z\"\/><\/svg>\n          Request a Quote for This Configuration\n        <\/a>\n\n      <\/div><!-- \/result-body -->\n\n      <!-- Footer strip -->\n      <div class=\"footer-strip\">\n        <span class=\"brand\">Beijing Beibangpu Co., Ltd. (BBP)<\/span>\n        <span>ASW Series \u2014 Industrial-Grade Submersible Pumps<\/span>\n      <\/div>\n\n    <\/div><!-- \/result-card -->\n  <\/div><!-- \/results-section -->\n\n  <!-- Engineer note -->\n  <div class=\"engineer-note\" id=\"engineer-note\">\n    <div class=\"engineer-note-title\">BBP Engineering Confirmation<\/div>\n    <p>This tool provides a preliminary model range recommendation based on your stated operating parameters. BBP application engineers will verify the selection against your full system curve, including static head, friction losses, pipe diameter, and any derating factors for slurry content or variable-speed operation.<\/p>\n    <p>For construction dewatering and mining applications, site altitude and ambient temperature corrections are applied before finalizing motor power. All ASW Series pumps ship with a factory performance test certificate aligned to ISO 9906 Grade 2 acceptance criteria.<\/p>\n    <p>Submit your parameters using the quote request above and a BBP application specialist will respond within one business day with a confirmed model code, duty-point curve plot, and indicative lead time.<\/p>\n  <\/div>\n\n<\/div><!-- \/container -->\n\n<script>\n  \/\/ \u2500\u2500 Lookup tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  const TIERS = [\n    {\n      id: 'small',\n      label: 'Small Tier',\n      maxFlow: 100,\n      models: '50ASW Series',\n      powerRange: '0.75 \u2013 7.5',\n      speedNote: 'Single-phase or 3-phase, 2-4 pole'\n    },\n    {\n      id: 'medium',\n      label: 'Medium Tier',\n      maxFlow: 1000,\n      models: '100 \u2013 200ASW Series',\n      powerRange: '10 \u2013 55',\n      speedNote: '3-phase, 4-6 pole, optional VFD-ready'\n    },\n    {\n      id: 'large',\n      label: 'Large Tier',\n      maxFlow: Infinity,\n      models: '250 \u2013 600ASW Series',\n      powerRange: '75 \u2013 315',\n      speedNote: '3-phase, 4-6 pole, VFD-ready, bearing frame options'\n    }\n  ];\n\n  const IMPELLER_RULES = {\n    lt20: {\n      type: 'Closed Non-Clog',\n      sub: 'Channel impeller; optimal hydraulic efficiency for fine solids'\n    },\n    '20-40': {\n      type: 'Closed Non-Clog',\n      sub: 'Wide-channel semi-open for fibrous content \u226440 mm'\n    },\n    '40-60': {\n      type: 'Vortex \/ Non-Clog',\n      sub: 'Vortex preferred for fibrous\/stringy media; non-clog for primarily solid chunks'\n    },\n    '60-80': {\n      type: 'Vortex (Recessed)',\n      sub: 'Recessed vortex; zero contact between impeller and large solids'\n    }\n  };\n\n  const INSTALL_RULES = {\n    municipal: {\n      method: 'Auto-Coupled (Wet-Pit)',\n      sub: 'Guide rail + auto-coupling bracket system; no manual lifting required for servicing',\n      icon: 'install'\n    },\n    industrial: {\n      method: 'Auto-Coupled or Fixed Wet',\n      sub: 'Depends on pit geometry; auto-coupling preferred for units \u226522 kW',\n      icon: 'install'\n    },\n    building: {\n      method: 'Fixed Wet Installation',\n      sub: 'Concrete or galvanised-steel wet-well; discharge elbow fixed to wall',\n      icon: 'install'\n    },\n    construction: {\n      method: 'Portable \u2014 Soft Discharge Hose',\n      sub: 'Surface-laid flexible hose; pump suspended on lifting chain; easily relocated',\n      icon: 'install'\n    },\n    mining: {\n      method: 'Portable or Fixed Wet',\n      sub: 'Heavy-duty lifting frame; stainless-steel shaft sleeve for abrasive water',\n      icon: 'install'\n    }\n  };\n\n  const APP_LABELS = {\n    municipal: 'Municipal Sewage Station',\n    industrial: 'Industrial Wastewater',\n    building: 'Building Drainage',\n    construction: 'Construction Dewatering',\n    mining: 'Mining \/ Heavy Industry'\n  };\n\n  const SOLID_LABELS = {\n    lt20: '< 20 mm',\n    '20-40': '20 \u2013 40 mm',\n    '40-60': '40 \u2013 60 mm',\n    '60-80': '60 \u2013 80 mm'\n  };\n\n  \/\/ \u2500\u2500 Power estimation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  \/\/ P(kW) = \u03c1 \u00b7 g \u00b7 Q \u00b7 H \/ (\u03b7_pump \u00b7 \u03b7_motor \u00b7 3600)\n  \/\/ \u03c1 = 1050 kg\/m\u00b3 (sewage), \u03b7_pump = 0.68, \u03b7_motor = 0.92\n  function estimatePower(flow_m3h, head_m) {\n    const rho = 1050;\n    const g = 9.81;\n    const eta = 0.68 * 0.92;\n    const kw = (rho * g * flow_m3h * head_m) \/ (eta * 3600);\n    return kw;\n  }\n\n  \/\/ Round up to nearest standard motor size\n  const STANDARD_SIZES = [0.75, 1.1, 1.5, 2.2, 3, 4, 5.5, 7.5, 11, 15, 18.5, 22, 30, 37, 45, 55, 75, 90, 110, 132, 160, 200, 250, 315];\n  function roundToStandard(kw) {\n    for (let s of STANDARD_SIZES) {\n      if (s >= kw * 1.10) return s; \/\/ 10% service factor\n    }\n    return Math.ceil(kw * 1.15 \/ 5) * 5;\n  }\n\n  \/\/ \u2500\u2500 Validation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function clearErrors() {\n    document.querySelectorAll('.field-error').forEach(el => el.style.display = 'none');\n    document.querySelectorAll('.input-error').forEach(el => el.classList.remove('input-error'));\n    document.getElementById('warn-banner').classList.remove('visible');\n  }\n\n  function showError(fieldId, errId) {\n    const field = document.getElementById(fieldId);\n    const err = document.getElementById(errId);\n    field.classList.add('input-error');\n    err.style.display = 'block';\n    return false;\n  }\n\n  function validate(appType, flow, head, solidSize) {\n    let valid = true;\n    if (!appType) { showError('app-type', 'err-app-type'); valid = false; }\n    if (!flow || isNaN(flow) || flow < 1 || flow > 10000) { showError('flow-rate', 'err-flow-rate'); valid = false; }\n    if (!head || isNaN(head) || head < 1 || head > 200) { showError('total-head', 'err-total-head'); valid = false; }\n    if (!solidSize) { showError('solid-size', 'err-solid-size'); valid = false; }\n    return valid;\n  }\n\n  \/\/ \u2500\u2500 Icon SVGs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  const ICONS = {\n    power: '<svg viewBox=\"0 0 24 24\"><path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"\/><\/svg>',\n    impeller: '<svg viewBox=\"0 0 24 24\"><path d=\"M12 2a10 10 0 100 20A10 10 0 0012 2zm0 4a6 6 0 110 12A6 6 0 0112 6zm0 2a4 4 0 100 8 4 4 0 000-8z\"\/><\/svg>',\n    install: '<svg viewBox=\"0 0 24 24\"><path d=\"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z\"\/><polyline points=\"9 22 9 12 15 12 15 22\"\/><\/svg>',\n    material: '<svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"\/><\/svg>',\n    spec: '<svg viewBox=\"0 0 24 24\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><\/svg>',\n    warning: '<svg viewBox=\"0 0 24 24\"><path d=\"M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg>'\n  };\n\n  function recItem(iconKey, label, value, note) {\n    return `\n      <div class=\"rec-item\">\n        <div class=\"rec-icon\">${ICONS[iconKey]}<\/div>\n        <div class=\"rec-content\">\n          <div class=\"rec-label\">${label}<\/div>\n          <div class=\"rec-value\">${value}<\/div>\n          ${note ? `<div class=\"rec-note\">${note}<\/div>` : ''}\n        <\/div>\n      <\/div>`;\n  }\n\n  \/\/ \u2500\u2500 Main selector logic \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function runSelector() {\n    clearErrors();\n\n    const appType   = document.getElementById('app-type').value;\n    const flow      = parseFloat(document.getElementById('flow-rate').value);\n    const head      = parseFloat(document.getElementById('total-head').value);\n    const solidSize = document.getElementById('solid-size').value;\n    const material  = document.querySelector('input[name=\"material\"]:checked').value;\n\n    if (!validate(appType, flow, head, solidSize)) return;\n\n    \/\/ Warnings (non-blocking)\n    const warnings = [];\n    if (flow > 3000) warnings.push('Very high flow rate (>3,000 m\u00b3\/h): custom hydraulic design may be required. BBP engineers will confirm availability.');\n    if (head > 60) warnings.push('Total dynamic head >60 m: multi-stage configuration or high-speed motor may be recommended.');\n    if (solidSize === '60-80' && appType === 'building') warnings.push('Solids >60 mm are uncommon in building drainage. Please confirm your solid particle data.');\n\n    if (warnings.length > 0) {\n      document.getElementById('warn-text').innerHTML = warnings.join('<br>');\n      document.getElementById('warn-banner').classList.add('visible');\n    }\n\n    \/\/ Tier selection\n    const tier = TIERS.find(t => flow <= t.maxFlow);\n\n    \/\/ Power\n    const rawKw  = estimatePower(flow, head);\n    const nomKw  = roundToStandard(rawKw);\n    const powerDisplay = nomKw <= 7.5\n      ? `${nomKw} kW`\n      : `${Math.floor(nomKw * 0.75)} \u2013 ${nomKw} kW`;\n\n    \/\/ Impeller\n    const impellerInfo = IMPELLER_RULES[solidSize];\n\n    \/\/ Installation\n    const installInfo = INSTALL_RULES[appType];\n\n    \/\/ Material note\n    const matNote = material === 'stainless'\n      ? 'Stainless Steel (SS316L) \u2014 specify SS316L for corrosive or food-grade wastewater; +15\u201325% vs cast iron'\n      : 'Cast Iron (HT250) \u2014 standard specification; suitable for municipal and general industrial service';\n\n    \/\/ Additional spec notes\n    let extraNotes = [];\n    if (appType === 'mining' || appType === 'industrial') {\n      extraNotes.push('Mechanical seal: double-face silicon carbide (SiC\/SiC) recommended for abrasive media');\n    }\n    if (flow > 1000) {\n      extraNotes.push('At this flow scale, site-specific hydraulic modelling (system curve overlay) is included with BBP quotation');\n    }\n    if (solidSize === '40-60' || solidSize === '60-80') {\n      extraNotes.push('Cutter ring or grinder option available for high-fibrous waste streams upon request');\n    }\n    if (appType === 'construction') {\n      extraNotes.push('Float switch + overload relay protection standard for construction dewatering duty');\n    }\n\n    \/\/ Build DOM\n    document.getElementById('res-model').textContent = tier.models;\n    document.getElementById('res-tier').textContent  = tier.label;\n    document.getElementById('res-power').textContent = tier.powerRange + ' kW';\n    document.getElementById('res-impeller').textContent = impellerInfo.type;\n    document.getElementById('res-impeller-sub').textContent = '';\n    document.getElementById('res-install').textContent = installInfo.method;\n    document.getElementById('res-install-sub').textContent = '';\n\n    \/\/ Summary chips\n    document.getElementById('res-summary').innerHTML = `\n      <span class=\"summary-chip\">App: <strong>${APP_LABELS[appType]}<\/strong><\/span>\n      <span class=\"summary-chip\">Flow: <strong>${flow} m\u00b3\/h<\/strong><\/span>\n      <span class=\"summary-chip\">Head: <strong>${head} m<\/strong><\/span>\n      <span class=\"summary-chip\">Solids: <strong>${SOLID_LABELS[solidSize]}<\/strong><\/span>\n      <span class=\"summary-chip\">Material: <strong>${material === 'stainless' ? 'SS316L' : 'Cast Iron HT250'}<\/strong><\/span>\n    `;\n\n    \/\/ Recommendation items\n    let recsHtml = '';\n    recsHtml += recItem('power',    'Calculated Duty Power',    `\u2248 ${rawKw.toFixed(1)} kW raw \u2192 Nominal motor: <strong>${nomKw} kW<\/strong>`, `${tier.speedNote}. Design includes 10% service factor.`);\n    recsHtml += recItem('impeller', 'Impeller Selection',       impellerInfo.type, impellerInfo.sub);\n    recsHtml += recItem('install',  'Installation Configuration', installInfo.method, installInfo.sub);\n    recsHtml += recItem('material', 'Construction Material',    material === 'stainless' ? 'Stainless Steel \u2014 SS316L' : 'Cast Iron \u2014 HT250 Grey Iron', matNote);\n\n    if (extraNotes.length > 0) {\n      recsHtml += recItem('spec', 'Additional Engineering Notes', extraNotes[0], extraNotes.slice(1).join('<br>'));\n    }\n\n    document.getElementById('res-recommendations').innerHTML = recsHtml;\n\n    \/\/ Show results\n    const resultsEl = document.getElementById('results-section');\n    resultsEl.classList.add('visible');\n\n    \/\/ Smooth scroll\n    setTimeout(() => {\n      resultsEl.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    }, 80);\n  }\n\n  \/\/ \u2500\u2500 CTA handler \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function handleCTAClick(e) {\n    \/\/ Attempt to trigger the #ct-popup-820 anchor \/ popup system\n    const popup = document.getElementById('ct-popup-820');\n    if (popup) {\n      e.preventDefault();\n      \/\/ If it's a hidden element with a click trigger\n      if (typeof popup.click === 'function') popup.click();\n    }\n    \/\/ If no popup found in DOM, allow default anchor navigation to #ct-popup-820\n  }\n<\/script>\n\n<\/body>\n<\/html>\n\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>BBP Submersible Sewage Pump Selection Tool BBP Engineering Tool Submersible Sewage PumpSelection Tool Enter your application parameters below to receive an ASW model recommendation, power estimate, and installation guidance based on BBP engineering specifications. Application Parameters Application Type \u2014 Select application type \u2014Municipal Sewage StationIndustrial WastewaterBuilding DrainageConstruction DewateringMining \/ Heavy Industry Please select an application [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":1008,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-2620","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/bbpmfg.com\/ar\/wp-json\/wp\/v2\/pages\/2620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bbpmfg.com\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bbpmfg.com\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bbpmfg.com\/ar\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/bbpmfg.com\/ar\/wp-json\/wp\/v2\/comments?post=2620"}],"version-history":[{"count":0,"href":"https:\/\/bbpmfg.com\/ar\/wp-json\/wp\/v2\/pages\/2620\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/bbpmfg.com\/ar\/wp-json\/wp\/v2\/pages\/1008"}],"wp:attachment":[{"href":"https:\/\/bbpmfg.com\/ar\/wp-json\/wp\/v2\/media?parent=2620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}