{"title":"Bubble Washing Machines","description":null,"products":[{"product_id":"bubble-magic-20-gallon-mini-washing-machine","title":"Bubble Magic 20 Gallon Ice Water Extraction Machine","description":"\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;600;700\u0026family=Inter:wght@400;500\u0026display=swap');\n\n:root {\n  --bg:           #ffffff;\n  --bg-soft:      #fafafa;\n  --text:         #4d4d4d;\n  --text-light:   #6b6b6b;\n  --border:       #e1e3e4;\n  --blue:         #01adf0;\n  --blue-dark:    #0190c8;\n  --blue-pale:    #e8f7fd;\n  --green:        #61a84d;\n  --green-dark:   #4d8a3c;\n  --green-pale:   #edf6ea;\n  --orange:       #ff723c;\n  --orange-pale:  #fff2ed;\n  --font-head:    'Poppins', sans-serif;\n  --font-body:    'Inter', sans-serif;\n  --radius:       8px;\n  --radius-sm:    5px;\n}\n\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\nbody {\n  font-family: var(--font-body);\n  font-size: 14px;\n  background: var(--bg);\n  color: var(--text);\n  line-height: 1.65;\n  padding-bottom: 40px;\n}\n\n:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 3px; }\n.icon { display: inline-block; flex-shrink: 0; vertical-align: middle; }\n.svg-sprite { display: none; }\n\n\/* ── 1. INTRO ── *\/\n.intro { padding-bottom: 18px; border-bottom: 1px solid var(--border); }\n.outcome-headline {\n  font-family: var(--font-head);\n  font-size: 1.15rem;\n  font-weight: 700;\n  color: var(--text);\n  line-height: 1.25;\n  margin-bottom: 10px;\n}\n.outcome-headline span { color: var(--green); }\n.intro p { font-size: 0.84rem; color: var(--text-light); line-height: 1.75; }\n.cert-strip { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }\n.cert-badge {\n  display: inline-flex; align-items: center; gap: 5px;\n  font-family: var(--font-head); font-size: 0.63rem; font-weight: 600;\n  color: var(--green-dark); background: var(--green-pale);\n  border: 1px solid #cfe6c6; border-radius: 20px; padding: 3px 9px;\n}\n.cert-badge svg { color: var(--green); }\n\n\/* ── 2. TRUST BAR ── *\/\n.trust-bar {\n  display: flex; flex-wrap: wrap; justify-content: center;\n  gap: 4px 16px; padding: 9px 12px;\n  border: 1px solid var(--border); border-radius: var(--radius);\n  background: var(--bg-soft); margin: 18px 0;\n}\n.trust-item { display: flex; align-items: center; gap: 6px; font-size: 0.74rem; font-weight: 500; color: var(--text-light); }\n.trust-item strong { color: var(--text); }\n\n\/* ── SECTION LABELS ── *\/\n.section-label { font-family: var(--font-head); font-size: 0.64rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--blue); margin-bottom: 3px; }\n.section-title { font-family: var(--font-head); font-size: 0.97rem; font-weight: 700; color: var(--text); margin-bottom: 11px; }\n\n\/* ── 3. VIDEO ── *\/\n.gallery-wrap { margin: 20px 0; }\n.video-wrap { position: relative; }\n\n\/* ── 4. COMPARISON ── *\/\n.comparison-wrap { margin: 20px 0; }\n.comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }\n.comp-col { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); }\n.comp-header { padding: 8px 13px; font-family: var(--font-head); font-size: 0.74rem; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 7px; text-align: center; }\n.comp-col.old .comp-header { background: #f5f5f5; color: var(--text-light); border-bottom: 1px solid var(--border); }\n.comp-col.new .comp-header { background: var(--green); color: #fff; }\n.comp-list { list-style: none; padding: 0; }\n.comp-list li { display: flex; align-items: flex-start; gap: 8px; padding: 7px 13px; font-size: 0.76rem; color: var(--text-light); border-bottom: 1px solid var(--border); line-height: 1.45; }\n.comp-list li:last-child { border-bottom: none; }\n.comp-col.old .comp-list li svg { color: #bbb; margin-top: 2px; flex-shrink: 0; }\n.comp-col.new .comp-list li { color: var(--text); }\n.comp-col.new .comp-list li svg { color: var(--green); margin-top: 2px; flex-shrink: 0; }\n\n\/* ── MECHANISM EXPLAINER ── *\/\n.mech-explainer { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); margin: 20px 0; overflow: hidden; }\n.mech-header { background: var(--green); padding: 10px 15px; display: flex; align-items: center; gap: 9px; }\n.mech-header h3 { font-family: var(--font-head); font-size: 0.83rem; font-weight: 700; color: #fff; margin: 0; }\n.mech-body { padding: 14px 16px; font-size: 0.78rem; color: var(--text-light); line-height: 1.75; }\n.mech-body strong { color: var(--text); }\n\n\/* ── 5. FEATURE CARDS ── *\/\n.features-wrap { margin: 20px 0; }\n.features-grid { display: flex; flex-direction: column; gap: 7px; }\n.feature-card { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); padding: 11px 13px; display: flex; flex-direction: row; align-items: flex-start; gap: 11px; }\n.feature-card.hero { border-color: var(--green); background: var(--green-pale); }\n.feature-icon-wrap { width: 34px; height: 34px; border-radius: var(--radius-sm); background: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border: 1px solid var(--border); }\n.feature-card.hero .feature-icon-wrap { border-color: #b8ddb0; }\n.feature-card-body { flex: 1; min-width: 0; }\n.feature-card h4 { font-family: var(--font-head); font-size: 0.8rem; font-weight: 700; color: var(--text); margin-bottom: 3px; line-height: 1.3; }\n.feature-card p { font-size: 0.74rem; color: var(--text-light); line-height: 1.55; margin: 0; }\n.stat-badge { display: inline-block; background: var(--green); color: #fff; font-family: var(--font-head); font-size: 0.61rem; font-weight: 700; padding: 2px 7px; border-radius: 20px; white-space: nowrap; margin-left: 6px; vertical-align: middle; }\n\n\/* ── 6. SPECS ── *\/\n.specs-wrap { margin: 20px 0; }\n.specs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }\n.spec-card { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); padding: 9px 12px; }\n.spec-card-label { display: flex; align-items: center; gap: 5px; font-size: 0.65rem; font-weight: 500; color: var(--text-light); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 2px; }\n.spec-card-value { font-family: var(--font-head); font-size: 0.81rem; font-weight: 600; color: var(--text); line-height: 1.3; }\n\n\/* ── 7. HOW IT WORKS ── *\/\n.reassurance-block { background: var(--blue-pale); border: 1px solid #b3e4f9; border-radius: var(--radius); margin: 20px 0; overflow: hidden; }\n.reassurance-header { background: var(--blue); padding: 10px 15px; display: flex; align-items: center; gap: 9px; }\n.reassurance-header h3 { font-family: var(--font-head); font-size: 0.83rem; font-weight: 700; color: #fff; margin: 0; }\n.reassurance-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #b3e4f9; }\n.reassurance-step { display: flex; flex-direction: row; align-items: flex-start; gap: 10px; padding: 12px 14px; background: var(--blue-pale); text-align: left; }\n.step-num { width: 22px; height: 22px; border-radius: 50%; background: var(--blue); color: #fff; font-family: var(--font-head); font-size: 0.7rem; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }\n.reassurance-step-body { flex: 1; }\n.reassurance-step h4 { font-family: var(--font-head); font-size: 0.76rem; font-weight: 700; color: var(--text); line-height: 1.3; margin-bottom: 2px; }\n.reassurance-step p { font-size: 0.71rem; color: var(--text-light); line-height: 1.55; margin: 0; }\n\n\/* ── 8. INCLUDED ── *\/\n.included-wrap { margin: 20px 0; }\n.included-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }\n.included-col { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }\n.included-col-header { padding: 8px 13px; font-family: var(--font-head); font-size: 0.74rem; font-weight: 700; display: flex; align-items: center; gap: 6px; border-bottom: 1px solid var(--border); }\n.included-col-header.blue { background: var(--blue-pale); color: var(--blue-dark); }\n.included-col-header.green { background: var(--green-pale); color: var(--green-dark); }\n.included-list { list-style: none; padding: 6px 0; }\n.included-list li { display: flex; align-items: flex-start; gap: 7px; padding: 4px 13px; font-size: 0.75rem; color: var(--text-light); line-height: 1.5; }\n.included-list li svg { flex-shrink: 0; margin-top: 3px; }\n.included-tip { padding: 10px 13px; font-size: 0.74rem; color: var(--text-light); border-top: 1px solid var(--border); background: #fff; line-height: 1.6; }\n.included-tip strong { color: var(--text); }\n.included-tip a { color: var(--blue); text-decoration: none; font-weight: 600; }\n.included-tip a:hover { text-decoration: underline; }\n\n\/* ── 9. FAQ ── *\/\n.faq-wrap { margin: 20px 0; }\n.faq-list { display: flex; flex-direction: column; gap: 6px; }\n.faq-item { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--bg); }\n.faq-toggle { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }\n.faq-label { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 14px; cursor: pointer; font-family: var(--font-head); font-size: 0.79rem; font-weight: 600; color: var(--text); user-select: none; transition: background 0.15s; line-height: 1.4; }\n.faq-label:hover { background: var(--bg-soft); }\n.faq-q-icon { flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%; background: var(--bg-soft); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; color: var(--blue); transition: background 0.15s, color 0.15s, transform 0.2s; }\n.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.2s; font-size: 0.78rem; color: var(--text-light); line-height: 1.7; padding: 0 14px; background: var(--bg-soft); }\n.faq-answer a { color: var(--blue); }\n.faq-toggle:checked + .faq-label { background: var(--blue); color: #fff; }\n.faq-toggle:checked + .faq-label .faq-q-icon { background: rgba(255,255,255,0.2); border-color: rgba(255,255,255,0.4); transform: rotate(45deg); }\n.faq-toggle:checked ~ .faq-answer { max-height: 500px; padding: 12px 14px; border-top: 1px solid rgba(1,173,240,0.15); }\n.faq-toggle:focus-visible + .faq-label { outline: 3px solid var(--blue); outline-offset: -2px; }\n\n\/* ── 10. CLOSING FOOTER ── *\/\n.closing-trust { margin-top: 22px; padding: 15px 16px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: space-between; }\n.closing-trust-text { display: flex; align-items: flex-start; gap: 10px; flex: 1; min-width: 200px; }\n.closing-trust-text svg { color: var(--green); margin-top: 2px; flex-shrink: 0; }\n.closing-trust-text p { font-size: 0.78rem; color: var(--text-light); line-height: 1.6; }\n.closing-trust-text strong { color: var(--text); font-weight: 600; }\n.closing-contact { display: flex; flex-direction: column; gap: 5px; align-items: flex-end; }\n.closing-contact a { display: inline-flex; align-items: center; gap: 5px; font-family: var(--font-head); font-size: 0.74rem; font-weight: 600; color: var(--blue); text-decoration: none; padding: 6px 12px; border: 1px solid var(--blue); border-radius: var(--radius-sm); transition: background 0.15s, color 0.15s; white-space: nowrap; }\n.closing-contact a:hover { background: var(--blue); color: #fff; }\n.closing-contact a svg { flex-shrink: 0; }\n\n@media (max-width: 560px) {\n  .reassurance-steps { grid-template-columns: 1fr; }\n}\n\u003c\/style\u003e\n\n\u003c!-- ═══════ SVG ICON SPRITE ═══════ --\u003e\n\u003csvg class=\"svg-sprite\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n  \u003cdefs\u003e\n    \u003csymbol id=\"ic-check\" viewbox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"2.5,8.5 6,12 13.5,4\"\u003e\u003c\/polyline\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-x\" viewbox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"\u003e\u003cline x1=\"3\" y1=\"3\" x2=\"13\" y2=\"13\"\u003e\u003c\/line\u003e\u003cline x1=\"13\" y1=\"3\" x2=\"3\" y2=\"13\"\u003e\u003c\/line\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-plus\" viewbox=\"0 0 12 12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"\u003e\u003cline x1=\"6\" y1=\"1\" x2=\"6\" y2=\"11\"\u003e\u003c\/line\u003e\u003cline x1=\"1\" y1=\"6\" x2=\"11\" y2=\"6\"\u003e\u003c\/line\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-shield\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M10 2l7 3v5c0 4-3 7-7 8C7 17 3 14 3 10V5z\"\u003e\u003c\/path\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-truck\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"1\" y=\"5\" width=\"12\" height=\"9\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M13 8h3l2 3v3h-5V8z\"\u003e\u003c\/path\u003e\u003ccircle cx=\"5\" cy=\"16\" r=\"1.5\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"15\" cy=\"16\" r=\"1.5\"\u003e\u003c\/circle\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-return\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M4 10a6 6 0 106-6H6\"\u003e\u003c\/path\u003e\u003cpolyline points=\"3,7 6,10 3,13\"\u003e\u003c\/polyline\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-calendar\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"2\" y=\"4\" width=\"16\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cline x1=\"6\" y1=\"2\" x2=\"6\" y2=\"6\"\u003e\u003c\/line\u003e\u003cline x1=\"14\" y1=\"2\" x2=\"14\" y2=\"6\"\u003e\u003c\/line\u003e\u003cline x1=\"2\" y1=\"9\" x2=\"18\" y2=\"9\"\u003e\u003c\/line\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-phone\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M5 2h4l2 4-2.5 1.5a11 11 0 004 4L14 9l4 2v4a2 2 0 01-2 2A16 16 0 013 4a2 2 0 012-2z\"\u003e\u003c\/path\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-email\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"2\" y=\"5\" width=\"16\" height=\"12\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpolyline points=\"2,5 10,13 18,5\"\u003e\u003c\/polyline\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-info\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\u003e\u003ccircle cx=\"10\" cy=\"10\" r=\"8\"\u003e\u003c\/circle\u003e\u003cline x1=\"10\" y1=\"9\" x2=\"10\" y2=\"14\"\u003e\u003c\/line\u003e\u003ccircle cx=\"10\" cy=\"6.5\" r=\"0.5\" fill=\"currentColor\"\u003e\u003c\/circle\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-box\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M10 2l8 4v8l-8 4-8-4V6z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"2,6 10,10 18,6\"\u003e\u003c\/polyline\u003e\u003cline x1=\"10\" y1=\"10\" x2=\"10\" y2=\"18\"\u003e\u003c\/line\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-star\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolygon points=\"10,2 12.4,7.5 18.5,8 14,12.3 15.4,18 10,15 4.6,18 6,12.3 1.5,8 7.6,7.5\"\u003e\u003c\/polygon\u003e\u003c\/symbol\u003e\n    \u003c!-- product-specific --\u003e\n    \u003csymbol id=\"ic-clock\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"10\" cy=\"10\" r=\"8\"\u003e\u003c\/circle\u003e\u003cpolyline points=\"10,5 10,10 13.5,12\"\u003e\u003c\/polyline\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-drop\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M10 2.5c3 3.7 5 6.4 5 9a5 5 0 01-10 0c0-2.6 2-5.3 5-9z\"\u003e\u003c\/path\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-drain\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3 6h9v3H9v3\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 7h3a2 2 0 012 2\"\u003e\u003c\/path\u003e\u003ccircle cx=\"9\" cy=\"15.5\" r=\"1.3\"\u003e\u003c\/circle\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-power\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M10 3v6\"\u003e\u003c\/path\u003e\u003cpath d=\"M6 5a6 6 0 108 0\"\u003e\u003c\/path\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-layers\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolygon points=\"10,3 17,7 10,11 3,7\"\u003e\u003c\/polygon\u003e\u003cpolyline points=\"3,11 10,15 17,11\"\u003e\u003c\/polyline\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-weight\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"10\" cy=\"5\" r=\"2\"\u003e\u003c\/circle\u003e\u003cpath d=\"M6.5 7h7l1.3 9.5h-9.6z\"\u003e\u003c\/path\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-maximize\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"3,7 3,3 7,3\"\u003e\u003c\/polyline\u003e\u003cpolyline points=\"13,3 17,3 17,7\"\u003e\u003c\/polyline\u003e\u003cpolyline points=\"17,13 17,17 13,17\"\u003e\u003c\/polyline\u003e\u003cpolyline points=\"7,17 3,17 3,13\"\u003e\u003c\/polyline\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-recycle\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M4 10a6 6 0 019-5\"\u003e\u003c\/path\u003e\u003cpolyline points=\"13,2 13.5,5 10.5,5.5\"\u003e\u003c\/polyline\u003e\u003cpath d=\"M16 10a6 6 0 01-9 5\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7,18 6.5,15 9.5,14.5\"\u003e\u003c\/polyline\u003e\u003c\/symbol\u003e\n    \u003csymbol id=\"ic-bag\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M6 7h8l1 10H5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 7a2 2 0 014 0\"\u003e\u003c\/path\u003e\u003c\/symbol\u003e\n  \u003c\/defs\u003e\n\u003c\/svg\u003e\n\n\n\u003c!-- ═══════ SECTION 1 - INTRO ═══════ --\u003e\n\u003cdiv class=\"intro\" role=\"region\" aria-label=\"Product introduction\"\u003e\n  \u003ch1 class=\"outcome-headline\"\u003e\n    Run bigger ice water washes without \u003cspan\u003estirring by hand\u003c\/span\u003e\n  \u003c\/h1\u003e\n  \u003cp\u003e\n    The Bubble Magic 20 Gallon Washing Machine takes over the hardest part of ice water extraction: the agitation. A timed motor turns your ice, water, and plant material in gentle cycles, then a built-in drain valve empties the resin-rich water straight into your collection bags. It handles batches far larger than you can practically wash by hand. Load it, set the timer, and walk away.\n  \u003c\/p\u003e\n  \u003cdiv class=\"cert-strip\"\u003e\n    \u003cspan class=\"cert-badge\"\u003e\u003csvg width=\"11\" height=\"11\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e1-year manufacturer warranty\u003c\/span\u003e\n    \u003cspan class=\"cert-badge\"\u003e\u003csvg width=\"11\" height=\"11\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eBPA-free PP + ABS build\u003c\/span\u003e\n    \u003cspan class=\"cert-badge\"\u003e\u003csvg width=\"11\" height=\"11\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e220-micron wash bag included\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ SECTION 2 - TRUST BAR ═══════ --\u003e\n\u003cdiv class=\"trust-bar\" role=\"list\" aria-label=\"Store trust signals\"\u003e\n  \u003cdiv class=\"trust-item\" role=\"listitem\"\u003e\n    \u003csvg class=\"icon\" width=\"16\" height=\"16\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-truck\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003cspan\u003e\u003cstrong\u003eFree shipping\u003c\/strong\u003e on orders over $49\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"trust-item\" role=\"listitem\"\u003e\n    \u003csvg class=\"icon\" width=\"16\" height=\"16\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-return\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003cspan\u003e\u003cstrong\u003e30-day returns\u003c\/strong\u003e on all orders\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"trust-item\" role=\"listitem\"\u003e\n    \u003csvg class=\"icon\" width=\"16\" height=\"16\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-calendar\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003cspan\u003eServing growers \u003cstrong\u003esince 2006\u003c\/strong\u003e\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ SECTION 3 - VIDEO ═══════ --\u003e\n\u003cdiv class=\"gallery-wrap\" role=\"region\" aria-label=\"Product video\"\u003e\n  \u003cdiv class=\"section-label\"\u003eSee it in action\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eWatch the 20-gallon machine run a wash\u003c\/div\u003e\n  \u003cdiv class=\"video-wrap\"\u003e\n    \u003ciframe width=\"100%\" style=\"aspect-ratio:16\/9;border:0;border-radius:var(--radius);\" src=\"https:\/\/www.youtube.com\/embed\/bWV_q0u6Ir0\" title=\"Bubble Magic 20 Gallon Washing Machine overview video\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen\u003e\n    \u003c\/iframe\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ SECTION 4 - COMPARISON ═══════ --\u003e\n\u003cdiv class=\"comparison-wrap\" role=\"region\" aria-label=\"Comparison table\"\u003e\n  \u003cdiv class=\"section-label\"\u003eWhy upgrade\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eHand-washing large batches vs. the 20-gallon machine\u003c\/div\u003e\n  \u003cdiv class=\"comparison-grid\"\u003e\n\n    \u003cdiv class=\"comp-col old\"\u003e\n      \u003cdiv class=\"comp-header\" aria-label=\"Hand-washing column\"\u003e\n        \u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"currentColor\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Washing by hand\n      \u003c\/div\u003e\n      \u003cul class=\"comp-list\" role=\"list\"\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eYou stir the whole wash by hand, one bucket at a time\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eAgitation drifts as your arms tire, so batches vary\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eHard stirring shreds leaf and clouds the water\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eYou lift and tip a heavy, ice-filled bucket to drain it\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eBatch size is capped by what you can physically stir\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eYour hands stay in ice water for the whole session\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"comp-col new\"\u003e\n      \u003cdiv class=\"comp-header\" aria-label=\"Bubble Magic 20 Gallon column\"\u003e\n        \u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"#fff\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Bubble Magic 20 Gallon\n      \u003c\/div\u003e\n      \u003cul class=\"comp-list\" role=\"list\"\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eA timed motor runs the agitation for you in 3-minute cycles\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eThe same motion every cycle, so batches come out more alike\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eGentle, even turning is easier on resin heads and leaf\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eA built-in drain valve empties it without lifting or tipping\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eThe 20-gallon drum handles large batches in one run\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eYou set the timer and step away while it works\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ MECHANISM EXPLAINER ═══════ --\u003e\n\u003cdiv class=\"mech-explainer\" role=\"region\" aria-label=\"How the machine fits into a wash\"\u003e\n  \u003cdiv class=\"mech-header\"\u003e\n    \u003csvg class=\"icon\" width=\"18\" height=\"18\" stroke=\"#fff\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-info\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003ch3\u003eWhere the machine fits in a bubble bag wash\u003c\/h3\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"mech-body\"\u003e\n    \u003cp\u003eThe machine handles one job in the wash: \u003cstrong\u003eagitation and draining.\u003c\/strong\u003e Your plant material goes inside the 220-micron zipper wash bag that lines the drum, along with cold water and plenty of ice. As the motor turns everything, the cold and the motion make the resin heads brittle and knock them loose. The wash bag keeps the leaf contained so only resin and water pass through it into the drum.\u003c\/p\u003e\n    \u003cp style=\"margin-top:8px;\"\u003eWhen the cycle finishes, you open the drain valve and let that resin-rich water flow down through a stacked set of micron bags, which catch the resin and grade it by size. Those collection bags are bought separately. In short: \u003cstrong\u003ethe machine replaces your arms, not your bags.\u003c\/strong\u003e\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ SECTION 5 - FEATURE CARDS ═══════ --\u003e\n\u003cdiv class=\"features-wrap\" role=\"region\" aria-label=\"Product features\"\u003e\n  \u003cdiv class=\"section-label\"\u003eWhat makes it different\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eBuilt for how growers actually wash\u003c\/div\u003e\n  \u003cdiv class=\"features-grid\"\u003e\n\n    \u003cdiv class=\"feature-card hero\" aria-label=\"Feature: timed motor\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--green)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-clock\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eTimer runs in 3-minute increments up to 15 minutes \u003cspan class=\"stat-badge\"\u003e15-min timer\u003c\/span\u003e\n\u003c\/h4\u003e\n        \u003cp\u003eDial the wash in short, repeatable stages instead of guessing when to stop stirring. Because every stage runs the same, your results stop depending on how tired your arms are.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\" aria-label=\"Feature: drain valve\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-drain\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eDrain valve and hose route straight to your bags\u003c\/h4\u003e\n        \u003cp\u003eThe valve and hose feed the wash water directly into your stacked collection bags, so the resin drops out where you want it instead of sloshing around a tipped bucket.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\" aria-label=\"Feature: capacity\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-maximize\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003e20-gallon drum for high-volume runs \u003cspan class=\"stat-badge\"\u003e20 gal\u003c\/span\u003e\n\u003c\/h4\u003e\n        \u003cp\u003eThis is the step up from a bucket or the 5-gallon machine when hand-washing has become your bottleneck. More material per session means fewer sessions to get through a harvest.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\" aria-label=\"Feature: gentle agitation\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-recycle\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eGentle, even turning protects your wash\u003c\/h4\u003e\n        \u003cp\u003eSteady rotation is easier on the material than aggressive stirring, so you knock resin loose without grinding as much green leaf into the water. Keep the water cold and it stays that way.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\" aria-label=\"Feature: included wash bag\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-bag\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003e220-micron zipper wash bag in the box\u003c\/h4\u003e\n        \u003cp\u003eThe included work bag holds your plant material inside the drum and lets resin and water pass while keeping the bulk of the leaf out of the wash. One bag ships with every machine.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\" aria-label=\"Feature: portable build\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-weight\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eLight enough to move, built to take a beating \u003cspan class=\"stat-badge\"\u003e~30 lbs\u003c\/span\u003e\n\u003c\/h4\u003e\n        \u003cp\u003eMolded from BPA-free PP and ABS and around 30 pounds empty, it moves between a wash station and storage without a cart. Covered by a 1-year manufacturer warranty.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ SECTION 6 - SPECS ═══════ --\u003e\n\u003cdiv class=\"specs-wrap\" role=\"region\" aria-label=\"Product specifications\"\u003e\n  \u003cdiv class=\"section-label\"\u003eSpecs\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eNumbers and details\u003c\/div\u003e\n  \u003cdiv class=\"specs-grid\"\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n\u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-maximize\"\u003e\u003c\/use\u003e\u003c\/svg\u003eCapacity\u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003e20-gallon drum\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n\u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-clock\"\u003e\u003c\/use\u003e\u003c\/svg\u003eTimer\u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003e15 min, 3-minute increments\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n\u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-drain\"\u003e\u003c\/use\u003e\u003c\/svg\u003eDrainage\u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003eBuilt-in drain valve and hose\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n\u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-power\"\u003e\u003c\/use\u003e\u003c\/svg\u003eDrive\u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003eElectric motor, plugs into a wall outlet\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n\u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-box\"\u003e\u003c\/use\u003e\u003c\/svg\u003eConstruction\u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003eBPA-free PP and ABS\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n\u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-weight\"\u003e\u003c\/use\u003e\u003c\/svg\u003eWeight\u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003eAbout 30 lbs (13 kg)\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n\u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-bag\"\u003e\u003c\/use\u003e\u003c\/svg\u003eIncluded bag\u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003eOne 220-micron zipper wash bag\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n\u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-shield\"\u003e\u003c\/use\u003e\u003c\/svg\u003eWarranty\u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003e1-year manufacturer warranty\u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ SECTION 7 - HOW IT WORKS ═══════ --\u003e\n\u003cdiv class=\"reassurance-block\" role=\"region\" aria-label=\"How a wash runs\"\u003e\n  \u003cdiv class=\"reassurance-header\"\u003e\n    \u003csvg class=\"icon\" width=\"18\" height=\"18\" stroke=\"#fff\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-info\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003ch3\u003eHow a wash runs, start to finish\u003c\/h3\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"reassurance-steps\" role=\"list\"\u003e\n\n    \u003cdiv class=\"reassurance-step\" role=\"listitem\"\u003e\n      \u003cdiv class=\"step-num\" aria-label=\"Step 1\"\u003e1\u003c\/div\u003e\n      \u003cdiv class=\"reassurance-step-body\"\u003e\n        \u003ch4\u003eLoad the wash bag\u003c\/h4\u003e\n        \u003cp\u003eLine the drum with the 220-micron zipper bag, add your plant material, then fill with cold water and plenty of ice.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"reassurance-step\" role=\"listitem\"\u003e\n      \u003cdiv class=\"step-num\" aria-label=\"Step 2\"\u003e2\u003c\/div\u003e\n      \u003cdiv class=\"reassurance-step-body\"\u003e\n        \u003ch4\u003eSet the timer\u003c\/h4\u003e\n        \u003cp\u003eStart with a short cycle on your first wash, then let the motor turn everything gently while you prep your bags.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"reassurance-step\" role=\"listitem\"\u003e\n      \u003cdiv class=\"step-num\" aria-label=\"Step 3\"\u003e3\u003c\/div\u003e\n      \u003cdiv class=\"reassurance-step-body\"\u003e\n        \u003ch4\u003eDrain through your bags\u003c\/h4\u003e\n        \u003cp\u003eOpen the valve and run the resin-rich water through the hose into a stacked set of micron collection bags.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"reassurance-step\" role=\"listitem\"\u003e\n      \u003cdiv class=\"step-num\" aria-label=\"Step 4\"\u003e4\u003c\/div\u003e\n      \u003cdiv class=\"reassurance-step-body\"\u003e\n        \u003ch4\u003eCollect and run it again\u003c\/h4\u003e\n        \u003cp\u003ePull the resin from each collection bag, then add fresh ice and run another cycle on the same material for a second pull.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ SECTION 8 - WHAT'S INCLUDED ═══════ --\u003e\n\u003cdiv class=\"included-wrap\" role=\"region\" aria-label=\"What's included\"\u003e\n  \u003cdiv class=\"section-label\"\u003eIn the box\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eWhat ships, and what you'll add\u003c\/div\u003e\n  \u003cdiv class=\"included-grid\"\u003e\n\n    \u003cdiv class=\"included-col\"\u003e\n      \u003cdiv class=\"included-col-header blue\"\u003e\n        \u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--blue-dark)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-box\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Ships with the machine\n      \u003c\/div\u003e\n      \u003cul class=\"included-list\" role=\"list\"\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e Bubble Magic 20-gallon washing machine\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e One 220-micron zipper wash bag\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e Built-in drain valve and hose\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e 1-year manufacturer warranty\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"included-col\"\u003e\n      \u003cdiv class=\"included-col-header green\"\u003e\n        \u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green-dark)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-layers\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        What you'll also need\n      \u003c\/div\u003e\n      \u003cul class=\"included-list\" role=\"list\"\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e \u003cstrong\u003eCollection bags:\u003c\/strong\u003e a 20\/32 gallon bubble bag set to catch and grade the resin\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e \u003cstrong\u003eIce and water:\u003c\/strong\u003e a generous supply of ice for every run\u003c\/li\u003e\n        \u003cli role=\"listitem\" style=\"border-top:1px solid var(--border);margin-top:4px;padding-top:8px;\"\u003e\n          \u003csvg width=\"13\" height=\"13\" stroke=\"var(--orange)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-star\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n          \u003cstrong\u003eOptional:\u003c\/strong\u003e a spare wash bag for back-to-back batches\n        \u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cdiv class=\"included-tip\"\u003e\n        \u003cstrong\u003eDo I need the bags too?\u003c\/strong\u003e Yes. The machine ships with the 220-micron wash bag that holds your material, but you still need a 20\/32 gallon collection set to actually catch the extract. Not sure which set fits your setup? Call or email us: \u003ca href=\"tel:7162170353\"\u003e716-217-0353\u003c\/a\u003e \/ \u003ca href=\"mailto:help@happyhydro.com\"\u003ehelp@happyhydro.com\u003c\/a\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ SECTION 9 - FAQ ═══════ --\u003e\n\u003cdiv class=\"faq-wrap\" role=\"region\" aria-label=\"Frequently asked questions\"\u003e\n  \u003cdiv class=\"section-label\"\u003eQuestions\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eFrequently asked questions\u003c\/div\u003e\n  \u003cdiv class=\"faq-list\"\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq1\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq1\" aria-expanded=\"false\"\u003e\n        Do I need experience to use this?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        No. You load the bag, add ice and water, and set the timer. The machine handles the agitation. The part that takes practice is dialing in your wash times and picking micron sizes, not running the machine itself.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq2\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq2\" aria-expanded=\"false\"\u003e\n        Does it come with everything I need to make extract?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        Not quite. It includes the wash bag that holds your material, but you still need a 20\/32 gallon set of collection bags to catch and grade the resin, plus ice and water. See the \"what you'll also need\" section above, or call us and we'll make sure you order the right bags.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq3\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq3\" aria-expanded=\"false\"\u003e\n        Should I get the 20-gallon or the 5-gallon?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        Get the 20-gallon if you regularly process large amounts of material and hand-washing has become the bottleneck. If you run small personal batches, the 5-gallon is easier to store and uses less ice and water per run. When in doubt, size to the biggest batch you actually run, not the average one.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq4\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq4\" aria-expanded=\"false\"\u003e\n        Will a machine hurt quality compared to washing by hand?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        The motion is more consistent than most people can hold by hand across a full wash, and steady turning knocks resin loose without over-working the leaf. The keys are the same as any wash: keep the water cold and don't run the timer longer than you need to.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq5\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq5\" aria-expanded=\"false\"\u003e\n        How do I clean and store it?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        Drain it fully through the valve, rinse the drum and wash bag with clean water, and let both air-dry before you put it away. Keeping the drain valve clear of plant bits is the main upkeep, so give it a quick flush after every session.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq6\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq6\" aria-expanded=\"false\"\u003e\n        What happens if the motor or valve stops working?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        The machine carries a 1-year manufacturer warranty. If a part malfunctions within that window, the manufacturer typically ships a replacement part rather than taking the whole unit back. Email us a photo of the issue at \u003ca href=\"mailto:help@happyhydro.com\"\u003ehelp@happyhydro.com\u003c\/a\u003e and we'll help you get it sorted.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq7\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq7\" aria-expanded=\"false\"\u003e\n        What if it shows up damaged or isn't right for me?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        If you receive a defective or damaged unit, email us a photo at \u003ca href=\"mailto:help@happyhydro.com\"\u003ehelp@happyhydro.com\u003c\/a\u003e and we'll take care of you. For change-of-mind returns, we accept returns within 30 days for most items in new, resalable condition. If you're not sure whether this product is right for your setup, call us first at 716-217-0353. We'd rather answer your questions before you order.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq8\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq8\" aria-expanded=\"false\"\u003e\n        Why should I buy this from Happy Hydro instead of somewhere else?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        Happy Hydro has been selling growing equipment since 2006. We've carried Bubble Magic for years because the systems work great and customers who buy them leave happy. Have questions before you order? Call 716-217-0353 or email \u003ca href=\"mailto:help@happyhydro.com\"\u003ehelp@happyhydro.com\u003c\/a\u003e. We're easy to reach and happy to help!\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- ═══════ SECTION 10 - CLOSING FOOTER ═══════ --\u003e\n\u003cdiv class=\"closing-trust\" role=\"contentinfo\" aria-label=\"Store contact and trust information\"\u003e\n  \u003cdiv class=\"closing-trust-text\"\u003e\n    \u003csvg class=\"icon\" width=\"20\" height=\"20\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-shield\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003cp\u003e\n      \u003cstrong\u003eQuestions? We're easy to reach.\u003c\/strong\u003e\u003cbr\u003e\n      Happy Hydro has been serving growers since 2006. Call or email us before you order, after you order, or any time something comes up. When you're happy, we're happy.\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"closing-contact\"\u003e\n    \u003ca href=\"tel:7162170353\" aria-label=\"Call Happy Hydro at 716-217-0353\"\u003e\n      \u003csvg width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-phone\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      716-217-0353\n    \u003c\/a\u003e\n    \u003ca href=\"mailto:help@happyhydro.com\" aria-label=\"Email Happy Hydro\"\u003e\n      \u003csvg width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-email\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      help@happyhydro.com\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e","brand":"Bubble Magic","offers":[{"title":"Machine Only","offer_id":39431114326083,"sku":"130020","price":324.95,"currency_code":"USD","in_stock":true},{"title":"Machine + 4 Bag Set","offer_id":43825955176515,"sku":"130020-191924","price":413.95,"currency_code":"USD","in_stock":true},{"title":"Machine + 8 Bag Set","offer_id":43825955209283,"sku":"130020-191928","price":517.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2082\/5769\/products\/Bubble-Magic-20-Gallon-Ice-Water-Extraction-Machine-Happy-Hydro-23092505215043.jpg?v=1782709514"},{"product_id":"bubble-magic-5-gallon-mini-washing-machine","title":"Upgraded Bubble Magic 5 Gallon Ice Water Extraction Machine - v2","description":"\u003c!-- HAPPY HYDRO PRODUCT LISTING - Upgraded Bubble Magic 5 Gallon Ice Water Extraction Machine v2 --\u003e\n\u003c!-- Paste everything below straight into the Shopify product description (\u003c\u003e HTML view). --\u003e\n\u003c!-- No document wrapper (no doctype\/html\/head\/title\/meta\/body). --\u003e\n\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;600;700\u0026family=Inter:wght@400;500\u0026display=swap');\n\n:root {\n  --bg:           #ffffff;\n  --bg-soft:      #fafafa;\n  --text:         #4d4d4d;\n  --text-light:   #6b6b6b;\n  --border:       #e1e3e4;\n  --blue:         #01adf0;\n  --blue-dark:    #0190c8;\n  --blue-pale:    #e8f7fd;\n  --green:        #61a84d;\n  --green-dark:   #4d8a3c;\n  --green-pale:   #edf6ea;\n  --orange:       #ff723c;\n  --orange-pale:  #fff2ed;\n  --font-head:    'Poppins', sans-serif;\n  --font-body:    'Inter', sans-serif;\n  --radius:       8px;\n  --radius-sm:    5px;\n}\n\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\nbody {\n  font-family: var(--font-body);\n  font-size: 14px;\n  background: var(--bg);\n  color: var(--text);\n  line-height: 1.65;\n  padding-bottom: 40px;\n}\n\n:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 3px; }\n.icon { display: inline-block; flex-shrink: 0; vertical-align: middle; }\n.svg-sprite { display: none; }\n\n\/* 1. INTRO *\/\n.intro { padding-bottom: 18px; border-bottom: 1px solid var(--border); }\n.outcome-headline {\n  font-family: var(--font-head);\n  font-size: 1.15rem;\n  font-weight: 700;\n  color: var(--text);\n  line-height: 1.25;\n  margin-bottom: 10px;\n}\n.outcome-headline span { color: var(--green); }\n.intro p { font-size: 0.84rem; color: var(--text-light); line-height: 1.75; }\n\n.cert-strip { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }\n.cert-badge {\n  display: inline-flex; align-items: center; gap: 5px;\n  background: var(--green-pale); border: 1px solid #c3e0ba;\n  color: var(--green-dark); font-family: var(--font-head);\n  font-size: 0.68rem; font-weight: 700; padding: 4px 10px; border-radius: 20px;\n}\n\n.upgrade-callout {\n  display: flex; align-items: flex-start; gap: 10px;\n  background: var(--orange-pale); border: 1px solid #ffc9b3;\n  border-radius: var(--radius); padding: 11px 14px; margin-top: 12px;\n  font-size: 0.77rem; color: var(--text-light); line-height: 1.6;\n}\n.upgrade-callout svg { flex-shrink: 0; margin-top: 1px; color: var(--orange); }\n.upgrade-callout strong { color: var(--text); }\n.upgrade-callout a { color: var(--blue); font-weight: 600; }\n\n\/* 2. TRUST BAR *\/\n.trust-bar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  gap: 4px 16px;\n  padding: 9px 12px;\n  border: 1px solid var(--border);\n  border-radius: var(--radius);\n  background: var(--bg-soft);\n  margin: 18px 0;\n}\n.trust-item {\n  display: flex;\n  align-items: center;\n  gap: 6px;\n  font-size: 0.74rem;\n  font-weight: 500;\n  color: var(--text-light);\n}\n.trust-item strong { color: var(--text); }\n\n\/* SECTION LABELS *\/\n.section-label {\n  font-family: var(--font-head);\n  font-size: 0.64rem;\n  font-weight: 600;\n  text-transform: uppercase;\n  letter-spacing: 0.1em;\n  color: var(--blue);\n  margin-bottom: 3px;\n}\n.section-title {\n  font-family: var(--font-head);\n  font-size: 0.97rem;\n  font-weight: 700;\n  color: var(--text);\n  margin-bottom: 11px;\n}\n\n\/* 3. COMPARISON *\/\n.comparison-wrap { margin: 20px 0; }\n.comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }\n.comp-col { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); }\n.comp-header {\n  padding: 8px 13px;\n  font-family: var(--font-head);\n  font-size: 0.74rem;\n  font-weight: 700;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 7px;\n  text-align: center;\n}\n.comp-col.old .comp-header { background: #f5f5f5; color: var(--text-light); border-bottom: 1px solid var(--border); }\n.comp-col.new .comp-header { background: var(--green); color: #fff; }\n.comp-list { list-style: none; padding: 0; }\n.comp-list li {\n  display: flex;\n  align-items: flex-start;\n  gap: 8px;\n  padding: 7px 13px;\n  font-size: 0.76rem;\n  color: var(--text-light);\n  border-bottom: 1px solid var(--border);\n  line-height: 1.45;\n}\n.comp-list li:last-child { border-bottom: none; }\n.comp-col.old .comp-list li svg { color: #bbb; margin-top: 2px; flex-shrink: 0; }\n.comp-col.new .comp-list li { color: var(--text); }\n.comp-col.new .comp-list li svg { color: var(--green); margin-top: 2px; flex-shrink: 0; }\n\n\/* MECHANISM EXPLAINER *\/\n.mech-explainer {\n  background: var(--green-pale);\n  border: 1px solid #c3e0ba;\n  border-radius: var(--radius);\n  margin: 20px 0;\n  overflow: hidden;\n}\n.mech-header { background: var(--green-dark); padding: 10px 15px; display: flex; align-items: center; gap: 9px; }\n.mech-header h3 { font-family: var(--font-head); font-size: 0.83rem; font-weight: 700; color: #fff; margin: 0; }\n.mech-body { padding: 14px 16px; font-size: 0.78rem; color: var(--text-light); line-height: 1.75; }\n.mech-body strong { color: var(--text); }\n\n\/* 5. FEATURE CARDS *\/\n.features-wrap { margin: 20px 0; }\n.features-grid { display: flex; flex-direction: column; gap: 7px; }\n.feature-card {\n  background: var(--bg-soft);\n  border: 1px solid var(--border);\n  border-radius: var(--radius);\n  padding: 11px 13px;\n  display: flex;\n  flex-direction: row;\n  align-items: flex-start;\n  gap: 11px;\n}\n.feature-card.hero { border-color: var(--green); background: var(--green-pale); }\n.feature-icon-wrap {\n  width: 34px;\n  height: 34px;\n  border-radius: var(--radius-sm);\n  background: #fff;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n  border: 1px solid var(--border);\n}\n.feature-card.hero .feature-icon-wrap { border-color: #b8ddb0; }\n.feature-card-body { flex: 1; min-width: 0; }\n.feature-card h4 {\n  font-family: var(--font-head);\n  font-size: 0.8rem;\n  font-weight: 700;\n  color: var(--text);\n  margin-bottom: 3px;\n  line-height: 1.3;\n}\n.feature-card p { font-size: 0.74rem; color: var(--text-light); line-height: 1.55; margin: 0; }\n.stat-badge {\n  display: inline-block;\n  background: var(--green);\n  color: #fff;\n  font-family: var(--font-head);\n  font-size: 0.61rem;\n  font-weight: 700;\n  padding: 2px 7px;\n  border-radius: 20px;\n  white-space: nowrap;\n  margin-left: 6px;\n  vertical-align: middle;\n}\n\n\/* 6. SPECS *\/\n.specs-wrap { margin: 20px 0; }\n.specs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }\n.spec-card {\n  background: var(--bg-soft);\n  border: 1px solid var(--border);\n  border-radius: var(--radius);\n  padding: 9px 12px;\n}\n.spec-card-label {\n  display: flex;\n  align-items: center;\n  gap: 5px;\n  font-size: 0.65rem;\n  font-weight: 500;\n  color: var(--text-light);\n  text-transform: uppercase;\n  letter-spacing: 0.06em;\n  margin-bottom: 2px;\n}\n.spec-card-value { font-family: var(--font-head); font-size: 0.81rem; font-weight: 600; color: var(--text); line-height: 1.3; }\n\n\/* 7. HOW IT WORKS *\/\n.reassurance-block {\n  background: var(--blue-pale);\n  border: 1px solid #b3e4f9;\n  border-radius: var(--radius);\n  margin: 20px 0;\n  overflow: hidden;\n}\n.reassurance-header {\n  background: var(--blue);\n  padding: 10px 15px;\n  display: flex;\n  align-items: center;\n  gap: 9px;\n}\n.reassurance-header h3 { font-family: var(--font-head); font-size: 0.83rem; font-weight: 700; color: #fff; margin: 0; }\n.reassurance-steps {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 1px;\n  background: #b3e4f9;\n}\n.reassurance-step {\n  display: flex;\n  flex-direction: row;\n  align-items: flex-start;\n  gap: 10px;\n  padding: 12px 14px;\n  background: var(--blue-pale);\n  text-align: left;\n}\n.step-num {\n  width: 22px;\n  height: 22px;\n  border-radius: 50%;\n  background: var(--blue);\n  color: #fff;\n  font-family: var(--font-head);\n  font-size: 0.7rem;\n  font-weight: 700;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n  margin-top: 1px;\n}\n.reassurance-step-body { flex: 1; }\n.reassurance-step h4 { font-family: var(--font-head); font-size: 0.76rem; font-weight: 700; color: var(--text); line-height: 1.3; margin-bottom: 2px; }\n.reassurance-step p { font-size: 0.71rem; color: var(--text-light); line-height: 1.55; margin: 0; }\n\n\/* 8. INCLUDED *\/\n.included-wrap { margin: 20px 0; }\n.included-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }\n.included-col { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }\n.included-col-header {\n  padding: 8px 13px;\n  font-family: var(--font-head);\n  font-size: 0.74rem;\n  font-weight: 700;\n  display: flex;\n  align-items: center;\n  gap: 6px;\n  border-bottom: 1px solid var(--border);\n}\n.included-col-header.blue { background: var(--blue-pale); color: var(--blue-dark); }\n.included-col-header.green { background: var(--green-pale); color: var(--green-dark); }\n.included-list { list-style: none; padding: 6px 0; }\n.included-list li {\n  display: flex;\n  align-items: flex-start;\n  gap: 7px;\n  padding: 4px 13px;\n  font-size: 0.75rem;\n  color: var(--text-light);\n  line-height: 1.5;\n}\n.included-list li svg { flex-shrink: 0; margin-top: 3px; }\n.included-tip {\n  padding: 10px 13px;\n  font-size: 0.74rem;\n  color: var(--text-light);\n  border-top: 1px solid var(--border);\n  background: #fff;\n  line-height: 1.6;\n}\n.included-tip strong { color: var(--text); }\n.included-tip a { color: var(--blue); text-decoration: none; font-weight: 600; }\n.included-tip a:hover { text-decoration: underline; }\n\n\/* 9. FAQ *\/\n.faq-wrap { margin: 20px 0; }\n.faq-list { display: flex; flex-direction: column; gap: 6px; }\n.faq-item { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--bg); }\n.faq-toggle { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }\n.faq-label {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: 10px;\n  padding: 11px 14px;\n  cursor: pointer;\n  font-family: var(--font-head);\n  font-size: 0.79rem;\n  font-weight: 600;\n  color: var(--text);\n  user-select: none;\n  transition: background 0.15s;\n  line-height: 1.4;\n}\n.faq-label:hover { background: var(--bg-soft); }\n.faq-q-icon {\n  flex-shrink: 0;\n  width: 20px;\n  height: 20px;\n  border-radius: 50%;\n  background: var(--bg-soft);\n  border: 1px solid var(--border);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: var(--blue);\n  transition: background 0.15s, color 0.15s, transform 0.2s;\n}\n.faq-answer {\n  max-height: 0;\n  overflow: hidden;\n  transition: max-height 0.35s ease, padding 0.2s;\n  font-size: 0.78rem;\n  color: var(--text-light);\n  line-height: 1.7;\n  padding: 0 14px;\n  background: var(--bg-soft);\n}\n.faq-answer a { color: var(--blue); }\n.faq-toggle:checked + .faq-label { background: var(--blue); color: #fff; }\n.faq-toggle:checked + .faq-label .faq-q-icon {\n  background: rgba(255,255,255,0.2);\n  border-color: rgba(255,255,255,0.4);\n  transform: rotate(45deg);\n}\n.faq-toggle:checked ~ .faq-answer {\n  max-height: 500px;\n  padding: 12px 14px;\n  border-top: 1px solid rgba(1,173,240,0.15);\n}\n.faq-toggle:focus-visible + .faq-label { outline: 3px solid var(--blue); outline-offset: -2px; }\n\n\/* 10. CLOSING FOOTER *\/\n.closing-trust {\n  margin-top: 22px;\n  padding: 15px 16px;\n  background: var(--bg-soft);\n  border: 1px solid var(--border);\n  border-radius: var(--radius);\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 12px;\n  justify-content: space-between;\n}\n.closing-trust-text { display: flex; align-items: flex-start; gap: 10px; flex: 1; min-width: 200px; }\n.closing-trust-text svg { color: var(--green); margin-top: 2px; flex-shrink: 0; }\n.closing-trust-text p { font-size: 0.78rem; color: var(--text-light); line-height: 1.6; }\n.closing-trust-text strong { color: var(--text); font-weight: 600; }\n.closing-contact { display: flex; flex-direction: column; gap: 5px; align-items: flex-end; }\n.closing-contact a {\n  display: inline-flex;\n  align-items: center;\n  gap: 5px;\n  font-family: var(--font-head);\n  font-size: 0.74rem;\n  font-weight: 600;\n  color: var(--blue);\n  text-decoration: none;\n  padding: 6px 12px;\n  border: 1px solid var(--blue);\n  border-radius: var(--radius-sm);\n  transition: background 0.15s, color 0.15s;\n  white-space: nowrap;\n}\n.closing-contact a:hover { background: var(--blue); color: #fff; }\n.closing-contact a svg { flex-shrink: 0; }\n\u003c\/style\u003e\n\n\u003c!-- SVG ICON SPRITE --\u003e\n\u003csvg class=\"svg-sprite\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n  \u003cdefs\u003e\n    \u003csymbol id=\"ic-check\" viewbox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpolyline points=\"2.5,8.5 6,12 13.5,4\"\u003e\u003c\/polyline\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-x\" viewbox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"\u003e\n      \u003cline x1=\"3\" y1=\"3\" x2=\"13\" y2=\"13\"\u003e\u003c\/line\u003e\u003cline x1=\"13\" y1=\"3\" x2=\"3\" y2=\"13\"\u003e\u003c\/line\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-plus\" viewbox=\"0 0 12 12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"\u003e\n      \u003cline x1=\"6\" y1=\"1\" x2=\"6\" y2=\"11\"\u003e\u003c\/line\u003e\u003cline x1=\"1\" y1=\"6\" x2=\"11\" y2=\"6\"\u003e\u003c\/line\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-shield\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpath d=\"M10 2l7 3v5c0 4-3 7-7 8C7 17 3 14 3 10V5z\"\u003e\u003c\/path\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-truck\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003crect x=\"1\" y=\"5\" width=\"12\" height=\"9\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M13 8h3l2 3v3h-5V8z\"\u003e\u003c\/path\u003e\u003ccircle cx=\"5\" cy=\"16\" r=\"1.5\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"15\" cy=\"16\" r=\"1.5\"\u003e\u003c\/circle\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-return\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpath d=\"M4 10a6 6 0 106-6H6\"\u003e\u003c\/path\u003e\u003cpolyline points=\"3,7 6,10 3,13\"\u003e\u003c\/polyline\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-calendar\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003crect x=\"2\" y=\"4\" width=\"16\" height=\"14\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cline x1=\"6\" y1=\"2\" x2=\"6\" y2=\"6\"\u003e\u003c\/line\u003e\u003cline x1=\"14\" y1=\"2\" x2=\"14\" y2=\"6\"\u003e\u003c\/line\u003e\u003cline x1=\"2\" y1=\"9\" x2=\"18\" y2=\"9\"\u003e\u003c\/line\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-phone\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpath d=\"M5 2h4l2 4-2.5 1.5a11 11 0 004 4L14 9l4 2v4a2 2 0 01-2 2A16 16 0 013 4a2 2 0 012-2z\"\u003e\u003c\/path\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-email\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003crect x=\"2\" y=\"5\" width=\"16\" height=\"12\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpolyline points=\"2,5 10,13 18,5\"\u003e\u003c\/polyline\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-info\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\u003e\n      \u003ccircle cx=\"10\" cy=\"10\" r=\"8\"\u003e\u003c\/circle\u003e\u003cline x1=\"10\" y1=\"9\" x2=\"10\" y2=\"14\"\u003e\u003c\/line\u003e\u003ccircle cx=\"10\" cy=\"6.5\" r=\"0.5\" fill=\"currentColor\"\u003e\u003c\/circle\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-box\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpath d=\"M10 2l8 4v8l-8 4-8-4V6z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"2,6 10,10 18,6\"\u003e\u003c\/polyline\u003e\u003cline x1=\"10\" y1=\"10\" x2=\"10\" y2=\"18\"\u003e\u003c\/line\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-star\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpolygon points=\"10,2 12.4,7.5 18.5,8 14,12.3 15.4,18 10,15 4.6,18 6,12.3 1.5,8 7.6,7.5\"\u003e\u003c\/polygon\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-clock\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003ccircle cx=\"10\" cy=\"10\" r=\"8\"\u003e\u003c\/circle\u003e\u003cpolyline points=\"10,5 10,10 13.5,12\"\u003e\u003c\/polyline\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-drop\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpath d=\"M10 2.5c3 3.6 5 6.2 5 8.5a5 5 0 01-10 0c0-2.3 2-4.9 5-8.5z\"\u003e\u003c\/path\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-bolt\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpolygon points=\"11,2 4,11 9,11 8,18 16,9 11,9\"\u003e\u003c\/polygon\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-bag\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpath d=\"M4 6h12l-1.2 11a1 1 0 01-1 .9H6.2a1 1 0 01-1-.9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M7 6V4.5a3 3 0 016 0V6\"\u003e\u003c\/path\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-layers\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpolygon points=\"10,2 18,6.5 10,11 2,6.5\"\u003e\u003c\/polygon\u003e\u003cpolyline points=\"2,10.5 10,15 18,10.5\"\u003e\u003c\/polyline\u003e\u003cpolyline points=\"2,14 10,18.5 18,14\"\u003e\u003c\/polyline\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-snow\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cline x1=\"10\" y1=\"2\" x2=\"10\" y2=\"18\"\u003e\u003c\/line\u003e\u003cline x1=\"3\" y1=\"6\" x2=\"17\" y2=\"14\"\u003e\u003c\/line\u003e\u003cline x1=\"17\" y1=\"6\" x2=\"3\" y2=\"14\"\u003e\u003c\/line\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-wrench\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cpath d=\"M13.5 2.5a4.5 4.5 0 00-5 6.6L3 14.6a1.5 1.5 0 002.1 2.1l5.5-5.5a4.5 4.5 0 005.9-5.7l-2.6 2.6-2.3-2.3z\"\u003e\u003c\/path\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-arrow-up\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003cline x1=\"10\" y1=\"16\" x2=\"10\" y2=\"4\"\u003e\u003c\/line\u003e\u003cpolyline points=\"5,9 10,4 15,9\"\u003e\u003c\/polyline\u003e\n    \u003c\/symbol\u003e\n    \u003csymbol id=\"ic-scale\" viewbox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n      \u003crect x=\"2.5\" y=\"5\" width=\"15\" height=\"12\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cline x1=\"6\" y1=\"2.5\" x2=\"14\" y2=\"2.5\"\u003e\u003c\/line\u003e\u003cpolyline points=\"7,12 10,9 13,12\"\u003e\u003c\/polyline\u003e\n    \u003c\/symbol\u003e\n  \u003c\/defs\u003e\n\u003c\/svg\u003e\n\n\n\u003c!-- SECTION 1 - HEADLINE + INTRO --\u003e\n\u003cdiv class=\"intro\" role=\"region\" aria-label=\"Product introduction\"\u003e\n  \u003ch1 class=\"outcome-headline\"\u003e\n    Wash your harvest with the same gentle agitation \u003cspan\u003eevery single run\u003c\/span\u003e\n  \u003c\/h1\u003e\n  \u003cp\u003e\n    Ice water extraction comes down to one thing: moving the material enough to knock the resin loose without beating it into green sludge, and doing it the same way every time. That is hard to hold steady with a paddle once your arm gets tired, and it is the whole reason the Bubble Magic 5 Gallon v2 exists. It runs one fixed paddle speed on a mechanical timer and drains through a valve in the base of the tub. Load it. Start it. Walk away.\n  \u003c\/p\u003e\n\n  \u003cdiv class=\"cert-strip\"\u003e\n    \u003cspan class=\"cert-badge\"\u003e\u003csvg width=\"11\" height=\"11\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e220 micron zipper bag included\u003c\/span\u003e\n    \u003cspan class=\"cert-badge\"\u003e\u003csvg width=\"11\" height=\"11\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003ePlugs into a standard outlet\u003c\/span\u003e\n    \u003cspan class=\"cert-badge\"\u003e\u003csvg width=\"11\" height=\"11\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eFits 5 gallon extraction bag sets\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"upgrade-callout\" aria-label=\"Larger capacity option\"\u003e\n    \u003csvg width=\"18\" height=\"18\" fill=\"none\"\u003e\u003cuse href=\"#ic-arrow-up\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003cspan\u003e\u003cstrong\u003eRunning more than one person's harvest?\u003c\/strong\u003e The \u003ca href=\"https:\/\/happyhydro.com\/products\/bubble-magic-20-gallon-mini-washing-machine\"\u003eBubble Magic 20 Gallon machine\u003c\/a\u003e uses the same paddle agitation and drain design in a tub built for multi plant batches. If you are between the two sizes, call us at 716-217-0353 and we will help you pick.\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- SECTION 2 - TRUST BAR --\u003e\n\u003cdiv class=\"trust-bar\" role=\"list\" aria-label=\"Store trust signals\"\u003e\n  \u003cdiv class=\"trust-item\" role=\"listitem\"\u003e\n    \u003csvg class=\"icon\" width=\"16\" height=\"16\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-truck\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003cspan\u003e\u003cstrong\u003eFree shipping\u003c\/strong\u003e on orders over $49\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"trust-item\" role=\"listitem\"\u003e\n    \u003csvg class=\"icon\" width=\"16\" height=\"16\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-return\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003cspan\u003e\u003cstrong\u003e30-day returns\u003c\/strong\u003e on all orders\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"trust-item\" role=\"listitem\"\u003e\n    \u003csvg class=\"icon\" width=\"16\" height=\"16\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-calendar\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003cspan\u003eServing growers \u003cstrong\u003esince 2006\u003c\/strong\u003e\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- SECTION 3 - COMPARISON --\u003e\n\u003cdiv class=\"comparison-wrap\" role=\"region\" aria-label=\"Comparison: hand stirring vs Bubble Magic 5 Gallon v2\"\u003e\n  \u003cdiv class=\"section-label\"\u003eWhy upgrade\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eStirring a bucket by hand vs. the Bubble Magic 5 Gallon v2\u003c\/div\u003e\n  \u003cdiv class=\"comparison-grid\"\u003e\n\n    \u003cdiv class=\"comp-col old\"\u003e\n      \u003cdiv class=\"comp-header\" aria-label=\"Hand stirring column\"\u003e\n        \u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"currentColor\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Bucket and paddle\n      \u003c\/div\u003e\n      \u003cul class=\"comp-list\" role=\"list\"\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eAgitation speed drifts as your arm fatigues\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eWash length is whatever you counted in your head\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eLoose material drifts into the bag stack while you pour\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eYou lift and tip the full bucket to drain it\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eBoth hands are busy for the entire wash\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-x\"\u003e\u003c\/use\u003e\u003c\/svg\u003eHard to repeat a run that came out well\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"comp-col new\"\u003e\n      \u003cdiv class=\"comp-header\" aria-label=\"Bubble Magic 5 Gallon v2 column\"\u003e\n        \u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"#fff\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Bubble Magic 5 Gallon v2\n      \u003c\/div\u003e\n      \u003cul class=\"comp-list\" role=\"list\"\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eOne motor driven paddle speed from start to finish\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eTimer ends the wash at a set number of minutes\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eMaterial stays sealed in the zippered wash bag\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eDrain valve and hose empty the tub under gravity\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eSet your bag stack up while the cycle runs\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003eWrite down the time and repeat it exactly next season\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- MECHANISM EXPLAINER --\u003e\n\u003cdiv class=\"mech-explainer\" role=\"region\" aria-label=\"How the paddle wash separates resin\"\u003e\n  \u003cdiv class=\"mech-header\"\u003e\n    \u003csvg class=\"icon\" width=\"18\" height=\"18\" stroke=\"#fff\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-snow\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003ch3\u003eWhy fixed speed agitation matters more than force\u003c\/h3\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"mech-body\"\u003e\n    \u003cp\u003eResin heads sit on the outside of the plant on a thin stalk. Chill the material and the water close to freezing and those stalks turn brittle, so light contact snaps them off and the heads sink through the water instead of floating with the leaf. \u003cstrong\u003eThe goal of the wash is to break the stalks without tearing the plant material around them.\u003c\/strong\u003e Torn leaf sheds fine green particles that ride straight down into your lower micron bags, and once they are in there, no amount of rinsing separates them back out.\u003c\/p\u003e\n    \u003cp style=\"margin-top:8px;\"\u003eThat is why speed control matters more than power. The paddle in this machine oscillates at one rate for the whole cycle, which takes agitation off your list of variables and leaves you with a single lever: how long you run it. Wash short, drain, look at what you pulled, then put the same material back in for a longer run. Over two or three seasons you end up with a written recipe instead of a feel for it.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- SECTION 5 - FEATURE CARDS --\u003e\n\u003cdiv class=\"features-wrap\" role=\"region\" aria-label=\"Product features\"\u003e\n  \u003cdiv class=\"section-label\"\u003eWhat makes it different\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eBuilt for how a home wash session actually goes\u003c\/div\u003e\n  \u003cdiv class=\"features-grid\"\u003e\n\n    \u003cdiv class=\"feature-card hero\" aria-label=\"Feature: timed pulls\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--green)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-clock\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eKeep your first pull separate from the rest \u003cspan class=\"stat-badge\"\u003e3 minute increments\u003c\/span\u003e\n\u003c\/h4\u003e\n        \u003cp\u003eA short first wash releases the ripest resin with the least plant matter, and that pull is worth keeping on its own. Draining and collecting between timed runs is how you split grades instead of blending everything into one jar.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-bag\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eZippered wash bag keeps leaf out of your screens\u003c\/h4\u003e\n        \u003cp\u003eMaterial goes into the included 220 micron bag and the zipper closes over it, so stems and leaf stay in the tub while resin passes through the mesh. Check that the zipper is fully closed before every cycle.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-drop\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eDrains under gravity instead of over your shoulder\u003c\/h4\u003e\n        \u003cp\u003eFive gallons of water alone weighs more than 40 pounds before you add ice. Open the valve, drop the hose into the top bag of your stack, and the tub empties without a single lift.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-bolt\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eNo plumbing, no hookup, no dedicated room\u003c\/h4\u003e\n        \u003cp\u003eNothing gets plumbed in and nothing gets hooked to a faucet, so a basement bench, a garage table, or a spot next to the utility sink all work. An extension cord is the only accessory most people need.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-scale\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eSized for one grower's harvest \u003cspan class=\"stat-badge\"\u003eUp to 225 g per run\u003c\/span\u003e\n\u003c\/h4\u003e\n        \u003cp\u003eMaterial, ice, and water share the same tub, so the working load is roughly a half pound of frozen material at a time. That is a comfortable afternoon for most home growers and leaves room for the ice to move.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"feature-card\"\u003e\n      \u003cdiv class=\"feature-icon-wrap\"\u003e\n        \u003csvg width=\"22\" height=\"22\" stroke=\"var(--blue)\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-box\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"feature-card-body\"\u003e\n        \u003ch4\u003eLight enough to carry to the water\u003c\/h4\u003e\n        \u003cp\u003eThe machine weighs about 14 pounds empty, so it moves to wherever the sink and the floor drain are and goes back on a shelf when the season ends. It does not need a permanent home.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- SECTION 6 - SPECIFICATIONS --\u003e\n\u003cdiv class=\"specs-wrap\" role=\"region\" aria-label=\"Product specifications\"\u003e\n  \u003cdiv class=\"section-label\"\u003eSpecs\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eNumbers on the machine itself\u003c\/div\u003e\n  \u003cdiv class=\"specs-grid\"\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n        \u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-drop\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Tub volume\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003e5 gallons\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n        \u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-clock\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Timer\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003e15 minutes max, set in 3 minute steps\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n        \u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-bolt\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Power\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003e110V, 60 Hz\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n        \u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-bolt\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Wash motor draw\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003e135 watts\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n        \u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-layers\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Agitation\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003eOscillating paddle, single speed\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n        \u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-wrench\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Drain\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003eValve and hose at the base of the tub\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n        \u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-box\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Construction\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003eABS and polypropylene, BPA free\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"spec-card\"\u003e\n      \u003cdiv class=\"spec-card-label\"\u003e\n        \u003csvg class=\"icon\" width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-shield\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Warranty\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-card-value\"\u003e1 year, handled through Happy Hydro\u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- SECTION 7 - HOW IT WORKS --\u003e\n\u003cdiv class=\"reassurance-block\" role=\"region\" aria-label=\"How a wash session runs\"\u003e\n  \u003cdiv class=\"reassurance-header\"\u003e\n    \u003csvg class=\"icon\" width=\"18\" height=\"18\" stroke=\"#fff\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-info\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003ch3\u003eHow a wash session runs, start to finish\u003c\/h3\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"reassurance-steps\" role=\"list\"\u003e\n\n    \u003cdiv class=\"reassurance-step\" role=\"listitem\"\u003e\n      \u003cdiv class=\"step-num\" aria-label=\"Step 1\"\u003e1\u003c\/div\u003e\n      \u003cdiv class=\"reassurance-step-body\"\u003e\n        \u003ch4\u003eFreeze first, then load\u003c\/h4\u003e\n        \u003cp\u003eMaterial should go in frozen solid, not fresh and not dry. Load it into the wash bag, zip it closed, and set it in the tub.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"reassurance-step\" role=\"listitem\"\u003e\n      \u003cdiv class=\"step-num\" aria-label=\"Step 2\"\u003e2\u003c\/div\u003e\n      \u003cdiv class=\"reassurance-step-body\"\u003e\n        \u003ch4\u003eBuild the bag stack before you start\u003c\/h4\u003e\n        \u003cp\u003eNest your collection bags in a bucket with the finest micron on the bottom and the coarsest on top. Set that bucket lower than the machine so the drain hose feeds it.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"reassurance-step\" role=\"listitem\"\u003e\n      \u003cdiv class=\"step-num\" aria-label=\"Step 3\"\u003e3\u003c\/div\u003e\n      \u003cdiv class=\"reassurance-step-body\"\u003e\n        \u003ch4\u003eIce, cold water, timer\u003c\/h4\u003e\n        \u003cp\u003eFill with cold water and ice until the bag is submerged and floating free. Start with a short cycle on your first run and let the water settle for a minute after it stops.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"reassurance-step\" role=\"listitem\"\u003e\n      \u003cdiv class=\"step-num\" aria-label=\"Step 4\"\u003e4\u003c\/div\u003e\n      \u003cdiv class=\"reassurance-step-body\"\u003e\n        \u003ch4\u003eDrain, collect, repeat\u003c\/h4\u003e\n        \u003cp\u003eOpen the valve and let the water run through the stack, then lift each bag and collect what is sitting on the screen. Put the same material back in and run it again for a second pull.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- SECTION 8 - WHAT'S INCLUDED --\u003e\n\u003cdiv class=\"included-wrap\" role=\"region\" aria-label=\"What's included in the box\"\u003e\n  \u003cdiv class=\"section-label\"\u003eIn the box\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eWhat ships and what you can add to it\u003c\/div\u003e\n  \u003cdiv class=\"included-grid\"\u003e\n\n    \u003cdiv class=\"included-col\"\u003e\n      \u003cdiv class=\"included-col-header blue\"\u003e\n        \u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--blue-dark)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-box\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Included with every machine\n      \u003c\/div\u003e\n      \u003cul class=\"included-list\" role=\"list\"\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e Bubble Magic 5 Gallon Extraction Machine v2\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e One 220 micron zipper wash bag\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e Drain hose, fitted to the tub valve\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e Clear hinged lid\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--green)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e Power cord, standard three prong plug\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"included-col\"\u003e\n      \u003cdiv class=\"included-col-header green\"\u003e\n        \u003csvg class=\"icon\" width=\"14\" height=\"14\" stroke=\"var(--green-dark)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-layers\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n        Bundle options at checkout\n      \u003c\/div\u003e\n      \u003cul class=\"included-list\" role=\"list\"\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e \u003cstrong\u003eMachine only:\u003c\/strong\u003e you already own collection bags\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e \u003cstrong\u003eMachine plus 3 bag set:\u003c\/strong\u003e 220, 73, 25 micron\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e \u003cstrong\u003eMachine plus 5 bag set:\u003c\/strong\u003e 220, 160, 120, 73, 25 micron\u003c\/li\u003e\n        \u003cli role=\"listitem\"\u003e\n\u003csvg width=\"13\" height=\"13\" stroke=\"var(--blue)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-check\"\u003e\u003c\/use\u003e\u003c\/svg\u003e \u003cstrong\u003eMachine plus 8 bag set:\u003c\/strong\u003e 220, 190, 160, 120, 90, 73, 45, 25 micron\u003c\/li\u003e\n        \u003cli role=\"listitem\" style=\"border-top:1px solid var(--border);margin-top:4px;padding-top:8px;\"\u003e\n          \u003csvg width=\"13\" height=\"13\" stroke=\"var(--orange)\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-star\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n          \u003cstrong\u003eOptional:\u003c\/strong\u003e a spare \u003ca href=\"https:\/\/happyhydro.com\/products\/bubble-magic-all-mesh-extraction-bags-5-gallon\" style=\"color:var(--blue);font-weight:600;text-decoration:none;\"\u003eall mesh 5 gallon bag set\u003c\/a\u003e drains faster than vinyl sided bags\n        \u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cdiv class=\"included-tip\"\u003e\n        \u003cstrong\u003eNot sure how many bags you need?\u003c\/strong\u003e Three bags will make good material and keep cleanup short. Five adds a 160 and a 120 so the middle of the range does not land in one bag, and eight splits it further with a 190, a 90, and a 45. Call or email us: \u003ca href=\"tel:7162170353\"\u003e716-217-0353\u003c\/a\u003e \/ \u003ca href=\"mailto:help@happyhydro.com\"\u003ehelp@happyhydro.com\u003c\/a\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- SECTION 9 - FAQ --\u003e\n\u003cdiv class=\"faq-wrap\" role=\"region\" aria-label=\"Frequently asked questions\"\u003e\n  \u003cdiv class=\"section-label\"\u003eQuestions\u003c\/div\u003e\n  \u003cdiv class=\"section-title\"\u003eFrequently asked questions\u003c\/div\u003e\n  \u003cdiv class=\"faq-list\"\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq1\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq1\" aria-expanded=\"false\"\u003e\n        Can I use this on its own, or do I need filter bags too?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        You need filter bags. The bag that comes with the machine holds your plant material inside the tub. It does not catch anything. The water leaving the drain still has everything suspended in it, so it has to pass through a nested stack of finer bags in a separate bucket before you have something to collect. Pick one of the bundle options above if you do not already own a set.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq2\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq2\" aria-expanded=\"false\"\u003e\n        How many washes can I get out of one batch of material?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        Most growers run the same material three or four times before it stops giving anything worth collecting. Each pull after the first tends to come out darker and greener because more of what is left has to be shaken loose. Keep them in separate jars and decide later whether to blend them.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq3\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq3\" aria-expanded=\"false\"\u003e\n        Does it spin dry or do anything after the wash?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        No. This is an agitation and drain machine only, with no spin cycle and no heat. Once the tub empties, the rest of the process is yours: collect off each screen, press out the excess water, and dry the material however you normally do. Plenty of people pair it with a freeze dryer for that last step.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq4\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq4\" aria-expanded=\"false\"\u003e\n        There are water marks inside my brand new machine. Is it used?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        It is new. Bubble Magic runs every unit with water at the factory to confirm the motor, the timer, and the drain seal all work before it ships, and that testing can leave marks in the tub. If anything looks like more than water spotting, send us a photo and we will sort it out.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq5\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq5\" aria-expanded=\"false\"\u003e\n        What happens if the motor or timer quits on me?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        The machine carries a one year warranty and we handle the claim for you. Email \u003ca href=\"mailto:help@happyhydro.com\"\u003ehelp@happyhydro.com\u003c\/a\u003e with your order number and a short description of what it is doing and we will get parts or a replacement moving. Worth knowing before you order: Bubble Magic does not accept change of mind returns on this machine, so if you are weighing this against the 20 gallon or against washing by hand, call us at 716-217-0353 first.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq6\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq6\" aria-expanded=\"false\"\u003e\n        How do I clean it between sessions?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        Cold water only. Rinse the tub and run a short empty cycle with clean cold water to flush the paddle and the drain line, then leave the lid open until it dries. Hot water softens resin residue and smears it around the tub instead of lifting it, which is the opposite of what you want.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq7\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq7\" aria-expanded=\"false\"\u003e\n        What if it shows up damaged, or it is not the right fit?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        If you receive a defective or damaged unit, email us a photo at \u003ca href=\"mailto:help@happyhydro.com\"\u003ehelp@happyhydro.com\u003c\/a\u003e and we'll take care of you. For change-of-mind returns, we accept returns within 30 days for most items in new, resalable condition. If you're not sure whether this product is right for your setup, call us first at 716-217-0353. We'd rather answer your questions before you order.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cinput type=\"checkbox\" id=\"faq8\" class=\"faq-toggle\" aria-hidden=\"true\"\u003e\n      \u003clabel class=\"faq-label\" for=\"faq8\" aria-expanded=\"false\"\u003e\n        Why should I buy this from Happy Hydro instead of somewhere else?\n        \u003cspan class=\"faq-q-icon\" aria-hidden=\"true\"\u003e\u003csvg width=\"12\" height=\"12\"\u003e\u003cuse href=\"#ic-plus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003c\/label\u003e\n      \u003cdiv class=\"faq-answer\" role=\"region\" aria-label=\"Answer\"\u003e\n        Happy Hydro has been selling growing equipment since 2006. We've carried Bubble Magic for years because the systems work great and customers who buy them leave happy. Have questions before you order? Call 716-217-0353 or email \u003ca href=\"mailto:help@happyhydro.com\"\u003ehelp@happyhydro.com\u003c\/a\u003e. We're easy to reach and happy to help!\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c!-- SECTION 10 - CLOSING TRUST FOOTER --\u003e\n\u003cdiv class=\"closing-trust\" role=\"contentinfo\" aria-label=\"Store contact and trust information\"\u003e\n  \u003cdiv class=\"closing-trust-text\"\u003e\n    \u003csvg class=\"icon\" width=\"20\" height=\"20\" fill=\"none\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-shield\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n    \u003cp\u003e\n      \u003cstrong\u003eQuestions? We're easy to reach.\u003c\/strong\u003e\u003cbr\u003e\n      Happy Hydro has been serving growers since 2006. Call or email us before you order, after you order, or any time something comes up. When you're happy, we're happy.\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"closing-contact\"\u003e\n    \u003ca href=\"tel:7162170353\" aria-label=\"Call Happy Hydro at 716-217-0353\"\u003e\n      \u003csvg width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-phone\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      716-217-0353\n    \u003c\/a\u003e\n    \u003ca href=\"mailto:help@happyhydro.com\" aria-label=\"Email Happy Hydro\"\u003e\n      \u003csvg width=\"14\" height=\"14\" aria-hidden=\"true\"\u003e\u003cuse href=\"#ic-email\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\n      help@happyhydro.com\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e","brand":"Bubble Magic","offers":[{"title":"Machine Only","offer_id":39431115407427,"sku":"130075","price":199.0,"currency_code":"USD","in_stock":true},{"title":"Machine + 3 Bag Set","offer_id":43825955078211,"sku":"130075-191953","price":229.95,"currency_code":"USD","in_stock":true},{"title":"Machine + 5 Bag Set","offer_id":43825955110979,"sku":"130075-191955","price":259.95,"currency_code":"USD","in_stock":true},{"title":"Machine + 8 Bag Set","offer_id":43825955143747,"sku":"130075-191958","price":297.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2082\/5769\/files\/Upgraded-Bubble-Magic-5-Gallon-Ice-Water-Extraction-Machine-v2-Happy-Hydro-27112170160195.jpg?v=1782709514"},{"product_id":"bubble-magic-20-gallon-washing-machine-starter-kit","title":"Bubble Magic 20 Gallon Washing Machine Starter Kit","description":"\u003cp\u003eThe Bubble Magic 20 Gallon Washing Machine Starter Kit is an innovative solution designed for enthusiasts and professionals in resin extraction. This comprehensive kit includes a robust 20-gallon washing machine and eight different micron bags, ranging from 25 to 220 microns, enabling precise and effective filtration for various types of resin. Each component is designed to work seamlessly together, providing an efficient system that simplifies the extraction process.\u003c\/p\u003e\n\u003cp\u003eEase of use is a key feature of the Bubble Magic kit. It is engineered for quick setup and operation, allowing users to complete the resin extraction process in just 15 minutes with adjustable intervals. The inclusion of a drain valve on the washing machine facilitates easy water removal, while the micron bags can be cleaned effortlessly with a quick flush of cold water, making maintenance a breeze.\u003c\/p\u003e\n\u003cp\u003eDurability and reliability are also hallmarks of this kit. Built to withstand the rigors of frequent use, both the washing machine and the micron bags are made from high-quality materials that ensure long-term performance. The compact design of the machine makes it easy to store and handle, ideal for both home and commercial settings. The Bubble Magic 20 Gallon Washing Machine Starter Kit is the perfect tool for anyone looking to streamline their resin extraction process with a reliable, effective, and user-friendly system.\u003c\/p\u003e\n\u003c!----\u003e","brand":"Happy Hydro","offers":[{"title":"Default Title","offer_id":42606711308355,"sku":"BM20GALKIT","price":529.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2082\/5769\/files\/bubble-magic-20-gallon-washing-machine-starter-kit-433452.webp?v=1762695623"},{"product_id":"bubble-magic-5-gallon-washing-machine-starter-kit","title":"Bubble Magic 5 Gallon Washing Machine Starter Kit","description":"\u003cp\u003eThe Bubble Magic 5 Gallon Washing Machine Starter Kit is an all-in-one solution tailored for efficient and straightforward resin extraction. This compact yet powerful machine comes equipped with a 5-gallon capacity and a precise timing system that allows for extractions in 15-minute cycles, complete with adjustable 3-minute intervals. Ideal for both beginners and experienced users, this kit simplifies the extraction process, making it accessible and manageable.\u003c\/p\u003e\n\u003cp\u003eIncluded in the kit are eight micron bags ranging from 25 to 220 microns, providing versatile filtration options to achieve the best possible results from various types of plant materials. Each micron rating targets different particle sizes, ensuring thorough extraction and high-quality resin. The comprehensive setup is designed to accommodate users looking to optimize their extraction processes without the need for additional tools or complicated setups.\u003c\/p\u003e\n\u003cp\u003eEase of use and maintenance are key features of the Bubble Magic 5 Gallon Washing Machine Starter Kit. The machine includes a built-in drain valve which simplifies the post-extraction cleanup process—just drain, flush the bags with cold water, and prepare for the next batch. Compact and lightweight, this kit is also ideal for users with limited space or the need for a portable solution, providing robust functionality in a manageable size.\u003c\/p\u003e\n\u003c!----\u003e","brand":"Bubble Magic","offers":[{"title":"Default Title","offer_id":42606711373891,"sku":"BM5GALKIT","price":299.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2082\/5769\/files\/Bubble-Magic-5-Gallon-Washing-Machine-Starter-Kit-Happy-Hydro-26590146166851.jpg?v=1782705802"}],"url":"https:\/\/happyhydro.com\/collections\/bubble-washing-machines.oembed","provider":"Happy Hydro","version":"1.0","type":"link"}