{"id":4217,"date":"2026-04-28T08:46:27","date_gmt":"2026-04-28T08:46:27","guid":{"rendered":"https:\/\/bbpmfg.com\/?page_id=4217"},"modified":"2026-04-28T08:54:03","modified_gmt":"2026-04-28T08:54:03","slug":"water-chemistry-grade-sub-series-selector-bbp-asj-deep-well-pump","status":"publish","type":"page","link":"https:\/\/bbpmfg.com\/pt\/deep-well-pumps\/stainless-steel-deep-well-pump\/water-chemistry-grade-sub-series-selector-bbp-asj-deep-well-pump\/","title":{"rendered":"Classe de Qu\u00edmica da \u00c1gua Seletor da S\u00e9rie &amp; Bomba de Po\u00e7o Profundo BBP ASJ"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-9ddae20\" data-block-id=\"9ddae20\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-9ddae20-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-9ae1057\" data-v=\"4\" data-block-id=\"9ae1057\"><style>.stk-9ae1057-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-9ae1057-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-9ae1057-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-9af4b92\" data-block-id=\"9af4b92\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-9af4b92-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-5be79c3\" data-v=\"4\" data-block-id=\"5be79c3\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-5be79c3-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-5be79c3-inner-blocks\">\n<section id=\"bx-grade-sel-v1\">\n    <style>\n        \/* ==========================================================\n           1. Fonts & Highest Level Scope Variables\n           ========================================================== *\/\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;600&display=swap');\n\n        #bx-grade-sel-v1 {\n            --bbp-primary: #1848C0 !important;\n            --bbp-primary-hover: #123690 !important;\n            --bbp-accent: #F0C018 !important;\n            --bbp-bg-section: #F8FAFC !important;\n            --bbp-bg-card: #ffffff !important;\n            --bbp-border: #D4DCF0 !important;\n            --bbp-text-main: #1a1a2e !important;\n            --bbp-text-muted: #445577 !important;\n            --bbp-text-hint: #8A9BB8 !important;\n            \n            --status-green: #16A56A !important;\n            --status-amber: #D97706 !important;\n            --status-red: #C93B3B !important;\n            \n            --font-main: 'Inter', sans-serif !important;\n            --font-mono: 'IBM Plex Mono', 'Courier New', monospace !important;\n            \n            width: 100% !important;\n            background-color: var(--bbp-bg-section) !important;\n            padding: 70px 0 !important;\n            font-family: var(--font-main) !important;\n            box-sizing: border-box !important;\n            color: var(--bbp-text-main) !important;\n            line-height: 1.6 !important;\n        }\n\n        #bx-grade-sel-v1 *,\n        #bx-grade-sel-v1 *::before,\n        #bx-grade-sel-v1 *::after {\n            box-sizing: inherit !important;\n        }\n\n        \/* ==========================================================\n           2. Layout & Anchored Content Container\n           ========================================================== *\/\n        #bx-grade-sel-v1 .b2b-container {\n            max-width: 1600px !important;\n            margin: 0 auto !important;\n            padding: 0 30px !important;\n            width: 100% !important;\n        }\n\n        #bx-grade-sel-v1 .calculator-wrapper {\n            background-color: var(--bbp-bg-card) !important;\n            box-shadow: 0 15px 40px rgba(24, 72, 192, 0.05) !important;\n            border: 1px solid var(--bbp-border) !important;\n            border-top: 4px solid var(--bbp-primary) !important;\n        }\n\n        \/* ==========================================================\n           3. Typography (Semantic SEO Tags per User Guidelines)\n           ========================================================== *\/\n        #bx-grade-sel-v1 .module-h2 {\n            font-size: 32px !important;\n            font-weight: 700 !important;\n            color: var(--bbp-accent) !important; \/* Gold text on dark background *\/\n            margin: 0 0 10px 0 !important;\n            text-transform: uppercase !important;\n            letter-spacing: 0.5px !important;\n            line-height: 1.2 !important;\n        }\n\n        #bx-grade-sel-v1 .module-h3 {\n            font-size: 20px !important;\n            font-weight: 700 !important;\n            margin: 0 0 8px 0 !important;\n            line-height: 1.2 !important;\n        }\n\n        #bx-grade-sel-v1 .module-h4 {\n            font-size: 16px !important;\n            font-weight: 700 !important;\n            margin: 0 0 5px 0 !important;\n        }\n\n        \/* ==========================================================\n           4. Header & Input Form Area\n           ========================================================== *\/\n        #bx-grade-sel-v1 .gs-header {\n            background: var(--bbp-primary) !important;\n            color: #ffffff !important;\n            padding: 40px !important;\n        }\n\n        #bx-grade-sel-v1 .gs-header p {\n            color: rgba(255, 255, 255, 0.85) !important;\n            margin: 0 !important;\n            font-size: 16px !important;\n        }\n\n        #bx-grade-sel-v1 .gs-body {\n            padding: 40px !important;\n            background: var(--bbp-bg-card) !important;\n        }\n\n        \/* Responsive Grid: Prevents massive white spaces *\/\n        #bx-grade-sel-v1 .param-grid {\n            display: grid !important;\n            grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;\n            gap: 30px !important;\n            margin-bottom: 30px !important;\n        }\n\n        #bx-grade-sel-v1 .param-group {\n            background: #fcfcfd !important;\n            border: 1px solid var(--bbp-border) !important;\n            padding: 20px !important;\n            transition: border-color 0.3s ease !important;\n        }\n\n        #bx-grade-sel-v1 .param-group:hover {\n            border-color: var(--bbp-primary) !important;\n        }\n\n        #bx-grade-sel-v1 .param-group label {\n            display: block !important;\n            font-size: 13px !important;\n            font-weight: 700 !important;\n            text-transform: uppercase !important;\n            letter-spacing: 0.5px !important;\n            color: var(--bbp-text-main) !important;\n            margin-bottom: 12px !important;\n        }\n\n        \/* Number Inputs *\/\n        #bx-grade-sel-v1 .param-group input[type=\"number\"] {\n            width: 100% !important;\n            height: 48px !important;\n            padding: 0 15px !important;\n            border: 1px solid var(--bbp-border) !important;\n            background: #ffffff !important;\n            font-size: 16px !important;\n            font-family: var(--font-mono) !important;\n            color: var(--bbp-primary) !important;\n            font-weight: 600 !important;\n            transition: all 0.3s ease !important;\n        }\n\n        #bx-grade-sel-v1 .param-group input[type=\"number\"]:focus {\n            outline: none !important;\n            border-color: var(--bbp-primary) !important;\n            box-shadow: 0 0 0 3px rgba(24, 72, 192, 0.1) !important;\n        }\n\n        \/* Range Sliders *\/\n        #bx-grade-sel-v1 .range-row {\n            display: flex !important;\n            align-items: center !important;\n            gap: 15px !important;\n            margin-top: 15px !important;\n        }\n\n        #bx-grade-sel-v1 .range-row input[type=\"range\"] {\n            flex: 1 !important;\n            height: 6px !important;\n            accent-color: var(--bbp-primary) !important;\n            cursor: pointer !important;\n        }\n\n        #bx-grade-sel-v1 .range-val {\n            font-family: var(--font-mono) !important;\n            font-size: 14px !important;\n            color: var(--bbp-text-muted) !important;\n            font-weight: 600 !important;\n            min-width: 75px !important;\n            text-align: right !important;\n        }\n\n        #bx-grade-sel-v1 .param-hint {\n            font-size: 12px !important;\n            color: var(--bbp-text-hint) !important;\n            margin-top: 10px !important;\n            border-top: 1px dashed var(--bbp-border) !important;\n            padding-top: 10px !important;\n        }\n\n        \/* ==========================================================\n           5. Folded Corner Buttons\n           ========================================================== *\/\n        #bx-grade-sel-v1 .btn-wrapper {\n            position: relative !important;\n            display: inline-block !important;\n            margin-top: 10px !important;\n        }\n\n        #bx-grade-sel-v1 .folded-btn {\n            display: inline-flex !important;\n            align-items: center !important;\n            justify-content: center !important;\n            height: 54px !important;\n            padding: 0 40px !important;\n            background-color: var(--bbp-primary) !important;\n            color: #ffffff !important;\n            font-weight: 700 !important;\n            font-size: 16px !important;\n            border: none !important;\n            cursor: pointer !important;\n            text-decoration: none !important;\n            transition: background-color 0.3s ease !important;\n            clip-path: polygon(0 0, 100% 0, 100% calc(100% - 15px), calc(100% - 15px) 100%, 0 100%) !important;\n            appearance: none !important;\n        }\n\n        #bx-grade-sel-v1 .folded-btn:hover {\n            background-color: var(--bbp-primary-hover) !important;\n        }\n\n        #bx-grade-sel-v1 .btn-flap {\n            position: absolute !important;\n            bottom: 0 !important;\n            right: 0 !important;\n            width: 15px !important;\n            height: 15px !important;\n            background-color: var(--bbp-accent) !important;\n            clip-path: polygon(0 0, 100% 0, 0 100%) !important;\n            pointer-events: none !important;\n        }\n\n        \/* CTA Strip Version *\/\n        #bx-grade-sel-v1 .cta-folded-btn {\n            background-color: var(--bbp-primary) !important;\n            color: #ffffff !important;\n        }\n\n        \/* ==========================================================\n           6. Results Panel & Logic Display\n           ========================================================== *\/\n        #bx-grade-sel-v1 .result-box {\n            display: none !important;\n            margin-top: 40px !important;\n            border-top: 2px solid var(--bbp-border) !important;\n            padding-top: 40px !important;\n            animation: bbpFadeIn 0.5s ease-out !important;\n        }\n\n        #bx-grade-sel-v1 .result-box.visible {\n            display: block !important;\n        }\n\n        @keyframes bbpFadeIn {\n            from { opacity: 0; transform: translateY(10px); }\n            to { opacity: 1; transform: translateY(0); }\n        }\n\n        \/* Verdict Banner *\/\n        #bx-grade-sel-v1 .verdict {\n            padding: 25px 30px !important;\n            margin-bottom: 24px !important;\n            display: flex !important;\n            align-items: flex-start !important;\n            gap: 20px !important;\n            border: 1px solid var(--bbp-border) !important;\n        }\n\n        #bx-grade-sel-v1 .verdict.green-v { background: #F0FAF5 !important; border-left: 6px solid var(--status-green) !important; }\n        #bx-grade-sel-v1 .verdict.amber-v { background: #FFFBF0 !important; border-left: 6px solid var(--status-amber) !important; }\n        #bx-grade-sel-v1 .verdict.red-v   { background: #FFF5F5 !important; border-left: 6px solid var(--status-red) !important; }\n        \n        #bx-grade-sel-v1 .verdict-icon { font-size: 32px !important; flex-shrink: 0 !important; line-height: 1 !important; }\n        #bx-grade-sel-v1 .verdict-sub { font-size: 15px !important; color: var(--bbp-text-muted) !important; margin-top: 5px !important;}\n\n        \/* Recommendation Highlight Card *\/\n        #bx-grade-sel-v1 .recommendation-card {\n            background: var(--bbp-primary) !important;\n            color: #ffffff !important;\n            padding: 30px !important;\n            margin-bottom: 24px !important;\n            position: relative !important;\n        }\n        \n        #bx-grade-sel-v1 .recommendation-card::after {\n            content: '' !important;\n            position: absolute !important;\n            top: 0 !important;\n            right: 0 !important;\n            width: 100px !important;\n            height: 100px !important;\n            background: linear-gradient(225deg, rgba(240,192,24,0.1) 0%, rgba(255,255,255,0) 50%) !important;\n            pointer-events: none !important;\n        }\n\n        #bx-grade-sel-v1 .rec-label { \n            font-size: 12px !important; \n            text-transform: uppercase !important; \n            letter-spacing: 1px !important; \n            color: var(--bbp-accent) !important; \n            margin-bottom: 10px !important; \n            font-weight: 600 !important;\n        }\n\n        #bx-grade-sel-v1 .rec-series {\n            font-family: var(--font-mono) !important;\n            font-size: 32px !important;\n            font-weight: 700 !important;\n            color: #ffffff !important;\n            margin-bottom: 5px !important;\n            line-height: 1.2 !important;\n        }\n\n        #bx-grade-sel-v1 .rec-grade { \n            font-size: 16px !important; \n            color: rgba(255,255,255,0.9) !important; \n            margin-bottom: 20px !important; \n            font-weight: 500 !important;\n        }\n\n        #bx-grade-sel-v1 .rec-notes { font-size: 15px !important; color: rgba(255,255,255,0.8) !important; }\n        #bx-grade-sel-v1 .note-list { margin: 10px 0 0 !important; padding-left: 20px !important; }\n        #bx-grade-sel-v1 .note-list li { margin-bottom: 8px !important; }\n\n        \/* Parameter Status Grid *\/\n        #bx-grade-sel-v1 .param-status-grid {\n            display: grid !important;\n            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;\n            gap: 15px !important;\n            margin-bottom: 24px !important;\n        }\n\n        #bx-grade-sel-v1 .ps-item {\n            background: #ffffff !important;\n            border: 1px solid var(--bbp-border) !important;\n            padding: 15px !important;\n            text-align: center !important;\n        }\n\n        #bx-grade-sel-v1 .ps-param { \n            font-size: 11px !important; \n            text-transform: uppercase !important; \n            letter-spacing: 0.5px !important; \n            color: var(--bbp-text-hint) !important; \n            margin-bottom: 8px !important; \n            font-weight: 600 !important;\n        }\n\n        #bx-grade-sel-v1 .ps-val { \n            font-family: var(--font-mono) !important; \n            font-size: 16px !important; \n            font-weight: 700 !important; \n            margin-bottom: 8px !important; \n            color: var(--bbp-primary) !important;\n        }\n\n        #bx-grade-sel-v1 .ps-status { \n            font-size: 11px !important; \n            font-weight: 700 !important; \n            text-transform: uppercase !important; \n            padding: 4px 10px !important; \n            display: inline-block !important; \n            border-radius: 2px !important;\n        }\n\n        #bx-grade-sel-v1 .ps-status.ok   { background: #DCFCE7 !important; color: #166534 !important; }\n        #bx-grade-sel-v1 .ps-status.warn { background: #FEF3C7 !important; color: #92400E !important; }\n        #bx-grade-sel-v1 .ps-status.over { background: #FEE2E2 !important; color: #991B1B !important; }\n\n        \/* Specs Match String *\/\n        #bx-grade-sel-v1 .specs-match {\n            background: #ffffff !important;\n            border: 1px solid var(--bbp-border) !important;\n            padding: 20px 24px !important;\n            margin-bottom: 30px !important;\n            font-size: 14px !important;\n            color: var(--bbp-text-muted) !important;\n        }\n        #bx-grade-sel-v1 .specs-match strong { \n            display: block !important; \n            margin-bottom: 8px !important; \n            font-size: 13px !important; \n            text-transform: uppercase !important; \n            letter-spacing: 0.5px !important; \n            color: var(--bbp-text-main) !important; \n        }\n\n        \/* CTA Strip (Popup Hook) *\/\n        #bx-grade-sel-v1 .cta-strip {\n            background: var(--bbp-accent) !important;\n            padding: 30px !important;\n            display: flex !important;\n            align-items: center !important;\n            justify-content: space-between !important;\n            flex-wrap: wrap !important;\n            gap: 20px !important;\n        }\n\n        #bx-grade-sel-v1 .cta-strip p { \n            margin: 0 !important; \n            font-size: 16px !important; \n            font-weight: 700 !important; \n            color: var(--bbp-primary) !important; \n            flex: 1 !important;\n            min-width: 300px !important;\n        }\n\n        \/* ==========================================================\n           7. Responsive Adjustments\n           ========================================================== *\/\n        @media (max-width:690px) {\n            #bx-grade-sel-v1 { padding: 40px 0 !important; }\n            #bx-grade-sel-v1 .gs-header, #bx-grade-sel-v1 .gs-body, #bx-grade-sel-v1 .cta-strip { padding: 25px !important; }\n            #bx-grade-sel-v1 .module-h2 { font-size: 26px !important; }\n            #bx-grade-sel-v1 .param-status-grid { grid-template-columns: repeat(2, 1fr) !important; }\n            #bx-grade-sel-v1 .verdict { flex-direction: column !important; gap: 10px !important; }\n        }\n        @media (max-width: 480px) {\n            #bx-grade-sel-v1 .param-grid { grid-template-columns: 1fr !important; }\n            #bx-grade-sel-v1 .param-status-grid { grid-template-columns: 1fr !important; }\n        }\n    <\/style>\n\n    <div class=\"b2b-container\">\n        <div class=\"calculator-wrapper\">\n            \n            <div class=\"gs-header\">\n                <h2 class=\"module-h2\">Water Chemistry Grade and Sub-Series Selector \u2014 BBP ASJ Deep Well Pump<\/h2>\n                <p>Enter your water analysis parameters. Selector uses BBP factory-tested tolerance specifications to recommend the correct stainless steel grade and sub-series for your well conditions.<\/p>\n            <\/div>\n\n            <div class=\"gs-body\">\n                <div class=\"param-grid\">\n\n                    <div class=\"param-group\">\n                        <label for=\"gs-cl\">Chloride (Cl) mg\/l<\/label>\n                        <input type=\"number\" id=\"gs-cl\" min=\"0\" max=\"5000\" value=\"300\" placeholder=\"e.g. 300\" oninput=\"gsSync('gs-cl','gs-cl-r','gs-cl-v','mgl','num')\">\n                        <div class=\"range-row\">\n                            <input type=\"range\" id=\"gs-cl-r\" min=\"0\" max=\"2000\" step=\"10\" value=\"300\" oninput=\"gsSync('gs-cl','gs-cl-r','gs-cl-v','mgl','range')\">\n                            <span class=\"range-val\" id=\"gs-cl-v\">300 mg\/l<\/span>\n                        <\/div>\n                        <div class=\"param-hint\">BBP 304 SS: 400 mg\/l or less | 316 SS: 1,200 mg\/l or less<\/div>\n                    <\/div>\n\n                    <div class=\"param-group\">\n                        <label for=\"gs-h2s\">Hydrogen Sulfide (H2S) mg\/l<\/label>\n                        <input type=\"number\" id=\"gs-h2s\" min=\"0\" max=\"10\" step=\"0.1\" value=\"0.3\" placeholder=\"e.g. 0.3\" oninput=\"gsSync('gs-h2s','gs-h2s-r','gs-h2s-v','mgl1','num')\">\n                        <div class=\"range-row\">\n                            <input type=\"range\" id=\"gs-h2s-r\" min=\"0\" max=\"5\" step=\"0.1\" value=\"0.3\" oninput=\"gsSync('gs-h2s','gs-h2s-r','gs-h2s-v','mgl1','range')\">\n                            <span class=\"range-val\" id=\"gs-h2s-v\">0.3 mg\/l<\/span>\n                        <\/div>\n                        <div class=\"param-hint\">Standard seal rating: 1.5 mg\/l or less<\/div>\n                    <\/div>\n\n                    <div class=\"param-group\">\n                        <label for=\"gs-temp\">Fluid Temperature \u00b0C<\/label>\n                        <input type=\"number\" id=\"gs-temp\" min=\"0\" max=\"150\" value=\"18\" placeholder=\"e.g. 18\" oninput=\"gsSync('gs-temp','gs-temp-r','gs-temp-v','degc','num')\">\n                        <div class=\"range-row\">\n                            <input type=\"range\" id=\"gs-temp-r\" min=\"0\" max=\"120\" step=\"1\" value=\"18\" oninput=\"gsSync('gs-temp','gs-temp-r','gs-temp-v','degc','range')\">\n                            <span class=\"range-val\" id=\"gs-temp-v\">18 \u00b0C<\/span>\n                        <\/div>\n                        <div class=\"param-hint\">Standard: 20\u00b0C or less | ASJ(R) hot-water: 100\u00b0C or less<\/div>\n                    <\/div>\n\n                    <div class=\"param-group\">\n                        <label for=\"gs-sand\">Sand Content (% by mass)<\/label>\n                        <input type=\"number\" id=\"gs-sand\" min=\"0\" max=\"0.5\" step=\"0.001\" value=\"0.005\" placeholder=\"e.g. 0.005\" oninput=\"gsSync('gs-sand','gs-sand-r','gs-sand-v','pct','num')\">\n                        <div class=\"range-row\">\n                            <input type=\"range\" id=\"gs-sand-r\" min=\"0\" max=\"0.2\" step=\"0.001\" value=\"0.005\" oninput=\"gsSync('gs-sand','gs-sand-r','gs-sand-v','pct','range')\">\n                            <span class=\"range-val\" id=\"gs-sand-v\">0.005%<\/span>\n                        <\/div>\n                        <div class=\"param-hint\">Standard: 0.01% or less | ASJ(B) anti-sand: 0.1% or less<\/div>\n                    <\/div>\n\n                    <div class=\"param-group\">\n                        <label for=\"gs-ph\">Water pH<\/label>\n                        <input type=\"number\" id=\"gs-ph\" min=\"4\" max=\"12\" step=\"0.1\" value=\"7.2\" placeholder=\"e.g. 7.2\" oninput=\"gsSync('gs-ph','gs-ph-r','gs-ph-v','ph','num')\">\n                        <div class=\"range-row\">\n                            <input type=\"range\" id=\"gs-ph-r\" min=\"4\" max=\"12\" step=\"0.1\" value=\"7.2\" oninput=\"gsSync('gs-ph','gs-ph-r','gs-ph-v','ph','range')\">\n                            <span class=\"range-val\" id=\"gs-ph-v\">pH 7.2<\/span>\n                        <\/div>\n                        <div class=\"param-hint\">Standard range: pH 6.5 to 8.5<\/div>\n                    <\/div>\n\n                    <div class=\"param-group\">\n                        <label for=\"gs-mineral\">Total Mineralization g\/l<\/label>\n                        <input type=\"number\" id=\"gs-mineral\" min=\"0\" max=\"10\" step=\"0.01\" value=\"0.8\" placeholder=\"e.g. 0.8\" oninput=\"gsSync('gs-mineral','gs-mineral-r','gs-mineral-v','gl','num')\">\n                        <div class=\"range-row\">\n                            <input type=\"range\" id=\"gs-mineral-r\" min=\"0\" max=\"5\" step=\"0.01\" value=\"0.8\" oninput=\"gsSync('gs-mineral','gs-mineral-r','gs-mineral-v','gl','range')\">\n                            <span class=\"range-val\" id=\"gs-mineral-v\">0.80 g\/l<\/span>\n                        <\/div>\n                        <div class=\"param-hint\">Standard rating: 1.5 g\/l or less<\/div>\n                    <\/div>\n\n                <\/div>\n\n                <div class=\"btn-wrapper\">\n                    <button type=\"button\" class=\"folded-btn\" onclick=\"gsCheck()\">Check My Water Chemistry \u2192<\/button>\n                    <div class=\"btn-flap\"><\/div>\n                <\/div>\n\n                <div class=\"result-box\" id=\"gs-results\">\n\n                    <div class=\"verdict\" id=\"gs-verdict\">\n                        <div class=\"verdict-icon\" id=\"gs-v-icon\">\u2705<\/div>\n                        <div>\n                            <h3 class=\"module-h3\" id=\"gs-v-title\">\u2014<\/h3>\n                            <div class=\"verdict-sub\" id=\"gs-v-sub\">\u2014<\/div>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"recommendation-card\">\n                        <div class=\"rec-label\">Recommended ASJ Sub-Series and Grade<\/div>\n                        <div class=\"rec-series\" id=\"gs-rec-series\">\u2014<\/div>\n                        <div class=\"rec-grade\" id=\"gs-rec-grade\">\u2014<\/div>\n                        <div class=\"rec-notes\">\n                            <ul class=\"note-list\" id=\"gs-rec-notes\"><\/ul>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"param-status-grid\" id=\"gs-status-grid\">\n                        <div class=\"ps-item\">\n                            <div class=\"ps-param\">Chloride<\/div>\n                            <div class=\"ps-val\" id=\"pv-cl\">\u2014<\/div>\n                            <div class=\"ps-status\" id=\"ps-cl\">\u2014<\/div>\n                        <\/div>\n                        <div class=\"ps-item\">\n                            <div class=\"ps-param\">H2S<\/div>\n                            <div class=\"ps-val\" id=\"pv-h2s\">\u2014<\/div>\n                            <div class=\"ps-status\" id=\"ps-h2s\">\u2014<\/div>\n                        <\/div>\n                        <div class=\"ps-item\">\n                            <div class=\"ps-param\">Temperature<\/div>\n                            <div class=\"ps-val\" id=\"pv-temp\">\u2014<\/div>\n                            <div class=\"ps-status\" id=\"ps-temp\">\u2014<\/div>\n                        <\/div>\n                        <div class=\"ps-item\">\n                            <div class=\"ps-param\">Sand<\/div>\n                            <div class=\"ps-val\" id=\"pv-sand\">\u2014<\/div>\n                            <div class=\"ps-status\" id=\"ps-sand\">\u2014<\/div>\n                        <\/div>\n                        <div class=\"ps-item\">\n                            <div class=\"ps-param\">pH<\/div>\n                            <div class=\"ps-val\" id=\"pv-ph\">\u2014<\/div>\n                            <div class=\"ps-status\" id=\"ps-ph\">\u2014<\/div>\n                        <\/div>\n                        <div class=\"ps-item\">\n                            <div class=\"ps-param\">Mineralization<\/div>\n                            <div class=\"ps-val\" id=\"pv-mineral\">\u2014<\/div>\n                            <div class=\"ps-status\" id=\"ps-mineral\">\u2014<\/div>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"specs-match\">\n                        <strong>Matched Specifications (BBP Factory-Tested)<\/strong>\n                        <span id=\"gs-specs-text\">\u2014<\/span>\n                    <\/div>\n\n                    <div class=\"cta-strip\">\n                        <p>Send your full water analysis report \u2014 BBP engineering confirms the grade in 30 minutes.<\/p>\n                        <div class=\"btn-wrapper\" style=\"margin: 0 !important;\">\n                            <a href=\"#ct-popup-820\" class=\"folded-btn cta-folded-btn\">Send Water Analysis to BBP \u2192<\/a>\n                            <div class=\"btn-flap\"><\/div>\n                        <\/div>\n                    <\/div>\n\n                <\/div><\/div><\/div>\n    <\/div>\n\n    <script>\n    \/* ---------------------------------------------------------------\n       gsSync \u2014 keep number input and range slider in step\n       fmtType: 'mgl' | 'mgl1' | 'degc' | 'pct' | 'ph' | 'gl'\n       src:     'num' | 'range'\n    --------------------------------------------------------------- *\/\n    function gsSync(numId, rangeId, valId, fmtType, src) {\n      var num   = document.getElementById(numId);\n      var range = document.getElementById(rangeId);\n      var val   = document.getElementById(valId);\n\n      if (src === 'range') {\n        num.value = range.value;\n      } else {\n        range.value = num.value;\n      }\n\n      var v = parseFloat(num.value);\n\n      if (fmtType === 'mgl') {\n        val.textContent = v + ' mg\/l';\n      } else if (fmtType === 'mgl1') {\n        val.textContent = v.toFixed(1) + ' mg\/l';\n      } else if (fmtType === 'degc') {\n        val.textContent = v + ' \\u00b0C';\n      } else if (fmtType === 'pct') {\n        val.textContent = v.toFixed(3) + '%';\n      } else if (fmtType === 'ph') {\n        val.textContent = 'pH ' + v.toFixed(1);\n      } else if (fmtType === 'gl') {\n        val.textContent = v.toFixed(2) + ' g\/l';\n      }\n    }\n\n    \/* ---------------------------------------------------------------\n       gsSetStatus \u2014 write value + colour-coded badge to a ps-item\n    --------------------------------------------------------------- *\/\n    function gsSetStatus(badgeId, valId, display, statusClass, statusText) {\n      var badge = document.getElementById(badgeId);\n      var vel   = document.getElementById(valId);\n      vel.textContent   = display;\n      badge.textContent = statusText;\n      badge.className   = 'ps-status ' + statusClass;\n    }\n\n    \/* ---------------------------------------------------------------\n       gsCheck \u2014 main evaluation; called by inline onclick\n    --------------------------------------------------------------- *\/\n    function gsCheck() {\n      var cl      = parseFloat(document.getElementById('gs-cl').value)      || 0;\n      var h2s     = parseFloat(document.getElementById('gs-h2s').value)     || 0;\n      var temp    = parseFloat(document.getElementById('gs-temp').value)    || 0;\n      var sand    = parseFloat(document.getElementById('gs-sand').value)    || 0;\n      var ph      = parseFloat(document.getElementById('gs-ph').value)      || 7;\n      var mineral = parseFloat(document.getElementById('gs-mineral').value) || 0;\n\n      \/* --- Steel grade ------------------------------------------- *\/\n      var grade     = '';\n      var gradeName = '';\n      var gradeNote = '';\n\n      if (cl <= 400) {\n        grade     = '304';\n        gradeName = 'AISI 304 Stainless Steel';\n        gradeNote = 'Cl ' + cl + ' mg\/l is within standard 304 SS tolerance (400 mg\/l or less).';\n      } else if (cl <= 1200) {\n        grade     = '316';\n        gradeName = 'AISI 316 Stainless Steel (molybdenum grade)';\n        gradeNote = 'Cl ' + cl + ' mg\/l exceeds 304 SS rating \u2014 316 SS with Mo addition required (1,200 mg\/l or less).';\n      } else {\n        grade     = 'DUPLEX';\n        gradeName = 'Duplex \/ Super Duplex \u2014 engineering review required';\n        gradeNote = 'Cl ' + cl + ' mg\/l exceeds 316 SS standard rating. Contact BBP engineering for duplex stainless specification.';\n      }\n\n      \/* --- Sub-series -------------------------------------------- *\/\n      var needR   = false;\n      var needB   = false;\n      var needB16 = false;\n\n      if (temp > 20)  { needR = true; }\n      if (sand > 0.01) { needB = true; }\n      if (needB) {\n        if (grade === '316') { needB16 = true; }\n      }\n\n      var series     = '';\n      var seriesName = '';\n\n      if (needR) {\n        if (needB) {\n          series     = 'ASJ(R) + ASJ(B)';\n          seriesName = 'Combined hot-water AND anti-sand requirements \u2014 engineering review';\n        } else {\n          series     = 'ASJ(R)';\n          seriesName = 'Hot-Water \/ Geothermal Sub-Series \u2014 TQS(R) thermally-stabilized motor';\n        }\n      } else {\n        if (needB) {\n          series     = 'ASJ(B)';\n          seriesName = 'Anti-Sand Sub-Series \u2014 hardened impeller and diffuser stages';\n        } else {\n          series     = 'ASJ';\n          seriesName = 'Standard Sub-Series \u2014 fresh to brackish water duty';\n        }\n      }\n\n      \/* --- Issue list -------------------------------------------- *\/\n      var issues = [];\n\n      if (cl > 1200) {\n        issues.push('Cl exceeds 316 SS standard rating');\n      }\n      if (h2s > 1.5) {\n        issues.push('H2S above standard seal limit (1.5 mg\/l or less) \u2014 upgraded seals required');\n      }\n      if (temp > 100) {\n        issues.push('Temperature above ASJ(R) continuous rating (100 degrees C or less)');\n      }\n      if (sand > 0.1) {\n        issues.push('Sand above ASJ(B) anti-sand limit (0.1% or less) \u2014 contact engineering');\n      }\n      if (ph < 6.5) {\n        issues.push('pH outside standard range (6.5 to 8.5) \u2014 material and seal review needed');\n      } else if (ph > 8.5) {\n        issues.push('pH outside standard range (6.5 to 8.5) \u2014 material and seal review needed');\n      }\n      if (mineral > 1.5) {\n        issues.push('Total mineralization above standard rating (1.5 g\/l or less)');\n      }\n\n      \/* --- Verdict ----------------------------------------------- *\/\n      var vEl    = document.getElementById('gs-verdict');\n      var vIcon  = document.getElementById('gs-v-icon');\n      var vTitle = document.getElementById('gs-v-title');\n      var vSub   = document.getElementById('gs-v-sub');\n\n      if (issues.length === 0) {\n        vEl.className    = 'verdict green-v';\n        vIcon.textContent  = '\\u2705';\n        vTitle.textContent = 'Water chemistry within BBP ASJ standard operating range';\n        vSub.textContent   = 'All parameters conform to BBP factory-tested specifications. Proceed with recommended selection below.';\n      } else {\n        var isAmber = false;\n        if (issues.length <= 2) {\n          if (cl <= 1200) {\n            if (temp <= 100) {\n              isAmber = true;\n            }\n          }\n        }\n\n        if (isAmber) {\n          vEl.className      = 'verdict amber-v';\n          vIcon.textContent  = '\\u26a0\\ufe0f';\n          vTitle.textContent = 'Marginal parameters \u2014 engineering confirmation recommended';\n          var amberSub = 'Most parameters are within range. ';\n          var ai = 0;\n          for (ai = 0; ai < issues.length; ai++) {\n            if (ai > 0) { amberSub = amberSub + '; '; }\n            amberSub = amberSub + issues[ai];\n          }\n          amberSub = amberSub + '. Send water analysis to BBP engineering for confirmation before ordering.';\n          vSub.textContent = amberSub;\n        } else {\n          vEl.className      = 'verdict red-v';\n          vIcon.textContent  = '\\ud83d\\udd34';\n          vTitle.textContent = 'Parameters exceed standard ASJ rating \u2014 BBP engineering review required';\n          var redSub = '';\n          var ri = 0;\n          for (ri = 0; ri < issues.length; ri++) {\n            if (ri > 0) { redSub = redSub + '; '; }\n            redSub = redSub + issues[ri];\n          }\n          redSub = redSub + '. Contact BBP engineering with your water analysis report before specification.';\n          vSub.textContent = redSub;\n        }\n      }\n\n      \/* --- Recommendation card ----------------------------------- *\/\n      document.getElementById('gs-rec-series').textContent = series;\n      document.getElementById('gs-rec-grade').textContent  = gradeName + ' \u2014 ' + gradeNote;\n\n      var notes = [];\n      notes.push(gradeNote);\n\n      if (needR) {\n        notes.push('TQS(R) thermally-stabilized motor for fluid temp ' + temp + ' \\u00b0C \u2014 bearing clearances factory-set for thermal expansion.');\n      }\n      if (needB) {\n        notes.push('Hardened impeller and diffuser stages for sand content ' + sand.toFixed(3) + '% \u2014 ASJ(B) anti-sand build.');\n      }\n      if (needB16) {\n        notes.push('Combined sand and high-chloride: specify ASJ(B) in 316 SS grade explicitly.');\n      }\n      if (h2s > 1.5) {\n        notes.push('H2S ' + h2s + ' mg\/l: request fluorocarbon upgraded seal package from BBP engineering.');\n      }\n      if (mineral > 1.5) {\n        notes.push('Total mineralization ' + mineral + ' g\/l: discuss anti-scaling bearing design with BBP for prolonged service.');\n      }\n\n      var ul = document.getElementById('gs-rec-notes');\n      ul.innerHTML = '';\n      var ni = 0;\n      for (ni = 0; ni < notes.length; ni++) {\n        var li = document.createElement('li');\n        li.textContent = notes[ni];\n        ul.appendChild(li);\n      }\n\n      \/* --- Parameter status badges ------------------------------- *\/\n\n      \/* Chloride *\/\n      if (cl <= 400) {\n        gsSetStatus('ps-cl', 'pv-cl', cl + ' mg\/l', 'ok', 'IN SPEC');\n      } else if (cl <= 1200) {\n        gsSetStatus('ps-cl', 'pv-cl', cl + ' mg\/l', 'warn', 'MARGINAL');\n      } else {\n        gsSetStatus('ps-cl', 'pv-cl', cl + ' mg\/l', 'over', 'EXCEEDS');\n      }\n\n      \/* H2S *\/\n      if (h2s <= 1.5) {\n        gsSetStatus('ps-h2s', 'pv-h2s', h2s.toFixed(1) + ' mg\/l', 'ok', 'IN SPEC');\n      } else if (h2s <= 3) {\n        gsSetStatus('ps-h2s', 'pv-h2s', h2s.toFixed(1) + ' mg\/l', 'warn', 'MARGINAL');\n      } else {\n        gsSetStatus('ps-h2s', 'pv-h2s', h2s.toFixed(1) + ' mg\/l', 'over', 'EXCEEDS');\n      }\n\n      \/* Temperature *\/\n      if (temp <= 20) {\n        gsSetStatus('ps-temp', 'pv-temp', temp + ' \\u00b0C', 'ok', 'IN SPEC');\n      } else if (temp <= 100) {\n        gsSetStatus('ps-temp', 'pv-temp', temp + ' \\u00b0C', 'warn', 'MARGINAL');\n      } else {\n        gsSetStatus('ps-temp', 'pv-temp', temp + ' \\u00b0C', 'over', 'EXCEEDS');\n      }\n\n      \/* Sand *\/\n      if (sand <= 0.01) {\n        gsSetStatus('ps-sand', 'pv-sand', sand.toFixed(3) + '%', 'ok', 'IN SPEC');\n      } else if (sand <= 0.1) {\n        gsSetStatus('ps-sand', 'pv-sand', sand.toFixed(3) + '%', 'warn', 'MARGINAL');\n      } else {\n        gsSetStatus('ps-sand', 'pv-sand', sand.toFixed(3) + '%', 'over', 'EXCEEDS');\n      }\n\n      \/* pH *\/\n      if (ph >= 6.5) {\n        if (ph <= 8.5) {\n          gsSetStatus('ps-ph', 'pv-ph', 'pH ' + ph.toFixed(1), 'ok', 'IN SPEC');\n        } else if (ph <= 9.0) {\n          gsSetStatus('ps-ph', 'pv-ph', 'pH ' + ph.toFixed(1), 'warn', 'MARGINAL');\n        } else {\n          gsSetStatus('ps-ph', 'pv-ph', 'pH ' + ph.toFixed(1), 'over', 'EXCEEDS');\n        }\n      } else if (ph >= 6.0) {\n        gsSetStatus('ps-ph', 'pv-ph', 'pH ' + ph.toFixed(1), 'warn', 'MARGINAL');\n      } else {\n        gsSetStatus('ps-ph', 'pv-ph', 'pH ' + ph.toFixed(1), 'over', 'EXCEEDS');\n      }\n\n      \/* Mineralization *\/\n      if (mineral <= 1.5) {\n        gsSetStatus('ps-mineral', 'pv-mineral', mineral.toFixed(2) + ' g\/l', 'ok', 'IN SPEC');\n      } else if (mineral <= 2.0) {\n        gsSetStatus('ps-mineral', 'pv-mineral', mineral.toFixed(2) + ' g\/l', 'warn', 'MARGINAL');\n      } else {\n        gsSetStatus('ps-mineral', 'pv-mineral', mineral.toFixed(2) + ' g\/l', 'over', 'EXCEEDS');\n      }\n\n      \/* --- Specs summary line ------------------------------------ *\/\n      var clTol = '';\n      if (grade === '304')   { clTol = '400 mg\/l or less'; }\n      else if (grade === '316') { clTol = '1,200 mg\/l or less'; }\n      else { clTol = 'above 1,200 \u2014 consult engineering'; }\n\n      var maxTemp = '';\n      if (needR) { maxTemp = '100 \\u00b0C or less'; }\n      else       { maxTemp = '20 \\u00b0C or less'; }\n\n      var maxSand = '';\n      if (needB) { maxSand = '0.1% or less'; }\n      else       { maxSand = '0.01% or less'; }\n\n      document.getElementById('gs-specs-text').textContent =\n        series + ' | ' + gradeName +\n        ' | Cl tolerance: ' + clTol +\n        ' | H2S: 1.5 mg\/l or less' +\n        ' | Max temp: ' + maxTemp +\n        ' | Sand: ' + maxSand;\n\n      \/* --- Show results ------------------------------------------ *\/\n      document.getElementById('gs-results').className = 'result-box visible';\n      \n      \/\/ Calculate scroll positioning ensuring Blocksy sticky headers don't hide the content\n      const yOffset = -80; \n      const element = document.getElementById('gs-results');\n      const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;\n      window.scrollTo({top: y, behavior: 'smooth'});\n    }\n\n    \/* --- Init display values on page load ----------------------- *\/\n    document.addEventListener('DOMContentLoaded', function() {\n        gsSync('gs-cl',      'gs-cl-r',      'gs-cl-v',      'mgl',  'num');\n        gsSync('gs-h2s',     'gs-h2s-r',     'gs-h2s-v',     'mgl1', 'num');\n        gsSync('gs-temp',    'gs-temp-r',    'gs-temp-v',    'degc', 'num');\n        gsSync('gs-sand',    'gs-sand-r',    'gs-sand-v',    'pct',  'num');\n        gsSync('gs-ph',      'gs-ph-r',      'gs-ph-v',      'ph',   'num');\n        gsSync('gs-mineral', 'gs-mineral-r', 'gs-mineral-v',  'gl',   'num');\n    });\n    <\/script>\n<\/section>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Water Chemistry Grade and Sub-Series Selector \u2014 BBP ASJ Deep Well Pump Enter your water analysis parameters. Selector uses BBP factory-tested tolerance specifications to recommend the correct stainless steel grade and sub-series for your well conditions. Chloride (Cl) mg\/l 300 mg\/l BBP 304 SS: 400 mg\/l or less | 316 SS: 1,200 mg\/l or less [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":4120,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-4217","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/pages\/4217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/comments?post=4217"}],"version-history":[{"count":0,"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/pages\/4217\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/pages\/4120"}],"wp:attachment":[{"href":"https:\/\/bbpmfg.com\/pt\/wp-json\/wp\/v2\/media?parent=4217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}