{"title":"Featured collection","description":null,"products":[{"product_id":"mold-remover-1","title":"𝑶𝒇𝒇𝒊𝒄𝒊𝒂𝒍 𝑺𝒕𝒐𝒓𝒆 |🧼🧼𝐕𝐢𝐯𝐥𝐮𝐦𝐢𝐧™ 𝐌𝐨𝐥𝐝 𝐑𝐞𝐦𝐨𝐯𝐞𝐫 𝐆𝐞𝐥 + 𝐁𝐫𝐮𝐬𝐡🇺🇸 𝐓𝐨𝐮𝐠𝐡 𝐌𝐨𝐥𝐝 𝐒𝐭𝐚𝐢𝐧 𝐂𝐥𝐞𝐚𝐧𝐞𝐫 (𝙏𝙝𝙞𝙘𝙠 𝘾𝙡𝙞𝙣𝙜𝙞𝙣𝙜 𝙂𝙚𝙡 + 𝙋𝙧𝙚𝙘𝙞𝙨𝙞𝙤𝙣 𝙉𝙤𝙯𝙯𝙡𝙚) ✅ 𝐓𝐚𝐫𝐠𝐞𝐭𝐬 𝐓𝐨𝐮𝐠𝐡 𝐌𝐨𝐥𝐝 𝐒𝐭𝐚𝐢𝐧𝐬 𝐨𝐧 𝐖𝐚𝐬𝐡𝐞𝐫 𝐆𝐚𝐬𝐤𝐞𝐭𝐬, 𝐒𝐡𝐨𝐰𝐞𝐫 𝐂𝐚𝐮𝐥𝐤, 𝐓𝐢𝐥𝐞 𝐆𝐫𝐨𝐮𝐭 \u0026 𝐁𝐚𝐭𝐡𝐫𝐨𝐨𝐦 𝐂𝐨𝐫𝐧𝐞𝐫𝐬💯","description":"\u003csection id=\"jh-cleaner-final\" class=\"jh-cleaner-final\"\u003e\n\u003cdiv class=\"jh-page\"\u003e\n\u003c!-- ======================================================\n         01 \/ INTRO\n    ======================================================= --\u003e\n\u003csection class=\"jh-intro\"\u003e\u003cspan class=\"jh-overline\"\u003eTARGETED HOUSEHOLD STAIN CLEANING\u003c\/span\u003e\n\u003ch2\u003eA Thick Gel Made for the Stains Hiding in Tight Spaces\u003c\/h2\u003e\n\u003cp\u003eApply the gel directly along stained seams, corners, grout lines and gasket folds. Its thicker texture helps keep the formula concentrated where you place it instead of immediately running away.\u003c\/p\u003e\n\u003cdiv class=\"jh-pill-row\"\u003e\n\u003cspan\u003e✓ Thick Clinging Gel\u003c\/span\u003e \u003cspan\u003e✓ Precision Nozzle\u003c\/span\u003e \u003cspan\u003e✓ Cleaning Brush Included\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ======================================================\n         02 \/ REAL DEMO INTRO\n    ======================================================= --\u003e\n\u003csection class=\"jh-heading-block\"\u003e\u003cspan class=\"jh-overline\"\u003eREAL PRODUCT DEMOS\u003c\/span\u003e\n\u003ch2\u003eSee How It Applies to the Problem Area\u003c\/h2\u003e\n\u003cp\u003eEach demonstration is shown separately so you can clearly see how the gel is placed and used without multiple videos competing for your attention.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003c!-- ======================================================\n         03 \/ GIF DEMO 1\n    ======================================================= --\u003e\n\u003carticle class=\"jh-demo\"\u003e\n\u003cdiv class=\"jh-demo-media\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/real-demo-caulk-fallback.gif?v=1788008671\" alt=\"Real application demonstration on a stained sink and caulk edge\" width=\"540\" height=\"960\" loading=\"eager\" decoding=\"async\"\u003e \u003cspan class=\"jh-demo-badge\"\u003e REAL PRODUCT DEMO \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jh-demo-text\"\u003e\n\u003cspan class=\"jh-overline\"\u003eSINK \u0026amp; CAULK EDGE\u003c\/span\u003e\n\u003ch3\u003eApply Directly Along the Stained Seam\u003c\/h3\u003e\n\u003cp\u003eThe precision tip lets you place the gel directly along narrow sink edges and caulk lines instead of spraying a wide surrounding area.\u003c\/p\u003e\n\u003cdiv class=\"jh-flow\"\u003e\n\u003cspan\u003eApply\u003c\/span\u003e \u003cb\u003e→\u003c\/b\u003e \u003cspan\u003eLet Gel Cling\u003c\/span\u003e \u003cb\u003e→\u003c\/b\u003e \u003cspan\u003eBrush\u003c\/span\u003e \u003cb\u003e→\u003c\/b\u003e \u003cspan\u003eWipe\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- ======================================================\n         04 \/ GIF DEMO 2\n    ======================================================= --\u003e\n\u003carticle class=\"jh-demo\"\u003e\n\u003cdiv class=\"jh-demo-media\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/real-demo-shower-fallback.gif?v=1788008670\" alt=\"Real application demonstration on a stained shower corner\" width=\"540\" height=\"960\" loading=\"lazy\" decoding=\"async\"\u003e \u003cspan class=\"jh-demo-badge\"\u003e REAL PRODUCT DEMO \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jh-demo-text\"\u003e\n\u003cspan class=\"jh-overline\"\u003eSHOWER CORNER\u003c\/span\u003e\n\u003ch3\u003eTarget Narrow Corners Without Broad Spraying\u003c\/h3\u003e\n\u003cp\u003eApply the gel precisely along the stained shower seam, allow it to remain on the target area as directed, then brush and wipe thoroughly.\u003c\/p\u003e\n\u003cdiv class=\"jh-flow\"\u003e\n\u003cspan\u003eTarget Seam\u003c\/span\u003e \u003cb\u003e→\u003c\/b\u003e \u003cspan\u003eLet Gel Cling\u003c\/span\u003e \u003cb\u003e→\u003c\/b\u003e \u003cspan\u003eWipe\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003cp class=\"jh-disclaimer\"\u003eReal application footage. Results may vary according to surface, stain age, severity and correct use.\u003c\/p\u003e\n\u003c!-- ======================================================\n         05 \/ TRUST STRIP\n    ======================================================= --\u003e\n\u003csection class=\"jh-trust\"\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e \u003cstrong\u003e100 mL\u003c\/strong\u003e \u003csmall\u003eper bottle\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e \u003cstrong\u003ePrecision Application\u003c\/strong\u003e \u003csmall\u003efor narrow areas\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e \u003cstrong\u003eBrush Included\u003c\/strong\u003e \u003csmall\u003ewith every bottle\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ======================================================\n         06 \/ KEY BENEFIT IMAGE\n    ======================================================= --\u003e\n\u003carticle class=\"jh-content-card\"\u003e\n\u003cdiv class=\"jh-static-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/yf-generated-node-q7xqsq4i9u_1.jpg?v=1788430958\" alt=\"Targeted thick gel cleaner with precision nozzle\" width=\"1200\" height=\"1200\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"jh-content-text\"\u003e\n\u003cspan class=\"jh-overline\"\u003eTARGETED APPLICATION\u003c\/span\u003e\n\u003ch2\u003ePut the Gel Exactly Where You Need It\u003c\/h2\u003e\n\u003cp\u003eNarrow caulk lines, grout gaps and gasket folds can be difficult to cover evenly with thin liquids. The thicker gel format makes controlled placement easier.\u003c\/p\u003e\n\u003cul class=\"jh-benefits\"\u003e\n\u003cli\u003eClings to targeted seams and edges\u003c\/li\u003e\n\u003cli\u003ePrecision nozzle reaches narrow spaces\u003c\/li\u003e\n\u003cli\u003eHelps reduce unnecessary run-off\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- ======================================================\n         07 \/ GEL VS SPRAY\n    ======================================================= --\u003e\n\u003carticle class=\"jh-content-card\"\u003e\n\u003cdiv class=\"jh-static-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/ChatGPT_Image_2026_9_3_18_15_25.png?v=1788430959\" alt=\"Thick gel cleaner compared with common spray cleaner\" width=\"1200\" height=\"1200\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"jh-content-text\"\u003e\n\u003cspan class=\"jh-overline\"\u003eWHY THE GEL FORMAT MATTERS\u003c\/span\u003e\n\u003ch2\u003eLess Run-Off. More Controlled Placement.\u003c\/h2\u003e\n\u003cp\u003eThin sprays can spread beyond the area you want to treat. A thicker gel helps keep the formula concentrated along the visible stain.\u003c\/p\u003e\n\u003cdiv class=\"jh-feature-list\"\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eClings to Seams\u003c\/strong\u003e \u003csmall\u003eUseful on narrow and vertical areas.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eControlled Placement\u003c\/strong\u003e \u003csmall\u003eApply only where the visible stain is located.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eReduced Run-Off\u003c\/strong\u003e \u003csmall\u003eHelps keep the cleaner on the intended area.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- ======================================================\n         08 \/ LIFESTYLE USE AREAS\n    ======================================================= --\u003e\n\u003carticle class=\"jh-content-card jh-lifestyle-card\"\u003e\n\u003cdiv class=\"jh-static-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/yf-generated-node-k9dglo6l1p_1.jpg?v=1788431590\" alt=\"Lifestyle view showing common household stain-prone areas including shower caulk, tile grout, sink edges and washer gaskets\" width=\"1200\" height=\"1200\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"jh-content-text\"\u003e\n\u003cspan class=\"jh-overline\"\u003eWHERE STAINS HIDE\u003c\/span\u003e\n\u003ch2\u003eBuilt for the Places Ordinary Wiping Can Miss\u003c\/h2\u003e\n\u003cp\u003eUse the precision gel format on common household problem areas such as shower caulk, tile grout, sink edges and washer-gasket folds.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- ======================================================\n         09 \/ RESULTS INTRO\n    ======================================================= --\u003e\n\u003csection class=\"jh-heading-block jh-heading-block--results\"\u003e\u003cspan class=\"jh-overline\"\u003eVISIBLE CLEANING RESULTS\u003c\/span\u003e\n\u003ch2\u003eTwo Common Areas. Shown One at a Time.\u003c\/h2\u003e\n\u003cp\u003eEach result is displayed at full width so the comparison stays clear on both desktop and mobile.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003c!-- ======================================================\n         10 \/ RESULT 1\n    ======================================================= --\u003e\n\u003carticle class=\"jh-result-card\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/yf-generated-node-k9dglo6l1p_2.jpg?v=1788431763\" alt=\"Tile grout before and after cleaning example\" width=\"1200\" height=\"1200\" loading=\"lazy\" decoding=\"async\"\u003e\n\u003cdiv class=\"jh-result-text\"\u003e\n\u003cspan class=\"jh-overline\"\u003eTILE GROUT\u003c\/span\u003e\n\u003ch3\u003eApply Directly Into Narrow Grout Lines\u003c\/h3\u003e\n\u003cp\u003eFocus the gel on the stained grout instead of covering the entire surrounding tile.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- ======================================================\n         11 \/ RESULT 2\n    ======================================================= --\u003e\n\u003carticle class=\"jh-result-card\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/yf-generated-node-q7xqsq4i9u.jpg?v=1788430958\" alt=\"Washer gasket before and after cleaning example\" width=\"1200\" height=\"1200\" loading=\"lazy\" decoding=\"async\"\u003e\n\u003cdiv class=\"jh-result-text\"\u003e\n\u003cspan class=\"jh-overline\"\u003eWASHER GASKET\u003c\/span\u003e\n\u003ch3\u003eReach Into Gasket Folds More Precisely\u003c\/h3\u003e\n\u003cp\u003eThe nozzle helps place gel along folds and narrow edges that can be difficult to clean evenly.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003cp class=\"jh-disclaimer\"\u003eResults vary by surface condition, stain age, severity and correct use.\u003c\/p\u003e\n\u003c!-- ======================================================\n         12 \/ HOW TO USE\n    ======================================================= --\u003e\n\u003carticle class=\"jh-content-card\"\u003e\n\u003cdiv class=\"jh-static-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/yf-generated-node-q7xqsq4i9u_2.jpg?v=1788430958\" alt=\"Four simple steps for using the household stain cleaner\" width=\"1200\" height=\"1200\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"jh-content-text\"\u003e\n\u003cspan class=\"jh-overline\"\u003eHOW TO USE\u003c\/span\u003e\n\u003ch2\u003eFour Simple Steps\u003c\/h2\u003e\n\u003col class=\"jh-steps\"\u003e\n\u003cli\u003e\n\u003cspan\u003e1\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cstrong\u003ePrepare the Area\u003c\/strong\u003e \u003csmall\u003eClean and dry the target surface.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003e2\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eApply the Gel\u003c\/strong\u003e \u003csmall\u003ePlace it directly along the stained area.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003e3\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eAllow Contact Time\u003c\/strong\u003e \u003csmall\u003eFollow the waiting time stated on the product label.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003e4\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eBrush \u0026amp; Wipe\u003c\/strong\u003e \u003csmall\u003eRemove residue thoroughly and rinse if directed.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- ======================================================\n         13 \/ FAQ\n    ======================================================= --\u003e\n\u003csection class=\"jh-faq\"\u003e\u003cspan class=\"jh-overline\"\u003eGOOD TO KNOW\u003c\/span\u003e\n\u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWhat is included with each bottle?\u003c\/summary\u003e\n\u003cp\u003eEach unit includes one 100 mL bottle of cleaning gel and one cleaning brush.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWhere can I use it?\u003c\/summary\u003e\n\u003cp\u003eIt is intended for targeted household stain cleaning on areas such as caulk, sealed grout, bathroom seams and washer-gasket folds. Always follow the product label and test a hidden area first.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eHow long should I leave the gel on?\u003c\/summary\u003e\n\u003cp\u003eFollow the contact time stated on the product label. Surface type and stain severity can affect the result.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWill every stain disappear completely?\u003c\/summary\u003e\n\u003cp\u003eResults vary according to surface, stain age, severity and correct application.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWhat safety precautions should I follow?\u003c\/summary\u003e\n\u003cp\u003eWear protective gloves, ventilate the area, keep the product away from children and pets, and never mix it with other cleaners.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/section\u003e\n\u003c!-- ======================================================\n         14 \/ SAFETY\n    ======================================================= --\u003e\n\u003csection class=\"jh-safety\"\u003e\u003cspan class=\"jh-overline\"\u003eUSE WITH CARE\u003c\/span\u003e\n\u003ch2\u003eSimple Precautions for Responsible Cleaning\u003c\/h2\u003e\n\u003cdiv class=\"jh-safety-list\"\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e \u003cstrong\u003eWear protective gloves\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e \u003cstrong\u003eVentilate the area\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e \u003cstrong\u003eNever mix with other cleaners\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003e✓\u003c\/span\u003e \u003cstrong\u003eKeep away from children and pets\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003eFollow the product label and test a small inconspicuous area before full use.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003c!-- ======================================================\n         15 \/ FINAL CTA\n    ======================================================= --\u003e\n\u003csection class=\"jh-final-cta\"\u003e\u003cspan\u003eREADY TO GET STARTED?\u003c\/span\u003e\n\u003ch2\u003eTarget Those Hard-to-Reach Stains\u003c\/h2\u003e\n\u003cbutton type=\"button\" id=\"jh-view-product-options\" aria-label=\"View product options\"\u003eVIEW PRODUCT OPTIONS\u003c\/button\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cstyle\u003e\n\n\/* =========================================================\n   ROOT\n========================================================= *\/\n\n#jh-cleaner-final {\n  --navy: #082f67;\n  --navy-dark: #052653;\n  --teal: #07979a;\n  --orange: #ff9f1c;\n  --text: #172235;\n  --muted: #657286;\n  --line: #dce7ee;\n  --soft: #f6fafc;\n  --soft-blue: #eef8fc;\n\n  width: 100%;\n  max-width: 100%;\n\n  margin: 0;\n  padding: 0;\n\n  overflow: hidden;\n\n  background: #ffffff;\n  color: var(--text);\n\n  font-family: inherit;\n}\n\n\n\/* =========================================================\n   RESET\n========================================================= *\/\n\n#jh-cleaner-final *,\n#jh-cleaner-final *::before,\n#jh-cleaner-final *::after {\n  box-sizing: border-box;\n}\n\n#jh-cleaner-final img {\n  display: block;\n\n  width: 100%;\n  max-width: 100%;\n  height: auto;\n\n  margin: 0;\n}\n\n#jh-cleaner-final h2,\n#jh-cleaner-final h3,\n#jh-cleaner-final p {\n  margin-top: 0;\n}\n\n#jh-cleaner-final button {\n  font-family: inherit;\n}\n\n#jh-cleaner-final .jh-page {\n  width: 100%;\n  max-width: 980px;\n\n  margin: 0 auto;\n\n  padding: 24px 20px 56px;\n}\n\n\n\/* =========================================================\n   COMMON TYPOGRAPHY\n========================================================= *\/\n\n#jh-cleaner-final .jh-overline {\n  display: inline-block;\n\n  margin-bottom: 9px;\n\n  color: var(--teal);\n\n  font-size: 12px;\n  line-height: 1.25;\n\n  font-weight: 900;\n  letter-spacing: .12em;\n\n  text-transform: uppercase;\n}\n\n#jh-cleaner-final h2 {\n  max-width: 780px;\n\n  margin-bottom: 14px;\n\n  color: var(--navy-dark);\n\n  font-size: clamp(28px, 4vw, 42px);\n  line-height: 1.08;\n\n  letter-spacing: -.025em;\n\n  font-weight: 850;\n\n  overflow-wrap: normal;\n  word-break: normal;\n}\n\n#jh-cleaner-final h3 {\n  margin-bottom: 10px;\n\n  color: var(--navy-dark);\n\n  font-size: clamp(22px, 3vw, 30px);\n  line-height: 1.15;\n\n  letter-spacing: -.02em;\n\n  font-weight: 850;\n\n  overflow-wrap: normal;\n  word-break: normal;\n}\n\n\n\/* =========================================================\n   INTRO\n========================================================= *\/\n\n#jh-cleaner-final .jh-intro {\n  padding: 38px 34px;\n\n  text-align: center;\n\n  background:\n    linear-gradient(\n      145deg,\n      #ffffff,\n      #eef8fc\n    );\n\n  border: 1px solid var(--line);\n  border-radius: 24px;\n}\n\n#jh-cleaner-final .jh-intro h2 {\n  margin-left: auto;\n  margin-right: auto;\n}\n\n#jh-cleaner-final .jh-intro \u003e p {\n  max-width: 720px;\n\n  margin: 0 auto 19px;\n\n  color: var(--muted);\n\n  font-size: 16px;\n  line-height: 1.6;\n}\n\n#jh-cleaner-final .jh-pill-row {\n  display: flex;\n  flex-wrap: wrap;\n\n  justify-content: center;\n\n  gap: 8px;\n}\n\n#jh-cleaner-final .jh-pill-row span {\n  padding: 8px 12px;\n\n  color: var(--navy);\n\n  background: #ffffff;\n\n  border: 1px solid #d3e2eb;\n  border-radius: 999px;\n\n  font-size: 12px;\n  line-height: 1.2;\n\n  font-weight: 800;\n}\n\n\n\/* =========================================================\n   HEADING BLOCK\n========================================================= *\/\n\n#jh-cleaner-final .jh-heading-block {\n  max-width: 760px;\n\n  margin: 38px auto 22px;\n\n  text-align: center;\n}\n\n#jh-cleaner-final .jh-heading-block h2 {\n  margin-left: auto;\n  margin-right: auto;\n}\n\n#jh-cleaner-final .jh-heading-block \u003e p {\n  margin-bottom: 0;\n\n  color: var(--muted);\n\n  font-size: 16px;\n  line-height: 1.6;\n}\n\n\n\/* =========================================================\n   GIF DEMO\n   NEVER SIDE BY SIDE\n========================================================= *\/\n\n#jh-cleaner-final .jh-demo {\n  width: 100%;\n  max-width: 620px;\n\n  margin: 0 auto 24px;\n\n  overflow: hidden;\n\n  background: #ffffff;\n\n  border: 1px solid var(--line);\n  border-radius: 22px;\n\n  box-shadow:\n    0 12px 28px\n    rgba(8,47,103,.07);\n}\n\n#jh-cleaner-final .jh-demo-media {\n  position: relative;\n\n  width: 100%;\n  max-width: 430px;\n\n  margin: 0 auto;\n\n  overflow: hidden;\n\n  background: #eef3f6;\n}\n\n#jh-cleaner-final .jh-demo-media img {\n  width: 100%;\n  height: auto;\n\n  object-fit: contain;\n}\n\n#jh-cleaner-final .jh-demo-badge {\n  position: absolute;\n\n  left: 13px;\n  bottom: 13px;\n\n  padding: 7px 10px;\n\n  color: #ffffff;\n\n  background: rgba(5,38,83,.93);\n\n  border: 1px solid rgba(255,255,255,.55);\n  border-radius: 999px;\n\n  font-size: 10px;\n  line-height: 1;\n\n  font-weight: 900;\n  letter-spacing: .06em;\n}\n\n#jh-cleaner-final .jh-demo-text {\n  padding: 22px 24px 25px;\n}\n\n#jh-cleaner-final .jh-demo-text \u003e p {\n  margin-bottom: 16px;\n\n  color: var(--muted);\n\n  font-size: 15px;\n  line-height: 1.6;\n}\n\n#jh-cleaner-final .jh-flow {\n  display: flex;\n  flex-wrap: wrap;\n\n  align-items: center;\n\n  gap: 7px;\n}\n\n#jh-cleaner-final .jh-flow span {\n  padding: 7px 10px;\n\n  color: var(--navy);\n\n  background: var(--soft-blue);\n\n  border-radius: 999px;\n\n  font-size: 11px;\n  line-height: 1.1;\n\n  font-weight: 800;\n}\n\n#jh-cleaner-final .jh-flow b {\n  color: var(--teal);\n\n  font-size: 12px;\n}\n\n#jh-cleaner-final .jh-disclaimer {\n  max-width: 700px;\n\n  margin: 10px auto 25px;\n\n  color: #788493;\n\n  text-align: center;\n\n  font-size: 11px;\n  line-height: 1.5;\n}\n\n\n\/* =========================================================\n   TRUST\n========================================================= *\/\n\n#jh-cleaner-final .jh-trust {\n  display: grid;\n\n  grid-template-columns:\n    repeat(3, minmax(0,1fr));\n\n  gap: 1px;\n\n  overflow: hidden;\n\n  margin: 26px 0;\n\n  background: #dbe7ed;\n\n  border: 1px solid #dbe7ed;\n  border-radius: 18px;\n}\n\n#jh-cleaner-final .jh-trust \u003e div {\n  display: grid;\n\n  grid-template-columns:\n    28px 1fr;\n\n  align-items: center;\n\n  padding: 14px;\n\n  background: #f8fbfd;\n}\n\n#jh-cleaner-final .jh-trust \u003e div \u003e span {\n  grid-row: 1 \/ 3;\n\n  display: grid;\n\n  place-items: center;\n\n  width: 22px;\n  height: 22px;\n\n  color: #ffffff;\n\n  background: var(--teal);\n\n  border-radius: 50%;\n\n  font-size: 11px;\n  font-weight: 900;\n}\n\n#jh-cleaner-final .jh-trust strong,\n#jh-cleaner-final .jh-trust small {\n  display: block;\n}\n\n#jh-cleaner-final .jh-trust strong {\n  color: var(--navy-dark);\n\n  font-size: 13px;\n}\n\n#jh-cleaner-final .jh-trust small {\n  color: var(--muted);\n\n  font-size: 10px;\n}\n\n\n\/* =========================================================\n   STANDARD CONTENT CARD\n   ALWAYS STACKED\n========================================================= *\/\n\n#jh-cleaner-final .jh-content-card {\n  width: 100%;\n  max-width: 820px;\n\n  margin: 24px auto;\n\n  overflow: hidden;\n\n  background: #ffffff;\n\n  border: 1px solid var(--line);\n  border-radius: 22px;\n}\n\n#jh-cleaner-final .jh-static-media {\n  width: 100%;\n\n  margin: 0 auto;\n\n  background: #ffffff;\n}\n\n#jh-cleaner-final .jh-static-media img {\n  width: 100%;\n  height: auto;\n\n  object-fit: contain;\n}\n\n#jh-cleaner-final .jh-content-text {\n  padding: 26px 28px 30px;\n}\n\n#jh-cleaner-final .jh-content-text h2 {\n  max-width: 680px;\n}\n\n#jh-cleaner-final .jh-content-text \u003e p {\n  max-width: 700px;\n\n  margin-bottom: 17px;\n\n  color: var(--muted);\n\n  font-size: 15px;\n  line-height: 1.62;\n}\n\n\n\/* =========================================================\n   BENEFITS\n========================================================= *\/\n\n#jh-cleaner-final .jh-benefits {\n  display: grid;\n\n  gap: 9px;\n\n  margin: 0;\n  padding: 0;\n\n  list-style: none;\n}\n\n#jh-cleaner-final .jh-benefits li {\n  position: relative;\n\n  min-width: 0;\n\n  padding-left: 29px;\n\n  color: var(--navy-dark);\n\n  font-size: 14px;\n  line-height: 1.45;\n\n  font-weight: 750;\n}\n\n#jh-cleaner-final .jh-benefits li::before {\n  content: \"✓\";\n\n  position: absolute;\n\n  left: 0;\n  top: 0;\n\n  display: grid;\n\n  place-items: center;\n\n  width: 20px;\n  height: 20px;\n\n  color: #ffffff;\n\n  background: var(--teal);\n\n  border-radius: 50%;\n\n  font-size: 10px;\n  font-weight: 900;\n}\n\n\n\/* =========================================================\n   FEATURE LIST\n========================================================= *\/\n\n#jh-cleaner-final .jh-feature-list {\n  display: grid;\n\n  gap: 9px;\n}\n\n#jh-cleaner-final .jh-feature-list \u003e div {\n  display: grid;\n\n  grid-template-columns:\n    24px 1fr;\n\n  gap: 10px;\n\n  align-items: start;\n\n  min-width: 0;\n\n  padding: 12px 13px;\n\n  background: var(--soft);\n\n  border: 1px solid #dfebf0;\n  border-radius: 13px;\n}\n\n#jh-cleaner-final .jh-feature-list \u003e div \u003e span {\n  display: grid;\n\n  place-items: center;\n\n  width: 21px;\n  height: 21px;\n\n  color: #ffffff;\n\n  background: var(--teal);\n\n  border-radius: 50%;\n\n  font-size: 10px;\n  font-weight: 900;\n}\n\n#jh-cleaner-final .jh-feature-list strong,\n#jh-cleaner-final .jh-feature-list small {\n  display: block;\n}\n\n#jh-cleaner-final .jh-feature-list strong {\n  margin-bottom: 2px;\n\n  color: var(--navy-dark);\n\n  font-size: 13px;\n}\n\n#jh-cleaner-final .jh-feature-list small {\n  color: var(--muted);\n\n  font-size: 11px;\n  line-height: 1.4;\n}\n\n\n\/* =========================================================\n   TAGS\n========================================================= *\/\n\n#jh-cleaner-final .jh-tags {\n  display: flex;\n  flex-wrap: wrap;\n\n  gap: 7px;\n}\n\n#jh-cleaner-final .jh-tags span {\n  padding: 8px 11px;\n\n  color: var(--navy);\n\n  background: var(--soft-blue);\n\n  border: 1px solid #d6e7ef;\n  border-radius: 999px;\n\n  font-size: 11px;\n  font-weight: 800;\n}\n\n\n\n\/* =========================================================\n   LIFESTYLE CARD\n========================================================= *\/\n\n#jh-cleaner-final .jh-lifestyle-card .jh-static-media {\n  background: #f7fafc;\n}\n\n#jh-cleaner-final .jh-lifestyle-card .jh-content-text {\n  text-align: center;\n}\n\n#jh-cleaner-final .jh-lifestyle-card .jh-content-text h2,\n#jh-cleaner-final .jh-lifestyle-card .jh-content-text \u003e p {\n  margin-left: auto;\n  margin-right: auto;\n}\n\n\/* =========================================================\n   RESULTS\n   ALWAYS ONE CARD PER ROW\n========================================================= *\/\n\n#jh-cleaner-final .jh-heading-block--results {\n  margin-top: 38px;\n}\n\n#jh-cleaner-final .jh-result-card {\n  width: 100%;\n  max-width: 760px;\n\n  margin: 0 auto 19px;\n\n  overflow: hidden;\n\n  background: #ffffff;\n\n  border: 1px solid var(--line);\n  border-radius: 20px;\n}\n\n#jh-cleaner-final .jh-result-card \u003e img {\n  width: 100%;\n  height: auto;\n\n  object-fit: contain;\n}\n\n#jh-cleaner-final .jh-result-text {\n  padding: 20px 22px 23px;\n}\n\n#jh-cleaner-final .jh-result-text h3 {\n  max-width: 650px;\n}\n\n#jh-cleaner-final .jh-result-text \u003e p {\n  margin-bottom: 0;\n\n  color: var(--muted);\n\n  font-size: 14px;\n  line-height: 1.55;\n}\n\n\n\/* =========================================================\n   STEPS\n========================================================= *\/\n\n#jh-cleaner-final .jh-steps {\n  display: grid;\n\n  gap: 8px;\n\n  margin: 0;\n  padding: 0;\n\n  list-style: none;\n}\n\n#jh-cleaner-final .jh-steps li {\n  display: grid;\n\n  grid-template-columns:\n    38px 1fr;\n\n  gap: 10px;\n\n  align-items: center;\n\n  min-width: 0;\n\n  padding: 10px 11px;\n\n  background: var(--soft);\n\n  border: 1px solid #e0eaef;\n  border-radius: 13px;\n}\n\n#jh-cleaner-final .jh-steps li \u003e span {\n  display: grid;\n\n  place-items: center;\n\n  width: 33px;\n  height: 33px;\n\n  color: #ffffff;\n\n  background: var(--navy);\n\n  border-radius: 50%;\n\n  font-size: 13px;\n  font-weight: 900;\n}\n\n#jh-cleaner-final .jh-steps strong,\n#jh-cleaner-final .jh-steps small {\n  display: block;\n}\n\n#jh-cleaner-final .jh-steps strong {\n  color: var(--navy-dark);\n\n  font-size: 13px;\n}\n\n#jh-cleaner-final .jh-steps small {\n  margin-top: 2px;\n\n  color: var(--muted);\n\n  font-size: 11px;\n  line-height: 1.4;\n}\n\n\n\/* =========================================================\n   SAFETY\n========================================================= *\/\n\n#jh-cleaner-final .jh-safety {\n  max-width: 820px;\n\n  margin: 25px auto;\n\n  padding: 28px;\n\n  text-align: center;\n\n  background:\n    linear-gradient(\n      145deg,\n      #f8fcfd,\n      #edf8fc\n    );\n\n  border: 1px solid var(--line);\n  border-radius: 22px;\n}\n\n#jh-cleaner-final .jh-safety h2 {\n  margin-left: auto;\n  margin-right: auto;\n}\n\n#jh-cleaner-final .jh-safety-list {\n  display: grid;\n\n  grid-template-columns:\n    repeat(2, minmax(0,1fr));\n\n  gap: 9px;\n\n  margin-top: 20px;\n}\n\n#jh-cleaner-final .jh-safety-list \u003e div {\n  display: flex;\n\n  align-items: center;\n\n  gap: 8px;\n\n  min-width: 0;\n\n  padding: 12px;\n\n  text-align: left;\n\n  background: #ffffff;\n\n  border: 1px solid #dce8ee;\n  border-radius: 13px;\n}\n\n#jh-cleaner-final .jh-safety-list span {\n  flex: 0 0 auto;\n\n  display: grid;\n\n  place-items: center;\n\n  width: 20px;\n  height: 20px;\n\n  color: #ffffff;\n\n  background: var(--teal);\n\n  border-radius: 50%;\n\n  font-size: 10px;\n  font-weight: 900;\n}\n\n#jh-cleaner-final .jh-safety-list strong {\n  color: var(--navy-dark);\n\n  font-size: 12px;\n  line-height: 1.35;\n}\n\n#jh-cleaner-final .jh-safety \u003e p {\n  max-width: 650px;\n\n  margin: 16px auto 0;\n\n  color: var(--muted);\n\n  font-size: 11px;\n  line-height: 1.5;\n}\n\n\n\/* =========================================================\n   FAQ\n========================================================= *\/\n\n#jh-cleaner-final .jh-faq {\n  max-width: 820px;\n\n  margin: 25px auto;\n\n  padding: 28px;\n\n  background: #ffffff;\n\n  border: 1px solid var(--line);\n  border-radius: 22px;\n}\n\n#jh-cleaner-final .jh-faq details {\n  border-top: 1px solid var(--line);\n}\n\n#jh-cleaner-final .jh-faq details:last-of-type {\n  border-bottom: 1px solid var(--line);\n}\n\n#jh-cleaner-final .jh-faq summary {\n  position: relative;\n\n  padding: 16px 36px 16px 0;\n\n  color: var(--navy-dark);\n\n  font-size: 14px;\n  line-height: 1.4;\n\n  font-weight: 800;\n\n  cursor: pointer;\n  list-style: none;\n}\n\n#jh-cleaner-final .jh-faq summary::-webkit-details-marker {\n  display: none;\n}\n\n#jh-cleaner-final .jh-faq summary::after {\n  content: \"+\";\n\n  position: absolute;\n\n  right: 2px;\n  top: 50%;\n\n  transform: translateY(-50%);\n\n  color: var(--teal);\n\n  font-size: 23px;\n  font-weight: 500;\n}\n\n#jh-cleaner-final .jh-faq details[open] summary::after {\n  content: \"−\";\n}\n\n#jh-cleaner-final .jh-faq details p {\n  margin: -2px 0 16px;\n\n  padding-right: 18px;\n\n  color: var(--muted);\n\n  font-size: 13px;\n  line-height: 1.55;\n}\n\n\n\/* =========================================================\n   FINAL CTA\n========================================================= *\/\n\n#jh-cleaner-final .jh-final-cta {\n  max-width: 820px;\n\n  margin: 25px auto 0;\n\n  padding: 30px 26px;\n\n  text-align: center;\n\n  color: #ffffff;\n\n  background:\n    linear-gradient(\n      135deg,\n      var(--navy-dark),\n      var(--navy)\n    );\n\n  border-radius: 22px;\n}\n\n#jh-cleaner-final .jh-final-cta \u003e span {\n  display: block;\n\n  margin-bottom: 8px;\n\n  color: #76dadc;\n\n  font-size: 10px;\n\n  letter-spacing: .12em;\n\n  font-weight: 900;\n}\n\n#jh-cleaner-final .jh-final-cta h2 {\n  margin-left: auto;\n  margin-right: auto;\n\n  color: #ffffff;\n\n  font-size: clamp(26px, 4vw, 38px);\n}\n\n#jh-cleaner-final .jh-final-cta button {\n  position: relative;\n  z-index: 2;\n\n  width: min(100%, 390px);\n\n  min-height: 52px;\n\n  margin-top: 5px;\n\n  padding: 13px 20px;\n\n  color: var(--navy-dark);\n\n  background: var(--orange);\n\n  border: 0;\n  border-radius: 13px;\n\n  font-size: 13px;\n  font-weight: 900;\n\n  letter-spacing: .035em;\n\n  cursor: pointer;\n  pointer-events: auto;\n  touch-action: manipulation;\n\n  box-shadow:\n    0 9px 22px\n    rgba(0,0,0,.16);\n}\n\n\n\/* =========================================================\n   TABLET\n========================================================= *\/\n\n@media (max-width: 800px) {\n\n  #jh-cleaner-final .jh-page {\n    padding-left: 16px;\n    padding-right: 16px;\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE\n========================================================= *\/\n\n@media (max-width: 720px) {\n\n  #jh-cleaner-final .jh-page {\n    width: 100%;\n\n    padding:\n      12px\n      11px\n      34px;\n  }\n\n\n  #jh-cleaner-final h2 {\n    font-size: 27px;\n    line-height: 1.1;\n  }\n\n\n  #jh-cleaner-final h3 {\n    font-size: 21px;\n    line-height: 1.18;\n  }\n\n\n  \/* INTRO *\/\n\n  #jh-cleaner-final .jh-intro {\n    padding:\n      24px\n      15px\n      22px;\n\n    border-radius: 19px;\n  }\n\n  #jh-cleaner-final .jh-intro \u003e p {\n    font-size: 14px;\n    line-height: 1.55;\n  }\n\n  #jh-cleaner-final .jh-pill-row {\n    gap: 6px;\n  }\n\n  #jh-cleaner-final .jh-pill-row span {\n    padding: 7px 9px;\n\n    font-size: 10px;\n  }\n\n\n  \/* HEADING *\/\n\n  #jh-cleaner-final .jh-heading-block {\n    margin:\n      30px\n      auto\n      18px;\n\n    padding: 0 5px;\n  }\n\n  #jh-cleaner-final .jh-heading-block \u003e p {\n    font-size: 14px;\n    line-height: 1.55;\n  }\n\n\n  \/* GIF *\/\n\n  #jh-cleaner-final .jh-demo {\n    width: 100%;\n    max-width: 100%;\n\n    margin-bottom: 18px;\n\n    border-radius: 18px;\n  }\n\n  #jh-cleaner-final .jh-demo-media {\n    width: 100%;\n    max-width: 100%;\n  }\n\n  #jh-cleaner-final .jh-demo-text {\n    padding:\n      17px\n      15px\n      19px;\n  }\n\n  #jh-cleaner-final .jh-demo-text \u003e p {\n    margin-bottom: 13px;\n\n    font-size: 13px;\n    line-height: 1.52;\n  }\n\n  #jh-cleaner-final .jh-flow {\n    gap: 5px;\n  }\n\n  #jh-cleaner-final .jh-flow span {\n    padding: 7px 9px;\n\n    font-size: 10px;\n  }\n\n\n  \/* TRUST *\/\n\n  #jh-cleaner-final .jh-trust {\n    grid-template-columns: 1fr;\n\n    border-radius: 16px;\n  }\n\n  #jh-cleaner-final .jh-trust \u003e div {\n    padding: 11px 13px;\n  }\n\n\n  \/* CONTENT *\/\n\n  #jh-cleaner-final .jh-content-card {\n    width: 100%;\n\n    margin: 18px auto;\n\n    border-radius: 18px;\n  }\n\n  #jh-cleaner-final .jh-content-text {\n    padding:\n      18px\n      15px\n      20px;\n  }\n\n  #jh-cleaner-final .jh-content-text \u003e p {\n    font-size: 13px;\n    line-height: 1.55;\n  }\n\n\n  \/* RESULTS *\/\n\n  #jh-cleaner-final .jh-result-card {\n    width: 100%;\n\n    margin-bottom: 15px;\n\n    border-radius: 17px;\n  }\n\n  #jh-cleaner-final .jh-result-text {\n    padding:\n      16px\n      15px\n      18px;\n  }\n\n  #jh-cleaner-final .jh-result-text \u003e p {\n    font-size: 13px;\n    line-height: 1.5;\n  }\n\n\n  \/* SAFETY *\/\n\n  #jh-cleaner-final .jh-safety {\n    padding:\n      22px\n      14px;\n\n    border-radius: 18px;\n  }\n\n  #jh-cleaner-final .jh-safety-list {\n    grid-template-columns: 1fr;\n  }\n\/* FAQ *\/\n\n  #jh-cleaner-final .jh-faq {\n    padding:\n      22px\n      15px;\n\n    border-radius: 18px;\n  }\n\n\n  \/* CTA *\/\n\n  #jh-cleaner-final .jh-final-cta {\n    padding:\n      25px\n      16px;\n\n    border-radius: 18px;\n  }\n\n  #jh-cleaner-final .jh-final-cta h2 {\n    font-size: 26px;\n  }\n\n  #jh-cleaner-final .jh-final-cta button {\n    width: 100%;\n  }\n\n}\n\n\n\/* =========================================================\n   VERY SMALL MOBILE\n========================================================= *\/\n\n@media (max-width: 390px) {\n\n  #jh-cleaner-final h2 {\n    font-size: 25px;\n  }\n\n  #jh-cleaner-final h3 {\n    font-size: 20px;\n  }\n\n}\n\n\n\/* =========================================================\n   MOTION ACCESSIBILITY\n========================================================= *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n  #jh-cleaner-final * {\n    scroll-behavior: auto !important;\n  }\n\n}\n\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function () {\n  \"use strict\";\n\n  \/*\n   * Vivlumin CTA scroll fix\n   * - Works even when bundle\/variant blocks are rendered by Shopify or an app after page load.\n   * - Avoids relying on one fragile hard-coded ID.\n   * - Scrolls slightly ABOVE the options area so the price remains visible.\n   *\/\n\n  var ROOT_ID = \"jh-cleaner-final\";\n  var BUTTON_ID = \"jh-view-product-options\";\n\n  function isVisible(el) {\n    if (!el || !(el instanceof Element)) return false;\n\n    var style = window.getComputedStyle(el);\n    if (\n      style.display === \"none\" ||\n      style.visibility === \"hidden\" ||\n      parseFloat(style.opacity || \"1\") === 0\n    ) {\n      return false;\n    }\n\n    var rect = el.getBoundingClientRect();\n    return rect.width \u003e 0 \u0026\u0026 rect.height \u003e 0;\n  }\n\n  function textOf(el) {\n    return (el \u0026\u0026 (el.innerText || el.textContent) || \"\")\n      .replace(\/\\s+\/g, \" \")\n      .trim()\n      .toLowerCase();\n  }\n\n  function outsideCustomLiquid(el) {\n    var root = document.getElementById(ROOT_ID);\n    return !!el \u0026\u0026 (!root || !root.contains(el));\n  }\n\n  function firstVisible(selectors) {\n    for (var i = 0; i \u003c selectors.length; i++) {\n      var nodes;\n      try {\n        nodes = document.querySelectorAll(selectors[i]);\n      } catch (e) {\n        continue;\n      }\n\n      for (var j = 0; j \u003c nodes.length; j++) {\n        var el = nodes[j];\n        if (outsideCustomLiquid(el) \u0026\u0026 isVisible(el)) {\n          return el;\n        }\n      }\n    }\n    return null;\n  }\n\n  function findByBundleText() {\n    var candidates = document.querySelectorAll(\n      \"fieldset, form, section, div, label, button\"\n    );\n\n    var phrases = [\n      \"single bottle\",\n      \"buy 1\",\n      \"buy 2\",\n      \"buy 3\",\n      \"buy 4\",\n      \"buy 5\",\n      \"get 1 free\",\n      \"get 2 free\",\n      \"get 3 free\",\n      \"get 4 free\",\n      \"best value\",\n      \"most popular\",\n      \"bundle\",\n      \"package\",\n      \"product options\",\n      \"choose option\",\n      \"choose your\",\n      \"select option\"\n    ];\n\n    var best = null;\n    var bestScore = -1;\n\n    for (var i = 0; i \u003c candidates.length; i++) {\n      var el = candidates[i];\n\n      if (!outsideCustomLiquid(el) || !isVisible(el)) continue;\n\n      var txt = textOf(el);\n      if (!txt || txt.length \u003e 1800) continue;\n\n      var score = 0;\n\n      for (var p = 0; p \u003c phrases.length; p++) {\n        if (txt.indexOf(phrases[p]) !== -1) score += 2;\n      }\n\n      if (\/\\$\\s*\\d\/.test(txt)) score += 1;\n      if (\/save\\s*\\d+%\/.test(txt)) score += 1;\n      if (\/free shipping\/.test(txt)) score += 1;\n\n      var tag = el.tagName.toLowerCase();\n      if (tag === \"fieldset\" || tag === \"form\" || tag === \"section\") score += 2;\n\n      var cls = String(el.className || \"\").toLowerCase();\n      var id = String(el.id || \"\").toLowerCase();\n\n      if (\n        cls.indexOf(\"bundle\") !== -1 ||\n        id.indexOf(\"bundle\") !== -1 ||\n        cls.indexOf(\"quantity-break\") !== -1 ||\n        id.indexOf(\"quantity-break\") !== -1 ||\n        cls.indexOf(\"product-form\") !== -1 ||\n        id.indexOf(\"product-form\") !== -1\n      ) {\n        score += 3;\n      }\n\n      if (score \u003e bestScore) {\n        bestScore = score;\n        best = el;\n      }\n    }\n\n    return bestScore \u003e= 3 ? best : null;\n  }\n\n  function findOptionsTarget() {\n    \/*\n     * Priority 1: bundle \/ quantity-break \/ variant selectors.\n     * The selector list intentionally covers Dawn + common bundle apps.\n     *\/\n    var target = firstVisible([\n      \"[data-bundle-options]\",\n      \"[data-bundle]\",\n      \"[data-bundles]\",\n      \"[id*='bundle-options' i]\",\n      \"[id*='bundle' i]\",\n      \"[class*='bundle-options' i]\",\n      \"[class*='bundle' i]\",\n      \"[id*='quantity-break' i]\",\n      \"[class*='quantity-break' i]\",\n      \"[id*='volume-discount' i]\",\n      \"[class*='volume-discount' i]\",\n      \"variant-radios\",\n      \"variant-selects\",\n      \"fieldset.product-form__input\",\n      \".product-form__input\"\n    ]);\n\n    if (!target) {\n      target = findByBundleText();\n    }\n\n    \/*\n     * Final fallback: the main product purchase form.\n     *\/\n    if (!target) {\n      target = firstVisible([\n        \"product-form form\",\n        \".product-form form\",\n        \"form[action*='\/cart\/add']\",\n        \".product__info-container\"\n      ]);\n    }\n\n    return target;\n  }\n\n  function findPriceAbove(target) {\n    if (!target) return null;\n\n    var info =\n      target.closest(\".product__info-container\") ||\n      target.closest(\"[class*='product-info']\") ||\n      target.closest(\"[class*='product__info']\");\n\n    if (!info) return null;\n\n    var priceCandidates = info.querySelectorAll(\n      \".price, [class*='price' i], [data-product-price]\"\n    );\n\n    var targetTop = target.getBoundingClientRect().top + window.pageYOffset;\n    var best = null;\n    var bestTop = -Infinity;\n\n    for (var i = 0; i \u003c priceCandidates.length; i++) {\n      var price = priceCandidates[i];\n      if (!isVisible(price)) continue;\n\n      var top = price.getBoundingClientRect().top + window.pageYOffset;\n\n      \/*\n       * Only use a visible price block immediately above the option area.\n       *\/\n      if (top \u003c= targetTop \u0026\u0026 targetTop - top \u003c= 650 \u0026\u0026 top \u003e bestTop) {\n        best = price;\n        bestTop = top;\n      }\n    }\n\n    return best;\n  }\n\n  function stickyHeaderHeight() {\n    var selectors = [\n      \".shopify-section-header-sticky\",\n      \".shopify-section-header-hidden\",\n      \"sticky-header\",\n      \"header.header\",\n      \"#shopify-section-header\"\n    ];\n\n    var maxHeight = 0;\n\n    for (var i = 0; i \u003c selectors.length; i++) {\n      var nodes = document.querySelectorAll(selectors[i]);\n\n      for (var j = 0; j \u003c nodes.length; j++) {\n        var el = nodes[j];\n        if (!isVisible(el)) continue;\n\n        var style = window.getComputedStyle(el);\n        var pos = style.position;\n\n        if (pos === \"fixed\" || pos === \"sticky\") {\n          maxHeight = Math.max(maxHeight, el.getBoundingClientRect().height || 0);\n        }\n      }\n    }\n\n    return maxHeight;\n  }\n\n  function scrollToOptions() {\n    var target = findOptionsTarget();\n\n    if (!target) {\n      \/*\n       * Absolute fallback: move to the upper product-information area\n       * rather than allowing the CTA to appear dead.\n       *\/\n      target =\n        document.querySelector(\".product__info-container\") ||\n        document.querySelector(\"product-info\") ||\n        document.querySelector(\"main\");\n    }\n\n    if (!target) return;\n\n    \/*\n     * Prefer the nearby price above the bundle\/options block when available.\n     * This keeps the full price visible after the jump.\n     *\/\n    var price = findPriceAbove(target);\n    var anchor = price || target;\n\n    var anchorTop =\n      anchor.getBoundingClientRect().top + window.pageYOffset;\n\n    var headerOffset = stickyHeaderHeight();\n\n    \/*\n     * Extra upward offset so the price + discount\/promo area\n     * remains visible above the bundle\/options section.\n     * mobile: 110px\n     * desktop: 90px\n     *\/\n    var extra = window.innerWidth \u003c= 749 ? 110 : 90;\n\n    var destination = Math.max(\n      0,\n      anchorTop - headerOffset - extra\n    );\n\n    var reduceMotion =\n      window.matchMedia \u0026\u0026\n      window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n    window.scrollTo({\n      top: destination,\n      behavior: reduceMotion ? \"auto\" : \"smooth\"\n    });\n\n    \/*\n     * Recalculate shortly after the first movement.\n     * This helps when sticky headers or app widgets change height during scroll.\n     *\/\n    window.setTimeout(function () {\n      var refreshedTarget = findOptionsTarget() || target;\n      var refreshedPrice = findPriceAbove(refreshedTarget);\n      var refreshedAnchor = refreshedPrice || refreshedTarget;\n\n      if (!refreshedAnchor || !isVisible(refreshedAnchor)) return;\n\n      var refreshedTop =\n        refreshedAnchor.getBoundingClientRect().top + window.pageYOffset;\n\n      var refreshedDestination = Math.max(\n        0,\n        refreshedTop - stickyHeaderHeight() - extra\n      );\n\n      if (Math.abs(window.pageYOffset - refreshedDestination) \u003e 18) {\n        window.scrollTo({\n          top: refreshedDestination,\n          behavior: reduceMotion ? \"auto\" : \"smooth\"\n        });\n      }\n    }, 450);\n  }\n\n  \/*\n   * Event delegation is used so the button continues to work if Shopify's\n   * theme editor re-renders the Custom Liquid section.\n   *\/\n  if (!window.__jhCleanerCtaScrollBound) {\n    document.addEventListener(\"click\", function (event) {\n      var button = event.target.closest(\"#\" + BUTTON_ID);\n      if (!button) return;\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      scrollToOptions();\n    });\n\n    window.__jhCleanerCtaScrollBound = true;\n  }\n\n  \/*\n   * Also expose the function for easy testing from the browser console.\n   *\/\n  window.jhScrollToProductOptions = scrollToOptions;\n})();\n\u003c\/script\u003e\n\n\u003cp\u003e \u003c\/p\u003e","brand":"Vivlumin™","offers":[{"title":"🔥BUY 1 GET 2 FREE","offer_id":56946268143956,"sku":"TTB-LRX-QMNJ*3","price":44.99,"currency_code":"USD","in_stock":true},{"title":"💎BUY 1 GET 1 FREE","offer_id":56999341949268,"sku":"TTB-LRX-QMNJ*2","price":34.99,"currency_code":"USD","in_stock":true},{"title":"JUST 1 BOTTLE","offer_id":56946268111188,"sku":"TTB-LRX-QMNJ*1","price":19.99,"currency_code":"USD","in_stock":true},{"title":"🎁BUY 1 GET 4 FREE","offer_id":56946268176724,"sku":"TTB-LRX-QMNJ*5","price":59.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/yf-generated-node-k9dglo6l1p.jpg?v=1788430958"},{"product_id":"0825xyj","title":"🧼Just Drop In \u0026 Run a Cycle — No Scrubbing Needed.","description":"\n\u003cstyle\u003e\n.wj-page{\n  --wj-navy:#0F3567;\n  --wj-blue:#176FE8;\n  --wj-sky:#EAF6FF;\n  --wj-sky-2:#F6FBFF;\n  --wj-cyan:#35BDF4;\n  --wj-gold:#F3B83F;\n  --wj-text:#253245;\n  --wj-muted:#66758A;\n  --wj-border:#D8EAF7;\n  --wj-white:#FFFFFF;\n  max-width:920px;\n  margin:0 auto;\n  padding:0 14px 46px;\n  font-family:Arial,Helvetica,sans-serif;\n  color:var(--wj-text);\n  line-height:1.72;\n  box-sizing:border-box;\n}\n.wj-page *{box-sizing:border-box}\n.wj-page img{\n  width:100%;\n  height:auto;\n  display:block;\n  margin:0;\n}\n.wj-page .wj-media{\n  overflow:hidden;\n  border-radius:24px;\n  background:#fff;\n  box-shadow:0 14px 36px rgba(18,59,112,.10);\n  border:1px solid rgba(216,234,247,.9);\n}\n.wj-page .wj-section{\n  margin:34px 0;\n}\n.wj-page .wj-hero{\n  position:relative;\n  margin-top:10px;\n  padding:18px 18px 22px;\n  border-radius:28px;\n  background:\n    radial-gradient(circle at 86% 4%, rgba(53,189,244,.16), transparent 30%),\n    linear-gradient(180deg,#F9FDFF 0%,#EDF8FF 100%);\n  border:1px solid var(--wj-border);\n  box-shadow:0 18px 42px rgba(18,59,112,.09);\n}\n.wj-page .wj-kicker{\n  display:inline-flex;\n  align-items:center;\n  gap:8px;\n  margin:18px auto 8px;\n  padding:8px 13px;\n  border-radius:999px;\n  background:#E4F4FF;\n  color:var(--wj-blue);\n  font-size:12px;\n  line-height:1;\n  font-weight:800;\n  letter-spacing:.08em;\n  text-transform:uppercase;\n}\n.wj-page .wj-center{text-align:center}\n.wj-page h2{\n  margin:12px auto 18px;\n  color:var(--wj-navy);\n  font-size:clamp(25px,4.3vw,38px);\n  line-height:1.18;\n  letter-spacing:-.02em;\n  font-weight:850;\n}\n.wj-page h3{\n  margin:0;\n  color:var(--wj-navy);\n  font-size:21px;\n  line-height:1.35;\n}\n.wj-page p{\n  margin:0;\n  font-size:16px;\n  color:var(--wj-text);\n}\n.wj-page strong{color:var(--wj-navy)}\n.wj-page .wj-sub{\n  max-width:730px;\n  margin:0 auto;\n  color:var(--wj-muted);\n  font-size:16px;\n}\n.wj-page .wj-benefits{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:14px;\n  margin-top:18px;\n}\n.wj-page .wj-benefit{\n  position:relative;\n  min-height:180px;\n  padding:20px 18px 18px;\n  border-radius:20px;\n  background:linear-gradient(180deg,#FFFFFF 0%,#F2FAFF 100%);\n  border:1px solid var(--wj-border);\n  box-shadow:0 9px 24px rgba(18,59,112,.07);\n}\n.wj-page .wj-icon{\n  width:46px;\n  height:46px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  margin-bottom:13px;\n  border-radius:14px;\n  background:linear-gradient(135deg,var(--wj-navy),var(--wj-blue));\n  color:#fff;\n  font-size:22px;\n  box-shadow:0 7px 18px rgba(23,111,232,.22);\n}\n.wj-page .wj-benefit h3{\n  margin-bottom:8px;\n  font-size:17px;\n}\n.wj-page .wj-benefit p{\n  font-size:14px;\n  color:#46576D;\n  line-height:1.6;\n}\n.wj-page .wj-titleblock{\n  text-align:center;\n  margin-bottom:18px;\n}\n.wj-page .wj-titleblock .wj-line{\n  width:58px;\n  height:4px;\n  border-radius:999px;\n  margin:11px auto 0;\n  background:linear-gradient(90deg,var(--wj-blue),var(--wj-cyan));\n}\n.wj-page .wj-arrow{\n  margin:4px 0 14px;\n  text-align:center;\n  color:var(--wj-gold);\n  font-size:28px;\n  letter-spacing:4px;\n}\n.wj-page .wj-review{\n  padding:22px;\n  margin-top:18px;\n  border-radius:24px;\n  background:#fff;\n  border:1px solid var(--wj-border);\n  box-shadow:0 12px 30px rgba(18,59,112,.08);\n}\n.wj-page .wj-stars{\n  color:#F5B31B;\n  font-size:21px;\n  letter-spacing:1px;\n  margin-bottom:8px;\n}\n.wj-page .wj-review h3{\n  font-size:20px;\n  margin-bottom:12px;\n}\n.wj-page .wj-review .wj-quote{\n  border-left:4px solid var(--wj-cyan);\n  padding-left:15px;\n}\n.wj-page .wj-review .wj-quote p + p{margin-top:9px}\n.wj-page .wj-review .wj-media{margin-top:18px}\n.wj-page .wj-pain{\n  padding:26px 22px;\n  border-radius:26px;\n  background:\n    linear-gradient(180deg,rgba(234,246,255,.95),rgba(255,255,255,.98));\n  border:1px solid var(--wj-border);\n}\n.wj-page .wj-copycard{\n  padding:20px;\n  margin-top:16px;\n  border-radius:20px;\n  background:#fff;\n  border:1px solid var(--wj-border);\n  box-shadow:0 8px 22px rgba(18,59,112,.06);\n}\n.wj-page .wj-copycard p{\n  color:#3C4B60;\n}\n.wj-page .wj-how{\n  padding:28px 22px;\n  border-radius:28px;\n  background:\n    radial-gradient(circle at 15% 5%, rgba(53,189,244,.12), transparent 28%),\n    linear-gradient(180deg,#F7FCFF 0%,#ECF7FF 100%);\n  border:1px solid var(--wj-border);\n}\n.wj-page .wj-step{\n  display:grid;\n  grid-template-columns:50px 1fr;\n  gap:14px;\n  align-items:start;\n  padding:18px;\n  margin-top:16px;\n  border-radius:20px;\n  background:#fff;\n  border:1px solid var(--wj-border);\n  box-shadow:0 8px 20px rgba(18,59,112,.06);\n}\n.wj-page .wj-stepnum{\n  width:46px;\n  height:46px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  border-radius:50%;\n  background:linear-gradient(135deg,var(--wj-navy),var(--wj-blue));\n  color:#fff;\n  font-weight:800;\n  font-size:18px;\n}\n.wj-page .wj-step .wj-media{\n  grid-column:1\/-1;\n  margin-top:2px;\n}\n.wj-page .wj-brandstatement{\n  padding:26px 22px;\n  text-align:center;\n  border-radius:26px;\n  background:linear-gradient(135deg,#0F3567 0%,#176FE8 100%);\n  color:#fff;\n  box-shadow:0 16px 34px rgba(15,53,103,.20);\n}\n.wj-page .wj-brandstatement h2{\n  color:#fff;\n  margin:0 0 7px;\n}\n.wj-page .wj-brandstatement p{\n  color:#DDEEFF;\n  font-size:17px;\n}\n.wj-page .wj-faq{\n  padding:26px 22px;\n  border-radius:28px;\n  background:#F8FCFF;\n  border:1px solid var(--wj-border);\n}\n.wj-page details{\n  margin-top:12px;\n  border-radius:17px;\n  overflow:hidden;\n  background:#fff;\n  border:1px solid var(--wj-border);\n  box-shadow:0 7px 18px rgba(18,59,112,.05);\n}\n.wj-page summary{\n  list-style:none;\n  cursor:pointer;\n  position:relative;\n  padding:17px 48px 17px 18px;\n  color:var(--wj-navy);\n  font-size:16px;\n  line-height:1.45;\n  font-weight:800;\n}\n.wj-page summary::-webkit-details-marker{display:none}\n.wj-page summary:after{\n  content:\"+\";\n  position:absolute;\n  right:18px;\n  top:50%;\n  transform:translateY(-50%);\n  width:25px;\n  height:25px;\n  border-radius:50%;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  background:#E8F5FF;\n  color:var(--wj-blue);\n  font-size:19px;\n}\n.wj-page details[open] summary:after{content:\"−\"}\n.wj-page .wj-answer{\n  padding:0 18px 18px;\n  color:#46576D;\n  font-size:15px;\n}\n.wj-page .wj-bottomtrust{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:10px;\n  margin-top:20px;\n}\n.wj-page .wj-trust{\n  padding:12px 10px;\n  text-align:center;\n  border-radius:15px;\n  background:#EAF6FF;\n  color:var(--wj-navy);\n  font-size:13px;\n  font-weight:800;\n}\n@media(max-width:720px){\n  .wj-page{padding:0 9px 34px}\n  .wj-page .wj-hero,\n  .wj-page .wj-pain,\n  .wj-page .wj-how,\n  .wj-page .wj-faq{padding:18px 13px}\n  .wj-page .wj-benefits{grid-template-columns:1fr}\n  .wj-page .wj-benefit{min-height:auto}\n  .wj-page .wj-review{padding:18px 15px}\n  .wj-page h2{font-size:25px}\n  .wj-page h3{font-size:18px}\n  .wj-page p{font-size:15px}\n  .wj-page .wj-bottomtrust{grid-template-columns:1fr}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"wj-page\"\u003e\n\n  \u003csection class=\"wj-hero\"\u003e\n    \u003cdiv class=\"wj-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1051\/8052\/8981\/files\/1.1.gif?v=1787675518\" alt=\"\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"wj-center\"\u003e\n      \u003cdiv class=\"wj-kicker\"\u003eDeep Clean • Odor Control • Easy Care\u003c\/div\u003e\n      \u003ch2\u003eWhy thousands of laundry-loving homeowners are quietly ditching messy liquid cleaners for these powerful washing machine cleaning tablets?\u003c\/h2\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"wj-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1051\/8052\/8981\/files\/1_9e1af899-c365-4761-99e4-1fd33cb225a3.png?v=1787676317\" alt=\"\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"wj-benefits\"\u003e\n      \u003cdiv class=\"wj-benefit\"\u003e\n        \u003cdiv class=\"wj-icon\"\u003e🫧\u003c\/div\u003e\n        \u003ch3\u003eDeep Cleaning Formula\u003c\/h3\u003e\n        \u003cp\u003eAdvanced cleaning agents dissolve hidden buildup, detergent residue, and grime trapped inside your washer drum, gasket, and hard-to-reach areas that regular washes can’t reach.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"wj-benefit\"\u003e\n        \u003cdiv class=\"wj-icon\"\u003e✨\u003c\/div\u003e\n        \u003ch3\u003eOdor \u0026amp; Residue Removal\u003c\/h3\u003e\n        \u003cp\u003eThe powerful tablet formula helps break down odor-causing residue and leftover buildup, leaving your washing machine feeling fresh and clean after each cycle.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"wj-benefit\"\u003e\n        \u003cdiv class=\"wj-icon\"\u003e⏳\u003c\/div\u003e\n        \u003ch3\u003eEasy 15-Minute Refresh\u003c\/h3\u003e\n        \u003cp\u003eSimply drop one tablet into your empty washer and run a cleaning cycle. One simple step helps maintain a cleaner machine and fresher laundry.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"wj-section\"\u003e\n    \u003cdiv class=\"wj-titleblock\"\u003e\n      \u003cdiv class=\"wj-kicker\"\u003eCustomer Transformations\u003c\/div\u003e\n      \u003ch2\u003eLet's take a look at some of the cleaning transformations from our customers\u003c\/h2\u003e\n      \u003cdiv class=\"wj-line\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"wj-arrow\"\u003e👇👇👇👇\u003c\/div\u003e\n    \u003cdiv class=\"wj-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1051\/8052\/8981\/files\/2_bd0f99e2-2d2b-4762-ae01-98b2c325a936.png?v=1787677014\" alt=\"\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"wj-review\"\u003e\n      \u003cdiv class=\"wj-stars\"\u003e★★★★★\u003c\/div\u003e\n      \u003ch3\u003eA fresh-smelling washer without the deep scrubbing? YES PLEASE.\u003c\/h3\u003e\n      \u003cdiv class=\"wj-quote\"\u003e\n        \u003cp\u003e\"My washer had bad musty smells from hidden residue. Other cleaners were messy and ineffective.\u003c\/p\u003e\n        \u003cp\u003eThese Washing Machine Cleaner Tablets work effortlessly. Just drop one in and run a cycle to dissolve buildup and eliminate odors.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eProfessional-level deep clean, no scrubbing required.\"\u003c\/strong\u003e\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"wj-media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1051\/8052\/8981\/files\/3_dad30051-bceb-4f9b-98a4-f13e4e03c34a.png?v=1787677224\" alt=\"\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"wj-review\"\u003e\n      \u003cdiv class=\"wj-stars\"\u003e★★★★★\u003c\/div\u003e\n      \u003ch3\u003eMy laundry finally feels fresh again — even with pets in the house.\u003c\/h3\u003e\n      \u003cdiv class=\"wj-quote\"\u003e\n        \u003cp\u003e\"Pet hair and residue left my washer smelly and my laundry less-than-fresh.\u003c\/p\u003e\n        \u003cp\u003eThese Washing Machine Cleaner Tablets work perfectly. Just pop one tablet in and run a cycle.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eNo scrubbing or mess. It deeply refreshes the washer for consistently cleaner-smelling laundry.\"\u003c\/strong\u003e\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"wj-section wj-pain\"\u003e\n    \u003cdiv class=\"wj-titleblock\"\u003e\n      \u003cdiv class=\"wj-kicker\"\u003eWhy Old-School Cleaning Falls Short\u003c\/div\u003e\n      \u003ch2\u003eStop betting your washer on messy harsh cleaners!\u003c\/h2\u003e\n      \u003cdiv class=\"wj-line\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"wj-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1051\/8052\/8981\/files\/4_f94ca90b-c102-4686-b567-cd3f401862d3.png?v=1787677617\" alt=\"\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"wj-copycard\"\u003e\n      \u003cp\u003eWe’ve all been trapped in the same cycle: spending a fortune on washer sprays and messy liquid cleaners, enduring the sticky residue, musty lingering odors, and scrubbing hard-to-reach drum crevices — only to end up with a smelly, partially-clean washing machine.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"wj-titleblock\" style=\"margin-top:34px;\"\u003e\n      \u003ch2\u003eYour washing machine is dirtier than you realize. Here’s why.\u003c\/h2\u003e\n      \u003cdiv class=\"wj-line\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"wj-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1051\/8052\/8981\/files\/5_67ed3329-a523-45ef-b12e-c7dfc4bf9fc0.png?v=1787677927\" alt=\"\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"wj-copycard\"\u003e\n      \u003cp\u003eYou already know deep manual scrubbing is not practical. But bleach, vinegar hacks and messy liquid cleaners fail to eliminate trapped grime. Hidden mold, residue and pet-hair buildup stay inside, contaminating your laundry with every wash.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"wj-section wj-how\"\u003e\n    \u003cdiv class=\"wj-titleblock\"\u003e\n      \u003cdiv class=\"wj-kicker\"\u003eHow It Works\u003c\/div\u003e\n      \u003ch2\u003eYour Washing Machine Cleaner Timeline \u0026amp; How It Works — A deep clean that happens inside your machine, not just on its surface.\u003c\/h2\u003e\n      \u003cdiv class=\"wj-line\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"wj-step\"\u003e\n      \u003cdiv class=\"wj-stepnum\"\u003e1\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003ch3\u003eDrop In \u0026amp; Activate\u003c\/h3\u003e\n        \u003cp\u003eDrop in your first cleaning tablet. Precision-formulated effervescent particles flow effortlessly through every hidden crevice of your washer. Powered by deep-reaching surfactants and a grime-dissolving mineral complex, the tablet delivers core cleaning actives below the surface to activate deep-clean pathways — entirely free from harsh bleach and abrasives.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"wj-media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1051\/8052\/8981\/files\/6_0c8230db-cbcc-4c83-a192-ea6da4192632.png?v=1787678295\" alt=\"\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"wj-step\"\u003e\n      \u003cdiv class=\"wj-stepnum\"\u003e2\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003ch3\u003eDeep Cleaning Action\u003c\/h3\u003e\n        \u003cp\u003eOur patented complex-combining advanced cleaning agents and targeted technology-works deep inside your washer. It dissolves stubborn residue, limescale and odors to activate full-power cleaning. The result: better washer performance, extended service life, and truly fresh-smelling laundry.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"wj-media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1051\/8052\/8981\/files\/7_f2e9090a-6ec2-4bd3-b400-1615858312fa.png?v=1787678640\" alt=\"\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"wj-section wj-brandstatement\"\u003e\n    \u003ch2\u003eThis isn’t just another washer cleaner.\u003c\/h2\u003e\n    \u003cp\u003eIt delivers genuine deep-down clean for your machine.\u003c\/p\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"wj-section\"\u003e\n    \u003cdiv class=\"wj-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1051\/8052\/8981\/files\/8_474ef681-4bc4-4c88-aa48-385e1aa5e31a.png?v=1787678895\" alt=\"\"\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"wj-section wj-faq\"\u003e\n    \u003cdiv class=\"wj-titleblock\"\u003e\n      \u003cdiv class=\"wj-kicker\"\u003eNeed To Know\u003c\/div\u003e\n      \u003ch2\u003eFrequently Asked Questions\u003c\/h2\u003e\n      \u003cdiv class=\"wj-line\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdetails open\u003e\n      \u003csummary\u003eQ1：What are Washing Machine Cleaner Tablets and how do they work?\u003c\/summary\u003e\n      \u003cdiv class=\"wj-answer\"\u003e\n\u003cstrong\u003eA：\u003c\/strong\u003e Our \u003cstrong\u003eWashing Machine Cleaner Tablets\u003c\/strong\u003e dissolve to release powerful cleaning agents that help remove hidden residue, buildup, and odor-causing grime inside your washer drum and gasket.\u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails\u003e\n      \u003csummary\u003eQ2：How do I use the cleaning tablets?\u003c\/summary\u003e\n      \u003cdiv class=\"wj-answer\"\u003e\n\u003cstrong\u003eA：\u003c\/strong\u003e Simply place one tablet into your empty washing machine and run a cleaning cycle. \u003cstrong\u003eNo scrubbing, no messy liquids, and no extra steps required.\u003c\/strong\u003e\n\u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails\u003e\n      \u003csummary\u003eQ3：Will it damage my washing machine?\u003c\/summary\u003e\n      \u003cdiv class=\"wj-answer\"\u003e\n\u003cstrong\u003eA：\u003c\/strong\u003e No. The formula is designed to be safe for most front-load and top-load washing machines when used as directed.\u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails\u003e\n      \u003csummary\u003eQ4：How often should I use it?\u003c\/summary\u003e\n      \u003cdiv class=\"wj-answer\"\u003e\n\u003cstrong\u003eA：\u003c\/strong\u003e For best results, use \u003cstrong\u003eone tablet every 2–4 weeks\u003c\/strong\u003e to help prevent buildup, reduce odors, and keep your washer fresh.\u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails\u003e\n      \u003csummary\u003eQ5：Can it remove bad smells and pet-related buildup?\u003c\/summary\u003e\n      \u003cdiv class=\"wj-answer\"\u003e\n\u003cstrong\u003eA：\u003c\/strong\u003e Yes. It helps target hidden residue, detergent buildup, and odors caused by everyday laundry use — including homes with pets.\u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdiv class=\"wj-bottomtrust\"\u003e\n      \u003cdiv class=\"wj-trust\"\u003e🫧 Deep-Clean Focus\u003c\/div\u003e\n      \u003cdiv class=\"wj-trust\"\u003e✨ Odor \u0026amp; Residue Care\u003c\/div\u003e\n      \u003cdiv class=\"wj-trust\"\u003e🐾 Pet-Home Friendly\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\u003c\/div\u003e","brand":"Vivlumin","offers":[{"title":"🔥3 Boxes · Family","offer_id":56989229580628,"sku":"TTB-LRX-FC-XYJ*3","price":54.99,"currency_code":"USD","in_stock":true},{"title":"💎2 Boxes · Essentials","offer_id":56989229547860,"sku":"TTB-LRX-FC-XYJ*2","price":44.99,"currency_code":"USD","in_stock":true},{"title":"🧼Just 1 Box · Starter","offer_id":56989229613396,"sku":"TTB-LRX-FC-XYJ*1","price":24.99,"currency_code":"USD","in_stock":true},{"title":"👑5 Boxes","offer_id":56989229646164,"sku":"TTB-LRX-FC-XYJ*5","price":69.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1039\/4219\/3492\/files\/1.1_856feb2e-8656-4c56-ab90-8b5bfe8aae21.png?v=1788200568"}],"url":"https:\/\/vivlumin.com\/collections\/featured-collection.oembed","provider":"Vivlumin™","version":"1.0","type":"link"}